diff --git a/.github/workflows/ci_build_major_branch.yml b/.github/workflows/ci_build_major_branch.yml
index c37e1377b1..6cefd58901 100644
--- a/.github/workflows/ci_build_major_branch.yml
+++ b/.github/workflows/ci_build_major_branch.yml
@@ -87,7 +87,7 @@ jobs:
fetch-depth: 0
- name: Download firmwares
- uses: actions/download-artifact@v5
+ uses: actions/download-artifact@v6
with:
pattern: firmware-*
path: .
diff --git a/.github/workflows/ci_build_major_branch_keymap.yml b/.github/workflows/ci_build_major_branch_keymap.yml
index 1a0b44b908..f5533cf07a 100644
--- a/.github/workflows/ci_build_major_branch_keymap.yml
+++ b/.github/workflows/ci_build_major_branch_keymap.yml
@@ -62,7 +62,7 @@ jobs:
echo "targets=$(jq -c 'keys' targets.json)" >> $GITHUB_OUTPUT
- name: Upload targets json
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v5
with:
name: targets-${{ inputs.keymap }}
path: targets.json
@@ -92,7 +92,7 @@ jobs:
uses: actions/checkout@v5
- name: Get target definitions
- uses: actions/download-artifact@v5
+ uses: actions/download-artifact@v6
with:
name: targets-${{ inputs.keymap }}
path: .
@@ -112,7 +112,7 @@ jobs:
qmk mass-compile -t -j $NCPUS -e DUMP_CI_METADATA=yes $(jq -r '.["${{ matrix.target }}"].targets' targets.json) || touch .failed
- name: Upload binaries
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v5
with:
name: firmware-${{ inputs.keymap }}-${{ matrix.target }}
if-no-files-found: ignore
@@ -139,14 +139,14 @@ jobs:
uses: actions/checkout@v5
- name: Download firmwares
- uses: actions/download-artifact@v5
+ uses: actions/download-artifact@v6
with:
pattern: firmware-${{ inputs.keymap }}-*
path: .
merge-multiple: true
- name: Upload all firmwares
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v5
with:
name: firmware-${{ inputs.keymap }}
if-no-files-found: ignore
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
index 275e2b2483..fe5d6027e2 100644
--- a/.github/workflows/docs.yml
+++ b/.github/workflows/docs.yml
@@ -56,7 +56,7 @@ jobs:
- name: Deploy
if: ${{ github.event_name == 'push' && github.repository == 'qmk/qmk_firmware' }}
- uses: JamesIves/github-pages-deploy-action@v4.7.3
+ uses: JamesIves/github-pages-deploy-action@v4.7.4
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: gh-pages
diff --git a/.gitignore b/.gitignore
index 5886640d68..6ec26d3876 100644
--- a/.gitignore
+++ b/.gitignore
@@ -95,6 +95,11 @@ tags
*.mpeg
*.ttf
*.otf
+# Un-ignore limited image file formats in docs
+!docs/public/**.gif
+!docs/public/**.jpg
+!docs/public/**.jpeg
+!docs/public/**.png
# Things Travis sees
/.vs
diff --git a/builddefs/docsgen/package.json b/builddefs/docsgen/package.json
index 19c80580d6..b6c56f3448 100644
--- a/builddefs/docsgen/package.json
+++ b/builddefs/docsgen/package.json
@@ -1,7 +1,7 @@
{
"license": "GPL-2.0-or-later",
"devDependencies": {
- "vite": "^5.4.20",
+ "vite": "^5.4.21",
"vitepress": "^1.1.0",
"vitepress-plugin-tabs": "^0.5.0",
"vue": "^3.4.24"
diff --git a/builddefs/docsgen/yarn.lock b/builddefs/docsgen/yarn.lock
index bc2edf6024..e5eaaa2c8f 100644
--- a/builddefs/docsgen/yarn.lock
+++ b/builddefs/docsgen/yarn.lock
@@ -766,10 +766,10 @@ tabbable@^6.2.0:
resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97"
integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==
-vite@^5.2.9, vite@^5.4.20:
- version "5.4.20"
- resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.20.tgz#3267a5e03f21212f44edfd72758138e8fcecd76a"
- integrity sha512-j3lYzGC3P+B5Yfy/pfKNgVEg4+UtcIJcVRt2cDjIOmhLourAqPqf8P7acgxeiSgUB7E3p2P8/3gNIgDLpwzs4g==
+vite@^5.2.9, vite@^5.4.21:
+ version "5.4.21"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.21.tgz#84a4f7c5d860b071676d39ba513c0d598fdc7027"
+ integrity sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==
dependencies:
esbuild "^0.21.3"
postcss "^8.4.43"
diff --git a/data/constants/keycodes/keycodes_0.0.8.hjson b/data/constants/keycodes/keycodes_0.0.8.hjson
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/data/constants/keycodes/keycodes_0.0.8_lighting.hjson b/data/constants/keycodes/keycodes_0.0.8_lighting.hjson
deleted file mode 100644
index fa7227235e..0000000000
--- a/data/constants/keycodes/keycodes_0.0.8_lighting.hjson
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "keycodes": {
- "0x7819": {
- "group": "led_matrix",
- "key": "QK_LED_MATRIX_FLAG_NEXT",
- "label": "LED Matrix Flag Next",
- "aliases": [
- "LM_FLGN"
- ]
- },
- "0x781A": {
- "group": "led_matrix",
- "key": "QK_LED_MATRIX_FLAG_PREVIOUS",
- "label": "LED Matrix Flag Previous",
- "aliases": [
- "LM_FLGP"
- ]
- },
-
- "0x784D": {
- "group": "rgb_matrix",
- "key": "QK_RGB_MATRIX_FLAG_NEXT",
- "label": "RGB Matrix Flag Next",
- "aliases": [
- "RM_FLGN"
- ]
- },
- "0x784E": {
- "group": "rgb_matrix",
- "key": "QK_RGB_MATRIX_FLAG_PREVIOUS",
- "label": "RGB Matrix Flag Previous",
- "aliases": [
- "RM_FLGP"
- ]
- }
- }
-}
diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson
index 1c6e86d876..4c53aa4339 100644
--- a/data/mappings/info_config.hjson
+++ b/data/mappings/info_config.hjson
@@ -98,7 +98,6 @@
// LED Matrix
"LED_MATRIX_CENTER": {"info_key": "led_matrix.center_point", "value_type": "array.int"},
- "LED_MATRIX_FLAG_STEPS": {"info_key": "led_matrix.flag_steps", "value_type": "array.int"},
"LED_MATRIX_KEYRELEASES": {"info_key": "led_matrix.react_on_keyup", "value_type": "flag"},
"LED_MATRIX_LED_FLUSH_LIMIT": {"info_key": "led_matrix.led_flush_limit", "value_type": "int"},
"LED_MATRIX_LED_PROCESS_LIMIT": {"info_key": "led_matrix.led_process_limit", "value_type": "int", "to_json": false},
@@ -112,7 +111,6 @@
"LED_MATRIX_DEFAULT_ON": {"info_key": "led_matrix.default.on", "value_type": "bool"},
"LED_MATRIX_DEFAULT_VAL": {"info_key": "led_matrix.default.val", "value_type": "int"},
"LED_MATRIX_DEFAULT_SPD": {"info_key": "led_matrix.default.speed", "value_type": "int"},
- "LED_MATRIX_DEFAULT_FLAGS": {"info_key": "led_matrix.default.flags", "value_type": "int"},
// Locking Switch
"LOCKING_SUPPORT_ENABLE": {"info_key": "qmk.locking.enabled", "value_type": "flag"},
@@ -149,7 +147,6 @@
// RGB Matrix
"RGB_MATRIX_CENTER": {"info_key": "rgb_matrix.center_point", "value_type": "array.int"},
- "RGB_MATRIX_FLAG_STEPS": {"info_key": "rgb_matrix.flag_steps", "value_type": "array.int"},
"RGB_MATRIX_HUE_STEP": {"info_key": "rgb_matrix.hue_steps", "value_type": "int"},
"RGB_MATRIX_KEYRELEASES": {"info_key": "rgb_matrix.react_on_keyup", "value_type": "flag"},
"RGB_MATRIX_LED_FLUSH_LIMIT": {"info_key": "rgb_matrix.led_flush_limit", "value_type": "int"},
@@ -167,7 +164,6 @@
"RGB_MATRIX_DEFAULT_SAT": {"info_key": "rgb_matrix.default.sat", "value_type": "int"},
"RGB_MATRIX_DEFAULT_VAL": {"info_key": "rgb_matrix.default.val", "value_type": "int"},
"RGB_MATRIX_DEFAULT_SPD": {"info_key": "rgb_matrix.default.speed", "value_type": "int"},
- "RGB_MATRIX_DEFAULT_FLAGS": {"info_key": "rgb_matrix.default.flags", "value_type": "int"},
// RGBLight
"RGBLED_SPLIT": {"info_key": "rgblight.split_count", "value_type": "array.int"},
diff --git a/data/mappings/info_defaults.hjson b/data/mappings/info_defaults.hjson
index d1f1579c55..b33cb4fa1f 100644
--- a/data/mappings/info_defaults.hjson
+++ b/data/mappings/info_defaults.hjson
@@ -23,8 +23,7 @@
"animation": "solid",
"on": true,
"val": 255,
- "speed": 128,
- "flags": 255
+ "speed": 128
},
"led_flush_limit": 16,
"max_brightness": 255,
@@ -54,8 +53,7 @@
"hue": 0,
"sat": 255,
"val": 255,
- "speed": 128,
- "flags": 255
+ "speed": 128
},
"hue_steps": 8,
"led_flush_limit": 16,
diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson
index 71a7e880a3..3978235e20 100644
--- a/data/mappings/keyboard_aliases.hjson
+++ b/data/mappings/keyboard_aliases.hjson
@@ -1620,11 +1620,8 @@
"0_sixty": {
"target": "0_sixty/base"
},
- "0xcb/splaytoraid/32u4": {
- "target": "0xcb/splaytoraid"
- },
- "0xcb/splaytoraid/rp2040_ce": {
- "target": "0xcb/splaytoraid"
+ "0xcb/splaytoraid": {
+ "target": "0xcb/splaytoraid/rp2040_ce"
},
"1upkeyboards/pi40": {
"target": "1upkeyboards/pi40/mit_v1_0"
@@ -1635,24 +1632,12 @@
"1upkeyboards/sweet16": {
"target": "1upkeyboards/sweet16/v1"
},
- "1upkeyboards/sweet16v2/kb2040": {
- "target": "1upkeyboards/sweet16v2"
- },
- "1upkeyboards/sweet16v2/pro_micro": {
- "target": "1upkeyboards/sweet16v2"
- },
"25keys/aleth42": {
"target": "25keys/aleth42/rev1"
},
"25keys/zinc": {
"target": "25keys/zinc/rev1"
},
- "40percentclub/gherkin/kb2040": {
- "target": "40percentclub/gherkin"
- },
- "40percentclub/gherkin/pro_micro": {
- "target": "40percentclub/gherkin"
- },
"40percentclub/i75": {
"target": "40percentclub/i75/promicro"
},
@@ -1750,7 +1735,7 @@
"target": "durgod/dgk6x/galaxy"
},
"durgod/venus": {
- "target": "durgod/dgk6x/venus_ansi"
+ "target": "durgod/dgk6x/venus"
},
"dztech/tofu/ii": {
"target": "dztech/tofu/ii/v1"
diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema
index 57aeb3de22..93b1c82b1c 100644
--- a/data/schemas/keyboard.jsonschema
+++ b/data/schemas/keyboard.jsonschema
@@ -543,8 +543,7 @@
"on": {"type": "boolean"},
"animation": {"type": "string"},
"val": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
- "speed": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
- "flags": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}
+ "speed": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}
}
},
"driver": {
@@ -572,11 +571,6 @@
"maxItems": 2,
"items": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}
},
- "flag_steps": {
- "type": "array",
- "minItems": 1,
- "items": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}
- },
"max_brightness": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
"timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"val_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"},
@@ -632,8 +626,7 @@
"hue": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
"sat": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
"val": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
- "speed": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
- "flags": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}
+ "speed": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}
}
},
"driver": {
@@ -663,11 +656,6 @@
"maxItems": 2,
"items": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}
},
- "flag_steps": {
- "type": "array",
- "minItems": 1,
- "items": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}
- },
"max_brightness": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
"timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"hue_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"},
diff --git a/data/schemas/keymap.jsonschema b/data/schemas/keymap.jsonschema
index 71b39fc7c4..99aeaa6b6c 100644
--- a/data/schemas/keymap.jsonschema
+++ b/data/schemas/keymap.jsonschema
@@ -35,17 +35,6 @@
}
}
},
- "dip_switches": {
- "type": "array",
- "items": {
- "type": "object",
- "required": ["on", "off"],
- "properties": {
- "on": {"type": "string"},
- "off": {"type": "string"}
- }
- }
- },
"macros": {
"type": "array",
"items": {
diff --git a/docs/ChangeLog/20251130/PR25515.md b/docs/ChangeLog/20251130/PR25515.md
deleted file mode 100644
index ccc88e0c64..0000000000
--- a/docs/ChangeLog/20251130/PR25515.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Refactor debounce algorithm with static allocation [#25515](https://github.com/qmk/qmk_firmware/pull/25515)
-
-Removed dynamic memory allocation (malloc, free) from all debounce implementations for improved efficiency on embedded systems and to avoid runtime allocation overhead. Refactored state arrays to use direct indexing, simplifying code and eliminating pointer arithmetic. Standardized usage of MATRIX_ROWS_PER_HAND throughout the codebase to ensure consistent support for split keyboards.
diff --git a/docs/driver_installation_zadig.md b/docs/driver_installation_zadig.md
index 1a5bd1cc34..6fbcfa3bff 100644
--- a/docs/driver_installation_zadig.md
+++ b/docs/driver_installation_zadig.md
@@ -22,7 +22,7 @@ If Zadig lists one or more devices with the `HidUsb` driver, your keyboard is pr
If the arrow appears green, select the driver, and click **Install Driver**. See the [list of known bootloaders](#list-of-known-bootloaders) for the correct driver to install.
-
+
Finally, unplug and replug the keyboard to make sure the new driver has been loaded. If you are using the QMK Toolbox to flash, exit and restart it too, as it can sometimes fail to recognize the driver change.
@@ -30,15 +30,15 @@ Finally, unplug and replug the keyboard to make sure the new driver has been loa
If you find that you can no longer type with the keyboard, you may have accidentally replaced the driver for the keyboard itself instead of for the bootloader. This can happen when the keyboard is not in the bootloader mode. You can easily confirm this in Zadig - a healthy keyboard has the `HidUsb` driver installed on all of its interfaces:
-
+
Open the Device Manager, select **View → Devices by container**, and look for an entry with your keyboard's name.
-
+
Right-click each entry and hit **Uninstall device**. Make sure to tick **Delete the driver software for this device** first if it appears.
-
+
Click **Action → Scan for hardware changes**. At this point, you should be able to type again. Double check in Zadig that the keyboard device(s) are using the `HidUsb` driver. If so, you're all done, and your board should be functional again! Otherwise, repeat this process until Zadig reports the correct driver.
@@ -54,11 +54,11 @@ Open the Device Manager, select **View → Devices by container**, and look for
Find the `Inf name` value in the Details tab of the device properties. This should generally be something like `oemXX.inf`:
-
+
Then, open a new Command Prompt window as an Administrator (type in `cmd` into the Start menu and press Ctrl+Shift+Enter). Run `pnputil /enum-drivers` to verify the `Inf name` matches the `Published Name` field of one of the entries:
-
+
Run `pnputil /delete-driver oemXX.inf /uninstall`. This will delete the driver and remove it from any devices using it. Note that this will not uninstall the device itself.
diff --git a/docs/easy_maker.md b/docs/easy_maker.md
index e94477322b..4a6aa1cb61 100644
--- a/docs/easy_maker.md
+++ b/docs/easy_maker.md
@@ -24,7 +24,7 @@ As its name implies Direct Pin works by connecting one switch per pin. The other
Here is a schematic showing how we connect a single button to pin A3 on a ProMicro:
-
+
Once you have wired your switches you can assign keycodes to each pin and build a firmware by selecting the MCU you are using from the Keyboard dropdown. Use this link to show only Easy Maker Direct Pin:
diff --git a/docs/faq_keymap.md b/docs/faq_keymap.md
index 05bd4fed3e..dbaf7de991 100644
--- a/docs/faq_keymap.md
+++ b/docs/faq_keymap.md
@@ -13,7 +13,7 @@ Keycodes are actually defined in [quantum/keycode.h](https://github.com/qmk/qmk_
There are 3 standard keyboard layouts in use around the world- ANSI, ISO, and JIS. North America primarily uses ANSI, Europe and Africa primarily use ISO, and Japan uses JIS. Regions not mentioned typically use either ANSI or ISO. The keycodes corresponding to these layouts are shown here:
-
+
## How Can I Make Custom Names For Complex Keycodes?
diff --git a/docs/features/autocorrect.md b/docs/features/autocorrect.md
index df3f2e0fd8..57024f2cd2 100644
--- a/docs/features/autocorrect.md
+++ b/docs/features/autocorrect.md
@@ -8,7 +8,7 @@ The feature maintains a small buffer of recent key presses. On each key press, i
The tricky part is how to efficiently check the buffer for typos. We don’t want to spend too much memory or time on storing or searching the typos. A good solution is to represent the typos with a trie data structure. A trie is a tree data structure where each node is a letter, and words are formed by following a path to one of the leaves.
-
+
Since we search whether the buffer ends in a typo, we store the trie writing in reverse. The trie is queried starting from the last letter, then second to last letter, and so on, until either a letter doesn’t match or we reach a leaf, meaning a typo was found.
@@ -279,7 +279,7 @@ All autocorrection data is stored in a single flat array autocorrect_data. Each
* 01 ⇒ branching node: a trie node with multiple children.
* 10 ⇒ leaf node: a leaf, corresponding to a typo and storing its correction.
-
+
**Branching node**. Each branch is encoded with one byte for the keycode (KC_A–KC_Z) followed by a link to the child node. Links between nodes are 16-bit byte offsets relative to the beginning of the array, serialized in little endian order.
diff --git a/docs/features/backlight.md b/docs/features/backlight.md
index 20f84ac6b5..87d5a36c00 100644
--- a/docs/features/backlight.md
+++ b/docs/features/backlight.md
@@ -227,7 +227,7 @@ In this typical example, the backlight LEDs are all connected in parallel toward
A pulldown resistor is also placed between the gate pin and ground to keep it at a defined state when it is not otherwise being driven by the MCU.
The values of these resistors are not critical - see [this Electronics StackExchange question](https://electronics.stackexchange.com/q/68748) for more information.
-
+
## API {#api}
diff --git a/docs/features/layer_lock.md b/docs/features/layer_lock.md
index aaf323accc..27856ada26 100644
--- a/docs/features/layer_lock.md
+++ b/docs/features/layer_lock.md
@@ -35,12 +35,12 @@ layer.
Consider a keymap with the following base layer.
-
+
The highlighted key is a momentary layer switch `MO(NAV)`. Holding it accesses a
navigation layer.
-
+
Holding the NAV key is fine for brief use, but awkward to continue holding when
diff --git a/docs/features/led_matrix.md b/docs/features/led_matrix.md
index f14fb47d62..28d24bc400 100644
--- a/docs/features/led_matrix.md
+++ b/docs/features/led_matrix.md
@@ -88,8 +88,6 @@ As mentioned earlier, the center of the keyboard by default is expected to be `{
|`QK_LED_MATRIX_BRIGHTNESS_DOWN`|`LM_BRID`|Decrease the brightness level |
|`QK_LED_MATRIX_SPEED_UP` |`LM_SPDU`|Increase the animation speed |
|`QK_LED_MATRIX_SPEED_DOWN` |`LM_SPDD`|Decrease the animation speed |
-|`QK_LED_MATRIX_FLAG_NEXT` |`LM_FLGN`|Cycle through flags |
-|`QK_LED_MATRIX_FLAG_PREVIOUS` |`LM_FLGP`|Cycle through flags in reverse |
## LED Matrix Effects {#led-matrix-effects}
@@ -255,7 +253,6 @@ const char* effect_name = led_matrix_get_mode_name(led_matrix_get_mode());
#define LED_MATRIX_DEFAULT_FLAGS LED_FLAG_ALL // Sets the default LED flags, if none has been set
#define LED_MATRIX_SPLIT { X, Y } // (Optional) For split keyboards, the number of LEDs connected on each half. X = left, Y = Right.
// If reactive effects are enabled, you also will want to enable SPLIT_TRANSPORT_MIRROR
-#define LED_MATRIX_FLAG_STEPS { LED_FLAG_ALL, LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER, LED_FLAG_NONE } // Sets the flags which can be cycled through.
```
## EEPROM storage {#eeprom-storage}
@@ -508,62 +505,6 @@ The current effect speed, from 0 to 255.
---
-### `void led_matrix_set_flags(led_flags_t flags)` {#api-led-matrix-set-flags}
-
-Set the global effect flags.
-
-#### Arguments {#api-led-matrix-set-flags-arguments}
-
- - `led_flags_t flags`
- The [flags](#flags) value to set.
-
----
-
-### `void led_matrix_set_flags_noeeprom(led_flags_t flags)` {#api-led-matrix-set-flags-noeeprom}
-
-Set the global effect flags. New state is not written to EEPROM.
-
-#### Arguments {#api-led-matrix-set-flags-noeeprom-arguments}
-
- - `led_flags_t flags`
- The [flags](#flags) value to set.
-
----
-
-### `void led_matrix_flags_step(void)` {#api-led-matrix-flags-step}
-
-Move to the next flag combination.
-
----
-
-### `void led_matrix_flags_step_noeeprom(void)` {#api-led-matrix-flags-step-noeeprom}
-
-Move to the next flag combination. New state is not written to EEPROM.
-
----
-
-### `void led_matrix_flags_step_reverse(void)` {#api-led-matrix-flags-step-reverse}
-
-Move to the previous flag combination.
-
----
-
-### `void led_matrix_flags_step_reverse_noeeprom(void)` {#api-led-matrix-flags-step-reverse-noeeprom}
-
-Move to the previous flag combination. New state is not written to EEPROM.
-
----
-
-### `uint8_t led_matrix_get_flags(void)` {#api-led-matrix-get-flags}
-
-Get the current global effect flags.
-
-#### Return Value {#api-led-matrix-get-flags-return}
-
-The current effect [flags](#flags).
-
----
-
### `void led_matrix_reload_from_eeprom(void)` {#api-led-matrix-reload-from-eeprom}
Reload the effect configuration (enabled, mode and brightness) from EEPROM.
diff --git a/docs/features/rgb_matrix.md b/docs/features/rgb_matrix.md
index 36680f24a2..95ee4c4896 100644
--- a/docs/features/rgb_matrix.md
+++ b/docs/features/rgb_matrix.md
@@ -96,8 +96,6 @@ As mentioned earlier, the center of the keyboard by default is expected to be `{
|`QK_RGB_MATRIX_VALUE_DOWN` |`RM_VALD`|Decrease the brightness level |
|`QK_RGB_MATRIX_SPEED_UP` |`RM_SPDU`|Increase the animation speed |
|`QK_RGB_MATRIX_SPEED_DOWN` |`RM_SPDD`|Decrease the animation speed |
-|`QK_RGB_MATRIX_FLAG_NEXT` |`RM_FLGN`|Cycle through flags |
-|`QK_RGB_MATRIX_FLAG_PREVIOUS` |`RM_FLGP`|Cycle through flags in reverse |
## RGB Matrix Effects {#rgb-matrix-effects}
@@ -411,7 +409,6 @@ const char* effect_name = rgb_matrix_get_mode_name(rgb_matrix_get_mode());
#define RGB_MATRIX_SPLIT { X, Y } // (Optional) For split keyboards, the number of LEDs connected on each half. X = left, Y = Right.
// If reactive effects are enabled, you also will want to enable SPLIT_TRANSPORT_MIRROR
#define RGB_TRIGGER_ON_KEYDOWN // Triggers RGB keypress events on key down. This makes RGB control feel more responsive. This may cause RGB to not function properly on some boards
-#define RGB_MATRIX_FLAG_STEPS { LED_FLAG_ALL, LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER, LED_FLAG_UNDERGLOW, LED_FLAG_NONE } // Sets the flags which can be cycled through.
```
## EEPROM storage {#eeprom-storage}
@@ -855,62 +852,6 @@ The current effect speed, from 0 to 255.
---
-### `void rgb_matrix_set_flags(led_flags_t flags)` {#api-rgb-matrix-set-flags}
-
-Set the global effect flags.
-
-#### Arguments {#api-rgb-matrix-set-flags-arguments}
-
- - `led_flags_t flags`
- The [flags](#flags) value to set.
-
----
-
-### `void rgb_matrix_set_flags_noeeprom(led_flags_t flags)` {#api-rgb-matrix-set-flags-noeeprom}
-
-Set the global effect flags. New state is not written to EEPROM.
-
-#### Arguments {#api-rgb-matrix-set-flags-noeeprom-arguments}
-
- - `led_flags_t flags`
- The [flags](#flags) value to set.
-
----
-
-### `void rgb_matrix_flags_step(void)` {#api-rgb-matrix-flags-step}
-
-Move to the next flag combination.
-
----
-
-### `void rgb_matrix_flags_step_noeeprom(void)` {#api-rgb-matrix-flags-step-noeeprom}
-
-Move to the next flag combination. New state is not written to EEPROM.
-
----
-
-### `void rgb_matrix_flags_step_reverse(void)` {#api-rgb-matrix-flags-step-reverse}
-
-Move to the previous flag combination.
-
----
-
-### `void rgb_matrix_flags_step_reverse_noeeprom(void)` {#api-rgb-matrix-flags-step-reverse-noeeprom}
-
-Move to the previous flag combination. New state is not written to EEPROM.
-
----
-
-### `uint8_t rgb_matrix_get_flags(void)` {#api-rgb-matrix-get-flags}
-
-Get the current global effect flags.
-
-#### Return Value {#api-rgb-matrix-get-flags-return}
-
-The current effect [flags](#flags).
-
----
-
### `void rgb_matrix_sethsv(uint8_t h, uint8_t s, uint8_t v)` {#api-rgb-matrix-sethsv}
Set the global effect hue, saturation, and value (brightness).
diff --git a/docs/features/rgblight.md b/docs/features/rgblight.md
index 43e3781f8d..20d32c4f5a 100644
--- a/docs/features/rgblight.md
+++ b/docs/features/rgblight.md
@@ -55,7 +55,7 @@ Changing the **Hue** cycles around the circle.
Changing the **Saturation** moves between the inner and outer sections of the wheel, affecting the intensity of the color.
Changing the **Value** sets the overall brightness.
-
+
## Keycodes
diff --git a/docs/features/split_keyboard.md b/docs/features/split_keyboard.md
index 4b299b14f8..a6fbad1c8f 100644
--- a/docs/features/split_keyboard.md
+++ b/docs/features/split_keyboard.md
@@ -91,11 +91,11 @@ SPLIT_TRANSPORT = custom
Configuring your layout in a split keyboard works slightly differently to a non-split keyboard. Take for example the following layout. The top left numbers refer to the matrix row and column, and the bottom right are the order of the keys in the layout:
-
+
Since the matrix scanning procedure operates on entire rows, it first populates the left half's rows, then the right half's. Thus, the matrix as QMK views it has double the rows instead of double the columns:
-
+
### Setting Handedness
@@ -497,7 +497,7 @@ Once you have done that, you will want to solder the diode from the 5V pad to th
You may need to use the 5V pad from the regulator block above as the pads were too small and placed too closely together to place the Schottky diode properly.
-
+
## Additional Resources
diff --git a/docs/getting_started_github.md b/docs/getting_started_github.md
index b8587dbb13..4cc9978d3d 100644
--- a/docs/getting_started_github.md
+++ b/docs/getting_started_github.md
@@ -8,15 +8,15 @@ This guide assumes you're somewhat comfortable with running things at the comman
Start on the [QMK GitHub page](https://github.com/qmk/qmk_firmware), and you'll see a button in the upper right that says "Fork":
-
+
If you're a part of an organization, you'll need to choose which account to fork it to. In most circumstances, you'll want to fork it to your personal account. Once your fork is completed (sometimes this takes a little while), click the "Clone or Download" button:
-
+
And be sure to select "HTTPS", and select the link and copy it:
-
+
From here, enter `git clone --recurse-submodules ` into the command line, and then paste your link:
@@ -57,10 +57,10 @@ To https://github.com/whoeveryouare/qmk_firmware.git
Your changes now exist on your fork on GitHub - if you go back there (`https://github.com//qmk_firmware`), you can create a "New Pull Request" by clicking this button:
-
+
Here you'll be able to see exactly what you've committed - if it all looks good, you can finalize it by clicking "Create Pull Request":
-
+
After submitting, we may talk to you about your changes, ask that you make changes, and eventually accept it! Thanks for contributing to QMK :)
diff --git a/docs/hand_wire.md b/docs/hand_wire.md
index 492ca384b1..25be46fdb7 100644
--- a/docs/hand_wire.md
+++ b/docs/hand_wire.md
@@ -36,12 +36,12 @@ What you want to achieve is one leg from each switch being attached to the corre
It is fairly simple to plan for an ortholinear keyboard (like a Planck).
-
+
Image from [RoastPotatoes' "How to hand wire a Planck"](https://blog.roastpotatoes.co/guide/2015/11/04/how-to-handwire-a-planck/)
But the larger and more complicated your keyboard, the more complex the matrix. [Keyboard Firmware Builder](https://kbfirmware.com/) can help you plan your matrix layout (shown here with a basic fullsize ISO keyboard imported from [Keyboard Layout Editor](https://www.keyboard-layout-editor.com).
-
+
Bear in mind that the number of rows plus the number of columns can not exceed the number of I/O pins on your controller. So the fullsize matrix shown above would be possible on a Proton C or Teensy++, but not on a regular Teensy or Pro Micro.
@@ -51,14 +51,14 @@ Bear in mind that the number of rows plus the number of columns can not exceed t
| :------------ |:-------------:| ------:| ------ |
| Pro Micro* | ATmega32u4 | 20 | [link](https://learn.sparkfun.com/tutorials/pro-micro--fio-v3-hookup-guide/hardware-overview-pro-micro#Teensy++_2.0) |
| Teensy 2.0 | ATmega32u4 | 25 | [link](https://www.pjrc.com/teensy/pinout.html) |
-| [QMK Proton C](https://qmk.fm/proton-c/) | STM32F303xC | 36 | [link 1](https://i.imgur.com/RhtrAlc.png), [2](https://deskthority.net/wiki/QMK_Proton_C) |
+| [QMK Proton C](https://qmk.fm/proton-c/) | STM32F303xC | 36 | [link 1](https://qmk.fm/proton-c-pinout.jpg), [2](https://deskthority.net/wiki/QMK_Proton_C) |
| Teensy++ 2.0 | AT90USB1286 | 46 | [link](https://www.pjrc.com/teensy/pinout.html#Teensy_2.0) |
*Elite C is essentially the same as a Pro Micro with a USB-C instead of Micro-USB
There are also a number of boards designed specifically for handwiring that mount directly to a small number of switches and offer pinouts for the rest. Though these are generally more expensive and may be more difficult to get hold of.
-
+
| Board | Controller | # I/O |
| :------------ |:-------------:| ------:|
@@ -74,13 +74,13 @@ Established materials and techniques include:
| Technique | Examples | Pros | Cons | Image
| :-----------| :------- | :------ | :--- | :---
-| Lengths of wire with stripped segments | [Sasha Solomon's Dactyl](https://medium.com/@sachee/building-my-first-keyboard-and-you-can-too-512c0f8a4c5f) and [Cribbit's modern hand wire](https://geekhack.org/index.php?topic=87689.0) | Neat and tidy | Some effort in stripping the wire | 
-| Short lengths of wire | [u/xicolinguada's ortho build](https://www.reddit.com/r/MechanicalKeyboards/comments/c39k4f/my_first_hand_wired_keyboard_its_not_perfect_but/) | Easier to strip the wire | More difficult to place | 
-| Magnet/Enamelled wire | [fknraiden's custom board](https://geekhack.org/index.php?topic=74223.0) | Can be directly soldered onto (insulation burns off with heat) | Appearance? | 
-| Bending the legs of the diodes for the rows | [Matt3o's Brownfox](https://deskthority.net/viewtopic.php?f=7&t=6050) | Fewer solder joints required | Uninsulated | 
-| Using rigid wiring (e.g. brass tube) | [u/d_stilgar's invisible hardline](https://www.reddit.com/r/MechanicalKeyboards/comments/8aw5j2/invisible_hardline_keyboard_progress_update_april/) and [u/jonasfasler's first attempt](https://www.reddit.com/r/MechanicalKeyboards/comments/de1jyv/my_first_attempt_at_handwiring_a_keyboard/) | Very pretty | More difficult. No physical insulation | 
-| Bare wire with insulation added after (e.g. kapton tape) | [Matt3o's 65% on his website](https://matt3o.com/hand-wiring-a-custom-keyboard/) | Easier (no wire stripping required) | Not as attractive | 
-| Copper tape | [ManuForm Dactyl](https://github.com/tshort/dactyl-keyboard) | Very easy | Only really works when your plate/case aligns with the bottom of your switches | 
+| Lengths of wire with stripped segments | [Sasha Solomon's Dactyl](https://medium.com/@sachee/building-my-first-keyboard-and-you-can-too-512c0f8a4c5f) and [Cribbit's modern hand wire](https://geekhack.org/index.php?topic=87689.0) | Neat and tidy | Some effort in stripping the wire | 
+| Short lengths of wire | [u/xicolinguada's ortho build](https://www.reddit.com/r/MechanicalKeyboards/comments/c39k4f/my_first_hand_wired_keyboard_its_not_perfect_but/) | Easier to strip the wire | More difficult to place | 
+| Magnet/Enamelled wire | [fknraiden's custom board](https://geekhack.org/index.php?topic=74223.0) | Can be directly soldered onto (insulation burns off with heat) | Appearance? | 
+| Bending the legs of the diodes for the rows | [Matt3o's Brownfox](https://deskthority.net/viewtopic.php?f=7&t=6050) | Fewer solder joints required | Uninsulated | 
+| Using rigid wiring (e.g. brass tube) | [u/d_stilgar's invisible hardline](https://www.reddit.com/r/MechanicalKeyboards/comments/8aw5j2/invisible_hardline_keyboard_progress_update_april/) and [u/jonasfasler's first attempt](https://www.reddit.com/r/MechanicalKeyboards/comments/de1jyv/my_first_attempt_at_handwiring_a_keyboard/) | Very pretty | More difficult. No physical insulation | 
+| Bare wire with insulation added after (e.g. kapton tape) | [Matt3o's 65% on his website](https://matt3o.com/hand-wiring-a-custom-keyboard/) | Easier (no wire stripping required) | Not as attractive | 
+| Copper tape | [ManuForm Dactyl](https://github.com/tshort/dactyl-keyboard) | Very easy | Only really works when your plate/case aligns with the bottom of your switches | 
Note that these methods can be combined. Prepare your lengths of wire before moving on to soldering.
@@ -97,11 +97,11 @@ There are a lot of soldering guides and tips available elsewhere but here are so
To ensure a strong solder joint you want a good amount of contact between the solder and the two pieces of metal you are connecting. A good way of doing this (though not required) is looping around pins or twisting wires together before applying solder.
-
+
If your diodes are on a packaging strip and need a bend in them (either the start of a loop or for connecting to its neighbour) this can easily done by bending it over something straight like the edge of a box, table, or ruler. This also helps keep track of the direction of the diode as all the bends will be on the same side.
-
+
If your iron has temperature control, set it to 315ºC (600ºF).
@@ -164,7 +164,7 @@ Cut wires to the length of the distance from the a point on each column/row to t
Ribbon cable can be used to keep this extra tidy. You may also want to consider routing the wires beneath the existing columns/rows.
-
+
As you solder the wires to the controller make a note of which row/column is going to which pin on the controller as we'll use this data to setup the matrix when we create the firmware.
diff --git a/docs/isp_flashing_guide.md b/docs/isp_flashing_guide.md
index 1eaec3b59d..6f3f0a8f7d 100644
--- a/docs/isp_flashing_guide.md
+++ b/docs/isp_flashing_guide.md
@@ -220,18 +220,14 @@ This bootloader is primarily for keyboards originally designed for the PS2AVRGB
USBaspLoader is a bootloader based on V-USB that emulates a hardware USBasp device. It runs on ATmega32A and ATmega328P MCUs.
-Precompiled `.hex` files are generally not available, but you can compile it yourself by setting up the QMK environment and cloning the appropriate branch of Coseyfannitutti's USBaspLoader fork:
+Precompiled `.hex` files are generally not available, but you can compile it yourself by setting up the QMK environment and following Coseyfannitutti's guide for the appropriate MCU:
-|MCU |Low |High |Extended|USB ID |
-|-----------------------------------------------------------------------------|------|------|--------|-----------|
-|[ATmega32A](https://github.com/coseyfannitutti/USBaspLoader/tree/atmega32a) |`0x1F`|`0xC0`|*n/a* |`16C0:05DC`|
-|[ATmega328P](https://github.com/coseyfannitutti/USBaspLoader/tree/atmega328p)|`0xD7`|`0xD0`|`0x04` |`16C0:05DC`|
+|MCU |Low |High |Extended|USB ID |
+|-------------------------------------------------------------------------------------|------|------|--------|-----------|
+|[ATmega32A](https://github.com/coseyfannitutti/discipline/tree/master/doc/bootloader)|`0x1F`|`0xC0`|*n/a* |`16C0:05DC`|
+|[ATmega328P](https://github.com/coseyfannitutti/discipad/tree/master/doc/bootloader) |`0xD7`|`0xD0`|`0x04` |`16C0:05DC`|
-From there, simply `cd` to the `firmware/` directory and run `make`, which should produce a file called `main.hex`.
-
-:::tip
-Some boards may have their own specialized build of this bootloader in a separate repository. This will usually be linked to in the board's readme.
-:::
+Note that some boards may have their own specialized build of this bootloader in a separate repository. This will usually be linked to in the board's readme.
## Flashing the Bootloader
diff --git a/docs/keycodes.md b/docs/keycodes.md
index 9c918b7676..c540a7ce7f 100644
--- a/docs/keycodes.md
+++ b/docs/keycodes.md
@@ -433,8 +433,6 @@ See also: [LED Matrix](features/led_matrix)
|`QK_LED_MATRIX_BRIGHTNESS_DOWN`|`LM_BRID`|Decrease the brightness level |
|`QK_LED_MATRIX_SPEED_UP` |`LM_SPDU`|Increase the animation speed |
|`QK_LED_MATRIX_SPEED_DOWN` |`LM_SPDD`|Decrease the animation speed |
-|`QK_LED_MATRIX_FLAG_NEXT` |`LM_FLGN`|Cycle through flags |
-|`QK_LED_MATRIX_FLAG_PREVIOUS` |`LM_FLGP`|Cycle through flags in reverse |
## Magic Keycodes {#magic-keycodes}
@@ -785,8 +783,6 @@ See also: [RGB Matrix](features/rgb_matrix)
|`QK_RGB_MATRIX_VALUE_DOWN` |`RM_VALD`|Decrease the brightness level |
|`QK_RGB_MATRIX_SPEED_UP` |`RM_SPDU`|Increase the animation speed |
|`QK_RGB_MATRIX_SPEED_DOWN` |`RM_SPDD`|Decrease the animation speed |
-|`QK_RGB_MATRIX_FLAG_NEXT` |`RM_FLGN`|Cycle through flags |
-|`QK_RGB_MATRIX_FLAG_PREVIOUS` |`RM_FLGP`|Cycle through flags in reverse |
## US ANSI Shifted Symbols {#us-ansi-shifted-symbols}
diff --git a/docs/newbs_building_firmware_configurator.md b/docs/newbs_building_firmware_configurator.md
index 85522e405c..6d441311dc 100644
--- a/docs/newbs_building_firmware_configurator.md
+++ b/docs/newbs_building_firmware_configurator.md
@@ -1,6 +1,6 @@
# QMK Configurator
-[](https://config.qmk.fm/)
+[](https://config.qmk.fm/)
The [QMK Configurator](https://config.qmk.fm) is an online graphical user interface that generates QMK Firmware `.hex` or `.bin` files.
diff --git a/docs/newbs_external_userspace.md b/docs/newbs_external_userspace.md
index fdc998c37a..9f818f46f9 100644
--- a/docs/newbs_external_userspace.md
+++ b/docs/newbs_external_userspace.md
@@ -32,11 +32,11 @@ Building locally has a much shorter turnaround time than waiting for GitHub Acti
A basic skeleton External Userspace repository can be found [here](https://github.com/qmk/qmk_userspace). If you wish to keep your keymaps on GitHub (strongly recommended!), you can fork the repository and use it as a base:
-
+
Going ahead with your fork will copy it to your account, at which point you can clone it to your local machine and begin adding your keymaps:
-
+
```sh
cd $HOME
@@ -99,8 +99,8 @@ All firmware builds you've added to the External Userspace build targets will be
GitHub Actions can be used to automatically build your keymaps whenever you push changes to your External Userspace repository. If you have set up your list of build targets, this is as simple as enabling workflows in the GitHub repository settings:
-
+
Any push will result in compilation of all configured builds, and once completed a new release containing the newly-minted firmware files will be created on GitHub, which you can subsequently download and flash to your keyboard:
-
+
diff --git a/docs/other_eclipse.md b/docs/other_eclipse.md
index 5a0228efce..1745f08932 100644
--- a/docs/other_eclipse.md
+++ b/docs/other_eclipse.md
@@ -66,7 +66,7 @@ Once both plugins are installed, restart Eclipse as prompted.
* Select the _AVR-GCC Toolchain_;
* Keep the rest as-is and click Finish
- 
+ 
3. The project will now be loaded and indexed. Its files can be browsed easily through the _Project Explorer_ on the left.
diff --git a/docs/other_vscode.md b/docs/other_vscode.md
index 0b39746a6e..3bd7e3f44f 100644
--- a/docs/other_vscode.md
+++ b/docs/other_vscode.md
@@ -174,7 +174,7 @@ You'll need to perform some modifications to the file above in order to target y
* `"armToolchainPath"`: _[Optional]_ The path to the ARM toolchain installation location on Windows -- under normal circumstances Linux/macOS will auto-detect this correctly and will not need to be specified.
::: warning
-Windows builds of QMK Firmware are generally compiled using QMK MSYS, and the path to gdb's location (`C:\\QMK_MSYS\\mingw64\\bin`) needs to be specified under `armToolchainPath` for it to be detected. You may also need to change the GDB path to point at `C:\\QMK_MSYS\\mingw64\\bin\\gdb-multiarch.exe` in the VSCode Cortex-Debug user settings: 
+Windows builds of QMK Firmware are generally compiled using QMK MSYS, and the path to gdb's location (`C:\\QMK_MSYS\\mingw64\\bin`) needs to be specified under `armToolchainPath` for it to be detected. You may also need to change the GDB path to point at `C:\\QMK_MSYS\\mingw64\\bin\\gdb-multiarch.exe` in the VSCode Cortex-Debug user settings: 
:::
The following modifications must be made to the keyboard's `rules.mk` file to enable debug information and disable optimisations -- this will ensure breakpoints and variable viewing works correctly:
diff --git a/docs/platformdev_blackpill_f4x1.md b/docs/platformdev_blackpill_f4x1.md
index a8d21c255c..e9af534e58 100644
--- a/docs/platformdev_blackpill_f4x1.md
+++ b/docs/platformdev_blackpill_f4x1.md
@@ -7,7 +7,7 @@ The WeAct Blackpill is a popular choice for handwired boards, as it offers a pow
* [WeAct GitHub for F4x1 Blackpill](https://github.com/WeActStudio/WeActStudio.MiniSTM32F4x1)
* Unfortunately, due to supply issues official WeAct F411 based blackpills may not be available.
-
+
## Pin Usage Limitations
diff --git a/docs/platformdev_proton_c.md b/docs/platformdev_proton_c.md
index 3afec893fa..16eeb7b28a 100644
--- a/docs/platformdev_proton_c.md
+++ b/docs/platformdev_proton_c.md
@@ -2,7 +2,7 @@
The Proton C is an Arm STM32F303xC based drop-in replacement for the Pro Micro.
-
+
#### Features
diff --git a/docs/platformdev_rp2040.md b/docs/platformdev_rp2040.md
index 1269ffeeb5..346cae58dc 100644
--- a/docs/platformdev_rp2040.md
+++ b/docs/platformdev_rp2040.md
@@ -17,8 +17,8 @@ The following table shows the current driver status for peripherals on RP2040 MC
## GPIO
-
-
+
+
::: warning
The GPIO pins of the RP2040 are not 5V tolerant!
diff --git a/docs/public/0GNIYY0.jpg b/docs/public/0GNIYY0.jpg
new file mode 100644
index 0000000000..ccf2f5dcbe
Binary files /dev/null and b/docs/public/0GNIYY0.jpg differ
diff --git a/docs/public/1TPAhrs.jpg b/docs/public/1TPAhrs.jpg
new file mode 100644
index 0000000000..1629c8f3a5
Binary files /dev/null and b/docs/public/1TPAhrs.jpg differ
diff --git a/docs/public/2wUZNWk.png b/docs/public/2wUZNWk.png
new file mode 100644
index 0000000000..a1e5355a4c
Binary files /dev/null and b/docs/public/2wUZNWk.png differ
diff --git a/docs/public/3RrSjzW.png b/docs/public/3RrSjzW.png
new file mode 100644
index 0000000000..af17f0c759
Binary files /dev/null and b/docs/public/3RrSjzW.png differ
diff --git a/docs/public/4wjJzBU.png b/docs/public/4wjJzBU.png
new file mode 100644
index 0000000000..c152bc0a23
Binary files /dev/null and b/docs/public/4wjJzBU.png differ
diff --git a/docs/public/5wsh5wM.png b/docs/public/5wsh5wM.png
new file mode 100644
index 0000000000..9242e0c4b0
Binary files /dev/null and b/docs/public/5wsh5wM.png differ
diff --git a/docs/public/8Toomz4.jpg b/docs/public/8Toomz4.jpg
new file mode 100644
index 0000000000..6099dd2b4b
Binary files /dev/null and b/docs/public/8Toomz4.jpg differ
diff --git a/docs/public/AvXZShD.jpg b/docs/public/AvXZShD.jpg
new file mode 100644
index 0000000000..fc7272e1d6
Binary files /dev/null and b/docs/public/AvXZShD.jpg differ
diff --git a/docs/public/BPEC5n5.jpg b/docs/public/BPEC5n5.jpg
new file mode 100644
index 0000000000..99f18115c1
Binary files /dev/null and b/docs/public/BPEC5n5.jpg differ
diff --git a/docs/public/BmAvoUC.png b/docs/public/BmAvoUC.png
new file mode 100644
index 0000000000..f44fd1ce5c
Binary files /dev/null and b/docs/public/BmAvoUC.png differ
diff --git a/docs/public/Bu4mk9m.png b/docs/public/Bu4mk9m.png
new file mode 100644
index 0000000000..e80e6b751e
Binary files /dev/null and b/docs/public/Bu4mk9m.png differ
diff --git a/docs/public/CWYmsk8.png b/docs/public/CWYmsk8.png
new file mode 100644
index 0000000000..2d1f186cef
Binary files /dev/null and b/docs/public/CWYmsk8.png differ
diff --git a/docs/public/CnASmPo.jpg b/docs/public/CnASmPo.jpg
new file mode 100644
index 0000000000..128cc806a1
Binary files /dev/null and b/docs/public/CnASmPo.jpg differ
diff --git a/docs/public/DkEhj9x.png b/docs/public/DkEhj9x.png
new file mode 100644
index 0000000000..6a31d1f1d2
Binary files /dev/null and b/docs/public/DkEhj9x.png differ
diff --git a/docs/public/DxMHpJ8.jpg b/docs/public/DxMHpJ8.jpg
new file mode 100644
index 0000000000..179c2b6b69
Binary files /dev/null and b/docs/public/DxMHpJ8.jpg differ
diff --git a/docs/public/EGrPM1L.png b/docs/public/EGrPM1L.png
new file mode 100644
index 0000000000..5b7bbd4ea7
Binary files /dev/null and b/docs/public/EGrPM1L.png differ
diff --git a/docs/public/EVkxOt1.png b/docs/public/EVkxOt1.png
new file mode 100644
index 0000000000..56f862ccb7
Binary files /dev/null and b/docs/public/EVkxOt1.png differ
diff --git a/docs/public/FRShcLD.png b/docs/public/FRShcLD.png
new file mode 100644
index 0000000000..6f91c1cff5
Binary files /dev/null and b/docs/public/FRShcLD.png differ
diff --git a/docs/public/HL5DP8H.png b/docs/public/HL5DP8H.png
new file mode 100644
index 0000000000..523d59f98d
Binary files /dev/null and b/docs/public/HL5DP8H.png differ
diff --git a/docs/public/Hx0E5kC.png b/docs/public/Hx0E5kC.png
new file mode 100644
index 0000000000..67717e1e89
Binary files /dev/null and b/docs/public/Hx0E5kC.png differ
diff --git a/docs/public/JKngtTw.png b/docs/public/JKngtTw.png
new file mode 100644
index 0000000000..5c38745181
Binary files /dev/null and b/docs/public/JKngtTw.png differ
diff --git a/docs/public/JcDhZll.png b/docs/public/JcDhZll.png
new file mode 100644
index 0000000000..8d4b74268a
Binary files /dev/null and b/docs/public/JcDhZll.png differ
diff --git a/docs/public/N1NYcSz.jpg b/docs/public/N1NYcSz.jpg
new file mode 100644
index 0000000000..f3e0c694e6
Binary files /dev/null and b/docs/public/N1NYcSz.jpg differ
diff --git a/docs/public/Ojydlaj.jpg b/docs/public/Ojydlaj.jpg
new file mode 100644
index 0000000000..989a611813
Binary files /dev/null and b/docs/public/Ojydlaj.jpg differ
diff --git a/docs/public/QeY6kMQ.png b/docs/public/QeY6kMQ.png
new file mode 100644
index 0000000000..b990847c1c
Binary files /dev/null and b/docs/public/QeY6kMQ.png differ
diff --git a/docs/public/QiA3ta6.jpg b/docs/public/QiA3ta6.jpg
new file mode 100644
index 0000000000..a10b4165c4
Binary files /dev/null and b/docs/public/QiA3ta6.jpg differ
diff --git a/docs/public/RFyNMlL.jpg b/docs/public/RFyNMlL.jpg
new file mode 100644
index 0000000000..1cfd86f6ef
Binary files /dev/null and b/docs/public/RFyNMlL.jpg differ
diff --git a/docs/public/UlJ4ZDP.png b/docs/public/UlJ4ZDP.png
new file mode 100644
index 0000000000..d38f40deed
Binary files /dev/null and b/docs/public/UlJ4ZDP.png differ
diff --git a/docs/public/aEs2RuA.png b/docs/public/aEs2RuA.png
new file mode 100644
index 0000000000..af3ad19053
Binary files /dev/null and b/docs/public/aEs2RuA.png differ
diff --git a/docs/public/aTnG8TV.jpg b/docs/public/aTnG8TV.jpg
new file mode 100644
index 0000000000..6337adf10e
Binary files /dev/null and b/docs/public/aTnG8TV.jpg differ
diff --git a/docs/public/anw9cOL.png b/docs/public/anw9cOL.png
new file mode 100644
index 0000000000..09740d1da5
Binary files /dev/null and b/docs/public/anw9cOL.png differ
diff --git a/docs/public/b4b7KDb.jpg b/docs/public/b4b7KDb.jpg
new file mode 100644
index 0000000000..76acd2cf5c
Binary files /dev/null and b/docs/public/b4b7KDb.jpg differ
diff --git a/docs/public/b8VgXzx.png b/docs/public/b8VgXzx.png
new file mode 100644
index 0000000000..9aa32c22dd
Binary files /dev/null and b/docs/public/b8VgXzx.png differ
diff --git a/docs/public/eGO0ohO.jpg b/docs/public/eGO0ohO.jpg
new file mode 100644
index 0000000000..d1c9b730a0
Binary files /dev/null and b/docs/public/eGO0ohO.jpg differ
diff --git a/docs/public/eHJjmnU.jpg b/docs/public/eHJjmnU.jpg
new file mode 100644
index 0000000000..aebbc9d200
Binary files /dev/null and b/docs/public/eHJjmnU.jpg differ
diff --git a/docs/public/fmDvDzR.png b/docs/public/fmDvDzR.png
new file mode 100644
index 0000000000..3284d2a8fc
Binary files /dev/null and b/docs/public/fmDvDzR.png differ
diff --git a/docs/public/hcegguh.png b/docs/public/hcegguh.png
new file mode 100644
index 0000000000..98ad8ff19c
Binary files /dev/null and b/docs/public/hcegguh.png differ
diff --git a/docs/public/mBe5vkL.jpg b/docs/public/mBe5vkL.jpg
new file mode 100644
index 0000000000..8174d8c080
Binary files /dev/null and b/docs/public/mBe5vkL.jpg differ
diff --git a/docs/public/nCgeolTh.png b/docs/public/nCgeolTh.png
new file mode 100644
index 0000000000..c92cbedb9f
Binary files /dev/null and b/docs/public/nCgeolTh.png differ
diff --git a/docs/public/nLaiYDE.jpg b/docs/public/nLaiYDE.jpg
new file mode 100644
index 0000000000..b31413693c
Binary files /dev/null and b/docs/public/nLaiYDE.jpg differ
diff --git a/docs/public/o7WLvBl.png b/docs/public/o7WLvBl.png
new file mode 100644
index 0000000000..abd42d8c05
Binary files /dev/null and b/docs/public/o7WLvBl.png differ
diff --git a/docs/public/oHYR1yW.png b/docs/public/oHYR1yW.png
new file mode 100644
index 0000000000..77bc73238d
Binary files /dev/null and b/docs/public/oHYR1yW.png differ
diff --git a/docs/public/oITudbX.jpg b/docs/public/oITudbX.jpg
new file mode 100644
index 0000000000..7edcb5781a
Binary files /dev/null and b/docs/public/oITudbX.jpg differ
diff --git a/docs/public/vkYVo66.jpg b/docs/public/vkYVo66.jpg
new file mode 100644
index 0000000000..fd77a22b25
Binary files /dev/null and b/docs/public/vkYVo66.jpg differ
diff --git a/docs/public/z2QlKfB.jpg b/docs/public/z2QlKfB.jpg
new file mode 100644
index 0000000000..59ca44303b
Binary files /dev/null and b/docs/public/z2QlKfB.jpg differ
diff --git a/docs/public/zmwOL5P.png b/docs/public/zmwOL5P.png
new file mode 100644
index 0000000000..0921dff37d
Binary files /dev/null and b/docs/public/zmwOL5P.png differ
diff --git a/docs/quantum_painter.md b/docs/quantum_painter.md
index fbc72cb053..bbe8944516 100644
--- a/docs/quantum_painter.md
+++ b/docs/quantum_painter.md
@@ -534,8 +534,6 @@ QUANTUM_PAINTER_DRIVERS += surface
Creating a surface in firmware can then be done with the following APIs:
```c
-// 24bpp RGB888 surface:
-painter_device_t qp_make_rgb888_surface(uint16_t panel_width, uint16_t panel_height, void *buffer);
// 16bpp RGB565 surface:
painter_device_t qp_make_rgb565_surface(uint16_t panel_width, uint16_t panel_height, void *buffer);
// 1bpp monochrome surface:
diff --git a/docs/reference_configurator_support.md b/docs/reference_configurator_support.md
index d0824c7705..4f2ddfffe8 100644
--- a/docs/reference_configurator_support.md
+++ b/docs/reference_configurator_support.md
@@ -189,15 +189,25 @@ Currently, the Configurator does not support key rotation or non-rectangular key
For ISO Enter keys, QMK custom is to display it as a rectangular key, 1.25u wide and 2u high, aligned so its right edge is aligned with the right edge of the alphanumeric key block.
-
+
*A 60% keyboard in standard ISO layout, as rendered by QMK Configurator.*
#### Vertically-offset keys
For vertically-offset keys, place them in KLE as if they were not offset, then edit the Y-values as needed in the converted JSON file
-
+
*An 1800-layout keyboard as rendered in Keyboard Layout Editor, without the vertical offset applied to the arrow keys.*
-
-*A Unix diff file, showing the changes needed to vertically-offset the arrow keys in our keyboard's JSON file.*
+```diff
+-{"label": "\u2191", "x", 14.25, "y": 5},
++{"label": "\u2191", "x", 14.25, "y": 5.25},
+...
+-{"label": "\u2190", "x", 13.25, "y": 6},
+-{"label": "\u2193", "x", 14.25, "y": 6},
+-{"label": "\u2192", "x", 15.25, "y": 6},
++{"label": "\u2190", "x", 13.25, "y": 6.25},
++{"label": "\u2193", "x", 14.25, "y": 6.25},
++{"label": "\u2192", "x", 15.25, "y": 6.25},
+```
+*A diff showing the changes needed to vertically-offset the arrow keys in our keyboard's JSON file.*
diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md
index 91ab7f4577..84377ef36c 100644
--- a/docs/reference_info_json.md
+++ b/docs/reference_info_json.md
@@ -415,9 +415,6 @@ Configures the [LED Matrix](features/led_matrix) feature.
* `center_point` Array: Number
* The centroid (geometric center) of the LEDs. Used for certain effects.
* Default: `[112, 32]`
- * `flag_steps` Array: Number
- * A list of flag bitfields that can be cycled through.
- * Default: `[255, 5, 0]`
* `default`
* `animation` String
* The default effect. Must be one of `led_matrix.animations`
@@ -431,9 +428,6 @@ Configures the [LED Matrix](features/led_matrix) feature.
* `speed` Number
* The default animation speed.
* Default: `128`
- * `flags` Number
- * The default LED flags.
- * Default: `255`
* `driver` String Required
* The driver to use. Must be one of `custom`, `is31fl3218`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `snled27351`.
* `layout` Array: Object Required
@@ -666,9 +660,6 @@ Configures the [RGB Matrix](features/rgb_matrix) feature.
* `center_point` Array: Number
* The centroid (geometric center) of the LEDs. Used for certain effects.
* Default: `[112, 32]`
- * `flag_steps` Array: Number
- * A list of flag bitfields that can be cycled through.
- * Default: `[255, 5, 2, 0]`
* `default`
* `animation` String
* The default effect. Must be one of `rgb_matrix.animations`
@@ -688,9 +679,6 @@ Configures the [RGB Matrix](features/rgb_matrix) feature.
* `speed` Number
* The default animation speed.
* Default: `128`
- * `flags` Number
- * The default LED flags.
- * Default: `255`
* `driver` String Required
* The driver to use. Must be one of `aw20216s`, `custom`, `is31fl3218`, `is31fl3236`, `is31fl3729`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `snled27351`, `ws2812`.
* `hue_steps` Number
diff --git a/docs/tap_hold.md b/docs/tap_hold.md
index 164be229f6..bc2c505040 100644
--- a/docs/tap_hold.md
+++ b/docs/tap_hold.md
@@ -1,15 +1,15 @@
# Tap-Hold Configuration Options
-While Tap-Hold options are fantastic, they are not without their issues. We have tried to configure them with reasonable defaults, but that may still cause issues for some people.
+While Tap-Hold options are fantastic, they are not without their issues. We have tried to configure them with reasonable defaults, but that may still cause issues for some people.
-These options let you modify the behavior of the Tap-Hold keys.
+These options let you modify the behavior of the tap-hold keys.
## Tapping Term
-The crux of all of the following features is the tapping term setting. This determines what is a tap and what is a hold. The exact timing for this to feel natural can vary from keyboard to keyboard, from switch to switch, and from key to key.
+The crux of all of the following features is the tapping term setting. This determines what is a tap and what is a hold. The exact timing for this to feel natural can vary from keyboard to keyboard, from switch to switch, and from key to key.
::: tip
-`DYNAMIC_TAPPING_TERM_ENABLE` enables three special keys that can help you quickly find a comfortable tapping term for you. See "Dynamic Tapping Term" for more details.
+`DYNAMIC_TAPPING_TERM_ENABLE` enables three special keys that can help you quickly find a comfortable tapping term for you. See [Dynamic Tapping Term](#dynamic-tapping-term) for more details.
:::
You can set the global time for this by adding the following setting to your `config.h`:
@@ -18,14 +18,14 @@ You can set the global time for this by adding the following setting to your `co
#define TAPPING_TERM 200
```
-This setting is defined in milliseconds and defaults to 200ms. This is a good average for the majority of people.
+This setting is defined in milliseconds and defaults to 200ms. This is a good average for the majority of people.
For more granular control of this feature, you can add the following to your `config.h`:
```c
#define TAPPING_TERM_PER_KEY
```
-You can then add the following function to your keymap:
+You can then add the following function to your `keymap.c` to customise the tapping term for each key:
```c
uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
@@ -40,9 +40,41 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
}
```
+### Example
+
+You can compare keycodes to `QK_MOD_TAP`/`QK_MOD_TAP_MAX` and `QK_LAYER_TAP`/`QK_LAYER_TAP_MAX` to filter out Mod-Tap/Layer-Tap keys, rather than checking such keys manually in a switch-case. For instance, this example sets all Mod-Tap keys to have a higher tapping term, while leaving all other tap-hold keys unchanged:
+
+```c
+uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QK_MOD_TAP ... QK_MOD_TAP_MAX:
+ return TAPPING_TERM + 100;
+ default:
+ return TAPPING_TERM;
+ }
+}
+```
+
+You can also use functions like `QK_MOD_TAP_GET_MODS`, `QK_LAYER_MOD_GET_MODS`, and `QK_ONE_SHOT_MOD_GET_MODS` to filter Mod-Tap/Layer-Mod/One Shot keys by their mods.
+
+For instance, this example sets a higher tapping term for `AltGr` Mod-Taps and lower tapping terms for `Shift` Mod-Taps:
+
+```c
+uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
+ uint8_t mod = mod_config(QK_MOD_TAP_GET_MODS(keycode));
+ if (mod & MOD_LSFT != 0 || mod & MOD_RSFT != 0) {
+ return 100;
+ }
+ if (mod & MOD_RALT != 0) {
+ return TAPPING_TERM + 50;
+ }
+ return TAPPING_TERM;
+}
+```
+
### Dynamic Tapping Term {#dynamic-tapping-term}
-`DYNAMIC_TAPPING_TERM_ENABLE` is a feature you can enable in `rules.mk` that lets you use three special keys in your keymap to configure the tapping term on the fly.
+`DYNAMIC_TAPPING_TERM_ENABLE` is a feature you can enable in `rules.mk` that lets you use three special keys in your keymap to configure the tapping term on the fly:
| Key | Aliases | Description |
|-------------------------------|---------|-------------------------------------------------------------------------------------------|
@@ -52,13 +84,13 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
Set the tapping term as usual with `#define TAPPING_TERM ` in `config.h` and add `DYNAMIC_TAPPING_TERM_ENABLE = yes` in `rules.mk`. Then, place the above three keys somewhere in your keymap and flash the new firmware onto your board.
-Now, you can try using your dual-role keys, such as layer-taps and mod-taps, and use `DT_DOWN` and `DT_UP` to adjust the tapping term immediately. If you find that you frequently trigger the modifier of your mod-tap(s) by accident, for example, that's a sign that your tapping term may be too low so tap `DT_UP` a few times to increase the tapping term until that no longer happens. On the flip side, if you get superfluous characters when you actually intended to momentarily activate a layer, tap `DT_DOWN` to lower the tapping term. Do note that these keys affect the *global* tapping term, you cannot change the tapping term of a specific key on the fly.
+Now, you can try using your dual-role keys such as Layer-Taps and Mod-Taps and use `DT_DOWN` and `DT_UP` to adjust the tapping term immediately. If you find that you frequently trigger the modifier of your Mod-Tap(s) by accident, for example, that's a sign that your tapping term may be too low, so tap `DT_UP` a few times to increase the tapping term until that no longer happens. Conversely, if you get superfluous characters when you actually intended to momentarily activate a layer, tap `DT_DOWN` to lower the tapping term. Do note that these keys affect the *global* tapping term, you cannot change the tapping term of a specific key on the fly.
-Once you're satisfied with the current tapping term value, open `config.h` and replace whatever value you first wrote for the tapping term by the output of the `DT_PRNT` key.
+Once you're satisfied with the current tapping term value, you can tap the `DT_PRNT` key to see your new tapping term, and you can replace the tapping term in `config.h` with this new value.
-It's important to update `TAPPING_TERM` with the new value because the adjustments made using `DT_UP` and `DT_DOWN` are not persistent.
+It's important to update `TAPPING_TERM` with the new value because the adjustments made using `DT_UP` and `DT_DOWN` are *not* persistent.
-The value by which the tapping term increases or decreases when you tap `DT_UP` and `DT_DOWN` can be configured in `config.h` with `#define DYNAMIC_TAPPING_TERM_INCREMENT `. Note that the tapping term is *not* modified when holding down the tap term keys so if you need to, for example, decrease the current tapping term by 50ms, you cannot just press down and hold `DT_DOWN`; you will have to tap it 10 times in a row with the default increment of 5ms.
+The value by which the tapping term increases or decreases when you tap `DT_UP` and `DT_DOWN` can be configured in `config.h` with `#define DYNAMIC_TAPPING_TERM_INCREMENT `. Note that the tapping term is *not* modified when *holding* down the tap term keys, so if you need to, for example, decrease the current tapping term by 50ms, you cannot just press down and hold `DT_DOWN`; you will have to tap it 10 times in a row with the default increment of 5ms.
If you need more flexibility, nothing prevents you from defining your own custom keys to dynamically change the tapping term.
@@ -97,7 +129,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
};
```
-In order for this feature to be effective if you use per-key tapping terms, you need to make a few changes to the syntax of the `get_tapping_term` function. All you need to do is replace every occurrence of `TAPPING_TERM` in the `get_tapping_term` function by lowercase `g_tapping_term`. If you don't do that, you will still see the value typed by `DT_PRNT` go up and down as you configure the tapping term on the fly but you won't feel those changes as they don't get applied. If you can go as low as 10ms and still easily trigger the tap function of a dual-role key, that's a sign that you forgot to make the necessary changes to your `get_tapping_term` function.
+In order for this feature to be effective, if you use per-key tapping terms, then you need to make a few changes to the syntax of the `get_tapping_term` function. All you need to do is replace every occurrence of `TAPPING_TERM` in the `get_tapping_term` function by lowercase `g_tapping_term`. If you don't do this, you will still see the value typed by `DT_PRNT` go up and down as you configure the tapping term on the fly, but you won't feel those changes as they don't get applied. If you can go as low as 10ms and still easily trigger the tap function of a dual-role key, that's a sign that you forgot to make the necessary changes to your `get_tapping_term` function.
For instance, here's how the example `get_tapping_term` shown earlier should look after the transformation:
@@ -114,23 +146,23 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
}
```
-The reason is that `TAPPING_TERM` is a macro that expands to a constant integer and thus cannot be changed at runtime whereas `g_tapping_term` is a variable whose value can be changed at runtime. If you want, you can temporarily enable `DYNAMIC_TAPPING_TERM_ENABLE` to find a suitable tapping term value and then disable that feature and revert back to using the classic syntax for per-key tapping term settings. In case you need to access the tapping term from elsewhere in your code, you can use the `GET_TAPPING_TERM(keycode, record)` macro. This macro will expand to whatever is the appropriate access pattern given the current configuration.
+The reason is that `TAPPING_TERM` is a macro that expands to a constant integer and thus cannot be changed at runtime, whereas `g_tapping_term` is a variable whose value can be changed at runtime. If you want, you can temporarily enable `DYNAMIC_TAPPING_TERM_ENABLE` to find a suitable tapping term value and then disable that feature and revert back to using the classic syntax for per-key tapping term settings. In case you need to access the tapping term from elsewhere in your code, you can use the `GET_TAPPING_TERM(keycode, record)` macro. This macro will expand to whatever is the appropriate access pattern given the current configuration.
## Tap-Or-Hold Decision Modes
The code which decides between the tap and hold actions of dual-role keys supports three different modes, in increasing order of preference for the hold action:
-1. The default mode selects the hold action only if the dual-role key is held down longer than the tapping term. In this mode pressing other keys while the dual-role key is held down does not influence the tap-or-hold decision. In other words, this mode ignores interrupts.
+1. The default mode selects the hold action only if the dual-role key is held down longer than the tapping term. In this mode, pressing other keys while the dual-role key is held down does not influence the tap-or-hold decision. In other words, this mode ignores interrupts.
-2. The “permissive hold” mode, in addition to the default behavior, immediately selects the hold action when another key is tapped (pressed and then released) while the dual-role key is held down, even if this happens earlier than the tapping term. If another key is just pressed, but then the dual-role key is released before that other key (and earlier than the tapping term), this mode will still select the tap action.
+2. The "permissive hold" mode, in addition to the default behavior, immediately selects the hold action when another key is tapped (pressed and then released) while the dual-role key is held down, even if this happens earlier than the tapping term. If another key is just pressed, but then the dual-role key is released before that other key (and earlier than the tapping term), this mode will still select the tap action. That is, this mode converts "nested" sequences, but not "rolls".
-3. The “hold on other key press” mode, in addition to the default behavior, immediately selects the hold action when another key is pressed while the dual-role key is held down, even if this happens earlier than the tapping term.
+3. The "hold on other key press" mode, in addition to the default behavior, immediately selects the hold action when another key is pressed while the dual-role key is held down, even if this happens earlier than the tapping term.
Note that until the tap-or-hold decision completes (which happens when either the dual-role key is released, or the tapping term has expired, or the extra condition for the selected decision mode is satisfied), key events are delayed and not transmitted to the host immediately. The default mode gives the most delay (if the dual-role key is held down, this mode always waits for the whole tapping term), and the other modes may give less delay when other keys are pressed, because the hold action may be selected earlier.
### Comparison {#comparison}
-To better illustrate the tap-or-hold decision modes, let us compare the expected output of each decision mode in a handful of tapping scenarios involving a mod-tap key (`LSFT_T(KC_A)`) and a regular key (`KC_B`) with the `TAPPING_TERM` set to 200ms.
+To better illustrate the tap-or-hold decision modes, let us compare the expected output of each decision mode in a handful of tapping scenarios involving a Mod-Tap key (`LSFT_T(KC_A)`) and a regular key (`KC_B`) with the `TAPPING_TERM` set to 200ms.
Note: "`kc` held" in the "Physical key event" column means that the key wasn't physically released yet at this point in time.
@@ -228,7 +260,7 @@ The above sequence will not send `KC_RGHT` but `KC_A` `KC_L` instead, since `LT(
---
-Example sequence 3 (Mod Tap):
+Example sequence 3 (Mod-Tap):
```
TAPPING_TERM
@@ -246,17 +278,17 @@ followed by any key event that happened after the initial press of `SFT_T(KC_A)`
### Permissive Hold
-The “permissive hold” mode can be enabled for all dual-role keys by adding the corresponding option to `config.h`:
+The "permissive hold" mode can be enabled for all dual-role keys by adding the corresponding option to `config.h`:
```c
#define PERMISSIVE_HOLD
```
-This makes tap and hold keys (like Layer Tap) work better for fast typists, or for high `TAPPING_TERM` settings.
+This makes tap and hold keys (like Layer-Tap) work better for fast typists, or for high `TAPPING_TERM` settings.
-If you press a dual-role key, tap another key (press and release) and then release the dual-role key, all within the tapping term, by default the dual-role key will perform its tap action. If the `PERMISSIVE_HOLD` option is enabled, the dual-role key will perform its hold action instead.
+If you press a dual-role key, tap another key (press and release) and then release the dual-role key, all within the tapping term, by default the dual-role key will perform its tap action. If the `PERMISSIVE_HOLD` option is enabled, the dual-role key will perform its hold action instead.
-An example of a sequence that is affected by the “permissive hold” mode:
+An example of a sequence that is affected by the "permissive hold" mode:
- `LT(2, KC_A)` Down
- `KC_L` Down (the `L` key is also mapped to `KC_RGHT` on layer 2)
@@ -275,9 +307,9 @@ An example of a sequence that is affected by the “permissive hold” mode:
+---------------------------|--------+
```
-Normally, if you do all this within the `TAPPING_TERM` (default: 200ms), this will be registered as `al` by the firmware and host system. With the `PERMISSIVE_HOLD` option enabled, the Layer Tap key is considered as a layer switch if another key is tapped, and the above sequence would be registered as `KC_RGHT` (the mapping of `L` on layer 2). We could describe this sequence as a “nested tap” (the modified key's key down and key up events are “nested” between the dual-role key's key down and key up events).
+Normally, if you do all this within the `TAPPING_TERM` (default: 200ms), this will be registered as `al` by the firmware and host system. With the `PERMISSIVE_HOLD` option enabled, the Layer-Tap key is considered as a layer switch if another key is tapped, and the above sequence would be registered as `KC_RGHT` (the mapping of `L` on layer 2). We could describe this sequence as a "nested tap" (the modified key's key down and key up events are "nested" between the dual-role key's key down and key up events).
-However, this slightly different sequence will not be affected by the “permissive hold” mode:
+However, this slightly different sequence will not be affected by the "permissive hold" mode:
- `LT(2, KC_A)` Down
- `KC_L` Down (the `L` key is also mapped to `KC_RGHT` on layer 2)
@@ -296,10 +328,10 @@ However, this slightly different sequence will not be affected by the “permiss
+---------------------------|--------+
```
-In the sequence above the dual-role key is released before the other key is released, and if that happens within the tapping term, the “permissive hold” mode will still choose the tap action for the dual-role key, and the sequence will be registered as `al` by the host. We could describe this as a “rolling press” (the two keys' key down and key up events behave as if you were rolling a ball across the two keys, first pressing each key down in sequence and then releasing them in the same order).
+In the sequence above the dual-role key is released before the other key is released, and if that happens within the tapping term, the "permissive hold" mode will still choose the tap action for the dual-role key, and the sequence will be registered as `al` by the host. We could describe this as a "rolling press" (the two keys' key down and key up events behave as if you were rolling a ball across the two keys, first pressing each key down in sequence and then releasing them in the same order).
::: tip
-The `PERMISSIVE_HOLD` option is not noticeable if you also enable `HOLD_ON_OTHER_KEY_PRESS` because the latter option considers both the “nested tap” and “rolling press” sequences like shown above as a hold action, not the tap action. `HOLD_ON_OTHER_KEY_PRESS` makes the Tap-Or-Hold decision earlier in the chain of key events, thus taking a precedence over `PERMISSIVE_HOLD`.
+The `PERMISSIVE_HOLD` option is not noticeable if you also enable `HOLD_ON_OTHER_KEY_PRESS` because the latter option considers both the "nested tap" and "rolling press" sequences like shown above as a hold action, not the tap action. `HOLD_ON_OTHER_KEY_PRESS` makes the tap-or-hold decision earlier in the chain of key events, thus taking a precedence over `PERMISSIVE_HOLD`.
:::
For more granular control of this feature, you can add the following to your `config.h`:
@@ -323,19 +355,21 @@ bool get_permissive_hold(uint16_t keycode, keyrecord_t *record) {
}
```
+As in the earlier example, you can filter Mod-Tap/Layer-Mod/One Shot keys by their mods rather than checking such keys manually in a switch-case. (Also applicable to the other following `PER_KEY` functions.)
+
### Hold On Other Key Press
-The “hold on other key press” mode can be enabled for all dual-role keys by adding the corresponding option to `config.h`:
+The "hold on other key press" mode can be enabled for all dual-role keys by adding the corresponding option to `config.h`:
```c
#define HOLD_ON_OTHER_KEY_PRESS
```
-This mode makes tap and hold keys (like Layer Tap) work better for fast typists, or for high `TAPPING_TERM` settings. Compared to the “permissive hold” mode, this mode selects the hold action in more cases.
+This mode makes tap and hold keys (like Layer-Tap) work better for fast typists, or for high `TAPPING_TERM` settings. Compared to the "permissive hold" mode, this mode selects the hold action in more cases.
-If you press a dual-role key, press another key, and then release the dual-role key, all within the tapping term, by default the dual-role key will perform its tap action. If the `HOLD_ON_OTHER_KEY_PRESS` option is enabled, the dual-role key will perform its hold action instead.
+If you press a dual-role key, press another key, and then release the dual-role key, all within the tapping term, by default the dual-role key will perform its tap action. If the `HOLD_ON_OTHER_KEY_PRESS` option is enabled, the dual-role key will perform its hold action instead.
-An example of a sequence that is affected by the “hold on other key press” mode, but not by the “permissive hold” mode:
+An example of a sequence that is affected by the "hold on other key press" mode, but not by the "permissive hold" mode:
- `LT(2, KC_A)` Down
- `KC_L` Down (the `L` key is also mapped to `KC_RGHT` on layer 2)
@@ -354,7 +388,7 @@ An example of a sequence that is affected by the “hold on other key press” m
+---------------------------|--------+
```
-Normally, if you do all this within the `TAPPING_TERM` (default: 200ms), this will be registered as `al` by the firmware and host system. With the `HOLD_ON_OTHER_KEY_PRESS` option enabled, the Layer Tap key is considered as a layer switch if another key is pressed, and the above sequence would be registered as `KC_RGHT` (the mapping of `L` on layer 2).
+Normally, if you do all this within the `TAPPING_TERM` (default: 200ms), this will be registered as `al` by the firmware and host system. With the `HOLD_ON_OTHER_KEY_PRESS` option enabled, the Layer-Tap key is considered as a layer switch if another key is pressed, and the above sequence would be registered as `KC_RGHT` (the mapping of `L` on layer 2).
For more granular control of this feature, you can add the following to your `config.h`:
@@ -394,9 +428,9 @@ Example:
- `SFT_T(KC_A)` Down
- (wait until tapping term expires...)
-With default settings, `a` will be sent on the first release, then `a` will be sent on the second press allowing the computer to trigger its auto repeat function until the key is released.
+With default settings, `a` will be sent on the first release, then `a` will be sent on the second press, allowing the computer to trigger its auto repeat function until the key is released.
-With `QUICK_TAP_TERM` configured, the timing between `SFT_T(KC_A)` up and `SFT_T(KC_A)` down must be within `QUICK_TAP_TERM` to trigger auto repeat. Otherwise the second press will be sent as a Shift. If `QUICK_TAP_TERM` is set to `0`, the second press will always be sent as a Shift, effectively disabling auto-repeat.
+With `QUICK_TAP_TERM` configured, the timing between `SFT_T(KC_A)` up and `SFT_T(KC_A)` down must be within `QUICK_TAP_TERM` to trigger auto-repeat. Otherwise, the second press will be sent as a Shift. If `QUICK_TAP_TERM` is set to `0`, the second press will always be sent as a Shift, effectively disabling auto-repeat.
::: warning
`QUICK_TAP_TERM` timing will also impact anything that uses tapping toggles (Such as the `TT` layer keycode, and the One Shot Tap Toggle).
@@ -714,10 +748,10 @@ bool get_retro_tapping(uint16_t keycode, keyrecord_t *record) {
}
```
-If the programs you use bind an action to taps of modifier keys (e.g. tapping left GUI to bring up the applications menu or tapping left Alt to focus the menu bar), you may find that using retro-tapping falsely triggers those actions. To counteract this, you can define a `DUMMY_MOD_NEUTRALIZER_KEYCODE` in `config.h` that will get sent in between the register and unregister events of a held mod-tap key. That way, the programs on your computer will no longer interpret the mod suppression induced by retro-tapping as a lone tap of a modifier key and will thus not falsely trigger the undesired action.
+If the programs you use bind an action to taps of modifier keys (e.g. tapping left GUI to bring up the applications menu or tapping left Alt to focus the menu bar), you may find that using retro-tapping falsely triggers those actions. To counteract this, you can define a `DUMMY_MOD_NEUTRALIZER_KEYCODE` in `config.h` that will get sent in between the register and unregister events of a held Mod-Tap key. That way, the programs on your computer will no longer interpret the mod suppression induced by retro-tapping as a lone tap of a modifier key and will thus not falsely trigger the undesired action.
Naturally, for this technique to be effective, you must choose a `DUMMY_MOD_NEUTRALIZER_KEYCODE` for which no keyboard shortcuts are bound to. Recommended values are: `KC_RIGHT_CTRL` or `KC_F18`.
-Please note that `DUMMY_MOD_NEUTRALIZER_KEYCODE` must be a basic, unmodified, HID keycode so values like `KC_NO`, `KC_TRANSPARENT` or `KC_PIPE` aka `S(KC_BACKSLASH)` are not permitted.
+Please note that `DUMMY_MOD_NEUTRALIZER_KEYCODE` must be a basic, unmodified, HID keycode, so values like `KC_NO`, `KC_TRANSPARENT`, or `KC_PIPE` (aka `S(KC_BACKSLASH)`) are not permitted.
By default, only left Alt and left GUI are neutralized. If you want to change the list of applicable modifier masks, use the following in your `config.h`:
@@ -743,14 +777,14 @@ Do not use `MOD_xxx` constants like `MOD_LSFT` or `MOD_RALT`, since they're 5-bi
### Retro Shift
-[Auto Shift,](features/auto_shift) has its own version of `retro tapping` called `retro shift`. It is extremely similar to `retro tapping`, but holding the key past `AUTO_SHIFT_TIMEOUT` results in the value it sends being shifted. Other configurations also affect it differently; see [here](features/auto_shift#retro-shift) for more information.
+[Auto Shift](features/auto_shift) has its own version of `retro tapping` called `retro shift`. It is extremely similar to `retro tapping`, but holding the key past `AUTO_SHIFT_TIMEOUT` results in the value it sends being shifted. Other configurations also affect it differently; see [here](features/auto_shift#retro-shift) for more information.
## Why do we include the key record for the per key functions?
One thing that you may notice is that we include the key record for all of the "per key" functions, and may be wondering why we do that.
-Well, it's simple really: customization. But specifically, it depends on how your keyboard is wired up. For instance, if each row is actually using a row in the keyboard's matrix, then it may be simpler to use `if (record->event.key.row == 3)` instead of checking a whole bunch of keycodes. Which is especially good for those people using the Tap Hold type keys on the home row. So you could fine-tune those to not interfere with your normal typing.
+Well, it's simple really: customization. But specifically, it depends on how your keyboard is wired up. For instance, if each row is actually using a row in the keyboard's matrix, then it may be simpler to use `if (record->event.key.row == 3)` instead of checking a whole bunch of keycodes, which is especially good for those people using the tap-hold keys on the home row (see about *home row mods* [here](https://precondition.github.io/home-row-mods)). So, you could fine-tune those to not interfere with your normal typing.
## Why are there no `*_kb` or `*_user` functions?!
-Unlike many of the other functions here, there isn't a need (or even reason) to have a quantum or keyboard-level function. Only user-level functions are useful here, so no need to mark them as such.
+Unlike many of the other functions here, there isn't a need (or even reason) to have a quantum- or keyboard-level function. Only user-level functions are useful here, so there is no need to mark them as such.
\ No newline at end of file
diff --git a/docs/understanding_qmk.md b/docs/understanding_qmk.md
index ad5afdc56a..a47617c418 100644
--- a/docs/understanding_qmk.md
+++ b/docs/understanding_qmk.md
@@ -51,7 +51,7 @@ Matrix Scanning runs many times per second. The exact rate varies but typically
Once we know the state of every switch on our keyboard we have to map that to a keycode. In QMK this is done by making use of C macros to allow us to separate the definition of the physical layout from the definition of keycodes.
-At the keyboard level we define a C macro (typically named `LAYOUT()`) which maps our keyboard's matrix to physical keys. Sometimes the matrix does not have a switch in every location, and we can use this macro to pre-populate those with KC_NO, making the keymap definition easier to work with. Here's an example `LAYOUT()` macro for a numpad:
+At the keyboard level, QMK will generate a macro (typically named `LAYOUT()`) from our configuration file `info.json`, which then maps our keyboard's matrix to physical keys. Sometimes the matrix does not have a switch in every location, and QMK will use this macro to pre-populate those with KC_NO, making the keymap definition easier to work with. Here's an example `LAYOUT()` macro for a numpad:
```c
#define LAYOUT( \
@@ -71,7 +71,7 @@ At the keyboard level we define a C macro (typically named `LAYOUT()`) which map
Notice how the second block of our `LAYOUT()` macro matches the Matrix Scanning array above? This macro is what will map the matrix scanning array to keycodes. However, if you look at a 17 key numpad you'll notice that it has 3 places where the matrix could have a switch but doesn't, due to larger keys. We have populated those spaces with `KC_NO` so that our keymap definition doesn't have to.
-You can also use this macro to handle unusual matrix layouts, for example the [Alice](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/keyboards/sneakbox/aliceclone/aliceclone.h#L24). Explaining that is outside the scope of this document.
+This macro can handle unusual matrix layouts, for example the [Alice](https://github.com/qmk/qmk_firmware/blob/325da02e57fe7374e77b82cb00360ba45167e25c/keyboards/sneakbox/aliceclone/aliceclone.h#L24). Explaining that is outside the scope of this document.
##### Keycode Assignment
diff --git a/drivers/oled/glcdfont.c b/drivers/oled/glcdfont.c
index 4099389691..0e201d71ee 100644
--- a/drivers/oled/glcdfont.c
+++ b/drivers/oled/glcdfont.c
@@ -1,256 +1,16 @@
-// Copyright 2025 QMK
-// SPDX-License-Identifier: GPL-2.0-or-later WITH BSD-2-Clause
-
#include "progmem.h"
-/**
- * QMK 6x8 Font for LCD and OLED displays
- *
- * Derived from the first half of the Adafruit GFX Library font:
- * https://github.com/adafruit/Adafruit-GFX-Library
- *
- * The first 128 characters match that of code page 437, the character set used by the original IBM PC, which includes all printable ASCII characters.
- * Each byte represents a column of 8 pixels, with the least significant bit being the top of the glyph.
- *
- * A large 21x3 character QMK Firmware logo is encoded from 0x80-0x94, 0xA0-0xB4, and 0xC0-0xD4.
- * 2x2 character OS logos for Apple, Windows, Linux and Android are encoded from 0x95-0x9C and 0xB5-0xBC.
- */
+// Helidox 8x6 font with QMK Firmware Logo
+// Online editor: http://teripom.x0.com/
+
static const unsigned char font[] PROGMEM = {
- 0x07, 0x08, 0x7F, 0x08, 0x07, 0x00, // 0x00 NUL / Ψ
- 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, // 0x01 SOH / ☺︎
- 0xC1, 0x94, 0xB0, 0x94, 0xC1, 0x00, // 0x02 STX / ☻
- 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, // 0x03 ETX / ♥︎
- 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, // 0x04 EOT / ♦︎
- 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, // 0x05 ENQ / ♣︎
- 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, // 0x06 ACK / ♠︎
- 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, // 0x07 BEL / •
- 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, // 0x08 BS / ◘
- 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, // 0x09 HT / ○
- 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, // 0x0A LF / ◙
- 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, // 0x0B VT / ♂︎
- 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, // 0x0C FF / ♀︎
- 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, // 0x0D CR / ♪
- 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, // 0x0E SO / ♫
- 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, // 0x0F SI / ☼
-
- 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, // 0x10 DLE / ►
- 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, // 0x11 DC1 / ◄
- 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, // 0x12 DC2 / ↕︎
- 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, // 0x13 DC3 / ‼︎
- 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, // 0x14 DC4 / ¶
- 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, // 0x15 NAK / §
- 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, // 0x16 SYN / ▬
- 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, // 0x17 ETB / ↨
- 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, // 0x18 CAN / ↑
- 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, // 0x19 EM / ↓
- 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, // 0x1A SUB / →
- 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, // 0x1B ESC / ←
- 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, // 0x1C FS / ∟
- 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, // 0x1D GS / ↔︎
- 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, // 0x1E RS / ▲
- 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, // 0x1F US / ▼
-
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x20 Space
- 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, // 0x21 !
- 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, // 0x22 "
- 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, // 0x23 #
- 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, // 0x24 $
- 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, // 0x25 %
- 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, // 0x26 &
- 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, // 0x27 '
- 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, // 0x28 (
- 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, // 0x29 )
- 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, // 0x2A *
- 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, // 0x2B +
- 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, // 0x2C ,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, // 0x2D -
- 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, // 0x2E .
- 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, // 0x2F /
-
- 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, // 0x30 0
- 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, // 0x31 1
- 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, // 0x32 2
- 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, // 0x33 3
- 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, // 0x34 4
- 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, // 0x35 5
- 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, // 0x36 6
- 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, // 0x37 7
- 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, // 0x38 8
- 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, // 0x39 9
- 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, // 0x3A :
- 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, // 0x3B ;
- 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, // 0x3C <
- 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, // 0x3D =
- 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, // 0x3E >
- 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, // 0x3F ?
-
- 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, // 0x40 @
- 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, // 0x41 A
- 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, // 0x42 B
- 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, // 0x43 C
- 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, // 0x44 D
- 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, // 0x45 E
- 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, // 0x46 F
- 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, // 0x47 G
- 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, // 0x48 H
- 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, // 0x49 I
- 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, // 0x4A J
- 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, // 0x4B K
- 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, // 0x4C L
- 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, // 0x4D M
- 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, // 0x4E N
- 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, // 0x4F O
-
- 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, // 0x50 P
- 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, // 0x51 Q
- 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, // 0x52 R
- 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, // 0x53 S
- 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, // 0x54 T
- 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, // 0x55 U
- 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, // 0x56 V
- 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, // 0x57 W
- 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, // 0x58 X
- 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, // 0x59 Y
- 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, // 0x5A Z
- 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, // 0x5B [
- 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, // 0x5C Backslash
- 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, // 0x5D ]
- 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, // 0x5E ^
- 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, // 0x5F _
-
- 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, // 0x60 `
- 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, // 0x61 a
- 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, // 0x62 b
- 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, // 0x63 c
- 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, // 0x64 d
- 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, // 0x65 e
- 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, // 0x66 f
- 0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x00, // 0x67 g
- 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, // 0x68 h
- 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, // 0x69 i
- 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, // 0x6A j
- 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, // 0x6B k
- 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, // 0x6C l
- 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, // 0x6D m
- 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, // 0x6E n
- 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, // 0x6F o
-
- 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00, // 0x70 p
- 0x18, 0x24, 0x24, 0x18, 0xFC, 0x00, // 0x71 q
- 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, // 0x72 r
- 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, // 0x73 s
- 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, // 0x74 t
- 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, // 0x75 u
- 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, // 0x76 v
- 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, // 0x77 w
- 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, // 0x78 x
- 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, // 0x79 y
- 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, // 0x7A z
- 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, // 0x7B {
- 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, // 0x7C |
- 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, // 0x7D }
- 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, // 0x7E ~
- 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, // 0x7F DEL / ⌂
-
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80 QMK Logo Top 1
- 0x00, 0x00, 0x80, 0x80, 0xE0, 0xF0, // 0x81 QMK Logo Top 2
- 0xF0, 0xFC, 0x70, 0xFC, 0xF0, 0x7C, // 0x82 QMK Logo Top 3
- 0xF0, 0xFC, 0x70, 0xFC, 0xF0, 0xF0, // 0x83 QMK Logo Top 4
- 0xE0, 0x80, 0x80, 0x00, 0x00, 0x00, // 0x84 QMK Logo Top 5
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x85 QMK Logo Top 6
- 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, // 0x86 QMK Logo Top 7
- 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, // 0x87 QMK Logo Top 8
- 0x00, 0x80, 0x80, 0x00, 0x80, 0x80, // 0x88 QMK Logo Top 9
- 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, // 0x89 QMK Logo Top 10
- 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, // 0x8A QMK Logo Top 11
- 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, // 0x8B QMK Logo Top 12
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x8C QMK Logo Top 13
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x8D QMK Logo Top 14
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x8E QMK Logo Top 15
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x8F QMK Logo Top 16
-
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x90 QMK Logo Top 17
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x91 QMK Logo Top 18
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x92 QMK Logo Top 19
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x93 QMK Logo Top 20
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x94 QMK Logo Top 21
- 0x00, 0xC0, 0xF0, 0xF8, 0xFC, 0x3E, // 0x95 Apple Logo TL
- 0x1E, 0x06, 0x01, 0x00, 0x00, 0x00, // 0x96 Apple Logo TR
- 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, // 0x97 Windows Logo TL
- 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, // 0x98 Windows Logo TR
- 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, // 0x99 Linux Logo TL
- 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, // 0x9A Linux Logo TR
- 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, // 0x9B Android Logo TL
- 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, // 0x9C Android Logo TR
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x9D
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x9E
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x9F
-
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xA0 QMK Logo Middle 1
- 0x00, 0x00, 0xAA, 0xAA, 0xFF, 0xFF, // 0xA1 QMK Logo Middle 2
- 0xFF, 0xFF, 0xE0, 0xDF, 0xDF, 0x00, // 0xA2 QMK Logo Middle 3
- 0xDF, 0xDF, 0xE0, 0xFF, 0xFF, 0xFF, // 0xA3 QMK Logo Middle 4
- 0xFF, 0xAA, 0xAA, 0x00, 0x00, 0x00, // 0xA4 QMK Logo Middle 5
- 0x00, 0x00, 0x00, 0x00, 0x3E, 0x7F, // 0xA5 QMK Logo Middle 6
- 0xC1, 0xC1, 0xC1, 0x7F, 0x3E, 0x00, // 0xA6 QMK Logo Middle 7
- 0xFF, 0xFF, 0x0F, 0x3C, 0x78, 0x3C, // 0xA7 QMK Logo Middle 8
- 0x0F, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, // 0xA8 QMK Logo Middle 9
- 0x1C, 0x3E, 0x77, 0xE3, 0xC1, 0x00, // 0xA9 QMK Logo Middle 10
- 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, // 0xAA QMK Logo Middle 11
- 0x19, 0x19, 0x19, 0x00, 0xFD, 0xFD, // 0xAB QMK Logo Middle 12
- 0x00, 0xFE, 0xFC, 0x06, 0x06, 0x00, // 0xAC QMK Logo Middle 13
- 0xFE, 0xFC, 0x06, 0x06, 0xFC, 0xFC, // 0xAD QMK Logo Middle 14
- 0x06, 0x06, 0xFE, 0xFC, 0x00, 0x1E, // 0xAE QMK Logo Middle 15
- 0x7C, 0xE0, 0x78, 0x0C, 0x78, 0xE0, // 0xAF QMK Logo Middle 16
-
- 0x7C, 0x1E, 0x00, 0x64, 0xF6, 0x92, // 0xB0 QMK Logo Middle 17
- 0x92, 0x7E, 0xFC, 0x00, 0xFE, 0xFC, // 0xB1 QMK Logo Middle 18
- 0x06, 0x06, 0x00, 0x3C, 0x7E, 0xD2, // 0xB2 QMK Logo Middle 19
- 0xD2, 0xDE, 0x4C, 0x00, 0x00, 0x00, // 0xB3 QMK Logo Middle 20
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xB4 QMK Logo Middle 21
- 0x00, 0x03, 0x0F, 0x1F, 0x3F, 0x3C, // 0xB5 Apple Logo BL
- 0x78, 0x70, 0x60, 0x00, 0x00, 0x00, // 0xB6 Apple Logo BR
- 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, // 0xB7 Windows Logo BL
- 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, // 0xB8 Windows Logo BR
- 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, // 0xB9 Linux Logo BL
- 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, // 0xBA Linux Logo BR
- 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, // 0xBB Android Logo BL
- 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, // 0xBC Android Logo BR
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xBD
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xBE
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xBF
-
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC0 QMK Logo Bottom 1
- 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, // 0xC1 QMK Logo Bottom 2
- 0x07, 0x1F, 0x07, 0x1F, 0x07, 0x1F, // 0xC2 QMK Logo Bottom 3
- 0x07, 0x1F, 0x07, 0x1F, 0x07, 0x07, // 0xC3 QMK Logo Bottom 4
- 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC4 QMK Logo Bottom 5
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC5 QMK Logo Bottom 6
- 0x00, 0x00, 0x01, 0x03, 0x02, 0x00, // 0xC6 QMK Logo Bottom 7
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC7 QMK Logo Bottom 8
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC8 QMK Logo Bottom 9
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC9 QMK Logo Bottom 10
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCA QMK Logo Bottom 11
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCB QMK Logo Bottom 12
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCC QMK Logo Bottom 13
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCD QMK Logo Bottom 14
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCE QMK Logo Bottom 15
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCF QMK Logo Bottom 16
-
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD0 QMK Logo Bottom 17
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD1 QMK Logo Bottom 18
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD2 QMK Logo Bottom 19
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD3 QMK Logo Bottom 10
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD4 QMK Logo Bottom 21
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD5
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD6
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD7
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD8
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD9
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDA
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDB
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDC
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDD
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDE
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // 0xDF
+ 0x07, 0x08, 0x7F, 0x08, 0x07, 0x00, 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
+ 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
+ 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
+ 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, 0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
+ 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, 0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC, 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
+ 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0xF0, 0xF8, 0xF8, 0xFF, 0x38, 0xFF, 0xF8, 0xF8, 0x3F, 0xF8, 0xF8, 0xFF, 0x38, 0xFF, 0xF8, 0xF8, 0xF0, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xF8, 0xFC, 0x3E,
+ 0x1E, 0x06, 0x01, 0x00, 0x00, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 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, 0x49, 0x49, 0x49, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xDF, 0xBF, 0xBF, 0x00, 0xBF, 0xBF, 0xDF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x49, 0x49, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x60, 0x60, 0xE0, 0xBF, 0x1F, 0x00, 0x7F, 0x7F, 0x07, 0x1E, 0x38, 0x1E, 0x07, 0x7F, 0x7F, 0x00, 0x7F, 0x7F, 0x0E, 0x1F, 0x3B, 0x71, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x0C, 0x0C, 0x0C, 0x00, 0x7E, 0x7E, 0x00, 0x7F, 0x7E, 0x03, 0x03, 0x00, 0x7F, 0x7E, 0x03, 0x03, 0x7E, 0x7E, 0x03, 0x03, 0x7F, 0x7E, 0x00, 0x0F,
+ 0x3E, 0x70, 0x3C, 0x06, 0x3C, 0x70, 0x3E, 0x0F, 0x00, 0x32, 0x7B, 0x49, 0x49, 0x3F, 0x7E, 0x00, 0x7F, 0x7E, 0x03, 0x03, 0x00, 0x1E, 0x3F, 0x69, 0x69, 0x6F, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0F, 0x1F, 0x3F, 0x3C, 0x78, 0x70, 0x60, 0x00, 0x00, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, 0x0F, 0x7F, 0x0F, 0x00, 0x03, 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, 0x01, 0x01, 0x01, 0x07, 0x0F, 0x0F, 0x7F, 0x0F, 0x7F, 0x0F, 0x0F, 0x7E, 0x0F, 0x0F, 0x7F, 0x0F, 0x7F, 0x0F, 0x0F, 0x07, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
diff --git a/drivers/painter/comms/qp_comms_dummy.c b/drivers/painter/comms/qp_comms_dummy.c
index 2ed49d2232..7a2aef5d37 100644
--- a/drivers/painter/comms/qp_comms_dummy.c
+++ b/drivers/painter/comms/qp_comms_dummy.c
@@ -15,8 +15,9 @@ static bool dummy_comms_start(painter_device_t device) {
return true;
}
-static void dummy_comms_stop(painter_device_t device) {
+static bool dummy_comms_stop(painter_device_t device) {
// No-op.
+ return true;
}
uint32_t dummy_comms_send(painter_device_t device, const void *data, uint32_t byte_count) {
diff --git a/drivers/painter/comms/qp_comms_i2c.c b/drivers/painter/comms/qp_comms_i2c.c
index 93f503f3dd..f093c87ee4 100644
--- a/drivers/painter/comms/qp_comms_i2c.c
+++ b/drivers/painter/comms/qp_comms_i2c.c
@@ -35,7 +35,9 @@ uint32_t qp_comms_i2c_send_data(painter_device_t device, const void *data, uint3
return qp_comms_i2c_send_raw(device, data, byte_count);
}
-void qp_comms_i2c_stop(painter_device_t device) {}
+bool qp_comms_i2c_stop(painter_device_t device) {
+ return true;
+}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Command+Data I2C support
@@ -43,9 +45,9 @@ void qp_comms_i2c_stop(painter_device_t device) {}
static const uint8_t cmd_byte = 0x00;
static const uint8_t data_byte = 0x40;
-void qp_comms_i2c_cmddata_send_command(painter_device_t device, uint8_t cmd) {
+bool qp_comms_i2c_cmddata_send_command(painter_device_t device, uint8_t cmd) {
uint8_t buf[2] = {cmd_byte, cmd};
- qp_comms_i2c_send_raw(device, &buf, 2);
+ return qp_comms_i2c_send_raw(device, &buf, 2);
}
uint32_t qp_comms_i2c_cmddata_send_data(painter_device_t device, const void *data, uint32_t byte_count) {
@@ -58,7 +60,7 @@ uint32_t qp_comms_i2c_cmddata_send_data(painter_device_t device, const void *dat
return byte_count;
}
-void qp_comms_i2c_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) {
+bool qp_comms_i2c_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) {
uint8_t buf[32];
for (size_t i = 0; i < sequence_len;) {
uint8_t command = sequence[i];
@@ -67,12 +69,17 @@ void qp_comms_i2c_bulk_command_sequence(painter_device_t device, const uint8_t *
buf[0] = cmd_byte;
buf[1] = command;
memcpy(&buf[2], &sequence[i + 3], num_bytes);
- qp_comms_i2c_send_raw(device, buf, num_bytes + 2);
+ if (!qp_comms_i2c_send_raw(device, buf, num_bytes + 2)) {
+ return false;
+ }
+
if (delay > 0) {
wait_ms(delay);
}
i += (3 + num_bytes);
}
+
+ return true;
}
const painter_comms_with_command_vtable_t i2c_comms_cmddata_vtable = {
diff --git a/drivers/painter/comms/qp_comms_i2c.h b/drivers/painter/comms/qp_comms_i2c.h
index 70083d6526..06a284dc15 100644
--- a/drivers/painter/comms/qp_comms_i2c.h
+++ b/drivers/painter/comms/qp_comms_i2c.h
@@ -19,7 +19,7 @@ typedef struct qp_comms_i2c_config_t {
bool qp_comms_i2c_init(painter_device_t device);
bool qp_comms_i2c_start(painter_device_t device);
uint32_t qp_comms_i2c_send_data(painter_device_t device, const void* data, uint32_t byte_count);
-void qp_comms_i2c_stop(painter_device_t device);
+bool qp_comms_i2c_stop(painter_device_t device);
extern const painter_comms_with_command_vtable_t i2c_comms_cmddata_vtable;
diff --git a/drivers/painter/comms/qp_comms_spi.c b/drivers/painter/comms/qp_comms_spi.c
index 8f4fc12a3c..31b68dfdf6 100644
--- a/drivers/painter/comms/qp_comms_spi.c
+++ b/drivers/painter/comms/qp_comms_spi.c
@@ -36,7 +36,7 @@ uint32_t qp_comms_spi_send_data(painter_device_t device, const void *data, uint3
const uint32_t max_msg_length = 1024;
while (bytes_remaining > 0) {
- uint32_t bytes_this_loop = MIN(bytes_remaining, max_msg_length);
+ uint32_t bytes_this_loop = QP_MIN(bytes_remaining, max_msg_length);
spi_transmit(p, bytes_this_loop);
p += bytes_this_loop;
bytes_remaining -= bytes_this_loop;
@@ -45,11 +45,12 @@ uint32_t qp_comms_spi_send_data(painter_device_t device, const void *data, uint3
return byte_count - bytes_remaining;
}
-void qp_comms_spi_stop(painter_device_t device) {
+bool qp_comms_spi_stop(painter_device_t device) {
painter_driver_t * driver = (painter_driver_t *)device;
qp_comms_spi_config_t *comms_config = (qp_comms_spi_config_t *)driver->comms_config;
spi_stop();
gpio_write_pin_high(comms_config->chip_select_pin);
+ return true;
}
const painter_comms_vtable_t spi_comms_vtable = {
@@ -97,14 +98,15 @@ uint32_t qp_comms_spi_dc_reset_send_data(painter_device_t device, const void *da
return qp_comms_spi_send_data(device, data, byte_count);
}
-void qp_comms_spi_dc_reset_send_command(painter_device_t device, uint8_t cmd) {
+bool qp_comms_spi_dc_reset_send_command(painter_device_t device, uint8_t cmd) {
painter_driver_t * driver = (painter_driver_t *)device;
qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config;
gpio_write_pin_low(comms_config->dc_pin);
spi_write(cmd);
+ return true;
}
-void qp_comms_spi_dc_reset_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) {
+bool qp_comms_spi_dc_reset_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) {
painter_driver_t * driver = (painter_driver_t *)device;
qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config;
for (size_t i = 0; i < sequence_len;) {
@@ -126,6 +128,8 @@ void qp_comms_spi_dc_reset_bulk_command_sequence(painter_device_t device, const
}
i += (3 + num_bytes);
}
+
+ return true;
}
const painter_comms_with_command_vtable_t spi_comms_with_dc_vtable = {
diff --git a/drivers/painter/comms/qp_comms_spi.h b/drivers/painter/comms/qp_comms_spi.h
index c39ea95f72..bb1a841519 100644
--- a/drivers/painter/comms/qp_comms_spi.h
+++ b/drivers/painter/comms/qp_comms_spi.h
@@ -22,7 +22,7 @@ typedef struct qp_comms_spi_config_t {
bool qp_comms_spi_init(painter_device_t device);
bool qp_comms_spi_start(painter_device_t device);
uint32_t qp_comms_spi_send_data(painter_device_t device, const void* data, uint32_t byte_count);
-void qp_comms_spi_stop(painter_device_t device);
+bool qp_comms_spi_stop(painter_device_t device);
extern const painter_comms_vtable_t spi_comms_vtable;
@@ -39,9 +39,9 @@ typedef struct qp_comms_spi_dc_reset_config_t {
} qp_comms_spi_dc_reset_config_t;
bool qp_comms_spi_dc_reset_init(painter_device_t device);
-void qp_comms_spi_dc_reset_send_command(painter_device_t device, uint8_t cmd);
+bool qp_comms_spi_dc_reset_send_command(painter_device_t device, uint8_t cmd);
uint32_t qp_comms_spi_dc_reset_send_data(painter_device_t device, const void* data, uint32_t byte_count);
-void qp_comms_spi_dc_reset_bulk_command_sequence(painter_device_t device, const uint8_t* sequence, size_t sequence_len);
+bool qp_comms_spi_dc_reset_bulk_command_sequence(painter_device_t device, const uint8_t* sequence, size_t sequence_len);
extern const painter_comms_with_command_vtable_t spi_comms_with_dc_vtable;
diff --git a/drivers/painter/gc9xxx/qp_gc9107.c b/drivers/painter/gc9xxx/qp_gc9107.c
index 108344da4f..f0eb24d0cd 100644
--- a/drivers/painter/gc9xxx/qp_gc9107.c
+++ b/drivers/painter/gc9xxx/qp_gc9107.c
@@ -32,7 +32,9 @@ __attribute__((weak)) bool qp_gc9107_init(painter_device_t device, painter_rotat
};
// clang-format on
- qp_comms_bulk_command_sequence(device, gc9107_init_sequence, sizeof(gc9107_init_sequence));
+ if (!qp_comms_bulk_command_sequence(device, gc9107_init_sequence, sizeof(gc9107_init_sequence))) {
+ return false;
+ }
// Configure the rotation (i.e. the ordering and direction of memory writes in GRAM)
const uint8_t madctl[] = {
@@ -41,9 +43,7 @@ __attribute__((weak)) bool qp_gc9107_init(painter_device_t device, painter_rotat
[QP_ROTATION_180] = GC9XXX_MADCTL_BGR | GC9XXX_MADCTL_MX | GC9XXX_MADCTL_MY,
[QP_ROTATION_270] = GC9XXX_MADCTL_BGR | GC9XXX_MADCTL_MV | GC9XXX_MADCTL_MY,
};
- qp_comms_command_databyte(device, GC9XXX_SET_MEM_ACS_CTL, madctl[rotation]);
-
- return true;
+ return qp_comms_command_databyte(device, GC9XXX_SET_MEM_ACS_CTL, madctl[rotation]);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/drivers/painter/gc9xxx/qp_gc9a01.c b/drivers/painter/gc9xxx/qp_gc9a01.c
index f037a4cc87..a9b5e4b057 100644
--- a/drivers/painter/gc9xxx/qp_gc9a01.c
+++ b/drivers/painter/gc9xxx/qp_gc9a01.c
@@ -45,7 +45,9 @@ __attribute__((weak)) bool qp_gc9a01_init(painter_device_t device, painter_rotat
};
// clang-format on
- qp_comms_bulk_command_sequence(device, gc9a01_init_sequence, sizeof(gc9a01_init_sequence));
+ if (!qp_comms_bulk_command_sequence(device, gc9a01_init_sequence, sizeof(gc9a01_init_sequence))) {
+ return false;
+ }
// Configure the rotation (i.e. the ordering and direction of memory writes in GRAM)
const uint8_t madctl[] = {
@@ -54,9 +56,7 @@ __attribute__((weak)) bool qp_gc9a01_init(painter_device_t device, painter_rotat
[QP_ROTATION_180] = GC9XXX_MADCTL_BGR | GC9XXX_MADCTL_MX | GC9XXX_MADCTL_MY,
[QP_ROTATION_270] = GC9XXX_MADCTL_BGR | GC9XXX_MADCTL_MV | GC9XXX_MADCTL_MY,
};
- qp_comms_command_databyte(device, GC9XXX_SET_MEM_ACS_CTL, madctl[rotation]);
-
- return true;
+ return qp_comms_command_databyte(device, GC9XXX_SET_MEM_ACS_CTL, madctl[rotation]);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/drivers/painter/generic/qp_surface.h b/drivers/painter/generic/qp_surface.h
index f602a8770b..a291793649 100644
--- a/drivers/painter/generic/qp_surface.h
+++ b/drivers/painter/generic/qp_surface.h
@@ -50,16 +50,6 @@ painter_device_t qp_make_rgb565_surface(uint16_t panel_width, uint16_t panel_hei
*/
painter_device_t qp_make_mono1bpp_surface(uint16_t panel_width, uint16_t panel_height, void *buffer);
-/**
- * Factory method for an RGB888 surface (aka framebuffer).
- *
- * @param panel_width[in] the width of the display panel
- * @param panel_height[in] the height of the display panel
- * @param buffer[in] pointer to a preallocated uint8_t buffer of size `SURFACE_REQUIRED_BUFFER_BYTE_SIZE(panel_width, panel_height, 16)`
- * @return the device handle used with all drawing routines in Quantum Painter
- */
-painter_device_t qp_make_rgb888_surface(uint16_t panel_width, uint16_t panel_height, void *buffer);
-
/**
* Helper method to draw the contents of the framebuffer to the target device.
*
diff --git a/drivers/painter/generic/qp_surface_internal.h b/drivers/painter/generic/qp_surface_internal.h
index e05a58594b..71f82e924d 100644
--- a/drivers/painter/generic/qp_surface_internal.h
+++ b/drivers/painter/generic/qp_surface_internal.h
@@ -45,7 +45,6 @@ typedef struct surface_painter_device_t {
void * buffer;
uint8_t * u8buffer;
uint16_t *u16buffer;
- rgb_t * rgbbuffer;
};
// Manually manage the viewport for streaming pixel data to the display
diff --git a/drivers/painter/generic/qp_surface_rgb565.c b/drivers/painter/generic/qp_surface_rgb565.c
index 2426d53c0c..c5b351311a 100644
--- a/drivers/painter/generic/qp_surface_rgb565.c
+++ b/drivers/painter/generic/qp_surface_rgb565.c
@@ -52,7 +52,7 @@ static bool qp_surface_pixdata_rgb565(painter_device_t device, const void *pixel
// Pixel colour conversion
static bool qp_surface_palette_convert_rgb565_swapped(painter_device_t device, int16_t palette_size, qp_pixel_t *palette) {
for (int16_t i = 0; i < palette_size; ++i) {
- rgb_t rgb = hsv_to_rgb_nocie(palette[i].hsv888);
+ rgb_t rgb = hsv_to_rgb_nocie((hsv_t){palette[i].hsv888.h, palette[i].hsv888.s, palette[i].hsv888.v});
uint16_t rgb565 = (((uint16_t)rgb.r) >> 3) << 11 | (((uint16_t)rgb.g) >> 2) << 5 | (((uint16_t)rgb.b) >> 3);
palette[i].rgb565 = __builtin_bswap16(rgb565);
}
diff --git a/drivers/painter/generic/qp_surface_rgb888.c b/drivers/painter/generic/qp_surface_rgb888.c
deleted file mode 100644
index 68c824b0e4..0000000000
--- a/drivers/painter/generic/qp_surface_rgb888.c
+++ /dev/null
@@ -1,143 +0,0 @@
-// Copyright 2022 Nick Brassel (@tzarc)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#ifdef QUANTUM_PAINTER_SURFACE_ENABLE
-
-# include "color.h"
-# include "qp_draw.h"
-# include "qp_surface_internal.h"
-# include "qp_comms_dummy.h"
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// Surface driver impl: rgb888
-
-static inline void setpixel_rgb888(surface_painter_device_t *surface, uint16_t x, uint16_t y, rgb_t rgb888) {
- uint16_t w = surface->base.panel_width;
- uint16_t h = surface->base.panel_height;
-
- // Drop out if it's off-screen
- if (x >= w || y >= h) {
- return;
- }
-
- // Skip messing with the dirty info if the original value already matches
- if (memcmp(&surface->rgbbuffer[y * w + x], &rgb888, sizeof(rgb_t)) != 0) {
- // Update the dirty region
- qp_surface_update_dirty(&surface->dirty, x, y);
-
- // Update the pixel data in the buffer
- surface->rgbbuffer[y * w + x] = rgb888;
- }
-}
-
-static inline void append_pixel_rgb888(surface_painter_device_t *surface, rgb_t rgb888) {
- setpixel_rgb888(surface, surface->viewport.pixdata_x, surface->viewport.pixdata_y, rgb888);
- qp_surface_increment_pixdata_location(&surface->viewport);
-}
-
-static inline void stream_pixdata_rgb888(surface_painter_device_t *surface, const rgb_t *data, uint32_t native_pixel_count) {
- for (uint32_t pixel_counter = 0; pixel_counter < native_pixel_count; ++pixel_counter) {
- append_pixel_rgb888(surface, data[pixel_counter]);
- }
-}
-
-// Stream pixel data to the current write position in GRAM
-static bool qp_surface_pixdata_rgb888(painter_device_t device, const void *pixel_data, uint32_t native_pixel_count) {
- painter_driver_t * driver = (painter_driver_t *)device;
- surface_painter_device_t *surface = (surface_painter_device_t *)driver;
- stream_pixdata_rgb888(surface, (const rgb_t *)pixel_data, native_pixel_count);
- return true;
-}
-
-// Pixel colour conversion
-static bool qp_surface_palette_convert_rgb888(painter_device_t device, int16_t palette_size, qp_pixel_t *palette) {
- for (int16_t i = 0; i < palette_size; ++i) {
- palette[i].rgb888 = hsv_to_rgb_nocie(palette[i].hsv888);
- }
- return true;
-}
-
-// Append pixels to the target location, keyed by the pixel index
-static bool qp_surface_append_pixels_rgb888(painter_device_t device, uint8_t *target_buffer, qp_pixel_t *palette, uint32_t pixel_offset, uint32_t pixel_count, uint8_t *palette_indices) {
- rgb_t *buf = (rgb_t *)target_buffer;
- for (uint32_t i = 0; i < pixel_count; ++i) {
- buf[pixel_offset + i] = palette[palette_indices[i]].rgb888;
- }
- return true;
-}
-
-static bool rgb888_target_pixdata_transfer(painter_driver_t *surface_driver, painter_driver_t *target_driver, uint16_t x, uint16_t y, bool entire_surface) {
- surface_painter_device_t *surface_handle = (surface_painter_device_t *)surface_driver;
-
- uint16_t l = entire_surface ? 0 : surface_handle->dirty.l;
- uint16_t t = entire_surface ? 0 : surface_handle->dirty.t;
- uint16_t r = entire_surface ? (surface_handle->base.panel_width - 1) : surface_handle->dirty.r;
- uint16_t b = entire_surface ? (surface_handle->base.panel_height - 1) : surface_handle->dirty.b;
-
- // Set the target drawing area
- bool ok = qp_viewport((painter_device_t)target_driver, x + l, y + t, x + r, y + b);
- if (!ok) {
- qp_dprintf("rgb888_target_pixdata_transfer: fail (could not set target viewport)\n");
- return false;
- }
-
- // Housekeeping of the amount of pixels to transfer
- uint32_t total_pixel_count = (8 * QUANTUM_PAINTER_PIXDATA_BUFFER_SIZE) / surface_driver->native_bits_per_pixel;
- uint32_t pixel_counter = 0;
- rgb_t * target_buffer = (rgb_t *)qp_internal_global_pixdata_buffer;
-
- // Fill the global pixdata area so that we can start transferring to the panel
- for (uint16_t y = t; y <= b; ++y) {
- for (uint16_t x = l; x <= r; ++x) {
- // Update the target buffer
- target_buffer[pixel_counter++] = surface_handle->rgbbuffer[y * surface_handle->base.panel_width + x];
-
- // If we've accumulated enough data, send it
- if (pixel_counter == total_pixel_count) {
- ok = qp_pixdata((painter_device_t)target_driver, qp_internal_global_pixdata_buffer, pixel_counter);
- if (!ok) {
- qp_dprintf("rgb888_target_pixdata_transfer: fail (could not stream pixdata to target)\n");
- return false;
- }
- // Reset the counter
- pixel_counter = 0;
- }
- }
- }
-
- // If there's any leftover data, send it
- if (pixel_counter > 0) {
- ok = qp_pixdata((painter_device_t)target_driver, qp_internal_global_pixdata_buffer, pixel_counter);
- if (!ok) {
- qp_dprintf("rgb888_target_pixdata_transfer: fail (could not stream pixdata to target)\n");
- return false;
- }
- }
-
- return true;
-}
-
-static bool qp_surface_append_pixdata_rgb888(painter_device_t device, uint8_t *target_buffer, uint32_t pixdata_offset, uint8_t pixdata_byte) {
- target_buffer[pixdata_offset] = pixdata_byte;
- return true;
-}
-
-const surface_painter_driver_vtable_t rgb888_surface_driver_vtable = {
- .base =
- {
- .init = qp_surface_init,
- .power = qp_surface_power,
- .clear = qp_surface_clear,
- .flush = qp_surface_flush,
- .pixdata = qp_surface_pixdata_rgb888,
- .viewport = qp_surface_viewport,
- .palette_convert = qp_surface_palette_convert_rgb888,
- .append_pixels = qp_surface_append_pixels_rgb888,
- .append_pixdata = qp_surface_append_pixdata_rgb888,
- },
- .target_pixdata_transfer = rgb888_target_pixdata_transfer,
-};
-
-SURFACE_FACTORY_FUNCTION_IMPL(qp_make_rgb888_surface, rgb888_surface_driver_vtable, 24);
-
-#endif // QUANTUM_PAINTER_SURFACE_ENABLE
diff --git a/drivers/painter/ili9xxx/qp_ili9163.c b/drivers/painter/ili9xxx/qp_ili9163.c
index 7f439dc317..74c5cb28ee 100644
--- a/drivers/painter/ili9xxx/qp_ili9163.c
+++ b/drivers/painter/ili9xxx/qp_ili9163.c
@@ -41,7 +41,9 @@ __attribute__((weak)) bool qp_ili9163_init(painter_device_t device, painter_rota
ILI9XXX_CMD_DISPLAY_ON, 20, 0
};
// clang-format on
- qp_comms_bulk_command_sequence(device, ili9163_init_sequence, sizeof(ili9163_init_sequence));
+ if (!qp_comms_bulk_command_sequence(device, ili9163_init_sequence, sizeof(ili9163_init_sequence))) {
+ return false;
+ }
// Configure the rotation (i.e. the ordering and direction of memory writes in GRAM)
const uint8_t madctl[] = {
@@ -50,9 +52,7 @@ __attribute__((weak)) bool qp_ili9163_init(painter_device_t device, painter_rota
[QP_ROTATION_180] = ILI9XXX_MADCTL_BGR | ILI9XXX_MADCTL_MX | ILI9XXX_MADCTL_MY,
[QP_ROTATION_270] = ILI9XXX_MADCTL_BGR | ILI9XXX_MADCTL_MV | ILI9XXX_MADCTL_MY,
};
- qp_comms_command_databyte(device, ILI9XXX_SET_MEM_ACS_CTL, madctl[rotation]);
-
- return true;
+ return qp_comms_command_databyte(device, ILI9XXX_SET_MEM_ACS_CTL, madctl[rotation]);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/drivers/painter/ili9xxx/qp_ili9341.c b/drivers/painter/ili9xxx/qp_ili9341.c
index a101b292aa..4ca22d8a73 100644
--- a/drivers/painter/ili9xxx/qp_ili9341.c
+++ b/drivers/painter/ili9xxx/qp_ili9341.c
@@ -48,7 +48,9 @@ __attribute__((weak)) bool qp_ili9341_init(painter_device_t device, painter_rota
ILI9XXX_CMD_DISPLAY_ON, 20, 0
};
// clang-format on
- qp_comms_bulk_command_sequence(device, ili9341_init_sequence, sizeof(ili9341_init_sequence));
+ if (!qp_comms_bulk_command_sequence(device, ili9341_init_sequence, sizeof(ili9341_init_sequence))) {
+ return false;
+ }
// Configure the rotation (i.e. the ordering and direction of memory writes in GRAM)
const uint8_t madctl[] = {
@@ -57,9 +59,7 @@ __attribute__((weak)) bool qp_ili9341_init(painter_device_t device, painter_rota
[QP_ROTATION_180] = ILI9XXX_MADCTL_BGR | ILI9XXX_MADCTL_MX | ILI9XXX_MADCTL_MY,
[QP_ROTATION_270] = ILI9XXX_MADCTL_BGR | ILI9XXX_MADCTL_MV | ILI9XXX_MADCTL_MY,
};
- qp_comms_command_databyte(device, ILI9XXX_SET_MEM_ACS_CTL, madctl[rotation]);
-
- return true;
+ return qp_comms_command_databyte(device, ILI9XXX_SET_MEM_ACS_CTL, madctl[rotation]);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/drivers/painter/ili9xxx/qp_ili9486.c b/drivers/painter/ili9xxx/qp_ili9486.c
index 5a2e226668..df2d084aa3 100644
--- a/drivers/painter/ili9xxx/qp_ili9486.c
+++ b/drivers/painter/ili9xxx/qp_ili9486.c
@@ -37,7 +37,9 @@ bool qp_ili9486_init(painter_device_t device, painter_rotation_t rotation) {
ILI9XXX_SET_INVERSION_CTL, 0, 1, 0x02,
};
// clang-format on
- qp_comms_bulk_command_sequence(device, ili9486_init_sequence, sizeof(ili9486_init_sequence));
+ if (!qp_comms_bulk_command_sequence(device, ili9486_init_sequence, sizeof(ili9486_init_sequence))) {
+ return false;
+ }
// Configure the rotation (i.e. the ordering and direction of memory writes in GRAM)
const uint8_t madctl[] = {
@@ -62,22 +64,22 @@ bool qp_ili9486_init(painter_device_t device, painter_rotation_t rotation) {
ILI9XXX_CMD_DISPLAY_ON, 5, 0,
};
// clang-format on
- qp_comms_bulk_command_sequence(device, rotation_sequence, sizeof(rotation_sequence));
-
- return true;
+ return qp_comms_bulk_command_sequence(device, rotation_sequence, sizeof(rotation_sequence));
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Driver vtable
// waveshare variant needs some tweaks due to shift registers
-static void qp_comms_spi_dc_reset_send_command_odd_cs_pulse(painter_device_t device, uint8_t cmd) {
+static bool qp_comms_spi_dc_reset_send_command_odd_cs_pulse(painter_device_t device, uint8_t cmd) {
painter_driver_t * driver = (painter_driver_t *)device;
qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config;
gpio_write_pin_low(comms_config->spi_config.chip_select_pin);
qp_comms_spi_dc_reset_send_command(device, cmd);
gpio_write_pin_high(comms_config->spi_config.chip_select_pin);
+
+ return true;
}
static uint32_t qp_comms_spi_send_data_odd_cs_pulse(painter_device_t device, const void *data, uint32_t byte_count) {
@@ -90,7 +92,7 @@ static uint32_t qp_comms_spi_send_data_odd_cs_pulse(painter_device_t device, con
gpio_write_pin_high(comms_config->dc_pin);
while (bytes_remaining > 0) {
- uint32_t bytes_this_loop = MIN(bytes_remaining, max_msg_length);
+ uint32_t bytes_this_loop = QP_MIN(bytes_remaining, max_msg_length);
bool odd_bytes = bytes_this_loop & 1;
// send data
@@ -124,7 +126,7 @@ static uint32_t qp_ili9486_send_data_toggling(painter_device_t device, const uin
return ret;
}
-static void qp_comms_spi_send_command_sequence_odd_cs_pulse(painter_device_t device, const uint8_t *sequence, size_t sequence_len) {
+static bool qp_comms_spi_send_command_sequence_odd_cs_pulse(painter_device_t device, const uint8_t *sequence, size_t sequence_len) {
for (size_t i = 0; i < sequence_len;) {
uint8_t command = sequence[i];
uint8_t delay = sequence[i + 1];
@@ -140,6 +142,8 @@ static void qp_comms_spi_send_command_sequence_odd_cs_pulse(painter_device_t dev
}
i += (3 + num_bytes);
}
+
+ return true;
}
static bool qp_ili9486_viewport(painter_device_t device, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom) {
diff --git a/drivers/painter/ili9xxx/qp_ili9488.c b/drivers/painter/ili9xxx/qp_ili9488.c
index 63deaf5f2e..fd05db8751 100644
--- a/drivers/painter/ili9xxx/qp_ili9488.c
+++ b/drivers/painter/ili9xxx/qp_ili9488.c
@@ -41,7 +41,9 @@ __attribute__((weak)) bool qp_ili9488_init(painter_device_t device, painter_rota
ILI9XXX_CMD_DISPLAY_ON, 20, 0
};
// clang-format on
- qp_comms_bulk_command_sequence(device, ili9488_init_sequence, sizeof(ili9488_init_sequence));
+ if (!qp_comms_bulk_command_sequence(device, ili9488_init_sequence, sizeof(ili9488_init_sequence))) {
+ return false;
+ }
// Configure the rotation (i.e. the ordering and direction of memory writes in GRAM)
const uint8_t madctl[] = {
@@ -50,9 +52,7 @@ __attribute__((weak)) bool qp_ili9488_init(painter_device_t device, painter_rota
[QP_ROTATION_180] = ILI9XXX_MADCTL_BGR | ILI9XXX_MADCTL_MX,
[QP_ROTATION_270] = ILI9XXX_MADCTL_BGR | ILI9XXX_MADCTL_MV,
};
- qp_comms_command_databyte(device, ILI9XXX_SET_MEM_ACS_CTL, madctl[rotation]);
-
- return true;
+ return qp_comms_command_databyte(device, ILI9XXX_SET_MEM_ACS_CTL, madctl[rotation]);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/drivers/painter/ld7032/qp_ld7032.c b/drivers/painter/ld7032/qp_ld7032.c
index f43ae8e60d..d73430cc75 100644
--- a/drivers/painter/ld7032/qp_ld7032.c
+++ b/drivers/painter/ld7032/qp_ld7032.c
@@ -10,7 +10,7 @@
#include "qp_surface.h"
#include "qp_surface_internal.h"
-typedef void (*ld7032_driver_comms_send_command_and_data_func)(painter_device_t device, uint8_t cmd, uint8_t data);
+typedef bool (*ld7032_driver_comms_send_command_and_data_func)(painter_device_t device, uint8_t cmd, uint8_t data);
typedef uint32_t (*ld7032_driver_comms_send_command_and_databuf_func)(painter_device_t device, uint8_t cmd, const void *data, uint32_t byte_count);
typedef struct ld7032_comms_with_command_vtable_t {
@@ -25,12 +25,13 @@ typedef struct ld7032_comms_with_command_vtable_t {
// LD7032 Internal API
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-void ld7032_comms_i2c_send_command_and_data(painter_device_t device, uint8_t cmd, uint8_t data) {
+#ifdef QUANTUM_PAINTER_LD7032_I2C_ENABLE
+bool ld7032_comms_i2c_send_command_and_data(painter_device_t device, uint8_t cmd, uint8_t data) {
uint8_t buf[2] = {cmd, data};
- qp_comms_i2c_send_data(device, buf, 2);
+ return qp_comms_i2c_send_data(device, buf, 2);
}
-void ld7032_comms_i2c_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) {
+bool ld7032_comms_i2c_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) {
uint8_t buf[32];
for (size_t i = 0; i < sequence_len;) {
uint8_t command = sequence[i];
@@ -38,12 +39,16 @@ void ld7032_comms_i2c_bulk_command_sequence(painter_device_t device, const uint8
uint8_t num_bytes = sequence[i + 2];
buf[0] = command;
memcpy(&buf[1], &sequence[i + 3], num_bytes);
- qp_comms_i2c_send_data(device, buf, num_bytes + 1);
+ if (!qp_comms_i2c_send_data(device, buf, num_bytes + 1)) {
+ return false;
+ }
if (delay > 0) {
wait_ms(delay);
}
i += (3 + num_bytes);
}
+
+ return true;
}
uint32_t ld7032_comms_i2c_send_command_and_databuf(painter_device_t device, uint8_t cmd, const void *data, uint32_t byte_count) {
@@ -53,6 +58,7 @@ uint32_t ld7032_comms_i2c_send_command_and_databuf(painter_device_t device, uint
memcpy(&buf[1], data, byte_count);
return qp_comms_send(device, buf, byte_count + 1);
}
+#endif // QUANTUM_PAINTER_LD7032_I2C_ENABLE
// Power control
bool qp_ld7032_power(painter_device_t device, bool power_on) {
@@ -201,7 +207,9 @@ __attribute__((weak)) bool qp_ld7032_init(painter_device_t device, painter_rotat
};
// clang-format on
- qp_comms_bulk_command_sequence(device, ld7032_init_sequence, sizeof(ld7032_init_sequence));
+ if (!qp_comms_bulk_command_sequence(device, ld7032_init_sequence, sizeof(ld7032_init_sequence))) {
+ return false;
+ }
uint8_t display_y_start = 40 - driver->oled.base.panel_height;
uint8_t display_x_start = (128 - driver->oled.base.panel_width) / 2;
@@ -223,7 +231,9 @@ __attribute__((weak)) bool qp_ld7032_init(painter_device_t device, painter_rotat
ld7032_memory_setup[13] = ld7032_memory_setup[4] + 1;
ld7032_memory_setup[17] = driver->oled.base.panel_height;
- qp_comms_bulk_command_sequence(device, ld7032_memory_setup, sizeof(ld7032_memory_setup));
+ if (!qp_comms_bulk_command_sequence(device, ld7032_memory_setup, sizeof(ld7032_memory_setup))) {
+ return false;
+ }
uint8_t write_direction = 0;
switch (rotation) {
@@ -245,7 +255,9 @@ __attribute__((weak)) bool qp_ld7032_init(painter_device_t device, painter_rotat
painter_driver_t * pdriver = (painter_driver_t *)device;
ld7032_comms_with_command_vtable_t *comms_vtable = (ld7032_comms_with_command_vtable_t *)pdriver->comms_vtable;
- comms_vtable->send_command_data(device, LD7032_WRITE_DIRECTION, write_direction);
+ if (!comms_vtable->send_command_data(device, LD7032_WRITE_DIRECTION, write_direction)) {
+ return false;
+ }
qp_ld7032_power(device, true);
diff --git a/drivers/painter/sh1106/qp_sh1106.c b/drivers/painter/sh1106/qp_sh1106.c
index 4117115aec..85da4a973a 100644
--- a/drivers/painter/sh1106/qp_sh1106.c
+++ b/drivers/painter/sh1106/qp_sh1106.c
@@ -71,8 +71,7 @@ __attribute__((weak)) bool qp_sh1106_init(painter_device_t device, painter_rotat
sh1106_init_sequence[20] = 0x02;
}
- qp_comms_bulk_command_sequence(device, sh1106_init_sequence, sizeof(sh1106_init_sequence));
- return true;
+ return qp_comms_bulk_command_sequence(device, sh1106_init_sequence, sizeof(sh1106_init_sequence));
}
// Screen flush
diff --git a/drivers/painter/sh1107/qp_sh1107.c b/drivers/painter/sh1107/qp_sh1107.c
index f4cbd49e40..0b48690803 100644
--- a/drivers/painter/sh1107/qp_sh1107.c
+++ b/drivers/painter/sh1107/qp_sh1107.c
@@ -73,8 +73,7 @@ __attribute__((weak)) bool qp_sh1107_init(painter_device_t device, painter_rotat
sh1107_init_sequence[20] = 0x02;
}
- qp_comms_bulk_command_sequence(device, sh1107_init_sequence, sizeof(sh1107_init_sequence));
- return true;
+ return qp_comms_bulk_command_sequence(device, sh1107_init_sequence, sizeof(sh1107_init_sequence));
}
// Screen flush
diff --git a/drivers/painter/ssd1351/qp_ssd1351.c b/drivers/painter/ssd1351/qp_ssd1351.c
index 3270a362c2..3f652e674e 100644
--- a/drivers/painter/ssd1351/qp_ssd1351.c
+++ b/drivers/painter/ssd1351/qp_ssd1351.c
@@ -44,7 +44,9 @@ __attribute__((weak)) bool qp_ssd1351_init(painter_device_t device, painter_rota
SSD1351_DISPLAYON, 5, 0,
};
// clang-format on
- qp_comms_bulk_command_sequence(device, ssd1351_init_sequence, sizeof(ssd1351_init_sequence));
+ if (!qp_comms_bulk_command_sequence(device, ssd1351_init_sequence, sizeof(ssd1351_init_sequence))) {
+ return false;
+ }
// Configure the rotation (i.e. the ordering and direction of memory writes in GRAM)
const uint8_t madctl[] = {
@@ -53,10 +55,10 @@ __attribute__((weak)) bool qp_ssd1351_init(painter_device_t device, painter_rota
[QP_ROTATION_180] = SSD1351_MADCTL_BGR | SSD1351_MADCTL_MX,
[QP_ROTATION_270] = SSD1351_MADCTL_BGR | SSD1351_MADCTL_MV,
};
- qp_comms_command_databyte(device, SSD1351_SETREMAP, madctl[rotation]);
- qp_comms_command_databyte(device, SSD1351_STARTLINE, (rotation == QP_ROTATION_0 || rotation == QP_ROTATION_90) ? driver->base.panel_height : 0);
-
- return true;
+ if (!qp_comms_command_databyte(device, SSD1351_SETREMAP, madctl[rotation])) {
+ return false;
+ }
+ return qp_comms_command_databyte(device, SSD1351_STARTLINE, (rotation == QP_ROTATION_0 || rotation == QP_ROTATION_90) ? driver->base.panel_height : 0);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/drivers/painter/st77xx/qp_st7735.c b/drivers/painter/st77xx/qp_st7735.c
index 1db0d01dcb..9e3df477c8 100644
--- a/drivers/painter/st77xx/qp_st7735.c
+++ b/drivers/painter/st77xx/qp_st7735.c
@@ -63,7 +63,9 @@ __attribute__((weak)) bool qp_st7735_init(painter_device_t device, painter_rotat
ST77XX_CMD_DISPLAY_ON, 20, 0
};
// clang-format on
- qp_comms_bulk_command_sequence(device, st7735_init_sequence, sizeof(st7735_init_sequence));
+ if (!qp_comms_bulk_command_sequence(device, st7735_init_sequence, sizeof(st7735_init_sequence))) {
+ return false;
+ }
// Configure the rotation (i.e. the ordering and direction of memory writes in GRAM)
const uint8_t madctl[] = {
@@ -72,7 +74,9 @@ __attribute__((weak)) bool qp_st7735_init(painter_device_t device, painter_rotat
[QP_ROTATION_180] = ST77XX_MADCTL_BGR | ST77XX_MADCTL_MX | ST77XX_MADCTL_MY,
[QP_ROTATION_270] = ST77XX_MADCTL_BGR | ST77XX_MADCTL_MV | ST77XX_MADCTL_MY,
};
- qp_comms_command_databyte(device, ST77XX_SET_MADCTL, madctl[rotation]);
+ if (!qp_comms_command_databyte(device, ST77XX_SET_MADCTL, madctl[rotation])) {
+ return false;
+ }
#ifndef ST7735_NO_AUTOMATIC_VIEWPORT_OFFSETS
st7735_automatic_viewport_offsets(device, rotation);
diff --git a/drivers/painter/st77xx/qp_st7789.c b/drivers/painter/st77xx/qp_st7789.c
index 855a9cc0c8..b4e24886da 100644
--- a/drivers/painter/st77xx/qp_st7789.c
+++ b/drivers/painter/st77xx/qp_st7789.c
@@ -60,7 +60,9 @@ __attribute__((weak)) bool qp_st7789_init(painter_device_t device, painter_rotat
ST77XX_CMD_DISPLAY_ON, 20, 0
};
// clang-format on
- qp_comms_bulk_command_sequence(device, st7789_init_sequence, sizeof(st7789_init_sequence));
+ if (!qp_comms_bulk_command_sequence(device, st7789_init_sequence, sizeof(st7789_init_sequence))) {
+ return false;
+ }
// Configure the rotation (i.e. the ordering and direction of memory writes in GRAM)
const uint8_t madctl[] = {
@@ -69,7 +71,9 @@ __attribute__((weak)) bool qp_st7789_init(painter_device_t device, painter_rotat
[QP_ROTATION_180] = ST77XX_MADCTL_RGB | ST77XX_MADCTL_MX | ST77XX_MADCTL_MY,
[QP_ROTATION_270] = ST77XX_MADCTL_RGB | ST77XX_MADCTL_MV | ST77XX_MADCTL_MY,
};
- qp_comms_command_databyte(device, ST77XX_SET_MADCTL, madctl[rotation]);
+ if (!qp_comms_command_databyte(device, ST77XX_SET_MADCTL, madctl[rotation])) {
+ return false;
+ }
#ifndef ST7789_NO_AUTOMATIC_VIEWPORT_OFFSETS
st7789_automatic_viewport_offsets(device, rotation);
diff --git a/drivers/painter/tft_panel/qp_tft_panel.c b/drivers/painter/tft_panel/qp_tft_panel.c
index a6c72b4f6f..c8e33343d4 100644
--- a/drivers/painter/tft_panel/qp_tft_panel.c
+++ b/drivers/painter/tft_panel/qp_tft_panel.c
@@ -90,7 +90,7 @@ bool qp_tft_panel_pixdata(painter_device_t device, const void *pixel_data, uint3
bool qp_tft_panel_palette_convert_rgb565_swapped(painter_device_t device, int16_t palette_size, qp_pixel_t *palette) {
for (int16_t i = 0; i < palette_size; ++i) {
- rgb_t rgb = hsv_to_rgb_nocie(palette[i].hsv888);
+ rgb_t rgb = hsv_to_rgb_nocie((hsv_t){palette[i].hsv888.h, palette[i].hsv888.s, palette[i].hsv888.v});
uint16_t rgb565 = (((uint16_t)rgb.r) >> 3) << 11 | (((uint16_t)rgb.g) >> 2) << 5 | (((uint16_t)rgb.b) >> 3);
palette[i].rgb565 = __builtin_bswap16(rgb565);
}
@@ -99,7 +99,10 @@ bool qp_tft_panel_palette_convert_rgb565_swapped(painter_device_t device, int16_
bool qp_tft_panel_palette_convert_rgb888(painter_device_t device, int16_t palette_size, qp_pixel_t *palette) {
for (int16_t i = 0; i < palette_size; ++i) {
- palette[i].rgb888 = hsv_to_rgb_nocie(palette[i].hsv888);
+ rgb_t rgb = hsv_to_rgb_nocie((hsv_t){palette[i].hsv888.h, palette[i].hsv888.s, palette[i].hsv888.v});
+ palette[i].rgb888.r = rgb.r;
+ palette[i].rgb888.g = rgb.g;
+ palette[i].rgb888.b = rgb.b;
}
return true;
}
diff --git a/drivers/sensors/pmw33xx_common.c b/drivers/sensors/pmw33xx_common.c
index 61e309ea27..95d0fe6b4b 100644
--- a/drivers/sensors/pmw33xx_common.c
+++ b/drivers/sensors/pmw33xx_common.c
@@ -108,7 +108,7 @@ __attribute__((weak)) bool pmw33xx_check_signature(uint8_t sensor) {
pmw33xx_read(sensor, REG_Inverse_Product_ID),
};
- return memcmp(pmw33xx_firmware_signature, signature_dump, sizeof(signature_dump)) == 0;
+ return memcmp_P(signature_dump, pmw33xx_firmware_signature, sizeof(signature_dump)) == 0;
}
bool pmw33xx_upload_firmware(uint8_t sensor) {
diff --git a/keyboards/0xcb/splaytoraid/32u4/keyboard.json b/keyboards/0xcb/splaytoraid/32u4/keyboard.json
new file mode 100644
index 0000000000..7c3f0590a6
--- /dev/null
+++ b/keyboards/0xcb/splaytoraid/32u4/keyboard.json
@@ -0,0 +1,27 @@
+{
+ "development_board": "promicro",
+ "bootloader": "qmk-dfu",
+ "matrix_pins": {
+ "cols": ["F5", "F6", "F7", "F4", "B3", "B1", "B2"],
+ "rows": ["D3", "D2", "D1", "D4", "D7", "E6", "B4", "C6"]
+ },
+ "diode_direction": "COL2ROW",
+ "rgb_matrix": {
+ "animations": {
+ "band_sat": true,
+ "band_spiral_val": true,
+ "breathing": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "raindrops": true
+ }
+ },
+ "encoder": {
+ "rotary": [
+ {"pin_a": "B5", "pin_b": "B6"}
+ ]
+ },
+ "ws2812": {
+ "pin": "D0"
+ }
+}
diff --git a/keyboards/0xcb/splaytoraid/keyboard.json b/keyboards/0xcb/splaytoraid/info.json
similarity index 72%
rename from keyboards/0xcb/splaytoraid/keyboard.json
rename to keyboards/0xcb/splaytoraid/info.json
index 457cc7a23a..8c32b0dc11 100644
--- a/keyboards/0xcb/splaytoraid/keyboard.json
+++ b/keyboards/0xcb/splaytoraid/info.json
@@ -2,58 +2,28 @@
"manufacturer": "Freya",
"keyboard_name": "splaytoraid",
"maintainer": "freya-irl",
- "bootloader": "qmk-dfu",
+ "url": "https://github.com/freya-irl/splaytoraid40",
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0xCB00",
+ "vid": "0x2004"
+ },
+ "features": {
+ "extrakey": true,
+ "rgb_matrix": true,
+ "bootmagic": true,
+ "console": true,
+ "mousekey": true,
+ "nkro": true,
+ "encoder": true
+ },
"bootmagic": {
"matrix": [1, 0]
},
"build": {
"lto": true
},
- "development_board": "promicro",
- "diode_direction": "COL2ROW",
- "encoder": {
- "rotary": [
- {"pin_a": "B5", "pin_b": "B6"}
- ]
- },
- "features": {
- "bootmagic": true,
- "encoder": true,
- "extrakey": true,
- "mousekey": true,
- "nkro": true,
- "rgb_matrix": true
- },
- "matrix_pins": {
- "cols": ["F5", "F6", "F7", "F4", "B3", "B1", "B2"],
- "rows": ["D3", "D2", "D1", "D4", "D7", "E6", "B4", "C6"]
- },
"rgb_matrix": {
- "animations": {
- "band_sat": true,
- "band_spiral_val": true,
- "breathing": true,
- "cycle_all": true,
- "cycle_left_right": true,
- "cycle_out_in": true,
- "cycle_out_in_dual": true,
- "cycle_pinwheel": true,
- "cycle_up_down": true,
- "digital_rain": true,
- "dual_beacon": true,
- "hue_breathing": true,
- "jellybean_raindrops": true,
- "multisplash": true,
- "pixel_fractal": true,
- "pixel_rain": true,
- "rainbow_moving_chevron": true,
- "raindrops": true,
- "solid_reactive": true,
- "solid_reactive_simple": true,
- "solid_splash": true,
- "splash": true,
- "typing_heatmap": true
- },
"default": {
"animation": "breathing",
"hue": 152,
@@ -62,36 +32,27 @@
},
"driver": "ws2812",
"layout": [
- {"matrix": [0, 2], "x": 0, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 20, "y": 0, "flags": 4},
- {"matrix": [7, 0], "x": 61, "y": 0, "flags": 4},
- {"matrix": [7, 1], "x": 163, "y": 0, "flags": 4},
- {"matrix": [5, 0], "x": 203, "y": 0, "flags": 4},
- {"matrix": [4, 2], "x": 224, "y": 0, "flags": 4},
- {"matrix": [6, 2], "x": 0, "y": 21, "flags": 4},
- {"matrix": [6, 1], "x": 224, "y": 21, "flags": 4},
- {"matrix": [3, 3], "x": 20, "y": 43, "flags": 4},
- {"matrix": [7, 3], "x": 61, "y": 43, "flags": 4},
- {"matrix": [6, 4], "x": 163, "y": 43, "flags": 4},
- {"matrix": [6, 3], "x": 203, "y": 43, "flags": 4},
- {"matrix": [4, 3], "x": 61, "y": 64, "flags": 4},
- {"matrix": [5, 5], "x": 81, "y": 64, "flags": 4},
- {"matrix": [7, 4], "x": 101, "y": 64, "flags": 4},
- {"matrix": [7, 5], "x": 122, "y": 64, "flags": 4},
- {"matrix": [1, 5], "x": 142, "y": 64, "flags": 4},
- {"matrix": [0, 3], "x": 163, "y": 64, "flags": 4}
+ {"flags": 4, "matrix": [0, 2], "x": 0, "y": 0},
+ {"flags": 4, "matrix": [1, 0], "x": 20, "y": 0},
+ {"flags": 4, "matrix": [7, 0], "x": 61, "y": 0},
+ {"flags": 4, "matrix": [7, 1], "x": 163, "y": 0},
+ {"flags": 4, "matrix": [5, 0], "x": 203, "y": 0},
+ {"flags": 4, "matrix": [4, 2], "x": 224, "y": 0},
+ {"flags": 4, "matrix": [6, 2], "x": 0, "y": 21},
+ {"flags": 4, "matrix": [6, 1], "x": 224, "y": 21},
+ {"flags": 4, "matrix": [3, 3], "x": 20, "y": 43},
+ {"flags": 4, "matrix": [7, 3], "x": 61, "y": 43},
+ {"flags": 4, "matrix": [6, 4], "x": 163, "y": 43},
+ {"flags": 4, "matrix": [6, 3], "x": 203, "y": 43},
+ {"flags": 4, "matrix": [4, 3], "x": 61, "y": 64},
+ {"flags": 4, "matrix": [5, 5], "x": 81, "y": 64},
+ {"flags": 4, "matrix": [7, 4], "x": 101, "y": 64},
+ {"flags": 4, "matrix": [7, 5], "x": 122, "y": 64},
+ {"flags": 4, "matrix": [1, 5], "x": 142, "y": 64},
+ {"flags": 4, "matrix": [0, 3], "x": 163, "y": 64}
],
"max_brightness": 200
},
- "url": "https://github.com/freya-irl/splaytoraid40",
- "usb": {
- "device_version": "1.0.0",
- "pid": "0xCB00",
- "vid": "0x2004"
- },
- "ws2812": {
- "pin": "D0"
- },
"layouts": {
"LAYOUT_36": {
"layout": [
diff --git a/keyboards/0xcb/splaytoraid/keymaps/default/keymap.c b/keyboards/0xcb/splaytoraid/keymaps/default/keymap.c
new file mode 100644
index 0000000000..6a82f2ca74
--- /dev/null
+++ b/keyboards/0xcb/splaytoraid/keymaps/default/keymap.c
@@ -0,0 +1,49 @@
+// Copyright 2023 Conor Burns (@Conor-Burns)
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#include QMK_KEYBOARD_H
+
+enum layer_names {
+ _BASE,
+ _LOWER,
+ _RAISE,
+ _ADJUST
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BASE] = LAYOUT_40(
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ 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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
+ KC_LSFT, KC_ESC, KC_ENT, KC_MPLY, KC_SPC, KC_DEL, KC_RSFT
+ ),
+
+ [_LOWER] = LAYOUT_40(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ [_RAISE] = LAYOUT_40(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ [_ADJUST] = LAYOUT_40(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______
+ )
+};
+
+
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+ [_LOWER] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) },
+ [_RAISE] = { ENCODER_CCW_CW(UG_VALD, UG_VALU) },
+ [_ADJUST] = { ENCODER_CCW_CW(KC_RGHT, KC_LEFT) }
+};
diff --git a/keyboards/0xcb/splaytoraid/keymaps/default/keymap.json b/keyboards/0xcb/splaytoraid/keymaps/default/keymap.json
deleted file mode 100644
index 42bcaf28a1..0000000000
--- a/keyboards/0xcb/splaytoraid/keymaps/default/keymap.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "keyboard": "0xcb/splaytoraid",
- "keymap": "default",
- "config": {
- "features": {
- "encoder_map": true
- }
- },
- "layout": "LAYOUT_40",
- "layers": [
- [
- "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC",
- "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_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH",
- "KC_LSFT", "KC_ESC", "KC_ENT", "KC_MPLY", "KC_SPC", "KC_DEL", "KC_RSFT"
- ]
- ],
- "encoders": [
- [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}]
- ]
-}
diff --git a/keyboards/mawaeg/sharkropad/keymaps/default/rules.mk b/keyboards/0xcb/splaytoraid/keymaps/default/rules.mk
similarity index 100%
rename from keyboards/mawaeg/sharkropad/keymaps/default/rules.mk
rename to keyboards/0xcb/splaytoraid/keymaps/default/rules.mk
diff --git a/keyboards/0xcb/splaytoraid/readme.md b/keyboards/0xcb/splaytoraid/readme.md
index 4fe04c8abd..ab53696c95 100644
--- a/keyboards/0xcb/splaytoraid/readme.md
+++ b/keyboards/0xcb/splaytoraid/readme.md
@@ -11,10 +11,13 @@ A 40% ergonomic keyboard with a stacked acrylic case and RGB underglow.
Make example for this keyboard (after setting up your build environment):
make 0xcb/splaytoraid:default
+ make 0xcb/splaytoraid/32u4:default
Flashing example for this keyboard:
make 0xcb/splaytoraid:default:flash
+ make 0xcb/splaytoraid/32u4:default:flash
+
See 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).
@@ -26,4 +29,8 @@ Enter the bootloader in 3 ways:
* **Physical reset button**: Press the button on the controller (Helios) for more than 500ms or just press it (Pluto)
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
-When using an AVR microcontroller with this keyboard, the bootloader is configured to be QMK DFU for compatibility with [0xCB Pluto](https://github.com/0xCB-dev/0xCB-Pluto). If your microcontroller does not use this bootloader, ensure to set this parameter appropriately in your keymap's `rules.mk` file.
+Please note that the default bootloader for the `32u4` version is QMK DFU, for compatibility with [0xCB Pluto](https://github.com/0xCB-dev/0xCB-Pluto). Generic Pro Micros often use a different bootloader, such as `caterina`.
+
+If the incorrect bootloader is specified, bootmagic reset and the `QK_BOOT` keycode will not work.
+
+To avoid this problem, set the correct bootloader in your custom keymap's `rules.mk` file before compiling, or flash using an appropriate target (ex: `make 0xcb/splaytoraid/32u4:default:avrdude`). See [flashing instructions and bootloader information](https://docs.qmk.fm/#/flashing) for more details.
diff --git a/keyboards/0xcb/splaytoraid/rp2040_ce/keyboard.json b/keyboards/0xcb/splaytoraid/rp2040_ce/keyboard.json
new file mode 100644
index 0000000000..b5a4f95c69
--- /dev/null
+++ b/keyboards/0xcb/splaytoraid/rp2040_ce/keyboard.json
@@ -0,0 +1,44 @@
+{
+ "development_board": "promicro_rp2040",
+ "matrix_pins": {
+ "cols": ["GP28", "GP27", "GP26", "GP29", "GP20", "GP22", "GP23"],
+ "rows": ["GP0", "GP1", "GP2", "GP4", "GP6", "GP7", "GP8", "GP5"]
+ },
+ "diode_direction": "COL2ROW",
+ "rgb_matrix": {
+ "animations": {
+ "band_sat": true,
+ "band_spiral_val": true,
+ "breathing": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_up_down": true,
+ "digital_rain": true,
+ "dual_beacon": true,
+ "hue_breathing": true,
+ "jellybean_raindrops": true,
+ "multisplash": true,
+ "pixel_fractal": true,
+ "pixel_rain": true,
+ "rainbow_moving_chevron": true,
+ "raindrops": true,
+ "solid_reactive": true,
+ "solid_reactive_simple": true,
+ "solid_splash": true,
+ "splash": true,
+ "typing_heatmap": true
+ }
+ },
+ "encoder": {
+ "rotary": [
+ {"pin_a": "GP9", "pin_b": "GP21"}
+ ]
+ },
+ "ws2812": {
+ "pin": "GP3",
+ "driver": "vendor"
+ }
+}
diff --git a/keyboards/0xcb/splaytoraid/rp2040_ce/readme.md b/keyboards/0xcb/splaytoraid/rp2040_ce/readme.md
new file mode 100644
index 0000000000..f6ff200ac3
--- /dev/null
+++ b/keyboards/0xcb/splaytoraid/rp2040_ce/readme.md
@@ -0,0 +1,3 @@
+# rp2040_ce
+
+This folder is set as default in the parent rules.mk - it will build firmware compatible with the RP2040 Community Edition. See [here](https://docs.qmk.fm/#/platformdev_rp2040?id=rp2040_ce) for a list.
diff --git a/keyboards/1upkeyboards/super16/keyboard.json b/keyboards/1upkeyboards/super16/keyboard.json
index bd8c8fe00d..3b5859474a 100644
--- a/keyboards/1upkeyboards/super16/keyboard.json
+++ b/keyboards/1upkeyboards/super16/keyboard.json
@@ -74,25 +74,7 @@
"solid_splash": true,
"solid_multisplash": true
},
- "driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 224, "y": 0, "flags": 4},
- {"matrix": [1, 3], "x": 224, "y": 21, "flags": 4},
- {"matrix": [1, 2], "x": 150, "y": 21, "flags": 4},
- {"matrix": [1, 1], "x": 75, "y": 21, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 43, "flags": 4},
- {"matrix": [2, 1], "x": 75, "y": 43, "flags": 4},
- {"matrix": [2, 2], "x": 150, "y": 43, "flags": 4},
- {"matrix": [2, 3], "x": 224, "y": 43, "flags": 4},
- {"matrix": [3, 3], "x": 224, "y": 64, "flags": 4},
- {"matrix": [3, 2], "x": 150, "y": 64, "flags": 4},
- {"matrix": [3, 1], "x": 75, "y": 64, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 64, "flags": 4}
- ]
+ "driver": "ws2812"
},
"features": {
"bootmagic": true,
diff --git a/keyboards/1upkeyboards/super16/super16.c b/keyboards/1upkeyboards/super16/super16.c
new file mode 100644
index 0000000000..a9946c7525
--- /dev/null
+++ b/keyboards/1upkeyboards/super16/super16.c
@@ -0,0 +1,39 @@
+/* Copyright 2019 MechMerlin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3 },
+ { 7, 6, 5, 4 },
+ { 8, 9, 10, 11 },
+ { 15, 14, 13, 12 }
+}, {
+ // LED Index to Physical Position
+ { 0, 0 }, { 75, 0 }, { 150, 0 }, { 224, 0 },
+ { 224, 21 }, { 150, 21 }, { 75, 21 }, { 0, 21 },
+ { 0, 43 }, { 75, 43 }, { 150, 43 }, { 224, 43 },
+ { 224, 64 }, { 150, 64 }, { 75, 64 }, { 0, 64 },
+
+}, {
+ // LED Index to Flag
+ 4, 4, 4, 4,
+ 4, 4, 4, 4,
+ 4, 4, 4, 4,
+ 4, 4, 4, 4
+} };
+#endif
diff --git a/keyboards/1upkeyboards/super16v2/keyboard.json b/keyboards/1upkeyboards/super16v2/keyboard.json
index 1fb14d86da..5c5123453c 100644
--- a/keyboards/1upkeyboards/super16v2/keyboard.json
+++ b/keyboards/1upkeyboards/super16v2/keyboard.json
@@ -46,28 +46,6 @@
"splash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 3], "x": 28, "y": 12, "flags": 4},
- {"matrix": [0, 2], "x": 84, "y": 12, "flags": 4},
- {"matrix": [0, 1], "x": 140, "y": 12, "flags": 4},
- {"matrix": [0, 0], "x": 196, "y": 12, "flags": 4},
- {"matrix": [1, 3], "x": 28, "y": 28, "flags": 4},
- {"matrix": [1, 2], "x": 84, "y": 28, "flags": 4},
- {"matrix": [1, 1], "x": 140, "y": 28, "flags": 4},
- {"matrix": [1, 0], "x": 196, "y": 28, "flags": 4},
- {"matrix": [2, 3], "x": 28, "y": 44, "flags": 4},
- {"matrix": [2, 2], "x": 84, "y": 44, "flags": 4},
- {"matrix": [2, 1], "x": 140, "y": 44, "flags": 4},
- {"matrix": [2, 0], "x": 196, "y": 44, "flags": 4},
- {"matrix": [3, 3], "x": 28, "y": 60, "flags": 4},
- {"matrix": [3, 2], "x": 84, "y": 60, "flags": 4},
- {"matrix": [3, 1], "x": 140, "y": 60, "flags": 4},
- {"matrix": [3, 0], "x": 196, "y": 60, "flags": 4},
- {"x": 168, "y": 48, "flags": 2},
- {"x": 168, "y": 16, "flags": 2},
- {"x": 58, "y": 16, "flags": 2},
- {"x": 56, "y": 48, "flags": 2}
- ],
"sleep": true
},
"features": {
diff --git a/keyboards/1upkeyboards/super16v2/super16v2.c b/keyboards/1upkeyboards/super16v2/super16v2.c
new file mode 100644
index 0000000000..56e5fe7e7f
--- /dev/null
+++ b/keyboards/1upkeyboards/super16v2/super16v2.c
@@ -0,0 +1,41 @@
+/* Copyright 2022 MechMerlin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 3, 2, 1, 0 },
+ { 7, 6, 5, 4 },
+ { 11, 10, 9, 8 },
+ { 15, 14, 13, 12 }
+}, {
+ // LED Index to Physical Position
+ { 28, 12 }, { 84, 12 }, { 140, 12 }, { 196, 12 },
+ { 28, 28 }, { 84, 28 }, { 140, 28 }, { 196, 28 },
+ { 28, 44 }, { 84, 44 }, { 140, 44 }, { 196, 44 },
+ { 28, 60 }, { 84, 60 }, { 140, 60 }, { 196, 60 },
+ { 168, 48 }, { 168, 16 }, { 58, 16 }, { 56, 48 }
+}, {
+ // LED Index to Flag
+ 4, 4, 4, 4,
+ 4, 4, 4, 4,
+ 4, 4, 4, 4,
+ 4, 4, 4, 4,
+ 2, 2, 2, 2,
+} };
+#endif
diff --git a/keyboards/mawaeg/sharkropad/keyboard.json b/keyboards/1upkeyboards/sweet16v2/kb2040/keyboard.json
similarity index 53%
rename from keyboards/mawaeg/sharkropad/keyboard.json
rename to keyboards/1upkeyboards/sweet16v2/kb2040/keyboard.json
index c262d3e3cc..40a0ec4039 100644
--- a/keyboards/mawaeg/sharkropad/keyboard.json
+++ b/keyboards/1upkeyboards/sweet16v2/kb2040/keyboard.json
@@ -1,122 +1,129 @@
{
- "manufacturer": "mawaeg",
- "keyboard_name": "Sharkropad",
- "maintainer": "mawaeg",
- "bootloader": "stm32-dfu",
- "bootmagic": {
- "matrix": [0, 3]
- },
- "diode_direction": "COL2ROW",
- "encoder": {
- "rotary": [
- {"pin_a": "A0", "pin_b": "A1"}
- ]
+ "manufacturer": "1upkeyboards",
+ "keyboard_name": "sweet16v2",
+ "url": "1upkeyboards.com/shop/keyboard-kits/macro-pads/sweet-16-v2-macropad-kit/",
+ "maintainer": "ziptyze",
+ "processor": "RP2040",
+ "bootloader": "rp2040",
+ "board": "GENERIC_RP_RP2040",
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x5518",
+ "vid": "0x6F75"
},
"features": {
"bootmagic": true,
"encoder": true,
"extrakey": true,
- "nkro": true,
- "oled": true,
+ "mousekey": true,
+ "nkro": false,
"rgb_matrix": true
},
+ "qmk": {
+ "locking": {
+ "enabled": true,
+ "resync": true
+ }
+ },
+ "ws2812": {
+ "pin": "GP6",
+ "driver": "vendor"
+ },
"matrix_pins": {
- "cols": ["B1", "B0", "A4", "A2"],
- "rows": ["A3", "A7", "A6", "A5"]
+ "cols": ["GP2", "GP9", "GP8", "GP7"],
+ "rows": ["GP26", "GP1", "GP18", "GP5"]
+ },
+ "diode_direction": "COL2ROW",
+ "dynamic_keymap": {
+ "layer_count": 10
+ },
+ "encoder": {
+ "enabled": true,
+ "rotary": [
+ {"pin_a": "GP27", "pin_b": "GP28"},
+ {"pin_a": "GP4", "pin_b": "GP3"}
+ ]
},
- "processor": "STM32L432",
"rgb_matrix": {
- "animations": {
+ "animmations": {
"alphas_mods": true,
+ "gradient_up_down": true,
+ "gradient_left_right": true,
+ "breathing": true,
+ "band_sat": true,
+ "band_val": true,
"band_pinwheel_sat": true,
"band_pinwheel_val": true,
- "band_sat": true,
"band_spiral_sat": true,
"band_spiral_val": true,
- "band_val": true,
- "breathing": true,
"cycle_all": true,
"cycle_left_right": true,
+ "cycle_up_down": true,
+ "rainbow_moving_chevron": true,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"cycle_pinwheel": true,
"cycle_spiral": true,
- "cycle_up_down": true,
- "digital_rain": true,
"dual_beacon": true,
- "flower_blooming": true,
- "gradient_left_right": true,
- "gradient_up_down": true,
+ "rainbow_beacon": true,
+ "rainbow_pinwheels": true,
+ "raindrops": true,
+ "jellybean_raindrops": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
- "jellybean_raindrops": true,
- "multisplash": true,
+ "pixel_rain": true,
"pixel_flow": true,
"pixel_fractal": true,
- "pixel_rain": true,
- "rainbow_beacon": true,
- "rainbow_moving_chevron": true,
- "rainbow_pinwheels": true,
- "raindrops": true,
- "riverflow": true,
- "solid_multisplash": true,
+ "typing_heatmap": true,
+ "digital_rain": true,
+ "solid_reactive_simple": true,
"solid_reactive": true,
+ "solid_reactive_wide": true,
+ "solid_reactive_multiwide": true,
"solid_reactive_cross": true,
"solid_reactive_multicross": true,
- "solid_reactive_multinexus": true,
- "solid_reactive_multiwide": true,
"solid_reactive_nexus": true,
- "solid_reactive_simple": true,
- "solid_reactive_wide": true,
- "solid_splash": true,
+ "solid_reactive_multinexus": true,
"splash": true,
- "starlight": true,
- "starlight_dual_hue": true,
- "starlight_dual_sat": true,
- "typing_heatmap": true
- },
- "default": {
- "animation": "cycle_up_down"
+ "multisplash": true,
+ "solid_splash": true,
+ "solid_multisplash": true
},
"driver": "ws2812",
"layout": [
- {"matrix": [1, 0], "x": 189, "y": 27, "flags": 4},
- {"matrix": [1, 1], "x": 137, "y": 27, "flags": 4},
- {"matrix": [1, 2], "x": 86, "y": 27, "flags": 4},
- {"matrix": [1, 3], "x": 35, "y": 27, "flags": 4},
- {"matrix": [2, 0], "x": 189, "y": 41, "flags": 4},
- {"matrix": [2, 1], "x": 137, "y": 41, "flags": 4},
- {"matrix": [2, 2], "x": 86, "y": 41, "flags": 4},
- {"matrix": [2, 3], "x": 35, "y": 41, "flags": 4},
- {"matrix": [3, 0], "x": 189, "y": 55, "flags": 4},
- {"matrix": [3, 1], "x": 137, "y": 55, "flags": 4},
- {"matrix": [3, 2], "x": 86, "y": 55, "flags": 4},
- {"matrix": [3, 3], "x": 35, "y": 55, "flags": 4},
- {"x": 76, "y": 3, "flags": 2},
- {"x": 148, "y": 3, "flags": 2},
- {"x": 216, "y": 17, "flags": 2},
- {"x": 216, "y": 45, "flags": 2},
- {"x": 224, "y": 61, "flags": 2},
- {"x": 60, "y": 61, "flags": 2},
- {"x": 8, "y": 45, "flags": 2},
- {"x": 8, "y": 17, "flags": 2}
+ {"flags": 4, "matrix": [0, 0], "x": 28, "y": 12},
+ {"flags": 4, "matrix": [0, 1], "x": 84, "y": 12},
+ {"flags": 4, "matrix": [0, 2], "x": 140, "y": 12},
+ {"flags": 4, "matrix": [0, 3], "x": 196, "y": 12},
+ {"flags": 2, "x": 196, "y": 17},
+ {"flags": 4, "matrix": [1, 3], "x": 196, "y": 28},
+ {"flags": 4, "matrix": [1, 2], "x": 140, "y": 28},
+ {"flags": 4, "matrix": [1, 1], "x": 84, "y": 28},
+ {"flags": 2, "x": 28, "y": 17},
+ {"flags": 4, "matrix": [1, 0], "x": 28, "y": 28},
+ {"flags": 4, "matrix": [2, 0], "x": 28, "y": 44},
+ {"flags": 4, "matrix": [2, 1], "x": 84, "y": 44},
+ {"flags": 4, "matrix": [2, 2], "x": 140, "y": 44},
+ {"flags": 4, "matrix": [2, 3], "x": 196, "y": 44},
+ {"flags": 2, "x": 196, "y": 47},
+ {"flags": 4, "matrix": [3, 3], "x": 196, "y": 60},
+ {"flags": 4, "matrix": [3, 2], "x": 140, "y": 60},
+ {"flags": 4, "matrix": [3, 1], "x": 84, "y": 60},
+ {"flags": 2, "x": 28, "y": 47},
+ {"flags": 4, "matrix": [3, 0], "x": 28, "y": 60}
],
- "max_brightness": 180
- },
- "url": "https://github.com/mawaeg/sharkropad",
- "usb": {
- "device_version": "1.0.0",
- "pid": "0xAFFE",
- "vid": "0x6D73"
- },
- "ws2812": {
- "driver": "pwm",
- "pin": "B3"
+ "sleep": true
},
+ "community_layouts": [
+ "ortho_4x4"
+ ],
"layouts": {
- "LAYOUT": {
+ "LAYOUT_ortho_4x4": {
"layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
diff --git a/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.c b/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.c
new file mode 100644
index 0000000000..6ccf21e18f
--- /dev/null
+++ b/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.c
@@ -0,0 +1,41 @@
+/* Copyright 2022 ziptyze
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_ortho_4x4(
+ KC_P7, KC_P8, KC_P9, KC_PMNS,
+ KC_P4, KC_P5, KC_P6, KC_PPLS,
+ KC_P1, KC_P2, KC_P3, KC_PSLS,
+ MO(1), KC_P0, KC_PDOT, KC_PENT
+ ),
+
+ [1] = LAYOUT_ortho_4x4(
+ RM_TOGG, RM_HUEU, RM_SATU, RM_VALU,
+ RM_NEXT, RM_HUED, RM_SATD, RM_VALD,
+ RM_SPDD, RM_SPDU, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT
+ )
+};
+
+
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(RM_VALD, RM_VALU) },
+ [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
+};
+#endif
\ No newline at end of file
diff --git a/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.json b/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.json
deleted file mode 100644
index fd2a0dc766..0000000000
--- a/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "keyboard": "1upkeyboards/sweet16v2",
- "keymap": "default",
- "coonfig": {
- "features": {
- "encoder_map": true
- }
- },
- "layout": "LAYOUT_ortho_4x4",
- "layers": [
- [
- "KC_P7", "KC_P8", "KC_P8", "KC_PMNS",
- "KC_P4", "KC_P5", "KC_P6", "KC_PPLS",
- "KC_P1", "KC_P2", "KC_P3", "KC_PSLS",
- "MO(1)", "KC_P0", "KC_PDOT", "KC_PENT"
- ],
- [
- "RM_TOGG", "RM_HUEU", "RM_SATU", "RM_VALU",
- "RM_NEXT", "RM_HUED", "RM_SATD", "RM_VALD",
- "RM_SPDD", "RM_SPDU", "_______", "_______",
- "_______", "_______", "_______", "QK_BOOT"
- ]
- ],
- "encoders": [
- [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "RM_VALD", "cw": "RM_VALU"}],
- [{"ccw": "_______", "cw": "_______"}, {"ccw": "_______", "cw": "_______"}]
- ]
-}
diff --git a/keyboards/1upkeyboards/sweet16v2/keyboard.json b/keyboards/1upkeyboards/sweet16v2/pro_micro/keyboard.json
similarity index 97%
rename from keyboards/1upkeyboards/sweet16v2/keyboard.json
rename to keyboards/1upkeyboards/sweet16v2/pro_micro/keyboard.json
index b84a43ff40..d8ff291e69 100644
--- a/keyboards/1upkeyboards/sweet16v2/keyboard.json
+++ b/keyboards/1upkeyboards/sweet16v2/pro_micro/keyboard.json
@@ -3,7 +3,8 @@
"keyboard_name": "sweet16v2",
"url": "1upkeyboards.com/shop/keyboard-kits/macro-pads/sweet-16-v2-macropad-kit/",
"maintainer": "ziptyze",
- "development_board": "elite_c",
+ "bootloader": "atmel-dfu",
+ "processor": "atmega32u4",
"usb": {
"device_version": "1.0.0",
"pid": "0x5518",
@@ -14,6 +15,7 @@
"encoder": true,
"extrakey": true,
"mousekey": true,
+ "nkro": false,
"rgb_matrix": true
},
"qmk": {
@@ -34,6 +36,7 @@
"layer_count": 10
},
"encoder": {
+ "enabled": true,
"rotary": [
{"pin_a": "F6", "pin_b": "F5"},
{"pin_a": "D4", "pin_b": "D0"}
diff --git a/keyboards/1upkeyboards/sweet16v2/readme.md b/keyboards/1upkeyboards/sweet16v2/readme.md
index eacaf0d0ce..e3f5859f96 100644
--- a/keyboards/1upkeyboards/sweet16v2/readme.md
+++ b/keyboards/1upkeyboards/sweet16v2/readme.md
@@ -1,18 +1,26 @@
# sweet16v2
-A 4x4 macropad with per-key RGB lighting and underglow.
+A 4x4 macropad with RGB inswitch lighting and underglow.
* Keyboard Maintainer: [ziptyze](https://github.com/ziptyze)
* Hardware Supported: 1upkeyboards Sweet 16 v2
* Hardware Availability: [1upkeyboards](https://1upkeyboards.com/)
-Make example for this keyboard (after setting up your build environment):
+Make example for this keyboard using an atmel-based controller (after setting up your build environment):
- make 1upkeyboards/sweet16v2:default
+ make 1upkeyboards/sweet16v2/promicro:default
-Flashing example for this keyboard:
+Flashing example for this keyboard using an atmel-based controller:
- make 1upkeyboards/sweet16v2:default:flash
+ make 1upkeyboards/sweet16v2/promicro:default:flash
+
+Make example for this keyboard using an rp2040-based controller (after setting up your build environment):
+
+ make 1upkeyboards/sweet16v2/kb2040:default
+
+Flashing example for this keyboard using an rp2040-based controller:
+
+ make 1upkeyboards/sweet16v2/kb2040:default:flash
See 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,10 +30,10 @@ Enter the bootloader in 3 ways for atmel-based controllers:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
-* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
+* **Keycode in layout**: Press the key mapped to `RESET` if it is available
Enter the bootloader in 2 ways for rp2040-based controllers:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
-* **Bootsel button**: Hold the bootsel button on controller and plug in the keyboard
+* **Bootsel button**: Hold the bootsel button on controller and plug in the keyboard
\ No newline at end of file
diff --git a/keyboards/40percentclub/gherkin/info.json b/keyboards/40percentclub/gherkin/info.json
new file mode 100644
index 0000000000..644001bc05
--- /dev/null
+++ b/keyboards/40percentclub/gherkin/info.json
@@ -0,0 +1,62 @@
+{
+ "keyboard_name": "Gherkin",
+ "manufacturer": "40 Percent Club",
+ "maintainer": "qmk",
+ "usb": {
+ "vid": "0x4025",
+ "pid": "0x6060",
+ "device_version": "0.0.1"
+ },
+ "features": {
+ "bootmagic": true,
+ "mousekey": true,
+ "extrakey": true,
+ "nkro": true,
+ "backlight": true
+ },
+ "qmk": {
+ "locking": {
+ "enabled": true,
+ "resync": true
+ }
+ },
+ "community_layouts": ["ortho_3x10"],
+ "layouts": {
+ "LAYOUT_ortho_3x10": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [1, 0], "x": 6, "y": 0},
+ {"matrix": [1, 1], "x": 7, "y": 0},
+ {"matrix": [1, 2], "x": 8, "y": 0},
+ {"matrix": [1, 3], "x": 9, "y": 0},
+
+ {"matrix": [1, 4], "x": 0, "y": 1},
+ {"matrix": [1, 5], "x": 1, "y": 1},
+ {"matrix": [2, 0], "x": 2, "y": 1},
+ {"matrix": [2, 1], "x": 3, "y": 1},
+ {"matrix": [2, 2], "x": 4, "y": 1},
+ {"matrix": [2, 3], "x": 5, "y": 1},
+ {"matrix": [2, 4], "x": 6, "y": 1},
+ {"matrix": [2, 5], "x": 7, "y": 1},
+ {"matrix": [3, 0], "x": 8, "y": 1},
+ {"matrix": [3, 1], "x": 9, "y": 1},
+
+ {"matrix": [3, 2], "x": 0, "y": 2},
+ {"matrix": [3, 3], "x": 1, "y": 2},
+ {"matrix": [3, 4], "x": 2, "y": 2},
+ {"matrix": [3, 5], "x": 3, "y": 2},
+ {"matrix": [4, 0], "x": 4, "y": 2},
+ {"matrix": [4, 1], "x": 5, "y": 2},
+ {"matrix": [4, 2], "x": 6, "y": 2},
+ {"matrix": [4, 3], "x": 7, "y": 2},
+ {"matrix": [4, 4], "x": 8, "y": 2},
+ {"matrix": [4, 5], "x": 9, "y": 2}
+ ]
+ }
+ }
+}
diff --git a/keyboards/40percentclub/gherkin/kb2040/keyboard.json b/keyboards/40percentclub/gherkin/kb2040/keyboard.json
new file mode 100644
index 0000000000..431ac371ee
--- /dev/null
+++ b/keyboards/40percentclub/gherkin/kb2040/keyboard.json
@@ -0,0 +1,12 @@
+{
+ "development_board": "kb2040",
+ "matrix_pins": {
+ "cols": ["GP8", "GP7", "GP6", "GP5", "GP4", "GP3"],
+ "rows": ["GP26", "GP18", "GP20", "GP19", "GP10"]
+ },
+ "diode_direction": "COL2ROW",
+ "backlight": {
+ "pin": "GP9",
+ "driver": "software"
+ }
+}
diff --git a/keyboards/40percentclub/gherkin/kb2040/readme.md b/keyboards/40percentclub/gherkin/kb2040/readme.md
new file mode 100644
index 0000000000..1fc9e8b18e
--- /dev/null
+++ b/keyboards/40percentclub/gherkin/kb2040/readme.md
@@ -0,0 +1,22 @@
+# Gherkin
+
+
+
+
+===
+
+A 30 key keyboard with Adafruit's KB2040 as microcontroller.
+
+* [The original TMK firmware](https://github.com/di0ib/tmk_keyboard/tree/master/keyboard/gherkin)
+
+Keyboard Maintainer: QMK Community
+Hardware Supported: Gherkin PCB & Adafruit KB2040
+Hardware Availability: [Gherkin project on 40% Keyboards](http://www.40percent.club/2016/11/gherkin.html) and [Adafruit KB2040](https://www.adafruit.com/product/5302)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make 40percentclub/gherkin/kb2040:default
+
+See 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).
+
+Use the KB2040 microcontroller as a drop-in replacement for the Pro Micro in this cute 30% keyboard.
diff --git a/keyboards/40percentclub/gherkin/keyboard.json b/keyboards/40percentclub/gherkin/keyboard.json
deleted file mode 100644
index 1416997b47..0000000000
--- a/keyboards/40percentclub/gherkin/keyboard.json
+++ /dev/null
@@ -1,74 +0,0 @@
-{
- "manufacturer": "40 Percent Club",
- "keyboard_name": "Gherkin",
- "maintainer": "qmk",
- "backlight": {
- "pin": "B5"
- },
- "development_board": "promicro",
- "diode_direction": "COL2ROW",
- "features": {
- "backlight": true,
- "bootmagic": true,
- "extrakey": true,
- "mousekey": true,
- "nkro": true
- },
- "indicators": {
- "caps_lock": "B0",
- "num_lock": "D5",
- "on_state": 0
- },
- "matrix_pins": {
- "cols": ["B4", "E6", "D7", "C6", "D4", "D0"],
- "rows": ["F7", "B1", "B3", "B2", "B6"]
- },
- "qmk": {
- "locking": {
- "enabled": true,
- "resync": true
- }
- },
- "usb": {
- "device_version": "0.0.1",
- "pid": "0x6060",
- "vid": "0x4025"
- },
- "community_layouts": ["ortho_3x10"],
- "layouts": {
- "LAYOUT_ortho_3x10": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0},
- {"matrix": [0, 1], "x": 1, "y": 0},
- {"matrix": [0, 2], "x": 2, "y": 0},
- {"matrix": [0, 3], "x": 3, "y": 0},
- {"matrix": [0, 4], "x": 4, "y": 0},
- {"matrix": [0, 5], "x": 5, "y": 0},
- {"matrix": [1, 0], "x": 6, "y": 0},
- {"matrix": [1, 1], "x": 7, "y": 0},
- {"matrix": [1, 2], "x": 8, "y": 0},
- {"matrix": [1, 3], "x": 9, "y": 0},
- {"matrix": [1, 4], "x": 0, "y": 1},
- {"matrix": [1, 5], "x": 1, "y": 1},
- {"matrix": [2, 0], "x": 2, "y": 1},
- {"matrix": [2, 1], "x": 3, "y": 1},
- {"matrix": [2, 2], "x": 4, "y": 1},
- {"matrix": [2, 3], "x": 5, "y": 1},
- {"matrix": [2, 4], "x": 6, "y": 1},
- {"matrix": [2, 5], "x": 7, "y": 1},
- {"matrix": [3, 0], "x": 8, "y": 1},
- {"matrix": [3, 1], "x": 9, "y": 1},
- {"matrix": [3, 2], "x": 0, "y": 2},
- {"matrix": [3, 3], "x": 1, "y": 2},
- {"matrix": [3, 4], "x": 2, "y": 2},
- {"matrix": [3, 5], "x": 3, "y": 2},
- {"matrix": [4, 0], "x": 4, "y": 2},
- {"matrix": [4, 1], "x": 5, "y": 2},
- {"matrix": [4, 2], "x": 6, "y": 2},
- {"matrix": [4, 3], "x": 7, "y": 2},
- {"matrix": [4, 4], "x": 8, "y": 2},
- {"matrix": [4, 5], "x": 9, "y": 2}
- ]
- }
- }
-}
diff --git a/keyboards/40percentclub/gherkin/keymaps/default/keymap.c b/keyboards/40percentclub/gherkin/keymaps/default/keymap.c
new file mode 100644
index 0000000000..8c28b68afa
--- /dev/null
+++ b/keyboards/40percentclub/gherkin/keymaps/default/keymap.c
@@ -0,0 +1,52 @@
+#include QMK_KEYBOARD_H
+
+#define FN1_SPC LT(1, KC_SPC)
+#define FN2_BSPC LT(2, KC_BSPC)
+#define FN3_C LT(3, KC_C)
+#define FN4_V LT(4, KC_V)
+#define FN5_B LT(5, KC_B)
+#define CTL_Z CTL_T(KC_Z)
+#define ALT_X ALT_T(KC_X)
+#define ALT_N ALGR_T(KC_N)
+#define CTL_M RCTL_T(KC_M)
+#define SFT_ENT RSFT_T(KC_ENT)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT_ortho_3x10(
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
+ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ESC,
+ CTL_Z, ALT_X, FN3_C, FN4_V, FN2_BSPC,FN1_SPC, FN5_B, ALT_N, CTL_M, SFT_ENT
+ ),
+
+ [1] = LAYOUT_ortho_3x10(
+ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
+ _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______
+ ),
+
+ [2] = LAYOUT_ortho_3x10(
+ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,
+ KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, KC_GRV,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ [3] = LAYOUT_ortho_3x10(
+ _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ KC_TAB, _______, _______, _______, _______, KC_COMM, KC_DOT, KC_SLSH, KC_SCLN, KC_QUOT,
+ _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+ ),
+
+ [4] = LAYOUT_ortho_3x10(
+ _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
+ KC_TAB, _______, _______, _______, _______, KC_LABK, KC_RABK, KC_QUES, KC_COLN, KC_DQUO,
+ _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
+ ),
+
+ [5] = LAYOUT_ortho_3x10(
+ KC_CALC, KC_WHOM, KC_MAIL, KC_MYCM, _______, _______, _______, _______, _______, KC_PSCR,
+ _______, _______, _______, _______, _______, _______, _______, _______, BL_DOWN, BL_UP,
+ _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______
+ )
+
+};
diff --git a/keyboards/40percentclub/gherkin/keymaps/default/keymap.json b/keyboards/40percentclub/gherkin/keymaps/default/keymap.json
deleted file mode 100644
index e81a6fd8f5..0000000000
--- a/keyboards/40percentclub/gherkin/keymaps/default/keymap.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "keyboard": "40percentclub/gherkin",
- "keymap": "default",
- "layout": "LAYOUT_ortho_3x10",
- "layers": [
- [
- "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P",
- "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_ESC",
- "CTL_T(KC_Z)", "ALT_T(KC_X)", "LT(3, KC_C)", "LT(4, KC_V)", "LT(2, KC_BSPC)", "LT(1, KC_SPC)", "LT(5, KC_B)", "ALGR_T(KC_N)", "RCTL_T(KC_M)", "RSFT_T(KC_ENT)"
- ],
- [
- "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0",
- "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10",
- "_______", "_______", "_______", "_______", "KC_DEL", "_______", "_______", "_______", "_______", "_______"
- ],
- [
- "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN",
- "KC_F11", "KC_F12", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "KC_GRV",
- "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______"
- ],
- [
- "_______", "_______", "_______", "_______", "_______", "KC_MINS", "KC_EQL", "KC_LBRC", "KC_RBRC", "KC_BSLS",
- "KC_TAB", "_______", "_______", "_______", "_______", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_SCLN", "KC_QUOT",
- "_______", "_______", "_______", "_______", "_______", "_______", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RGHT"
- ],
- [
- "_______", "_______", "_______", "_______", "_______", "KC_UNDS", "KC_PLUS", "KC_LCBR", "KC_RCBR", "KC_PIPE",
- "KC_TAB", "_______", "_______", "_______", "_______", "KC_LABK", "KC_RABK", "KC_QUES", "KC_COLN", "KC_DQUO",
- "_______", "_______", "_______", "_______", "_______", "_______", "KC_HOME", "KC_PGDN", "KC_PGUP", "KC_END"
- ],
- [
- "KC_CALC", "KC_WHOM", "KC_MAIL", "KC_MYCM", "_______", "_______", "_______", "_______", "_______", "KC_PSCR",
- "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "BL_DOWN", "BL_UP",
- "_______", "_______", "_______", "_______", "QK_BOOT", "_______", "_______", "_______", "_______", "_______"
- ]
- ]
-}
diff --git a/keyboards/40percentclub/gherkin/pro_micro/keyboard.json b/keyboards/40percentclub/gherkin/pro_micro/keyboard.json
new file mode 100644
index 0000000000..882ea8f72b
--- /dev/null
+++ b/keyboards/40percentclub/gherkin/pro_micro/keyboard.json
@@ -0,0 +1,16 @@
+{
+ "development_board": "promicro",
+ "matrix_pins": {
+ "cols": ["B4", "E6", "D7", "C6", "D4", "D0"],
+ "rows": ["F7", "B1", "B3", "B2", "B6"]
+ },
+ "diode_direction": "COL2ROW",
+ "indicators": {
+ "num_lock": "D5",
+ "caps_lock": "B0",
+ "on_state": 0
+ },
+ "backlight": {
+ "pin": "B5"
+ }
+}
diff --git a/keyboards/40percentclub/gherkin/readme.md b/keyboards/40percentclub/gherkin/readme.md
index 5ce4d173ca..7404f19819 100644
--- a/keyboards/40percentclub/gherkin/readme.md
+++ b/keyboards/40percentclub/gherkin/readme.md
@@ -1,27 +1,21 @@
# Gherkin

+===
A 30 key keyboard.
-* Keyboard Maintainer: QMK Community
-* Hardware Supported: Gherkin PCB w/ Pro Micro compatible development board
-* Hardware Availability: [Gherkin project on 40% Keyboards](http://www.40percent.club/2016/11/gherkin.html)
+* [The original TMK firmware](https://github.com/di0ib/tmk_keyboard/tree/master/keyboard/gherkin)
+
+Keyboard Maintainer: QMK Community
+Hardware Supported: Gherkin PCB
+Hardware Availability: [Gherkin project on 40% Keyboards](http://www.40percent.club/2016/11/gherkin.html)
Make example for this keyboard (after setting up your build environment):
make 40percentclub/gherkin:default
-Flashing example for this keyboard:
-
- make 40percentclub/gherkin:default:flash
-
See 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).
-## Bootloader
-
-Enter the bootloader in 3 ways:
-
-* **Bootmagic reset**: Hold down the key at (0,0) in the matrix and plug in the keyboard
-* **Physical reset**: Short the Ground and Reset pins on the microcontroller
-* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
+First pass at adding support for the gherkin keyboard. Compiles but completely
+untested. Intended to kick-start development.
diff --git a/keyboards/40percentclub/ut47/led_controls.ino b/keyboards/40percentclub/ut47/LED_controls.ino
similarity index 100%
rename from keyboards/40percentclub/ut47/led_controls.ino
rename to keyboards/40percentclub/ut47/LED_controls.ino
diff --git a/keyboards/40percentclub/ut47/config.h b/keyboards/40percentclub/ut47/config.h
new file mode 100644
index 0000000000..f0182a59f8
--- /dev/null
+++ b/keyboards/40percentclub/ut47/config.h
@@ -0,0 +1,32 @@
+/*
+Copyright 2018 Carlos Filoteo
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+#pragma once
+
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 12
+
+#define MATRIX_ROW_PINS { D1, D0, D4, C6 }
+#define MATRIX_COL_PINS { D7, E6, B4, B5, B6, B2, B3, B1, F7, F6, F5, F4 }
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+/* Enable GNAP matrix serial output */
+#define GNAP_ENABLE
diff --git a/keyboards/40percentclub/ut47/keyboard.json b/keyboards/40percentclub/ut47/keyboard.json
index 176d2a6b2d..00c8edef69 100644
--- a/keyboards/40percentclub/ut47/keyboard.json
+++ b/keyboards/40percentclub/ut47/keyboard.json
@@ -22,15 +22,6 @@
"resync": true
}
},
- "diode_direction": "COL2ROW",
- "matrix_pins": {
- "cols": ["D7", "E6", "B4", "B5", "B6", "B2", "B3", "B1", "F7", "F6", "F5", "F4"],
- "rows": ["D1", "D0", "D4", "C6"]
- },
- "keycodes": [
- {"key": "LED_TOG"},
- {"key": "LED_CHG"}
- ],
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/40percentclub/ut47/keymaps/default/keymap.c b/keyboards/40percentclub/ut47/keymaps/default/keymap.c
index 050cb6d4b3..4a9de82492 100644
--- a/keyboards/40percentclub/ut47/keymaps/default/keymap.c
+++ b/keyboards/40percentclub/ut47/keymaps/default/keymap.c
@@ -1,10 +1,31 @@
-// Copyright 2018 Carlos Filoteo
-// SPDX-License-Identifier: GPL-2.0-or-later
+/* Copyright 2018 Carlos Filoteo
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
#include QMK_KEYBOARD_H
+#ifdef LED_ENABLE
+ #include "uart.h"
+#endif
#define LT3_TAB LT(3, KC_TAB)
#define MT_RSFT_ENT MT(MOD_RSFT, KC_ENT)
+enum custom_keycodes {
+ LED_TOG = SAFE_RANGE,
+ LED_CHG
+};
+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base Layer
@@ -83,3 +104,32 @@ LAYOUT( /* Tab */
_______, _______, _______, _______, _______, _______, _______, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT
),
};
+
+//LED keymap functions
+ #ifdef LED_ENABLE
+void led_chmode(void) {
+ uart_write(0x65);
+}
+
+void led_toggle(void) {
+ uart_write(0x64);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ if (record->event.pressed) {
+ switch(keycode) {
+ case LED_TOG:
+ #ifdef LED_ENABLE
+ led_toggle();
+ #endif
+ return false;
+ case LED_CHG:
+ #ifdef LED_ENABLE
+ led_chmode();
+ #endif
+ return false;
+ }
+ }
+ return true;
+};
+#endif
diff --git a/keyboards/40percentclub/ut47/keymaps/rgb/config.h b/keyboards/40percentclub/ut47/keymaps/rgb/config.h
index 7a66d80f0e..d48ee2bf3f 100644
--- a/keyboards/40percentclub/ut47/keymaps/rgb/config.h
+++ b/keyboards/40percentclub/ut47/keymaps/rgb/config.h
@@ -1,7 +1,23 @@
-// Copyright 2018 Carlos Filoteo
-// SPDX-License-Identifier: GPL-2.0-or-later
+/* Copyright 2018 Carlos Filoteo
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
#pragma once
+
+// place overrides here
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
diff --git a/keyboards/40percentclub/ut47/keymaps/rgb/keymap.c b/keyboards/40percentclub/ut47/keymaps/rgb/keymap.c
index 1250c72f2a..17c0be7772 100644
--- a/keyboards/40percentclub/ut47/keymaps/rgb/keymap.c
+++ b/keyboards/40percentclub/ut47/keymaps/rgb/keymap.c
@@ -1,10 +1,31 @@
-// Copyright 2018 Carlos Filoteo
-// SPDX-License-Identifier: GPL-2.0-or-later
+/* Copyright 2018 Carlos Filoteo
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
#include QMK_KEYBOARD_H
+#ifdef LED_ENABLE
+ #include "uart.h"
+#endif
#define LT3_TAB LT(3, KC_TAB)
#define MT_RSFT_ENT MT(MOD_RSFT, KC_ENT)
+enum custom_keycodes {
+ LED_TOG = SAFE_RANGE,
+ LED_CHG
+};
+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
LAYOUT(
@@ -35,3 +56,32 @@ LAYOUT( /* Tab */
_______, _______, _______, _______, _______, _______, _______, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT
),
};
+
+//LED keymap functions
+ #ifdef LED_ENABLE
+void led_chmode(void) {
+ uart_write(0x65);
+}
+
+void led_toggle(void) {
+ uart_write(0x64);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ if (record->event.pressed) {
+ switch(keycode) {
+ case LED_TOG:
+ #ifdef LED_ENABLE
+ led_toggle();
+ #endif
+ return false;
+ case LED_CHG:
+ #ifdef LED_ENABLE
+ led_chmode();
+ #endif
+ return false;
+ }
+ }
+ return true;
+};
+#endif
diff --git a/keyboards/40percentclub/ut47/led.c b/keyboards/40percentclub/ut47/led.c
new file mode 100644
index 0000000000..fa431de760
--- /dev/null
+++ b/keyboards/40percentclub/ut47/led.c
@@ -0,0 +1,39 @@
+/*
+Copyright 2012 Jun Wako
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+#include
+#include
+#include "led.h"
+
+bool led_update_kb(led_t led_state)
+{
+ bool res = led_update_user(led_state);
+ if (res) {
+ if (led_state.caps_lock) {
+ // output low
+ gpio_set_pin_output(B0);
+ gpio_write_pin_low(B0);
+ gpio_set_pin_output(D5);
+ gpio_write_pin_low(D5);
+ } else {
+ // Hi-Z
+ gpio_set_pin_input(B0);
+ gpio_set_pin_input(D5);
+ }
+ }
+ return false;
+}
diff --git a/keyboards/40percentclub/ut47/led_controls.c b/keyboards/40percentclub/ut47/led_controls.c
deleted file mode 100644
index 34a0ceb5b7..0000000000
--- a/keyboards/40percentclub/ut47/led_controls.c
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright 2018 Carlos Filoteo
-// SPDX-License-Identifier: GPL-2.0-or-later
-#include QMK_KEYBOARD_H
-#include "uart.h"
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if (res) {
- if (led_state.caps_lock) {
- // output low
- gpio_set_pin_output(B0);
- gpio_write_pin_low(B0);
- gpio_set_pin_output(D5);
- gpio_write_pin_low(D5);
- } else {
- // Hi-Z
- gpio_set_pin_input(B0);
- gpio_set_pin_input(D5);
- }
- }
- return false;
-}
-
-void keyboard_post_init_kb(void) {
- uart_init(9600);
-
- keyboard_post_init_user();
-}
-
-bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
- uart_write((record->event.key.row * 16) + record->event.key.col);
-
- switch (keycode) {
- case LED_TOG:
- uart_write(0x64);
- return false;
- case LED_CHG:
- uart_write(0x65);
- return false;
- }
- }
- return process_record_user(keycode, record);
-}
diff --git a/keyboards/40percentclub/ut47/matrix.c b/keyboards/40percentclub/ut47/matrix.c
new file mode 100644
index 0000000000..d803f11c5e
--- /dev/null
+++ b/keyboards/40percentclub/ut47/matrix.c
@@ -0,0 +1,194 @@
+/*
+Copyright 2018 Carlos Filoteo
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+/*
+ * scan matrix
+ */
+#include
+#include
+#include
+#include
+#include "print.h"
+#include "debug.h"
+#include "util.h"
+#include "matrix.h"
+
+#ifndef DEBOUNCE
+# define DEBOUNCE 5
+#endif
+static uint8_t debouncing = DEBOUNCE;
+
+/* matrix state(1:on, 0:off) */
+static matrix_row_t matrix[MATRIX_ROWS];
+static matrix_row_t matrix_debouncing[MATRIX_ROWS];
+
+static matrix_row_t read_cols(void);
+static void init_cols(void);
+static void unselect_rows(void);
+static void select_row(uint8_t row);
+
+
+inline
+uint8_t matrix_rows(void)
+{
+ return MATRIX_ROWS;
+}
+
+inline
+uint8_t matrix_cols(void)
+{
+ return MATRIX_COLS;
+}
+
+void matrix_init(void)
+{
+ // initialize row and col
+ unselect_rows();
+ init_cols();
+
+ // initialize matrix state: all keys off
+ for (uint8_t i=0; i < MATRIX_ROWS; i++) {
+ matrix[i] = 0;
+ matrix_debouncing[i] = 0;
+ }
+}
+
+uint8_t matrix_scan(void)
+{
+ for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
+ select_row(i);
+ _delay_us(30); // without this wait read unstable value.
+ matrix_row_t cols = read_cols();
+ if (matrix_debouncing[i] != cols) {
+ matrix_debouncing[i] = cols;
+ if (debouncing) {
+ dprintf("bounce!: %02X\n", debouncing);
+ }
+ debouncing = DEBOUNCE;
+ }
+ unselect_rows();
+ }
+
+ if (debouncing) {
+ if (--debouncing) {
+ _delay_ms(1);
+ } else {
+ for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
+ matrix[i] = matrix_debouncing[i];
+ }
+ }
+ }
+
+ return 1;
+}
+
+inline
+bool matrix_is_on(uint8_t row, uint8_t col)
+{
+ return (matrix[row] & ((matrix_row_t)1<The reason this is an "opt-in" feature is to prevent sending serial communication over the pin, in case it ends up being used for something else (like RGB underglow).
diff --git a/keyboards/40percentclub/ut47/rules.mk b/keyboards/40percentclub/ut47/rules.mk
new file mode 100644
index 0000000000..5480f61b9b
--- /dev/null
+++ b/keyboards/40percentclub/ut47/rules.mk
@@ -0,0 +1,3 @@
+CUSTOM_MATRIX = yes
+SRC += matrix.c
+UART_DRIVER_REQUIRED = yes
diff --git a/keyboards/40percentclub/ut47/ut47.c b/keyboards/40percentclub/ut47/ut47.c
new file mode 100644
index 0000000000..867d8c0202
--- /dev/null
+++ b/keyboards/40percentclub/ut47/ut47.c
@@ -0,0 +1,36 @@
+/* Copyright 2018 Carlos Filoteo
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include "quantum.h"
+#ifdef LED_ENABLE
+ #include "uart.h"
+
+void matrix_init_kb(void) {
+ uart_init(9600);
+
+ matrix_init_user();
+}
+#endif
+
+bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+ // put your per-action keyboard code here
+ // runs for every action, just before processing by the firmware
+ if (record->event.pressed) {
+ #ifdef LED_ENABLE
+ uart_write((record->event.key.row*16)+record->event.key.col);
+ #endif
+ }
+ return process_record_user(keycode, record);
+}
diff --git a/keyboards/4pplet/perk60_iso/rev_a/keyboard.json b/keyboards/4pplet/perk60_iso/rev_a/keyboard.json
index 2e50d02a52..8d3a519a87 100644
--- a/keyboards/4pplet/perk60_iso/rev_a/keyboard.json
+++ b/keyboards/4pplet/perk60_iso/rev_a/keyboard.json
@@ -37,71 +37,7 @@
"default": {
"val": 80
},
- "driver": "is31fl3733",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 32, "y": 0, "flags": 4},
- {"matrix": [1, 1], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 65, "y": 0, "flags": 4},
- {"matrix": [1, 2], "x": 81, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 97, "y": 0, "flags": 4},
- {"matrix": [1, 3], "x": 113, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 129, "y": 0, "flags": 4},
- {"matrix": [1, 4], "x": 145, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 161, "y": 0, "flags": 4},
- {"matrix": [1, 5], "x": 178, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 194, "y": 0, "flags": 4},
- {"matrix": [3, 6], "x": 218, "y": 0, "flags": 1},
- {"matrix": [2, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [3, 0], "x": 24, "y": 16, "flags": 4},
- {"matrix": [2, 1], "x": 40, "y": 16, "flags": 4},
- {"matrix": [3, 1], "x": 57, "y": 16, "flags": 4},
- {"matrix": [2, 2], "x": 73, "y": 16, "flags": 4},
- {"matrix": [3, 2], "x": 89, "y": 16, "flags": 4},
- {"matrix": [2, 3], "x": 105, "y": 16, "flags": 4},
- {"matrix": [3, 3], "x": 121, "y": 16, "flags": 4},
- {"matrix": [2, 4], "x": 137, "y": 16, "flags": 4},
- {"matrix": [3, 4], "x": 153, "y": 16, "flags": 4},
- {"matrix": [2, 5], "x": 170, "y": 16, "flags": 4},
- {"matrix": [3, 5], "x": 186, "y": 16, "flags": 4},
- {"matrix": [2, 6], "x": 202, "y": 16, "flags": 4},
- {"matrix": [7, 6], "x": 224, "y": 24, "flags": 1},
- {"matrix": [4, 0], "x": 6, "y": 32, "flags": 8},
- {"matrix": [5, 0], "x": 28, "y": 32, "flags": 4},
- {"matrix": [4, 1], "x": 44, "y": 32, "flags": 4},
- {"matrix": [5, 1], "x": 61, "y": 32, "flags": 4},
- {"matrix": [4, 2], "x": 77, "y": 32, "flags": 4},
- {"matrix": [5, 2], "x": 93, "y": 32, "flags": 4},
- {"matrix": [4, 3], "x": 109, "y": 32, "flags": 4},
- {"matrix": [5, 3], "x": 125, "y": 32, "flags": 4},
- {"matrix": [4, 4], "x": 141, "y": 32, "flags": 4},
- {"matrix": [5, 4], "x": 157, "y": 32, "flags": 4},
- {"matrix": [4, 5], "x": 174, "y": 32, "flags": 4},
- {"matrix": [5, 5], "x": 190, "y": 32, "flags": 4},
- {"matrix": [4, 6], "x": 206, "y": 32, "flags": 1},
- {"matrix": [6, 0], "x": 2, "y": 48, "flags": 1},
- {"matrix": [7, 0], "x": 20, "y": 48, "flags": 4},
- {"matrix": [6, 1], "x": 36, "y": 48, "flags": 4},
- {"matrix": [7, 1], "x": 52, "y": 48, "flags": 4},
- {"matrix": [6, 2], "x": 69, "y": 48, "flags": 4},
- {"matrix": [7, 2], "x": 85, "y": 48, "flags": 4},
- {"matrix": [6, 3], "x": 101, "y": 48, "flags": 4},
- {"matrix": [7, 3], "x": 117, "y": 48, "flags": 4},
- {"matrix": [6, 4], "x": 133, "y": 48, "flags": 4},
- {"matrix": [7, 4], "x": 149, "y": 48, "flags": 4},
- {"matrix": [6, 5], "x": 165, "y": 48, "flags": 4},
- {"matrix": [7, 5], "x": 182, "y": 48, "flags": 4},
- {"matrix": [8, 6], "x": 212, "y": 48, "flags": 1},
- {"matrix": [8, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [8, 1], "x": 22, "y": 64, "flags": 1},
- {"matrix": [9, 0], "x": 42, "y": 64, "flags": 1},
- {"matrix": [8, 3], "x": 103, "y": 64, "flags": 4},
- {"matrix": [9, 3], "x": 163, "y": 64, "flags": 1},
- {"matrix": [9, 4], "x": 184, "y": 64, "flags": 1},
- {"matrix": [8, 5], "x": 204, "y": 64, "flags": 1},
- {"matrix": [9, 5], "x": 224, "y": 64, "flags": 1}
- ]
+ "driver": "is31fl3733"
},
"features": {
"bootmagic": true,
diff --git a/keyboards/4pplet/perk60_iso/rev_a/rev_a.c b/keyboards/4pplet/perk60_iso/rev_a/rev_a.c
index 431400a6b8..c4ab064cb2 100644
--- a/keyboards/4pplet/perk60_iso/rev_a/rev_a.c
+++ b/keyboards/4pplet/perk60_iso/rev_a/rev_a.c
@@ -31,68 +31,99 @@ along with this program. If not, see .
#ifdef RGB_MATRIX_ENABLE
const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
- {0, SW11_CS2, SW10_CS2, SW12_CS2}, // D402
- {0, SW11_CS3, SW10_CS3, SW12_CS3}, // D403
- {0, SW11_CS4, SW10_CS4, SW12_CS4}, // D404
- {0, SW11_CS5, SW10_CS5, SW12_CS5}, // D405
- {0, SW11_CS6, SW10_CS6, SW12_CS6}, // D406
- {0, SW11_CS7, SW10_CS7, SW12_CS7}, // D407
- {0, SW11_CS8, SW10_CS8, SW12_CS8}, // D408
- {0, SW11_CS9, SW10_CS9, SW12_CS9}, // D409
- {0, SW11_CS10, SW10_CS10, SW12_CS10}, // D410
- {0, SW11_CS11, SW10_CS11, SW12_CS11}, // D411
- {0, SW11_CS12, SW10_CS12, SW12_CS12}, // D412
- {0, SW11_CS13, SW10_CS13, SW12_CS13}, // D413
- {0, SW11_CS14, SW10_CS14, SW12_CS14}, // D414
- {0, SW11_CS15, SW10_CS15, SW12_CS15}, // D415
- {0, SW11_CS1, SW10_CS1, SW12_CS1}, // D401
- {0, SW8_CS4, SW7_CS4, SW9_CS4}, // D420
- {0, SW8_CS5, SW7_CS5, SW9_CS5}, // D421
- {0, SW8_CS6, SW7_CS6, SW9_CS6}, // D422
- {0, SW8_CS7, SW7_CS7, SW9_CS7}, // D423
- {0, SW8_CS8, SW7_CS8, SW9_CS8}, // D424
- {0, SW8_CS9, SW7_CS9, SW9_CS9}, // D425
- {0, SW8_CS10, SW7_CS10, SW9_CS10}, // D426
- {0, SW8_CS11, SW7_CS11, SW9_CS11}, // D427
- {0, SW8_CS12, SW7_CS12, SW9_CS12}, // D428
- {0, SW8_CS13, SW7_CS13, SW9_CS13}, // D429
- {0, SW8_CS14, SW7_CS14, SW9_CS14}, // D430
- {0, SW8_CS15, SW7_CS15, SW9_CS15}, // D431
- {0, SW11_CS16, SW10_CS16, SW12_CS16}, // D416
- {0, SW8_CS2, SW7_CS2, SW9_CS2}, // D418
- {0, SW8_CS3, SW7_CS3, SW9_CS3}, // D419
- {0, SW5_CS5, SW4_CS5, SW6_CS5}, // D437
- {0, SW5_CS6, SW4_CS6, SW6_CS6}, // D438
- {0, SW5_CS7, SW4_CS7, SW6_CS7}, // D439
- {0, SW5_CS8, SW4_CS8, SW6_CS8}, // D440
- {0, SW5_CS9, SW4_CS9, SW6_CS9}, // D441
- {0, SW5_CS10, SW4_CS10, SW6_CS10}, // D442
- {0, SW5_CS11, SW4_CS11, SW6_CS11}, // D443
- {0, SW5_CS12, SW4_CS12, SW6_CS12}, // D444
- {0, SW5_CS13, SW4_CS13, SW6_CS13}, // D445
- {0, SW5_CS14, SW4_CS14, SW6_CS14}, // D446
- {0, SW8_CS16, SW7_CS16, SW9_CS16}, // D432
- {0, SW8_CS1, SW7_CS1, SW9_CS1}, // D417
- {0, SW5_CS3, SW4_CS3, SW6_CS3}, // D435
- {0, SW5_CS4, SW4_CS4, SW6_CS4}, // D436
- {0, SW2_CS2, SW1_CS2, SW3_CS2}, // D450
- {0, SW2_CS3, SW1_CS3, SW3_CS3}, // D451
- {0, SW2_CS4, SW1_CS4, SW3_CS4}, // D452
- {0, SW2_CS6, SW1_CS6, SW3_CS6}, // D454
- {0, SW2_CS8, SW1_CS8, SW3_CS8}, // D456
- {0, SW2_CS9, SW1_CS9, SW3_CS9}, // D457
- {0, SW2_CS10, SW1_CS10, SW3_CS10}, // D458
- {0, SW2_CS12, SW1_CS12, SW3_CS12}, // D460
- {0, SW2_CS13, SW1_CS13, SW3_CS13}, // D461
- {0, SW5_CS15, SW4_CS15, SW6_CS15}, // D447
- {0, SW5_CS1, SW4_CS1, SW6_CS1}, // D433
- {0, SW5_CS2, SW4_CS2, SW6_CS2}, // D434
- {0, SW2_CS1, SW1_CS1, SW3_CS1}, // D449
- {0, SW2_CS7, SW1_CS7, SW3_CS7}, // D455
- {0, SW2_CS11, SW1_CS11, SW3_CS11}, // D459
- {0, SW2_CS14, SW1_CS14, SW3_CS14}, // D462
- {0, SW2_CS15, SW1_CS15, SW3_CS15}, // D463
- {0, SW2_CS16, SW1_CS16, SW3_CS16} // D464
+ { 0, SW11_CS2, SW10_CS2, SW12_CS2 }, //D402
+ { 0, SW11_CS3, SW10_CS3, SW12_CS3 }, //D403
+ { 0, SW11_CS4, SW10_CS4, SW12_CS4 }, //D404
+ { 0, SW11_CS5, SW10_CS5, SW12_CS5 }, //D405
+ { 0, SW11_CS6, SW10_CS6, SW12_CS6 }, //D406
+ { 0, SW11_CS7, SW10_CS7, SW12_CS7 }, //D407
+ { 0, SW11_CS8, SW10_CS8, SW12_CS8 }, //D408
+ { 0, SW11_CS9, SW10_CS9, SW12_CS9 }, //D409
+ { 0, SW11_CS10, SW10_CS10, SW12_CS10 }, //D410
+ { 0, SW11_CS11, SW10_CS11, SW12_CS11 }, //D411
+ { 0, SW11_CS12, SW10_CS12, SW12_CS12 }, //D412
+ { 0, SW11_CS13, SW10_CS13, SW12_CS13 }, //D413
+ { 0, SW11_CS14, SW10_CS14, SW12_CS14 }, //D414
+ { 0, SW11_CS15, SW10_CS15, SW12_CS15 }, //D415
+ { 0, SW11_CS1, SW10_CS1, SW12_CS1 }, //D401
+ { 0, SW8_CS4, SW7_CS4, SW9_CS4 }, //D420
+ { 0, SW8_CS5, SW7_CS5, SW9_CS5 }, //D421
+ { 0, SW8_CS6, SW7_CS6, SW9_CS6 }, //D422
+ { 0, SW8_CS7, SW7_CS7, SW9_CS7 }, //D423
+ { 0, SW8_CS8, SW7_CS8, SW9_CS8 }, //D424
+ { 0, SW8_CS9, SW7_CS9, SW9_CS9 }, //D425
+ { 0, SW8_CS10, SW7_CS10, SW9_CS10 }, //D426
+ { 0, SW8_CS11, SW7_CS11, SW9_CS11 }, //D427
+ { 0, SW8_CS12, SW7_CS12, SW9_CS12 }, //D428
+ { 0, SW8_CS13, SW7_CS13, SW9_CS13 }, //D429
+ { 0, SW8_CS14, SW7_CS14, SW9_CS14 }, //D430
+ { 0, SW8_CS15, SW7_CS15, SW9_CS15 }, //D431
+ { 0, SW11_CS16, SW10_CS16, SW12_CS16 }, //D416
+ { 0, SW8_CS2, SW7_CS2, SW9_CS2 }, //D418
+ { 0, SW8_CS3, SW7_CS3, SW9_CS3 }, //D419
+ { 0, SW5_CS5, SW4_CS5, SW6_CS5 }, //D437
+ { 0, SW5_CS6, SW4_CS6, SW6_CS6 }, //D438
+ { 0, SW5_CS7, SW4_CS7, SW6_CS7 }, //D439
+ { 0, SW5_CS8, SW4_CS8, SW6_CS8 }, //D440
+ { 0, SW5_CS9, SW4_CS9, SW6_CS9 }, //D441
+ { 0, SW5_CS10, SW4_CS10, SW6_CS10 }, //D442
+ { 0, SW5_CS11, SW4_CS11, SW6_CS11 }, //D443
+ { 0, SW5_CS12, SW4_CS12, SW6_CS12 }, //D444
+ { 0, SW5_CS13, SW4_CS13, SW6_CS13 }, //D445
+ { 0, SW5_CS14, SW4_CS14, SW6_CS14 }, //D446
+ { 0, SW8_CS16, SW7_CS16, SW9_CS16 }, //D432
+ { 0, SW8_CS1, SW7_CS1, SW9_CS1 }, //D417
+ { 0, SW5_CS3, SW4_CS3, SW6_CS3 }, //D435
+ { 0, SW5_CS4, SW4_CS4, SW6_CS4 }, //D436
+ { 0, SW2_CS2, SW1_CS2, SW3_CS2 }, //D450
+ { 0, SW2_CS3, SW1_CS3, SW3_CS3 }, //D451
+ { 0, SW2_CS4, SW1_CS4, SW3_CS4 }, //D452
+ { 0, SW2_CS6, SW1_CS6, SW3_CS6 }, //D454
+ { 0, SW2_CS8, SW1_CS8, SW3_CS8 }, //D456
+ { 0, SW2_CS9, SW1_CS9, SW3_CS9 }, //D457
+ { 0, SW2_CS10, SW1_CS10, SW3_CS10 }, //D458
+ { 0, SW2_CS12, SW1_CS12, SW3_CS12 }, //D460
+ { 0, SW2_CS13, SW1_CS13, SW3_CS13 }, //D461
+ { 0, SW5_CS15, SW4_CS15, SW6_CS15 }, //D447
+ { 0, SW5_CS1, SW4_CS1, SW6_CS1 }, //D433
+ { 0, SW5_CS2, SW4_CS2, SW6_CS2 }, //D434
+ { 0, SW2_CS1, SW1_CS1, SW3_CS1 }, //D449
+ { 0, SW2_CS7, SW1_CS7, SW3_CS7 }, //D455
+ { 0, SW2_CS11, SW1_CS11, SW3_CS11 }, //D459
+ { 0, SW2_CS14, SW1_CS14, SW3_CS14 }, //D462
+ { 0, SW2_CS15, SW1_CS15, SW3_CS15 }, //D463
+ { 0, SW2_CS16, SW1_CS16, SW3_CS16 } //D464
+};
+
+#define XXX NO_LED
+led_config_t g_led_config = {
+ {
+ { 0, 2, 4, 6, 8, 10, 12 },
+ { 1, 3, 5, 7, 9, 11, XXX },
+ { 14, 16, 18, 20, 22, 24, 26 },
+ { 15, 17, 19, 21, 23, 25, 13 },
+ { 28, 30, 32, 34, 36, 38, 40 },
+ { 29, 31, 33, 35, 37, 39, XXX },
+ { 41, 43, 45, 47, 49, 51, XXX },
+ { 42, 44, 46, 48, 50, 52, 27 },
+ { 54, 55, XXX, 57, XXX, 60, 53 },
+ { 56, XXX, XXX, 58, 59, 61, XXX },
+
+ }, {
+ { 0,0 }, { 16,0 }, { 32,0 }, { 48,0 }, { 65,0 }, { 81,0 }, { 97,0 }, {113,0 }, {129,0 }, {145,0 },
+ {161,0 }, {178,0 }, {194,0 }, {218,0 }, { 4,16 }, { 24,16 }, { 40,16 }, { 57,16 }, { 73,16 }, { 89,16 },
+ {105,16 }, {121,16 }, {137,16 }, {153,16 }, {170,16 }, {186,16 }, {202,16 }, {224,24 }, { 6,32 }, { 28,32 },
+ { 44,32 }, { 61,32 }, { 77,32 }, { 93,32 }, {109,32 }, {125,32 }, {141,32 }, {157,32 }, {174,32 }, {190,32 },
+ {206,32 }, { 2,48 }, { 20,48 }, { 36,48 }, { 52,48 }, { 69,48 }, { 85,48 }, {101,48 }, {117,48 }, {133,48 },
+ {149,48 }, {165,48 }, {182,48 }, {212,48 }, { 2,64 }, { 22,64 }, { 42,64 }, {103,64 }, {163,64 }, {184,64 },
+ {204,64 }, {224,64 },
+ }, {
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1
+ }
};
bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
diff --git a/keyboards/acheron/apollo/87h/delta/delta.c b/keyboards/acheron/apollo/87h/delta/delta.c
index a03bd01ec7..b17fce5c3a 100644
--- a/keyboards/acheron/apollo/87h/delta/delta.c
+++ b/keyboards/acheron/apollo/87h/delta/delta.c
@@ -21,3 +21,41 @@ void board_init(void) {
gpio_set_pin_input(B9);
gpio_set_pin_input(B10);
}
+
+led_config_t g_led_config = { {
+// { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , NO_LED , 13 , 14 , 15 },
+// { 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 , 32 },
+// { 33 , 34 , 35 , 36 , 37 , 38 , 39 , 40 , 41 , 42 , 43 , 44 , 45 , 46 , 47 , 48 , 49 },
+// { 50 , 51 , 52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 62 , NO_LED , NO_LED , NO_LED , NO_LED },
+// { 63 , NO_LED , 64 , 65 , 66 , 67 , 68 , 69 , 70 , 71 , 72 , 73 , 74 , NO_LED , NO_LED , 75 , NO_LED },
+// { 76 , 77 , 78 , NO_LED , NO_LED , NO_LED , 79 , NO_LED , NO_LED , 80 , 81 , 82 , 83 , NO_LED , 84 , 85 , 86 }
+//
+ { 15 , 14 , 13 , 12 , 11 , 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , NO_LED , 2 , 1 , 0 },
+ { 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 , 32 },
+ { 49 , 48 , 47 , 46 , 45 , 44 , 43 , 42 , 41 , 40 , 39 , 38 , 37 , 36 , 35 , 34 , 33 },
+ { 50 , 51 , 52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 62 , NO_LED , NO_LED , NO_LED , NO_LED },
+ { 75 , NO_LED , 74 , 73 , 72 , 71 , 70 , 69 , 68 , 67 , 66 , 65 , 64 , NO_LED , NO_LED , 63 , NO_LED },
+ { 76 , 77 , 78 , NO_LED , NO_LED , NO_LED , 79 , NO_LED , NO_LED , 80 , 81 , 82 , 83 , NO_LED , 84 , 85 , 86 }
+},{
+// "Fine-tuned" complex configuration
+ { 210, 0}, { 196, 0}, { 182, 0}, { 168, 0}, { 154, 0}, { 140, 0}, { 140, 0}, { 126, 0}, { 112, 0}, { 98, 0}, { 84, 0}, { 70, 0}, { 56, 0}, { 28, 0}, { 14, 0}, { 0, 0},
+ { 0, 45}, { 14, 45}, { 28, 45}, { 42, 45}, { 56, 45}, { 70, 45}, { 84, 45}, { 98, 45}, { 112, 45}, { 126, 45}, { 140, 45}, { 154, 45}, { 168, 45}, { 182, 45}, { 196, 45}, { 210, 45}, { 224, 45},
+ { 224, 90}, { 210, 90}, { 196, 90}, { 182, 90}, { 168, 90}, { 154, 90}, { 140, 90}, { 126, 90}, { 112, 90}, { 98, 90}, { 84, 90}, { 70, 90}, { 56, 90}, { 42, 90}, { 28, 90}, { 14, 90}, { 0, 90},
+ { 0, 135}, { 14, 135}, { 28, 135}, { 42, 135}, { 56, 135}, { 70, 135}, { 84, 135}, { 98, 135}, { 112, 135}, { 126, 135}, { 140, 135}, { 154, 135}, { 168, 135},
+ { 192, 180}, { 168, 180}, { 154, 180}, { 140, 180}, { 126, 180}, { 112, 180}, { 98, 180}, { 84, 180}, { 70, 180}, { 56, 180}, { 42, 180}, { 28, 180}, { 14, 180},
+ { 0, 225}, { 14, 225}, { 28, 225}, { 84, 225}, { 126, 225}, { 140, 225}, { 154, 225}, { 168, 225}, { 196, 45}, { 210, 45}, { 224, 90}
+// "Stock" simple configuration
+// { 224, 0}, { 210, 0}, { 196, 0}, { 182, 0}, { 168, 0}, { 154, 0}, { 140, 0}, { 126, 0}, { 112, 0}, { 98, 0}, { 84, 0}, { 70, 0}, { 56, 0}, { 28, 0}, { 14, 0}, { 0, 0},
+// { 0, 45}, { 14, 45}, { 28, 45}, { 42, 45}, { 56, 45}, { 70, 45}, { 84, 45}, { 98, 45}, { 112, 45}, { 126, 45}, { 140, 45}, { 154, 45}, { 168, 45}, { 182, 45}, { 196, 45}, { 210, 45}, { 224, 45},
+// { 224, 90}, { 210, 90}, { 196, 90}, { 182, 90}, { 168, 90}, { 154, 90}, { 140, 90}, { 126, 90}, { 112, 90}, { 98, 90}, { 84, 90}, { 70, 90}, { 56, 90}, { 42, 90}, { 28, 90}, { 14, 90}, { 0, 90},
+// { 0, 135}, { 14, 135}, { 28, 135}, { 42, 135}, { 56, 135}, { 70, 135}, { 84, 135}, { 98, 135}, { 112, 135}, { 126, 135}, { 140, 135}, { 154, 135}, { 168, 135},
+// { 224, 180}, { 196, 180}, { 182, 180}, { 168, 180}, { 154, 180}, { 140, 180}, { 126, 180}, { 112, 180}, { 98, 180}, { 84, 180}, { 70, 180}, { 56, 180}, { 14, 180},
+// { 0, 225}, { 14, 225}, { 28, 225}, { 84, 225}, { 126, 225}, { 140, 225}, { 154, 225}, { 168, 225}, { 196, 45}, { 210, 45}, { 224, 90}
+}, {
+ 1 , 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 , 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 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 ,
+ 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , 1 ,
+ 1 , 1 , 1 , 4 , 1 , 1 , 1 , 1 , 1 , 1 , 1
+} };
diff --git a/keyboards/acheron/apollo/87h/delta/keyboard.json b/keyboards/acheron/apollo/87h/delta/keyboard.json
index d9f6de197a..f5bdf28d96 100644
--- a/keyboards/acheron/apollo/87h/delta/keyboard.json
+++ b/keyboards/acheron/apollo/87h/delta/keyboard.json
@@ -57,95 +57,6 @@
"val": 60
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 16], "x": 224, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 210, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 196, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 182, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 168, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 154, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 140, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 126, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 98, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 84, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 70, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 56, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 28, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 14, "y": 0, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4},
- {"matrix": [1, 1], "x": 14, "y": 12, "flags": 4},
- {"matrix": [1, 2], "x": 28, "y": 12, "flags": 4},
- {"matrix": [1, 3], "x": 42, "y": 12, "flags": 4},
- {"matrix": [1, 4], "x": 56, "y": 12, "flags": 4},
- {"matrix": [1, 5], "x": 70, "y": 12, "flags": 4},
- {"matrix": [1, 6], "x": 84, "y": 12, "flags": 4},
- {"matrix": [1, 7], "x": 98, "y": 12, "flags": 4},
- {"matrix": [1, 8], "x": 112, "y": 12, "flags": 4},
- {"matrix": [1, 9], "x": 126, "y": 12, "flags": 4},
- {"matrix": [1, 10], "x": 140, "y": 12, "flags": 4},
- {"matrix": [1, 11], "x": 154, "y": 12, "flags": 4},
- {"matrix": [1, 12], "x": 168, "y": 12, "flags": 4},
- {"matrix": [1, 13], "x": 182, "y": 12, "flags": 4},
- {"matrix": [1, 14], "x": 196, "y": 12, "flags": 4},
- {"matrix": [1, 15], "x": 210, "y": 12, "flags": 4},
- {"matrix": [1, 16], "x": 224, "y": 12, "flags": 4},
- {"matrix": [2, 16], "x": 224, "y": 25, "flags": 4},
- {"matrix": [2, 15], "x": 210, "y": 25, "flags": 4},
- {"matrix": [2, 14], "x": 196, "y": 25, "flags": 4},
- {"matrix": [2, 13], "x": 182, "y": 25, "flags": 4},
- {"matrix": [2, 12], "x": 168, "y": 25, "flags": 4},
- {"matrix": [2, 11], "x": 154, "y": 25, "flags": 4},
- {"matrix": [2, 10], "x": 140, "y": 25, "flags": 4},
- {"matrix": [2, 9], "x": 126, "y": 25, "flags": 4},
- {"matrix": [2, 8], "x": 112, "y": 25, "flags": 4},
- {"matrix": [2, 7], "x": 98, "y": 25, "flags": 4},
- {"matrix": [2, 6], "x": 84, "y": 25, "flags": 4},
- {"matrix": [2, 5], "x": 70, "y": 25, "flags": 4},
- {"matrix": [2, 4], "x": 56, "y": 25, "flags": 4},
- {"matrix": [2, 3], "x": 42, "y": 25, "flags": 4},
- {"matrix": [2, 2], "x": 28, "y": 25, "flags": 4},
- {"matrix": [2, 1], "x": 14, "y": 25, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 25, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4},
- {"matrix": [3, 1], "x": 14, "y": 38, "flags": 4},
- {"matrix": [3, 2], "x": 28, "y": 38, "flags": 4},
- {"matrix": [3, 3], "x": 42, "y": 38, "flags": 4},
- {"matrix": [3, 4], "x": 56, "y": 38, "flags": 4},
- {"matrix": [3, 5], "x": 70, "y": 38, "flags": 4},
- {"matrix": [3, 6], "x": 84, "y": 38, "flags": 4},
- {"matrix": [3, 7], "x": 98, "y": 38, "flags": 4},
- {"matrix": [3, 8], "x": 112, "y": 38, "flags": 4},
- {"matrix": [3, 9], "x": 126, "y": 38, "flags": 4},
- {"matrix": [3, 10], "x": 140, "y": 38, "flags": 4},
- {"matrix": [3, 11], "x": 154, "y": 38, "flags": 4},
- {"matrix": [3, 12], "x": 168, "y": 38, "flags": 1},
- {"matrix": [4, 15], "x": 210, "y": 51, "flags": 1},
- {"matrix": [4, 12], "x": 168, "y": 51, "flags": 4},
- {"matrix": [4, 11], "x": 154, "y": 51, "flags": 4},
- {"matrix": [4, 10], "x": 140, "y": 51, "flags": 4},
- {"matrix": [4, 9], "x": 126, "y": 51, "flags": 4},
- {"matrix": [4, 8], "x": 112, "y": 51, "flags": 4},
- {"matrix": [4, 7], "x": 98, "y": 51, "flags": 4},
- {"matrix": [4, 6], "x": 84, "y": 51, "flags": 4},
- {"matrix": [4, 5], "x": 70, "y": 51, "flags": 4},
- {"matrix": [4, 4], "x": 56, "y": 51, "flags": 4},
- {"matrix": [4, 3], "x": 42, "y": 51, "flags": 4},
- {"matrix": [4, 2], "x": 28, "y": 51, "flags": 1},
- {"matrix": [4, 0], "x": 14, "y": 51, "flags": 1},
- {"matrix": [5, 0], "x": 0, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1},
- {"matrix": [5, 2], "x": 28, "y": 64, "flags": 1},
- {"matrix": [5, 6], "x": 84, "y": 64, "flags": 4},
- {"matrix": [5, 9], "x": 126, "y": 64, "flags": 1},
- {"matrix": [5, 10], "x": 140, "y": 64, "flags": 1},
- {"matrix": [5, 11], "x": 154, "y": 64, "flags": 1},
- {"matrix": [5, 12], "x": 168, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 196, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 210, "y": 64, "flags": 1},
- {"matrix": [5, 16], "x": 224, "y": 64, "flags": 1}
- ],
"sleep": true
},
"features": {
diff --git a/keyboards/acheron/apollo/87h/gamma/gamma.c b/keyboards/acheron/apollo/87h/gamma/gamma.c
index 92c6697a1c..f047db0fea 100644
--- a/keyboards/acheron/apollo/87h/gamma/gamma.c
+++ b/keyboards/acheron/apollo/87h/gamma/gamma.c
@@ -120,4 +120,27 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, SW3_CS24, SW3_CS23, SW3_CS22 }, //RIGHT 86
};
+
+led_config_t g_led_config = { {
+ { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 },
+ { 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 },
+ { 33 , 34 , 35 , 36 , 37 , 38 , 39 , 40 , 41 , 41 , 43 , 44 , 45 , 46 , 47 , 48 },
+ { 50 , 51 , 52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 62 , NO_LED , NO_LED , NO_LED },
+ { 63 , NO_LED , 64 , 65 , 66 , 67 , 68 , 69 , 70 , 71 , 72 , 73 , 74 , 75 , 49 , 32 },
+ { 76 , 77 , 78 , NO_LED , NO_LED , NO_LED , 79 , NO_LED , NO_LED , 80 , 81 , 82 , 83 , 84 , 85 , 86 }
+},{
+ { 0, 0}, { 15, 0}, { 30, 0}, { 45, 0}, { 60, 0}, { 75, 0}, { 90, 0}, { 105, 0}, { 120, 0}, { 135, 0}, { 150, 0}, { 165, 0}, { 180, 0}, { 210, 0}, { 210, 0}, { 225, 0},
+ { 0, 45}, { 15, 45}, { 30, 45}, { 45, 45}, { 60, 45}, { 75, 45}, { 90, 45}, { 105, 45}, { 120, 45}, { 135, 45}, { 150, 45}, { 165, 45}, { 180, 45}, { 210, 45}, { 210, 45}, { 215, 45},
+ { 0, 90}, { 15, 90}, { 30, 90}, { 45, 90}, { 60, 90}, { 75, 90}, { 90, 90}, { 105, 90}, { 120, 90}, { 135, 90}, { 150, 90}, { 165, 90}, { 180, 90}, { 195, 90}, { 210, 90}, { 215, 90},
+ { 0, 135}, { 15, 135}, { 30, 135}, { 45, 135}, { 60, 135}, { 75, 135}, { 90, 135}, { 105, 135}, { 120, 135}, { 135, 135}, { 150, 135}, { 165, 135}, { 180, 135},
+ { 0, 180}, { 30, 180}, { 45, 180}, { 60, 180}, { 75, 180}, { 90, 180}, { 105, 180}, { 120, 180}, { 135, 180}, { 150, 180}, { 165, 180}, { 180, 180}, { 210, 180}, { 225, 45}, { 225, 0},
+ { 0, 225}, { 15, 225}, { 30, 225}, { 90, 225}, { 135, 225}, { 150, 225}, { 165, 225}, { 180, 225}, { 195, 225}, { 210, 225}, { 225, 225}
+}, {
+ 1 , 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 , 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 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 ,
+ 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , 1 , 1 , 1 ,
+ 1 , 1 , 1 , 4 , 1 , 1 , 1 , 1 , 1 , 1 , 1
+} };
#endif
diff --git a/keyboards/acheron/apollo/87h/gamma/keyboard.json b/keyboards/acheron/apollo/87h/gamma/keyboard.json
index 03ba206526..5c2087c968 100644
--- a/keyboards/acheron/apollo/87h/gamma/keyboard.json
+++ b/keyboards/acheron/apollo/87h/gamma/keyboard.json
@@ -58,95 +58,6 @@
"val": 80
},
"driver": "is31fl3741",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 14, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 28, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 56, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 70, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 84, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 98, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 126, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 140, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 154, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 168, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 182, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 196, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 210, "y": 0, "flags": 4},
- {"matrix": [0, 15], "x": 224, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4},
- {"matrix": [1, 1], "x": 14, "y": 12, "flags": 4},
- {"matrix": [1, 2], "x": 28, "y": 12, "flags": 4},
- {"matrix": [1, 3], "x": 42, "y": 12, "flags": 4},
- {"matrix": [1, 4], "x": 56, "y": 12, "flags": 4},
- {"matrix": [1, 5], "x": 70, "y": 12, "flags": 4},
- {"matrix": [1, 6], "x": 84, "y": 12, "flags": 4},
- {"matrix": [1, 7], "x": 98, "y": 12, "flags": 4},
- {"matrix": [1, 8], "x": 112, "y": 12, "flags": 4},
- {"matrix": [1, 9], "x": 126, "y": 12, "flags": 4},
- {"matrix": [1, 10], "x": 140, "y": 12, "flags": 4},
- {"matrix": [1, 11], "x": 154, "y": 12, "flags": 4},
- {"matrix": [1, 12], "x": 168, "y": 12, "flags": 4},
- {"matrix": [1, 13], "x": 182, "y": 12, "flags": 4},
- {"matrix": [1, 14], "x": 196, "y": 12, "flags": 4},
- {"matrix": [1, 15], "x": 210, "y": 12, "flags": 4},
- {"matrix": [4, 15], "x": 224, "y": 12, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 25, "flags": 4},
- {"matrix": [2, 1], "x": 14, "y": 25, "flags": 4},
- {"matrix": [2, 2], "x": 28, "y": 25, "flags": 4},
- {"matrix": [2, 3], "x": 42, "y": 25, "flags": 4},
- {"matrix": [2, 4], "x": 56, "y": 25, "flags": 4},
- {"matrix": [2, 5], "x": 70, "y": 25, "flags": 4},
- {"matrix": [2, 6], "x": 84, "y": 25, "flags": 4},
- {"matrix": [2, 7], "x": 98, "y": 25, "flags": 4},
- {"matrix": [2, 8], "x": 112, "y": 25, "flags": 4},
- {"matrix": [2, 9], "x": 126, "y": 25, "flags": 4},
- {"matrix": [2, 10], "x": 140, "y": 25, "flags": 4},
- {"matrix": [2, 11], "x": 154, "y": 25, "flags": 4},
- {"matrix": [2, 12], "x": 168, "y": 25, "flags": 4},
- {"matrix": [2, 13], "x": 182, "y": 25, "flags": 4},
- {"matrix": [2, 14], "x": 196, "y": 25, "flags": 4},
- {"matrix": [2, 15], "x": 210, "y": 25, "flags": 4},
- {"matrix": [4, 14], "x": 224, "y": 25, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4},
- {"matrix": [3, 1], "x": 14, "y": 38, "flags": 4},
- {"matrix": [3, 2], "x": 28, "y": 38, "flags": 4},
- {"matrix": [3, 3], "x": 42, "y": 38, "flags": 4},
- {"matrix": [3, 4], "x": 56, "y": 38, "flags": 4},
- {"matrix": [3, 5], "x": 70, "y": 38, "flags": 4},
- {"matrix": [3, 6], "x": 84, "y": 38, "flags": 4},
- {"matrix": [3, 7], "x": 98, "y": 38, "flags": 4},
- {"matrix": [3, 8], "x": 112, "y": 38, "flags": 4},
- {"matrix": [3, 9], "x": 126, "y": 38, "flags": 4},
- {"matrix": [3, 10], "x": 140, "y": 38, "flags": 1},
- {"matrix": [3, 11], "x": 156, "y": 38, "flags": 1},
- {"matrix": [3, 12], "x": 168, "y": 38, "flags": 4},
- {"matrix": [4, 0], "x": 0, "y": 51, "flags": 4},
- {"matrix": [4, 2], "x": 14, "y": 51, "flags": 4},
- {"matrix": [4, 3], "x": 28, "y": 51, "flags": 4},
- {"matrix": [4, 4], "x": 42, "y": 51, "flags": 4},
- {"matrix": [4, 5], "x": 56, "y": 51, "flags": 4},
- {"matrix": [4, 6], "x": 70, "y": 51, "flags": 4},
- {"matrix": [4, 7], "x": 84, "y": 51, "flags": 4},
- {"matrix": [4, 8], "x": 98, "y": 51, "flags": 4},
- {"matrix": [4, 9], "x": 112, "y": 51, "flags": 4},
- {"matrix": [4, 10], "x": 126, "y": 51, "flags": 1},
- {"matrix": [4, 11], "x": 140, "y": 51, "flags": 1},
- {"matrix": [4, 12], "x": 156, "y": 51, "flags": 1},
- {"matrix": [4, 13], "x": 210, "y": 51, "flags": 1},
- {"matrix": [5, 0], "x": 0, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1},
- {"matrix": [5, 2], "x": 28, "y": 64, "flags": 1},
- {"matrix": [5, 6], "x": 84, "y": 64, "flags": 4},
- {"matrix": [5, 9], "x": 140, "y": 64, "flags": 1},
- {"matrix": [5, 10], "x": 154, "y": 64, "flags": 1},
- {"matrix": [5, 11], "x": 168, "y": 64, "flags": 1},
- {"matrix": [5, 12], "x": 182, "y": 64, "flags": 1},
- {"matrix": [5, 13], "x": 196, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 210, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1}
- ],
"sleep": true
},
"features": {
diff --git a/keyboards/acheron/apollo/87htsc/87htsc.c b/keyboards/acheron/apollo/87htsc/87htsc.c
index a03bd01ec7..4225c34971 100644
--- a/keyboards/acheron/apollo/87htsc/87htsc.c
+++ b/keyboards/acheron/apollo/87htsc/87htsc.c
@@ -21,3 +21,27 @@ void board_init(void) {
gpio_set_pin_input(B9);
gpio_set_pin_input(B10);
}
+
+led_config_t g_led_config = { {
+ { 15 , 14 , 13 , 12 , 11 , 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , NO_LED , 2 , 1 , 0 },
+ { 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 , 32 },
+ { 49 , 48 , 47 , 46 , 45 , 44 , 43 , 42 , 41 , 40 , 39 , 38 , 37 , 36 , 35 , 34 , 33 },
+ { 50 , 51 , 52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 62 , NO_LED , NO_LED , NO_LED , NO_LED },
+ { 75 , NO_LED , 74 , 73 , 72 , 71 , 70 , 69 , 68 , 67 , 66 , 65 , 64 , NO_LED , NO_LED , 63 , NO_LED },
+ { 76 , 77 , 78 , NO_LED , NO_LED , NO_LED , 79 , NO_LED , NO_LED , NO_LED , 80 , 81 , 82 , NO_LED , 83 , 84 , 85 }
+},{
+// "Fine-tuned" complex configuration
+ { 210, 0}, { 196, 0}, { 182, 0}, { 168, 0}, { 154, 0}, { 140, 0}, { 140, 0}, { 126, 0}, { 112, 0}, { 98, 0}, { 84, 0}, { 70, 0}, { 56, 0}, { 28, 0}, { 14, 0}, { 0, 0},
+ { 0, 45}, { 14, 45}, { 28, 45}, { 42, 45}, { 56, 45}, { 70, 45}, { 84, 45}, { 98, 45}, { 112, 45}, { 126, 45}, { 140, 45}, { 154, 45}, { 168, 45}, { 182, 45}, { 196, 45}, { 210, 45}, { 224, 45},
+ { 224, 90}, { 210, 90}, { 196, 90}, { 182, 90}, { 168, 90}, { 154, 90}, { 140, 90}, { 126, 90}, { 112, 90}, { 98, 90}, { 84, 90}, { 70, 90}, { 56, 90}, { 42, 90}, { 28, 90}, { 14, 90}, { 0, 90},
+ { 0, 135}, { 14, 135}, { 28, 135}, { 42, 135}, { 56, 135}, { 70, 135}, { 84, 135}, { 98, 135}, { 112, 135}, { 126, 135}, { 140, 135}, { 154, 135}, { 168, 135},
+ { 192, 180}, { 168, 180}, { 154, 180}, { 140, 180}, { 126, 180}, { 112, 180}, { 98, 180}, { 84, 180}, { 70, 180}, { 56, 180}, { 42, 180}, { 28, 180}, { 14, 180},
+ { 0, 225}, { 14, 225}, { 28, 225}, { 84, 225}, { 140, 225}, { 154, 225}, { 168, 225}, { 196, 225}, { 210, 225}, { 224, 225}
+}, {
+ 1 , 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 , 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 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 ,
+ 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , 1 ,
+ 1 , 1 , 1 , 4 , 1 , 1 , 1 , 1 , 1 , 1
+} };
diff --git a/keyboards/acheron/apollo/87htsc/keyboard.json b/keyboards/acheron/apollo/87htsc/keyboard.json
index 957c02c1b6..4b2ff1ad66 100644
--- a/keyboards/acheron/apollo/87htsc/keyboard.json
+++ b/keyboards/acheron/apollo/87htsc/keyboard.json
@@ -60,94 +60,6 @@
"val": 60
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 16], "x": 210, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 196, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 182, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 168, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 154, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 140, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 140, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 126, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 98, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 84, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 70, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 56, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 28, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 14, "y": 0, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4},
- {"matrix": [1, 1], "x": 14, "y": 12, "flags": 4},
- {"matrix": [1, 2], "x": 28, "y": 12, "flags": 4},
- {"matrix": [1, 3], "x": 42, "y": 12, "flags": 4},
- {"matrix": [1, 4], "x": 56, "y": 12, "flags": 4},
- {"matrix": [1, 5], "x": 70, "y": 12, "flags": 4},
- {"matrix": [1, 6], "x": 84, "y": 12, "flags": 4},
- {"matrix": [1, 7], "x": 98, "y": 12, "flags": 4},
- {"matrix": [1, 8], "x": 112, "y": 12, "flags": 4},
- {"matrix": [1, 9], "x": 126, "y": 12, "flags": 4},
- {"matrix": [1, 10], "x": 140, "y": 12, "flags": 4},
- {"matrix": [1, 11], "x": 154, "y": 12, "flags": 4},
- {"matrix": [1, 12], "x": 168, "y": 12, "flags": 4},
- {"matrix": [1, 13], "x": 182, "y": 12, "flags": 4},
- {"matrix": [1, 14], "x": 196, "y": 12, "flags": 4},
- {"matrix": [1, 15], "x": 210, "y": 12, "flags": 4},
- {"matrix": [1, 16], "x": 224, "y": 12, "flags": 4},
- {"matrix": [2, 16], "x": 224, "y": 25, "flags": 4},
- {"matrix": [2, 15], "x": 210, "y": 25, "flags": 4},
- {"matrix": [2, 14], "x": 196, "y": 25, "flags": 4},
- {"matrix": [2, 13], "x": 182, "y": 25, "flags": 4},
- {"matrix": [2, 12], "x": 168, "y": 25, "flags": 4},
- {"matrix": [2, 11], "x": 154, "y": 25, "flags": 4},
- {"matrix": [2, 10], "x": 140, "y": 25, "flags": 4},
- {"matrix": [2, 9], "x": 126, "y": 25, "flags": 4},
- {"matrix": [2, 8], "x": 112, "y": 25, "flags": 4},
- {"matrix": [2, 7], "x": 98, "y": 25, "flags": 4},
- {"matrix": [2, 6], "x": 84, "y": 25, "flags": 4},
- {"matrix": [2, 5], "x": 70, "y": 25, "flags": 4},
- {"matrix": [2, 4], "x": 56, "y": 25, "flags": 4},
- {"matrix": [2, 3], "x": 42, "y": 25, "flags": 4},
- {"matrix": [2, 2], "x": 28, "y": 25, "flags": 4},
- {"matrix": [2, 1], "x": 14, "y": 25, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 25, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4},
- {"matrix": [3, 1], "x": 14, "y": 38, "flags": 4},
- {"matrix": [3, 2], "x": 28, "y": 38, "flags": 4},
- {"matrix": [3, 3], "x": 42, "y": 38, "flags": 4},
- {"matrix": [3, 4], "x": 56, "y": 38, "flags": 4},
- {"matrix": [3, 5], "x": 70, "y": 38, "flags": 4},
- {"matrix": [3, 6], "x": 84, "y": 38, "flags": 4},
- {"matrix": [3, 7], "x": 98, "y": 38, "flags": 4},
- {"matrix": [3, 8], "x": 112, "y": 38, "flags": 4},
- {"matrix": [3, 9], "x": 126, "y": 38, "flags": 4},
- {"matrix": [3, 10], "x": 140, "y": 38, "flags": 4},
- {"matrix": [3, 11], "x": 154, "y": 38, "flags": 4},
- {"matrix": [3, 12], "x": 168, "y": 38, "flags": 1},
- {"matrix": [4, 15], "x": 192, "y": 51, "flags": 1},
- {"matrix": [4, 12], "x": 168, "y": 51, "flags": 4},
- {"matrix": [4, 11], "x": 154, "y": 51, "flags": 4},
- {"matrix": [4, 10], "x": 140, "y": 51, "flags": 4},
- {"matrix": [4, 9], "x": 126, "y": 51, "flags": 4},
- {"matrix": [4, 8], "x": 112, "y": 51, "flags": 4},
- {"matrix": [4, 7], "x": 98, "y": 51, "flags": 4},
- {"matrix": [4, 6], "x": 84, "y": 51, "flags": 4},
- {"matrix": [4, 5], "x": 70, "y": 51, "flags": 4},
- {"matrix": [4, 4], "x": 56, "y": 51, "flags": 4},
- {"matrix": [4, 3], "x": 42, "y": 51, "flags": 4},
- {"matrix": [4, 2], "x": 28, "y": 51, "flags": 1},
- {"matrix": [4, 0], "x": 14, "y": 51, "flags": 1},
- {"matrix": [5, 0], "x": 0, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1},
- {"matrix": [5, 2], "x": 28, "y": 64, "flags": 1},
- {"matrix": [5, 6], "x": 84, "y": 64, "flags": 4},
- {"matrix": [5, 10], "x": 140, "y": 64, "flags": 1},
- {"matrix": [5, 11], "x": 154, "y": 64, "flags": 1},
- {"matrix": [5, 12], "x": 168, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 196, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 210, "y": 64, "flags": 1},
- {"matrix": [5, 16], "x": 224, "y": 64, "flags": 1}
- ],
"sleep": true
},
"features": {
diff --git a/keyboards/acheron/apollo/88htsc/88htsc.c b/keyboards/acheron/apollo/88htsc/88htsc.c
new file mode 100644
index 0000000000..8144fc57bc
--- /dev/null
+++ b/keyboards/acheron/apollo/88htsc/88htsc.c
@@ -0,0 +1,42 @@
+/*
+ Copyright 2022 Álvaro "Gondolindrim" Volpato
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+#include "quantum.h"
+
+led_config_t g_led_config = { {
+ { 16 , 15 , 14 , 13 , 12 , 11 , 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 , 0 },
+ { 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 , 32 , 33 },
+ { 50 , 49 , 48 , 47 , 46 , 45 , 44 , 43 , 42 , 41 , 40 , 39 , 38 , 37 , 36 , 35 , 34 },
+ { 51 , 52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 62 , 63 , NO_LED , NO_LED , NO_LED , NO_LED },
+ { 76 , NO_LED , 75 , 74 , 73 , 72 , 71 , 70 , 69 , 68 , 67 , 66 , 65 , NO_LED , NO_LED , 64 , NO_LED },
+ { 77 , 78 , 79 , NO_LED , NO_LED , NO_LED , 80 , NO_LED , NO_LED , NO_LED , 81 , 82 , 83 , NO_LED , 84 , 85 , 86 }
+},{
+// "Fine-tuned" complex configuration
+ { 210, 0}, { 196, 0}, { 182, 0}, { 168, 0}, { 154, 0}, { 140, 0}, { 140, 0}, { 126, 0}, { 112, 0}, { 98, 0}, { 84, 0}, { 70, 0}, { 56, 0}, { 45, 0}, { 28, 0}, { 14, 0}, { 0, 0},
+ { 0, 45}, { 14, 45}, { 28, 45}, { 42, 45}, { 56, 45}, { 70, 45}, { 84, 45}, { 98, 45}, { 112, 45}, { 126, 45}, { 140, 45}, { 154, 45}, { 168, 45}, { 182, 45}, { 196, 45}, { 210, 45}, { 224, 45},
+ { 224, 90}, { 210, 90}, { 196, 90}, { 182, 90}, { 168, 90}, { 154, 90}, { 140, 90}, { 126, 90}, { 112, 90}, { 98, 90}, { 84, 90}, { 70, 90}, { 56, 90}, { 42, 90}, { 28, 90}, { 14, 90}, { 0, 90},
+ { 0, 135}, { 14, 135}, { 28, 135}, { 42, 135}, { 56, 135}, { 70, 135}, { 84, 135}, { 98, 135}, { 112, 135}, { 126, 135}, { 140, 135}, { 154, 135}, { 168, 135},
+ { 192, 180}, { 168, 180}, { 154, 180}, { 140, 180}, { 126, 180}, { 112, 180}, { 98, 180}, { 84, 180}, { 70, 180}, { 56, 180}, { 42, 180}, { 28, 180}, { 14, 180},
+ { 0, 225}, { 14, 225}, { 28, 225}, { 84, 225}, { 140, 225}, { 154, 225}, { 168, 225}, { 196, 45}, { 210, 45}, { 224, 90}
+}, {
+ 1 , 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 , 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 ,
+ 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 ,
+ 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , 1 ,
+ 1 , 1 , 1 , 4 , 1 , 1 , 1 , 1 , 1 , 1
+} };
diff --git a/keyboards/acheron/apollo/88htsc/keyboard.json b/keyboards/acheron/apollo/88htsc/keyboard.json
index 182339b4fd..165c8d76eb 100644
--- a/keyboards/acheron/apollo/88htsc/keyboard.json
+++ b/keyboards/acheron/apollo/88htsc/keyboard.json
@@ -60,95 +60,6 @@
"val": 60
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 16], "x": 210, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 196, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 182, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 168, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 154, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 140, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 140, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 126, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 98, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 84, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 70, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 56, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 28, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 14, "y": 0, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4},
- {"matrix": [1, 1], "x": 14, "y": 12, "flags": 4},
- {"matrix": [1, 2], "x": 28, "y": 12, "flags": 4},
- {"matrix": [1, 3], "x": 42, "y": 12, "flags": 4},
- {"matrix": [1, 4], "x": 56, "y": 12, "flags": 4},
- {"matrix": [1, 5], "x": 70, "y": 12, "flags": 4},
- {"matrix": [1, 6], "x": 84, "y": 12, "flags": 4},
- {"matrix": [1, 7], "x": 98, "y": 12, "flags": 4},
- {"matrix": [1, 8], "x": 112, "y": 12, "flags": 4},
- {"matrix": [1, 9], "x": 126, "y": 12, "flags": 4},
- {"matrix": [1, 10], "x": 140, "y": 12, "flags": 4},
- {"matrix": [1, 11], "x": 154, "y": 12, "flags": 4},
- {"matrix": [1, 12], "x": 168, "y": 12, "flags": 4},
- {"matrix": [1, 13], "x": 182, "y": 12, "flags": 4},
- {"matrix": [1, 14], "x": 196, "y": 12, "flags": 4},
- {"matrix": [1, 15], "x": 210, "y": 12, "flags": 4},
- {"matrix": [1, 16], "x": 224, "y": 12, "flags": 4},
- {"matrix": [2, 16], "x": 224, "y": 25, "flags": 4},
- {"matrix": [2, 15], "x": 210, "y": 25, "flags": 4},
- {"matrix": [2, 14], "x": 196, "y": 25, "flags": 4},
- {"matrix": [2, 13], "x": 182, "y": 25, "flags": 4},
- {"matrix": [2, 12], "x": 168, "y": 25, "flags": 4},
- {"matrix": [2, 11], "x": 154, "y": 25, "flags": 4},
- {"matrix": [2, 10], "x": 140, "y": 25, "flags": 4},
- {"matrix": [2, 9], "x": 126, "y": 25, "flags": 4},
- {"matrix": [2, 8], "x": 112, "y": 25, "flags": 4},
- {"matrix": [2, 7], "x": 98, "y": 25, "flags": 4},
- {"matrix": [2, 6], "x": 84, "y": 25, "flags": 4},
- {"matrix": [2, 5], "x": 70, "y": 25, "flags": 4},
- {"matrix": [2, 4], "x": 56, "y": 25, "flags": 4},
- {"matrix": [2, 3], "x": 42, "y": 25, "flags": 4},
- {"matrix": [2, 2], "x": 28, "y": 25, "flags": 4},
- {"matrix": [2, 1], "x": 14, "y": 25, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 25, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4},
- {"matrix": [3, 1], "x": 14, "y": 38, "flags": 4},
- {"matrix": [3, 2], "x": 28, "y": 38, "flags": 4},
- {"matrix": [3, 3], "x": 42, "y": 38, "flags": 4},
- {"matrix": [3, 4], "x": 56, "y": 38, "flags": 4},
- {"matrix": [3, 5], "x": 70, "y": 38, "flags": 4},
- {"matrix": [3, 6], "x": 84, "y": 38, "flags": 4},
- {"matrix": [3, 7], "x": 98, "y": 38, "flags": 4},
- {"matrix": [3, 8], "x": 112, "y": 38, "flags": 4},
- {"matrix": [3, 9], "x": 126, "y": 38, "flags": 4},
- {"matrix": [3, 10], "x": 140, "y": 38, "flags": 4},
- {"matrix": [3, 11], "x": 154, "y": 38, "flags": 4},
- {"matrix": [3, 12], "x": 168, "y": 38, "flags": 1},
- {"matrix": [4, 15], "x": 192, "y": 51, "flags": 1},
- {"matrix": [4, 12], "x": 168, "y": 51, "flags": 4},
- {"matrix": [4, 11], "x": 154, "y": 51, "flags": 4},
- {"matrix": [4, 10], "x": 140, "y": 51, "flags": 4},
- {"matrix": [4, 9], "x": 126, "y": 51, "flags": 4},
- {"matrix": [4, 8], "x": 112, "y": 51, "flags": 4},
- {"matrix": [4, 7], "x": 98, "y": 51, "flags": 4},
- {"matrix": [4, 6], "x": 84, "y": 51, "flags": 4},
- {"matrix": [4, 5], "x": 70, "y": 51, "flags": 4},
- {"matrix": [4, 4], "x": 56, "y": 51, "flags": 4},
- {"matrix": [4, 3], "x": 42, "y": 51, "flags": 4},
- {"matrix": [4, 2], "x": 28, "y": 51, "flags": 1},
- {"matrix": [4, 0], "x": 14, "y": 51, "flags": 1},
- {"matrix": [5, 0], "x": 0, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1},
- {"matrix": [5, 2], "x": 28, "y": 64, "flags": 1},
- {"matrix": [5, 6], "x": 84, "y": 64, "flags": 4},
- {"matrix": [5, 10], "x": 140, "y": 64, "flags": 1},
- {"matrix": [5, 11], "x": 154, "y": 64, "flags": 1},
- {"matrix": [5, 12], "x": 168, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 196, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 210, "y": 64, "flags": 1},
- {"matrix": [5, 16], "x": 224, "y": 64, "flags": 1}
- ],
"sleep": true
},
"features": {
diff --git a/keyboards/adpenrose/akemipad/akemipad.c b/keyboards/adpenrose/akemipad/akemipad.c
new file mode 100644
index 0000000000..993396dca0
--- /dev/null
+++ b/keyboards/adpenrose/akemipad/akemipad.c
@@ -0,0 +1,27 @@
+// Copyright 2022 Arturo Avila (@ADPenrose)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+
+/* Setting up the LED matrix */
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, NO_LED },
+ { 4, 5, 6, 7, NO_LED },
+ { 8, 9, 10, 11, 12 },
+ { 13, 14, 15, 16, NO_LED },
+ { 17, 18, 19, 20, 21 },
+ { 22, 23, 24, 25, 26 },
+}, {
+ // LED Index to Physical Position
+ { 0,0 }, { 37,0 }, { 74,0 }, {111,0 }, { 0,34 }, { 37,34 }, { 74,34 }, {111,34 }, { 0,62 }, { 37,62 },
+ { 74,62 }, {111,62 }, {120,75 }, { 0,89 }, { 37,89 }, { 74,89 }, {111,89 }, { 0,117}, { 37,117}, { 74,117},
+ {111,117}, {120,130}, { 0,137}, { 18,144}, { 37,137}, { 74,144}, {111,144}
+}, {
+ // LED Index to Flag
+ 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, 4, 4
+} };
+
+#endif
diff --git a/keyboards/adpenrose/akemipad/keyboard.json b/keyboards/adpenrose/akemipad/keyboard.json
index a7981d13ef..085ca5e406 100644
--- a/keyboards/adpenrose/akemipad/keyboard.json
+++ b/keyboards/adpenrose/akemipad/keyboard.json
@@ -15,36 +15,8 @@
"cycle_left_right": true,
"cycle_up_down": true
},
+ "center_point": [60, 77],
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 69, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 138, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 207, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 13, "flags": 4},
- {"matrix": [1, 1], "x": 69, "y": 13, "flags": 4},
- {"matrix": [1, 2], "x": 138, "y": 13, "flags": 4},
- {"matrix": [1, 3], "x": 207, "y": 13, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 26, "flags": 4},
- {"matrix": [2, 1], "x": 69, "y": 26, "flags": 4},
- {"matrix": [2, 2], "x": 138, "y": 26, "flags": 4},
- {"matrix": [2, 3], "x": 207, "y": 26, "flags": 4},
- {"matrix": [2, 4], "x": 224, "y": 30, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4},
- {"matrix": [3, 1], "x": 69, "y": 38, "flags": 4},
- {"matrix": [3, 2], "x": 138, "y": 38, "flags": 4},
- {"matrix": [3, 3], "x": 207, "y": 38, "flags": 4},
- {"matrix": [4, 0], "x": 0, "y": 52, "flags": 4},
- {"matrix": [4, 1], "x": 69, "y": 52, "flags": 4},
- {"matrix": [4, 2], "x": 138, "y": 52, "flags": 4},
- {"matrix": [4, 3], "x": 207, "y": 52, "flags": 4},
- {"matrix": [4, 4], "x": 224, "y": 56, "flags": 4},
- {"matrix": [5, 0], "x": 0, "y": 62, "flags": 4},
- {"matrix": [5, 1], "x": 33, "y": 64, "flags": 4},
- {"matrix": [5, 2], "x": 69, "y": 62, "flags": 4},
- {"matrix": [5, 3], "x": 138, "y": 64, "flags": 4},
- {"matrix": [5, 4], "x": 207, "y": 64, "flags": 4}
- ],
"max_brightness": 175,
"sleep": true
},
diff --git a/keyboards/aeboards/satellite/rev1/keyboard.json b/keyboards/aeboards/satellite/rev1/keyboard.json
index a6752565bd..f9355171fb 100644
--- a/keyboards/aeboards/satellite/rev1/keyboard.json
+++ b/keyboards/aeboards/satellite/rev1/keyboard.json
@@ -68,80 +68,6 @@
"val": 80
},
"driver": "custom",
- "layout": [
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
- {"x": 67, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 52, "y": 16, "flags": 4},
- {"x": 37, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 22, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [2, 11], "x": 6, "y": 32, "flags": 1},
- {"matrix": [0, 8], "x": 119, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [1, 9], "x": 134, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 149, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 164, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 179, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 202, "y": 0, "flags": 4},
- {"x": 212, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4},
- {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4},
- {"x": 142, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 205, "y": 16, "flags": 4},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 209, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 95, "y": 64, "flags": 4},
- {"matrix": [3, 5], "x": 93, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 78, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 63, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4},
- {"x": 67, "y": 56, "flags": 4},
- {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1},
- {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
- {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"x": 0, "y": 64, "flags": 4},
- {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
- {"x": 175, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 200, "y": 32, "flags": 4},
- {"matrix": [3, 10], "x": 168, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 189, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 209, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 108, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 123, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 138, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 153, "y": 48, "flags": 4},
- {"x": 120, "y": 48, "flags": 4},
- {"x": 120, "y": 56, "flags": 4},
- {"matrix": [4, 9], "x": 153, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 175, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 194, "y": 64, "flags": 1}
- ],
"sleep": true
},
"processor": "atmega32u4",
diff --git a/keyboards/aeboards/satellite/rev1/rev1.c b/keyboards/aeboards/satellite/rev1/rev1.c
index 6e468d713d..28ac5ef302 100644
--- a/keyboards/aeboards/satellite/rev1/rev1.c
+++ b/keyboards/aeboards/satellite/rev1/rev1.c
@@ -102,6 +102,46 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
{1, C8_16, C7_16, C6_16} //D17
};
+led_config_t g_led_config = { {
+ { 17, 16, 15, 14, 13, 12, 11, 10, 9, 18, 19, 20, 21, 22, 24 },
+ { 7, 6, 6, 4, 4, 2, 1, 0, 27, 18, 29, 30, 31, 32, 25 },
+ { 8, 50, 49, 48, 47, 46, 45, 54, 55, 56, 57, 8, 59, NO_LED, 26 },
+ { 51, 41, 40, 39, 38, 37, 63, 64, 65, 66, 60, NO_LED, 61, 62, 33 },
+ { 52, 44, 43, NO_LED, NO_LED, 36, NO_LED, NO_LED, NO_LED, 69, 70, NO_LED, 71, 35, 34 },
+}, {
+ //A0 .. A17
+ {112,16 }, { 97,16 }, { 82,16 }, { 67,16 }, { 52,16 }, { 37,16 }, { 22,16 }, { 4,16 }, { 6,32 },
+ {119,0 }, {105,0 }, { 90,0 }, { 75,0 }, { 60,0 }, { 45,0 }, { 30,0 }, { 15,0 }, { 0,0 },
+
+ //B0 .. B17
+ {134,0 }, {149,0 }, {164,0 }, {179,0 }, {202,0 }, {255,255}, {224,0 }, {224,16 }, {224,32 },
+ {127,16 }, {142,16 }, {157,16 }, {172,16 }, {187,16 }, {205,16 }, {224,48 }, {224,64 }, {209,64 },
+
+ //C0 .. C17
+ { 95,64 }, { 93,48 }, { 78,48 }, { 63,48 }, { 49,48 }, { 34,48 }, { 67,56 }, { 39,64 }, { 21,64 },
+ {101,32 }, { 86,32 }, { 71,32 }, { 56,32 }, { 41,32 }, { 26,32 }, { 9,48 }, { 2,64 }, {255,255},
+
+ //D0 .. D17
+ {116,32 }, {131,32 }, {146,32 }, {161,32 }, {175,32 }, {200,32 }, {168,48 }, {189,48 }, {209,48 },
+ {108,48 }, {123,48 }, {138,48 }, {153,48 }, {255,255}, {120,56 }, {153,64 }, {175,64 }, {194,64 }
+}, {
+ //A0 .. A17
+ 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4,
+
+ //B0 .. B17
+ 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 1, 1,
+
+ //C0 .. C17
+ 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 4, 4, 4, 4, 4, 4, 1, 1, 4,
+
+ //D0 .. D17
+ 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 1, 1, 1
+} };
+
// Custom Driver
static void init(void) {
i2c_init();
diff --git a/keyboards/aleblazer/zodiark/keyboard.json b/keyboards/aleblazer/zodiark/keyboard.json
index 396e3ca460..6818797809 100644
--- a/keyboards/aleblazer/zodiark/keyboard.json
+++ b/keyboards/aleblazer/zodiark/keyboard.json
@@ -42,76 +42,6 @@
},
"rgb_matrix": {
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 5], "x": 93, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 74, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 56, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 37, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 19, "y": 0, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 19, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 74, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 93, "y": 16, "flags": 4},
- {"matrix": [0, 6], "x": 112, "y": 24, "flags": 4},
- {"matrix": [1, 6], "x": 112, "y": 40, "flags": 4},
- {"matrix": [2, 5], "x": 93, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 74, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 37, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 19, "y": 32, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 19, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 37, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 56, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 74, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 93, "y": 48, "flags": 4},
- {"matrix": [2, 6], "x": 112, "y": 52, "flags": 4},
- {"matrix": [4, 6], "x": 112, "y": 64, "flags": 4},
- {"matrix": [4, 5], "x": 93, "y": 64, "flags": 4},
- {"matrix": [4, 4], "x": 74, "y": 64, "flags": 4},
- {"matrix": [4, 3], "x": 56, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 37, "y": 64, "flags": 4},
- {"matrix": [4, 1], "x": 19, "y": 64, "flags": 4},
- {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4},
- {"matrix": [5, 5], "x": 132, "y": 0, "flags": 4},
- {"matrix": [5, 4], "x": 150, "y": 0, "flags": 4},
- {"matrix": [5, 3], "x": 169, "y": 0, "flags": 4},
- {"matrix": [5, 2], "x": 187, "y": 0, "flags": 4},
- {"matrix": [5, 1], "x": 206, "y": 0, "flags": 4},
- {"matrix": [5, 0], "x": 224, "y": 0, "flags": 4},
- {"matrix": [6, 0], "x": 224, "y": 16, "flags": 4},
- {"matrix": [6, 1], "x": 206, "y": 16, "flags": 4},
- {"matrix": [6, 2], "x": 187, "y": 16, "flags": 4},
- {"matrix": [6, 3], "x": 169, "y": 16, "flags": 4},
- {"matrix": [6, 4], "x": 150, "y": 16, "flags": 4},
- {"matrix": [6, 5], "x": 132, "y": 16, "flags": 4},
- {"matrix": [5, 6], "x": 113, "y": 24, "flags": 4},
- {"matrix": [6, 6], "x": 113, "y": 40, "flags": 4},
- {"matrix": [7, 5], "x": 132, "y": 32, "flags": 4},
- {"matrix": [7, 4], "x": 150, "y": 32, "flags": 4},
- {"matrix": [7, 3], "x": 169, "y": 32, "flags": 4},
- {"matrix": [7, 2], "x": 187, "y": 32, "flags": 4},
- {"matrix": [7, 1], "x": 206, "y": 32, "flags": 4},
- {"matrix": [7, 0], "x": 224, "y": 32, "flags": 4},
- {"matrix": [8, 0], "x": 224, "y": 48, "flags": 4},
- {"matrix": [8, 1], "x": 206, "y": 48, "flags": 4},
- {"matrix": [8, 2], "x": 187, "y": 48, "flags": 4},
- {"matrix": [8, 3], "x": 169, "y": 48, "flags": 4},
- {"matrix": [8, 4], "x": 150, "y": 48, "flags": 4},
- {"matrix": [8, 5], "x": 132, "y": 48, "flags": 4},
- {"matrix": [7, 6], "x": 113, "y": 52, "flags": 4},
- {"matrix": [9, 6], "x": 113, "y": 64, "flags": 4},
- {"matrix": [9, 5], "x": 132, "y": 64, "flags": 4},
- {"matrix": [9, 4], "x": 150, "y": 64, "flags": 4},
- {"matrix": [9, 3], "x": 169, "y": 64, "flags": 4},
- {"matrix": [9, 2], "x": 187, "y": 64, "flags": 4},
- {"matrix": [9, 1], "x": 206, "y": 64, "flags": 4},
- {"matrix": [9, 0], "x": 224, "y": 64, "flags": 4}
- ],
"max_brightness": 150,
"sat_steps": 8,
"speed_steps": 10,
diff --git a/keyboards/aleblazer/zodiark/zodiark.c b/keyboards/aleblazer/zodiark/zodiark.c
new file mode 100644
index 0000000000..8829ac8f3c
--- /dev/null
+++ b/keyboards/aleblazer/zodiark/zodiark.c
@@ -0,0 +1,54 @@
+/*
+Copyright 2021 Spencer Deven
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+// Key Matrix to LED Index
+ // Left Hand
+ { 5, 4, 3, 2, 1, 0, 12 },
+ { 6, 7, 8, 9, 10, 11, 13 },
+ { 19, 18, 17, 16, 15, 14, 26 },
+ { 20, 21, 22, 23, 24, 25, NO_LED },
+ { 33, 32, 31, 30, 29, 28, 27},
+ // Right Hand
+ { 39, 38, 37, 36, 35, 34, 46 },
+ { 40, 41, 42, 43, 44, 45, 47 },
+ { 53, 52, 51, 50, 49, 48, 60 },
+ { 54, 55, 56, 57, 58, 59, NO_LED },
+ { 67, 66, 65, 64, 63, 62, 61 },
+
+
+}, {
+ // LED Index to Physical Position
+ // Left Hand
+ { 93, 0 }, { 74, 0 }, { 56, 0 }, { 37, 0 }, { 19, 0 }, { 0, 0 }, { 0, 16 },
+ { 19, 16 }, { 37, 16 }, { 56, 16 }, { 74, 16 }, { 93, 16 }, { 112, 24 }, { 112, 40 },
+ { 93, 32 }, { 74, 32 }, { 56, 32 }, { 37, 32 }, { 19, 32 }, { 0, 32 }, { 0, 48 },
+ { 19, 48 }, { 37, 48 }, { 56, 48 }, { 74, 48 }, { 93, 48 }, { 112, 52 },
+ { 112, 64 }, { 93, 64 }, { 74, 64 }, { 56, 64 }, { 37, 64 }, { 19, 64 }, { 0, 64 },
+ // Right Hand
+ { 132, 0 }, { 150, 0 }, { 169, 0 }, { 187, 0 }, { 206, 0 }, { 224, 0 }, { 224, 16 },
+ { 206, 16 }, { 187, 16 }, { 169, 16 }, { 150, 16 }, { 132, 16 }, { 113, 24 }, { 113, 40 },
+ { 132, 32 }, { 150, 32 }, { 169, 32 }, { 187, 32 }, { 206, 32 }, { 224, 32 }, { 224, 48 },
+ { 206, 48 }, { 187, 48 }, { 169, 48 }, { 150, 48 }, { 132, 48 }, { 113, 52 },
+ { 113, 64 }, { 132, 64 }, { 150, 64 }, { 169, 64 }, { 187, 64 }, { 206, 64 }, { 224, 64 },
+}, {
+ // LED Index to Flag
+ 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, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
+} };
+#endif
diff --git a/keyboards/an_achronism/tetromino/config.h b/keyboards/an_achronism/tetromino/config.h
new file mode 100644
index 0000000000..c7087edb88
--- /dev/null
+++ b/keyboards/an_achronism/tetromino/config.h
@@ -0,0 +1,31 @@
+/*
+Copyright 2022 an_achronism (@an-achronism)
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+#pragma once
+
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
diff --git a/keyboards/anavi/macropad8/config.h b/keyboards/anavi/macropad8/config.h
index edcc85f722..f7c7b4b44c 100644
--- a/keyboards/anavi/macropad8/config.h
+++ b/keyboards/anavi/macropad8/config.h
@@ -17,5 +17,8 @@ along with this program. If not, see .
#pragma once
-#define OLED_DISPLAY_128X64
-#define OLED_TIMEOUT 60000
+#ifdef OLED_ENABLE
+# define OLED_DISPLAY_128X64
+# define OLED_TIMEOUT 60000
+# define OLED_FONT_H "keyboards/anavi/macropad8/glcdfont.c"
+#endif
diff --git a/keyboards/anavi/macropad8/glcdfont.c b/keyboards/anavi/macropad8/glcdfont.c
new file mode 100644
index 0000000000..10ce3b3457
--- /dev/null
+++ b/keyboards/anavi/macropad8/glcdfont.c
@@ -0,0 +1,232 @@
+#include "progmem.h"
+
+// Corne 8x6 font with QMK Firmware Logo
+// Online editor: https://helixfonteditor.netlify.com/
+
+// clang-format off
+const unsigned char font[] PROGMEM = {
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
+0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
+0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
+0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
+0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
+0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
+0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
+0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
+0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
+0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
+0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
+0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
+0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
+0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
+0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
+0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
+0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
+0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
+0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
+0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
+0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
+0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
+0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
+0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
+0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
+0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
+0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
+0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
+0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
+0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
+0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
+0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
+0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
+0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
+0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
+0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
+0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
+0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
+0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
+0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
+0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
+0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
+0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
+0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
+0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
+0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
+0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
+0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
+0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
+0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
+0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
+0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
+0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
+0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
+0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
+0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
+0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
+0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
+0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
+0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
+0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
+0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
+0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
+0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
+0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
+0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
+0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
+0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
+0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
+0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
+0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
+0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
+0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
+0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
+0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
+0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
+0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
+0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
+0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
+0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
+0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
+0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
+0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
+0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
+0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
+0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
+0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
+0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
+0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
+0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
+0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
+0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
+0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
+0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
+0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
+0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
+0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
+0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
+0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
+0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
+0x18, 0x24, 0x24, 0x1C, 0x78, 0x00,
+0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
+0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
+0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
+0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
+0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
+0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
+0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
+0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
+0x7C, 0x18, 0x24, 0x24, 0x18, 0x00,
+0x18, 0x24, 0x24, 0x18, 0x7C, 0x00,
+0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
+0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
+0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
+0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
+0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
+0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
+0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
+0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
+0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
+0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
+0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
+0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
+0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
+0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0,
+0xF0, 0xF8, 0xF8, 0x18, 0x00, 0xC0,
+0xF0, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF,
+0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x80, 0xC0, 0xE0, 0xE0,
+0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+0xC0, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x80, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0,
+0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80,
+0x00, 0x00, 0x00, 0xE0, 0xE0, 0xC0,
+0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00,
+0x00, 0xE0, 0xE0, 0xC0, 0xC0, 0xE0,
+0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80,
+0x00, 0x00, 0x00, 0x00, 0x80, 0xC0,
+0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+0xE0, 0xE0, 0xC0, 0x80, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC,
+0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00,
+0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E,
+0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00,
+0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B,
+0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00,
+0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE,
+0xDE, 0xD7, 0xDC, 0x00, 0xC0, 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, 0xF8, 0xFC, 0xFE,
+0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0xFF,
+0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF,
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFF, 0x1F, 0x07, 0x01, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0xFF, 0xFF, 0xFF, 0x81, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x81,
+0xC3, 0xC3, 0xC3, 0x00, 0x00, 0xFF,
+0xFF, 0xFF, 0x81, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x81, 0xFF, 0xFF,
+0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
+0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0xFF, 0xFF, 0xFF, 0x01, 0x00,
+0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF,
+0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
+0x9D, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
+0x1C, 0x9D, 0xDF, 0xDF, 0xDF, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
+0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00,
+0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F,
+0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00,
+0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20,
+0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00,
+0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F,
+0x0F, 0x7F, 0x0F, 0x00, 0x03, 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, 0x03, 0x0F, 0x1F,
+0x3F, 0x3F, 0x3F, 0x3F, 0x1F, 0x1F,
+0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x3F,
+0x3F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
+0x7F, 0x7C, 0x78, 0x78, 0x38, 0x1C,
+0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x01, 0x03, 0x07, 0x07,
+0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+0x03, 0x01, 0x00, 0x00, 0x00, 0x00,
+0x01, 0x03, 0x07, 0x07, 0x07, 0x07,
+0x07, 0x07, 0x07, 0x07, 0x03, 0x01,
+0x00, 0x00, 0x00, 0x07, 0x07, 0x07,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x07, 0x07, 0x07, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x07, 0x07,
+0x07, 0x00, 0x00, 0x00, 0x01, 0x03,
+0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+0x07, 0x07, 0x03, 0x01, 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,
+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, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
diff --git a/keyboards/archetype/minervalx/config.h b/keyboards/archetype/minervalx/config.h
index 5c99920073..3b5eb8e56a 100644
--- a/keyboards/archetype/minervalx/config.h
+++ b/keyboards/archetype/minervalx/config.h
@@ -16,5 +16,7 @@
#pragma once
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
+
#define BACKLIGHT_PWM_DRIVER PWMD5
-#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A
+#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A
\ No newline at end of file
diff --git a/keyboards/atreus/astar/keyboard.json b/keyboards/atreus/astar/keyboard.json
index b730442a55..e201078ffe 100644
--- a/keyboards/atreus/astar/keyboard.json
+++ b/keyboards/atreus/astar/keyboard.json
@@ -5,64 +5,5 @@
},
"diode_direction": "COL2ROW",
"processor": "atmega32u4",
- "bootloader": "caterina",
- "layout_aliases": {
- "LAYOUT_pcb_up": "LAYOUT",
- "LAYOUT_pcb_down": "LAYOUT"
- },
- "layouts": {
- "LAYOUT": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0.6},
- {"matrix": [0, 1], "x": 1, "y": 0.35},
- {"matrix": [0, 2], "x": 2, "y": 0},
- {"matrix": [0, 3], "x": 3, "y": 0.35},
- {"matrix": [0, 4], "x": 4, "y": 0.7},
-
- {"matrix": [0, 6], "x": 8, "y": 0.7},
- {"matrix": [0, 7], "x": 9, "y": 0.35},
- {"matrix": [0, 8], "x": 10, "y": 0},
- {"matrix": [0, 9], "x": 11, "y": 0.35},
- {"matrix": [0, 10], "x": 12, "y": 0.6},
-
- {"matrix": [1, 0], "x": 0, "y": 1.6},
- {"matrix": [1, 1], "x": 1, "y": 1.35},
- {"matrix": [1, 2], "x": 2, "y": 1},
- {"matrix": [1, 3], "x": 3, "y": 1.35},
- {"matrix": [1, 4], "x": 4, "y": 1.7},
-
- {"matrix": [1, 6], "x": 8, "y": 1.7},
- {"matrix": [1, 7], "x": 9, "y": 1.35},
- {"matrix": [1, 8], "x": 10, "y": 1},
- {"matrix": [1, 9], "x": 11, "y": 1.35},
- {"matrix": [1, 10], "x": 12, "y": 1.6},
-
- {"matrix": [2, 0], "x": 0, "y": 2.6},
- {"matrix": [2, 1], "x": 1, "y": 2.35},
- {"matrix": [2, 2], "x": 2, "y": 2},
- {"matrix": [2, 3], "x": 3, "y": 2.35},
- {"matrix": [2, 4], "x": 4, "y": 2.7},
-
- {"matrix": [2, 6], "x": 8, "y": 2.7},
- {"matrix": [2, 7], "x": 9, "y": 2.35},
- {"matrix": [2, 8], "x": 10, "y": 2},
- {"matrix": [2, 9], "x": 11, "y": 2.35},
- {"matrix": [2, 10], "x": 12, "y": 2.6},
-
- {"matrix": [3, 0], "x": 0, "y": 3.6},
- {"matrix": [3, 1], "x": 1, "y": 3.35},
- {"matrix": [3, 2], "x": 2, "y": 3},
- {"matrix": [3, 3], "x": 3, "y": 3.35},
- {"matrix": [3, 4], "x": 4, "y": 3.7},
- {"matrix": [2, 5], "x": 5, "y": 2.95, "h": 1.5},
-
- {"matrix": [3, 5], "x": 7, "y": 2.95, "h": 1.5},
- {"matrix": [3, 6], "x": 8, "y": 3.7},
- {"matrix": [3, 7], "x": 9, "y": 3.35},
- {"matrix": [3, 8], "x": 10, "y": 3},
- {"matrix": [3, 9], "x": 11, "y": 3.35},
- {"matrix": [3, 10], "x": 12, "y": 3.6}
- ]
- }
- }
+ "bootloader": "caterina"
}
diff --git a/keyboards/atreus/astar_mirrored/keyboard.json b/keyboards/atreus/astar_mirrored/keyboard.json
index ae687c9d2b..b83be5d29d 100644
--- a/keyboards/atreus/astar_mirrored/keyboard.json
+++ b/keyboards/atreus/astar_mirrored/keyboard.json
@@ -5,64 +5,5 @@
},
"diode_direction": "COL2ROW",
"processor": "atmega32u4",
- "bootloader": "caterina",
- "layout_aliases": {
- "LAYOUT_pcb_up": "LAYOUT",
- "LAYOUT_pcb_down": "LAYOUT"
- },
- "layouts": {
- "LAYOUT": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0.6},
- {"matrix": [0, 1], "x": 1, "y": 0.35},
- {"matrix": [0, 2], "x": 2, "y": 0},
- {"matrix": [0, 3], "x": 3, "y": 0.35},
- {"matrix": [0, 4], "x": 4, "y": 0.7},
-
- {"matrix": [0, 6], "x": 8, "y": 0.7},
- {"matrix": [0, 7], "x": 9, "y": 0.35},
- {"matrix": [0, 8], "x": 10, "y": 0},
- {"matrix": [0, 9], "x": 11, "y": 0.35},
- {"matrix": [0, 10], "x": 12, "y": 0.6},
-
- {"matrix": [1, 0], "x": 0, "y": 1.6},
- {"matrix": [1, 1], "x": 1, "y": 1.35},
- {"matrix": [1, 2], "x": 2, "y": 1},
- {"matrix": [1, 3], "x": 3, "y": 1.35},
- {"matrix": [1, 4], "x": 4, "y": 1.7},
-
- {"matrix": [1, 6], "x": 8, "y": 1.7},
- {"matrix": [1, 7], "x": 9, "y": 1.35},
- {"matrix": [1, 8], "x": 10, "y": 1},
- {"matrix": [1, 9], "x": 11, "y": 1.35},
- {"matrix": [1, 10], "x": 12, "y": 1.6},
-
- {"matrix": [2, 0], "x": 0, "y": 2.6},
- {"matrix": [2, 1], "x": 1, "y": 2.35},
- {"matrix": [2, 2], "x": 2, "y": 2},
- {"matrix": [2, 3], "x": 3, "y": 2.35},
- {"matrix": [2, 4], "x": 4, "y": 2.7},
-
- {"matrix": [2, 6], "x": 8, "y": 2.7},
- {"matrix": [2, 7], "x": 9, "y": 2.35},
- {"matrix": [2, 8], "x": 10, "y": 2},
- {"matrix": [2, 9], "x": 11, "y": 2.35},
- {"matrix": [2, 10], "x": 12, "y": 2.6},
-
- {"matrix": [3, 0], "x": 0, "y": 3.6},
- {"matrix": [3, 1], "x": 1, "y": 3.35},
- {"matrix": [3, 2], "x": 2, "y": 3},
- {"matrix": [3, 3], "x": 3, "y": 3.35},
- {"matrix": [3, 4], "x": 4, "y": 3.7},
- {"matrix": [3, 5], "x": 5, "y": 2.95, "h": 1.5},
-
- {"matrix": [2, 5], "x": 7, "y": 2.95, "h": 1.5},
- {"matrix": [3, 6], "x": 8, "y": 3.7},
- {"matrix": [3, 7], "x": 9, "y": 3.35},
- {"matrix": [3, 8], "x": 10, "y": 3},
- {"matrix": [3, 9], "x": 11, "y": 3.35},
- {"matrix": [3, 10], "x": 12, "y": 3.6}
- ]
- }
- }
+ "bootloader": "caterina"
}
diff --git a/keyboards/atreus/f103/keyboard.json b/keyboards/atreus/f103/keyboard.json
index fb49c0c1ca..813ef97e37 100644
--- a/keyboards/atreus/f103/keyboard.json
+++ b/keyboards/atreus/f103/keyboard.json
@@ -8,64 +8,5 @@
"bootloader": "stm32duino",
"features": {
"bootmagic": true
- },
- "layout_aliases": {
- "LAYOUT_pcb_up": "LAYOUT",
- "LAYOUT_pcb_down": "LAYOUT"
- },
- "layouts": {
- "LAYOUT": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0.6},
- {"matrix": [0, 1], "x": 1, "y": 0.35},
- {"matrix": [0, 2], "x": 2, "y": 0},
- {"matrix": [0, 3], "x": 3, "y": 0.35},
- {"matrix": [0, 4], "x": 4, "y": 0.7},
-
- {"matrix": [0, 6], "x": 8, "y": 0.7},
- {"matrix": [0, 7], "x": 9, "y": 0.35},
- {"matrix": [0, 8], "x": 10, "y": 0},
- {"matrix": [0, 9], "x": 11, "y": 0.35},
- {"matrix": [0, 10], "x": 12, "y": 0.6},
-
- {"matrix": [1, 0], "x": 0, "y": 1.6},
- {"matrix": [1, 1], "x": 1, "y": 1.35},
- {"matrix": [1, 2], "x": 2, "y": 1},
- {"matrix": [1, 3], "x": 3, "y": 1.35},
- {"matrix": [1, 4], "x": 4, "y": 1.7},
-
- {"matrix": [1, 6], "x": 8, "y": 1.7},
- {"matrix": [1, 7], "x": 9, "y": 1.35},
- {"matrix": [1, 8], "x": 10, "y": 1},
- {"matrix": [1, 9], "x": 11, "y": 1.35},
- {"matrix": [1, 10], "x": 12, "y": 1.6},
-
- {"matrix": [2, 0], "x": 0, "y": 2.6},
- {"matrix": [2, 1], "x": 1, "y": 2.35},
- {"matrix": [2, 2], "x": 2, "y": 2},
- {"matrix": [2, 3], "x": 3, "y": 2.35},
- {"matrix": [2, 4], "x": 4, "y": 2.7},
-
- {"matrix": [2, 6], "x": 8, "y": 2.7},
- {"matrix": [2, 7], "x": 9, "y": 2.35},
- {"matrix": [2, 8], "x": 10, "y": 2},
- {"matrix": [2, 9], "x": 11, "y": 2.35},
- {"matrix": [2, 10], "x": 12, "y": 2.6},
-
- {"matrix": [3, 0], "x": 0, "y": 3.6},
- {"matrix": [3, 1], "x": 1, "y": 3.35},
- {"matrix": [3, 2], "x": 2, "y": 3},
- {"matrix": [3, 3], "x": 3, "y": 3.35},
- {"matrix": [3, 4], "x": 4, "y": 3.7},
- {"matrix": [2, 5], "x": 5, "y": 2.95, "h": 1.5},
-
- {"matrix": [3, 5], "x": 7, "y": 2.95, "h": 1.5},
- {"matrix": [3, 6], "x": 8, "y": 3.7},
- {"matrix": [3, 7], "x": 9, "y": 3.35},
- {"matrix": [3, 8], "x": 10, "y": 3},
- {"matrix": [3, 9], "x": 11, "y": 3.35},
- {"matrix": [3, 10], "x": 12, "y": 3.6}
- ]
- }
}
}
diff --git a/keyboards/atreus/feather/keyboard.json b/keyboards/atreus/feather/keyboard.json
index 12468218ec..1392849fd4 100644
--- a/keyboards/atreus/feather/keyboard.json
+++ b/keyboards/atreus/feather/keyboard.json
@@ -14,64 +14,5 @@
},
"bluetooth": {
"driver": "bluefruit_le"
- },
- "layout_aliases": {
- "LAYOUT_pcb_up": "LAYOUT",
- "LAYOUT_pcb_down": "LAYOUT"
- },
- "layouts": {
- "LAYOUT": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0.6},
- {"matrix": [0, 1], "x": 1, "y": 0.35},
- {"matrix": [0, 2], "x": 2, "y": 0},
- {"matrix": [0, 3], "x": 3, "y": 0.35},
- {"matrix": [0, 4], "x": 4, "y": 0.7},
-
- {"matrix": [0, 6], "x": 8, "y": 0.7},
- {"matrix": [0, 7], "x": 9, "y": 0.35},
- {"matrix": [0, 8], "x": 10, "y": 0},
- {"matrix": [0, 9], "x": 11, "y": 0.35},
- {"matrix": [0, 10], "x": 12, "y": 0.6},
-
- {"matrix": [1, 0], "x": 0, "y": 1.6},
- {"matrix": [1, 1], "x": 1, "y": 1.35},
- {"matrix": [1, 2], "x": 2, "y": 1},
- {"matrix": [1, 3], "x": 3, "y": 1.35},
- {"matrix": [1, 4], "x": 4, "y": 1.7},
-
- {"matrix": [1, 6], "x": 8, "y": 1.7},
- {"matrix": [1, 7], "x": 9, "y": 1.35},
- {"matrix": [1, 8], "x": 10, "y": 1},
- {"matrix": [1, 9], "x": 11, "y": 1.35},
- {"matrix": [1, 10], "x": 12, "y": 1.6},
-
- {"matrix": [2, 0], "x": 0, "y": 2.6},
- {"matrix": [2, 1], "x": 1, "y": 2.35},
- {"matrix": [2, 2], "x": 2, "y": 2},
- {"matrix": [2, 3], "x": 3, "y": 2.35},
- {"matrix": [2, 4], "x": 4, "y": 2.7},
-
- {"matrix": [2, 6], "x": 8, "y": 2.7},
- {"matrix": [2, 7], "x": 9, "y": 2.35},
- {"matrix": [2, 8], "x": 10, "y": 2},
- {"matrix": [2, 9], "x": 11, "y": 2.35},
- {"matrix": [2, 10], "x": 12, "y": 2.6},
-
- {"matrix": [3, 0], "x": 0, "y": 3.6},
- {"matrix": [3, 1], "x": 1, "y": 3.35},
- {"matrix": [3, 2], "x": 2, "y": 3},
- {"matrix": [3, 3], "x": 3, "y": 3.35},
- {"matrix": [3, 4], "x": 4, "y": 3.7},
- {"matrix": [2, 5], "x": 5, "y": 2.95, "h": 1.5},
-
- {"matrix": [3, 5], "x": 7, "y": 2.95, "h": 1.5},
- {"matrix": [3, 6], "x": 8, "y": 3.7},
- {"matrix": [3, 7], "x": 9, "y": 3.35},
- {"matrix": [3, 8], "x": 10, "y": 3},
- {"matrix": [3, 9], "x": 11, "y": 3.35},
- {"matrix": [3, 10], "x": 12, "y": 3.6}
- ]
- }
}
}
diff --git a/keyboards/atreus/info.json b/keyboards/atreus/info.json
index b479c96542..cf53b506a0 100644
--- a/keyboards/atreus/info.json
+++ b/keyboards/atreus/info.json
@@ -21,5 +21,116 @@
"enabled": true,
"resync": true
}
+ },
+ "layout_aliases": {
+ "LAYOUT": "LAYOUT_pcb_up"
+ },
+ "layouts": {
+ "LAYOUT_pcb_up": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0.6},
+ {"matrix": [0, 1], "x": 1, "y": 0.35},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0.35},
+ {"matrix": [0, 4], "x": 4, "y": 0.7},
+
+ {"matrix": [0, 6], "x": 8, "y": 0.7},
+ {"matrix": [0, 7], "x": 9, "y": 0.35},
+ {"matrix": [0, 8], "x": 10, "y": 0},
+ {"matrix": [0, 9], "x": 11, "y": 0.35},
+ {"matrix": [0, 10], "x": 12, "y": 0.6},
+
+ {"matrix": [1, 0], "x": 0, "y": 1.6},
+ {"matrix": [1, 1], "x": 1, "y": 1.35},
+ {"matrix": [1, 2], "x": 2, "y": 1},
+ {"matrix": [1, 3], "x": 3, "y": 1.35},
+ {"matrix": [1, 4], "x": 4, "y": 1.7},
+
+ {"matrix": [1, 6], "x": 8, "y": 1.7},
+ {"matrix": [1, 7], "x": 9, "y": 1.35},
+ {"matrix": [1, 8], "x": 10, "y": 1},
+ {"matrix": [1, 9], "x": 11, "y": 1.35},
+ {"matrix": [1, 10], "x": 12, "y": 1.6},
+
+ {"matrix": [2, 0], "x": 0, "y": 2.6},
+ {"matrix": [2, 1], "x": 1, "y": 2.35},
+ {"matrix": [2, 2], "x": 2, "y": 2},
+ {"matrix": [2, 3], "x": 3, "y": 2.35},
+ {"matrix": [2, 4], "x": 4, "y": 2.7},
+
+ {"matrix": [2, 6], "x": 8, "y": 2.7},
+ {"matrix": [2, 7], "x": 9, "y": 2.35},
+ {"matrix": [2, 8], "x": 10, "y": 2},
+ {"matrix": [2, 9], "x": 11, "y": 2.35},
+ {"matrix": [2, 10], "x": 12, "y": 2.6},
+
+ {"matrix": [3, 0], "x": 0, "y": 3.6},
+ {"matrix": [3, 1], "x": 1, "y": 3.35},
+ {"matrix": [3, 2], "x": 2, "y": 3},
+ {"matrix": [3, 3], "x": 3, "y": 3.35},
+ {"matrix": [3, 4], "x": 4, "y": 3.7},
+ {"matrix": [2, 5], "x": 5, "y": 2.95, "h": 1.5},
+
+ {"matrix": [3, 5], "x": 7, "y": 2.95, "h": 1.5},
+ {"matrix": [3, 6], "x": 8, "y": 3.7},
+ {"matrix": [3, 7], "x": 9, "y": 3.35},
+ {"matrix": [3, 8], "x": 10, "y": 3},
+ {"matrix": [3, 9], "x": 11, "y": 3.35},
+ {"matrix": [3, 10], "x": 12, "y": 3.6}
+ ]
+ },
+ "LAYOUT_pcb_down": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0.6},
+ {"matrix": [0, 1], "x": 1, "y": 0.35},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0.35},
+ {"matrix": [0, 4], "x": 4, "y": 0.7},
+
+ {"matrix": [0, 6], "x": 8, "y": 0.7},
+ {"matrix": [0, 7], "x": 9, "y": 0.35},
+ {"matrix": [0, 8], "x": 10, "y": 0},
+ {"matrix": [0, 9], "x": 11, "y": 0.35},
+ {"matrix": [0, 10], "x": 12, "y": 0.6},
+
+ {"matrix": [1, 0], "x": 0, "y": 1.6},
+ {"matrix": [1, 1], "x": 1, "y": 1.35},
+ {"matrix": [1, 2], "x": 2, "y": 1},
+ {"matrix": [1, 3], "x": 3, "y": 1.35},
+ {"matrix": [1, 4], "x": 4, "y": 1.7},
+
+ {"matrix": [1, 6], "x": 8, "y": 1.7},
+ {"matrix": [1, 7], "x": 9, "y": 1.35},
+ {"matrix": [1, 8], "x": 10, "y": 1},
+ {"matrix": [1, 9], "x": 11, "y": 1.35},
+ {"matrix": [1, 10], "x": 12, "y": 1.6},
+
+ {"matrix": [2, 0], "x": 0, "y": 2.6},
+ {"matrix": [2, 1], "x": 1, "y": 2.35},
+ {"matrix": [2, 2], "x": 2, "y": 2},
+ {"matrix": [2, 3], "x": 3, "y": 2.35},
+ {"matrix": [2, 4], "x": 4, "y": 2.7},
+
+ {"matrix": [2, 6], "x": 8, "y": 2.7},
+ {"matrix": [2, 7], "x": 9, "y": 2.35},
+ {"matrix": [2, 8], "x": 10, "y": 2},
+ {"matrix": [2, 9], "x": 11, "y": 2.35},
+ {"matrix": [2, 10], "x": 12, "y": 2.6},
+
+ {"matrix": [3, 0], "x": 0, "y": 3.6},
+ {"matrix": [3, 1], "x": 1, "y": 3.35},
+ {"matrix": [3, 2], "x": 2, "y": 3},
+ {"matrix": [3, 3], "x": 3, "y": 3.35},
+ {"matrix": [3, 4], "x": 4, "y": 3.7},
+ {"matrix": [3, 5], "x": 5, "y": 2.95, "h": 1.5},
+
+ {"matrix": [2, 5], "x": 7, "y": 2.95, "h": 1.5},
+ {"matrix": [3, 6], "x": 8, "y": 3.7},
+ {"matrix": [3, 7], "x": 9, "y": 3.35},
+ {"matrix": [3, 8], "x": 10, "y": 3},
+ {"matrix": [3, 9], "x": 11, "y": 3.35},
+ {"matrix": [3, 10], "x": 12, "y": 3.6}
+ ]
+ }
}
}
diff --git a/keyboards/atreus/keymaps/default/keymap.c b/keyboards/atreus/keymaps/default/keymap.c
index ca1333230c..e458810537 100644
--- a/keyboards/atreus/keymaps/default/keymap.c
+++ b/keyboards/atreus/keymaps/default/keymap.c
@@ -12,7 +12,7 @@
#define _LW 2
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QW] = LAYOUT( /* Qwerty */
+ [_QW] = LAYOUT_pcb_up( /* Qwerty */
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P ,
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN ,
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH ,
@@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* [ ] ( ) & || ` 1 2 3 \
* lower insert super shift bksp ctrl || alt space fn . 0 =
*/
- [_RS] = LAYOUT( /* [> RAISE <] */
+ [_RS] = LAYOUT_pcb_up( /* [> RAISE <] */
KC_EXLM, KC_AT, KC_UP, KC_LCBR, KC_RCBR, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR ,
KC_HASH, KC_LEFT, KC_DOWN, KC_RGHT, KC_DLR, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS ,
KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_AMPR, KC_GRV, KC_1, KC_2, KC_3, KC_BSLS ,
@@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* volup reset || F1 F2 F3 F12
* voldn super shift bksp ctrl || alt space L0 prtsc scroll pause
*/
- [_LW] = LAYOUT( /* [> LOWER <] */
+ [_LW] = LAYOUT_pcb_up( /* [> LOWER <] */
KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_UP, KC_F7, KC_F8, KC_F9, KC_F10 ,
KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_DOWN, KC_F4, KC_F5, KC_F6, KC_F11 ,
KC_NO, KC_VOLU, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_F1, KC_F2, KC_F3, KC_F12 ,
diff --git a/keyboards/atreus/keymaps/workman/keymap.c b/keyboards/atreus/keymaps/workman/keymap.c
index c0633f6362..e8b5b6b4e3 100644
--- a/keyboards/atreus/keymaps/workman/keymap.c
+++ b/keyboards/atreus/keymaps/workman/keymap.c
@@ -25,7 +25,7 @@ enum custom_keycodes {
*/
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QW] = LAYOUT( /* Workman */
+ [_QW] = LAYOUT_pcb_down( /* Workman */
KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN,
KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I,
KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH,
@@ -39,7 +39,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* menu caps < > del || _ 0 =
*/
- [_RS] = LAYOUT( /* [> RAISE <] */
+ [_RS] = LAYOUT_pcb_down( /* [> RAISE <] */
KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_MINS, KC_7, KC_8, KC_9, KC_ASTR,
KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_DOT, KC_4, KC_5, KC_6, KC_PLUS,
KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS,
@@ -52,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* || – ¨ reset
*/
- [_LW] = LAYOUT( /* [> LOWER <] */
+ [_LW] = LAYOUT_pcb_down( /* [> LOWER <] */
KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_VOLU, KC_F7, KC_F8, KC_F9, KC_F10,
KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_VOLD, KC_F4, KC_F5, KC_F6, KC_F11,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_F1, KC_F2, KC_F3, KC_F12,
diff --git a/keyboards/atreus/promicro/keyboard.json b/keyboards/atreus/promicro/keyboard.json
index 9f7e50526c..10c0ca1b22 100644
--- a/keyboards/atreus/promicro/keyboard.json
+++ b/keyboards/atreus/promicro/keyboard.json
@@ -4,64 +4,5 @@
"rows": ["F4", "B2", "B4", "B5"]
},
"diode_direction": "COL2ROW",
- "development_board": "promicro",
- "layout_aliases": {
- "LAYOUT_pcb_up": "LAYOUT",
- "LAYOUT_pcb_down": "LAYOUT"
- },
- "layouts": {
- "LAYOUT": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0.6},
- {"matrix": [0, 1], "x": 1, "y": 0.35},
- {"matrix": [0, 2], "x": 2, "y": 0},
- {"matrix": [0, 3], "x": 3, "y": 0.35},
- {"matrix": [0, 4], "x": 4, "y": 0.7},
-
- {"matrix": [0, 6], "x": 8, "y": 0.7},
- {"matrix": [0, 7], "x": 9, "y": 0.35},
- {"matrix": [0, 8], "x": 10, "y": 0},
- {"matrix": [0, 9], "x": 11, "y": 0.35},
- {"matrix": [0, 10], "x": 12, "y": 0.6},
-
- {"matrix": [1, 0], "x": 0, "y": 1.6},
- {"matrix": [1, 1], "x": 1, "y": 1.35},
- {"matrix": [1, 2], "x": 2, "y": 1},
- {"matrix": [1, 3], "x": 3, "y": 1.35},
- {"matrix": [1, 4], "x": 4, "y": 1.7},
-
- {"matrix": [1, 6], "x": 8, "y": 1.7},
- {"matrix": [1, 7], "x": 9, "y": 1.35},
- {"matrix": [1, 8], "x": 10, "y": 1},
- {"matrix": [1, 9], "x": 11, "y": 1.35},
- {"matrix": [1, 10], "x": 12, "y": 1.6},
-
- {"matrix": [2, 0], "x": 0, "y": 2.6},
- {"matrix": [2, 1], "x": 1, "y": 2.35},
- {"matrix": [2, 2], "x": 2, "y": 2},
- {"matrix": [2, 3], "x": 3, "y": 2.35},
- {"matrix": [2, 4], "x": 4, "y": 2.7},
-
- {"matrix": [2, 6], "x": 8, "y": 2.7},
- {"matrix": [2, 7], "x": 9, "y": 2.35},
- {"matrix": [2, 8], "x": 10, "y": 2},
- {"matrix": [2, 9], "x": 11, "y": 2.35},
- {"matrix": [2, 10], "x": 12, "y": 2.6},
-
- {"matrix": [3, 0], "x": 0, "y": 3.6},
- {"matrix": [3, 1], "x": 1, "y": 3.35},
- {"matrix": [3, 2], "x": 2, "y": 3},
- {"matrix": [3, 3], "x": 3, "y": 3.35},
- {"matrix": [3, 4], "x": 4, "y": 3.7},
- {"matrix": [2, 5], "x": 5, "y": 2.95, "h": 1.5},
-
- {"matrix": [3, 5], "x": 7, "y": 2.95, "h": 1.5},
- {"matrix": [3, 6], "x": 8, "y": 3.7},
- {"matrix": [3, 7], "x": 9, "y": 3.35},
- {"matrix": [3, 8], "x": 10, "y": 3},
- {"matrix": [3, 9], "x": 11, "y": 3.35},
- {"matrix": [3, 10], "x": 12, "y": 3.6}
- ]
- }
- }
+ "development_board": "promicro"
}
diff --git a/keyboards/atreus/teensy2/keyboard.json b/keyboards/atreus/teensy2/keyboard.json
index bdcc8f394d..067ea9a01d 100644
--- a/keyboards/atreus/teensy2/keyboard.json
+++ b/keyboards/atreus/teensy2/keyboard.json
@@ -5,64 +5,5 @@
},
"diode_direction": "COL2ROW",
"processor": "atmega32u4",
- "bootloader": "halfkay",
- "layout_aliases": {
- "LAYOUT_pcb_up": "LAYOUT",
- "LAYOUT_pcb_down": "LAYOUT"
- },
- "layouts": {
- "LAYOUT": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0.6},
- {"matrix": [0, 1], "x": 1, "y": 0.35},
- {"matrix": [0, 2], "x": 2, "y": 0},
- {"matrix": [0, 3], "x": 3, "y": 0.35},
- {"matrix": [0, 4], "x": 4, "y": 0.7},
-
- {"matrix": [0, 6], "x": 8, "y": 0.7},
- {"matrix": [0, 7], "x": 9, "y": 0.35},
- {"matrix": [0, 8], "x": 10, "y": 0},
- {"matrix": [0, 9], "x": 11, "y": 0.35},
- {"matrix": [0, 10], "x": 12, "y": 0.6},
-
- {"matrix": [1, 0], "x": 0, "y": 1.6},
- {"matrix": [1, 1], "x": 1, "y": 1.35},
- {"matrix": [1, 2], "x": 2, "y": 1},
- {"matrix": [1, 3], "x": 3, "y": 1.35},
- {"matrix": [1, 4], "x": 4, "y": 1.7},
-
- {"matrix": [1, 6], "x": 8, "y": 1.7},
- {"matrix": [1, 7], "x": 9, "y": 1.35},
- {"matrix": [1, 8], "x": 10, "y": 1},
- {"matrix": [1, 9], "x": 11, "y": 1.35},
- {"matrix": [1, 10], "x": 12, "y": 1.6},
-
- {"matrix": [2, 0], "x": 0, "y": 2.6},
- {"matrix": [2, 1], "x": 1, "y": 2.35},
- {"matrix": [2, 2], "x": 2, "y": 2},
- {"matrix": [2, 3], "x": 3, "y": 2.35},
- {"matrix": [2, 4], "x": 4, "y": 2.7},
-
- {"matrix": [2, 6], "x": 8, "y": 2.7},
- {"matrix": [2, 7], "x": 9, "y": 2.35},
- {"matrix": [2, 8], "x": 10, "y": 2},
- {"matrix": [2, 9], "x": 11, "y": 2.35},
- {"matrix": [2, 10], "x": 12, "y": 2.6},
-
- {"matrix": [3, 0], "x": 0, "y": 3.6},
- {"matrix": [3, 1], "x": 1, "y": 3.35},
- {"matrix": [3, 2], "x": 2, "y": 3},
- {"matrix": [3, 3], "x": 3, "y": 3.35},
- {"matrix": [3, 4], "x": 4, "y": 3.7},
- {"matrix": [2, 5], "x": 5, "y": 2.95, "h": 1.5},
-
- {"matrix": [3, 5], "x": 7, "y": 2.95, "h": 1.5},
- {"matrix": [3, 6], "x": 8, "y": 3.7},
- {"matrix": [3, 7], "x": 9, "y": 3.35},
- {"matrix": [3, 8], "x": 10, "y": 3},
- {"matrix": [3, 9], "x": 11, "y": 3.35},
- {"matrix": [3, 10], "x": 12, "y": 3.6}
- ]
- }
- }
+ "bootloader": "halfkay"
}
diff --git a/keyboards/axolstudio/yeti/hotswap/hotswap.c b/keyboards/axolstudio/yeti/hotswap/hotswap.c
index 8cf9d0f0b2..df64c80953 100644
--- a/keyboards/axolstudio/yeti/hotswap/hotswap.c
+++ b/keyboards/axolstudio/yeti/hotswap/hotswap.c
@@ -87,6 +87,28 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
{ 0, SW8_CS15, SW7_CS15, SW9_CS15 },
{ 0, SW11_CS15, SW10_CS15, SW12_CS15 },
};
+
+led_config_t g_led_config = {
+ {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, NO_LED, 43 },
+ { NO_LED, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56 },
+ { NO_LED, 57, NO_LED, 58, NO_LED, 59, 60, NO_LED, 61, NO_LED, 62, NO_LED, NO_LED, NO_LED, 63 }
+ }, {
+ {0, 0},{16, 0},{32, 0},{48, 0},{64, 0},{80, 0},{96, 0},{112, 0},{128, 0},{144, 0},{160, 0},{176, 0},{192, 0},{208, 0},{224, 0},
+ {0, 16},{16,16},{32,16},{48,16},{64,16},{80,16},{96,16},{112,16},{128,16},{144,16},{160,16},{176,16},{192,16},{208,16},{224,16},
+ {0,32},{16,32},{32,32},{48,32},{64,32},{80,32},{96,32},{112,32},{128,32},{144,32},{160,32},{176,32},{192,32},{224, 32},
+ {16,48},{32,48},{48,48},{64,48},{80,48},{96,48},{112,48},{128,48},{144,48},{160,48},{176,48},{192,48},{224,48},
+ {16,64},{48,64},{80,64},{96,64},{128,64},{160,64},{224,64}
+ }, {
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 4, 1, 4, 1, 1
+ }
+};
#endif
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
diff --git a/keyboards/axolstudio/yeti/hotswap/keyboard.json b/keyboards/axolstudio/yeti/hotswap/keyboard.json
index fb3582e0f1..5607001287 100644
--- a/keyboards/axolstudio/yeti/hotswap/keyboard.json
+++ b/keyboards/axolstudio/yeti/hotswap/keyboard.json
@@ -44,72 +44,6 @@
"solid_multisplash": true
},
"driver": "is31fl3733",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 16, "y": 16, "flags": 1},
- {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1},
- {"matrix": [2, 1], "x": 16, "y": 32, "flags": 1},
- {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
- {"matrix": [3, 1], "x": 16, "y": 48, "flags": 1},
- {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 192, "y": 48, "flags": 4},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
- {"matrix": [4, 1], "x": 16, "y": 64, "flags": 1},
- {"matrix": [4, 3], "x": 48, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 80, "y": 64, "flags": 4},
- {"matrix": [4, 6], "x": 96, "y": 64, "flags": 1},
- {"matrix": [4, 8], "x": 128, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 160, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
- ],
"sleep": true
},
"build": {
diff --git a/keyboards/bandominedoni/bandominedoni.c b/keyboards/bandominedoni/bandominedoni.c
index 84c0f27bcd..76d9e6cb3b 100644
--- a/keyboards/bandominedoni/bandominedoni.c
+++ b/keyboards/bandominedoni/bandominedoni.c
@@ -16,6 +16,58 @@
#include "bandominedoni.h"
+#ifdef RGB_MATRIX_ENABLE
+
+led_config_t g_led_config = {
+ {
+ { 75, 46, 45, 44, 43, 42, NO_LED },
+ { 47, 48, 49, 50, 51, 52, 53 },
+ { 60, 59, 58, 57, 56, 55, 54 },
+ { 61, 62, 63, 64, 65, 66, 67 },
+ { 74, 73, 72, 71, 70, 69, 68 },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { 7, 6, 4, 3, 2, 1, 5},
+ { 8, 9, 10, 11, 12, 13, 0 },
+ { 19, 18, 17, 16, 15, 14, 41 },
+ { 20, 21, 22, 23, 24, 25, 40 },
+ { 30, 29, 28, 27, 26, 39, 38 },
+ { 31, 32, 33, 34, 35, 36, 37 }
+ }, {
+ { 145, 6 }, { 157, 5 }, { 153, 14 }, { 149, 22 }, { 145, 32 }, { 136, 35 }, { 139, 48 }, { 134, 61 },
+ { 142, 60 }, { 148, 43 }, { 154, 29 }, { 158, 20 }, { 163, 12 }, { 168, 4 },
+ { 178, 5 }, { 173, 12 }, { 168, 20 }, { 163, 28 }, { 157, 40 }, { 151, 55 },
+ { 160, 52 }, { 166, 39 }, { 172, 28 }, { 177, 20 }, { 182, 13 }, { 188, 7 },
+ { 192, 17 }, { 186, 23 }, { 181, 30 }, { 175, 39 }, { 169, 50 },
+ { 178, 51 }, { 184, 41 }, { 190, 33 }, { 196, 27 },
+ { 199, 37 }, { 193, 45 }, { 187, 53 },
+ { 196, 56 }, { 202, 49 },
+ { 205, 61 },
+ { 202, 4 },
+ { 84, 18 }, { 73, 13 }, { 62, 10 }, { 51, 8 }, { 39, 11 }, { 24, 22 },
+ { 34, 19 }, { 45, 16 }, { 56, 16 }, { 66, 18 }, { 77, 22 }, { 87, 28 },
+ { 92, 40 }, { 81, 32 }, { 71, 27 }, { 61, 24 }, { 51, 24 }, { 41, 24 }, { 30, 28 },
+ { 24, 42 }, { 34, 37 }, { 44, 35 }, { 54, 34 }, { 64, 36 }, { 74, 38 }, { 84, 44 },
+ { 87, 54 }, { 77, 49 }, { 67, 47 }, { 57, 45 }, { 47, 45 }, { 37, 48 }, { 27, 52 }, { 19, 56 },
+ }, {
+ 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, 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, 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, 4
+ }
+};
+#endif
+
#if defined(SPLIT_HAND_MATRIX_GRID)
static uint8_t peek_matrix_intersection(pin_t out_pin, pin_t in_pin) {
gpio_set_pin_input_high(in_pin);
diff --git a/keyboards/bandominedoni/keyboard.json b/keyboards/bandominedoni/keyboard.json
index 7184e2e90c..f6ea0f43c3 100644
--- a/keyboards/bandominedoni/keyboard.json
+++ b/keyboards/bandominedoni/keyboard.json
@@ -20,84 +20,6 @@
},
"rgb_matrix": {
"driver": "ws2812",
- "layout": [
- {"matrix": [7, 6], "x": 145, "y": 6, "flags": 4},
- {"matrix": [6, 5], "x": 157, "y": 5, "flags": 4},
- {"matrix": [6, 4], "x": 153, "y": 14, "flags": 4},
- {"matrix": [6, 3], "x": 149, "y": 22, "flags": 4},
- {"matrix": [6, 2], "x": 145, "y": 32, "flags": 4},
- {"matrix": [6, 6], "x": 136, "y": 35, "flags": 4},
- {"matrix": [6, 1], "x": 139, "y": 48, "flags": 4},
- {"matrix": [6, 0], "x": 134, "y": 61, "flags": 4},
- {"matrix": [7, 0], "x": 142, "y": 60, "flags": 4},
- {"matrix": [7, 1], "x": 148, "y": 43, "flags": 4},
- {"matrix": [7, 2], "x": 154, "y": 29, "flags": 4},
- {"matrix": [7, 3], "x": 158, "y": 20, "flags": 4},
- {"matrix": [7, 4], "x": 163, "y": 12, "flags": 4},
- {"matrix": [7, 5], "x": 168, "y": 4, "flags": 4},
- {"matrix": [8, 5], "x": 178, "y": 5, "flags": 4},
- {"matrix": [8, 4], "x": 173, "y": 12, "flags": 4},
- {"matrix": [8, 3], "x": 168, "y": 20, "flags": 4},
- {"matrix": [8, 2], "x": 163, "y": 28, "flags": 4},
- {"matrix": [8, 1], "x": 157, "y": 40, "flags": 4},
- {"matrix": [8, 0], "x": 151, "y": 55, "flags": 4},
- {"matrix": [9, 0], "x": 160, "y": 52, "flags": 4},
- {"matrix": [9, 1], "x": 166, "y": 39, "flags": 4},
- {"matrix": [9, 2], "x": 172, "y": 28, "flags": 4},
- {"matrix": [9, 3], "x": 177, "y": 20, "flags": 4},
- {"matrix": [9, 4], "x": 182, "y": 13, "flags": 4},
- {"matrix": [9, 5], "x": 188, "y": 7, "flags": 4},
- {"matrix": [10, 4], "x": 192, "y": 17, "flags": 4},
- {"matrix": [10, 3], "x": 186, "y": 23, "flags": 4},
- {"matrix": [10, 2], "x": 181, "y": 30, "flags": 4},
- {"matrix": [10, 1], "x": 175, "y": 39, "flags": 4},
- {"matrix": [10, 0], "x": 169, "y": 50, "flags": 4},
- {"matrix": [11, 0], "x": 178, "y": 51, "flags": 4},
- {"matrix": [11, 1], "x": 184, "y": 41, "flags": 4},
- {"matrix": [11, 2], "x": 190, "y": 33, "flags": 4},
- {"matrix": [11, 3], "x": 196, "y": 27, "flags": 4},
- {"matrix": [11, 4], "x": 199, "y": 37, "flags": 4},
- {"matrix": [11, 5], "x": 193, "y": 45, "flags": 4},
- {"matrix": [11, 6], "x": 187, "y": 53, "flags": 4},
- {"matrix": [10, 6], "x": 196, "y": 56, "flags": 4},
- {"matrix": [10, 5], "x": 202, "y": 49, "flags": 4},
- {"matrix": [9, 6], "x": 205, "y": 61, "flags": 4},
- {"matrix": [8, 6], "x": 202, "y": 4, "flags": 4},
- {"matrix": [0, 5], "x": 84, "y": 18, "flags": 4},
- {"matrix": [0, 4], "x": 73, "y": 13, "flags": 4},
- {"matrix": [0, 3], "x": 62, "y": 10, "flags": 4},
- {"matrix": [0, 2], "x": 51, "y": 8, "flags": 4},
- {"matrix": [0, 1], "x": 39, "y": 11, "flags": 4},
- {"matrix": [1, 0], "x": 24, "y": 22, "flags": 4},
- {"matrix": [1, 1], "x": 34, "y": 19, "flags": 4},
- {"matrix": [1, 2], "x": 45, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 66, "y": 18, "flags": 4},
- {"matrix": [1, 5], "x": 77, "y": 22, "flags": 4},
- {"matrix": [1, 6], "x": 87, "y": 28, "flags": 4},
- {"matrix": [2, 6], "x": 92, "y": 40, "flags": 4},
- {"matrix": [2, 5], "x": 81, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 71, "y": 27, "flags": 4},
- {"matrix": [2, 3], "x": 61, "y": 24, "flags": 4},
- {"matrix": [2, 2], "x": 51, "y": 24, "flags": 4},
- {"matrix": [2, 1], "x": 41, "y": 24, "flags": 4},
- {"matrix": [2, 0], "x": 30, "y": 28, "flags": 4},
- {"matrix": [3, 0], "x": 24, "y": 42, "flags": 4},
- {"matrix": [3, 1], "x": 34, "y": 37, "flags": 4},
- {"matrix": [3, 2], "x": 44, "y": 35, "flags": 4},
- {"matrix": [3, 3], "x": 54, "y": 34, "flags": 4},
- {"matrix": [3, 4], "x": 64, "y": 36, "flags": 4},
- {"matrix": [3, 5], "x": 74, "y": 38, "flags": 4},
- {"matrix": [3, 6], "x": 84, "y": 44, "flags": 4},
- {"matrix": [4, 6], "x": 87, "y": 54, "flags": 4},
- {"matrix": [4, 5], "x": 77, "y": 49, "flags": 4},
- {"matrix": [4, 4], "x": 67, "y": 47, "flags": 4},
- {"matrix": [4, 3], "x": 57, "y": 45, "flags": 4},
- {"matrix": [4, 2], "x": 47, "y": 45, "flags": 4},
- {"matrix": [4, 1], "x": 37, "y": 48, "flags": 4},
- {"matrix": [4, 0], "x": 27, "y": 52, "flags": 4},
- {"matrix": [0, 0], "x": 19, "y": 56, "flags": 4}
- ],
"max_brightness": 50,
"sleep": true
},
diff --git a/keyboards/binepad/knobx1/knobx1.c b/keyboards/binepad/knobx1/knobx1.c
index 37602ca78c..7f299b67e3 100644
--- a/keyboards/binepad/knobx1/knobx1.c
+++ b/keyboards/binepad/knobx1/knobx1.c
@@ -9,13 +9,6 @@
# define X1_KEYMAP_LAYER_COUNT 4
#endif
-__attribute__((weak)) void x1_layer_led(uint8_t lyr) {
- gpio_write_pin(IND1_LED, lyr >= 0);
- gpio_write_pin(IND2_LED, lyr >= 1);
- gpio_write_pin(IND3_LED, lyr >= 2);
- gpio_write_pin(IND4_LED, lyr >= 3);
-}
-
void keyboard_pre_init_kb(void) {
const pin_t indicator_leds[4] = {IND1_LED, IND2_LED, IND3_LED, IND4_LED};
for (int i = 0; i < 4; i++) {
diff --git a/keyboards/binepad/knobx1/knobx1.h b/keyboards/binepad/knobx1/knobx1.h
index 3932fbd448..7645124057 100644
--- a/keyboards/binepad/knobx1/knobx1.h
+++ b/keyboards/binepad/knobx1/knobx1.h
@@ -38,6 +38,12 @@ static inline void x1_led_3_off(void) { gpio_write_pin_low(IND3_LED); }
static inline void x1_led_4_off(void) { gpio_write_pin_low(IND4_LED); }
// clang-format on
-void x1_layer_led(uint8_t lyr);
+static inline void x1_layer_led(uint8_t lyr) {
+ gpio_write_pin(IND1_LED, lyr >= 0);
+ gpio_write_pin(IND2_LED, lyr >= 1);
+ gpio_write_pin(IND3_LED, lyr >= 2);
+ gpio_write_pin(IND4_LED, lyr >= 3);
+}
+
bool process_x1_layer_up(keyrecord_t *record);
bool process_x1_layer_down(keyrecord_t *record);
diff --git a/keyboards/blockboy/ac980mini/ac980mini.c b/keyboards/blockboy/ac980mini/ac980mini.c
new file mode 100644
index 0000000000..b6a29f94ea
--- /dev/null
+++ b/keyboards/blockboy/ac980mini/ac980mini.c
@@ -0,0 +1,54 @@
+/* Copyright 2022 rooski15
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+// LED location configuration
+led_config_t g_led_config = { {
+
+ { 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80 },
+ { 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, NO_LED },
+ { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, NO_LED, 41, 42, 43, 44, 45 },
+ { 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, NO_LED, 24, 25, 26, 27, 28, NO_LED },
+ { 0, 1, 2, NO_LED, NO_LED, 3, NO_LED, NO_LED, NO_LED, 4, 5, 6, 7, 8, 9, 10, 11, 12 }
+
+},{
+
+ // Physical X,Y coordinates of each LED, starting with LED 0 above.
+ { 1 , 64 }, { 16 , 64 }, { 31 , 64 }, { 75 , 64 }, { 123 , 64 }, { 132 , 64 }, { 144 , 64 }, { 159 , 64 }, { 171 , 64 }, { 183 , 64 }, { 198 , 64 }, { 210 , 64 }, { 224 , 64 },
+ { 7 , 48 }, { 27 , 48 }, { 39 , 48 }, { 51 , 48 }, { 63 , 48 }, { 75 , 48 }, { 87 , 48 }, { 99 , 48 }, { 111 , 48 }, { 123 , 48 }, { 135 , 48 }, { 151 , 48 }, { 171 , 48 }, { 186 , 48 }, { 198 , 48 }, { 210 , 48 },
+ { 4 , 36 }, { 20 , 36 }, { 32 , 36 }, { 44 , 36 }, { 56 , 36 }, { 68 , 36 }, { 80 , 36 }, { 92 , 36 }, { 104 , 36 }, { 116 , 36 }, { 128 , 36 }, { 140 , 36 }, { 160 , 36 }, { 186 , 36 }, { 198 , 36 }, { 210 , 36 }, { 224 , 36 },
+ { 3 , 16 }, { 18 , 16 }, { 30 , 16 }, { 42 , 16 }, { 54 , 16 }, { 66 , 16 }, { 78 , 16 }, { 90 , 16 }, { 102 , 16 }, { 114 , 16 }, { 126 , 16 }, { 138 , 16 }, { 150 , 16 }, { 165 , 16 }, { 186 , 16 }, { 198 , 16 }, { 210 , 16 },
+ { 0 , 0 }, { 12 , 0 }, { 24 , 0 }, { 36 , 0 }, { 48 , 0 }, { 60 , 0 }, { 72 , 0 }, { 84 , 0 }, { 96 , 0 }, { 108 , 0 }, { 120 , 0 }, { 132 , 0 }, { 144 , 0 }, { 162 , 0 }, { 186 , 0 }, { 198 , 0 }, { 210 , 0 }, { 224 , 0 },
+
+},{
+ // "Flag Assignment" of each key
+ // 4 = Alpha
+ // 1 = Mod
+ // See https://docs.qmk.fm/#/feature_rgb_matrix?id=flags
+ // No Caps / Num indicators
+ 1,1,1, 1, 1,1,1, 1,1,1, 4,4,1,
+ 1,4,4,4,4,4,4,4,4,4,4,1, 1, 4,4,4,
+ 1,4,4,4,4,4,4,4,4,4,4,4,1, 4,4,4,1,
+ 1,4,4,4,4,4,4,4,4,4,4,4,4,4, 4,4,4,
+ 1,4,4,4,4,4,4,4,4,4,4,4,4,1, 1,1,1,1
+
+} };
+/*
+
+*/
+#endif
\ No newline at end of file
diff --git a/keyboards/blockboy/ac980mini/keyboard.json b/keyboards/blockboy/ac980mini/keyboard.json
index 8df9c03dcc..ce261639e2 100644
--- a/keyboards/blockboy/ac980mini/keyboard.json
+++ b/keyboards/blockboy/ac980mini/keyboard.json
@@ -74,89 +74,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [4, 0], "x": 1, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 16, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 31, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 75, "y": 64, "flags": 1},
- {"matrix": [4, 9], "x": 123, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 132, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 144, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 159, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 171, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 183, "y": 64, "flags": 1},
- {"matrix": [4, 15], "x": 198, "y": 64, "flags": 4},
- {"matrix": [4, 16], "x": 210, "y": 64, "flags": 4},
- {"matrix": [4, 17], "x": 224, "y": 64, "flags": 1},
- {"matrix": [3, 0], "x": 7, "y": 48, "flags": 1},
- {"matrix": [3, 1], "x": 27, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 39, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 51, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 63, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 75, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 87, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 99, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 111, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 123, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 135, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 151, "y": 48, "flags": 1},
- {"matrix": [3, 13], "x": 171, "y": 48, "flags": 1},
- {"matrix": [3, 14], "x": 186, "y": 48, "flags": 4},
- {"matrix": [3, 15], "x": 198, "y": 48, "flags": 4},
- {"matrix": [3, 16], "x": 210, "y": 48, "flags": 4},
- {"matrix": [2, 0], "x": 4, "y": 36, "flags": 1},
- {"matrix": [2, 1], "x": 20, "y": 36, "flags": 4},
- {"matrix": [2, 2], "x": 32, "y": 36, "flags": 4},
- {"matrix": [2, 3], "x": 44, "y": 36, "flags": 4},
- {"matrix": [2, 4], "x": 56, "y": 36, "flags": 4},
- {"matrix": [2, 5], "x": 68, "y": 36, "flags": 4},
- {"matrix": [2, 6], "x": 80, "y": 36, "flags": 4},
- {"matrix": [2, 7], "x": 92, "y": 36, "flags": 4},
- {"matrix": [2, 8], "x": 104, "y": 36, "flags": 4},
- {"matrix": [2, 9], "x": 116, "y": 36, "flags": 4},
- {"matrix": [2, 10], "x": 128, "y": 36, "flags": 4},
- {"matrix": [2, 11], "x": 140, "y": 36, "flags": 4},
- {"matrix": [2, 13], "x": 160, "y": 36, "flags": 1},
- {"matrix": [2, 14], "x": 186, "y": 36, "flags": 4},
- {"matrix": [2, 15], "x": 198, "y": 36, "flags": 4},
- {"matrix": [2, 16], "x": 210, "y": 36, "flags": 4},
- {"matrix": [2, 17], "x": 224, "y": 36, "flags": 1},
- {"matrix": [1, 0], "x": 3, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 18, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 30, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 42, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 54, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 66, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 78, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 90, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 102, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 114, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 126, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 138, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 150, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 165, "y": 16, "flags": 4},
- {"matrix": [1, 14], "x": 186, "y": 16, "flags": 4},
- {"matrix": [1, 15], "x": 198, "y": 16, "flags": 4},
- {"matrix": [1, 16], "x": 210, "y": 16, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 12, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 24, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 36, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 72, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 84, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 108, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 132, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 162, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 186, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 198, "y": 0, "flags": 1},
- {"matrix": [0, 16], "x": 210, "y": 0, "flags": 1},
- {"matrix": [0, 17], "x": 224, "y": 0, "flags": 1}
- ],
"sat_steps": 8,
"val_steps": 8,
"max_brightness": 150,
diff --git a/keyboards/boardsource/equals/48/config.h b/keyboards/boardsource/equals/48/config.h
index 7132189cdd..39d114872f 100644
--- a/keyboards/boardsource/equals/48/config.h
+++ b/keyboards/boardsource/equals/48/config.h
@@ -2,6 +2,9 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U
+
#define AUDIO_PIN GP29
#define AUDIO_PWM_DRIVER PWMD6
#define AUDIO_PWM_CHANNEL RP2040_PWM_CHANNEL_B
diff --git a/keyboards/boardsource/equals/60/config.h b/keyboards/boardsource/equals/60/config.h
index 7132189cdd..39d114872f 100644
--- a/keyboards/boardsource/equals/60/config.h
+++ b/keyboards/boardsource/equals/60/config.h
@@ -2,6 +2,9 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U
+
#define AUDIO_PIN GP29
#define AUDIO_PWM_DRIVER PWMD6
#define AUDIO_PWM_CHANNEL RP2040_PWM_CHANNEL_B
diff --git a/keyboards/boardsource/lulu/rp2040/config.h b/keyboards/boardsource/lulu/rp2040/config.h
index 5a43521918..2c86e48e6f 100644
--- a/keyboards/boardsource/lulu/rp2040/config.h
+++ b/keyboards/boardsource/lulu/rp2040/config.h
@@ -1,11 +1,11 @@
// Copyright 2022 jack (@waffle87)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
-
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U
#define SERIAL_USART_FULL_DUPLEX
#define SERIAL_USART_TX_PIN GP0
#define SERIAL_USART_RX_PIN GP1
-
#define I2C_DRIVER I2CD1
#define I2C1_SDA_PIN GP22
#define I2C1_SCL_PIN GP23
diff --git a/keyboards/boardsource/unicorne/config.h b/keyboards/boardsource/unicorne/config.h
index 843d377cbe..e79c00f14d 100644
--- a/keyboards/boardsource/unicorne/config.h
+++ b/keyboards/boardsource/unicorne/config.h
@@ -2,6 +2,8 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
+
#define I2C_DRIVER I2CD1
#define I2C1_SDA_PIN GP22
#define I2C1_SCL_PIN GP23
diff --git a/keyboards/boston_meetup/2019/2019.c b/keyboards/boston_meetup/2019/2019.c
index 87ce108bc3..1097c58de2 100644
--- a/keyboards/boston_meetup/2019/2019.c
+++ b/keyboards/boston_meetup/2019/2019.c
@@ -15,6 +15,21 @@
*/
#include "quantum.h"
+#ifdef RGB_MATRIX_ENABLE
+#include "rgb_matrix.h"
+
+led_config_t g_led_config = { {
+ { 5, NO_LED, NO_LED, 0 },
+ { NO_LED, NO_LED, NO_LED, NO_LED },
+ { 4, NO_LED, NO_LED, 1 },
+ { 3, NO_LED, NO_LED, 2 }
+}, {
+ { 188, 16 }, { 187, 48 }, { 149, 64 }, { 112, 64 }, { 37, 48 }, { 38, 16 }
+}, {
+ 4, 4, 4, 4, 4, 4
+} };
+#endif
+
#ifdef OLED_ENABLE
oled_rotation_t oled_init_kb(oled_rotation_t rotation) { return OLED_ROTATION_180; }
diff --git a/keyboards/boston_meetup/2019/keyboard.json b/keyboards/boston_meetup/2019/keyboard.json
index c56a8f6c06..4f07e0c631 100644
--- a/keyboards/boston_meetup/2019/keyboard.json
+++ b/keyboards/boston_meetup/2019/keyboard.json
@@ -20,15 +20,7 @@
"driver": "drv2605l"
},
"rgb_matrix": {
- "driver": "ws2812",
- "layout": [
- {"matrix": [0, 3], "x": 188, "y": 16, "flags": 4},
- {"matrix": [2, 3], "x": 187, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 149, "y": 64, "flags": 4},
- {"matrix": [3, 0], "x": 112, "y": 64, "flags": 4},
- {"matrix": [2, 0], "x": 37, "y": 48, "flags": 4},
- {"matrix": [0, 0], "x": 38, "y": 16, "flags": 4}
- ]
+ "driver": "ws2812"
},
"matrix_pins": {
"cols": ["A7", "A8", "B2", "B10"],
diff --git a/keyboards/canary/canary60rgb/v1/keyboard.json b/keyboards/canary/canary60rgb/v1/keyboard.json
index de2daaf00d..a1247769e6 100644
--- a/keyboards/canary/canary60rgb/v1/keyboard.json
+++ b/keyboards/canary/canary60rgb/v1/keyboard.json
@@ -73,71 +73,6 @@
"pixel_rain": true
},
"driver": "is31fl3733",
- "layout": [
- {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [2, 13], "x": 214, "y": 32, "flags": 1},
- {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
- {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1},
- {"matrix": [3, 11], "x": 208, "y": 48, "flags": 1},
- {"matrix": [3, 10], "x": 186, "y": 48, "flags": 1},
- {"matrix": [3, 9], "x": 164, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 148, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 132, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 116, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 100, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 84, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 68, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 36, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1},
- {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 208, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 192, "y": 64, "flags": 1},
- {"matrix": [4, 9], "x": 176, "y": 64, "flags": 1},
- {"matrix": [4, 8], "x": 160, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}
- ],
"sleep": true
},
"matrix_pins": {
diff --git a/keyboards/canary/canary60rgb/v1/v1.c b/keyboards/canary/canary60rgb/v1/v1.c
index a6e9dea796..b14878ff22 100644
--- a/keyboards/canary/canary60rgb/v1/v1.c
+++ b/keyboards/canary/canary60rgb/v1/v1.c
@@ -86,6 +86,28 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
{ 0, SW10_CS16, SW11_CS16, SW12_CS16 }
};
+led_config_t g_led_config = {
+ {
+ { 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 },
+ { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 },
+ { 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, NO_LED, 28 },
+ { 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, NO_LED, 41 },
+ { 62, 61, 60, NO_LED, NO_LED, 59, NO_LED, NO_LED, 58, 57, 56, 55, NO_LED, 54 }
+ }, {
+ { 216, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 },
+ { 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 }, { 4, 16 },
+ { 214, 32 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 },
+ { 224, 48 }, { 208, 48 }, { 186, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 36, 48 }, { 9, 48 },
+ { 224, 64 }, { 208, 64 }, { 192, 64 }, { 176, 64 }, { 160, 64 }, { 102, 64 }, { 42, 64 }, { 22, 64 }, { 2, 64 }
+ }, {
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 1, 1, 4, 1, 1, 1
+ }
+};
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/cannonkeys/ortho48v2/config.h b/keyboards/cannonkeys/ortho48v2/config.h
index 18edaab2ab..2af75a1715 100644
--- a/keyboards/cannonkeys/ortho48v2/config.h
+++ b/keyboards/cannonkeys/ortho48v2/config.h
@@ -16,5 +16,8 @@ along with this program. If not, see .
*/
#pragma once
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // Timeout window in ms in which the double tap can occur.
+
#define BACKLIGHT_PWM_DRIVER PWMD6
#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A
diff --git a/keyboards/cannonkeys/ortho60v2/config.h b/keyboards/cannonkeys/ortho60v2/config.h
index 18edaab2ab..2af75a1715 100644
--- a/keyboards/cannonkeys/ortho60v2/config.h
+++ b/keyboards/cannonkeys/ortho60v2/config.h
@@ -16,5 +16,8 @@ along with this program. If not, see .
*/
#pragma once
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // Timeout window in ms in which the double tap can occur.
+
#define BACKLIGHT_PWM_DRIVER PWMD6
#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A
diff --git a/keyboards/capsunlocked/cu80/v2/ansi/ansi.c b/keyboards/capsunlocked/cu80/v2/ansi/ansi.c
new file mode 100644
index 0000000000..2d4055d984
--- /dev/null
+++ b/keyboards/capsunlocked/cu80/v2/ansi/ansi.c
@@ -0,0 +1,20 @@
+// Copyright 2021 CapsUnlocked
+// SPDX-License-Identifier: GPL-2.0-or-later
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = {
+ {
+ {0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
+ {32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16},
+ {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49},
+ {62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, NO_LED, NO_LED, NO_LED, NO_LED},
+ {63, NO_LED, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, NO_LED, NO_LED, 75, NO_LED},
+ {86, 85, 84, NO_LED, NO_LED, 83, NO_LED, NO_LED, NO_LED, 82, 81, 80, 79, 78, NO_LED, 77, 76}
+ }, {
+ {0, 0}, {28, 0}, {42, 0}, {56, 0}, {71, 0}, {85, 0}, {99, 0}, {113, 0}, {127, 0}, {141, 0}, {155, 0}, {169, 0}, {184, 0}, {198, 0}, {212, 0}, {226, 0}, {226, 13}, {212, 13}, {198, 13}, {184, 13}, {169, 13}, {155, 13}, {141, 13}, {127, 13}, {113, 13}, {99, 13}, {85, 13}, {71, 13}, {56, 13}, {42, 13}, {28, 13}, {14, 13}, {0, 13}, {0, 26}, {14, 26}, {28, 26}, {42, 26}, {56, 26}, {71, 26}, {85, 26}, {99, 26}, {113, 26}, {127, 26}, {141, 26}, {155, 26}, {169, 26}, {184, 26}, {198, 26}, {212, 26}, {226, 26}, {169, 38}, {155, 38}, {141, 38}, {127, 38}, {113, 38}, {99, 38}, {85, 38}, {71, 38}, {56, 38}, {42, 38}, {28, 38}, {14, 38}, {0, 38}, {0, 51}, {28, 51}, {42, 51}, {56, 51}, {71, 51}, {85, 51}, {99, 51}, {113, 51}, {127, 51}, {141, 51}, {155, 51}, {169, 51}, {212, 51}, {226, 64}, {212, 64}, {184, 64}, {169, 64}, {155, 64}, {141, 64}, {127, 64}, {71, 64}, {28, 64}, {14, 64}, {0, 64}
+ }, {
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 1, 1, 1
+ }
+};
+#endif
diff --git a/keyboards/capsunlocked/cu80/v2/ansi/keyboard.json b/keyboards/capsunlocked/cu80/v2/ansi/keyboard.json
index fe38c3dff8..9dc24b5e40 100644
--- a/keyboards/capsunlocked/cu80/v2/ansi/keyboard.json
+++ b/keyboards/capsunlocked/cu80/v2/ansi/keyboard.json
@@ -2,96 +2,5 @@
"keyboard_name": "CU80 v2 ANSI",
"usb": {
"pid": "0x0081"
- },
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 28, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 42, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 56, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 71, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 85, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 99, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 113, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 127, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 141, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 155, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 169, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 184, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 198, "y": 0, "flags": 4},
- {"matrix": [0, 15], "x": 212, "y": 0, "flags": 8},
- {"matrix": [0, 16], "x": 224, "y": 0, "flags": 4},
- {"matrix": [1, 16], "x": 224, "y": 13, "flags": 4},
- {"matrix": [1, 15], "x": 212, "y": 13, "flags": 4},
- {"matrix": [1, 14], "x": 198, "y": 13, "flags": 4},
- {"matrix": [1, 13], "x": 184, "y": 13, "flags": 4},
- {"matrix": [1, 12], "x": 169, "y": 13, "flags": 4},
- {"matrix": [1, 11], "x": 155, "y": 13, "flags": 4},
- {"matrix": [1, 10], "x": 141, "y": 13, "flags": 4},
- {"matrix": [1, 9], "x": 127, "y": 13, "flags": 4},
- {"matrix": [1, 8], "x": 113, "y": 13, "flags": 4},
- {"matrix": [1, 7], "x": 99, "y": 13, "flags": 4},
- {"matrix": [1, 6], "x": 85, "y": 13, "flags": 4},
- {"matrix": [1, 5], "x": 71, "y": 13, "flags": 4},
- {"matrix": [1, 4], "x": 56, "y": 13, "flags": 4},
- {"matrix": [1, 3], "x": 42, "y": 13, "flags": 4},
- {"matrix": [1, 2], "x": 28, "y": 13, "flags": 4},
- {"matrix": [1, 1], "x": 14, "y": 13, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 13, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 26, "flags": 4},
- {"matrix": [2, 1], "x": 14, "y": 26, "flags": 4},
- {"matrix": [2, 2], "x": 28, "y": 26, "flags": 4},
- {"matrix": [2, 3], "x": 42, "y": 26, "flags": 4},
- {"matrix": [2, 4], "x": 56, "y": 26, "flags": 4},
- {"matrix": [2, 5], "x": 71, "y": 26, "flags": 4},
- {"matrix": [2, 6], "x": 85, "y": 26, "flags": 4},
- {"matrix": [2, 7], "x": 99, "y": 26, "flags": 4},
- {"matrix": [2, 8], "x": 113, "y": 26, "flags": 4},
- {"matrix": [2, 9], "x": 127, "y": 26, "flags": 4},
- {"matrix": [2, 10], "x": 141, "y": 26, "flags": 4},
- {"matrix": [2, 11], "x": 155, "y": 26, "flags": 4},
- {"matrix": [2, 12], "x": 169, "y": 26, "flags": 4},
- {"matrix": [2, 13], "x": 184, "y": 26, "flags": 4},
- {"matrix": [2, 14], "x": 198, "y": 26, "flags": 4},
- {"matrix": [2, 15], "x": 212, "y": 26, "flags": 4},
- {"matrix": [2, 16], "x": 224, "y": 26, "flags": 4},
- {"matrix": [3, 12], "x": 169, "y": 38, "flags": 4},
- {"matrix": [3, 11], "x": 155, "y": 38, "flags": 4},
- {"matrix": [3, 10], "x": 141, "y": 38, "flags": 4},
- {"matrix": [3, 9], "x": 127, "y": 38, "flags": 4},
- {"matrix": [3, 8], "x": 113, "y": 38, "flags": 4},
- {"matrix": [3, 7], "x": 99, "y": 38, "flags": 4},
- {"matrix": [3, 6], "x": 85, "y": 38, "flags": 4},
- {"matrix": [3, 5], "x": 71, "y": 38, "flags": 4},
- {"matrix": [3, 4], "x": 56, "y": 38, "flags": 4},
- {"matrix": [3, 3], "x": 42, "y": 38, "flags": 4},
- {"matrix": [3, 2], "x": 28, "y": 38, "flags": 4},
- {"matrix": [3, 1], "x": 14, "y": 38, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 38, "flags": 8},
- {"matrix": [4, 0], "x": 0, "y": 51, "flags": 1},
- {"matrix": [4, 2], "x": 28, "y": 51, "flags": 4},
- {"matrix": [4, 3], "x": 42, "y": 51, "flags": 4},
- {"matrix": [4, 4], "x": 56, "y": 51, "flags": 4},
- {"matrix": [4, 5], "x": 71, "y": 51, "flags": 4},
- {"matrix": [4, 6], "x": 85, "y": 51, "flags": 4},
- {"matrix": [4, 7], "x": 99, "y": 51, "flags": 4},
- {"matrix": [4, 8], "x": 113, "y": 51, "flags": 4},
- {"matrix": [4, 9], "x": 127, "y": 51, "flags": 4},
- {"matrix": [4, 10], "x": 141, "y": 51, "flags": 4},
- {"matrix": [4, 11], "x": 155, "y": 51, "flags": 4},
- {"matrix": [4, 12], "x": 169, "y": 51, "flags": 1},
- {"matrix": [4, 15], "x": 212, "y": 51, "flags": 4},
- {"matrix": [5, 16], "x": 224, "y": 64, "flags": 4},
- {"matrix": [5, 15], "x": 212, "y": 64, "flags": 4},
- {"matrix": [5, 13], "x": 184, "y": 64, "flags": 4},
- {"matrix": [5, 12], "x": 169, "y": 64, "flags": 1},
- {"matrix": [5, 11], "x": 155, "y": 64, "flags": 1},
- {"matrix": [5, 10], "x": 141, "y": 64, "flags": 1},
- {"matrix": [5, 9], "x": 127, "y": 64, "flags": 1},
- {"matrix": [5, 5], "x": 71, "y": 64, "flags": 4},
- {"matrix": [5, 2], "x": 28, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1},
- {"matrix": [5, 0], "x": 0, "y": 64, "flags": 1}
- ]
}
}
diff --git a/keyboards/capsunlocked/cu80/v2/iso/iso.c b/keyboards/capsunlocked/cu80/v2/iso/iso.c
new file mode 100644
index 0000000000..0e8e26e5dd
--- /dev/null
+++ b/keyboards/capsunlocked/cu80/v2/iso/iso.c
@@ -0,0 +1,20 @@
+// Copyright 2021 CapsUnlocked
+// SPDX-License-Identifier: GPL-2.0-or-later
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = {
+ {
+ {0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
+ {32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16},
+ {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49},
+ {62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, NO_LED, NO_LED, NO_LED, NO_LED},
+ {63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, NO_LED, NO_LED, 76, NO_LED},
+ {87, 86, 85, NO_LED, NO_LED, 84, NO_LED, NO_LED, NO_LED, 83, 82, 81, 80, 79, NO_LED, 78, 77}
+ }, {
+ {0, 0}, {28, 0}, {42, 0}, {56, 0}, {71, 0}, {85, 0}, {99, 0}, {113, 0}, {127, 0}, {141, 0}, {155, 0}, {169, 0}, {184, 0}, {198, 0}, {212, 0}, {226, 0}, {226, 26}, {212, 26}, {198, 26}, {184, 26}, {169, 26}, {155, 26}, {141, 26}, {127, 26}, {113, 26}, {99, 26}, {85, 26}, {71, 26}, {56, 26}, {42, 26}, {28, 26}, {14, 26}, {0, 26}, {0, 26}, {14, 26}, {28, 26}, {42, 26}, {56, 26}, {71, 26}, {85, 26}, {99, 26}, {113, 26}, {127, 26}, {141, 26}, {155, 26}, {169, 26}, {184, 26}, {198, 26}, {212, 26}, {226, 26}, {169, 38}, {155, 38}, {141, 38}, {127, 38}, {113, 38}, {99, 38}, {85, 38}, {71, 38}, {56, 38}, {42, 38}, {28, 38}, {14, 38}, {0, 38}, {0, 51}, {14, 51}, {28, 51}, {42, 51}, {56, 51}, {71, 51}, {85, 51}, {99, 51}, {113, 51}, {127, 51}, {141, 51}, {155, 51}, {169, 51}, {212, 51}, {226, 64}, {212, 64}, {184, 64}, {169, 64}, {155, 64}, {141, 64}, {127, 64}, {71, 64}, {28, 64}, {14, 64}, {0, 64}
+ }, {
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 1, 1, 1
+ }
+};
+#endif
diff --git a/keyboards/capsunlocked/cu80/v2/iso/keyboard.json b/keyboards/capsunlocked/cu80/v2/iso/keyboard.json
index b78b8af41e..33d49db64a 100644
--- a/keyboards/capsunlocked/cu80/v2/iso/keyboard.json
+++ b/keyboards/capsunlocked/cu80/v2/iso/keyboard.json
@@ -2,97 +2,5 @@
"keyboard_name": "CU80 v2 ISO",
"usb": {
"pid": "0x0083"
- },
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 28, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 42, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 56, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 71, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 85, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 99, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 113, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 127, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 141, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 155, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 169, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 184, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 198, "y": 0, "flags": 4},
- {"matrix": [0, 15], "x": 212, "y": 0, "flags": 8},
- {"matrix": [0, 16], "x": 224, "y": 0, "flags": 4},
- {"matrix": [1, 16], "x": 224, "y": 26, "flags": 4},
- {"matrix": [1, 15], "x": 212, "y": 26, "flags": 4},
- {"matrix": [1, 14], "x": 198, "y": 26, "flags": 4},
- {"matrix": [1, 13], "x": 184, "y": 26, "flags": 4},
- {"matrix": [1, 12], "x": 169, "y": 26, "flags": 4},
- {"matrix": [1, 11], "x": 155, "y": 26, "flags": 4},
- {"matrix": [1, 10], "x": 141, "y": 26, "flags": 4},
- {"matrix": [1, 9], "x": 127, "y": 26, "flags": 4},
- {"matrix": [1, 8], "x": 113, "y": 26, "flags": 4},
- {"matrix": [1, 7], "x": 99, "y": 26, "flags": 4},
- {"matrix": [1, 6], "x": 85, "y": 26, "flags": 4},
- {"matrix": [1, 5], "x": 71, "y": 26, "flags": 4},
- {"matrix": [1, 4], "x": 56, "y": 26, "flags": 4},
- {"matrix": [1, 3], "x": 42, "y": 26, "flags": 4},
- {"matrix": [1, 2], "x": 28, "y": 26, "flags": 4},
- {"matrix": [1, 1], "x": 14, "y": 26, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 26, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 26, "flags": 4},
- {"matrix": [2, 1], "x": 14, "y": 26, "flags": 4},
- {"matrix": [2, 2], "x": 28, "y": 26, "flags": 4},
- {"matrix": [2, 3], "x": 42, "y": 26, "flags": 4},
- {"matrix": [2, 4], "x": 56, "y": 26, "flags": 4},
- {"matrix": [2, 5], "x": 71, "y": 26, "flags": 4},
- {"matrix": [2, 6], "x": 85, "y": 26, "flags": 4},
- {"matrix": [2, 7], "x": 99, "y": 26, "flags": 4},
- {"matrix": [2, 8], "x": 113, "y": 26, "flags": 4},
- {"matrix": [2, 9], "x": 127, "y": 26, "flags": 4},
- {"matrix": [2, 10], "x": 141, "y": 26, "flags": 4},
- {"matrix": [2, 11], "x": 155, "y": 26, "flags": 4},
- {"matrix": [2, 12], "x": 169, "y": 26, "flags": 4},
- {"matrix": [2, 13], "x": 184, "y": 26, "flags": 4},
- {"matrix": [2, 14], "x": 198, "y": 26, "flags": 4},
- {"matrix": [2, 15], "x": 212, "y": 26, "flags": 4},
- {"matrix": [2, 16], "x": 224, "y": 26, "flags": 4},
- {"matrix": [3, 12], "x": 169, "y": 38, "flags": 4},
- {"matrix": [3, 11], "x": 155, "y": 38, "flags": 4},
- {"matrix": [3, 10], "x": 141, "y": 38, "flags": 4},
- {"matrix": [3, 9], "x": 127, "y": 38, "flags": 4},
- {"matrix": [3, 8], "x": 113, "y": 38, "flags": 4},
- {"matrix": [3, 7], "x": 99, "y": 38, "flags": 4},
- {"matrix": [3, 6], "x": 85, "y": 38, "flags": 4},
- {"matrix": [3, 5], "x": 71, "y": 38, "flags": 4},
- {"matrix": [3, 4], "x": 56, "y": 38, "flags": 4},
- {"matrix": [3, 3], "x": 42, "y": 38, "flags": 4},
- {"matrix": [3, 2], "x": 28, "y": 38, "flags": 4},
- {"matrix": [3, 1], "x": 14, "y": 38, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 38, "flags": 8},
- {"matrix": [4, 0], "x": 0, "y": 51, "flags": 1},
- {"matrix": [4, 1], "x": 14, "y": 51, "flags": 4},
- {"matrix": [4, 2], "x": 28, "y": 51, "flags": 4},
- {"matrix": [4, 3], "x": 42, "y": 51, "flags": 4},
- {"matrix": [4, 4], "x": 56, "y": 51, "flags": 4},
- {"matrix": [4, 5], "x": 71, "y": 51, "flags": 4},
- {"matrix": [4, 6], "x": 85, "y": 51, "flags": 4},
- {"matrix": [4, 7], "x": 99, "y": 51, "flags": 4},
- {"matrix": [4, 8], "x": 113, "y": 51, "flags": 4},
- {"matrix": [4, 9], "x": 127, "y": 51, "flags": 4},
- {"matrix": [4, 10], "x": 141, "y": 51, "flags": 4},
- {"matrix": [4, 11], "x": 155, "y": 51, "flags": 4},
- {"matrix": [4, 12], "x": 169, "y": 51, "flags": 1},
- {"matrix": [4, 15], "x": 212, "y": 51, "flags": 4},
- {"matrix": [5, 16], "x": 224, "y": 64, "flags": 4},
- {"matrix": [5, 15], "x": 212, "y": 64, "flags": 4},
- {"matrix": [5, 13], "x": 184, "y": 64, "flags": 4},
- {"matrix": [5, 12], "x": 169, "y": 64, "flags": 1},
- {"matrix": [5, 11], "x": 155, "y": 64, "flags": 1},
- {"matrix": [5, 10], "x": 141, "y": 64, "flags": 1},
- {"matrix": [5, 9], "x": 127, "y": 64, "flags": 1},
- {"matrix": [5, 5], "x": 71, "y": 64, "flags": 4},
- {"matrix": [5, 2], "x": 28, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1},
- {"matrix": [5, 0], "x": 0, "y": 64, "flags": 1}
- ]
}
}
diff --git a/keyboards/checkerboards/quark_lp/keyboard.json b/keyboards/checkerboards/quark_lp/keyboard.json
index 59666f8d69..7634a71d3e 100644
--- a/keyboards/checkerboards/quark_lp/keyboard.json
+++ b/keyboards/checkerboards/quark_lp/keyboard.json
@@ -32,59 +32,6 @@
"pixel_flow": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [3, 11], "x": 224, "y": 64, "flags": 1},
- {"matrix": [3, 10], "x": 204, "y": 64, "flags": 1},
- {"matrix": [3, 9], "x": 183, "y": 64, "flags": 1},
- {"matrix": [3, 8], "x": 163, "y": 64, "flags": 1},
- {"x": 153, "y": 64, "flags": 1},
- {"matrix": [3, 7], "x": 143, "y": 64, "flags": 1},
- {"x": 133, "y": 64, "flags": 1},
- {"matrix": [3, 6], "x": 123, "y": 64, "flags": 1},
- {"x": 113, "y": 64, "flags": 1},
- {"matrix": [3, 5], "x": 102, "y": 64, "flags": 1},
- {"matrix": [3, 4], "x": 82, "y": 64, "flags": 1},
- {"matrix": [3, 3], "x": 61, "y": 64, "flags": 1},
- {"matrix": [3, 2], "x": 41, "y": 64, "flags": 1},
- {"matrix": [3, 1], "x": 21, "y": 64, "flags": 1},
- {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1},
- {"matrix": [2, 0], "x": 0, "y": 43, "flags": 1},
- {"matrix": [2, 1], "x": 21, "y": 43, "flags": 4},
- {"matrix": [2, 2], "x": 41, "y": 43, "flags": 4},
- {"matrix": [2, 3], "x": 61, "y": 43, "flags": 4},
- {"matrix": [2, 4], "x": 82, "y": 43, "flags": 4},
- {"matrix": [2, 5], "x": 102, "y": 43, "flags": 4},
- {"matrix": [2, 6], "x": 123, "y": 43, "flags": 4},
- {"matrix": [2, 7], "x": 143, "y": 43, "flags": 4},
- {"matrix": [2, 8], "x": 163, "y": 43, "flags": 4},
- {"matrix": [2, 9], "x": 183, "y": 43, "flags": 4},
- {"matrix": [2, 10], "x": 204, "y": 43, "flags": 4},
- {"matrix": [2, 11], "x": 224, "y": 43, "flags": 1},
- {"matrix": [1, 11], "x": 224, "y": 21, "flags": 1},
- {"matrix": [1, 10], "x": 204, "y": 21, "flags": 4},
- {"matrix": [1, 9], "x": 183, "y": 21, "flags": 4},
- {"matrix": [1, 8], "x": 163, "y": 21, "flags": 4},
- {"matrix": [1, 7], "x": 143, "y": 21, "flags": 4},
- {"matrix": [1, 6], "x": 123, "y": 21, "flags": 4},
- {"matrix": [1, 5], "x": 102, "y": 21, "flags": 4},
- {"matrix": [1, 4], "x": 82, "y": 21, "flags": 4},
- {"matrix": [1, 3], "x": 61, "y": 21, "flags": 4},
- {"matrix": [1, 2], "x": 41, "y": 21, "flags": 4},
- {"matrix": [1, 1], "x": 21, "y": 21, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 21, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 41, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 82, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 102, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 123, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 143, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 163, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 183, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 204, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 224, "y": 0, "flags": 1}
- ],
"max_brightness": 125,
"sat_steps": 8,
"val_steps": 8,
diff --git a/keyboards/checkerboards/quark_lp/quark_lp.c b/keyboards/checkerboards/quark_lp/quark_lp.c
new file mode 100644
index 0000000000..89c685f2b5
--- /dev/null
+++ b/keyboards/checkerboards/quark_lp/quark_lp.c
@@ -0,0 +1,39 @@
+/* Copyright 2021 Nathan Spears
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50 },
+ { 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 },
+ { 14, 13, 12, 11, 10, 9, 7, 5, 3, 2, 1, 0 }
+}, {
+ // LED Index to Physical Position
+ { 244, 0 }, { 224, 0 }, { 203, 0 }, { 183, 0 }, { 173, 0 }, { 163, 0 }, { 153, 0 }, { 143, 0 }, { 133, 0 }, { 122, 0 }, { 102, 0 }, { 81, 0 }, { 61, 0 }, { 41, 0 }, { 20, 0 },
+ { 20, 21 }, { 41, 21 }, { 61, 21 }, { 81, 21 }, { 102, 21 }, { 122, 21 }, { 143, 21 }, { 163, 21 }, { 183, 21 }, { 203, 21 }, { 224, 21 }, { 244, 21 },
+ { 244, 43 }, { 224, 43 }, { 203, 43 }, { 183, 43 }, { 163, 43 }, { 143, 43 }, { 122, 43 }, { 102, 43 }, { 81, 43 }, { 61, 43 }, { 41, 43 }, { 20, 43 },
+ { 20, 64 }, { 41, 64 }, { 61, 64 }, { 81, 64 }, { 102, 64 }, { 112, 64 }, { 122, 64 }, { 132, 64 }, { 143, 64 }, { 153, 64 }, { 163, 64 }, { 183, 64 }
+}, {
+ // LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1
+} };
+#endif
diff --git a/keyboards/cherrybstudio/cb87rgb/cb87rgb.c b/keyboards/cherrybstudio/cb87rgb/cb87rgb.c
index 40ef6d6506..5c2480f3fb 100644
--- a/keyboards/cherrybstudio/cb87rgb/cb87rgb.c
+++ b/keyboards/cherrybstudio/cb87rgb/cb87rgb.c
@@ -13,7 +13,41 @@ along with this program. If not, see .
#include "quantum.h"
+//x = 224 / (NUMBER_OF_COLS - 1) * COL_POSITION
+//y = 64 / (NUMBER_OF_ROWS - 1) * ROW_POSITION
+
#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },
+ { 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 },
+ { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39 },
+ { 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 },
+ { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59 },
+ { 60, 61, 62, 63, 64, 65, 66, 67, 68, 69 },
+ { 70, 71, 72, 73, 74, 75, 76, 77, 78, 79 },
+ { 80, 81, 82, 83, 84, 85, 86, 87, 88, 89 },
+ { 90, 91, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }
+}, {
+ // LED Index to Physical Position
+ { 0, 0 }, { 13, 0 }, { 26, 0 }, { 39, 0 }, { 52, 0 }, { 65, 0 }, { 78, 0 }, { 91, 0 }, { 104, 0 }, { 117, 0 }, { 130, 0 }, { 143, 0 }, { 156, 0 }, { 195, 0 }, { 208, 0 }, { 224, 0 },
+ { 0, 12 }, { 13, 12 }, { 26, 12 }, { 39, 12 }, { 52, 12 }, { 65, 12 }, { 78, 12 }, { 91, 12 }, { 104, 12 }, { 117, 12 }, { 130, 12 }, { 143, 12 }, { 156, 12 }, { 169, 12 }, { 182, 24 }, { 195, 12 }, { 208, 12 }, { 224, 12 },
+ { 0, 24 }, { 13, 24 }, { 26, 24 }, { 39, 24 }, { 52, 24 }, { 65, 24 }, { 78, 24 }, { 91, 24 }, { 104, 24 }, { 117, 24 }, { 130, 24 }, { 143, 24 }, { 156, 24 }, { 169, 24 }, { 195, 24 }, { 208, 24 }, { 224, 24 },
+ { 0, 36 }, { 13, 36 }, { 26, 36 }, { 39, 36 }, { 52, 36 }, { 65, 36 }, { 78, 36 }, { 91, 36 }, { 104, 36 }, { 117, 36 }, { 130, 36 }, { 143, 36 }, { 156, 36 }, { 169, 36 },
+ { 0, 48 }, { 13, 48 }, { 26, 48 }, { 39, 48 }, { 52, 48 }, { 65, 48 }, { 78, 48 }, { 91, 48 }, { 104, 48 }, { 117, 48 }, { 130, 48 }, { 143, 48 }, { 156, 48 }, { 169, 48 }, { 208, 48 },
+ { 0, 64 }, { 13, 64 }, { 26, 64 }, { 78, 64 }, { 130, 64 }, { 143, 64 }, { 156, 64 }, { 169, 64 }, { 195, 64 }, { 208, 64 }, { 224, 64 }, { 182, 0 }
+}, {
+ // LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
+
+} };
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/cherrybstudio/cb87rgb/keyboard.json b/keyboards/cherrybstudio/cb87rgb/keyboard.json
index 710bc2ab50..1ce2fab78f 100644
--- a/keyboards/cherrybstudio/cb87rgb/keyboard.json
+++ b/keyboards/cherrybstudio/cb87rgb/keyboard.json
@@ -53,100 +53,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 13, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 26, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 39, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 52, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 65, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 78, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 91, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 104, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 117, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 130, "y": 0, "flags": 1},
- {"matrix": [1, 1], "x": 143, "y": 0, "flags": 1},
- {"matrix": [1, 2], "x": 156, "y": 0, "flags": 1},
- {"matrix": [1, 3], "x": 195, "y": 0, "flags": 1},
- {"matrix": [1, 4], "x": 208, "y": 0, "flags": 1},
- {"matrix": [1, 5], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 6], "x": 0, "y": 12, "flags": 1},
- {"matrix": [1, 7], "x": 13, "y": 12, "flags": 1},
- {"matrix": [1, 8], "x": 26, "y": 12, "flags": 1},
- {"matrix": [1, 9], "x": 39, "y": 12, "flags": 1},
- {"matrix": [2, 0], "x": 52, "y": 12, "flags": 1},
- {"matrix": [2, 1], "x": 65, "y": 12, "flags": 1},
- {"matrix": [2, 2], "x": 78, "y": 12, "flags": 1},
- {"matrix": [2, 3], "x": 91, "y": 12, "flags": 1},
- {"matrix": [2, 4], "x": 104, "y": 12, "flags": 1},
- {"matrix": [2, 5], "x": 117, "y": 12, "flags": 1},
- {"matrix": [2, 6], "x": 130, "y": 12, "flags": 1},
- {"matrix": [2, 7], "x": 143, "y": 12, "flags": 1},
- {"matrix": [2, 8], "x": 156, "y": 12, "flags": 1},
- {"matrix": [2, 9], "x": 169, "y": 12, "flags": 1},
- {"matrix": [3, 0], "x": 182, "y": 24, "flags": 1},
- {"matrix": [3, 1], "x": 195, "y": 12, "flags": 1},
- {"matrix": [3, 2], "x": 208, "y": 12, "flags": 1},
- {"matrix": [3, 3], "x": 224, "y": 12, "flags": 1},
- {"matrix": [3, 4], "x": 0, "y": 24, "flags": 1},
- {"matrix": [3, 5], "x": 13, "y": 24, "flags": 1},
- {"matrix": [3, 6], "x": 26, "y": 24, "flags": 1},
- {"matrix": [3, 7], "x": 39, "y": 24, "flags": 1},
- {"matrix": [3, 8], "x": 52, "y": 24, "flags": 1},
- {"matrix": [3, 9], "x": 65, "y": 24, "flags": 1},
- {"matrix": [4, 0], "x": 78, "y": 24, "flags": 1},
- {"matrix": [4, 1], "x": 91, "y": 24, "flags": 1},
- {"matrix": [4, 2], "x": 104, "y": 24, "flags": 1},
- {"matrix": [4, 3], "x": 117, "y": 24, "flags": 1},
- {"matrix": [4, 4], "x": 130, "y": 24, "flags": 1},
- {"matrix": [4, 5], "x": 143, "y": 24, "flags": 1},
- {"matrix": [4, 6], "x": 156, "y": 24, "flags": 1},
- {"matrix": [4, 7], "x": 169, "y": 24, "flags": 1},
- {"matrix": [4, 8], "x": 195, "y": 24, "flags": 1},
- {"matrix": [4, 9], "x": 208, "y": 24, "flags": 1},
- {"matrix": [5, 0], "x": 224, "y": 24, "flags": 1},
- {"matrix": [5, 1], "x": 0, "y": 36, "flags": 1},
- {"matrix": [5, 2], "x": 13, "y": 36, "flags": 1},
- {"matrix": [5, 3], "x": 26, "y": 36, "flags": 1},
- {"matrix": [5, 4], "x": 39, "y": 36, "flags": 1},
- {"matrix": [5, 5], "x": 52, "y": 36, "flags": 1},
- {"matrix": [5, 6], "x": 65, "y": 36, "flags": 1},
- {"matrix": [5, 7], "x": 78, "y": 36, "flags": 1},
- {"matrix": [5, 8], "x": 91, "y": 36, "flags": 1},
- {"matrix": [5, 9], "x": 104, "y": 36, "flags": 1},
- {"matrix": [6, 0], "x": 117, "y": 36, "flags": 1},
- {"matrix": [6, 1], "x": 130, "y": 36, "flags": 1},
- {"matrix": [6, 2], "x": 143, "y": 36, "flags": 1},
- {"matrix": [6, 3], "x": 156, "y": 36, "flags": 1},
- {"matrix": [6, 4], "x": 169, "y": 36, "flags": 1},
- {"matrix": [6, 5], "x": 0, "y": 48, "flags": 1},
- {"matrix": [6, 6], "x": 13, "y": 48, "flags": 1},
- {"matrix": [6, 7], "x": 26, "y": 48, "flags": 1},
- {"matrix": [6, 8], "x": 39, "y": 48, "flags": 1},
- {"matrix": [6, 9], "x": 52, "y": 48, "flags": 1},
- {"matrix": [7, 0], "x": 65, "y": 48, "flags": 1},
- {"matrix": [7, 1], "x": 78, "y": 48, "flags": 1},
- {"matrix": [7, 2], "x": 91, "y": 48, "flags": 1},
- {"matrix": [7, 3], "x": 104, "y": 48, "flags": 1},
- {"matrix": [7, 4], "x": 117, "y": 48, "flags": 1},
- {"matrix": [7, 5], "x": 130, "y": 48, "flags": 1},
- {"matrix": [7, 6], "x": 143, "y": 48, "flags": 1},
- {"matrix": [7, 7], "x": 156, "y": 48, "flags": 1},
- {"matrix": [7, 8], "x": 169, "y": 48, "flags": 1},
- {"matrix": [7, 9], "x": 208, "y": 48, "flags": 1},
- {"matrix": [8, 0], "x": 0, "y": 64, "flags": 1},
- {"matrix": [8, 1], "x": 13, "y": 64, "flags": 1},
- {"matrix": [8, 2], "x": 26, "y": 64, "flags": 1},
- {"matrix": [8, 3], "x": 78, "y": 64, "flags": 1},
- {"matrix": [8, 4], "x": 130, "y": 64, "flags": 1},
- {"matrix": [8, 5], "x": 143, "y": 64, "flags": 1},
- {"matrix": [8, 6], "x": 156, "y": 64, "flags": 1},
- {"matrix": [8, 7], "x": 169, "y": 64, "flags": 1},
- {"matrix": [8, 8], "x": 195, "y": 64, "flags": 1},
- {"matrix": [8, 9], "x": 208, "y": 64, "flags": 1},
- {"matrix": [9, 0], "x": 224, "y": 64, "flags": 1},
- {"matrix": [9, 1], "x": 182, "y": 0, "flags": 1}
- ],
"max_brightness": 200,
"sleep": true
},
diff --git a/keyboards/chew/mono/config.h b/keyboards/chew/mono/config.h
new file mode 100644
index 0000000000..bb047c0adf
--- /dev/null
+++ b/keyboards/chew/mono/config.h
@@ -0,0 +1,8 @@
+// Copyright 2024 Florent (@FLinguenheld)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+/* Flash */
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // In ms in which the double tap can occur
diff --git a/keyboards/chew/split/config.h b/keyboards/chew/split/config.h
new file mode 100644
index 0000000000..bb047c0adf
--- /dev/null
+++ b/keyboards/chew/split/config.h
@@ -0,0 +1,8 @@
+// Copyright 2024 Florent (@FLinguenheld)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+/* Flash */
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // In ms in which the double tap can occur
diff --git a/keyboards/concreteflowers/cor_tkl/cor_tkl.c b/keyboards/concreteflowers/cor_tkl/cor_tkl.c
index a90931439b..d4f0ec0082 100644
--- a/keyboards/concreteflowers/cor_tkl/cor_tkl.c
+++ b/keyboards/concreteflowers/cor_tkl/cor_tkl.c
@@ -16,6 +16,22 @@
#include "quantum.h"
+led_config_t g_led_config = {{
+ // Key Matrix to LED Index
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 1, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { 0, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }
+}, {
+ // LED Index to Physical Position
+ { 5, 40 }, { 211, 0 }
+}, {
+ // LED Index to Flag
+ LED_FLAG_INDICATOR, LED_FLAG_INDICATOR
+}};
+
bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) {
return false;
diff --git a/keyboards/concreteflowers/cor_tkl/keyboard.json b/keyboards/concreteflowers/cor_tkl/keyboard.json
index ccdd0935fa..d5a293eaa3 100644
--- a/keyboards/concreteflowers/cor_tkl/keyboard.json
+++ b/keyboards/concreteflowers/cor_tkl/keyboard.json
@@ -32,11 +32,7 @@
"rows": ["GP0", "GP1", "GP2", "GP21", "GP3", "GP4"]
},
"rgb_matrix": {
- "driver": "ws2812",
- "layout": [
- {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8},
- {"matrix": [0, 15], "x": 211, "y": 0, "flags": 8}
- ]
+ "driver": "ws2812"
},
"ws2812": {
"pin": "GP19",
diff --git a/keyboards/cornia/config.h b/keyboards/cornia/config.h
index 8aff7e6336..dbf7031b62 100644
--- a/keyboards/cornia/config.h
+++ b/keyboards/cornia/config.h
@@ -25,3 +25,6 @@
#define I2C_DRIVER I2CD1
#define I2C1_SDA_PIN GP10
#define I2C1_SCL_PIN GP11
+
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // Timeout window in ms in which the double tap can occur.
\ No newline at end of file
diff --git a/keyboards/cornifi/config.h b/keyboards/cornifi/config.h
new file mode 100644
index 0000000000..36750714de
--- /dev/null
+++ b/keyboards/cornifi/config.h
@@ -0,0 +1,14 @@
+// Copyright 2024-2025 QMK
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+#pragma once
+
+#define SERIAL_USART_FULL_DUPLEX
+#define SERIAL_USART_TX_PIN GP12
+#define SERIAL_USART_RX_PIN GP13
+#define USB_VBUS_PIN GP24
+
+/* RP2040- and hardware-specific config */
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
+#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64
diff --git a/keyboards/cornifi/keyboard.json b/keyboards/cornifi/keyboard.json
new file mode 100644
index 0000000000..68e062ad33
--- /dev/null
+++ b/keyboards/cornifi/keyboard.json
@@ -0,0 +1,96 @@
+{
+ "manufacturer": "v3lmx",
+ "keyboard_name": "cornifi",
+ "maintainer": "v3lmx",
+ "bootloader": "rp2040",
+ "diode_direction": "COL2ROW",
+ "features": {
+ "bootmagic": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true
+ },
+ "matrix_pins": {
+ "direct": [
+ ["GP21", "GP25", "GP26", "GP28", "GP29", "GP5"],
+ ["GP20", "GP22", "GP27", "GP2", "GP3", "GP8"],
+ ["GP19", "GP23", "GP1", "GP0", "GP4", null],
+ [null, null, "GP16", "GP17", "GP18", null]
+ ]
+ },
+ "processor": "RP2040",
+ "split": {
+ "bootmagic": {
+ "matrix": [4, 0]
+ },
+ "enabled": true,
+ "matrix_pins": {
+ "right": {
+ "direct": [
+ ["GP9", "GP8", "GP4", "GP3", "GP2", "GP25"],
+ ["GP10", "GP6", "GP1", "GP28", "GP27", "GP21"],
+ ["GP11", "GP5", "GP0", "GP29", "GP26", null],
+ [null, null, "GP16", "GP17", "GP18", null]
+ ]
+ }
+ },
+ "serial": {
+ "driver": "vendor"
+ }
+ },
+ "url": "https://github.com/v3lmx/cornifi",
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x0000",
+ "vid": "0xFEED"
+ },
+ "layout_aliases": {
+ "LAYOUT": "LAYOUT_split_3x5_3_ex2"
+ },
+ "layouts": {
+ "LAYOUT_split_3x5_3_ex2": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0.9},
+ {"matrix": [0, 1], "x": 1, "y": 0.3},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0.35},
+ {"matrix": [0, 4], "x": 4, "y": 0.45},
+ {"matrix": [0, 5], "x": 5, "y": 0.7},
+ {"matrix": [4, 5], "x": 8, "y": 0.7},
+ {"matrix": [4, 4], "x": 9, "y": 0.45},
+ {"matrix": [4, 3], "x": 10, "y": 0.35},
+ {"matrix": [4, 2], "x": 11, "y": 0},
+ {"matrix": [4, 1], "x": 12, "y": 0.3},
+ {"matrix": [4, 0], "x": 13, "y": 0.9},
+ {"matrix": [1, 0], "x": 0, "y": 1.9},
+ {"matrix": [1, 1], "x": 1, "y": 1.3},
+ {"matrix": [1, 2], "x": 2, "y": 1},
+ {"matrix": [1, 3], "x": 3, "y": 1.35},
+ {"matrix": [1, 4], "x": 4, "y": 1.45},
+ {"matrix": [1, 5], "x": 5, "y": 1.7},
+ {"matrix": [5, 5], "x": 8, "y": 1.7},
+ {"matrix": [5, 4], "x": 9, "y": 1.45},
+ {"matrix": [5, 3], "x": 10, "y": 1.35},
+ {"matrix": [5, 2], "x": 11, "y": 1},
+ {"matrix": [5, 1], "x": 12, "y": 1.3},
+ {"matrix": [5, 0], "x": 13, "y": 1.9},
+ {"matrix": [2, 0], "x": 0, "y": 2.9},
+ {"matrix": [2, 1], "x": 1, "y": 2.3},
+ {"matrix": [2, 2], "x": 2, "y": 2},
+ {"matrix": [2, 3], "x": 3, "y": 2.35},
+ {"matrix": [2, 4], "x": 4, "y": 2.45},
+ {"matrix": [6, 4], "x": 9, "y": 2.45},
+ {"matrix": [6, 3], "x": 10, "y": 2.35},
+ {"matrix": [6, 2], "x": 11, "y": 2},
+ {"matrix": [6, 1], "x": 12, "y": 2.3},
+ {"matrix": [6, 0], "x": 13, "y": 2.9},
+ {"matrix": [3, 2], "x": 3, "y": 3.7},
+ {"matrix": [3, 3], "x": 4, "y": 3.7},
+ {"matrix": [3, 4], "x": 5, "y": 3.2, "h": 1.5},
+ {"matrix": [7, 4], "x": 8, "y": 3.2, "h": 1.5},
+ {"matrix": [7, 3], "x": 9, "y": 3.7},
+ {"matrix": [7, 2], "x": 10, "y": 3.7}
+ ]
+ }
+ }
+}
diff --git a/keyboards/cornifi/keymaps/default/keymap.c b/keyboards/cornifi/keymaps/default/keymap.c
new file mode 100644
index 0000000000..207db11738
--- /dev/null
+++ b/keyboards/cornifi/keymaps/default/keymap.c
@@ -0,0 +1,27 @@
+// Copyright 2025 @v3lmx
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ // clang-format off
+ [0] = LAYOUT_split_3x5_3_ex2(
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P,
+ KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, XXXXXXX, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,
+ KC_ESC, MO(1), KC_TAB, KC_ENT, MO(2), KC_BSPC
+ ),
+ [1] = LAYOUT_split_3x5_3_ex2(
+ KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0,
+ XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,_______, _______, KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT,XXXXXXX,
+ XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,
+ KC_LGUI,_______,KC_SPC, KC_ENT, XXXXXXX, KC_RALT
+ ),
+ [2] = LAYOUT_split_3x5_3_ex2(
+ KC_EXLM, KC_AT,KC_HASH, KC_DLR, KC_PERC,_______, _______, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,
+ XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,_______, _______, KC_MINS,KC_EQL, KC_LBRC,KC_RBRC,KC_BSLS,
+ XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, KC_UNDS,KC_PLUS,KC_LCBR,KC_RCBR,KC_PIPE,
+ KC_LGUI,XXXXXXX, KC_SPC, KC_ENT, _______,KC_RALT
+ )
+ // clang-format on
+};
diff --git a/keyboards/cornifi/readme.md b/keyboards/cornifi/readme.md
new file mode 100644
index 0000000000..3c4022e5ac
--- /dev/null
+++ b/keyboards/cornifi/readme.md
@@ -0,0 +1,32 @@
+# cornifi
+
+
+
+The cornifi keyboard is a split keyboard based on the [corne](https://github.com/foostan/crkbd) with the physical layout of the [fifi](https://github.com/raychengy/fifi_split_keeb).
+
+* Keyboard Maintainer: [v3lmx (github)](https://github.com/v3lmx)
+* Hardware Availability: [v3lmx/cornifi (github)](https://github.com/v3lmx/cornifi)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make cornifi:default
+
+Flashing example for this keyboard:
+
+ make cornifi:default:flash
+
+See 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).
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
+* **Physical reset button**: Hold down the `boot` button and press the `reset` button
+* **Keycode in layout**: Press the key mapped to `TD_BOOT` twice if it is available
+
+## Keymap
+
+It is recommended to make your own keymap using the [external userspace feature(https://docs.qmk.fm/newbs_external_userspace).
+
+You can find an example here: [v3lmx qmk userspace](https://github.com/v3lmx/qmk_userspace)
diff --git a/keyboards/cxt_studio/12e3/keyboard.json b/keyboards/cxt_studio/12e3/keyboard.json
index 0b8949cda7..a85126aab6 100644
--- a/keyboards/cxt_studio/12e3/keyboard.json
+++ b/keyboards/cxt_studio/12e3/keyboard.json
@@ -21,8 +21,8 @@
},
"encoder": {
"rotary": [
- {"pin_a": "F5", "pin_b": "F6"},
- {"pin_a": "E6", "pin_b": "F0"},
+ {"pin_a": "F5", "pin_b": "F6", "resolution": 4},
+ {"pin_a": "E6", "pin_b": "F0", "resolution": 4},
{"pin_a": "B3", "pin_b": "B2", "resolution": 2}
]
},
diff --git a/keyboards/deng/djam/djam.c b/keyboards/deng/djam/djam.c
new file mode 100644
index 0000000000..3514ff050c
--- /dev/null
+++ b/keyboards/deng/djam/djam.c
@@ -0,0 +1,43 @@
+/* Copyright 2022 Leo Deng (@myst729)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = {
+ {
+ /* Key Matrix to LED Index */
+ { 17, 16, 15, NO_LED, NO_LED, 7, 6, 5 },
+ { 21, 17, 16, 15, 7, 6, 5, 1 },
+ { 19, 18, 13, 11, 9, 4, 3, NO_LED }
+ },
+ {
+ /* LED Index to Physical Position */
+ // Switch LEDs
+ {224,14}, {224,24}, {224,33}, {212,57}, {192,57}, {192,38}, {172,38}, {152,38},
+ {152,57}, {142,57}, {132,57}, {112,57}, {92,57}, {82,57}, {72,57},
+ {72,38}, {52,38}, {32,38}, {32,57}, {12,57}, {0,33}, {0,24}, {0,14},
+ // Underglow LEDs
+ {0,0}, {92,0}, {132,0}, {224,0}, {222,64}, {172,64}, {72,64}, {2,64},
+ },
+ {
+ /* LED Index to Flag */
+ 2, 4, 2, 4, 4, 4, 4, 4,
+ 2, 4, 2, 4, 2, 4, 2,
+ 4, 4, 4, 4, 4, 2, 4, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2
+ }
+};
+#endif
diff --git a/keyboards/deng/djam/keyboard.json b/keyboards/deng/djam/keyboard.json
index 51b2f45ce7..a39c234bfa 100644
--- a/keyboards/deng/djam/keyboard.json
+++ b/keyboards/deng/djam/keyboard.json
@@ -15,40 +15,7 @@
"solid_reactive_multinexus": true,
"solid_multisplash": true
},
- "driver": "ws2812",
- "layout": [
- {"x": 224, "y": 14, "flags": 2},
- {"matrix": [1, 7], "x": 224, "y": 24, "flags": 4},
- {"x": 224, "y": 33, "flags": 2},
- {"matrix": [2, 6], "x": 212, "y": 57, "flags": 4},
- {"matrix": [2, 5], "x": 192, "y": 57, "flags": 4},
- {"matrix": [1, 6], "x": 192, "y": 38, "flags": 4},
- {"matrix": [1, 5], "x": 172, "y": 38, "flags": 4},
- {"matrix": [1, 4], "x": 152, "y": 38, "flags": 4},
- {"x": 152, "y": 57, "flags": 2},
- {"matrix": [2, 4], "x": 142, "y": 57, "flags": 4},
- {"x": 132, "y": 57, "flags": 2},
- {"matrix": [2, 3], "x": 112, "y": 57, "flags": 4},
- {"x": 92, "y": 57, "flags": 2},
- {"matrix": [2, 2], "x": 82, "y": 57, "flags": 4},
- {"x": 72, "y": 57, "flags": 2},
- {"matrix": [1, 3], "x": 72, "y": 38, "flags": 4},
- {"matrix": [1, 2], "x": 52, "y": 38, "flags": 4},
- {"matrix": [1, 1], "x": 32, "y": 38, "flags": 4},
- {"matrix": [2, 1], "x": 32, "y": 57, "flags": 4},
- {"matrix": [2, 0], "x": 12, "y": 57, "flags": 4},
- {"x": 0, "y": 33, "flags": 2},
- {"matrix": [1, 0], "x": 0, "y": 24, "flags": 4},
- {"x": 0, "y": 14, "flags": 2},
- {"x": 0, "y": 0, "flags": 2},
- {"x": 92, "y": 0, "flags": 2},
- {"x": 132, "y": 0, "flags": 2},
- {"x": 224, "y": 0, "flags": 2},
- {"x": 222, "y": 64, "flags": 2},
- {"x": 172, "y": 64, "flags": 2},
- {"x": 72, "y": 64, "flags": 2},
- {"x": 2, "y": 64, "flags": 2}
- ]
+ "driver": "ws2812"
},
"features": {
"backlight": true,
diff --git a/keyboards/deng/thirty/keyboard.json b/keyboards/deng/thirty/keyboard.json
index 394d7b427b..da36ae19f5 100644
--- a/keyboards/deng/thirty/keyboard.json
+++ b/keyboards/deng/thirty/keyboard.json
@@ -57,38 +57,6 @@
"animation": "cycle_all"
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 4, "y": 4, "flags": 4},
- {"matrix": [0, 1], "x": 28, "y": 4, "flags": 4},
- {"matrix": [0, 2], "x": 52, "y": 4, "flags": 4},
- {"matrix": [0, 3], "x": 76, "y": 4, "flags": 4},
- {"matrix": [0, 4], "x": 100, "y": 4, "flags": 4},
- {"matrix": [1, 4], "x": 100, "y": 32, "flags": 4},
- {"matrix": [1, 3], "x": 76, "y": 32, "flags": 4},
- {"matrix": [1, 2], "x": 52, "y": 32, "flags": 4},
- {"matrix": [1, 1], "x": 28, "y": 32, "flags": 4},
- {"matrix": [1, 0], "x": 4, "y": 32, "flags": 4},
- {"matrix": [2, 0], "x": 4, "y": 60, "flags": 4},
- {"matrix": [2, 1], "x": 28, "y": 60, "flags": 4},
- {"matrix": [2, 2], "x": 52, "y": 60, "flags": 4},
- {"matrix": [2, 3], "x": 76, "y": 60, "flags": 4},
- {"matrix": [2, 4], "x": 100, "y": 60, "flags": 4},
- {"matrix": [5, 4], "x": 124, "y": 60, "flags": 4},
- {"matrix": [5, 3], "x": 148, "y": 60, "flags": 4},
- {"matrix": [5, 2], "x": 172, "y": 60, "flags": 4},
- {"matrix": [5, 1], "x": 196, "y": 60, "flags": 4},
- {"matrix": [5, 0], "x": 220, "y": 60, "flags": 4},
- {"matrix": [4, 0], "x": 220, "y": 32, "flags": 4},
- {"matrix": [4, 1], "x": 196, "y": 32, "flags": 4},
- {"matrix": [4, 2], "x": 172, "y": 32, "flags": 4},
- {"matrix": [4, 3], "x": 148, "y": 32, "flags": 4},
- {"matrix": [4, 4], "x": 124, "y": 32, "flags": 4},
- {"matrix": [3, 4], "x": 124, "y": 4, "flags": 4},
- {"matrix": [3, 3], "x": 148, "y": 4, "flags": 4},
- {"matrix": [3, 2], "x": 172, "y": 4, "flags": 4},
- {"matrix": [3, 1], "x": 196, "y": 4, "flags": 4},
- {"matrix": [3, 0], "x": 220, "y": 4, "flags": 4}
- ],
"max_brightness": 200
},
"matrix_pins": {
diff --git a/keyboards/deng/thirty/thirty.c b/keyboards/deng/thirty/thirty.c
index ce7a76c703..7d49bc1b03 100644
--- a/keyboards/deng/thirty/thirty.c
+++ b/keyboards/deng/thirty/thirty.c
@@ -15,6 +15,38 @@
*/
#include "quantum.h"
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = {
+ {
+ /* Key Matrix to LED Index */
+ { 0, 1, 2, 3, 4 },
+ { 9, 8, 7, 6, 5 },
+ { 10, 11, 12, 13, 14 },
+ { 29, 28, 27, 26, 25 },
+ { 20, 21, 22, 23, 24 },
+ { 19, 18, 17, 16, 15 },
+ },
+ {
+ /* LED Index to Physical Position */
+ // Switch LEDs
+ {4,4}, {28,4}, {52,4}, {76,4}, {100,4},
+ {100,32}, {76,32}, {52,32}, {28,32}, {4,32},
+ {4,60}, {28,60}, {52,60}, {76,60}, {100,60},
+ {124,60}, {148,60}, {172,60}, {196,60}, {220,60},
+ {220,32}, {196,32}, {172,32}, {148,32}, {124,32},
+ {124,4}, {148,4}, {172,4}, {196,4}, {220,4},
+ // Underglow LEDs
+ },
+ {
+ /* LED Index to Flag */
+ 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, 4, 4, 4, 4, 4
+ }
+};
+
+#endif
+
void board_init(void) {
// Remap B11 AF to TIM2_CH4
AFIO->MAPR |= AFIO_MAPR_TIM2_REMAP_PARTIALREMAP2;
diff --git a/keyboards/doio/kb03/keyboard.json b/keyboards/doio/kb03/keyboard.json
index a3e77369fc..d2a214c92f 100644
--- a/keyboards/doio/kb03/keyboard.json
+++ b/keyboards/doio/kb03/keyboard.json
@@ -6,7 +6,7 @@
"diode_direction": "COL2ROW",
"encoder": {
"rotary": [
- {"pin_a": "B5", "pin_b": "B6"},
+ {"pin_a": "B5", "pin_b": "B6", "resolution": 4},
{"pin_a": "A2", "pin_b": "A1", "resolution": 2}
]
},
diff --git a/keyboards/doro67/rgb/keyboard.json b/keyboards/doro67/rgb/keyboard.json
index 46f1d775ab..de95db63d6 100644
--- a/keyboards/doro67/rgb/keyboard.json
+++ b/keyboards/doro67/rgb/keyboard.json
@@ -51,76 +51,7 @@
"solid_splash": true,
"solid_multisplash": true
},
- "driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 11, "y": 32, "flags": 1},
- {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 18, "y": 48, "flags": 1},
- {"matrix": [3, 2], "x": 30, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 45, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 60, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 75, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 90, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 105, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 120, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 135, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 150, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 165, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 191, "y": 48, "flags": 1},
- {"matrix": [3, 13], "x": 210, "y": 48, "flags": 1},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1},
- {"matrix": [4, 3], "x": 101, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 195, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
- ]
+ "driver": "ws2812"
},
"features": {
"bootmagic": true,
diff --git a/keyboards/doro67/rgb/rgb.c b/keyboards/doro67/rgb/rgb.c
new file mode 100644
index 0000000000..280c1b6774
--- /dev/null
+++ b/keyboards/doro67/rgb/rgb.c
@@ -0,0 +1,46 @@
+/* Copyright 2019 MechMerlin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include "quantum.h"
+
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 },
+ { 44, NO_LED, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 },
+ { 58, 59, 60, 61, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 62, 63, NO_LED, 64, 65, 66 }
+}, {
+ // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Ins
+ { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 }, { 225, 0 },
+ // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , Del
+ { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 }, { 225, 16 },
+ // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Pgup
+ { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 }, { 225, 32 },
+ // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Pgdn
+ { 18, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 191, 48 }, { 210, 48 }, { 225, 48 },
+ // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
+ { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 195, 64 }, { 210, 64 }, { 225, 64 }
+}, {
+ // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Ins
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , Del
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Pgup
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Pgdn
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
+ // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
+ 1, 1, 1, 4, 1, 1, 1, 1, 1
+} };
diff --git a/keyboards/dotmod/dymium65/dymium65.c b/keyboards/dotmod/dymium65/dymium65.c
index fd3bab633e..45eaa0251c 100644
--- a/keyboards/dotmod/dymium65/dymium65.c
+++ b/keyboards/dotmod/dymium65/dymium65.c
@@ -18,6 +18,30 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = {
+ {
+ {0, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED},
+ {NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, NO_LED, NO_LED},
+ {28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, NO_LED, NO_LED},
+ {29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, NO_LED, 41, 14, 42},
+ {55, NO_LED, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, NO_LED, 44, 43, NO_LED},
+ {56, 57, 58, NO_LED, NO_LED, NO_LED, 59, NO_LED, NO_LED, 60, 61, NO_LED, 62, 63, 64, 65}
+ }, {
+ {14, 0}, {28, 0}, {42, 0}, {56, 0}, {70, 0}, {84, 0}, {98, 0}, {112, 0}, {126, 0}, {140, 0}, {154, 0}, {168, 0}, {182, 0},{196, 0},
+ {224, 16},{196, 16},{182, 16},{168, 16},{154, 16},{140, 16},{126, 16},{112, 16}, {98, 16}, {84, 16}, {70, 16}, {56, 16}, {42, 16} ,{28, 16}, {14, 16},
+ {14, 32}, {28, 32}, {42, 32}, {56, 32}, {70, 32}, {84, 32}, {98, 32}, {112, 32}, {126, 32}, {140, 32}, {154, 32}, {168, 32}, {196, 32}, {224, 32},
+ {224, 48}, {196, 48},{168, 48},{154, 48},{140, 48},{126, 48},{112, 48}, {98, 48}, {84, 48}, {70, 48}, {56, 48}, {42, 48}, {14, 48},
+ {14, 64}, {28, 64}, {42, 64}, {98, 64}, {140, 64}, {154, 64}, {168, 64}, {182, 64},{196, 64}, {224, 64}
+ }, {
+ 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, 4, 4, 4,
+ 4, 12, 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, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
+ }
+};
+
bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) {
return false;
diff --git a/keyboards/dotmod/dymium65/keyboard.json b/keyboards/dotmod/dymium65/keyboard.json
index 8ef9587489..a76bc91cd6 100644
--- a/keyboards/dotmod/dymium65/keyboard.json
+++ b/keyboards/dotmod/dymium65/keyboard.json
@@ -68,74 +68,6 @@
"solid_reactive_nexus": true,
"splash": true
},
- "layout": [
- {"matrix": [0, 0], "x": 14, "y": 0, "flags": 4},
- {"matrix": [1, 1], "x": 28, "y": 0, "flags": 4},
- {"matrix": [1, 2], "x": 42, "y": 0, "flags": 4},
- {"matrix": [1, 3], "x": 56, "y": 0, "flags": 4},
- {"matrix": [1, 4], "x": 70, "y": 0, "flags": 4},
- {"matrix": [1, 5], "x": 84, "y": 0, "flags": 4},
- {"matrix": [1, 6], "x": 98, "y": 0, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [1, 8], "x": 126, "y": 0, "flags": 4},
- {"matrix": [1, 9], "x": 140, "y": 0, "flags": 4},
- {"matrix": [1, 10], "x": 154, "y": 0, "flags": 4},
- {"matrix": [1, 11], "x": 168, "y": 0, "flags": 4},
- {"matrix": [1, 12], "x": 182, "y": 0, "flags": 4},
- {"matrix": [1, 13], "x": 196, "y": 0, "flags": 4},
- {"matrix": [3, 14], "x": 224, "y": 16, "flags": 4},
- {"matrix": [2, 13], "x": 196, "y": 16, "flags": 4},
- {"matrix": [2, 12], "x": 182, "y": 16, "flags": 4},
- {"matrix": [2, 11], "x": 168, "y": 16, "flags": 4},
- {"matrix": [2, 10], "x": 154, "y": 16, "flags": 4},
- {"matrix": [2, 9], "x": 140, "y": 16, "flags": 4},
- {"matrix": [2, 8], "x": 126, "y": 16, "flags": 4},
- {"matrix": [2, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [2, 6], "x": 98, "y": 16, "flags": 4},
- {"matrix": [2, 5], "x": 84, "y": 16, "flags": 4},
- {"matrix": [2, 4], "x": 70, "y": 16, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 16, "flags": 4},
- {"matrix": [2, 2], "x": 42, "y": 16, "flags": 4},
- {"matrix": [2, 1], "x": 28, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 14, "y": 16, "flags": 4},
- {"matrix": [3, 0], "x": 14, "y": 32, "flags": 12},
- {"matrix": [3, 1], "x": 28, "y": 32, "flags": 4},
- {"matrix": [3, 2], "x": 42, "y": 32, "flags": 4},
- {"matrix": [3, 3], "x": 56, "y": 32, "flags": 4},
- {"matrix": [3, 4], "x": 70, "y": 32, "flags": 4},
- {"matrix": [3, 5], "x": 84, "y": 32, "flags": 4},
- {"matrix": [3, 6], "x": 98, "y": 32, "flags": 4},
- {"matrix": [3, 7], "x": 112, "y": 32, "flags": 4},
- {"matrix": [3, 8], "x": 126, "y": 32, "flags": 4},
- {"matrix": [3, 9], "x": 140, "y": 32, "flags": 4},
- {"matrix": [3, 10], "x": 154, "y": 32, "flags": 4},
- {"matrix": [3, 11], "x": 168, "y": 32, "flags": 4},
- {"matrix": [3, 13], "x": 196, "y": 32, "flags": 4},
- {"matrix": [3, 15], "x": 224, "y": 32, "flags": 4},
- {"matrix": [4, 14], "x": 224, "y": 48, "flags": 4},
- {"matrix": [4, 13], "x": 196, "y": 48, "flags": 4},
- {"matrix": [4, 11], "x": 168, "y": 48, "flags": 4},
- {"matrix": [4, 10], "x": 154, "y": 48, "flags": 4},
- {"matrix": [4, 9], "x": 140, "y": 48, "flags": 4},
- {"matrix": [4, 8], "x": 126, "y": 48, "flags": 4},
- {"matrix": [4, 7], "x": 112, "y": 48, "flags": 4},
- {"matrix": [4, 6], "x": 98, "y": 48, "flags": 4},
- {"matrix": [4, 5], "x": 84, "y": 48, "flags": 4},
- {"matrix": [4, 4], "x": 70, "y": 48, "flags": 4},
- {"matrix": [4, 3], "x": 56, "y": 48, "flags": 4},
- {"matrix": [4, 2], "x": 42, "y": 48, "flags": 4},
- {"matrix": [4, 0], "x": 14, "y": 48, "flags": 4},
- {"matrix": [5, 0], "x": 14, "y": 64, "flags": 4},
- {"matrix": [5, 1], "x": 28, "y": 64, "flags": 4},
- {"matrix": [5, 2], "x": 42, "y": 64, "flags": 4},
- {"matrix": [5, 6], "x": 98, "y": 64, "flags": 4},
- {"matrix": [5, 9], "x": 140, "y": 64, "flags": 4},
- {"matrix": [5, 10], "x": 154, "y": 64, "flags": 4},
- {"matrix": [5, 12], "x": 168, "y": 64, "flags": 4},
- {"matrix": [5, 13], "x": 182, "y": 64, "flags": 4},
- {"matrix": [5, 14], "x": 196, "y": 64, "flags": 4},
- {"matrix": [5, 15], "x": 224, "y": 64, "flags": 4}
- ],
"max_brightness": 200,
"react_on_keyup": true
},
diff --git a/keyboards/draculad/keyboard.json b/keyboards/draculad/keyboard.json
index f4464da35f..9c21b2a97d 100644
--- a/keyboards/draculad/keyboard.json
+++ b/keyboards/draculad/keyboard.json
@@ -39,7 +39,7 @@
"encoder": {
"right": {
"rotary": [
- {"pin_a": "B2", "pin_b": "B6"},
+ {"pin_a": "B2", "pin_b": "B6", "resolution": 4},
{"pin_a": "B4", "pin_b": "B5", "resolution": 1}
]
}
diff --git a/keyboards/dtisaac/dosa40rgb/dosa40rgb.c b/keyboards/dtisaac/dosa40rgb/dosa40rgb.c
new file mode 100644
index 0000000000..35ae8eb018
--- /dev/null
+++ b/keyboards/dtisaac/dosa40rgb/dosa40rgb.c
@@ -0,0 +1,39 @@
+/* Copyright 2021 DTIsaac
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ //Key Matrix to LED Index
+ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10},
+ {22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12 },
+ {23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33},
+ {41, 40, 39, NO_LED, 38, NO_LED, 37, 36, 35, 34, 11}
+}, {
+ //LED Index to Physical Positon
+ { 0, 0}, { 20, 0}, { 40, 0 }, { 61, 0 }, { 81, 0}, { 101, 0}, { 122, 0}, { 142, 0}, { 162, 0}, { 183, 0}, { 203, 0}, { 224, 0},
+ {203, 21}, {183, 21}, {162,21 }, {142, 21}, {122,21}, { 101,21}, { 81 ,21}, { 61 ,21}, { 40 ,21}, { 20 ,21}, { 0 ,21},
+ { 0, 42}, { 20, 42}, { 40,42 }, { 61, 42}, { 81,42}, { 101,42}, { 122,42}, { 142,42}, { 162,42}, { 183,42}, { 203,42},
+ {203, 64}, {183, 64}, {162,64 }, {122, 64}, { 81,64}, { 40, 64}, { 20, 64}, { 0, 64},
+}, {
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+} };
+
+#endif
\ No newline at end of file
diff --git a/keyboards/dtisaac/dosa40rgb/keyboard.json b/keyboards/dtisaac/dosa40rgb/keyboard.json
index 29a63e80f3..4f5522947a 100644
--- a/keyboards/dtisaac/dosa40rgb/keyboard.json
+++ b/keyboards/dtisaac/dosa40rgb/keyboard.json
@@ -62,50 +62,6 @@
"animation": "cycle_pinwheel"
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 81, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 101, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 122, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 142, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 162, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 183, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 203, "y": 0, "flags": 4},
- {"matrix": [3, 10], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 10], "x": 203, "y": 21, "flags": 1},
- {"matrix": [1, 9], "x": 183, "y": 21, "flags": 4},
- {"matrix": [1, 8], "x": 162, "y": 21, "flags": 4},
- {"matrix": [1, 7], "x": 142, "y": 21, "flags": 4},
- {"matrix": [1, 6], "x": 122, "y": 21, "flags": 4},
- {"matrix": [1, 5], "x": 101, "y": 21, "flags": 4},
- {"matrix": [1, 4], "x": 81, "y": 21, "flags": 4},
- {"matrix": [1, 3], "x": 61, "y": 21, "flags": 4},
- {"matrix": [1, 2], "x": 40, "y": 21, "flags": 4},
- {"matrix": [1, 1], "x": 20, "y": 21, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1},
- {"matrix": [2, 0], "x": 0, "y": 42, "flags": 1},
- {"matrix": [2, 1], "x": 20, "y": 42, "flags": 4},
- {"matrix": [2, 2], "x": 40, "y": 42, "flags": 4},
- {"matrix": [2, 3], "x": 61, "y": 42, "flags": 4},
- {"matrix": [2, 4], "x": 81, "y": 42, "flags": 4},
- {"matrix": [2, 5], "x": 101, "y": 42, "flags": 4},
- {"matrix": [2, 6], "x": 122, "y": 42, "flags": 4},
- {"matrix": [2, 7], "x": 142, "y": 42, "flags": 4},
- {"matrix": [2, 8], "x": 162, "y": 42, "flags": 4},
- {"matrix": [2, 9], "x": 183, "y": 42, "flags": 4},
- {"matrix": [2, 10], "x": 203, "y": 42, "flags": 1},
- {"matrix": [3, 9], "x": 203, "y": 64, "flags": 1},
- {"matrix": [3, 8], "x": 183, "y": 64, "flags": 1},
- {"matrix": [3, 7], "x": 162, "y": 64, "flags": 1},
- {"matrix": [3, 6], "x": 122, "y": 64, "flags": 1},
- {"matrix": [3, 4], "x": 81, "y": 64, "flags": 1},
- {"matrix": [3, 2], "x": 40, "y": 64, "flags": 1},
- {"matrix": [3, 1], "x": 20, "y": 64, "flags": 1},
- {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1}
- ],
"max_brightness": 150,
"react_on_keyup": true
},
diff --git a/keyboards/dumbpad/v3x/keyboard.json b/keyboards/dumbpad/v3x/keyboard.json
index 0e1c5bc791..58b8da5b3a 100644
--- a/keyboards/dumbpad/v3x/keyboard.json
+++ b/keyboards/dumbpad/v3x/keyboard.json
@@ -36,24 +36,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 1], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 149, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 224, "y": 0, "flags": 4},
- {"matrix": [1, 4], "x": 224, "y": 21, "flags": 4},
- {"matrix": [1, 3], "x": 149, "y": 21, "flags": 4},
- {"matrix": [1, 2], "x": 75, "y": 21, "flags": 4},
- {"matrix": [1, 1], "x": 0, "y": 21, "flags": 4},
- {"matrix": [2, 1], "x": 0, "y": 43, "flags": 4},
- {"matrix": [2, 2], "x": 75, "y": 43, "flags": 4},
- {"matrix": [2, 3], "x": 149, "y": 43, "flags": 4},
- {"matrix": [2, 4], "x": 224, "y": 43, "flags": 4},
- {"matrix": [3, 4], "x": 224, "y": 64, "flags": 4},
- {"matrix": [3, 3], "x": 149, "y": 64, "flags": 4},
- {"matrix": [3, 2], "x": 75, "y": 64, "flags": 4},
- {"matrix": [3, 1], "x": 0, "y": 64, "flags": 4}
- ],
"timeout": 300000,
"sleep": true
},
diff --git a/keyboards/dumbpad/v3x/v3x.c b/keyboards/dumbpad/v3x/v3x.c
index ebc829d91a..181e9d4a0d 100644
--- a/keyboards/dumbpad/v3x/v3x.c
+++ b/keyboards/dumbpad/v3x/v3x.c
@@ -16,6 +16,36 @@
#include "quantum.h"
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = {{// Key Matrix to LED Index
+ {NO_LED, 0, 1, 2, 3},
+ {NO_LED, 7, 6, 5, 4},
+ {NO_LED, 8, 9, 10, 11},
+ {NO_LED, 15, 14, 13, 12}},
+ {// LED Index to Physical Position
+ {0, 0},
+ {75, 0},
+ {149, 0},
+ {224, 0},
+
+ {224, 21},
+ {149, 21},
+ {75, 21},
+ {0, 21},
+
+ {0, 43},
+ {75, 43},
+ {149, 43},
+ {224, 43},
+
+ {224, 64},
+ {149, 64},
+ {75, 64},
+ {0, 64}},
+ {// LED Index to Flag
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}};
+#endif
+
void keyboard_pre_init_kb(void) {
// Set LED IO as outputs
gpio_set_pin_output(LED_00);
diff --git a/keyboards/durgod/dgk6x/galaxy/galaxy.c b/keyboards/durgod/dgk6x/galaxy/galaxy.c
index a0f5126bf6..5d08163109 100644
--- a/keyboards/durgod/dgk6x/galaxy/galaxy.c
+++ b/keyboards/durgod/dgk6x/galaxy/galaxy.c
@@ -1,4 +1,4 @@
-/* Copyright 2021 Don Kjer
+/* Copyright 2021 Don Kjer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -116,4 +116,27 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
{1, SW6_CS14, SW5_CS14, SW4_CS14}, // Down
{1, SW6_CS15, SW5_CS15, SW4_CS15} // Right
};
+
+led_config_t g_led_config = {{
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
+ { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, NO_LED },
+ { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, NO_LED },
+ { 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, NO_LED, 58, 59, NO_LED },
+ { 60, NO_LED, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, NO_LED },
+ { 74, 75, 76, NO_LED, NO_LED, NO_LED, 77, NO_LED, NO_LED, 78, 79, 80, 81, 82, 83, NO_LED }
+}, {
+ { 0, 0 }, { 16, 0 }, { 32, 0 }, { 48, 0 }, { 64, 0 }, { 80, 0 }, { 96, 0 }, { 112, 0 }, { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 208, 0 }, { 224, 0 }, { 240, 0 },
+ { 0, 13 }, { 16, 13 }, { 32, 13 }, { 48, 13 }, { 64, 13 }, { 80, 13 }, { 96, 13 }, { 112, 13 }, { 128, 13 }, { 144, 13 }, { 160, 13 }, { 176, 13 }, { 192, 13 }, { 216, 13 }, { 240, 13 },
+ { 4, 26 }, { 24, 26 }, { 40, 26 }, { 56, 26 }, { 72, 26 }, { 88, 26 }, { 104, 26 }, { 120, 26 }, { 136, 26 }, { 152, 26 }, { 168, 26 }, { 184, 26 }, { 200, 26 }, { 220, 26 }, { 240, 26 },
+ { 6, 38 }, { 28, 38 }, { 44, 38 }, { 60, 38 }, { 76, 38 }, { 92, 38 }, { 108, 38 }, { 124, 38 }, { 140, 38 }, { 156, 38 }, { 172, 38 }, { 188, 38 }, { 214, 38 }, { 240, 38 },
+ { 10, 51 }, { 36, 51 }, { 52, 51 }, { 68, 51 }, { 84, 51 }, { 100, 51 }, { 116, 51 }, { 132, 51 }, { 148, 51 }, { 164, 51 }, { 180, 51 }, { 202, 51 }, { 224, 51 }, { 240, 51 },
+ { 2, 64 }, { 22, 64 }, { 42, 64 }, { 101, 64 }, { 160, 64 }, { 176, 64 }, { 192, 64 }, { 208, 64 }, { 224, 64 }, { 240, 64 }
+}, {
+ 1, 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, 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, 4, 4, 4, 4, 4, 4, 4, 1, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4,
+ 1, 1, 1, 4, 1, 1, 1, 4, 4, 4
+}};
#endif /* RGB_MATRIX_ENABLE */
diff --git a/keyboards/durgod/dgk6x/galaxy/keyboard.json b/keyboards/durgod/dgk6x/galaxy/keyboard.json
index 7421f70481..4f80ef9d51 100644
--- a/keyboards/durgod/dgk6x/galaxy/keyboard.json
+++ b/keyboards/durgod/dgk6x/galaxy/keyboard.json
@@ -13,94 +13,6 @@
"rows": ["A0", "A1", "A2", "A3", "A4", "A5"]
},
"diode_direction": "ROW2COL",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 195, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 210, "y": 0, "flags": 4},
- {"matrix": [0, 15], "x": 224, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 13, "flags": 4},
- {"matrix": [1, 1], "x": 15, "y": 13, "flags": 4},
- {"matrix": [1, 2], "x": 30, "y": 13, "flags": 4},
- {"matrix": [1, 3], "x": 45, "y": 13, "flags": 4},
- {"matrix": [1, 4], "x": 60, "y": 13, "flags": 4},
- {"matrix": [1, 5], "x": 75, "y": 13, "flags": 4},
- {"matrix": [1, 6], "x": 90, "y": 13, "flags": 4},
- {"matrix": [1, 7], "x": 105, "y": 13, "flags": 4},
- {"matrix": [1, 8], "x": 120, "y": 13, "flags": 4},
- {"matrix": [1, 9], "x": 135, "y": 13, "flags": 4},
- {"matrix": [1, 10], "x": 150, "y": 13, "flags": 4},
- {"matrix": [1, 11], "x": 165, "y": 13, "flags": 4},
- {"matrix": [1, 12], "x": 180, "y": 13, "flags": 4},
- {"matrix": [1, 13], "x": 202, "y": 13, "flags": 1},
- {"matrix": [1, 14], "x": 224, "y": 13, "flags": 4},
- {"matrix": [2, 0], "x": 4, "y": 26, "flags": 4},
- {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4},
- {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4},
- {"matrix": [2, 3], "x": 52, "y": 26, "flags": 4},
- {"matrix": [2, 4], "x": 67, "y": 26, "flags": 4},
- {"matrix": [2, 5], "x": 82, "y": 26, "flags": 4},
- {"matrix": [2, 6], "x": 97, "y": 26, "flags": 4},
- {"matrix": [2, 7], "x": 112, "y": 26, "flags": 4},
- {"matrix": [2, 8], "x": 127, "y": 26, "flags": 4},
- {"matrix": [2, 9], "x": 142, "y": 26, "flags": 4},
- {"matrix": [2, 10], "x": 157, "y": 26, "flags": 4},
- {"matrix": [2, 11], "x": 172, "y": 26, "flags": 4},
- {"matrix": [2, 12], "x": 187, "y": 26, "flags": 4},
- {"matrix": [2, 13], "x": 205, "y": 26, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 26, "flags": 4},
- {"matrix": [3, 0], "x": 6, "y": 38, "flags": 4},
- {"matrix": [3, 1], "x": 28, "y": 38, "flags": 4},
- {"matrix": [3, 2], "x": 43, "y": 38, "flags": 4},
- {"matrix": [3, 3], "x": 58, "y": 38, "flags": 4},
- {"matrix": [3, 4], "x": 73, "y": 38, "flags": 4},
- {"matrix": [3, 5], "x": 88, "y": 38, "flags": 4},
- {"matrix": [3, 6], "x": 103, "y": 38, "flags": 4},
- {"matrix": [3, 7], "x": 118, "y": 38, "flags": 4},
- {"matrix": [3, 8], "x": 133, "y": 38, "flags": 4},
- {"matrix": [3, 9], "x": 148, "y": 38, "flags": 4},
- {"matrix": [3, 10], "x": 163, "y": 38, "flags": 4},
- {"matrix": [3, 11], "x": 178, "y": 38, "flags": 4},
- {"matrix": [3, 13], "x": 200, "y": 38, "flags": 1},
- {"matrix": [3, 14], "x": 224, "y": 38, "flags": 4},
- {"matrix": [4, 0], "x": 10, "y": 51, "flags": 1},
- {"matrix": [4, 2], "x": 36, "y": 51, "flags": 4},
- {"matrix": [4, 3], "x": 51, "y": 51, "flags": 4},
- {"matrix": [4, 4], "x": 66, "y": 51, "flags": 4},
- {"matrix": [4, 5], "x": 81, "y": 51, "flags": 4},
- {"matrix": [4, 6], "x": 96, "y": 51, "flags": 4},
- {"matrix": [4, 7], "x": 111, "y": 51, "flags": 4},
- {"matrix": [4, 8], "x": 126, "y": 51, "flags": 4},
- {"matrix": [4, 9], "x": 141, "y": 51, "flags": 4},
- {"matrix": [4, 10], "x": 156, "y": 51, "flags": 4},
- {"matrix": [4, 11], "x": 171, "y": 51, "flags": 4},
- {"matrix": [4, 12], "x": 192, "y": 51, "flags": 1},
- {"matrix": [4, 13], "x": 209, "y": 51, "flags": 4},
- {"matrix": [4, 14], "x": 224, "y": 51, "flags": 4},
- {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 22, "y": 64, "flags": 1},
- {"matrix": [5, 2], "x": 38, "y": 64, "flags": 1},
- {"matrix": [5, 6], "x": 98, "y": 64, "flags": 4},
- {"matrix": [5, 9], "x": 149, "y": 64, "flags": 1},
- {"matrix": [5, 10], "x": 164, "y": 64, "flags": 1},
- {"matrix": [5, 11], "x": 179, "y": 64, "flags": 1},
- {"matrix": [5, 12], "x": 194, "y": 64, "flags": 4},
- {"matrix": [5, 13], "x": 209, "y": 64, "flags": 4},
- {"matrix": [5, 14], "x": 224, "y": 64, "flags": 4}
- ]
- },
"community_layouts": ["75_ansi"],
"layouts": {
"LAYOUT_75_ansi": {
diff --git a/keyboards/durgod/dgk6x/hades_ansi/hades_ansi.c b/keyboards/durgod/dgk6x/hades_ansi/hades_ansi.c
index d62acf1bc3..d092310814 100644
--- a/keyboards/durgod/dgk6x/hades_ansi/hades_ansi.c
+++ b/keyboards/durgod/dgk6x/hades_ansi/hades_ansi.c
@@ -1,4 +1,4 @@
-/* Copyright 2021 Jessica Sullivan and Don Kjer
+/* Copyright 2021 Jessica Sullivan and Don Kjer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -100,4 +100,24 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
{1, SW3_CS14, SW2_CS14, SW1_CS14}, // DOWN
{1, SW3_CS15, SW2_CS15, SW1_CS15} // RIGHT
};
+
+led_config_t g_led_config = {{
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 },
+ { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, 57 },
+ { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 }
+}, {
+ { 0, 0 }, { 16, 0 }, { 32, 0 }, { 48, 0 }, { 64, 0 }, { 80, 0 }, { 96, 0 }, { 112, 0 }, { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 216, 0 }, { 240, 0 },
+ { 4, 16 }, { 24, 16 }, { 40, 16 }, { 56, 16 }, { 72, 16 }, { 88, 16 }, { 104, 16 }, { 120, 16 }, { 136, 16 }, { 152, 16 }, { 168, 16 }, { 184, 16 }, { 200, 16 }, { 220, 16 }, { 240, 16 },
+ { 6, 32 }, { 28, 32 }, { 44, 32 }, { 60, 32 }, { 76, 32 }, { 92, 32 }, { 108, 32 }, { 124, 32 }, { 140, 32 }, { 156, 32 }, { 172, 32 }, { 188, 32 }, { 214, 32 }, { 240, 32 },
+ { 10, 48 }, { 36, 48 }, { 52, 48 }, { 68, 48 }, { 84, 48 }, { 100, 48 }, { 116, 48 }, { 132, 48 }, { 148, 48 }, { 164, 48 }, { 180, 48 }, { 202, 48 }, { 224, 48 }, { 240, 48 },
+ { 2, 64 }, { 22, 64 }, { 42, 64 }, { 101, 64 }, { 160, 64 }, { 176, 64 }, { 192, 64 }, { 208, 64 }, { 224, 64 }, { 240, 64 }
+}, {
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 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, 4, 4, 4, 4, 4, 4, 4, 1, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4,
+ 1, 1, 1, 4, 1, 1, 1, 4, 4, 4
+}};
#endif /* RGB_MATRIX_ENABLE */
diff --git a/keyboards/durgod/dgk6x/hades_ansi/keyboard.json b/keyboards/durgod/dgk6x/hades_ansi/keyboard.json
index 7a41352d20..00cfcdc5f0 100644
--- a/keyboards/durgod/dgk6x/hades_ansi/keyboard.json
+++ b/keyboards/durgod/dgk6x/hades_ansi/keyboard.json
@@ -13,78 +13,6 @@
"rows": ["A0", "A1", "A2", "A3", "A4"]
},
"diode_direction": "ROW2COL",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 205, "y": 16, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 43, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 58, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 73, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 88, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 103, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 118, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 133, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 148, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 163, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 178, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 200, "y": 32, "flags": 1},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4},
- {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1},
- {"matrix": [3, 1], "x": 36, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 51, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 66, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 81, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 96, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 111, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 126, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 141, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 156, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 171, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 192, "y": 48, "flags": 1},
- {"matrix": [3, 13], "x": 209, "y": 48, "flags": 4},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 38, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 98, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 149, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 164, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 179, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 194, "y": 64, "flags": 4},
- {"matrix": [4, 13], "x": 209, "y": 64, "flags": 4},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4}
- ]
- },
"community_layouts": ["65_ansi"],
"layouts": {
"LAYOUT_65_ansi": {
diff --git a/keyboards/durgod/dgk6x/readme.md b/keyboards/durgod/dgk6x/readme.md
index 58ba599069..a14dfcb9f4 100644
--- a/keyboards/durgod/dgk6x/readme.md
+++ b/keyboards/durgod/dgk6x/readme.md
@@ -11,8 +11,7 @@ This DGK6X code is shared between the ANSI variants of Venus, Hades and Galaxy k
### Build
Instructions for building the Venus, Hades and Galaxy firmware can be found here:
-* [Venus ANSI](venus_ansi/readme.md)
-* [Venus ISO](venus_iso/readme.md)
+* [Venus](venus/readme.md)
* [Hades ANSI](hades_ansi/readme.md)
* [Hades ISO](hades_iso/readme.md)
* [Galaxy](galaxy/readme.md)
diff --git a/keyboards/durgod/dgk6x/venus_ansi/config.h b/keyboards/durgod/dgk6x/venus/config.h
similarity index 100%
rename from keyboards/durgod/dgk6x/venus_ansi/config.h
rename to keyboards/durgod/dgk6x/venus/config.h
diff --git a/keyboards/durgod/dgk6x/venus/keyboard.json b/keyboards/durgod/dgk6x/venus/keyboard.json
new file mode 100644
index 0000000000..cc7b321e23
--- /dev/null
+++ b/keyboards/durgod/dgk6x/venus/keyboard.json
@@ -0,0 +1,88 @@
+{
+ "keyboard_name": "DURGOD Venus (QMK)",
+ "manufacturer": "Hoksi Technology",
+ "url": "https://www.amazon.com/dp/B07XFP5MMZ",
+ "maintainer": "J-Sully",
+ "usb": {
+ "vid": "0xD60D",
+ "pid": "0x7EC5",
+ "device_version": "0.0.1"
+ },
+ "matrix_pins": {
+ "cols": ["B0", "B1", "B2", "B10", "B11", "B12", "B13", "B14", "B15", "C6", "C7", "C8", "C9", "C10"],
+ "rows": ["A0", "A1", "A2", "A3", "A4"]
+ },
+ "diode_direction": "ROW2COL",
+ "community_layouts": ["60_ansi"],
+ "layouts": {
+ "LAYOUT_60_ansi": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 1], "x": 2.25, "y": 3},
+ {"matrix": [3, 2], "x": 3.25, "y": 3},
+ {"matrix": [3, 3], "x": 4.25, "y": 3},
+ {"matrix": [3, 4], "x": 5.25, "y": 3},
+ {"matrix": [3, 5], "x": 6.25, "y": 3},
+ {"matrix": [3, 6], "x": 7.25, "y": 3},
+ {"matrix": [3, 7], "x": 8.25, "y": 3},
+ {"matrix": [3, 8], "x": 9.25, "y": 3},
+ {"matrix": [3, 9], "x": 10.25, "y": 3},
+ {"matrix": [3, 10], "x": 11.25, "y": 3},
+ {"matrix": [3, 11], "x": 12.25, "y": 3, "w": 2.75},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+ {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
+ {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ }
+ }
+}
diff --git a/keyboards/durgod/dgk6x/venus_ansi/keymaps/default/keymap.json b/keyboards/durgod/dgk6x/venus/keymaps/default/keymap.json
similarity index 98%
rename from keyboards/durgod/dgk6x/venus_ansi/keymaps/default/keymap.json
rename to keyboards/durgod/dgk6x/venus/keymaps/default/keymap.json
index be4d435839..8acd302a05 100644
--- a/keyboards/durgod/dgk6x/venus_ansi/keymaps/default/keymap.json
+++ b/keyboards/durgod/dgk6x/venus/keymaps/default/keymap.json
@@ -1,5 +1,5 @@
{
- "keyboard": "durgod/dgk6x/venus_ansi",
+ "keyboard": "durgod/dgk6x/venus",
"keymap": "default",
"layout": "LAYOUT_60_ansi",
"layers": [
diff --git a/keyboards/durgod/dgk6x/venus_ansi/keymaps/default/readme.md b/keyboards/durgod/dgk6x/venus/keymaps/default/readme.md
similarity index 100%
rename from keyboards/durgod/dgk6x/venus_ansi/keymaps/default/readme.md
rename to keyboards/durgod/dgk6x/venus/keymaps/default/readme.md
diff --git a/keyboards/durgod/dgk6x/venus_ansi/readme.md b/keyboards/durgod/dgk6x/venus/readme.md
similarity index 90%
rename from keyboards/durgod/dgk6x/venus_ansi/readme.md
rename to keyboards/durgod/dgk6x/venus/readme.md
index d8009dcb22..9e37d49633 100644
--- a/keyboards/durgod/dgk6x/venus_ansi/readme.md
+++ b/keyboards/durgod/dgk6x/venus/readme.md
@@ -12,11 +12,11 @@ This is a standard off-the-shelf Durgod Venus 60% ANSI Layout keyboard with RGB
Make command example for this keyboard (after setting up your build environment):
- make durgod/dgk6x/venus_ansi:default
+ make durgod/venus:default
Flashing example for this keyboard:
- make durgod/dgk6x/venus_ansi:default:flash
+ make durgod/venus:default:flash
See 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/durgod/dgk6x/venus_ansi/venus_ansi.c b/keyboards/durgod/dgk6x/venus/venus.c
similarity index 68%
rename from keyboards/durgod/dgk6x/venus_ansi/venus_ansi.c
rename to keyboards/durgod/dgk6x/venus/venus.c
index 30735fc80e..5433266e3b 100644
--- a/keyboards/durgod/dgk6x/venus_ansi/venus_ansi.c
+++ b/keyboards/durgod/dgk6x/venus/venus.c
@@ -92,4 +92,24 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
{1, SW3_CS12, SW2_CS12, SW1_CS12}, // RCtrl/Fn2
{1, SW3_CS13, SW2_CS13, SW1_CS13}, // LEFT/RCtrl
};
+
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 },
+ { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 },
+ { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40 },
+ { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, NO_LED, NO_LED },
+ { 53, 54, 55, NO_LED, NO_LED, 56, NO_LED, NO_LED, NO_LED, 57, 58, 59, 60, NO_LED }
+}, {
+ { 0, 0 }, { 16, 0 }, { 32, 0 }, { 48, 0 }, { 64, 0 }, { 80, 0 }, { 96, 0 }, { 112, 0 }, { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 216, 0 },
+ { 4, 16 }, { 24, 16 }, { 40, 16 }, { 56, 16 }, { 72, 16 }, { 88, 16 }, { 104, 16 }, { 120, 16 }, { 136, 16 }, { 152, 16 }, { 168, 16 }, { 184, 16 }, { 200, 16 }, { 220, 16 },
+ { 6, 32 }, { 28, 32 }, { 44, 32 }, { 60, 32 }, { 76, 32 }, { 92, 32 }, { 108, 32 }, { 124, 32 }, { 140, 32 }, { 156, 32 }, { 172, 32 }, { 188, 32 }, { 214, 32 },
+ { 10, 48 }, { 36, 48 }, { 52, 48 }, { 68, 48 }, { 84, 48 }, { 100, 48 }, { 116, 48 }, { 132, 48 }, { 148, 48 }, { 164, 48 }, { 180, 48 }, { 210, 48 },
+ { 2, 64 }, { 22, 64 }, { 42, 64 }, { 102, 64 }, { 162, 64 }, { 182, 64 }, { 202, 64 }, { 222, 64 },
+}, {
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 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, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1
+} };
#endif /* RGB_MATRIX_ENABLE */
diff --git a/keyboards/durgod/dgk6x/venus_ansi/keyboard.json b/keyboards/durgod/dgk6x/venus_ansi/keyboard.json
deleted file mode 100644
index a32a5b1065..0000000000
--- a/keyboards/durgod/dgk6x/venus_ansi/keyboard.json
+++ /dev/null
@@ -1,153 +0,0 @@
-{
- "keyboard_name": "DURGOD Venus (QMK)",
- "manufacturer": "Hoksi Technology",
- "url": "https://www.amazon.com/dp/B07XFP5MMZ",
- "maintainer": "J-Sully",
- "usb": {
- "vid": "0xD60D",
- "pid": "0x7EC5",
- "device_version": "0.0.1"
- },
- "matrix_pins": {
- "cols": ["B0", "B1", "B2", "B10", "B11", "B12", "B13", "B14", "B15", "C6", "C7", "C8", "C9", "C10"],
- "rows": ["A0", "A1", "A2", "A3", "A4"]
- },
- "diode_direction": "ROW2COL",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 214, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1},
- {"matrix": [3, 1], "x": 36, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 68, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 84, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 100, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 116, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 132, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 148, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 164, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 180, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 210, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 162, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 182, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 202, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 222, "y": 64, "flags": 1}
- ]
- },
- "community_layouts": ["60_ansi"],
- "layouts": {
- "LAYOUT_60_ansi": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0},
- {"matrix": [0, 1], "x": 1, "y": 0},
- {"matrix": [0, 2], "x": 2, "y": 0},
- {"matrix": [0, 3], "x": 3, "y": 0},
- {"matrix": [0, 4], "x": 4, "y": 0},
- {"matrix": [0, 5], "x": 5, "y": 0},
- {"matrix": [0, 6], "x": 6, "y": 0},
- {"matrix": [0, 7], "x": 7, "y": 0},
- {"matrix": [0, 8], "x": 8, "y": 0},
- {"matrix": [0, 9], "x": 9, "y": 0},
- {"matrix": [0, 10], "x": 10, "y": 0},
- {"matrix": [0, 11], "x": 11, "y": 0},
- {"matrix": [0, 12], "x": 12, "y": 0},
- {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
-
- {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
- {"matrix": [1, 1], "x": 1.5, "y": 1},
- {"matrix": [1, 2], "x": 2.5, "y": 1},
- {"matrix": [1, 3], "x": 3.5, "y": 1},
- {"matrix": [1, 4], "x": 4.5, "y": 1},
- {"matrix": [1, 5], "x": 5.5, "y": 1},
- {"matrix": [1, 6], "x": 6.5, "y": 1},
- {"matrix": [1, 7], "x": 7.5, "y": 1},
- {"matrix": [1, 8], "x": 8.5, "y": 1},
- {"matrix": [1, 9], "x": 9.5, "y": 1},
- {"matrix": [1, 10], "x": 10.5, "y": 1},
- {"matrix": [1, 11], "x": 11.5, "y": 1},
- {"matrix": [1, 12], "x": 12.5, "y": 1},
- {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
-
- {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
- {"matrix": [2, 1], "x": 1.75, "y": 2},
- {"matrix": [2, 2], "x": 2.75, "y": 2},
- {"matrix": [2, 3], "x": 3.75, "y": 2},
- {"matrix": [2, 4], "x": 4.75, "y": 2},
- {"matrix": [2, 5], "x": 5.75, "y": 2},
- {"matrix": [2, 6], "x": 6.75, "y": 2},
- {"matrix": [2, 7], "x": 7.75, "y": 2},
- {"matrix": [2, 8], "x": 8.75, "y": 2},
- {"matrix": [2, 9], "x": 9.75, "y": 2},
- {"matrix": [2, 10], "x": 10.75, "y": 2},
- {"matrix": [2, 11], "x": 11.75, "y": 2},
- {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
-
- {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
- {"matrix": [3, 1], "x": 2.25, "y": 3},
- {"matrix": [3, 2], "x": 3.25, "y": 3},
- {"matrix": [3, 3], "x": 4.25, "y": 3},
- {"matrix": [3, 4], "x": 5.25, "y": 3},
- {"matrix": [3, 5], "x": 6.25, "y": 3},
- {"matrix": [3, 6], "x": 7.25, "y": 3},
- {"matrix": [3, 7], "x": 8.25, "y": 3},
- {"matrix": [3, 8], "x": 9.25, "y": 3},
- {"matrix": [3, 9], "x": 10.25, "y": 3},
- {"matrix": [3, 10], "x": 11.25, "y": 3},
- {"matrix": [3, 11], "x": 12.25, "y": 3, "w": 2.75},
-
- {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
- {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
- {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
- {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
- {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
- {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
- {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25},
- {"matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25}
- ]
- }
- }
-}
diff --git a/keyboards/durgod/dgk6x/venus_iso/keyboard.json b/keyboards/durgod/dgk6x/venus_iso/keyboard.json
deleted file mode 100644
index 46b88427eb..0000000000
--- a/keyboards/durgod/dgk6x/venus_iso/keyboard.json
+++ /dev/null
@@ -1,151 +0,0 @@
-{
- "manufacturer": "Hoksi Technology",
- "keyboard_name": "DURGOD Venus (QMK)",
- "maintainer": "pascalhansjosten",
- "diode_direction": "ROW2COL",
- "matrix_pins": {
- "cols": ["B0", "B1", "B2", "B10", "B11", "B12", "B13", "B14", "B15", "C6", "C7", "C8", "C9", "C10"],
- "rows": ["A0", "A1", "A2", "A3", "A4"]
- },
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 204, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 220, "y": 24, "flags": 1},
- {"matrix": [3, 0], "x": 2, "y": 48, "flags": 1},
- {"matrix": [3, 1], "x": 19, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 68, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 84, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 100, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 116, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 132, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 148, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 164, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 180, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 202, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 162, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 182, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 202, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 222, "y": 64, "flags": 4}
- ]
- },
- "url": "https://www.amazon.com/dp/B07XFP5MMZ",
- "usb": {
- "device_version": "0.0.1",
- "pid": "0x7EC6",
- "vid": "0xD60D"
- },
- "community_layouts": ["60_iso"],
- "layouts": {
- "LAYOUT_60_iso": {
- "layout": [
- {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
- {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
- {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
- {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
- {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
- {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
- {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
- {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
- {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
- {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
- {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
- {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
- {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
- {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
- {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
- {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
- {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
- {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
- {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
- {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
- {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
- {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
- {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
- {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
- {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
- {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
- {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
- {"label": "CapsLock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
- {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
- {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
- {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
- {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
- {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
- {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
- {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
- {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
- {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
- {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
- {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
- {"label": "#", "matrix": [2, 12], "x": 12.75, "y": 2},
- {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
- {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
- {"label": "\\", "matrix": [3, 1], "x": 1.25, "y": 3},
- {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
- {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
- {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
- {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
- {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
- {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
- {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
- {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
- {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
- {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
- {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
- {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
- {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
- {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
- {"label": "K45", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
- {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
- {"label": "Fn1", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
- {"label": "Fn2", "matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25},
- {"label": "Ctrl", "matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25}
- ]
- }
- }
-}
diff --git a/keyboards/durgod/dgk6x/venus_iso/keymaps/default/keymap.json b/keyboards/durgod/dgk6x/venus_iso/keymaps/default/keymap.json
deleted file mode 100644
index da53f1d9b5..0000000000
--- a/keyboards/durgod/dgk6x/venus_iso/keymaps/default/keymap.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "keyboard": "durgod/dgk6x/venus_iso",
- "keymap": "default",
- "layout": "LAYOUT_60_iso",
- "layers": [
- [
- "QK_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_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_CAPS", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_NUHS", "KC_ENT",
- "KC_LSFT", "KC_NUBS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "RSFT_T(KC_UP)",
- "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT","LT(1,KC_LEFT)","LT(2,KC_DOWN)","RCTL_T(KC_RIGHT)"
- ],
- [
- "KC_GRV", "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", "KC_TRNS", "KC_UP", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_PSCR", "KC_INS", "KC_HOME", "KC_END", "KC_DEL",
- "KC_TRNS", "KC_LEFT", "KC_DOWN", "KC_RIGHT","KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_PGUP", "KC_PGDN", "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", "GU_TOGG", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "MO(3)", "KC_TRNS"
- ],
- [
- "KC_TRNS", "KC_MPLY", "KC_MSTP", "KC_MPRV", "KC_MNXT", "KC_MUTE", "KC_VOLD", "KC_VOLU", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_TOGG", "RM_NEXT", "RM_PREV",
- "KC_TRNS", "KC_TRNS", "RM_VALU", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
- "KC_TRNS", "RM_SPDD", "RM_VALD", "RM_SPDU", "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", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
- "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "MO(3)", "KC_TRNS", "KC_TRNS"
- ],
- [
- "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX",
- "XXXXXXX", "XXXXXXX", "RM_SATU", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX",
- "XXXXXXX", "RM_HUED", "RM_SATD", "RM_HUEU", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX",
- "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX",
- "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "KC_TRNS", "KC_TRNS", "XXXXXXX"
- ]
- ],
- "author":"pascalhansjosten",
- "version":1
-}
diff --git a/keyboards/durgod/dgk6x/venus_iso/readme.md b/keyboards/durgod/dgk6x/venus_iso/readme.md
deleted file mode 100644
index 2f40fedd96..0000000000
--- a/keyboards/durgod/dgk6x/venus_iso/readme.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# Venus
-
-This is a standard off-the-shelf Durgod Venus 60% ISO Layout keyboard with RGB matrix.
-
-* Keyboard Maintainer: [pascalhansjosten](https://github.com/pascalhansjosten), based on the work of [J-Sully](https://github.com/J-Sully) and [dkjer](https://github.com/dkjer)
-* Hardware Supported: Durgod Venus ISO board with STM32F070RBT6
-* Hardware Availability: https://www.amazon.de/dp/B08H28DNQV/
-
-## Instructions
-
-### Build
-
-Make command example for this keyboard (after setting up your build environment):
-
- make durgod/dgk6x/venus_iso:default
-
-Flashing example for this keyboard:
-
- make durgod/dgk6x/venus_iso:default:flash
-
-See 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).
-
-### Initial Flash
-
-Instructions for Flashing from initial Stock Firmware:
-* [Initial Flashing](../readme.md#initial-flash)
diff --git a/keyboards/durgod/dgk6x/venus_iso/venus_iso.c b/keyboards/durgod/dgk6x/venus_iso/venus_iso.c
deleted file mode 100644
index 4cc9bf3364..0000000000
--- a/keyboards/durgod/dgk6x/venus_iso/venus_iso.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Copyright 2021 Jessica Sullivan and Don Kjer
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#include "dgk6x.h"
-
-#ifdef RGB_MATRIX_ENABLE
-
-const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
-
- {0, SW3_CS1, SW2_CS1, SW1_CS1}, // Esc
- {0, SW3_CS2, SW2_CS2, SW1_CS2}, // 1
- {0, SW3_CS3, SW2_CS3, SW1_CS3}, // 2
- {0, SW3_CS4, SW2_CS4, SW1_CS4}, // 3
- {0, SW3_CS5, SW2_CS5, SW1_CS5}, // 4
- {0, SW3_CS6, SW2_CS6, SW1_CS6}, // 5
- {0, SW3_CS7, SW2_CS7, SW1_CS7}, // 6
- {0, SW3_CS8, SW2_CS8, SW1_CS8}, // 7
- {0, SW3_CS9, SW2_CS9, SW1_CS9}, // 8
- {0, SW3_CS10, SW2_CS10, SW1_CS10}, // 9
- {0, SW3_CS11, SW2_CS11, SW1_CS11}, // 0
- {0, SW3_CS12, SW2_CS12, SW1_CS12}, // -
- {0, SW3_CS13, SW2_CS13, SW1_CS13}, // =
- {0, SW3_CS14, SW2_CS14, SW1_CS14}, // Bksp
-
- {0, SW6_CS1, SW5_CS1, SW4_CS1}, // Tab
- {0, SW6_CS2, SW5_CS2, SW4_CS2}, // Q
- {0, SW6_CS3, SW5_CS3, SW4_CS3}, // W
- {0, SW6_CS4, SW5_CS4, SW4_CS4}, // E
- {0, SW6_CS5, SW5_CS5, SW4_CS5}, // R
- {0, SW6_CS6, SW5_CS6, SW4_CS6}, // T
- {0, SW6_CS7, SW5_CS7, SW4_CS7}, // Y
- {0, SW6_CS8, SW5_CS8, SW4_CS8}, // U
- {0, SW6_CS9, SW5_CS9, SW4_CS9}, // I
- {0, SW6_CS10, SW5_CS10, SW4_CS10}, // O
- {0, SW6_CS11, SW5_CS11, SW4_CS11}, // P
- {0, SW6_CS12, SW5_CS12, SW4_CS12}, // [
- {0, SW6_CS13, SW5_CS13, SW4_CS13}, // ]
-
- {0, SW9_CS1, SW8_CS1, SW7_CS1}, // Caps
- {0, SW9_CS2, SW8_CS2, SW7_CS2}, // A
- {0, SW9_CS3, SW8_CS3, SW7_CS3}, // S
- {0, SW9_CS4, SW8_CS4, SW7_CS4}, // D
- {0, SW9_CS5, SW8_CS5, SW7_CS5}, // F
- {0, SW9_CS6, SW8_CS6, SW7_CS6}, // G
- {0, SW9_CS7, SW8_CS7, SW7_CS7}, // H
- {0, SW9_CS8, SW8_CS8, SW7_CS8}, // J
- {0, SW9_CS9, SW8_CS9, SW7_CS9}, // K
- {0, SW9_CS10, SW8_CS10, SW7_CS10}, // L
- {0, SW9_CS11, SW8_CS11, SW7_CS11}, // :
- {0, SW9_CS12, SW8_CS12, SW7_CS12}, // '
- {0, SW9_CS13, SW8_CS13, SW7_CS13}, // NUHS
- {0, SW9_CS14, SW8_CS14, SW7_CS14}, // Enter
-
- {0, SW12_CS1, SW11_CS1, SW10_CS1}, // LShift
- {0, SW12_CS2, SW11_CS2, SW10_CS2}, // NUBS
- {0, SW12_CS3, SW11_CS3, SW10_CS3}, // Z
- {0, SW12_CS4, SW11_CS4, SW10_CS4}, // X
- {0, SW12_CS5, SW11_CS5, SW10_CS5}, // C
- {0, SW12_CS6, SW11_CS6, SW10_CS6}, // V
- {0, SW12_CS7, SW11_CS7, SW10_CS7}, // B
- {0, SW12_CS8, SW11_CS8, SW10_CS8}, // N
- {0, SW12_CS9, SW11_CS9, SW10_CS9}, // M
- {0, SW12_CS10, SW11_CS10, SW10_CS10}, // <
- {0, SW12_CS11, SW11_CS11, SW10_CS11}, // >
- {0, SW12_CS12, SW11_CS12, SW10_CS12}, // ?
- {0, SW12_CS13, SW11_CS13, SW10_CS13}, // RShift
-
- {1, SW3_CS1, SW2_CS1, SW1_CS1}, // LCtrl
- {1, SW3_CS2, SW2_CS2, SW1_CS2}, // LAlt
- {1, SW3_CS3, SW2_CS3, SW1_CS3}, // Windows
- {1, SW3_CS6, SW2_CS6, SW1_CS6}, // Space
- {1, SW3_CS10, SW2_CS10, SW1_CS10}, // Fn1/RAlt hades/venus
- {1, SW3_CS11, SW2_CS11, SW1_CS11}, // Fn2/Fn1
- {1, SW3_CS12, SW2_CS12, SW1_CS12}, // RCtrl/Fn2
- {1, SW3_CS13, SW2_CS13, SW1_CS13}, // LEFT/RCtrl
-};
-
-#endif /* RGB_MATRIX_ENABLE */
diff --git a/keyboards/durgod/venus/readme.md b/keyboards/durgod/venus/readme.md
index 685a9d2bc0..c2228583a9 100644
--- a/keyboards/durgod/venus/readme.md
+++ b/keyboards/durgod/venus/readme.md
@@ -1,3 +1,3 @@
# Venus
-See: [Venus ANSI](../dgk6x/venus_ansi/readme.md) and [Venus ISO](../dgk6x/venus_iso/readme.md)
+See: [Venus](../dgk6x/venus/readme.md)
diff --git a/keyboards/dztech/dz60rgb/dz60rgb.c b/keyboards/dztech/dz60rgb/dz60rgb.c
index e729f6d578..207fccd4f9 100644
--- a/keyboards/dztech/dz60rgb/dz60rgb.c
+++ b/keyboards/dztech/dz60rgb/dz60rgb.c
@@ -71,6 +71,28 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
{ 0, SW11_CS16, SW10_CS16, SW12_CS16 }
};
+led_config_t g_led_config = {
+ {
+ { 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 },
+ { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 },
+ { 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, NO_LED, 28 },
+ { 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, NO_LED, 41 },
+ { 62, 61, 60, NO_LED, NO_LED, 59, NO_LED, NO_LED, 58, 57, 56, 55, NO_LED, 54 }
+ }, {
+ { 216, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 },
+ { 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 }, { 4, 16 },
+ { 214, 32 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 },
+ { 224, 48 }, { 208, 48 }, { 186, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 36, 48 }, { 9, 48 },
+ { 224, 64 }, { 208, 64 }, { 192, 64 }, { 176, 64 }, { 160, 64 }, { 102, 64 }, { 42, 64 }, { 22, 64 }, { 2, 64 }
+ }, {
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 1, 1, 4, 1, 1, 1
+ }
+};
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/dztech/dz60rgb/info.json b/keyboards/dztech/dz60rgb/info.json
index c4f87c70f0..1bcc77c605 100644
--- a/keyboards/dztech/dz60rgb/info.json
+++ b/keyboards/dztech/dz60rgb/info.json
@@ -5,73 +5,6 @@
"usb": {
"vid": "0x445A"
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [2, 13], "x": 214, "y": 32, "flags": 1},
- {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
- {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1},
- {"matrix": [3, 11], "x": 208, "y": 48, "flags": 1},
- {"matrix": [3, 10], "x": 186, "y": 48, "flags": 1},
- {"matrix": [3, 9], "x": 164, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 148, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 132, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 116, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 100, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 84, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 68, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 36, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1},
- {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 208, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 192, "y": 64, "flags": 1},
- {"matrix": [4, 9], "x": 176, "y": 64, "flags": 1},
- {"matrix": [4, 8], "x": 160, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c b/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c
index 20dd1a8b95..cdc5148e11 100644
--- a/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c
+++ b/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c
@@ -69,6 +69,28 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
{ 0, SW11_CS16, SW10_CS16, SW12_CS16 }
};
+led_config_t g_led_config = {
+ {
+ { 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 },
+ { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 },
+ { 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, NO_LED, 28 },
+ { 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, NO_LED, NO_LED },
+ { 60, 59, 58, NO_LED, NO_LED, 57, NO_LED, NO_LED, NO_LED, 56, 55, 54, NO_LED, 53 }
+ }, {
+ { 216, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 },
+ { 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 }, { 4, 16 },
+ { 214, 24 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 },
+ { 210, 48 }, { 180, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 20, 48 }, { 10, 48 },
+ { 222, 64 }, { 202, 64 }, { 182, 64 }, { 162, 64 }, { 102, 64 }, { 42, 64 }, { 22, 64 }, { 2, 64 }
+ }, {
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 1, 4, 1, 1, 1
+ }
+};
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/dztech/dz60rgb_ansi/info.json b/keyboards/dztech/dz60rgb_ansi/info.json
index b5f962b997..dddbd47315 100644
--- a/keyboards/dztech/dz60rgb_ansi/info.json
+++ b/keyboards/dztech/dz60rgb_ansi/info.json
@@ -5,71 +5,6 @@
"usb": {
"vid": "0x445A"
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [1, 13], "x": 220, "y": 16, "flags": 1},
- {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [2, 13], "x": 214, "y": 24, "flags": 1},
- {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
- {"matrix": [3, 11], "x": 210, "y": 48, "flags": 1},
- {"matrix": [3, 10], "x": 180, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 164, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 148, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 132, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 116, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 100, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 84, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 68, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 20, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1},
- {"matrix": [4, 13], "x": 222, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 202, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 182, "y": 64, "flags": 1},
- {"matrix": [4, 9], "x": 162, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}
- ]
- },
"community_layouts": ["60_ansi"],
"layouts": {
"LAYOUT_60_ansi": {
diff --git a/keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c b/keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c
index 59cbb09a1b..b5af34be38 100644
--- a/keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c
+++ b/keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c
@@ -70,6 +70,28 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
{ 0, SW11_CS16, SW10_CS16, SW12_CS16 }
};
+led_config_t g_led_config = {
+ {
+ { 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 },
+ { 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15 },
+ { 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 0, 29 },
+ { 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, NO_LED, 42 },
+ { 61, 60, 59, NO_LED, NO_LED, 58, NO_LED, NO_LED, NO_LED, NO_LED, 57, 56, NO_LED, 55 }
+ }, {
+ { 224, 0 }, { 208, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 },
+ { 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 }, { 4, 16 },
+ { 204, 32 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 },
+ { 224, 48 }, { 202, 48 }, { 180, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 20, 48 }, { 10, 48 },
+ { 218, 64 }, { 198, 64 }, { 178, 64 }, { 112, 64 }, { 46, 64 }, { 26, 64 }, { 6, 64 }
+ }, {
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 4, 1, 1, 1
+ }
+};
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/dztech/dz60rgb_wkl/info.json b/keyboards/dztech/dz60rgb_wkl/info.json
index d0d66d046c..a4dfb63c7a 100644
--- a/keyboards/dztech/dz60rgb_wkl/info.json
+++ b/keyboards/dztech/dz60rgb_wkl/info.json
@@ -5,72 +5,6 @@
"usb": {
"vid": "0x445A"
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [2, 12], "x": 224, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 208, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [1, 13], "x": 220, "y": 16, "flags": 1},
- {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [2, 13], "x": 204, "y": 32, "flags": 1},
- {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
- {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1},
- {"matrix": [3, 11], "x": 202, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 180, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 164, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 148, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 132, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 116, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 100, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 84, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 68, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 20, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1},
- {"matrix": [4, 13], "x": 218, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 198, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 178, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 112, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 46, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 26, "y": 64, "flags": 1},
- {"matrix": [4, 0], "x": 6, "y": 64, "flags": 1}
- ]
- },
"community_layouts": ["60_ansi_tsangan_split_bs_rshift"],
"layout_aliases": {
"LAYOUT_HHKB": "LAYOUT_60_ansi_tsangan_split_bs_rshift",
diff --git a/keyboards/dztech/dz64rgb/dz64rgb.c b/keyboards/dztech/dz64rgb/dz64rgb.c
index 788658bdce..e2512c72a5 100644
--- a/keyboards/dztech/dz64rgb/dz64rgb.c
+++ b/keyboards/dztech/dz64rgb/dz64rgb.c
@@ -88,6 +88,29 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
{ 0, SW11_CS16, SW10_CS16, SW12_CS16 }
};
+led_config_t g_led_config = {
+ {
+ { 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 },
+ { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 },
+ { 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, NO_LED, 28 },
+ { 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41 },
+ { 63, 62, 61, NO_LED, NO_LED, 60, NO_LED, NO_LED, 59, 58, 57, 56, NO_LED, 55 }
+ }, {
+ { 216, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 },
+ { 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 }, { 4, 16 },
+ { 214, 32 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 },
+ { 224, 48 }, { 218, 48 }, { 192, 48 }, { 176, 48 }, { 160, 48 }, { 144, 48 }, { 128, 48 }, { 112, 48 }, { 96, 48 },{80, 48}, { 64, 48 }, { 48, 48 }, { 32, 48 }, { 8, 48 },
+ { 224, 64 }, { 208, 64 }, { 192, 64 }, { 176, 64 }, { 160, 64 }, { 102, 64 }, { 42, 64 }, { 22, 64 }, { 2, 64 }
+ }, {
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1
+ }
+};
+
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/dztech/dz64rgb/keyboard.json b/keyboards/dztech/dz64rgb/keyboard.json
index 926721a12e..ef95b52400 100644
--- a/keyboards/dztech/dz64rgb/keyboard.json
+++ b/keyboards/dztech/dz64rgb/keyboard.json
@@ -40,72 +40,6 @@
"animation": "cycle_all"
},
"driver": "is31fl3733",
- "layout": [
- {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [2, 13], "x": 214, "y": 32, "flags": 1},
- {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
- {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1},
- {"matrix": [3, 12], "x": 218, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 192, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 176, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 160, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 144, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 128, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 112, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 96, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 80, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 48, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 32, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 8, "y": 48, "flags": 1},
- {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 208, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 192, "y": 64, "flags": 1},
- {"matrix": [4, 9], "x": 176, "y": 64, "flags": 1},
- {"matrix": [4, 8], "x": 160, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 102, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}
- ],
"sleep": true
},
"matrix_pins": {
diff --git a/keyboards/dztech/dz65rgb/v1/keyboard.json b/keyboards/dztech/dz65rgb/v1/keyboard.json
index cdbd9ae10d..32b830052d 100644
--- a/keyboards/dztech/dz65rgb/v1/keyboard.json
+++ b/keyboards/dztech/dz65rgb/v1/keyboard.json
@@ -39,76 +39,6 @@
"animation": "cycle_all"
},
"driver": "is31fl3731",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
- {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1},
- {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 8], "x": 150, "y": 64, "flags": 1},
- {"matrix": [4, 9], "x": 165, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 180, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
- ],
"led_process_limit": 4,
"led_flush_limit": 26,
"max_brightness": 200,
diff --git a/keyboards/dztech/dz65rgb/v1/v1.c b/keyboards/dztech/dz65rgb/v1/v1.c
index e05e35b74b..6e8cf96e4c 100644
--- a/keyboards/dztech/dz65rgb/v1/v1.c
+++ b/keyboards/dztech/dz65rgb/v1/v1.c
@@ -91,6 +91,29 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
{ 0, C9_16, C7_15, C6_15 }
};
+led_config_t g_led_config = {
+ {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 },
+ { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, 57 },
+ { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, NO_LED, 66, 67 }
+ }, {
+ { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 203, 0 }, { 224, 0 },
+ { 4, 16 }, { 23, 16 }, { 38, 16 }, { 53, 16 }, { 68, 16 }, { 83, 16 }, { 98, 16 }, { 113, 16 }, { 128, 16 }, { 143, 16 }, { 158, 16 }, { 173, 16 }, { 188, 16 }, { 206, 16 }, { 224, 16 },
+ { 6, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 201, 32 }, { 224, 32 },
+ { 9, 48 }, { 34, 48 }, { 49, 48 }, { 64, 48 }, { 79, 48 }, { 94, 48 }, { 109, 48 }, { 124, 48 }, { 139, 48 }, { 154, 48 }, { 169, 48 }, { 189, 48 }, { 210, 48 }, { 224, 48 },
+ { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 150, 64 }, { 165, 64 }, { 180, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 }
+ }, {
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1
+ }
+};
+
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/dztech/dz65rgb/v2/keyboard.json b/keyboards/dztech/dz65rgb/v2/keyboard.json
index 7c922bc273..bf7331e101 100644
--- a/keyboards/dztech/dz65rgb/v2/keyboard.json
+++ b/keyboards/dztech/dz65rgb/v2/keyboard.json
@@ -39,76 +39,6 @@
"animation": "cycle_all"
},
"driver": "is31fl3731",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
- {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1},
- {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 8], "x": 150, "y": 64, "flags": 1},
- {"matrix": [4, 9], "x": 165, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 180, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
- ],
"led_process_limit": 4,
"led_flush_limit": 26,
"max_brightness": 200,
diff --git a/keyboards/dztech/dz65rgb/v2/v2.c b/keyboards/dztech/dz65rgb/v2/v2.c
index 2591a4ddcb..a9f7fc104f 100644
--- a/keyboards/dztech/dz65rgb/v2/v2.c
+++ b/keyboards/dztech/dz65rgb/v2/v2.c
@@ -91,6 +91,29 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
{ 0, C9_16, C7_15, C6_15 }
};
+led_config_t g_led_config = {
+ {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 },
+ { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, 57 },
+ { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, NO_LED, 66, 67 }
+ }, {
+ { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 203, 0 }, { 224, 0 },
+ { 4, 16 }, { 23, 16 }, { 38, 16 }, { 53, 16 }, { 68, 16 }, { 83, 16 }, { 98, 16 }, { 113, 16 }, { 128, 16 }, { 143, 16 }, { 158, 16 }, { 173, 16 }, { 188, 16 }, { 206, 16 }, { 224, 16 },
+ { 6, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 201, 32 }, { 224, 32 },
+ { 9, 48 }, { 34, 48 }, { 49, 48 }, { 64, 48 }, { 79, 48 }, { 94, 48 }, { 109, 48 }, { 124, 48 }, { 139, 48 }, { 154, 48 }, { 169, 48 }, { 189, 48 }, { 210, 48 }, { 224, 48 },
+ { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 150, 64 }, { 165, 64 }, { 180, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 }
+ }, {
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1
+ }
+};
+
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/dztech/dz65rgb/v3/keyboard.json b/keyboards/dztech/dz65rgb/v3/keyboard.json
index 6ed8b8c9da..8fef8b3468 100644
--- a/keyboards/dztech/dz65rgb/v3/keyboard.json
+++ b/keyboards/dztech/dz65rgb/v3/keyboard.json
@@ -53,76 +53,6 @@
"animation": "cycle_all"
},
"driver": "is31fl3741",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
- {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1},
- {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 189, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 150, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 165, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 180, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 195, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
- ],
"led_process_limit": 4,
"led_flush_limit": 26,
"sleep": true
diff --git a/keyboards/dztech/dz65rgb/v3/v3.c b/keyboards/dztech/dz65rgb/v3/v3.c
index f5f863de9a..bf54a8cdfc 100755
--- a/keyboards/dztech/dz65rgb/v3/v3.c
+++ b/keyboards/dztech/dz65rgb/v3/v3.c
@@ -93,6 +93,26 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, SW7_CS39, SW7_CS38, SW7_CS37}
};
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED,42, 43 },
+ { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, NO_LED,55, 56, 57 },
+ { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 }
+}, {
+ {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0},
+ {4,16},{23,16},{38,16},{53,16},{68,16},{83,16},{98,16},{113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16},
+ {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32},
+ {9,48},{34,48},{49,48},{64,48},{79,48},{94,48},{109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48},
+ { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 150, 64 }, { 165, 64 }, { 180, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 }
+}, {
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1
+} };
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
diff --git a/keyboards/eek/eek.c b/keyboards/eek/eek.c
new file mode 100644
index 0000000000..8e7a19f820
--- /dev/null
+++ b/keyboards/eek/eek.c
@@ -0,0 +1,55 @@
+/* Copyright 2020 klackygears
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+
+ // Logical Layout
+ // Columns
+ // 0 1 2 3 4
+ // ROWS
+ // 4 3 2 1 0 0
+ // 5 6 7 8 9 1
+ // 14 13 12 11 10 2
+ // 15 16 17 3
+
+ // Logical Layout v1.3
+ // Columns
+ // 0 1 2 3 4 5 6 7 8 9
+ // ROWS
+ // 0 1 2 3 4 5 6 7 8 9 0
+ // 19 18 17 16 15 14 13 12 11 10 1
+ // 20 21 22 23 24 25 26 27 28 29 2
+ // 35 34 33 32 31 30 3
+
+
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },
+ { 19, 18, 17, 16, 15, 14, 13, 12, 11, 10 },
+ { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
+ { NO_LED, NO_LED, 35, 34, 33, 32, 31, 30, NO_LED, NO_LED }
+}, {
+ { 31, 0 }, { 46, 0 }, { 62, 0 }, { 77, 7 }, { 93, 13 }, { 131, 13 }, { 147, 7 }, { 162, 0 }, { 178, 0 }, { 193, 0 },
+ { 201, 10 }, { 185, 10 }, { 170, 10 }, { 154, 17 }, { 139, 24 }, { 85, 24 }, { 70, 17 }, { 54, 10 }, { 39, 10 }, { 23, 10 },
+ { 15, 20 }, { 31, 20 }, { 46, 20 }, { 62, 27 }, { 77, 34 }, { 147, 34 }, { 162, 27 }, { 178, 20 }, { 193, 20 }, { 209, 20 },
+ { 185, 34 }, { 170, 37 }, { 154, 44 }, { 70, 44 }, { 54, 37 }, { 39, 34 },
+}, {
+ 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, 4, 4, 4, 4, 4,
+ 1, 1, 1, 1, 1, 1,
+} };
+#endif
diff --git a/keyboards/eek/info.json b/keyboards/eek/info.json
index eaa68c9b41..0e510e282a 100644
--- a/keyboards/eek/info.json
+++ b/keyboards/eek/info.json
@@ -13,44 +13,6 @@
"val": 150
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 31, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 46, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 62, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 77, "y": 7, "flags": 4},
- {"matrix": [0, 4], "x": 93, "y": 13, "flags": 4},
- {"matrix": [0, 5], "x": 131, "y": 13, "flags": 4},
- {"matrix": [0, 6], "x": 147, "y": 7, "flags": 4},
- {"matrix": [0, 7], "x": 162, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 178, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 193, "y": 0, "flags": 4},
- {"matrix": [1, 9], "x": 201, "y": 10, "flags": 4},
- {"matrix": [1, 8], "x": 185, "y": 10, "flags": 4},
- {"matrix": [1, 7], "x": 170, "y": 10, "flags": 4},
- {"matrix": [1, 6], "x": 154, "y": 17, "flags": 4},
- {"matrix": [1, 5], "x": 139, "y": 24, "flags": 4},
- {"matrix": [1, 4], "x": 85, "y": 24, "flags": 4},
- {"matrix": [1, 3], "x": 70, "y": 17, "flags": 4},
- {"matrix": [1, 2], "x": 54, "y": 10, "flags": 4},
- {"matrix": [1, 1], "x": 39, "y": 10, "flags": 4},
- {"matrix": [1, 0], "x": 23, "y": 10, "flags": 4},
- {"matrix": [2, 0], "x": 15, "y": 20, "flags": 4},
- {"matrix": [2, 1], "x": 31, "y": 20, "flags": 4},
- {"matrix": [2, 2], "x": 46, "y": 20, "flags": 4},
- {"matrix": [2, 3], "x": 62, "y": 27, "flags": 4},
- {"matrix": [2, 4], "x": 77, "y": 34, "flags": 4},
- {"matrix": [2, 5], "x": 147, "y": 34, "flags": 4},
- {"matrix": [2, 6], "x": 162, "y": 27, "flags": 4},
- {"matrix": [2, 7], "x": 178, "y": 20, "flags": 4},
- {"matrix": [2, 8], "x": 193, "y": 20, "flags": 4},
- {"matrix": [2, 9], "x": 209, "y": 20, "flags": 4},
- {"matrix": [3, 7], "x": 185, "y": 34, "flags": 1},
- {"matrix": [3, 6], "x": 170, "y": 37, "flags": 1},
- {"matrix": [3, 5], "x": 154, "y": 44, "flags": 1},
- {"matrix": [3, 4], "x": 70, "y": 44, "flags": 1},
- {"matrix": [3, 3], "x": 54, "y": 37, "flags": 1},
- {"matrix": [3, 2], "x": 39, "y": 34, "flags": 1}
- ],
"max_brightness": 200
},
"features": {
diff --git a/keyboards/ein_60/ein_60.c b/keyboards/ein_60/ein_60.c
index 8a0e69cee4..af11e48235 100644
--- a/keyboards/ein_60/ein_60.c
+++ b/keyboards/ein_60/ein_60.c
@@ -15,6 +15,37 @@
*/
#include "quantum.h"
+#ifdef RGB_MATRIX_ENABLE
+
+ // Logical Layout
+ // Columns
+ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13
+ // ROWS
+ // 37 0 1 2 3 4 5 6 7 8 9 10 11 12 0
+ // 36 13 1
+ // 35 14 2
+ // 34 15 3
+ // 33 16 3
+ // 32 17 4
+ // 31 30 29 28 27 26 25 24 23 22 21 20 19 18 5
+
+led_config_t g_led_config = { {
+ { 36, 1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 10, 13 },
+ { 34, 1, 2, 3, 4, 5, NO_LED, 6, 7, 8, 9, 10, 15 },
+ { 33, 30, 29, 28, 27, 26, NO_LED, 23, 22, 21, 20, 19, 16 },
+ { 32, 30, 29, 28, 27, 26, 24, 23, 22, 21, 20, 19, 17 }
+}, {
+ { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 119, 0 }, { 134, 0 }, { 149, 0 }, { 164, 0 }, { 179, 0 }, { 194, 0 }, { 209, 0 }, { 224, 11 },
+ { 224, 21 }, { 224, 32 }, { 224, 43 }, { 224, 53 }, { 209, 64 }, { 194, 64 }, { 179, 64 }, { 164, 64 }, { 149, 64 }, { 134, 64 }, { 119, 64 }, { 105, 64 }, { 90, 64 },
+ { 75, 64 }, { 60, 64 }, { 45, 64 }, { 30, 64 }, { 15, 64 }, { 0, 53 }, { 0, 43 }, { 0, 32 }, { 0, 21 }, { 0, 11 }, { 15, 0 },
+}, {
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2,
+} };
+#endif
+
#ifdef AUDIO_ENABLE
const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = {
{30, 31, 32, 33, 34, 35, 35, 36, 37, 38, 39, 40, 41},
diff --git a/keyboards/ein_60/keyboard.json b/keyboards/ein_60/keyboard.json
index 99c5040f8d..b1e48f1747 100644
--- a/keyboards/ein_60/keyboard.json
+++ b/keyboards/ein_60/keyboard.json
@@ -12,46 +12,6 @@
"val": 150
},
"driver": "ws2812",
- "layout": [
- {"x": 30, "y": 0, "flags": 2},
- {"matrix": [1, 1], "x": 45, "y": 0, "flags": 2},
- {"matrix": [1, 2], "x": 60, "y": 0, "flags": 2},
- {"matrix": [1, 3], "x": 75, "y": 0, "flags": 2},
- {"matrix": [1, 4], "x": 90, "y": 0, "flags": 2},
- {"matrix": [1, 5], "x": 105, "y": 0, "flags": 2},
- {"matrix": [1, 7], "x": 119, "y": 0, "flags": 2},
- {"matrix": [1, 8], "x": 134, "y": 0, "flags": 2},
- {"matrix": [1, 9], "x": 149, "y": 0, "flags": 2},
- {"matrix": [1, 10], "x": 164, "y": 0, "flags": 2},
- {"matrix": [1, 11], "x": 179, "y": 0, "flags": 2},
- {"x": 194, "y": 0, "flags": 2},
- {"x": 209, "y": 0, "flags": 2},
- {"matrix": [0, 12], "x": 224, "y": 11, "flags": 1},
- {"x": 224, "y": 21, "flags": 1},
- {"matrix": [1, 12], "x": 224, "y": 32, "flags": 1},
- {"matrix": [2, 12], "x": 224, "y": 43, "flags": 1},
- {"matrix": [3, 12], "x": 224, "y": 53, "flags": 1},
- {"x": 209, "y": 64, "flags": 1},
- {"matrix": [3, 11], "x": 194, "y": 64, "flags": 1},
- {"matrix": [3, 10], "x": 179, "y": 64, "flags": 1},
- {"matrix": [3, 9], "x": 164, "y": 64, "flags": 1},
- {"matrix": [3, 8], "x": 149, "y": 64, "flags": 1},
- {"matrix": [3, 7], "x": 134, "y": 64, "flags": 1},
- {"matrix": [3, 6], "x": 119, "y": 64, "flags": 1},
- {"x": 105, "y": 64, "flags": 1},
- {"matrix": [3, 5], "x": 90, "y": 64, "flags": 1},
- {"matrix": [3, 4], "x": 75, "y": 64, "flags": 1},
- {"matrix": [3, 3], "x": 60, "y": 64, "flags": 1},
- {"matrix": [3, 2], "x": 45, "y": 64, "flags": 1},
- {"matrix": [3, 1], "x": 30, "y": 64, "flags": 1},
- {"x": 15, "y": 64, "flags": 1},
- {"matrix": [3, 0], "x": 0, "y": 53, "flags": 1},
- {"matrix": [2, 0], "x": 0, "y": 43, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 32, "flags": 1},
- {"x": 0, "y": 21, "flags": 1},
- {"matrix": [0, 0], "x": 0, "y": 11, "flags": 1},
- {"x": 15, "y": 0, "flags": 2}
- ],
"max_brightness": 200
},
"rgblight": {
diff --git a/keyboards/elephant42/elephant42.c b/keyboards/elephant42/elephant42.c
new file mode 100644
index 0000000000..1ffb5e8083
--- /dev/null
+++ b/keyboards/elephant42/elephant42.c
@@ -0,0 +1,66 @@
+/* Copyright 2021 illness072
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#if defined(RGB_MATRIX_ENABLE)
+led_config_t g_led_config = {
+ { // keymap to LED number
+ // left
+ { 19, 18, 13, 12, 7, 6}, // R3
+ { 20, 17, 14, 11, 8, 5}, // R2
+ {NO_LED, 16, 15, 10, 9, 4}, // R1
+ {NO_LED, NO_LED, 0, 1, 2, 3}, // R0
+ // right
+ { 46, 45, 40, 39, 34, 33}, // R3
+ { 47, 44, 41, 38, 35, 32}, // R2
+ {NO_LED, 43, 42, 37, 36, 31}, // R1
+ {NO_LED, NO_LED, 27, 28, 29, 30}, // R0
+ },
+ {// phisical LED position, {x, y} : x = 0..224, y = 0..64
+ // left-bg [LED_01-21]
+ {56, 65}, {77, 68}, {95, 79}, {109, 91},
+ {87, 46}, {87, 29}, {87, 12}, { 69, 43}, { 69, 26}, { 69, 8},
+ {52, 35}, {52, 17}, {52, 0}, { 35, 4}, { 35, 21}, { 35, 38},
+ {17, 54}, {17, 36}, {17, 19}, { 0, 26}, { 0, 43},
+ // left-ug [LED_22-27]
+ {25, 49}, {26, 19}, {60, 14}, {106, 33}, {107, 72}, { 70, 66},
+ // right-bg [LED_28-48]
+ {199, 65}, {179, 68}, {160, 79}, {146, 91},
+ {168, 46}, {168, 29}, {168, 12}, {186, 43}, {186, 26}, {186, 8},
+ {203, 35}, {203, 17}, {203, 0}, {220, 4}, {220, 21}, {220, 38},
+ {238, 54}, {238, 36}, {238, 19}, {255, 26}, {255, 43},
+ // right-ug [LED_49-54]
+ {230, 49}, {230, 19}, {195, 14}, {149, 33}, {148, 72}, {185, 66},
+ },
+ {// LED Index to Flag
+ // Left-bg [LED_01-21]
+ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
+ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
+ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
+ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
+ // left-ug [LED_22-27]
+ LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW,
+ // right-bg [LED_28-48]
+ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
+ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
+ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
+ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
+ // right-ug [LED_49-54]
+ LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW
+ }
+};
+#endif
diff --git a/keyboards/elephant42/keyboard.json b/keyboards/elephant42/keyboard.json
index be0f1c81a0..60b135b086 100644
--- a/keyboards/elephant42/keyboard.json
+++ b/keyboards/elephant42/keyboard.json
@@ -13,62 +13,6 @@
"sat_steps": 8,
"val_steps": 8,
"speed_steps": 8,
- "layout": [
- {"matrix": [3, 2], "x": 52, "y": 45, "flags": 4},
- {"matrix": [3, 3], "x": 69, "y": 51, "flags": 4},
- {"matrix": [3, 4], "x": 86, "y": 58, "flags": 4},
- {"matrix": [3, 5], "x": 103, "y": 64, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 34, "flags": 4},
- {"matrix": [1, 5], "x": 86, "y": 21, "flags": 4},
- {"matrix": [0, 5], "x": 86, "y": 8, "flags": 4},
- {"matrix": [0, 4], "x": 69, "y": 7, "flags": 4},
- {"matrix": [1, 4], "x": 69, "y": 20, "flags": 4},
- {"matrix": [2, 4], "x": 69, "y": 33, "flags": 4},
- {"matrix": [2, 3], "x": 52, "y": 26, "flags": 4},
- {"matrix": [1, 3], "x": 52, "y": 13, "flags": 4},
- {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 34, "y": 6, "flags": 4},
- {"matrix": [1, 2], "x": 34, "y": 19, "flags": 4},
- {"matrix": [2, 2], "x": 34, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 17, "y": 44, "flags": 4},
- {"matrix": [1, 1], "x": 17, "y": 31, "flags": 4},
- {"matrix": [0, 1], "x": 17, "y": 18, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 24, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 37, "flags": 4},
- {"x": 26, "y": 42, "flags": 2},
- {"x": 26, "y": 19, "flags": 2},
- {"x": 61, "y": 7, "flags": 2},
- {"x": 103, "y": 21, "flags": 2},
- {"x": 103, "y": 51, "flags": 2},
- {"x": 69, "y": 45, "flags": 2},
- {"matrix": [7, 2], "x": 172, "y": 45, "flags": 4},
- {"matrix": [7, 3], "x": 155, "y": 51, "flags": 4},
- {"matrix": [7, 4], "x": 138, "y": 58, "flags": 4},
- {"matrix": [7, 5], "x": 121, "y": 64, "flags": 4},
- {"matrix": [6, 5], "x": 138, "y": 34, "flags": 4},
- {"matrix": [5, 5], "x": 138, "y": 21, "flags": 4},
- {"matrix": [4, 5], "x": 138, "y": 8, "flags": 4},
- {"matrix": [4, 4], "x": 155, "y": 7, "flags": 4},
- {"matrix": [5, 4], "x": 155, "y": 20, "flags": 4},
- {"matrix": [6, 4], "x": 155, "y": 33, "flags": 4},
- {"matrix": [6, 3], "x": 172, "y": 26, "flags": 4},
- {"matrix": [5, 3], "x": 172, "y": 13, "flags": 4},
- {"matrix": [4, 3], "x": 172, "y": 0, "flags": 4},
- {"matrix": [4, 2], "x": 189, "y": 6, "flags": 4},
- {"matrix": [5, 2], "x": 189, "y": 19, "flags": 4},
- {"matrix": [6, 2], "x": 189, "y": 32, "flags": 4},
- {"matrix": [6, 1], "x": 206, "y": 44, "flags": 4},
- {"matrix": [5, 1], "x": 206, "y": 31, "flags": 4},
- {"matrix": [4, 1], "x": 206, "y": 18, "flags": 4},
- {"matrix": [4, 0], "x": 224, "y": 24, "flags": 4},
- {"matrix": [5, 0], "x": 224, "y": 37, "flags": 4},
- {"x": 197, "y": 42, "flags": 2},
- {"x": 197, "y": 19, "flags": 2},
- {"x": 163, "y": 7, "flags": 2},
- {"x": 121, "y": 21, "flags": 2},
- {"x": 121, "y": 51, "flags": 2},
- {"x": 155, "y": 45, "flags": 2}
- ],
"max_brightness": 170,
"split_count": [27, 27]
},
diff --git a/keyboards/ergodox_ez/ergodox_ez.c b/keyboards/ergodox_ez/ergodox_ez.c
index d2e89772c6..9fdc814834 100644
--- a/keyboards/ergodox_ez/ergodox_ez.c
+++ b/keyboards/ergodox_ez/ergodox_ez.c
@@ -275,6 +275,42 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
{1, C2_11, C1_11, C3_11}, // LED23
{1, C5_11, C4_11, C6_11} // LED24
};
+
+
+led_config_t g_led_config = { {
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { 28, 33, 38, 43, 47, NO_LED },
+ { 27, 32, 37, 42, 46, NO_LED },
+ { 26, 31, 36, 41, 45, NO_LED },
+ { 25, 30, 35, 40, 44, NO_LED },
+ { 24, 29, 34, 39, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { 0, 5, 10, 15, NO_LED, NO_LED },
+ { 1, 6, 11, 16, 20, NO_LED },
+ { 2, 7, 12, 17, 21, NO_LED },
+ { 3, 8, 13, 18, 22, NO_LED },
+ { 4, 9, 14, 19, 23, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }
+}, {
+ { 137, 0 }, { 154, 0 }, { 172, 0 }, { 189, 0 }, { 206, 0 }, { 137, 12 },
+ { 154, 12 }, { 172, 12 }, { 189, 12 }, { 206, 12 }, { 137, 25 }, { 154, 25 },
+ { 172, 25 }, { 189, 25 }, { 206, 25 }, { 137, 38 }, { 154, 38 }, { 172, 38 },
+ { 189, 38 }, { 206, 38 }, { 154, 51 }, { 172, 51 }, { 189, 51 }, { 206, 51 },
+ { 86, 0 }, { 68, 0 }, { 51, 0 }, { 34, 0 }, { 17, 0 }, { 86, 12 },
+ { 68, 12 }, { 51, 12 }, { 34, 12 }, { 17, 12 }, { 86, 25 }, { 68, 25 },
+ { 51, 25 }, { 34, 25 }, { 17, 25 }, { 86, 38 }, { 68, 38 }, { 51, 38 },
+ { 34, 38 }, { 17, 38 }, { 68, 51 }, { 51, 51 }, { 34, 51 }, { 17, 51 }
+}, {
+ 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4,
+ 4, 4, 1, 1, 1, 1,
+ 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4,
+ 4, 4, 1, 1, 1, 1
+} };
// clang-format on
# ifdef ORYX_CONFIGURATOR
diff --git a/keyboards/ergodox_ez/info.json b/keyboards/ergodox_ez/info.json
index 8ef8ed376d..f7b20b19e0 100644
--- a/keyboards/ergodox_ez/info.json
+++ b/keyboards/ergodox_ez/info.json
@@ -69,56 +69,6 @@
"pixel_fractal": true
},
"driver": "is31fl3731",
- "layout": [
- {"matrix": [8, 0], "x": 137, "y": 0, "flags": 4},
- {"matrix": [9, 0], "x": 154, "y": 0, "flags": 4},
- {"matrix": [10, 0], "x": 172, "y": 0, "flags": 4},
- {"matrix": [11, 0], "x": 189, "y": 0, "flags": 4},
- {"matrix": [12, 0], "x": 206, "y": 0, "flags": 4},
- {"matrix": [8, 1], "x": 137, "y": 12, "flags": 4},
- {"matrix": [9, 1], "x": 154, "y": 12, "flags": 4},
- {"matrix": [10, 1], "x": 172, "y": 12, "flags": 4},
- {"matrix": [11, 1], "x": 189, "y": 12, "flags": 4},
- {"matrix": [12, 1], "x": 206, "y": 12, "flags": 4},
- {"matrix": [8, 2], "x": 137, "y": 25, "flags": 4},
- {"matrix": [9, 2], "x": 154, "y": 25, "flags": 4},
- {"matrix": [10, 2], "x": 172, "y": 25, "flags": 4},
- {"matrix": [11, 2], "x": 189, "y": 25, "flags": 4},
- {"matrix": [12, 2], "x": 206, "y": 25, "flags": 4},
- {"matrix": [8, 3], "x": 137, "y": 38, "flags": 4},
- {"matrix": [9, 3], "x": 154, "y": 38, "flags": 4},
- {"matrix": [10, 3], "x": 172, "y": 38, "flags": 4},
- {"matrix": [11, 3], "x": 189, "y": 38, "flags": 4},
- {"matrix": [12, 3], "x": 206, "y": 38, "flags": 4},
- {"matrix": [9, 4], "x": 154, "y": 51, "flags": 1},
- {"matrix": [10, 4], "x": 172, "y": 51, "flags": 1},
- {"matrix": [11, 4], "x": 189, "y": 51, "flags": 1},
- {"matrix": [12, 4], "x": 206, "y": 51, "flags": 1},
- {"matrix": [5, 0], "x": 86, "y": 0, "flags": 4},
- {"matrix": [4, 0], "x": 68, "y": 0, "flags": 4},
- {"matrix": [3, 0], "x": 51, "y": 0, "flags": 4},
- {"matrix": [2, 0], "x": 34, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 17, "y": 0, "flags": 4},
- {"matrix": [5, 1], "x": 86, "y": 12, "flags": 4},
- {"matrix": [4, 1], "x": 68, "y": 12, "flags": 4},
- {"matrix": [3, 1], "x": 51, "y": 12, "flags": 4},
- {"matrix": [2, 1], "x": 34, "y": 12, "flags": 4},
- {"matrix": [1, 1], "x": 17, "y": 12, "flags": 4},
- {"matrix": [5, 2], "x": 86, "y": 25, "flags": 4},
- {"matrix": [4, 2], "x": 68, "y": 25, "flags": 4},
- {"matrix": [3, 2], "x": 51, "y": 25, "flags": 4},
- {"matrix": [2, 2], "x": 34, "y": 25, "flags": 4},
- {"matrix": [1, 2], "x": 17, "y": 25, "flags": 4},
- {"matrix": [5, 3], "x": 86, "y": 38, "flags": 4},
- {"matrix": [4, 3], "x": 68, "y": 38, "flags": 4},
- {"matrix": [3, 3], "x": 51, "y": 38, "flags": 4},
- {"matrix": [2, 3], "x": 34, "y": 38, "flags": 4},
- {"matrix": [1, 3], "x": 17, "y": 38, "flags": 4},
- {"matrix": [4, 4], "x": 68, "y": 51, "flags": 1},
- {"matrix": [3, 4], "x": 51, "y": 51, "flags": 1},
- {"matrix": [2, 4], "x": 34, "y": 51, "flags": 1},
- {"matrix": [1, 4], "x": 17, "y": 51, "flags": 1}
- ],
"led_flush_limit": 26,
"led_process_limit": 5,
"sleep": true
diff --git a/keyboards/evyd13/atom47/rev5/keyboard.json b/keyboards/evyd13/atom47/rev5/keyboard.json
index daf7e3677f..86ff90c19c 100644
--- a/keyboards/evyd13/atom47/rev5/keyboard.json
+++ b/keyboards/evyd13/atom47/rev5/keyboard.json
@@ -39,57 +39,7 @@
"pixel_flow": true,
"pixel_fractal": true
},
- "driver": "is31fl3733",
- "layout": [
- {"matrix": [0, 0], "x": 9, "y": 8, "flags": 1},
- {"matrix": [0, 1], "x": 26, "y": 8, "flags": 4},
- {"matrix": [0, 2], "x": 43, "y": 8, "flags": 4},
- {"matrix": [0, 3], "x": 60, "y": 8, "flags": 4},
- {"matrix": [0, 4], "x": 78, "y": 8, "flags": 4},
- {"matrix": [0, 5], "x": 95, "y": 8, "flags": 4},
- {"matrix": [0, 6], "x": 112, "y": 8, "flags": 4},
- {"matrix": [0, 7], "x": 129, "y": 8, "flags": 4},
- {"matrix": [0, 8], "x": 146, "y": 8, "flags": 4},
- {"matrix": [0, 9], "x": 164, "y": 8, "flags": 4},
- {"matrix": [0, 10], "x": 181, "y": 8, "flags": 4},
- {"matrix": [0, 11], "x": 198, "y": 8, "flags": 1},
- {"matrix": [0, 12], "x": 215, "y": 8, "flags": 1},
- {"matrix": [1, 0], "x": 11, "y": 24, "flags": 1},
- {"matrix": [1, 1], "x": 30, "y": 24, "flags": 4},
- {"matrix": [1, 2], "x": 47, "y": 24, "flags": 4},
- {"matrix": [1, 3], "x": 64, "y": 24, "flags": 4},
- {"matrix": [1, 4], "x": 82, "y": 24, "flags": 4},
- {"matrix": [1, 5], "x": 99, "y": 24, "flags": 4},
- {"matrix": [1, 6], "x": 116, "y": 24, "flags": 4},
- {"matrix": [1, 7], "x": 134, "y": 24, "flags": 4},
- {"matrix": [1, 8], "x": 151, "y": 24, "flags": 4},
- {"matrix": [1, 9], "x": 168, "y": 24, "flags": 4},
- {"matrix": [1, 10], "x": 185, "y": 24, "flags": 4},
- {"matrix": [1, 12], "x": 209, "y": 24, "flags": 1},
- {"matrix": [2, 0], "x": 15, "y": 40, "flags": 1},
- {"matrix": [2, 1], "x": 20, "y": 22, "flags": 8},
- {"matrix": [2, 2], "x": 39, "y": 40, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 40, "flags": 4},
- {"matrix": [2, 4], "x": 73, "y": 40, "flags": 4},
- {"matrix": [2, 5], "x": 90, "y": 40, "flags": 4},
- {"matrix": [2, 6], "x": 108, "y": 40, "flags": 4},
- {"matrix": [2, 7], "x": 125, "y": 40, "flags": 4},
- {"matrix": [2, 8], "x": 142, "y": 40, "flags": 4},
- {"matrix": [2, 9], "x": 159, "y": 40, "flags": 4},
- {"matrix": [2, 10], "x": 177, "y": 40, "flags": 4},
- {"matrix": [2, 11], "x": 196, "y": 40, "flags": 1},
- {"matrix": [2, 12], "x": 215, "y": 40, "flags": 1},
- {"matrix": [3, 0], "x": 11, "y": 56, "flags": 1},
- {"matrix": [3, 1], "x": 30, "y": 56, "flags": 1},
- {"matrix": [3, 2], "x": 47, "y": 56, "flags": 1},
- {"matrix": [3, 3], "x": 64, "y": 56, "flags": 1},
- {"matrix": [3, 5], "x": 88, "y": 56, "flags": 1},
- {"matrix": [3, 7], "x": 127, "y": 56, "flags": 1},
- {"matrix": [3, 9], "x": 159, "y": 56, "flags": 1},
- {"matrix": [3, 10], "x": 177, "y": 56, "flags": 1},
- {"matrix": [3, 11], "x": 194, "y": 56, "flags": 1},
- {"matrix": [3, 12], "x": 213, "y": 56, "flags": 1}
- ]
+ "driver": "is31fl3733"
},
"matrix_pins": {
"cols": ["F0", "F1", "F4", "F5", "F6", "F7", "E6", "D7", "B4", "B5", "B6", "C6", "C7"],
diff --git a/keyboards/evyd13/atom47/rev5/rev5.c b/keyboards/evyd13/atom47/rev5/rev5.c
index 7e9eb6307d..b8ea0688cd 100644
--- a/keyboards/evyd13/atom47/rev5/rev5.c
+++ b/keyboards/evyd13/atom47/rev5/rev5.c
@@ -77,6 +77,73 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
{0, SW11_CS13, SW12_CS13, SW10_CS13}
};
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 },
+ { 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, NO_LED, 24 },
+ { 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37 },
+ { 38, 39, 40, 41, NO_LED, 42, NO_LED, 43, NO_LED, 44, 45, 46, 47 }
+}, {
+ // LED Index to Physical Position
+ { 9, 8 },
+ { 26, 8 },
+ { 43, 8 },
+ { 60, 8 },
+ { 78, 8 },
+ { 95, 8 },
+ { 112, 8 },
+ { 129, 8 },
+ { 146, 8 },
+ { 164, 8 },
+ { 181, 8 },
+ { 198, 8 },
+ { 215, 8 },
+
+ { 11, 24 },
+ { 30, 24 },
+ { 47, 24 },
+ { 64, 24 },
+ { 82, 24 },
+ { 99, 24 },
+ { 116, 24 },
+ { 134, 24 },
+ { 151, 24 },
+ { 168, 24 },
+ { 185, 24 },
+ { 209, 24 },
+
+ { 15, 40 },
+ { 20, 22 },
+ { 39, 40 },
+ { 56, 40 },
+ { 73, 40 },
+ { 90, 40 },
+ { 108, 40 },
+ { 125, 40 },
+ { 142, 40 },
+ { 159, 40 },
+ { 177, 40 },
+ { 196, 40 },
+ { 215, 40 },
+
+ { 11, 56 },
+ { 30, 56 },
+ { 47, 56 },
+ { 64, 56 },
+ { 88, 56 },
+ { 127, 56 },
+ { 159, 56 },
+ { 177, 56 },
+ { 194, 56 },
+ { 213, 56 },
+}, {
+ // LED Index to Flag
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
+} };
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/exclusive/e6_rgb/e6_rgb.c b/keyboards/exclusive/e6_rgb/e6_rgb.c
index 7e3bed8f2f..9a7856306b 100644
--- a/keyboards/exclusive/e6_rgb/e6_rgb.c
+++ b/keyboards/exclusive/e6_rgb/e6_rgb.c
@@ -90,6 +90,81 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
{0, SW5_CS16, SW4_CS16, SW6_CS16},
{0, SW2_CS16, SW1_CS16, SW3_CS16},
};
+
+led_config_t g_led_config = { {
+ { 0, 1, 4, 5, 12, 13, 36, 20, 21, 24, 25, 16, 17, 28 },
+ { 2, 6, 7, 14, 15, 37, 38, 22, 23, 26, 27, 18, 19, 30 },
+ { 3, 8, 9, 32, 33, 39, 40, 44, 45, 48, 49, 52, 31, NO_LED },
+ { 59, 10, 11, 34, 35, 41, 42, 46, 47, 50, 53, 54, 56, NO_LED },
+ { 60, 61, 62, NO_LED, NO_LED, 43, 51, 55, 58, 57, NO_LED, NO_LED, NO_LED, NO_LED }
+}, {
+//cs1
+ { 0, 0 }, { 17, 0 }, { 0, 16 }, { 0, 32 },
+//cs2
+ { 34, 0 }, { 51, 0 }, { 17, 16 }, { 34, 16 },
+//cs3
+ { 17, 32 }, { 34, 32 }, { 17, 48 }, { 34, 48 },
+//cs4
+ { 68, 0 }, { 85, 0 }, { 51, 16 }, { 68, 16 },
+//cs5
+ { 187, 0 }, { 204, 0 }, { 187, 16 }, { 204, 16 },
+//cs6
+ { 119, 0 }, { 136, 0 }, { 119, 16 }, { 136, 16 },
+//cs7
+ { 153, 0 }, { 170, 0 }, { 153, 16 }, { 170, 16 },
+//cs8
+ { 221, 0 }, { 221, 0 }, { 221, 32 }, { 221, 16 },
+//cs9
+ { 51, 32 }, { 68, 32 }, { 51, 48 }, { 68, 48 },
+//cs10
+ { 102, 0 }, { 85, 16 }, { 102, 16 }, { 85, 32 },
+//cs11
+ { 102, 32 }, { 85, 48 }, { 102, 48 }, { 102, 64 },
+//cs12
+ { 119, 32 }, { 136, 32 }, { 119, 48 }, { 136, 48 },
+//cs13
+ { 153, 32 }, { 170, 32 }, { 153, 48 }, { 136, 48 },
+//cs14
+ { 187, 32 }, { 170, 48 }, { 187, 48 }, { 153, 48 },
+//cs15
+ { 221, 48 }, { 221, 64 }, { 204, 64 },
+//cs16
+ { 0, 48 }, { 0, 64 }, { 17, 64 }, { 34, 64 }
+}, {
+//cs1
+ 1, 4, 1, 1,
+//cs2
+ 4, 4, 4, 4,
+//cs3
+ 4, 4, 4, 4,
+//cs4
+ 4, 4, 4, 4,
+//cs5
+ 4, 4, 4, 4,
+//cs6
+ 4, 4, 4, 4,
+//cs7
+ 4, 4, 4, 4,
+//cs8
+ 4, 4, 1, 1,
+//cs9
+ 4, 4, 4, 4,
+//cs10
+ 4, 4, 4, 4,
+//cs11
+ 4, 4, 4, 4,
+//cs12
+ 4, 4, 4, 4,
+//cs13
+ 4, 4, 4, 1,
+//cs14
+ 4, 4, 1, 1,
+//cs15
+ 1, 1, 1,
+//cs16
+ 1, 1, 1, 1
+} };
+
#endif
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
diff --git a/keyboards/exclusive/e6_rgb/keyboard.json b/keyboards/exclusive/e6_rgb/keyboard.json
index d65893cf31..52d77dfcaa 100644
--- a/keyboards/exclusive/e6_rgb/keyboard.json
+++ b/keyboards/exclusive/e6_rgb/keyboard.json
@@ -8,72 +8,7 @@
"device_version": "0.6.2"
},
"rgb_matrix": {
- "driver": "is31fl3733",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 17, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1},
- {"matrix": [0, 2], "x": 34, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 51, "y": 0, "flags": 4},
- {"matrix": [1, 1], "x": 17, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 34, "y": 16, "flags": 4},
- {"matrix": [2, 1], "x": 17, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 34, "y": 32, "flags": 4},
- {"matrix": [3, 1], "x": 17, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4},
- {"matrix": [0, 4], "x": 68, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 85, "y": 0, "flags": 4},
- {"matrix": [1, 3], "x": 51, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4},
- {"matrix": [0, 11], "x": 187, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 204, "y": 0, "flags": 4},
- {"matrix": [1, 11], "x": 187, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 204, "y": 16, "flags": 4},
- {"matrix": [0, 7], "x": 119, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 136, "y": 0, "flags": 4},
- {"matrix": [1, 7], "x": 119, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4},
- {"matrix": [0, 9], "x": 153, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 170, "y": 0, "flags": 4},
- {"matrix": [1, 9], "x": 153, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 170, "y": 16, "flags": 4},
- {"matrix": [0, 13], "x": 221, "y": 0, "flags": 4},
- {"x": 221, "y": 0, "flags": 4},
- {"matrix": [1, 13], "x": 221, "y": 32, "flags": 1},
- {"matrix": [2, 12], "x": 221, "y": 16, "flags": 1},
- {"matrix": [2, 3], "x": 51, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 68, "y": 32, "flags": 4},
- {"matrix": [3, 3], "x": 51, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 68, "y": 48, "flags": 4},
- {"matrix": [0, 6], "x": 102, "y": 0, "flags": 4},
- {"matrix": [1, 5], "x": 85, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 102, "y": 16, "flags": 4},
- {"matrix": [2, 5], "x": 85, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 102, "y": 32, "flags": 4},
- {"matrix": [3, 5], "x": 85, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 102, "y": 48, "flags": 4},
- {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4},
- {"matrix": [2, 7], "x": 119, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 136, "y": 32, "flags": 4},
- {"matrix": [3, 7], "x": 119, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 136, "y": 48, "flags": 4},
- {"matrix": [2, 9], "x": 153, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 170, "y": 32, "flags": 4},
- {"matrix": [3, 9], "x": 153, "y": 48, "flags": 4},
- {"matrix": [4, 6], "x": 136, "y": 48, "flags": 1},
- {"matrix": [2, 11], "x": 187, "y": 32, "flags": 4},
- {"matrix": [3, 10], "x": 170, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 187, "y": 48, "flags": 1},
- {"matrix": [4, 7], "x": 153, "y": 48, "flags": 1},
- {"matrix": [3, 12], "x": 221, "y": 48, "flags": 1},
- {"matrix": [4, 9], "x": 221, "y": 64, "flags": 1},
- {"matrix": [4, 8], "x": 204, "y": 64, "flags": 1},
- {"matrix": [3, 0], "x": 0, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 0, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 17, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 34, "y": 64, "flags": 1}
- ]
+ "driver": "is31fl3733"
},
"features": {
"bootmagic": true,
diff --git a/keyboards/exclusive/e7v2/keyboard.json b/keyboards/exclusive/e7v2/keyboard.json
deleted file mode 100644
index 542237e1bf..0000000000
--- a/keyboards/exclusive/e7v2/keyboard.json
+++ /dev/null
@@ -1,392 +0,0 @@
-{
- "manufacturer": "Exclusive / E-Team",
- "keyboard_name": "E7V2",
- "maintainer": "Aidan Smith",
- "bootloader": "atmel-dfu",
- "diode_direction": "ROW2COL",
- "features": {
- "backlight": true,
- "bootmagic": true,
- "extrakey": true,
- "mousekey": true,
- "nkro": true,
- "rgblight": true
- },
- "ws2812": {
- "pin": "E2"
- },
- "rgblight": {
- "driver": "ws2812",
- "saturation_steps": 8,
- "brightness_steps": 8,
- "led_count": 54,
- "animations": {
- "breathing": true,
- "rainbow_mood": true,
- "rainbow_swirl": true,
- "snake": true,
- "knight": true,
- "christmas": true,
- "static_gradient": true,
- "alternating": true,
- "twinkle": true
- }
- },
- "backlight": {
- "pin": "B6",
- "levels": 6
- },
- "matrix_pins": {
- "cols": ["D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4", "F7", "F6", "F5", "F4", "F1", "F0"],
- "rows": ["C6", "B0", "B1", "B2", "B3", "B7"]
- },
- "processor": "atmega32u4",
- "url": "https://exclusive.run/collections/e7-v2",
- "usb": {
- "device_version": "1.0.0",
- "pid": "0xE702",
- "vid": "0x4558"
- },
- "layouts": {
- "LAYOUT_75_ansi": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0},
- {"matrix": [0, 1], "x": 1.25, "y": 0},
- {"matrix": [0, 2], "x": 2.25, "y": 0},
- {"matrix": [0, 3], "x": 3.25, "y": 0},
- {"matrix": [0, 4], "x": 4.25, "y": 0},
- {"matrix": [0, 5], "x": 5.50, "y": 0},
- {"matrix": [0, 6], "x": 6.50, "y": 0},
- {"matrix": [0, 7], "x": 7.50, "y": 0},
- {"matrix": [0, 8], "x": 8.50, "y": 0},
- {"matrix": [0, 9], "x": 9.75, "y": 0},
- {"matrix": [0, 10], "x": 10.75, "y": 0},
- {"matrix": [0, 11], "x": 11.75, "y": 0},
- {"matrix": [0, 12], "x": 12.75, "y": 0},
- {"matrix": [0, 13], "x": 14, "y": 0},
- {"matrix": [0, 14], "x": 15.25, "y": 0},
- {"matrix": [1, 0], "x": 0, "y": 1.25},
- {"matrix": [1, 1], "x": 1, "y": 1.25},
- {"matrix": [1, 2], "x": 2, "y": 1.25},
- {"matrix": [1, 3], "x": 3, "y": 1.25},
- {"matrix": [1, 4], "x": 4, "y": 1.25},
- {"matrix": [1, 5], "x": 5, "y": 1.25},
- {"matrix": [1, 6], "x": 6, "y": 1.25},
- {"matrix": [1, 7], "x": 7, "y": 1.25},
- {"matrix": [1, 8], "x": 8, "y": 1.25},
- {"matrix": [1, 9], "x": 9, "y": 1.25},
- {"matrix": [1, 10], "x": 10, "y": 1.25},
- {"matrix": [1, 11], "x": 11, "y": 1.25},
- {"matrix": [1, 12], "x": 12, "y": 1.25},
- {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2},
- {"matrix": [5, 14], "x": 15.25, "y": 1.25},
- {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
- {"matrix": [2, 1], "x": 1.5, "y": 2.25},
- {"matrix": [2, 2], "x": 2.5, "y": 2.25},
- {"matrix": [2, 3], "x": 3.5, "y": 2.25},
- {"matrix": [2, 4], "x": 4.5, "y": 2.25},
- {"matrix": [2, 5], "x": 5.5, "y": 2.25},
- {"matrix": [2, 6], "x": 6.5, "y": 2.25},
- {"matrix": [2, 7], "x": 7.5, "y": 2.25},
- {"matrix": [2, 8], "x": 8.5, "y": 2.25},
- {"matrix": [2, 9], "x": 9.5, "y": 2.25},
- {"matrix": [2, 10], "x": 10.5, "y": 2.25},
- {"matrix": [2, 11], "x": 11.5, "y": 2.25},
- {"matrix": [2, 12], "x": 12.5, "y": 2.25},
- {"matrix": [3, 12], "x": 13.5, "y": 2.25, "w": 1.5},
- {"matrix": [2, 14], "x": 15.25, "y": 2.25},
- {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
- {"matrix": [3, 1], "x": 1.75, "y": 3.25},
- {"matrix": [3, 2], "x": 2.75, "y": 3.25},
- {"matrix": [3, 3], "x": 3.75, "y": 3.25},
- {"matrix": [3, 4], "x": 4.75, "y": 3.25},
- {"matrix": [3, 5], "x": 5.75, "y": 3.25},
- {"matrix": [3, 6], "x": 6.75, "y": 3.25},
- {"matrix": [3, 7], "x": 7.75, "y": 3.25},
- {"matrix": [3, 8], "x": 8.75, "y": 3.25},
- {"matrix": [3, 9], "x": 9.75, "y": 3.25},
- {"matrix": [3, 10], "x": 10.75, "y": 3.25},
- {"matrix": [3, 11], "x": 11.75, "y": 3.25},
- {"matrix": [2, 13], "x": 12.75, "y": 3.25, "w": 2.25},
- {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
- {"matrix": [4, 2], "x": 2.25, "y": 4.25},
- {"matrix": [4, 3], "x": 3.25, "y": 4.25},
- {"matrix": [4, 4], "x": 4.25, "y": 4.25},
- {"matrix": [4, 5], "x": 5.25, "y": 4.25},
- {"matrix": [4, 6], "x": 6.25, "y": 4.25},
- {"matrix": [4, 7], "x": 7.25, "y": 4.25},
- {"matrix": [4, 8], "x": 8.25, "y": 4.25},
- {"matrix": [4, 9], "x": 9.25, "y": 4.25},
- {"matrix": [4, 10], "x": 10.25, "y": 4.25},
- {"matrix": [4, 11], "x": 11.25, "y": 4.25},
- {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
- {"matrix": [4, 13], "x": 14.25, "y": 4.5},
- {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
- {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
- {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
- {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
- {"matrix": [5, 8], "x": 10, "y": 5.25, "w": 1.50},
- {"matrix": [5, 10], "x": 11.5, "y": 5.25, "w": 1.50},
- {"matrix": [5, 11], "x": 13.25, "y": 5.5},
- {"matrix": [5, 12], "x": 14.25, "y": 5.5},
- {"matrix": [5, 13], "x": 15.25, "y": 5.5}
- ]
- },
- "LAYOUT_75_iso": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0},
- {"matrix": [0, 1], "x": 1.25, "y": 0},
- {"matrix": [0, 2], "x": 2.25, "y": 0},
- {"matrix": [0, 3], "x": 3.25, "y": 0},
- {"matrix": [0, 4], "x": 4.25, "y": 0},
- {"matrix": [0, 5], "x": 5.50, "y": 0},
- {"matrix": [0, 6], "x": 6.50, "y": 0},
- {"matrix": [0, 7], "x": 7.50, "y": 0},
- {"matrix": [0, 8], "x": 8.50, "y": 0},
- {"matrix": [0, 9], "x": 9.75, "y": 0},
- {"matrix": [0, 10], "x": 10.75, "y": 0},
- {"matrix": [0, 11], "x": 11.75, "y": 0},
- {"matrix": [0, 12], "x": 12.75, "y": 0},
- {"matrix": [0, 13], "x": 14, "y": 0},
- {"matrix": [0, 14], "x": 15.25, "y": 0},
- {"matrix": [1, 0], "x": 0, "y": 1.25},
- {"matrix": [1, 1], "x": 1, "y": 1.25},
- {"matrix": [1, 2], "x": 2, "y": 1.25},
- {"matrix": [1, 3], "x": 3, "y": 1.25},
- {"matrix": [1, 4], "x": 4, "y": 1.25},
- {"matrix": [1, 5], "x": 5, "y": 1.25},
- {"matrix": [1, 6], "x": 6, "y": 1.25},
- {"matrix": [1, 7], "x": 7, "y": 1.25},
- {"matrix": [1, 8], "x": 8, "y": 1.25},
- {"matrix": [1, 9], "x": 9, "y": 1.25},
- {"matrix": [1, 10], "x": 10, "y": 1.25},
- {"matrix": [1, 11], "x": 11, "y": 1.25},
- {"matrix": [1, 12], "x": 12, "y": 1.25},
- {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2},
- {"matrix": [5, 14], "x": 15.25, "y": 1.25},
- {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
- {"matrix": [2, 1], "x": 1.5, "y": 2.25},
- {"matrix": [2, 2], "x": 2.5, "y": 2.25},
- {"matrix": [2, 3], "x": 3.5, "y": 2.25},
- {"matrix": [2, 4], "x": 4.5, "y": 2.25},
- {"matrix": [2, 5], "x": 5.5, "y": 2.25},
- {"matrix": [2, 6], "x": 6.5, "y": 2.25},
- {"matrix": [2, 7], "x": 7.5, "y": 2.25},
- {"matrix": [2, 8], "x": 8.5, "y": 2.25},
- {"matrix": [2, 9], "x": 9.5, "y": 2.25},
- {"matrix": [2, 10], "x": 10.5, "y": 2.25},
- {"matrix": [2, 11], "x": 11.5, "y": 2.25},
- {"matrix": [2, 12], "x": 12.5, "y": 2.25},
- {"matrix": [2, 14], "x": 15.25, "y": 2.25},
- {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
- {"matrix": [3, 1], "x": 1.75, "y": 3.25},
- {"matrix": [3, 2], "x": 2.75, "y": 3.25},
- {"matrix": [3, 3], "x": 3.75, "y": 3.25},
- {"matrix": [3, 4], "x": 4.75, "y": 3.25},
- {"matrix": [3, 5], "x": 5.75, "y": 3.25},
- {"matrix": [3, 6], "x": 6.75, "y": 3.25},
- {"matrix": [3, 7], "x": 7.75, "y": 3.25},
- {"matrix": [3, 8], "x": 8.75, "y": 3.25},
- {"matrix": [3, 9], "x": 9.75, "y": 3.25},
- {"matrix": [3, 10], "x": 10.75, "y": 3.25},
- {"matrix": [3, 11], "x": 11.75, "y": 3.25},
- {"matrix": [3, 12], "x": 12.75, "y": 3.25},
- {"matrix": [2, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
- {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
- {"matrix": [4, 1], "x": 1.25, "y": 4.25},
- {"matrix": [4, 2], "x": 2.25, "y": 4.25},
- {"matrix": [4, 3], "x": 3.25, "y": 4.25},
- {"matrix": [4, 4], "x": 4.25, "y": 4.25},
- {"matrix": [4, 5], "x": 5.25, "y": 4.25},
- {"matrix": [4, 6], "x": 6.25, "y": 4.25},
- {"matrix": [4, 7], "x": 7.25, "y": 4.25},
- {"matrix": [4, 8], "x": 8.25, "y": 4.25},
- {"matrix": [4, 9], "x": 9.25, "y": 4.25},
- {"matrix": [4, 10], "x": 10.25, "y": 4.25},
- {"matrix": [4, 11], "x": 11.25, "y": 4.25},
- {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
- {"matrix": [4, 13], "x": 14.25, "y": 4.5},
- {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
- {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
- {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
- {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
- {"matrix": [5, 8], "x": 10, "y": 5.25, "w": 1.50},
- {"matrix": [5, 10], "x": 11.5, "y": 5.25, "w": 1.50},
- {"matrix": [5, 11], "x": 13.25, "y": 5.5},
- {"matrix": [5, 12], "x": 14.25, "y": 5.5},
- {"matrix": [5, 13], "x": 15.25, "y": 5.5}
- ]
- },
- "LAYOUT_75_ansi_split_bs": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0},
- {"matrix": [0, 1], "x": 1.25, "y": 0},
- {"matrix": [0, 2], "x": 2.25, "y": 0},
- {"matrix": [0, 3], "x": 3.25, "y": 0},
- {"matrix": [0, 4], "x": 4.25, "y": 0},
- {"matrix": [0, 5], "x": 5.50, "y": 0},
- {"matrix": [0, 6], "x": 6.50, "y": 0},
- {"matrix": [0, 7], "x": 7.50, "y": 0},
- {"matrix": [0, 8], "x": 8.50, "y": 0},
- {"matrix": [0, 9], "x": 9.75, "y": 0},
- {"matrix": [0, 10], "x": 10.75, "y": 0},
- {"matrix": [0, 11], "x": 11.75, "y": 0},
- {"matrix": [0, 12], "x": 12.75, "y": 0},
- {"matrix": [0, 13], "x": 14, "y": 0},
- {"matrix": [0, 14], "x": 15.25, "y": 0},
- {"matrix": [1, 0], "x": 0, "y": 1.25},
- {"matrix": [1, 1], "x": 1, "y": 1.25},
- {"matrix": [1, 2], "x": 2, "y": 1.25},
- {"matrix": [1, 3], "x": 3, "y": 1.25},
- {"matrix": [1, 4], "x": 4, "y": 1.25},
- {"matrix": [1, 5], "x": 5, "y": 1.25},
- {"matrix": [1, 6], "x": 6, "y": 1.25},
- {"matrix": [1, 7], "x": 7, "y": 1.25},
- {"matrix": [1, 8], "x": 8, "y": 1.25},
- {"matrix": [1, 9], "x": 9, "y": 1.25},
- {"matrix": [1, 10], "x": 10, "y": 1.25},
- {"matrix": [1, 11], "x": 11, "y": 1.25},
- {"matrix": [1, 12], "x": 12, "y": 1.25},
- {"matrix": [1, 13], "x": 13, "y": 1.25},
- {"matrix": [1, 14], "x": 14, "y": 1.25},
- {"matrix": [5, 14], "x": 15.25, "y": 1.25},
- {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
- {"matrix": [2, 1], "x": 1.5, "y": 2.25},
- {"matrix": [2, 2], "x": 2.5, "y": 2.25},
- {"matrix": [2, 3], "x": 3.5, "y": 2.25},
- {"matrix": [2, 4], "x": 4.5, "y": 2.25},
- {"matrix": [2, 5], "x": 5.5, "y": 2.25},
- {"matrix": [2, 6], "x": 6.5, "y": 2.25},
- {"matrix": [2, 7], "x": 7.5, "y": 2.25},
- {"matrix": [2, 8], "x": 8.5, "y": 2.25},
- {"matrix": [2, 9], "x": 9.5, "y": 2.25},
- {"matrix": [2, 10], "x": 10.5, "y": 2.25},
- {"matrix": [2, 11], "x": 11.5, "y": 2.25},
- {"matrix": [2, 12], "x": 12.5, "y": 2.25},
- {"matrix": [3, 12], "x": 13.5, "y": 2.25, "w": 1.5},
- {"matrix": [2, 14], "x": 15.25, "y": 2.25},
- {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
- {"matrix": [3, 1], "x": 1.75, "y": 3.25},
- {"matrix": [3, 2], "x": 2.75, "y": 3.25},
- {"matrix": [3, 3], "x": 3.75, "y": 3.25},
- {"matrix": [3, 4], "x": 4.75, "y": 3.25},
- {"matrix": [3, 5], "x": 5.75, "y": 3.25},
- {"matrix": [3, 6], "x": 6.75, "y": 3.25},
- {"matrix": [3, 7], "x": 7.75, "y": 3.25},
- {"matrix": [3, 8], "x": 8.75, "y": 3.25},
- {"matrix": [3, 9], "x": 9.75, "y": 3.25},
- {"matrix": [3, 10], "x": 10.75, "y": 3.25},
- {"matrix": [3, 11], "x": 11.75, "y": 3.25},
- {"matrix": [2, 13], "x": 12.75, "y": 3.25, "w": 2.25},
- {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
- {"matrix": [4, 2], "x": 2.25, "y": 4.25},
- {"matrix": [4, 3], "x": 3.25, "y": 4.25},
- {"matrix": [4, 4], "x": 4.25, "y": 4.25},
- {"matrix": [4, 5], "x": 5.25, "y": 4.25},
- {"matrix": [4, 6], "x": 6.25, "y": 4.25},
- {"matrix": [4, 7], "x": 7.25, "y": 4.25},
- {"matrix": [4, 8], "x": 8.25, "y": 4.25},
- {"matrix": [4, 9], "x": 9.25, "y": 4.25},
- {"matrix": [4, 10], "x": 10.25, "y": 4.25},
- {"matrix": [4, 11], "x": 11.25, "y": 4.25},
- {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
- {"matrix": [4, 13], "x": 14.25, "y": 4.5},
- {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
- {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
- {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
- {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
- {"matrix": [5, 8], "x": 10, "y": 5.25, "w": 1.50},
- {"matrix": [5, 10], "x": 11.5, "y": 5.25, "w": 1.50},
- {"matrix": [5, 11], "x": 13.25, "y": 5.5},
- {"matrix": [5, 12], "x": 14.25, "y": 5.5},
- {"matrix": [5, 13], "x": 15.25, "y": 5.5}
- ]
- },
- "LAYOUT_75_iso_split_bs": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0},
- {"matrix": [0, 1], "x": 1.25, "y": 0},
- {"matrix": [0, 2], "x": 2.25, "y": 0},
- {"matrix": [0, 3], "x": 3.25, "y": 0},
- {"matrix": [0, 4], "x": 4.25, "y": 0},
- {"matrix": [0, 5], "x": 5.50, "y": 0},
- {"matrix": [0, 6], "x": 6.50, "y": 0},
- {"matrix": [0, 7], "x": 7.50, "y": 0},
- {"matrix": [0, 8], "x": 8.50, "y": 0},
- {"matrix": [0, 9], "x": 9.75, "y": 0},
- {"matrix": [0, 10], "x": 10.75, "y": 0},
- {"matrix": [0, 11], "x": 11.75, "y": 0},
- {"matrix": [0, 12], "x": 12.75, "y": 0},
- {"matrix": [0, 13], "x": 14, "y": 0},
- {"matrix": [0, 14], "x": 15.25, "y": 0},
- {"matrix": [1, 0], "x": 0, "y": 1.25},
- {"matrix": [1, 1], "x": 1, "y": 1.25},
- {"matrix": [1, 2], "x": 2, "y": 1.25},
- {"matrix": [1, 3], "x": 3, "y": 1.25},
- {"matrix": [1, 4], "x": 4, "y": 1.25},
- {"matrix": [1, 5], "x": 5, "y": 1.25},
- {"matrix": [1, 6], "x": 6, "y": 1.25},
- {"matrix": [1, 7], "x": 7, "y": 1.25},
- {"matrix": [1, 8], "x": 8, "y": 1.25},
- {"matrix": [1, 9], "x": 9, "y": 1.25},
- {"matrix": [1, 10], "x": 10, "y": 1.25},
- {"matrix": [1, 11], "x": 11, "y": 1.25},
- {"matrix": [1, 12], "x": 12, "y": 1.25},
- {"matrix": [1, 13], "x": 13, "y": 1.25},
- {"matrix": [1, 14], "x": 14, "y": 1.25},
- {"matrix": [5, 14], "x": 15.25, "y": 1.25},
- {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
- {"matrix": [2, 1], "x": 1.5, "y": 2.25},
- {"matrix": [2, 2], "x": 2.5, "y": 2.25},
- {"matrix": [2, 3], "x": 3.5, "y": 2.25},
- {"matrix": [2, 4], "x": 4.5, "y": 2.25},
- {"matrix": [2, 5], "x": 5.5, "y": 2.25},
- {"matrix": [2, 6], "x": 6.5, "y": 2.25},
- {"matrix": [2, 7], "x": 7.5, "y": 2.25},
- {"matrix": [2, 8], "x": 8.5, "y": 2.25},
- {"matrix": [2, 9], "x": 9.5, "y": 2.25},
- {"matrix": [2, 10], "x": 10.5, "y": 2.25},
- {"matrix": [2, 11], "x": 11.5, "y": 2.25},
- {"matrix": [2, 12], "x": 12.5, "y": 2.25},
- {"matrix": [2, 14], "x": 15.25, "y": 2.25},
- {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
- {"matrix": [3, 1], "x": 1.75, "y": 3.25},
- {"matrix": [3, 2], "x": 2.75, "y": 3.25},
- {"matrix": [3, 3], "x": 3.75, "y": 3.25},
- {"matrix": [3, 4], "x": 4.75, "y": 3.25},
- {"matrix": [3, 5], "x": 5.75, "y": 3.25},
- {"matrix": [3, 6], "x": 6.75, "y": 3.25},
- {"matrix": [3, 7], "x": 7.75, "y": 3.25},
- {"matrix": [3, 8], "x": 8.75, "y": 3.25},
- {"matrix": [3, 9], "x": 9.75, "y": 3.25},
- {"matrix": [3, 10], "x": 10.75, "y": 3.25},
- {"matrix": [3, 11], "x": 11.75, "y": 3.25},
- {"matrix": [3, 12], "x": 12.75, "y": 3.25},
- {"matrix": [2, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
- {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
- {"matrix": [4, 1], "x": 1.25, "y": 4.25},
- {"matrix": [4, 2], "x": 2.25, "y": 4.25},
- {"matrix": [4, 3], "x": 3.25, "y": 4.25},
- {"matrix": [4, 4], "x": 4.25, "y": 4.25},
- {"matrix": [4, 5], "x": 5.25, "y": 4.25},
- {"matrix": [4, 6], "x": 6.25, "y": 4.25},
- {"matrix": [4, 7], "x": 7.25, "y": 4.25},
- {"matrix": [4, 8], "x": 8.25, "y": 4.25},
- {"matrix": [4, 9], "x": 9.25, "y": 4.25},
- {"matrix": [4, 10], "x": 10.25, "y": 4.25},
- {"matrix": [4, 11], "x": 11.25, "y": 4.25},
- {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
- {"matrix": [4, 13], "x": 14.25, "y": 4.5},
- {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
- {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
- {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
- {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
- {"matrix": [5, 8], "x": 10, "y": 5.25, "w": 1.50},
- {"matrix": [5, 10], "x": 11.5, "y": 5.25, "w": 1.50},
- {"matrix": [5, 11], "x": 13.25, "y": 5.5},
- {"matrix": [5, 12], "x": 14.25, "y": 5.5},
- {"matrix": [5, 13], "x": 15.25, "y": 5.5}
- ]
- }
- }
-}
diff --git a/keyboards/exclusive/e7v2/keymaps/default/keymap.c b/keyboards/exclusive/e7v2/keymaps/default/keymap.c
deleted file mode 100644
index f41b387732..0000000000
--- a/keyboards/exclusive/e7v2/keymaps/default/keymap.c
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright 2023 QMK
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /*
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Esc│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│PSc│ │Del│
- * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤
- * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│PgU│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
- * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │PgD│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┘
- * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┼───┼───┐
- * │Ctrl│GUI │Alt │ │ Alt │ GUI │ ← │ ↓ │ → │
- * └────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┘
- */
- [0] = LAYOUT_75_ansi(
- 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_DEL, KC_PSCR,
- 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_PGUP,
- 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_PGDN,
- 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_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT
- )
-};
diff --git a/keyboards/exclusive/e7v2/keymaps/default_iso/keymap.c b/keyboards/exclusive/e7v2/keymaps/default_iso/keymap.c
deleted file mode 100644
index e6cff42f3f..0000000000
--- a/keyboards/exclusive/e7v2/keymaps/default_iso/keymap.c
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright 2023 QMK
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /*
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Esc│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Del│ │PSC│
- * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤
- * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│PgU│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
- * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ ENT │PgD│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┘
- * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │
- * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤
- * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │
- * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┼───┼───┐
- * │Ctrl│GUI │Alt │ │ Alt │ GUI │ ← │ ↓ │ → │
- * └────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┘
- */
- [0] = LAYOUT_75_iso(
- 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_DEL, KC_PSCR,
- 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_PGUP,
- 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_PGDN,
- 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_NUHS, KC_ENT,
- KC_LSFT, KC_BSLS, 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT
- )
-};
diff --git a/keyboards/exclusive/readme.md b/keyboards/exclusive/readme.md
index 7bfc559d79..bee613bf45 100644
--- a/keyboards/exclusive/readme.md
+++ b/keyboards/exclusive/readme.md
@@ -7,6 +7,5 @@ All files related to firmware of keyboards designed by Exclusive.
* [e6_rgb](./e6_rgb/): maintainer [astro](https://github.com/yulei)
* [e6-v2](./e6v2/): maintainers [MechMerlin](https://github.com/mechmerlin), [amnesia0287](https://github.com/amnesia0287)
* [e7-v1](./e7v1): maintainer [masterzen](https://github.com/masterzen)
-* [e7-v2](./e7v2): [AidanSmith.dev](https://github.com/Aidan-OS)
* [e6.5](./e65): maintainer [masterzen](https://github.com/masterzen)
* [e8.5](./e85): maintainer [MechMerlin](https://github.com/mechmerlin)
diff --git a/keyboards/feker/ik75/ik75.c b/keyboards/feker/ik75/ik75.c
index d93de7f2ec..c4da77a844 100644
--- a/keyboards/feker/ik75/ik75.c
+++ b/keyboards/feker/ik75/ik75.c
@@ -161,4 +161,31 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
{1, SW10_CS15, SW12_CS15, SW11_CS15}, // 125, Underglow 39
{1, SW10_CS16, SW12_CS16, SW11_CS16}, // 126, Underglow 40
};
+
+led_config_t g_led_config = { {
+ { 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, NO_LED, NO_LED },
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, NO_LED, 102 },
+ { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, NO_LED, 105 },
+ { 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, NO_LED, 44, 103, 106 },
+ { 48, NO_LED, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, NO_LED, 59, 45, 101 },
+ { 93, 94, 14, NO_LED, NO_LED, NO_LED, 15, NO_LED, NO_LED, 30, 31, NO_LED, 47, 60, 61, 62 }
+}, {
+ {0 , 15}, {14 , 15}, {29 , 15}, {43 , 15}, {58 , 15}, {72 , 15}, {87 , 15}, {101, 15}, {116, 15}, {130, 15}, {145, 15}, {159, 15}, {173, 15}, {195, 15}, {38 , 61}, {92 , 61},
+ {4 , 26}, {22 , 26}, {36 , 26}, {51 , 26}, {65 , 26}, {79 , 26}, {94 , 26}, {108, 26}, {123, 26}, {137, 26}, {152, 26}, {166, 26}, {181, 26}, {199, 26}, {173, 61}, {159, 61},
+ {5 , 38}, {25 , 38}, {40 , 38}, {54 , 38}, {69 , 38}, {83 , 38}, {98 , 38}, {112, 38}, {126, 38}, {141, 38}, {155, 38}, {170, 38}, {193, 38}, {206, 52}, {210, 12}, {145, 61},
+ {9 , 49}, {33 , 49}, {47 , 49}, {61 , 49}, {76 , 49}, {90 , 49}, {105, 49}, {119, 49}, {134, 49}, {148, 49}, {163, 49}, {182, 49}, {191, 64}, {206, 64}, {220, 64},
+ {14 , 0}, {28 , 0}, {53 , 0}, {63 , 0}, {74 , 0}, {88 , 0}, {102, 0}, {116, 0}, {130, 0}, {144, 0}, {158, 0}, {172, 0}, {189, 0}, {210, 0}, {224, 0}, {224, 11},
+ {0 , 0}, {18 , 0}, {33 , 0}, {47 , 0}, {61 , 0}, {79 , 0}, {94 , 0}, {108, 0}, {123, 0}, {141, 0}, {155, 0}, {170, 0}, {184, 0}, {202, 0}, {2 , 61}, {20 , 61},
+ {0 , 0}, {0 , 11}, {0 , 27}, {0 , 37}, {224, 5}, {210, 5}, {217, 0}, {224, 15}, {224, 38}, {210, 18}, {224, 26}, {224, 49}, {224, 56}, {224, 45}, {224, 35}, {224, 24},
+ {0 , 48}, {0 , 56}, {0 , 64}, {14 , 64}, {28 , 64}, {49 , 64}, {67 , 64}, {84 , 64}, {98 , 64}, {112, 64}, {126, 64}, {140, 64}, {158, 64}, {172, 64}, {196, 64}, {224, 64},
+}, {
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 8, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 2, 2, 2, 2, 1, 1, 4, 4, 4, 8, 4, 4, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
+} };
#endif
diff --git a/keyboards/feker/ik75/keyboard.json b/keyboards/feker/ik75/keyboard.json
index c368c188a7..03b86e5d8b 100644
--- a/keyboards/feker/ik75/keyboard.json
+++ b/keyboards/feker/ik75/keyboard.json
@@ -55,135 +55,6 @@
"solid_multisplash": true
},
"driver": "is31fl3733",
- "layout": [
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 4},
- {"matrix": [1, 1], "x": 14, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 43, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 58, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 72, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 87, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 101, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 116, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 130, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 145, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 159, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 173, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 195, "y": 15, "flags": 1},
- {"matrix": [5, 2], "x": 38, "y": 61, "flags": 1},
- {"matrix": [5, 6], "x": 92, "y": 61, "flags": 4},
- {"matrix": [2, 0], "x": 4, "y": 26, "flags": 1},
- {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4},
- {"matrix": [2, 2], "x": 36, "y": 26, "flags": 4},
- {"matrix": [2, 3], "x": 51, "y": 26, "flags": 4},
- {"matrix": [2, 4], "x": 65, "y": 26, "flags": 4},
- {"matrix": [2, 5], "x": 79, "y": 26, "flags": 4},
- {"matrix": [2, 6], "x": 94, "y": 26, "flags": 4},
- {"matrix": [2, 7], "x": 108, "y": 26, "flags": 4},
- {"matrix": [2, 8], "x": 123, "y": 26, "flags": 4},
- {"matrix": [2, 9], "x": 137, "y": 26, "flags": 4},
- {"matrix": [2, 10], "x": 152, "y": 26, "flags": 4},
- {"matrix": [2, 11], "x": 166, "y": 26, "flags": 4},
- {"matrix": [2, 12], "x": 181, "y": 26, "flags": 4},
- {"matrix": [2, 13], "x": 199, "y": 26, "flags": 4},
- {"matrix": [5, 9], "x": 173, "y": 61, "flags": 1},
- {"matrix": [5, 10], "x": 159, "y": 61, "flags": 1},
- {"matrix": [3, 0], "x": 5, "y": 38, "flags": 8},
- {"matrix": [3, 1], "x": 25, "y": 38, "flags": 4},
- {"matrix": [3, 2], "x": 40, "y": 38, "flags": 4},
- {"matrix": [3, 3], "x": 54, "y": 38, "flags": 4},
- {"matrix": [3, 4], "x": 69, "y": 38, "flags": 4},
- {"matrix": [3, 5], "x": 83, "y": 38, "flags": 4},
- {"matrix": [3, 6], "x": 98, "y": 38, "flags": 4},
- {"matrix": [3, 7], "x": 112, "y": 38, "flags": 4},
- {"matrix": [3, 8], "x": 126, "y": 38, "flags": 4},
- {"matrix": [3, 9], "x": 141, "y": 38, "flags": 4},
- {"matrix": [3, 10], "x": 155, "y": 38, "flags": 4},
- {"matrix": [3, 11], "x": 170, "y": 38, "flags": 4},
- {"matrix": [3, 13], "x": 193, "y": 38, "flags": 1},
- {"matrix": [4, 14], "x": 206, "y": 52, "flags": 4},
- {"x": 210, "y": 12, "flags": 8},
- {"matrix": [5, 12], "x": 145, "y": 61, "flags": 1},
- {"matrix": [4, 0], "x": 9, "y": 49, "flags": 1},
- {"matrix": [4, 2], "x": 33, "y": 49, "flags": 4},
- {"matrix": [4, 3], "x": 47, "y": 49, "flags": 4},
- {"matrix": [4, 4], "x": 61, "y": 49, "flags": 4},
- {"matrix": [4, 5], "x": 76, "y": 49, "flags": 4},
- {"matrix": [4, 6], "x": 90, "y": 49, "flags": 4},
- {"matrix": [4, 7], "x": 105, "y": 49, "flags": 4},
- {"matrix": [4, 8], "x": 119, "y": 49, "flags": 4},
- {"matrix": [4, 9], "x": 134, "y": 49, "flags": 4},
- {"matrix": [4, 10], "x": 148, "y": 49, "flags": 4},
- {"matrix": [4, 11], "x": 163, "y": 49, "flags": 4},
- {"matrix": [4, 13], "x": 182, "y": 49, "flags": 1},
- {"matrix": [5, 13], "x": 191, "y": 64, "flags": 4},
- {"matrix": [5, 14], "x": 206, "y": 64, "flags": 4},
- {"matrix": [5, 15], "x": 220, "y": 64, "flags": 4},
- {"x": 14, "y": 0, "flags": 2},
- {"x": 28, "y": 0, "flags": 2},
- {"x": 53, "y": 0, "flags": 2},
- {"x": 63, "y": 0, "flags": 2},
- {"x": 74, "y": 0, "flags": 2},
- {"x": 88, "y": 0, "flags": 2},
- {"x": 102, "y": 0, "flags": 2},
- {"x": 116, "y": 0, "flags": 2},
- {"x": 130, "y": 0, "flags": 2},
- {"x": 144, "y": 0, "flags": 2},
- {"x": 158, "y": 0, "flags": 2},
- {"x": 172, "y": 0, "flags": 2},
- {"x": 189, "y": 0, "flags": 2},
- {"x": 210, "y": 0, "flags": 2},
- {"x": 224, "y": 0, "flags": 2},
- {"x": 224, "y": 11, "flags": 2},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 18, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 33, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 47, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 61, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 79, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 94, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 108, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 123, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 141, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 155, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 170, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 184, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 202, "y": 0, "flags": 4},
- {"matrix": [5, 0], "x": 2, "y": 61, "flags": 1},
- {"matrix": [5, 1], "x": 20, "y": 61, "flags": 1},
- {"x": 0, "y": 0, "flags": 2},
- {"x": 0, "y": 11, "flags": 2},
- {"x": 0, "y": 27, "flags": 2},
- {"x": 0, "y": 37, "flags": 2},
- {"x": 224, "y": 5, "flags": 1},
- {"x": 210, "y": 5, "flags": 1},
- {"matrix": [4, 15], "x": 217, "y": 0, "flags": 4},
- {"matrix": [1, 15], "x": 224, "y": 15, "flags": 4},
- {"matrix": [3, 14], "x": 224, "y": 38, "flags": 4},
- {"x": 210, "y": 18, "flags": 8},
- {"matrix": [2, 15], "x": 224, "y": 26, "flags": 4},
- {"matrix": [3, 15], "x": 224, "y": 49, "flags": 4},
- {"x": 224, "y": 56, "flags": 2},
- {"x": 224, "y": 45, "flags": 2},
- {"x": 224, "y": 35, "flags": 2},
- {"x": 224, "y": 24, "flags": 2},
- {"x": 0, "y": 48, "flags": 2},
- {"x": 0, "y": 56, "flags": 2},
- {"x": 0, "y": 64, "flags": 2},
- {"x": 14, "y": 64, "flags": 2},
- {"x": 28, "y": 64, "flags": 2},
- {"x": 49, "y": 64, "flags": 2},
- {"x": 67, "y": 64, "flags": 2},
- {"x": 84, "y": 64, "flags": 2},
- {"x": 98, "y": 64, "flags": 2},
- {"x": 112, "y": 64, "flags": 2},
- {"x": 126, "y": 64, "flags": 2},
- {"x": 140, "y": 64, "flags": 2},
- {"x": 158, "y": 64, "flags": 2},
- {"x": 172, "y": 64, "flags": 2},
- {"x": 196, "y": 64, "flags": 2},
- {"x": 224, "y": 64, "flags": 2}
- ],
"max_brightness": 200
},
"build": {
diff --git a/keyboards/frooastboard/walnut/keyboard.json b/keyboards/frooastboard/walnut/keyboard.json
index 923a0e97de..f1958c04a2 100644
--- a/keyboards/frooastboard/walnut/keyboard.json
+++ b/keyboards/frooastboard/walnut/keyboard.json
@@ -48,56 +48,6 @@
"speed": 191
},
"driver": "is31fl3737",
- "layout": [
- {"x": 0, "y": 62, "flags": 2},
- {"x": 0, "y": 50, "flags": 2},
- {"x": 0, "y": 38, "flags": 2},
- {"x": 0, "y": 26, "flags": 2},
- {"x": 0, "y": 14, "flags": 2},
- {"x": 0, "y": 2, "flags": 2},
- {"x": 0, "y": 2, "flags": 2},
- {"x": 12, "y": 2, "flags": 2},
- {"x": 24, "y": 2, "flags": 2},
- {"x": 36, "y": 2, "flags": 2},
- {"x": 48, "y": 2, "flags": 2},
- {"x": 60, "y": 2, "flags": 2},
- {"x": 72, "y": 2, "flags": 2},
- {"x": 84, "y": 2, "flags": 2},
- {"x": 96, "y": 2, "flags": 2},
- {"x": 108, "y": 2, "flags": 2},
- {"x": 120, "y": 2, "flags": 2},
- {"x": 132, "y": 2, "flags": 2},
- {"x": 144, "y": 2, "flags": 2},
- {"x": 156, "y": 2, "flags": 2},
- {"x": 168, "y": 2, "flags": 2},
- {"x": 180, "y": 2, "flags": 2},
- {"x": 192, "y": 2, "flags": 2},
- {"x": 204, "y": 2, "flags": 2},
- {"x": 204, "y": 2, "flags": 2},
- {"x": 204, "y": 14, "flags": 2},
- {"x": 204, "y": 26, "flags": 2},
- {"x": 204, "y": 38, "flags": 2},
- {"x": 204, "y": 50, "flags": 2},
- {"x": 204, "y": 62, "flags": 2},
- {"x": 204, "y": 62, "flags": 2},
- {"x": 192, "y": 62, "flags": 2},
- {"x": 180, "y": 62, "flags": 2},
- {"x": 168, "y": 62, "flags": 2},
- {"x": 156, "y": 62, "flags": 2},
- {"x": 144, "y": 62, "flags": 2},
- {"x": 132, "y": 62, "flags": 2},
- {"x": 120, "y": 62, "flags": 2},
- {"x": 108, "y": 62, "flags": 2},
- {"x": 96, "y": 62, "flags": 2},
- {"x": 84, "y": 62, "flags": 2},
- {"x": 72, "y": 62, "flags": 2},
- {"x": 60, "y": 62, "flags": 2},
- {"x": 48, "y": 62, "flags": 2},
- {"x": 36, "y": 62, "flags": 2},
- {"x": 24, "y": 62, "flags": 2},
- {"x": 12, "y": 62, "flags": 2},
- {"x": 0, "y": 62, "flags": 2}
- ],
"max_brightness": 191,
"sleep": true
},
diff --git a/keyboards/frooastboard/walnut/walnut.c b/keyboards/frooastboard/walnut/walnut.c
index 448895ec68..0de3467ae4 100644
--- a/keyboards/frooastboard/walnut/walnut.c
+++ b/keyboards/frooastboard/walnut/walnut.c
@@ -61,4 +61,26 @@ const is31fl3737_led_t PROGMEM g_is31fl3737_leds[IS31FL3737_LED_COUNT] = {
{0, SW2_CS11, SW1_CS11, SW3_CS11},
{0, SW2_CS12, SW1_CS12, SW3_CS12}
};
+
+led_config_t g_led_config = {
+ {
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }
+ }, {
+ {0, 62}, {0, 50}, {0, 38}, {0, 26}, {0, 14}, {0, 2},
+ {0, 2}, {12, 2}, {24, 2}, {36, 2}, {48, 2}, {60, 2}, {72, 2}, {84, 2}, {96, 2}, {108, 2}, {120, 2}, {132, 2}, {144, 2}, {156, 2}, {168, 2}, {180, 2}, {192, 2}, {204, 2},
+ {204, 2}, {204, 14}, {204, 26}, {204, 38}, {204, 50}, {204, 62},
+ {204, 62}, {192, 62}, {180, 62}, {168, 62}, {156, 62}, {144, 62}, {132, 62}, {120, 62}, {108, 62}, {96, 62}, {84, 62}, {72, 62}, {60, 62}, {48, 62}, {36, 62}, {24, 62}, {12, 62}, {0, 62}
+ }, {
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
+ }
+};
+
#endif // defined(RGB_MATRIX_ENABLE)
diff --git a/keyboards/fruitykeeb/fruitbar/r2/config.h b/keyboards/fruitykeeb/fruitbar/r2/config.h
index c1f6f883a6..320889eb91 100644
--- a/keyboards/fruitykeeb/fruitbar/r2/config.h
+++ b/keyboards/fruitykeeb/fruitbar/r2/config.h
@@ -19,3 +19,6 @@ along with this program. If not, see .
#define I2C_DRIVER I2CD1
#define I2C1_SCL_PIN GP27
#define I2C1_SDA_PIN GP26
+
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U
diff --git a/keyboards/geekboards/macropad_v2/keyboard.json b/keyboards/geekboards/macropad_v2/keyboard.json
index 2719faa764..a34912aee3 100644
--- a/keyboards/geekboards/macropad_v2/keyboard.json
+++ b/keyboards/geekboards/macropad_v2/keyboard.json
@@ -51,50 +51,6 @@
"val": 192
},
"driver": "ws2812",
- "layout": [
- {"matrix": [1, 1], "x": 85, "y": 46, "flags": 4},
- {"x": 85, "y": 64, "flags": 2},
- {"x": 67, "y": 64, "flags": 2},
- {"x": 49, "y": 64, "flags": 2},
- {"x": 31, "y": 64, "flags": 2},
- {"x": 13, "y": 64, "flags": 2},
- {"matrix": [1, 0], "x": 31, "y": 46, "flags": 4},
- {"x": 0, "y": 55, "flags": 2},
- {"x": 0, "y": 46, "flags": 2},
- {"x": 0, "y": 37, "flags": 2},
- {"x": 0, "y": 27, "flags": 2},
- {"x": 0, "y": 18, "flags": 2},
- {"x": 0, "y": 9, "flags": 2},
- {"matrix": [0, 0], "x": 31, "y": 18, "flags": 4},
- {"x": 13, "y": 0, "flags": 2},
- {"x": 31, "y": 0, "flags": 2},
- {"x": 49, "y": 0, "flags": 2},
- {"x": 67, "y": 0, "flags": 2},
- {"x": 85, "y": 0, "flags": 2},
- {"matrix": [0, 1], "x": 85, "y": 18, "flags": 4},
- {"matrix": [0, 2], "x": 139, "y": 18, "flags": 4},
- {"x": 139, "y": 0, "flags": 2},
- {"x": 157, "y": 0, "flags": 2},
- {"x": 175, "y": 0, "flags": 2},
- {"x": 193, "y": 0, "flags": 2},
- {"x": 211, "y": 0, "flags": 2},
- {"matrix": [0, 3], "x": 193, "y": 18, "flags": 4},
- {"x": 224, "y": 9, "flags": 2},
- {"x": 224, "y": 18, "flags": 2},
- {"x": 224, "y": 27, "flags": 2},
- {"x": 224, "y": 37, "flags": 2},
- {"x": 224, "y": 46, "flags": 2},
- {"x": 224, "y": 55, "flags": 2},
- {"matrix": [1, 3], "x": 193, "y": 46, "flags": 4},
- {"x": 211, "y": 64, "flags": 2},
- {"x": 193, "y": 64, "flags": 2},
- {"x": 175, "y": 64, "flags": 2},
- {"x": 157, "y": 64, "flags": 2},
- {"matrix": [1, 2], "x": 139, "y": 46, "flags": 4},
- {"x": 139, "y": 64, "flags": 2},
- {"x": 121, "y": 64, "flags": 2},
- {"x": 103, "y": 64, "flags": 2}
- ],
"sleep": true
},
"processor": "STM32F072",
diff --git a/keyboards/geekboards/macropad_v2/macropad_v2.c b/keyboards/geekboards/macropad_v2/macropad_v2.c
new file mode 100644
index 0000000000..ba65697988
--- /dev/null
+++ b/keyboards/geekboards/macropad_v2/macropad_v2.c
@@ -0,0 +1,56 @@
+/* Copyright 2020 Geekboards ltd. (geekboards.ru / geekboards.de)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ {13,19,20,26}, {6,0,38,33},
+}, {
+ // LED Index to Physical Position
+ {85,46},
+ {85,64},{67,64},{49,64},{31,64},{13,64},
+ {31,46},
+ {0,55},{0,46},{0,37},{0,27},{0,18},{0,9},
+ {31,18},
+ {13,0},{31,0},{49,0},{67,0},{85,0},
+ {85,18},{139,18},
+ {139,0},{157,0},{175,0},{193,0},{211,0},
+ {193,18},
+ {224,9},{224,18},{224,27},{224,37},{224,46},{224,55},
+ {193,46},
+ {211,64},{193,64},{175,64},{157,64},
+ {139,46},
+ {139,64},{121,64},{103,64},
+}, {
+ // LED Index to Flag, 2=backlight, 4=key
+ 4,
+ 2, 2, 2, 2, 2,
+ 4,
+ 2, 2, 2, 2, 2, 2,
+ 4,
+ 2, 2, 2, 2, 2,
+ 4, 4,
+ 2, 2, 2, 2, 2,
+ 4,
+ 2, 2, 2, 2, 2, 2,
+ 4,
+ 2, 2, 2, 2,
+ 4,
+ 2, 2, 2
+} };
+
+#endif
diff --git a/keyboards/geekboards/tester/keyboard.json b/keyboards/geekboards/tester/keyboard.json
index 236c2c697f..2b85961df8 100644
--- a/keyboards/geekboards/tester/keyboard.json
+++ b/keyboards/geekboards/tester/keyboard.json
@@ -50,16 +50,6 @@
"solid_reactive_multinexus": true
},
"driver": "is31fl3731",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 151, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 224, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 64, "flags": 4},
- {"matrix": [1, 1], "x": 75, "y": 64, "flags": 4},
- {"matrix": [1, 2], "x": 151, "y": 64, "flags": 4},
- {"matrix": [1, 3], "x": 224, "y": 64, "flags": 4}
- ],
"sleep": true
},
"features": {
diff --git a/keyboards/geekboards/tester/tester.c b/keyboards/geekboards/tester/tester.c
index 001fd06e9d..4daa4ef062 100644
--- a/keyboards/geekboards/tester/tester.c
+++ b/keyboards/geekboards/tester/tester.c
@@ -16,3 +16,16 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
{0, C1_7, C2_7, C3_7}, //A7
{0, C1_8, C2_8, C3_8}, //A8
};
+
+led_config_t g_led_config = {
+{
+ { 0, 1, 2, 3},
+ { 4, 5, 6, 7}
+},
+{
+ { 0, 0 }, { 75, 0 }, { 151, 0 }, { 224, 0 }, { 0, 64 }, { 75, 64 }, { 151, 64 }, { 224, 64 }
+},
+{
+ 4, 4, 4, 4, 4, 4, 4, 4
+}
+};
diff --git a/keyboards/giabalanai/giabalanai.c b/keyboards/giabalanai/giabalanai.c
index ae6a1547da..6f8e359479 100644
--- a/keyboards/giabalanai/giabalanai.c
+++ b/keyboards/giabalanai/giabalanai.c
@@ -88,6 +88,66 @@ NO_LED, 84, 83, 82, 81, 80, 79, NO_LED, NO_LED, NO_LED
# endif
#endif // RGBLIGHT_ENABLE
+#ifdef RGB_MATRIX_ENABLE
+
+led_config_t g_led_config = {
+ {
+ { 74, 75, 98, 99, 122, 63, 86, 87, 110, 111 },
+ { 73, 76, 97, 100, 121, 64, 85, 88, 109, 112 },
+ { 72, 77, 96, 101, 120, 65, 84, 89, 108, 113 },
+ { 71, 78, 95, 102, 119, 66, 83, 90, 107, 114 },
+ { 70, 79, 94, 103, 118, 67, 82, 91, 106, 115 },
+ { 69, 80, 93, 104, 117, 68, 81, 92, 105, 116 },
+ { 26, 27, 28, 29, 30, 31, 32, NO_LED, NO_LED, NO_LED },
+ { 50, 49, 48, 47, 46, 45, 44, NO_LED, NO_LED, NO_LED },
+ { 25, 51, 52, 53, 54, 55, 56, NO_LED, NO_LED, NO_LED },
+ { NO_LED, 12, 37, 36, 35, 34, 33, NO_LED, NO_LED, NO_LED },
+ { NO_LED, 38, 39, 40, 41, 42, 43, NO_LED, NO_LED, NO_LED },
+ { NO_LED, 62, 61, 60, 59, 58, 57, NO_LED, NO_LED, NO_LED }
+ }, {
+ { 120, 0 }, { 128, 0 }, { 136, 0 }, { 144, 0 }, { 152, 0 }, { 160, 0 }, { 168, 0 }, { 176, 0 }, { 184, 0 }, { 192, 0 }, { 200, 0 }, { 208, 0 },
+ { 224, 32 },
+ { 212, 16 }, { 204, 16 }, { 196, 16 }, { 188, 16 }, { 180, 16 }, { 172, 16 }, { 164, 16 }, { 156, 16 }, { 148, 16 }, { 140, 16 }, { 132, 16 }, { 124, 16 }, { 116, 16 },
+ { 120, 32 }, { 128, 32 }, { 136, 32 }, { 144, 32 }, { 152, 32 }, { 160, 32 }, { 168, 32 }, { 176, 32 }, { 184, 32 }, { 192, 32 }, { 200, 32 }, { 208, 32 },
+ { 212, 48 }, { 204, 48 }, { 196, 48 }, { 188, 48 }, { 180, 48 }, { 172, 48 }, { 164, 48 }, { 156, 48 }, { 148, 48 }, { 140, 48 }, { 132, 48 }, { 124, 48 }, { 116, 48 },
+ { 120, 64 }, { 128, 64 }, { 136, 64 }, { 144, 64 }, { 152, 64 }, { 160, 64 }, { 168, 64 }, { 176, 64 }, { 184, 64 }, { 192, 64 }, { 200, 64 }, { 208, 64 },
+
+ { 88, 0 }, { 80, 0 }, { 72, 0 }, { 64, 0 }, { 56, 0 }, { 48, 0 }, { 40, 0 }, { 32, 0 }, { 24, 0 }, { 16, 0 }, { 8, 0 }, { 0, 0 },
+ { 4, 16 }, { 12, 16 }, { 20, 16 }, { 28, 16 }, { 36, 16 }, { 44, 16 }, { 52, 16 }, { 60, 16 }, { 68, 16 }, { 76, 16 }, { 84, 16 }, { 92, 16 },
+ { 96, 32 }, { 88, 32 }, { 80, 32 }, { 72, 32 }, { 64, 32 }, { 56, 32 }, { 48, 32 }, { 40, 32 }, { 32, 32 }, { 24, 32 }, { 16, 32 }, { 8, 32 },
+ { 12, 48 }, { 20, 48 }, { 28, 48 }, { 36, 48 }, { 44, 48 }, { 52, 48 }, { 60, 48 }, { 68, 48 }, { 76, 48 }, { 84, 48 }, { 92, 48 }, { 100, 48 },
+ { 104, 64 }, { 96, 64 }, { 88, 64 }, { 80, 64 }, { 72, 64 }, { 64, 64 }, { 56, 64 }, { 48, 64 }, { 40, 64 }, { 32, 64 }, { 24, 64 }, { 16, 64 }
+ }, {
+ 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, 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, 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,
+ 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ }
+};
+
+// const uint8_t PROGMEM convert_led_location2number[] = {
+// 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63,
+// 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+// 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87,
+// 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
+// 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111,
+//
+// 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
+// 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13,
+// 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 12,
+// 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38,
+// 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62
+// };
+#endif
+
void my_process_midi4Bass(uint8_t channel, keyrecord_t *record,
uint8_t *chord_status, uint8_t chord, uint16_t root_note, bool is_single_bass) {
uint8_t velocity = midi_config.velocity;
diff --git a/keyboards/giabalanai/keyboard.json b/keyboards/giabalanai/keyboard.json
index 9bb6b49336..2e2357fe4c 100644
--- a/keyboards/giabalanai/keyboard.json
+++ b/keyboards/giabalanai/keyboard.json
@@ -17,131 +17,6 @@
"multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"x": 120, "y": 0, "flags": 4},
- {"x": 128, "y": 0, "flags": 4},
- {"x": 136, "y": 0, "flags": 4},
- {"x": 144, "y": 0, "flags": 4},
- {"x": 152, "y": 0, "flags": 4},
- {"x": 160, "y": 0, "flags": 4},
- {"x": 168, "y": 0, "flags": 4},
- {"x": 176, "y": 0, "flags": 4},
- {"x": 184, "y": 0, "flags": 4},
- {"x": 192, "y": 0, "flags": 4},
- {"x": 200, "y": 0, "flags": 4},
- {"x": 208, "y": 0, "flags": 4},
- {"matrix": [9, 1], "x": 224, "y": 32, "flags": 4},
- {"x": 212, "y": 16, "flags": 4},
- {"x": 204, "y": 16, "flags": 4},
- {"x": 196, "y": 16, "flags": 4},
- {"x": 188, "y": 16, "flags": 4},
- {"x": 180, "y": 16, "flags": 4},
- {"x": 172, "y": 16, "flags": 4},
- {"x": 164, "y": 16, "flags": 4},
- {"x": 156, "y": 16, "flags": 4},
- {"x": 148, "y": 16, "flags": 4},
- {"x": 140, "y": 16, "flags": 4},
- {"x": 132, "y": 16, "flags": 4},
- {"x": 124, "y": 16, "flags": 4},
- {"matrix": [8, 0], "x": 116, "y": 16, "flags": 4},
- {"matrix": [6, 0], "x": 120, "y": 32, "flags": 4},
- {"matrix": [6, 1], "x": 128, "y": 32, "flags": 4},
- {"matrix": [6, 2], "x": 136, "y": 32, "flags": 4},
- {"matrix": [6, 3], "x": 144, "y": 32, "flags": 4},
- {"matrix": [6, 4], "x": 152, "y": 32, "flags": 4},
- {"matrix": [6, 5], "x": 160, "y": 32, "flags": 4},
- {"matrix": [6, 6], "x": 168, "y": 32, "flags": 4},
- {"matrix": [9, 6], "x": 176, "y": 32, "flags": 4},
- {"matrix": [9, 5], "x": 184, "y": 32, "flags": 4},
- {"matrix": [9, 4], "x": 192, "y": 32, "flags": 4},
- {"matrix": [9, 3], "x": 200, "y": 32, "flags": 4},
- {"matrix": [9, 2], "x": 208, "y": 32, "flags": 4},
- {"matrix": [10, 1], "x": 212, "y": 48, "flags": 4},
- {"matrix": [10, 2], "x": 204, "y": 48, "flags": 4},
- {"matrix": [10, 3], "x": 196, "y": 48, "flags": 4},
- {"matrix": [10, 4], "x": 188, "y": 48, "flags": 4},
- {"matrix": [10, 5], "x": 180, "y": 48, "flags": 4},
- {"matrix": [10, 6], "x": 172, "y": 48, "flags": 4},
- {"matrix": [7, 6], "x": 164, "y": 48, "flags": 4},
- {"matrix": [7, 5], "x": 156, "y": 48, "flags": 4},
- {"matrix": [7, 4], "x": 148, "y": 48, "flags": 4},
- {"matrix": [7, 3], "x": 140, "y": 48, "flags": 4},
- {"matrix": [7, 2], "x": 132, "y": 48, "flags": 4},
- {"matrix": [7, 1], "x": 124, "y": 48, "flags": 4},
- {"matrix": [7, 0], "x": 116, "y": 48, "flags": 4},
- {"matrix": [8, 1], "x": 120, "y": 64, "flags": 4},
- {"matrix": [8, 2], "x": 128, "y": 64, "flags": 4},
- {"matrix": [8, 3], "x": 136, "y": 64, "flags": 4},
- {"matrix": [8, 4], "x": 144, "y": 64, "flags": 4},
- {"matrix": [8, 5], "x": 152, "y": 64, "flags": 4},
- {"matrix": [8, 6], "x": 160, "y": 64, "flags": 4},
- {"matrix": [11, 6], "x": 168, "y": 64, "flags": 4},
- {"matrix": [11, 5], "x": 176, "y": 64, "flags": 4},
- {"matrix": [11, 4], "x": 184, "y": 64, "flags": 4},
- {"matrix": [11, 3], "x": 192, "y": 64, "flags": 4},
- {"matrix": [11, 2], "x": 200, "y": 64, "flags": 4},
- {"matrix": [11, 1], "x": 208, "y": 64, "flags": 4},
- {"matrix": [0, 5], "x": 88, "y": 0, "flags": 4},
- {"matrix": [1, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [2, 5], "x": 72, "y": 0, "flags": 4},
- {"matrix": [3, 5], "x": 64, "y": 0, "flags": 4},
- {"matrix": [4, 5], "x": 56, "y": 0, "flags": 4},
- {"matrix": [5, 5], "x": 48, "y": 0, "flags": 4},
- {"matrix": [5, 0], "x": 40, "y": 0, "flags": 4},
- {"matrix": [4, 0], "x": 32, "y": 0, "flags": 4},
- {"matrix": [3, 0], "x": 24, "y": 0, "flags": 4},
- {"matrix": [2, 0], "x": 16, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 8, "y": 0, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 4, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 12, "y": 16, "flags": 4},
- {"matrix": [2, 1], "x": 20, "y": 16, "flags": 4},
- {"matrix": [3, 1], "x": 28, "y": 16, "flags": 4},
- {"matrix": [4, 1], "x": 36, "y": 16, "flags": 4},
- {"matrix": [5, 1], "x": 44, "y": 16, "flags": 4},
- {"matrix": [5, 6], "x": 52, "y": 16, "flags": 4},
- {"matrix": [4, 6], "x": 60, "y": 16, "flags": 4},
- {"matrix": [3, 6], "x": 68, "y": 16, "flags": 4},
- {"matrix": [2, 6], "x": 76, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 84, "y": 16, "flags": 4},
- {"matrix": [0, 6], "x": 92, "y": 16, "flags": 4},
- {"matrix": [0, 7], "x": 96, "y": 32, "flags": 4},
- {"matrix": [1, 7], "x": 88, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 80, "y": 32, "flags": 4},
- {"matrix": [3, 7], "x": 72, "y": 32, "flags": 4},
- {"matrix": [4, 7], "x": 64, "y": 32, "flags": 4},
- {"matrix": [5, 7], "x": 56, "y": 32, "flags": 4},
- {"matrix": [5, 2], "x": 48, "y": 32, "flags": 4},
- {"matrix": [4, 2], "x": 40, "y": 32, "flags": 4},
- {"matrix": [3, 2], "x": 32, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 24, "y": 32, "flags": 4},
- {"matrix": [1, 2], "x": 16, "y": 32, "flags": 4},
- {"matrix": [0, 2], "x": 8, "y": 32, "flags": 4},
- {"matrix": [0, 3], "x": 12, "y": 48, "flags": 4},
- {"matrix": [1, 3], "x": 20, "y": 48, "flags": 4},
- {"matrix": [2, 3], "x": 28, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 36, "y": 48, "flags": 4},
- {"matrix": [4, 3], "x": 44, "y": 48, "flags": 4},
- {"matrix": [5, 3], "x": 52, "y": 48, "flags": 4},
- {"matrix": [5, 8], "x": 60, "y": 48, "flags": 4},
- {"matrix": [4, 8], "x": 68, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 76, "y": 48, "flags": 4},
- {"matrix": [2, 8], "x": 84, "y": 48, "flags": 4},
- {"matrix": [1, 8], "x": 92, "y": 48, "flags": 4},
- {"matrix": [0, 8], "x": 100, "y": 48, "flags": 4},
- {"matrix": [0, 9], "x": 104, "y": 64, "flags": 4},
- {"matrix": [1, 9], "x": 96, "y": 64, "flags": 4},
- {"matrix": [2, 9], "x": 88, "y": 64, "flags": 4},
- {"matrix": [3, 9], "x": 80, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 72, "y": 64, "flags": 4},
- {"matrix": [5, 9], "x": 64, "y": 64, "flags": 4},
- {"matrix": [5, 4], "x": 56, "y": 64, "flags": 4},
- {"matrix": [4, 4], "x": 48, "y": 64, "flags": 4},
- {"matrix": [3, 4], "x": 40, "y": 64, "flags": 4},
- {"matrix": [2, 4], "x": 32, "y": 64, "flags": 4},
- {"matrix": [1, 4], "x": 24, "y": 64, "flags": 4},
- {"matrix": [0, 4], "x": 16, "y": 64, "flags": 4}
- ],
"max_brightness": 50
},
"rgblight": {
diff --git a/keyboards/gizmo_engineering/gk6/gk6.c b/keyboards/gizmo_engineering/gk6/gk6.c
index a6f6d93438..fe85ecc235 100755
--- a/keyboards/gizmo_engineering/gk6/gk6.c
+++ b/keyboards/gizmo_engineering/gk6/gk6.c
@@ -82,4 +82,102 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
{1, C9_15, C8_15, C6_14}, //61 led59
{1, C9_16, C7_15, C6_15}, //62 led60
};
+
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+// 1, 6, 10, 15, 20, 26, 31, 37, 42, 47, 52, 56
+ {0, 5, 10, 15, 20, 26, 31, 37, 43, 48, 53, 58},
+// 2, 7, 11, 16, 21, 27, 32, 37b, 43, 48, 52b, 57
+ {1, 6, 11, 16, 21, 27, 32, 38, 44, 49, 54, 59},
+// 3, 7b, 12, 17, 22, 28, 33, 38, 44, 49, 53, 58
+ {2, 7, 12, 17, 22, 28, 33, 39, 45, 50, 55, 60},
+// 4, 8, 13, 18, 23, 29, 34, 39, 45, 50, 54, 59
+ {3, 8, 13, 18, 23, 29, 34, 40, 46, 51, 56, 61},
+// 5, 9, 14, 19, 25, NO_LED, NO_LED, 41, 46, 51, 55, 60
+ {4, 9, 14, 19, 25, NO_LED, NO_LED, 42, 47, 52, 57, 62},
+}, {
+ // LED Index to Physical Position
+ {0, 0}, // 0
+ {0, 16}, // 1
+ {0, 32}, // 2
+ {0, 48}, // 3
+ {0, 64}, // 4
+
+ {21, 0}, // 5
+ {21, 16}, // 6
+ {21, 32}, // 7
+ {21, 48}, // 8
+ {21, 64}, // 9
+
+ {41, 0}, // 10
+ {41, 16}, // 11
+ {41, 32}, // 12
+ {41, 48}, // 13
+ {41, 64}, // 14
+
+ {61, 0}, // 15
+ {61, 16}, // 16
+ {61, 32}, // 17
+ {61, 48}, // 18
+ {61, 64}, // 19
+
+ {82, 0}, // 20
+ {82, 16}, // 21
+ {82, 32}, // 22
+ {82, 48}, // 23
+ {82, 64}, // 24
+ {92, 64}, // 25
+
+ {102, 0}, // 26
+ {102, 16}, // 27
+ {102, 32}, // 28
+ {102, 48}, // 29
+ {102, 64}, // 30
+
+ {122, 0}, // 31
+ {122, 16}, // 32
+ {122, 32}, // 33
+ {122, 48}, // 34
+ {122, 64}, // 35
+ {112, 64}, // 36
+
+ {142, 0}, // 37
+ {142, 16}, // 38
+ {142, 32}, // 39
+ {142, 48}, // 40
+ {142, 64}, // 41
+ {132, 64}, // 42
+
+ {163, 0}, // 43
+ {163, 16}, // 44
+ {163, 32}, // 45
+ {163, 48}, // 46
+ {163, 64}, // 47
+
+ {183, 0}, // 48
+ {183, 16}, // 49
+ {183, 32}, // 50
+ {183, 48}, // 51
+ {183, 64}, // 52
+
+ {203, 0}, // 53
+ {203, 16}, // 54
+ {203, 32}, // 55
+ {203, 48}, // 56
+ {203, 64}, // 57
+
+ {224, 0}, // 58
+ {224, 16}, // 59
+ {224, 32}, // 60
+ {224, 48}, // 61
+ {224, 64}, // 62
+}, {
+ // LED Index to Flag
+ 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
+ 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
+ 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
+ 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
+ 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
+ 0x04, 0x04, 0x04
+} };
#endif
diff --git a/keyboards/gizmo_engineering/gk6/keyboard.json b/keyboards/gizmo_engineering/gk6/keyboard.json
index 70ab615a7c..45e5bf0706 100644
--- a/keyboards/gizmo_engineering/gk6/keyboard.json
+++ b/keyboards/gizmo_engineering/gk6/keyboard.json
@@ -24,71 +24,6 @@
"solid_reactive_multicross": true
},
"driver": "is31fl3731",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4},
- {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4},
- {"matrix": [0, 1], "x": 21, "y": 0, "flags": 4},
- {"matrix": [1, 1], "x": 21, "y": 16, "flags": 4},
- {"matrix": [2, 1], "x": 21, "y": 32, "flags": 4},
- {"matrix": [3, 1], "x": 21, "y": 48, "flags": 4},
- {"matrix": [4, 1], "x": 21, "y": 64, "flags": 4},
- {"matrix": [0, 2], "x": 41, "y": 0, "flags": 4},
- {"matrix": [1, 2], "x": 41, "y": 16, "flags": 4},
- {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
- {"matrix": [3, 2], "x": 41, "y": 48, "flags": 4},
- {"matrix": [4, 2], "x": 41, "y": 64, "flags": 4},
- {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4},
- {"matrix": [1, 3], "x": 61, "y": 16, "flags": 4},
- {"matrix": [2, 3], "x": 61, "y": 32, "flags": 4},
- {"matrix": [3, 3], "x": 61, "y": 48, "flags": 4},
- {"matrix": [4, 3], "x": 61, "y": 64, "flags": 4},
- {"matrix": [0, 4], "x": 82, "y": 0, "flags": 4},
- {"matrix": [1, 4], "x": 82, "y": 16, "flags": 4},
- {"matrix": [2, 4], "x": 82, "y": 32, "flags": 4},
- {"matrix": [3, 4], "x": 82, "y": 48, "flags": 4},
- {"x": 82, "y": 64, "flags": 4},
- {"matrix": [4, 4], "x": 92, "y": 64, "flags": 4},
- {"matrix": [0, 5], "x": 102, "y": 0, "flags": 4},
- {"matrix": [1, 5], "x": 102, "y": 16, "flags": 4},
- {"matrix": [2, 5], "x": 102, "y": 32, "flags": 4},
- {"matrix": [3, 5], "x": 102, "y": 48, "flags": 4},
- {"x": 102, "y": 64, "flags": 4},
- {"matrix": [0, 6], "x": 122, "y": 0, "flags": 4},
- {"matrix": [1, 6], "x": 122, "y": 16, "flags": 4},
- {"matrix": [2, 6], "x": 122, "y": 32, "flags": 4},
- {"matrix": [3, 6], "x": 122, "y": 48, "flags": 4},
- {"x": 122, "y": 64, "flags": 4},
- {"x": 112, "y": 64, "flags": 4},
- {"matrix": [0, 7], "x": 142, "y": 0, "flags": 4},
- {"matrix": [1, 7], "x": 142, "y": 16, "flags": 4},
- {"matrix": [2, 7], "x": 142, "y": 32, "flags": 4},
- {"matrix": [3, 7], "x": 142, "y": 48, "flags": 4},
- {"x": 142, "y": 64, "flags": 4},
- {"matrix": [4, 7], "x": 132, "y": 64, "flags": 4},
- {"matrix": [0, 8], "x": 163, "y": 0, "flags": 4},
- {"matrix": [1, 8], "x": 163, "y": 16, "flags": 4},
- {"matrix": [2, 8], "x": 163, "y": 32, "flags": 4},
- {"matrix": [3, 8], "x": 163, "y": 48, "flags": 4},
- {"matrix": [4, 8], "x": 163, "y": 64, "flags": 4},
- {"matrix": [0, 9], "x": 183, "y": 0, "flags": 4},
- {"matrix": [1, 9], "x": 183, "y": 16, "flags": 4},
- {"matrix": [2, 9], "x": 183, "y": 32, "flags": 4},
- {"matrix": [3, 9], "x": 183, "y": 48, "flags": 4},
- {"matrix": [4, 9], "x": 183, "y": 64, "flags": 4},
- {"matrix": [0, 10], "x": 203, "y": 0, "flags": 4},
- {"matrix": [1, 10], "x": 203, "y": 16, "flags": 4},
- {"matrix": [2, 10], "x": 203, "y": 32, "flags": 4},
- {"matrix": [3, 10], "x": 203, "y": 48, "flags": 4},
- {"matrix": [4, 10], "x": 203, "y": 64, "flags": 4},
- {"matrix": [0, 11], "x": 224, "y": 0, "flags": 4},
- {"matrix": [1, 11], "x": 224, "y": 16, "flags": 4},
- {"matrix": [2, 11], "x": 224, "y": 32, "flags": 4},
- {"matrix": [3, 11], "x": 224, "y": 48, "flags": 4},
- {"matrix": [4, 11], "x": 224, "y": 64, "flags": 4}
- ],
"react_on_keyup": true,
"sleep": true
},
diff --git a/keyboards/gkeyboard/greatpad/config.h b/keyboards/gkeyboard/greatpad/config.h
index 3ea0c44f9b..4c745779b4 100644
--- a/keyboards/gkeyboard/greatpad/config.h
+++ b/keyboards/gkeyboard/greatpad/config.h
@@ -3,9 +3,9 @@
#pragma once
-#define I2C_DRIVER I2CD0
-#define I2C1_SCL_PIN GP21
-#define I2C1_SDA_PIN GP20
-
#define OLED_DISPLAY_128X64
+#define I2C1_SCL_PIN GP21
+#define I2C1_SDA_PIN GP20
+#define I2C_DRIVER I2CD0
#define OLED_BRIGHTNESS 128
+#define OLED_FONT_H "lib/glcdfont.c"
diff --git a/keyboards/gkeyboard/greatpad/lib/glcdfont.c b/keyboards/gkeyboard/greatpad/lib/glcdfont.c
new file mode 100644
index 0000000000..10ced2bb2b
--- /dev/null
+++ b/keyboards/gkeyboard/greatpad/lib/glcdfont.c
@@ -0,0 +1,236 @@
+// Copyright 2023 gkeyboard (@gkeyboard)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0.
+// See gfxfont.h for newer custom bitmap font info.
+
+#pragma once
+
+#include "progmem.h"
+
+static const unsigned char PROGMEM font[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
+ 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
+ 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
+ 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
+ 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
+ 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
+ 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
+ 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
+ 0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
+ 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
+ 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
+ 0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
+ 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
+ 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
+ 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
+ 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
+ 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
+ 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
+ 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
+ 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
+ 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
+ 0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
+ 0x94, 0xB6, 0xFF, 0xB6, 0x94, 0x00,
+ 0x08, 0x0C, 0x7E, 0x0C, 0x08, 0x00,
+ 0x10, 0x30, 0x7E, 0x30, 0x10, 0x00,
+ 0x08, 0x08, 0x3E, 0x1C, 0x08, 0x00,
+ 0x08, 0x1C, 0x3E, 0x08, 0x08, 0x00,
+ 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
+ 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
+ 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
+ 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
+ 0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
+ 0x14, 0x3E, 0x14, 0x3E, 0x14, 0x00,
+ 0x2E, 0x2A, 0x7F, 0x2A, 0x3A, 0x00,
+ 0x20, 0x12, 0x08, 0x24, 0x02, 0x00,
+ 0x37, 0x49, 0x49, 0x37, 0x50, 0x00,
+ 0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
+ 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
+ 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
+ 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
+ 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
+ 0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
+ 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
+ 0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
+ 0x7F, 0x51, 0x49, 0x45, 0x7F, 0x00,
+ 0x08, 0x04, 0x02, 0x7F, 0x00, 0x00,
+ 0x71, 0x49, 0x49, 0x49, 0x4F, 0x00,
+ 0x41, 0x41, 0x49, 0x49, 0x77, 0x00,
+ 0x0F, 0x10, 0x10, 0x10, 0x7F, 0x00,
+ 0x4F, 0x49, 0x49, 0x49, 0x71, 0x00,
+ 0x7E, 0x49, 0x49, 0x49, 0x70, 0x00,
+ 0x01, 0x01, 0x71, 0x09, 0x07, 0x00,
+ 0x77, 0x49, 0x49, 0x49, 0x77, 0x00,
+ 0x07, 0x49, 0x49, 0x49, 0x3F, 0x00,
+ 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
+ 0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
+ 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
+ 0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
+ 0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
+ 0x01, 0x01, 0x59, 0x09, 0x0F, 0x00,
+ 0x7F, 0x41, 0x5D, 0x59, 0x4F, 0x00,
+ 0x7F, 0x09, 0x09, 0x09, 0x7F, 0x00,
+ 0x7F, 0x49, 0x49, 0x49, 0x76, 0x00,
+ 0x7F, 0x41, 0x41, 0x41, 0x41, 0x00,
+ 0x7F, 0x41, 0x41, 0x41, 0x7E, 0x00,
+ 0x7F, 0x49, 0x49, 0x49, 0x49, 0x00,
+ 0x7F, 0x09, 0x09, 0x09, 0x09, 0x00,
+ 0x7F, 0x41, 0x41, 0x49, 0x7B, 0x00,
+ 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
+ 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00,
+ 0x70, 0x40, 0x40, 0x40, 0x7F, 0x00,
+ 0x7F, 0x08, 0x08, 0x08, 0x77, 0x00,
+ 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
+ 0x7F, 0x01, 0x1F, 0x01, 0x7F, 0x00,
+ 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
+ 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00,
+ 0x7F, 0x09, 0x09, 0x09, 0x0F, 0x00,
+ 0x7F, 0x41, 0x71, 0x41, 0x7F, 0x00,
+ 0x7F, 0x09, 0x09, 0x19, 0x6F, 0x00,
+ 0x47, 0x49, 0x49, 0x49, 0x79, 0x00,
+ 0x01, 0x01, 0x7F, 0x01, 0x01, 0x00,
+ 0x7F, 0x40, 0x40, 0x40, 0x7F, 0x00,
+ 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
+ 0x7F, 0x40, 0x7F, 0x40, 0x7F, 0x00,
+ 0x77, 0x08, 0x08, 0x08, 0x77, 0x00,
+ 0x4F, 0x48, 0x48, 0x48, 0x7F, 0x00,
+ 0x61, 0x51, 0x49, 0x45, 0x43, 0x00,
+ 0x00, 0x7F, 0x41, 0x41, 0x00, 0x00,
+ 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
+ 0x00, 0x41, 0x41, 0x7F, 0x00, 0x00,
+ 0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
+ 0x00, 0x00, 0x07, 0x08, 0x00, 0x00,
+ 0x60, 0x54, 0x54, 0x54, 0x7C, 0x00,
+ 0x7F, 0x44, 0x44, 0x44, 0x78, 0x00,
+ 0x7C, 0x44, 0x44, 0x44, 0x44, 0x00,
+ 0x78, 0x44, 0x44, 0x44, 0x7F, 0x00,
+ 0x7C, 0x54, 0x54, 0x54, 0x5C, 0x00,
+ 0x08, 0x7F, 0x09, 0x09, 0x09, 0x00,
+ 0x38, 0xA4, 0xA4, 0xA4, 0xFC, 0x00,
+ 0x7F, 0x04, 0x04, 0x04, 0x78, 0x00,
+ 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00,
+ 0x70, 0x40, 0x40, 0x7D, 0x00, 0x00,
+ 0x7F, 0x08, 0x08, 0x08, 0x76, 0x00,
+ 0x00, 0x00, 0x7F, 0x40, 0x00, 0x00,
+ 0x7C, 0x04, 0x7C, 0x04, 0x7C, 0x00,
+ 0x7C, 0x04, 0x04, 0x04, 0x78, 0x00,
+ 0x7C, 0x44, 0x44, 0x44, 0x7C, 0x00,
+ 0xFC, 0x24, 0x24, 0x24, 0x38, 0x00,
+ 0x38, 0x24, 0x24, 0x24, 0xFC, 0x00,
+ 0x7C, 0x04, 0x04, 0x04, 0x04, 0x00,
+ 0x5C, 0x54, 0x54, 0x54, 0x74, 0x00,
+ 0x04, 0x04, 0x7F, 0x04, 0x04, 0x00,
+ 0x7C, 0x40, 0x40, 0x40, 0x7C, 0x00,
+ 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
+ 0x7C, 0x40, 0x7C, 0x40, 0x7C, 0x00,
+ 0x6C, 0x10, 0x10, 0x10, 0x6C, 0x00,
+ 0xBC, 0xA0, 0xA0, 0xA0, 0xFC, 0x00,
+ 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
+ 0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
+ 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
+ 0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
+ 0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
+ 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
+ 0x00, 0x00, 0xE0, 0xF0, 0xF0, 0xF0,
+ 0xF0, 0xFE, 0xFF, 0x9F, 0x0F, 0x0F,
+ 0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F,
+ 0x0F, 0x0F, 0x9F, 0xFF, 0xFE, 0xF0,
+ 0xF0, 0xF0, 0xF0, 0xE0, 0x00, 0x00,
+ 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x00,
+ 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xE0, 0x10, 0x08, 0x04, 0x02, 0x02,
+ 0x02, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x02, 0x02, 0x02, 0x04, 0x08,
+ 0x10, 0xE0, 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0xFF,
+ 0x7F, 0x51, 0x55, 0x55, 0x45, 0x7F,
+ 0x41, 0x5F, 0x5F, 0x5F, 0x7F, 0x00,
+ 0x7F, 0x41, 0x7B, 0x77, 0x41, 0x7F,
+ 0x41, 0x5F, 0x5F, 0x5F, 0x7F, 0x00,
+ 0x7F, 0x41, 0x5D, 0x5D, 0x5D, 0x7F,
+ 0x41, 0x5F, 0x5F, 0x5F, 0x7F, 0x00,
+ 0xC0, 0xE0, 0xF0, 0xF0, 0xF0, 0xE0,
+ 0xE6, 0xF7, 0xF3, 0xF0, 0x60, 0x00,
+ 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x00,
+ 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x00,
+ 0xF8, 0x1C, 0xDE, 0x1F, 0xFF, 0xFF,
+ 0xFF, 0x1F, 0xDE, 0x1C, 0xF8, 0x00,
+ 0xC0, 0xE2, 0xB4, 0xF8, 0xF8, 0xF8,
+ 0xF8, 0xF8, 0xB4, 0xE2, 0xC0, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x07, 0x0F, 0x0F, 0x0F,
+ 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F,
+ 0x87, 0xE1, 0xF9, 0xF9, 0xE1, 0x87,
+ 0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F,
+ 0x0F, 0x0F, 0x0F, 0x07, 0x00, 0x00,
+ 0xFF, 0x00, 0x00, 0xC0, 0x30, 0x0C,
+ 0x33, 0xC0, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F,
+ 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xC0, 0x3F, 0x00, 0x00, 0x00,
+ 0xFF, 0x08, 0x08, 0x08, 0x08, 0x08,
+ 0x08, 0x38, 0xC8, 0x08, 0x08, 0x0F,
+ 0x7E, 0x00, 0x00, 0x7F, 0x00, 0x00,
+ 0x78, 0x00, 0x00, 0x7E, 0x00, 0x00,
+ 0x24, 0x24, 0x12, 0x12, 0x24, 0x24,
+ 0x48, 0x48, 0x24, 0x24, 0x12, 0x12,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x3F,
+ 0x3F, 0x7F, 0x7F, 0x38, 0x10, 0x00,
+ 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00,
+ 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00,
+ 0x0F, 0x14, 0x21, 0x40, 0x45, 0x41,
+ 0x45, 0x40, 0x21, 0x14, 0x0F, 0x00,
+ 0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D,
+ 0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x3F, 0x0C, 0x03, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x03, 0x0C, 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x3F, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x01, 0x02, 0x04, 0x08, 0x10, 0x10,
+ 0x10, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x10, 0x10, 0x10, 0x08, 0x04,
+ 0x02, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x03, 0x0C, 0x30,
+ 0x40, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x40, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x1C, 0x3E, 0x3E, 0x3E, 0x1C, 0x00,
+ 0x3E, 0x1C, 0x1C, 0x08, 0x08, 0x00,
+ 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 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, 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, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
diff --git a/keyboards/gl516/xr63gl/config.h b/keyboards/gl516/xr63gl/config.h
index d0af2e5b1d..928fde7d86 100644
--- a/keyboards/gl516/xr63gl/config.h
+++ b/keyboards/gl516/xr63gl/config.h
@@ -23,3 +23,4 @@
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED_MASK 0U
diff --git a/keyboards/gmmk/gmmk2/p65/ansi/ansi.c b/keyboards/gmmk/gmmk2/p65/ansi/ansi.c
index 94aa93d8ea..b3ac9906db 100644
--- a/keyboards/gmmk/gmmk2/p65/ansi/ansi.c
+++ b/keyboards/gmmk/gmmk2/p65/ansi/ansi.c
@@ -118,4 +118,119 @@ const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = {
{1, SW9_CS16, SW9_CS17, SW9_CS18 }, // 87 LED 19
{1, SW10_CS16, SW10_CS17, SW10_CS18} // 88 LED 20
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {{
+ { 44, 57, __, 64, __, 66, 58, 55},
+ { 16, 15, 31, 0, 45, 59, __, 1},
+ { 17, 30, 32, 60, 46, 14, 29, 2},
+ { 18, 61, 33, 63, 47, 56, 62, 3},
+ { 19, 20, 34, 35, 48, 49, 5, 4},
+ { 22, 21, 37, 36, 51, 50, 6, 7},
+ { 23, 27, 38, __, 52, 43, 12, 8},
+ { 24, 13, 39, 65, 53, __, 28, 9},
+ { 25, 26, 40, 41, 42, 54, 11, 10}
+}, {
+ {14, 0 }, // 0 Esc
+ {28, 0 }, // 1 1
+ {42, 0 }, // 2 2
+ {56, 0 }, // 3 3
+ {70, 0 }, // 4 4
+ {84, 0 }, // 5 5
+ {98, 0 }, // 6 6
+ {112, 0 }, // 7 7
+ {126, 0 }, // 8 8
+ {140, 0 }, // 9 9
+ {154, 0 }, // 10 0
+ {168, 0 }, // 11 -
+ {182, 0 }, // 12 =
+ {196, 0 }, // 13 Backspace
+ {210, 0 }, // 14 Del
+
+ {14, 16}, // 15 Tab
+ {28, 16}, // 16 Q
+ {42, 16}, // 17 W
+ {56, 16}, // 18 E
+ {70, 16}, // 19 R
+ {84, 16}, // 20 T
+ {98, 16}, // 21 Y
+ {112, 16}, // 22 U
+ {126, 16}, // 23 I
+ {140, 16}, // 24 O
+ {154, 16}, // 25 P
+ {168, 16}, // 26 [
+ {182, 16}, // 27 ]
+ {196, 16}, // 28 \|
+ {210, 16}, // 29 PgUp
+
+ {14, 32}, // 30 Caps Lock
+ {28, 32}, // 31 A
+ {42, 32}, // 32 S
+ {56, 32}, // 33 D
+ {70, 32}, // 34 F
+ {84, 32}, // 35 G
+ {98, 32}, // 36 H
+ {112, 32}, // 37 J
+ {126, 32}, // 38 K
+ {140, 32}, // 39 L
+ {154, 32}, // 40 ;
+ {168, 32}, // 41 '
+ {196, 32}, // 42 Enter
+ {210, 32}, // 43 PgDn
+
+ {14, 48}, // 44 Shift_L
+ {42, 48}, // 45 Z
+ {56, 48}, // 46 X
+ {70, 48}, // 47 C
+ {84, 48}, // 48 V
+ {98, 48}, // 49 B
+ {112, 48}, // 50 N
+ {126, 48}, // 51 M
+ {140, 48}, // 52 ,
+ {154, 48}, // 53 .
+ {168, 48}, // 54 /
+ {182, 48}, // 55 Shift_R
+ {196, 48}, // 56 Up
+ {210, 48}, // 57 END
+
+ {14, 64}, // 58 Ctrl_L
+ {28, 64}, // 59 Win_L
+ {42, 64}, // 60 Alt_L
+ {84, 64}, // 61 Space
+ {126, 64}, // 62 Alt_R
+ {140, 64}, // 63 FN
+ {182, 64}, // 64 Left
+ {196, 64}, // 65 Down
+ {210, 64}, // 66 Right
+
+ {224, 0 }, // 69 LED 1
+ {224, 7 }, // 70 LED 2
+ {224, 14}, // 71 LED 3
+ {224, 21}, // 72 LED 4
+ {224, 28}, // 73 LED 5
+ {224, 35}, // 74 LED 6
+ {224, 42}, // 75 LED 7
+ {224, 49}, // 76 LED 8
+ {224, 56}, // 77 LED 9
+ {224, 64}, // 78 LED 10
+ {0, 0 }, // 79 LED 11
+ {0, 7 }, // 80 LED 12
+ {0, 14}, // 81 LED 13
+ {0, 21}, // 82 LED 14
+ {0, 28}, // 83 LED 15
+ {0, 35}, // 84 LED 16
+ {0, 42}, // 85 LED 17
+ {0, 49}, // 86 LED 18
+ {0, 56}, // 87 LED 19
+ {0, 64}, // 88 LED 20
+}, {
+ 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, 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, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
+} };
#endif
diff --git a/keyboards/gmmk/gmmk2/p65/ansi/keyboard.json b/keyboards/gmmk/gmmk2/p65/ansi/keyboard.json
index 14603e0283..70c308da5f 100644
--- a/keyboards/gmmk/gmmk2/p65/ansi/keyboard.json
+++ b/keyboards/gmmk/gmmk2/p65/ansi/keyboard.json
@@ -28,97 +28,6 @@
},
"processor": "WB32F3G71",
"bootloader": "wb32-dfu",
- "rgb_matrix": {
- "layout": [
- {"matrix": [1, 3], "x": 14, "y": 0, "flags": 4},
- {"matrix": [1, 7], "x": 28, "y": 0, "flags": 4},
- {"matrix": [2, 7], "x": 42, "y": 0, "flags": 4},
- {"matrix": [3, 7], "x": 56, "y": 0, "flags": 4},
- {"matrix": [4, 7], "x": 70, "y": 0, "flags": 4},
- {"matrix": [4, 6], "x": 84, "y": 0, "flags": 4},
- {"matrix": [5, 6], "x": 98, "y": 0, "flags": 4},
- {"matrix": [5, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [6, 7], "x": 126, "y": 0, "flags": 4},
- {"matrix": [7, 7], "x": 140, "y": 0, "flags": 4},
- {"matrix": [8, 7], "x": 154, "y": 0, "flags": 4},
- {"matrix": [8, 6], "x": 168, "y": 0, "flags": 4},
- {"matrix": [6, 6], "x": 182, "y": 0, "flags": 4},
- {"matrix": [7, 1], "x": 196, "y": 0, "flags": 4},
- {"matrix": [2, 5], "x": 210, "y": 0, "flags": 4},
- {"matrix": [1, 1], "x": 14, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 28, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 42, "y": 16, "flags": 4},
- {"matrix": [3, 0], "x": 56, "y": 16, "flags": 4},
- {"matrix": [4, 0], "x": 70, "y": 16, "flags": 4},
- {"matrix": [4, 1], "x": 84, "y": 16, "flags": 4},
- {"matrix": [5, 1], "x": 98, "y": 16, "flags": 4},
- {"matrix": [5, 0], "x": 112, "y": 16, "flags": 4},
- {"matrix": [6, 0], "x": 126, "y": 16, "flags": 4},
- {"matrix": [7, 0], "x": 140, "y": 16, "flags": 4},
- {"matrix": [8, 0], "x": 154, "y": 16, "flags": 4},
- {"matrix": [8, 1], "x": 168, "y": 16, "flags": 4},
- {"matrix": [6, 1], "x": 182, "y": 16, "flags": 4},
- {"matrix": [7, 6], "x": 196, "y": 16, "flags": 4},
- {"matrix": [2, 6], "x": 210, "y": 16, "flags": 4},
- {"matrix": [2, 1], "x": 14, "y": 32, "flags": 4},
- {"matrix": [1, 2], "x": 28, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 42, "y": 32, "flags": 4},
- {"matrix": [3, 2], "x": 56, "y": 32, "flags": 4},
- {"matrix": [4, 2], "x": 70, "y": 32, "flags": 4},
- {"matrix": [4, 3], "x": 84, "y": 32, "flags": 4},
- {"matrix": [5, 3], "x": 98, "y": 32, "flags": 4},
- {"matrix": [5, 2], "x": 112, "y": 32, "flags": 4},
- {"matrix": [6, 2], "x": 126, "y": 32, "flags": 4},
- {"matrix": [7, 2], "x": 140, "y": 32, "flags": 4},
- {"matrix": [8, 2], "x": 154, "y": 32, "flags": 4},
- {"matrix": [8, 3], "x": 168, "y": 32, "flags": 4},
- {"matrix": [8, 4], "x": 196, "y": 32, "flags": 4},
- {"matrix": [6, 5], "x": 210, "y": 32, "flags": 4},
- {"matrix": [0, 0], "x": 14, "y": 48, "flags": 4},
- {"matrix": [1, 4], "x": 42, "y": 48, "flags": 4},
- {"matrix": [2, 4], "x": 56, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 70, "y": 48, "flags": 4},
- {"matrix": [4, 4], "x": 84, "y": 48, "flags": 4},
- {"matrix": [4, 5], "x": 98, "y": 48, "flags": 4},
- {"matrix": [5, 5], "x": 112, "y": 48, "flags": 4},
- {"matrix": [5, 4], "x": 126, "y": 48, "flags": 4},
- {"matrix": [6, 4], "x": 140, "y": 48, "flags": 4},
- {"matrix": [7, 4], "x": 154, "y": 48, "flags": 4},
- {"matrix": [8, 5], "x": 168, "y": 48, "flags": 4},
- {"matrix": [0, 7], "x": 182, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 196, "y": 48, "flags": 4},
- {"matrix": [0, 1], "x": 210, "y": 48, "flags": 4},
- {"matrix": [0, 6], "x": 14, "y": 64, "flags": 4},
- {"matrix": [1, 5], "x": 28, "y": 64, "flags": 4},
- {"matrix": [2, 3], "x": 42, "y": 64, "flags": 4},
- {"matrix": [3, 1], "x": 84, "y": 64, "flags": 4},
- {"matrix": [3, 6], "x": 126, "y": 64, "flags": 4},
- {"matrix": [3, 3], "x": 140, "y": 64, "flags": 4},
- {"matrix": [0, 3], "x": 182, "y": 64, "flags": 4},
- {"matrix": [7, 3], "x": 196, "y": 64, "flags": 4},
- {"matrix": [0, 5], "x": 210, "y": 64, "flags": 4},
- {"x": 224, "y": 0, "flags": 2},
- {"x": 224, "y": 7, "flags": 2},
- {"x": 224, "y": 14, "flags": 2},
- {"x": 224, "y": 21, "flags": 2},
- {"x": 224, "y": 28, "flags": 2},
- {"x": 224, "y": 35, "flags": 2},
- {"x": 224, "y": 42, "flags": 2},
- {"x": 224, "y": 49, "flags": 2},
- {"x": 224, "y": 56, "flags": 2},
- {"x": 224, "y": 64, "flags": 2},
- {"x": 0, "y": 0, "flags": 2},
- {"x": 0, "y": 7, "flags": 2},
- {"x": 0, "y": 14, "flags": 2},
- {"x": 0, "y": 21, "flags": 2},
- {"x": 0, "y": 28, "flags": 2},
- {"x": 0, "y": 35, "flags": 2},
- {"x": 0, "y": 42, "flags": 2},
- {"x": 0, "y": 49, "flags": 2},
- {"x": 0, "y": 56, "flags": 2},
- {"x": 0, "y": 64, "flags": 2}
- ]
- },
"layout_aliases": {
"LAYOUT": "LAYOUT_65_ansi_blocker"
},
diff --git a/keyboards/gmmk/gmmk2/p65/iso/iso.c b/keyboards/gmmk/gmmk2/p65/iso/iso.c
index bc9cfe6a83..abadaccd34 100644
--- a/keyboards/gmmk/gmmk2/p65/iso/iso.c
+++ b/keyboards/gmmk/gmmk2/p65/iso/iso.c
@@ -119,4 +119,120 @@ const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = {
{1, SW9_CS16, SW9_CS17, SW9_CS18 }, // 86 LED 19
{1, SW10_CS16, SW10_CS17, SW10_CS18} // 87 LED 20
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {{
+ { 44, 58, 45, 65, __, 67, 59, 56},
+ { 16, 15, 31, 0, 46, 60, __, 1},
+ { 17, 30, 32, 61, 47, 14, 29, 2},
+ { 18, 62, 33, 64, 48, 57, 63, 3},
+ { 19, 20, 34, 35, 49, 50, 5, 4},
+ { 22, 21, 37, 36, 52, 51, 6, 7},
+ { 23, 27, 38, __, 53, 43, 12, 8},
+ { 24, 13, 39, 66, 54, 42, __, 9},
+ { 25, 26, 40, 41, 28, 55, 11, 10}
+}, {
+ {14, 0 }, // 0 Esc
+ {28, 0 }, // 1 1
+ {42, 0 }, // 2 2
+ {56, 0 }, // 3 3
+ {70, 0 }, // 4 4
+ {84, 0 }, // 5 5
+ {98, 0 }, // 6 6
+ {112, 0 }, // 7 7
+ {126, 0 }, // 8 8
+ {140, 0 }, // 9 9
+ {154, 0 }, // 10 0
+ {168, 0 }, // 11 -
+ {182, 0 }, // 12 =
+ {196, 0 }, // 13 Backspace
+ {210, 0 }, // 14 HOME
+
+ {14, 16}, // 15 Tab
+ {28, 16}, // 16 Q
+ {42, 16}, // 17 W
+ {56, 16}, // 18 E
+ {70, 16}, // 19 R
+ {84, 16}, // 20 T
+ {98, 16}, // 21 Y
+ {112, 16}, // 22 U
+ {126, 16}, // 23 I
+ {140, 16}, // 24 O
+ {154, 16}, // 25 P
+ {168, 16}, // 26 [
+ {182, 16}, // 27 ]
+ {196, 16}, // 28 ENTER
+ {210, 16}, // 29 PgUp
+
+ {14, 32}, // 30 Caps Lock
+ {28, 32}, // 31 A
+ {42, 32}, // 32 S
+ {56, 32}, // 33 D
+ {70, 32}, // 34 F
+ {84, 32}, // 35 G
+ {98, 32}, // 36 H
+ {112, 32}, // 37 J
+ {126, 32}, // 38 K
+ {140, 32}, // 39 L
+ {154, 32}, // 40 ;
+ {168, 32}, // 41 '
+ {182, 32}, // 42 k42
+ {210, 32}, // 43 PgDn
+
+ {14, 48}, // 44 Shift_L
+ {28, 48}, // 45 k45
+ {42, 48}, // 46 Z
+ {56, 48}, // 47 X
+ {70, 48}, // 48 C
+ {84, 48}, // 49 V
+ {98, 48}, // 50 B
+ {112, 48}, // 51 N
+ {126, 48}, // 52 M
+ {140, 48}, // 53 ,
+ {154, 48}, // 54 .
+ {168, 48}, // 55 /
+ {182, 48}, // 56 Shift_R
+ {196, 48}, // 57 Up
+ {210, 48}, // 58 END
+
+ {14, 64}, // 59 Ctrl_L
+ {28, 64}, // 60 Win_L
+ {42, 64}, // 61 Alt_L
+ {84, 64}, // 62 Space
+ {126, 64}, // 63 Alt_R
+ {140, 64}, // 64 FN
+ {182, 64}, // 65 Left
+ {196, 64}, // 66 Down
+ {210, 64}, // 67 Right
+
+ {224, 0 }, // 68 LED 1
+ {224, 7 }, // 69 LED 2
+ {224, 14}, // 70 LED 3
+ {224, 21}, // 71 LED 4
+ {224, 28}, // 72 LED 5
+ {224, 35}, // 73 LED 6
+ {224, 42}, // 74 LED 7
+ {224, 49}, // 75 LED 8
+ {224, 56}, // 76 LED 9
+ {224, 64}, // 77 LED 10
+ {0, 0 }, // 78 LED 11
+ {0, 7 }, // 79 LED 12
+ {0, 14}, // 80 LED 13
+ {0, 21}, // 81 LED 14
+ {0, 28}, // 82 LED 15
+ {0, 35}, // 83 LED 16
+ {0, 42}, // 84 LED 17
+ {0, 49}, // 85 LED 18
+ {0, 56}, // 86 LED 19
+ {0, 64}, // 87 LED 20
+}, {
+ 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, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
+} };
#endif
diff --git a/keyboards/gmmk/gmmk2/p65/iso/keyboard.json b/keyboards/gmmk/gmmk2/p65/iso/keyboard.json
index 6a2f848ea6..9240268b4f 100644
--- a/keyboards/gmmk/gmmk2/p65/iso/keyboard.json
+++ b/keyboards/gmmk/gmmk2/p65/iso/keyboard.json
@@ -28,98 +28,6 @@
},
"processor": "WB32F3G71",
"bootloader": "wb32-dfu",
- "rgb_matrix": {
- "layout": [
- {"matrix": [1, 3], "x": 14, "y": 0, "flags": 4},
- {"matrix": [1, 7], "x": 28, "y": 0, "flags": 4},
- {"matrix": [2, 7], "x": 42, "y": 0, "flags": 4},
- {"matrix": [3, 7], "x": 56, "y": 0, "flags": 4},
- {"matrix": [4, 7], "x": 70, "y": 0, "flags": 4},
- {"matrix": [4, 6], "x": 84, "y": 0, "flags": 4},
- {"matrix": [5, 6], "x": 98, "y": 0, "flags": 4},
- {"matrix": [5, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [6, 7], "x": 126, "y": 0, "flags": 4},
- {"matrix": [7, 7], "x": 140, "y": 0, "flags": 4},
- {"matrix": [8, 7], "x": 154, "y": 0, "flags": 4},
- {"matrix": [8, 6], "x": 168, "y": 0, "flags": 4},
- {"matrix": [6, 6], "x": 182, "y": 0, "flags": 4},
- {"matrix": [7, 1], "x": 196, "y": 0, "flags": 4},
- {"matrix": [2, 5], "x": 210, "y": 0, "flags": 4},
- {"matrix": [1, 1], "x": 14, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 28, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 42, "y": 16, "flags": 4},
- {"matrix": [3, 0], "x": 56, "y": 16, "flags": 4},
- {"matrix": [4, 0], "x": 70, "y": 16, "flags": 4},
- {"matrix": [4, 1], "x": 84, "y": 16, "flags": 4},
- {"matrix": [5, 1], "x": 98, "y": 16, "flags": 4},
- {"matrix": [5, 0], "x": 112, "y": 16, "flags": 4},
- {"matrix": [6, 0], "x": 126, "y": 16, "flags": 4},
- {"matrix": [7, 0], "x": 140, "y": 16, "flags": 4},
- {"matrix": [8, 0], "x": 154, "y": 16, "flags": 4},
- {"matrix": [8, 1], "x": 168, "y": 16, "flags": 4},
- {"matrix": [6, 1], "x": 182, "y": 16, "flags": 4},
- {"matrix": [8, 4], "x": 196, "y": 16, "flags": 4},
- {"matrix": [2, 6], "x": 210, "y": 16, "flags": 4},
- {"matrix": [2, 1], "x": 14, "y": 32, "flags": 4},
- {"matrix": [1, 2], "x": 28, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 42, "y": 32, "flags": 4},
- {"matrix": [3, 2], "x": 56, "y": 32, "flags": 4},
- {"matrix": [4, 2], "x": 70, "y": 32, "flags": 4},
- {"matrix": [4, 3], "x": 84, "y": 32, "flags": 4},
- {"matrix": [5, 3], "x": 98, "y": 32, "flags": 4},
- {"matrix": [5, 2], "x": 112, "y": 32, "flags": 4},
- {"matrix": [6, 2], "x": 126, "y": 32, "flags": 4},
- {"matrix": [7, 2], "x": 140, "y": 32, "flags": 4},
- {"matrix": [8, 2], "x": 154, "y": 32, "flags": 4},
- {"matrix": [8, 3], "x": 168, "y": 32, "flags": 4},
- {"matrix": [7, 5], "x": 182, "y": 32, "flags": 4},
- {"matrix": [6, 5], "x": 210, "y": 32, "flags": 4},
- {"matrix": [0, 0], "x": 14, "y": 48, "flags": 4},
- {"matrix": [0, 2], "x": 28, "y": 48, "flags": 4},
- {"matrix": [1, 4], "x": 42, "y": 48, "flags": 4},
- {"matrix": [2, 4], "x": 56, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 70, "y": 48, "flags": 4},
- {"matrix": [4, 4], "x": 84, "y": 48, "flags": 4},
- {"matrix": [4, 5], "x": 98, "y": 48, "flags": 4},
- {"matrix": [5, 5], "x": 112, "y": 48, "flags": 4},
- {"matrix": [5, 4], "x": 126, "y": 48, "flags": 4},
- {"matrix": [6, 4], "x": 140, "y": 48, "flags": 4},
- {"matrix": [7, 4], "x": 154, "y": 48, "flags": 4},
- {"matrix": [8, 5], "x": 168, "y": 48, "flags": 4},
- {"matrix": [0, 7], "x": 182, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 196, "y": 48, "flags": 4},
- {"matrix": [0, 1], "x": 210, "y": 48, "flags": 4},
- {"matrix": [0, 6], "x": 14, "y": 64, "flags": 4},
- {"matrix": [1, 5], "x": 28, "y": 64, "flags": 4},
- {"matrix": [2, 3], "x": 42, "y": 64, "flags": 4},
- {"matrix": [3, 1], "x": 84, "y": 64, "flags": 4},
- {"matrix": [3, 6], "x": 126, "y": 64, "flags": 4},
- {"matrix": [3, 3], "x": 140, "y": 64, "flags": 4},
- {"matrix": [0, 3], "x": 182, "y": 64, "flags": 4},
- {"matrix": [7, 3], "x": 196, "y": 64, "flags": 4},
- {"matrix": [0, 5], "x": 210, "y": 64, "flags": 4},
- {"x": 224, "y": 0, "flags": 2},
- {"x": 224, "y": 7, "flags": 2},
- {"x": 224, "y": 14, "flags": 2},
- {"x": 224, "y": 21, "flags": 2},
- {"x": 224, "y": 28, "flags": 2},
- {"x": 224, "y": 35, "flags": 2},
- {"x": 224, "y": 42, "flags": 2},
- {"x": 224, "y": 49, "flags": 2},
- {"x": 224, "y": 56, "flags": 2},
- {"x": 224, "y": 64, "flags": 2},
- {"x": 0, "y": 0, "flags": 2},
- {"x": 0, "y": 7, "flags": 2},
- {"x": 0, "y": 14, "flags": 2},
- {"x": 0, "y": 21, "flags": 2},
- {"x": 0, "y": 28, "flags": 2},
- {"x": 0, "y": 35, "flags": 2},
- {"x": 0, "y": 42, "flags": 2},
- {"x": 0, "y": 49, "flags": 2},
- {"x": 0, "y": 56, "flags": 2},
- {"x": 0, "y": 64, "flags": 2}
- ]
- },
"community_layouts": ["65_iso_blocker"],
"layouts": {
"LAYOUT_65_iso_blocker": {
diff --git a/keyboards/gmmk/gmmk2/p96/ansi/ansi.c b/keyboards/gmmk/gmmk2/p96/ansi/ansi.c
index dc61fd813f..5b2b5893f7 100644
--- a/keyboards/gmmk/gmmk2/p96/ansi/ansi.c
+++ b/keyboards/gmmk/gmmk2/p96/ansi/ansi.c
@@ -151,6 +151,160 @@ const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = {
{1, SW9_CS16, SW9_CS17, SW9_CS18}, // 119, LED 19
{1, SW10_CS16, SW10_CS17, SW10_CS18} // 120, LED 20
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {{
+ { 0, 18, 36, 54, 70, 87, 14, 94},
+ { 1, 19, 37, 55, __, 88, 15, 82},
+ { 2, 20, 38, 56, 71, 89, 16, 95},
+ { 3, 21, 39, 57, 72, __, 17, 96},
+ { 4, 22, 40, 58, 73, __, 32, 97},
+ { 5, 23, 41, 59, 74, __, 33, 98},
+ { 6, 24, 42, 60, 75, 90, 34, 83},
+ { 7, 25, 43, 61, 76, __, 35, 84},
+ { 8, 26, 44, 62, 77, __, 50, 85},
+ { 9, 27, 45, 63, 78, 91, 51, 86},
+ {10, 28, 46, 64, 79, 92, 52, 67},
+ {11, 29, 47, 65, 80, __, 53, 68},
+ {12, 30, 48, __, __, 93, __, 69},
+ {13, 31, 49, 66, 81, __, __, __}
+}, {
+ { 11, 0}, // 0, k00, Esc
+ { 22, 0}, // 1, k10, F1
+ { 33, 0}, // 2, k20, F2
+ { 44, 0}, // 3, k30, F3
+ { 55, 0}, // 4, k40, F4
+ { 66, 0}, // 5, k50, F5
+ { 77, 0}, // 6, k60, F6
+ { 88, 0}, // 7, k70, F7
+ { 99, 0}, // 8, k80, F8
+ { 110, 0}, // 9, k90, F9
+ { 121, 0}, // 10, ka0, F10
+ { 132, 0}, // 11, kb0, F11
+ { 143, 0}, // 12, kc0, F12
+ { 154, 0}, // 13, kd0, Printscreen
+ { 165, 0}, // 14, k06, Delete
+ { 176, 0}, // 15, k16, Insert
+ { 187, 0}, // 16, k26, Page Up
+ { 198, 0}, // 17, k36, Page Down
+
+ { 11, 11}, // 18, k01, `
+ { 22, 11}, // 19, k11, 1
+ { 33, 11}, // 20, k21, 2
+ { 44, 11}, // 21, k31, 3
+ { 55, 11}, // 22, k41, 4
+ { 66, 11}, // 23, k51, 5
+ { 77, 11}, // 24, k61, 6
+ { 88, 11}, // 25, k71, 7
+ { 99, 11}, // 26, k81, 8
+ { 110, 11}, // 27, k91, 9
+ { 121, 11}, // 28, ka1, 0
+ { 132, 11}, // 29, kb1, -
+ { 143, 11}, // 30, kc1, =
+ { 154, 11}, // 31, kd1, Backspace
+ { 165, 11}, // 32, k46, Num Lock
+ { 176, 11}, // 33, k56, Num /
+ { 187, 11}, // 34, k66, Num *
+ { 198, 11}, // 35, k76, Num -
+
+ { 11, 22}, // 36, k02, Tab
+ { 22, 22}, // 37, k12, Q
+ { 33, 22}, // 38, k22, W
+ { 44, 22}, // 39, k32, E
+ { 55, 22}, // 40, k42, R
+ { 66, 22}, // 41, k52, T
+ { 77, 22}, // 42, k62, Y
+ { 88, 22}, // 43, k72, U
+ { 99, 22}, // 44, k82, I
+ { 110, 22}, // 45, k92, O
+ { 121, 22}, // 46, ka2, P
+ { 132, 22}, // 47, kb2, [
+ { 143, 22}, // 48, kc2, ]
+ { 154, 22}, // 49, kd3, "\\"
+ { 165, 22}, // 50, k86, Num 7
+ { 176, 22}, // 51, k96, Num 8
+ { 187, 22}, // 52, ka6, Num 9
+ { 198, 22}, // 53, kb6, Num +
+
+ { 11, 33}, // 54, k03, Caps Lock
+ { 22, 33}, // 55, k13, A
+ { 33, 33}, // 56, k23, S
+ { 44, 33}, // 57, k33, D
+ { 55, 33}, // 58, k43, F
+ { 66, 33}, // 59, k53, G
+ { 77, 33}, // 60, k63, H
+ { 88, 33}, // 61, k73, J
+ { 99, 33}, // 62, k83, K
+ { 110, 33}, // 63, k93, L
+ { 121, 33}, // 64, ka3, ;
+ { 132, 33}, // 65, kb3, '
+ { 154, 33}, // 66, kc3, Enter
+ { 165, 33}, // 67, ka7, Num 4
+ { 176, 33}, // 68, kb7, Num 5
+ { 187, 33}, // 69, kc7, Num 6
+
+ { 11, 44}, // 70, k04, Shift_L
+ { 33, 44}, // 71, k24, Z
+ { 44, 44}, // 72, k34, X
+ { 55, 44}, // 73, k44, C
+ { 66, 44}, // 74, k54, V
+ { 77, 44}, // 75, k64, B
+ { 88, 44}, // 76, k74, N
+ { 99, 44}, // 77, k84, M
+ { 110, 44}, // 78, k94, ,
+ { 121, 44}, // 79, ka4, .
+ { 132, 44}, // 80, kb4, /
+ { 143, 44}, // 81, kd4, Shift_R
+ { 154, 44}, // 82, k17, Up
+ { 165, 44}, // 83, k67, Num 1
+ { 176, 44}, // 84, k77, Num 2
+ { 187, 44}, // 85, k87, Num 3
+ { 198, 44}, // 86, k97, Enter_R
+
+ { 11, 55}, // 87, k05, Ctrl_L
+ { 22, 55}, // 88, k15, Win_L
+ { 33, 55}, // 89, k25, Alt_L
+ { 77, 55}, // 90, k65, Space
+ { 110, 55}, // 91, k95, Alt_R
+ { 121, 55}, // 92, ka5, FN
+ { 132, 55}, // 93, kc5, Ctrl_R
+ { 143, 55}, // 94, k07, Left
+ { 154, 55}, // 95, k27, Down
+ { 165, 55}, // 96, k37, Right
+ { 176, 55}, // 97, k47, Num 0
+ { 187, 55}, // 98, k57, Num .
+
+ { 0, 0}, // 101, LED 1
+ { 0, 6}, // 102, LED 2
+ { 0, 12}, // 103, LED 3
+ { 0, 18}, // 104, LED 4
+ { 0, 24}, // 105, LED 5
+ { 0, 30}, // 106, LED 6
+ { 0, 36}, // 107, LED 7
+ { 0, 42}, // 108, LED 8
+ { 0, 48}, // 109, LED 9
+ { 0, 54}, // 110, LED 10
+ { 209, 0}, // 111, LED 11
+ { 209, 6}, // 112, LED 12
+ { 209, 12}, // 113, LED 13
+ { 209, 18}, // 114, LED 14
+ { 209, 24}, // 115, LED 15
+ { 209, 30}, // 116, LED 16
+ { 209, 36}, // 117, LED 17
+ { 209, 42}, // 118, LED 18
+ { 209, 48}, // 119, LED 19
+ { 209, 54} // 120, LED 20
+}, {
+ 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, 4, 4, 4, 4, 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,
+ 1, 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, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
+} };
#endif
#ifdef EEPROM_ENABLE
diff --git a/keyboards/gmmk/gmmk2/p96/ansi/keyboard.json b/keyboards/gmmk/gmmk2/p96/ansi/keyboard.json
index 74332b1f84..0646be8c88 100644
--- a/keyboards/gmmk/gmmk2/p96/ansi/keyboard.json
+++ b/keyboards/gmmk/gmmk2/p96/ansi/keyboard.json
@@ -32,129 +32,6 @@
},
"processor": "WB32F3G71",
"bootloader": "wb32-dfu",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 11, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 22, "y": 0, "flags": 4},
- {"matrix": [2, 0], "x": 33, "y": 0, "flags": 4},
- {"matrix": [3, 0], "x": 44, "y": 0, "flags": 4},
- {"matrix": [4, 0], "x": 55, "y": 0, "flags": 4},
- {"matrix": [5, 0], "x": 66, "y": 0, "flags": 4},
- {"matrix": [6, 0], "x": 77, "y": 0, "flags": 4},
- {"matrix": [7, 0], "x": 88, "y": 0, "flags": 4},
- {"matrix": [8, 0], "x": 99, "y": 0, "flags": 4},
- {"matrix": [9, 0], "x": 110, "y": 0, "flags": 4},
- {"matrix": [10, 0], "x": 121, "y": 0, "flags": 4},
- {"matrix": [11, 0], "x": 132, "y": 0, "flags": 4},
- {"matrix": [12, 0], "x": 143, "y": 0, "flags": 4},
- {"matrix": [13, 0], "x": 154, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 165, "y": 0, "flags": 4},
- {"matrix": [1, 6], "x": 176, "y": 0, "flags": 4},
- {"matrix": [2, 6], "x": 187, "y": 0, "flags": 4},
- {"matrix": [3, 6], "x": 198, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 11, "y": 11, "flags": 4},
- {"matrix": [1, 1], "x": 22, "y": 11, "flags": 4},
- {"matrix": [2, 1], "x": 33, "y": 11, "flags": 4},
- {"matrix": [3, 1], "x": 44, "y": 11, "flags": 4},
- {"matrix": [4, 1], "x": 55, "y": 11, "flags": 4},
- {"matrix": [5, 1], "x": 66, "y": 11, "flags": 4},
- {"matrix": [6, 1], "x": 77, "y": 11, "flags": 4},
- {"matrix": [7, 1], "x": 88, "y": 11, "flags": 4},
- {"matrix": [8, 1], "x": 99, "y": 11, "flags": 4},
- {"matrix": [9, 1], "x": 110, "y": 11, "flags": 4},
- {"matrix": [10, 1], "x": 121, "y": 11, "flags": 4},
- {"matrix": [11, 1], "x": 132, "y": 11, "flags": 4},
- {"matrix": [12, 1], "x": 143, "y": 11, "flags": 4},
- {"matrix": [13, 1], "x": 154, "y": 11, "flags": 4},
- {"matrix": [4, 6], "x": 165, "y": 11, "flags": 1},
- {"matrix": [5, 6], "x": 176, "y": 11, "flags": 4},
- {"matrix": [6, 6], "x": 187, "y": 11, "flags": 4},
- {"matrix": [7, 6], "x": 198, "y": 11, "flags": 4},
- {"matrix": [0, 2], "x": 11, "y": 22, "flags": 4},
- {"matrix": [1, 2], "x": 22, "y": 22, "flags": 4},
- {"matrix": [2, 2], "x": 33, "y": 22, "flags": 4},
- {"matrix": [3, 2], "x": 44, "y": 22, "flags": 4},
- {"matrix": [4, 2], "x": 55, "y": 22, "flags": 4},
- {"matrix": [5, 2], "x": 66, "y": 22, "flags": 4},
- {"matrix": [6, 2], "x": 77, "y": 22, "flags": 4},
- {"matrix": [7, 2], "x": 88, "y": 22, "flags": 4},
- {"matrix": [8, 2], "x": 99, "y": 22, "flags": 4},
- {"matrix": [9, 2], "x": 110, "y": 22, "flags": 4},
- {"matrix": [10, 2], "x": 121, "y": 22, "flags": 4},
- {"matrix": [11, 2], "x": 132, "y": 22, "flags": 4},
- {"matrix": [12, 2], "x": 143, "y": 22, "flags": 4},
- {"matrix": [13, 2], "x": 154, "y": 22, "flags": 4},
- {"matrix": [8, 6], "x": 165, "y": 22, "flags": 4},
- {"matrix": [9, 6], "x": 176, "y": 22, "flags": 4},
- {"matrix": [10, 6], "x": 187, "y": 22, "flags": 4},
- {"matrix": [11, 6], "x": 198, "y": 22, "flags": 4},
- {"matrix": [0, 3], "x": 11, "y": 33, "flags": 1},
- {"matrix": [1, 3], "x": 22, "y": 33, "flags": 4},
- {"matrix": [2, 3], "x": 33, "y": 33, "flags": 4},
- {"matrix": [3, 3], "x": 44, "y": 33, "flags": 4},
- {"matrix": [4, 3], "x": 55, "y": 33, "flags": 4},
- {"matrix": [5, 3], "x": 66, "y": 33, "flags": 4},
- {"matrix": [6, 3], "x": 77, "y": 33, "flags": 4},
- {"matrix": [7, 3], "x": 88, "y": 33, "flags": 4},
- {"matrix": [8, 3], "x": 99, "y": 33, "flags": 4},
- {"matrix": [9, 3], "x": 110, "y": 33, "flags": 4},
- {"matrix": [10, 3], "x": 121, "y": 33, "flags": 4},
- {"matrix": [11, 3], "x": 132, "y": 33, "flags": 4},
- {"matrix": [13, 3], "x": 154, "y": 33, "flags": 4},
- {"matrix": [10, 7], "x": 165, "y": 33, "flags": 4},
- {"matrix": [11, 7], "x": 176, "y": 33, "flags": 4},
- {"matrix": [12, 7], "x": 187, "y": 33, "flags": 4},
- {"matrix": [0, 4], "x": 11, "y": 44, "flags": 4},
- {"matrix": [2, 4], "x": 33, "y": 44, "flags": 4},
- {"matrix": [3, 4], "x": 44, "y": 44, "flags": 4},
- {"matrix": [4, 4], "x": 55, "y": 44, "flags": 4},
- {"matrix": [5, 4], "x": 66, "y": 44, "flags": 4},
- {"matrix": [6, 4], "x": 77, "y": 44, "flags": 4},
- {"matrix": [7, 4], "x": 88, "y": 44, "flags": 4},
- {"matrix": [8, 4], "x": 99, "y": 44, "flags": 4},
- {"matrix": [9, 4], "x": 110, "y": 44, "flags": 4},
- {"matrix": [10, 4], "x": 121, "y": 44, "flags": 4},
- {"matrix": [11, 4], "x": 132, "y": 44, "flags": 4},
- {"matrix": [13, 4], "x": 143, "y": 44, "flags": 4},
- {"matrix": [1, 7], "x": 154, "y": 44, "flags": 4},
- {"matrix": [6, 7], "x": 165, "y": 44, "flags": 4},
- {"matrix": [7, 7], "x": 176, "y": 44, "flags": 4},
- {"matrix": [8, 7], "x": 187, "y": 44, "flags": 4},
- {"matrix": [9, 7], "x": 198, "y": 44, "flags": 4},
- {"matrix": [0, 5], "x": 11, "y": 55, "flags": 4},
- {"matrix": [1, 5], "x": 22, "y": 55, "flags": 4},
- {"matrix": [2, 5], "x": 33, "y": 55, "flags": 4},
- {"matrix": [6, 5], "x": 77, "y": 55, "flags": 4},
- {"matrix": [9, 5], "x": 110, "y": 55, "flags": 4},
- {"matrix": [10, 5], "x": 121, "y": 55, "flags": 4},
- {"matrix": [12, 5], "x": 132, "y": 55, "flags": 4},
- {"matrix": [0, 7], "x": 143, "y": 55, "flags": 4},
- {"matrix": [2, 7], "x": 154, "y": 55, "flags": 4},
- {"matrix": [3, 7], "x": 165, "y": 55, "flags": 4},
- {"matrix": [4, 7], "x": 176, "y": 55, "flags": 4},
- {"matrix": [5, 7], "x": 187, "y": 55, "flags": 4},
- {"x": 0, "y": 0, "flags": 2},
- {"x": 0, "y": 6, "flags": 2},
- {"x": 0, "y": 12, "flags": 2},
- {"x": 0, "y": 18, "flags": 2},
- {"x": 0, "y": 24, "flags": 2},
- {"x": 0, "y": 30, "flags": 2},
- {"x": 0, "y": 36, "flags": 2},
- {"x": 0, "y": 42, "flags": 2},
- {"x": 0, "y": 48, "flags": 2},
- {"x": 0, "y": 54, "flags": 2},
- {"x": 209, "y": 0, "flags": 2},
- {"x": 209, "y": 6, "flags": 2},
- {"x": 209, "y": 12, "flags": 2},
- {"x": 209, "y": 18, "flags": 2},
- {"x": 209, "y": 24, "flags": 2},
- {"x": 209, "y": 30, "flags": 2},
- {"x": 209, "y": 36, "flags": 2},
- {"x": 209, "y": 42, "flags": 2},
- {"x": 209, "y": 48, "flags": 2},
- {"x": 209, "y": 54, "flags": 2}
- ]
- },
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/gmmk/gmmk2/p96/iso/iso.c b/keyboards/gmmk/gmmk2/p96/iso/iso.c
index 7da63dfae6..9a5c357307 100644
--- a/keyboards/gmmk/gmmk2/p96/iso/iso.c
+++ b/keyboards/gmmk/gmmk2/p96/iso/iso.c
@@ -152,6 +152,155 @@ const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = {
{1, SW9_CS16, SW9_CS17, SW9_CS18}, // 119, LED 19
{1, SW10_CS16, SW10_CS17, SW10_CS18} // 120, LED 20
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {{
+ { 0, 18, 36, 54, 70, 88, 14, 95},
+ { 1, 19, 37, 55, 71, 89, 15, 83},
+ { 2, 20, 38, 56, 72, 90, 16, 96},
+ { 3, 21, 39, 57, 73, __, 17, 97},
+ { 4, 22, 40, 58, 74, __, 32, 98},
+ { 5, 23, 41, 59, 75, __, 33, 99},
+ { 6, 24, 42, 60, 76, 91, 34, 84},
+ { 7, 25, 43, 61, 77, __, 35, 85},
+ { 8, 26, 44, 62, 78, __, 50, 86},
+ { 9, 27, 45, 63, 79, 92, 51, 87},
+ {10, 28, 46, 64, 80, 93, 52, 67},
+ {11, 29, 47, 65, 81, __, 53, 68},
+ {12, 30, 48, 66, __, 94, __, 69},
+ {13, 31, __, 49, 82, __, __, __}
+}, {
+ { 11, 0}, // 0, k00, Esc
+ { 22, 0}, // 1, k10, F1
+ { 33, 0}, // 2, k20, F2
+ { 44, 0}, // 3, k30, F3
+ { 55, 0}, // 4, k40, F4
+ { 66, 0}, // 5, k50, F5
+ { 77, 0}, // 6, k60, F6
+ { 88, 0}, // 7, k70, F7
+ { 99, 0}, // 8, k80, F8
+ { 110, 0}, // 9, k90, F9
+ { 121, 0}, // 10, ka0, F10
+ { 132, 0}, // 11, kb0, F11
+ { 143, 0}, // 12, kc0, F12
+ { 154, 0}, // 13, kd0, Printscreen
+ { 165, 0}, // 14, k06, Delete
+ { 176, 0}, // 15, k16, Insert
+ { 187, 0}, // 16, k26, Page Up
+ { 198, 0}, // 17, k36, Page Down
+ { 11, 11}, // 18, k01, `
+ { 22, 11}, // 19, k11, 1
+ { 33, 11}, // 20, k21, 2
+ { 44, 11}, // 21, k31, 3
+ { 55, 11}, // 22, k41, 4
+ { 66, 11}, // 23, k51, 5
+ { 77, 11}, // 24, k61, 6
+ { 88, 11}, // 25, k71, 7
+ { 99, 11}, // 26, k81, 8
+ { 110, 11}, // 27, k91, 9
+ { 121, 11}, // 28, ka1, 0
+ { 132, 11}, // 29, kb1, -
+ { 143, 11}, // 30, kc1, =
+ { 154, 11}, // 31, kd1, Backspace
+ { 165, 11}, // 32, k46, Num Lock
+ { 176, 11}, // 33, k56, Num /
+ { 187, 11}, // 34, k66, Num *
+ { 198, 11}, // 35, k76, Num -
+ { 11, 22}, // 36, k02, Tab
+ { 22, 22}, // 37, k12, Q
+ { 33, 22}, // 38, k22, W
+ { 44, 22}, // 39, k32, E
+ { 55, 22}, // 40, k42, R
+ { 66, 22}, // 41, k52, T
+ { 77, 22}, // 42, k62, Y
+ { 88, 22}, // 43, k72, U
+ { 99, 22}, // 44, k82, I
+ { 110, 22}, // 45, k92, O
+ { 121, 22}, // 46, ka2, P
+ { 132, 22}, // 47, kb2, [
+ { 143, 22}, // 48, kc2, ]
+ { 154, 22}, // 49, kd3, Enter
+ { 165, 22}, // 50, k86, Num 7
+ { 176, 22}, // 51, k96, Num 8
+ { 187, 22}, // 52, ka6, Num 9
+ { 198, 22}, // 53, kb6, Num +
+ { 11, 33}, // 54, k03, Caps Lock
+ { 22, 33}, // 55, k13, A
+ { 33, 33}, // 56, k23, S
+ { 44, 33}, // 57, k33, D
+ { 55, 33}, // 58, k43, F
+ { 66, 33}, // 59, k53, G
+ { 77, 33}, // 60, k63, H
+ { 88, 33}, // 61, k73, J
+ { 99, 33}, // 62, k83, K
+ { 110, 33}, // 63, k93, L
+ { 121, 33}, // 64, ka3, ;
+ { 132, 33}, // 65, kb3, '
+ { 143, 33}, // 66, kc3, #
+ { 165, 33}, // 67, ka7, Num 4
+ { 176, 33}, // 68, kb7, Num 5
+ { 187, 33}, // 69, kc7, Num 6
+ { 11, 44}, // 70, k04, Shift_L
+ { 22, 44}, // 71, k14, "\\"
+ { 33, 44}, // 72, k24, Z
+ { 44, 44}, // 73, k34, X
+ { 55, 44}, // 74, k44, C
+ { 66, 44}, // 75, k54, V
+ { 77, 44}, // 76, k64, B
+ { 88, 44}, // 77, k74, N
+ { 99, 44}, // 78, k84, M
+ { 110, 44}, // 79, k94, ,
+ { 121, 44}, // 80, ka4, .
+ { 132, 44}, // 81, kb4, /
+ { 143, 44}, // 82, kd4, Shift_R
+ { 154, 44}, // 83, k17, Up
+ { 165, 44}, // 84, k67, Num 1
+ { 176, 44}, // 85, k77, Num 2
+ { 187, 44}, // 86, k87, Num 3
+ { 198, 44}, // 87, k97, Enter_R
+ { 11, 55}, // 88, k05, Ctrl_L
+ { 22, 55}, // 89, k15, Win_L
+ { 33, 55}, // 90, k25, Alt_L
+ { 77, 55}, // 91, k65, Space
+ { 110, 55}, // 92, k95, Alt_R
+ { 121, 55}, // 93, ka5, FN
+ { 132, 55}, // 94, kc5, Ctrl_R
+ { 143, 55}, // 95, k07, Left
+ { 154, 55}, // 96, k27, Down
+ { 165, 55}, // 97, k37, Right
+ { 176, 55}, // 98, k47, Num 0
+ { 187, 55}, // 99, k57, Num .
+ { 0, 0}, // 101, LED 1
+ { 0, 6}, // 102, LED 2
+ { 0, 12}, // 103, LED 3
+ { 0, 18}, // 104, LED 4
+ { 0, 24}, // 105, LED 5
+ { 0, 30}, // 106, LED 6
+ { 0, 36}, // 107, LED 7
+ { 0, 42}, // 108, LED 8
+ { 0, 48}, // 109, LED 9
+ { 0, 54}, // 110, LED 10
+ { 209, 0}, // 111, LED 11
+ { 209, 6}, // 112, LED 12
+ { 209, 12}, // 113, LED 13
+ { 209, 18}, // 114, LED 14
+ { 209, 24}, // 115, LED 15
+ { 209, 30}, // 116, LED 16
+ { 209, 36}, // 117, LED 17
+ { 209, 42}, // 118, LED 18
+ { 209, 48}, // 119, LED 19
+ { 209, 54} // 120, LED 20
+}, {
+ 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, 4, 4, 4, 4, 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,
+ 1, 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, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
+} };
#endif
#ifdef EEPROM_ENABLE
diff --git a/keyboards/gmmk/gmmk2/p96/iso/keyboard.json b/keyboards/gmmk/gmmk2/p96/iso/keyboard.json
index 3463293a70..679881a94b 100644
--- a/keyboards/gmmk/gmmk2/p96/iso/keyboard.json
+++ b/keyboards/gmmk/gmmk2/p96/iso/keyboard.json
@@ -32,130 +32,6 @@
},
"processor": "WB32F3G71",
"bootloader": "wb32-dfu",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 11, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 22, "y": 0, "flags": 4},
- {"matrix": [2, 0], "x": 33, "y": 0, "flags": 4},
- {"matrix": [3, 0], "x": 44, "y": 0, "flags": 4},
- {"matrix": [4, 0], "x": 55, "y": 0, "flags": 4},
- {"matrix": [5, 0], "x": 66, "y": 0, "flags": 4},
- {"matrix": [6, 0], "x": 77, "y": 0, "flags": 4},
- {"matrix": [7, 0], "x": 88, "y": 0, "flags": 4},
- {"matrix": [8, 0], "x": 99, "y": 0, "flags": 4},
- {"matrix": [9, 0], "x": 110, "y": 0, "flags": 4},
- {"matrix": [10, 0], "x": 121, "y": 0, "flags": 4},
- {"matrix": [11, 0], "x": 132, "y": 0, "flags": 4},
- {"matrix": [12, 0], "x": 143, "y": 0, "flags": 4},
- {"matrix": [13, 0], "x": 154, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 165, "y": 0, "flags": 4},
- {"matrix": [1, 6], "x": 176, "y": 0, "flags": 4},
- {"matrix": [2, 6], "x": 187, "y": 0, "flags": 4},
- {"matrix": [3, 6], "x": 198, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 11, "y": 11, "flags": 4},
- {"matrix": [1, 1], "x": 22, "y": 11, "flags": 4},
- {"matrix": [2, 1], "x": 33, "y": 11, "flags": 4},
- {"matrix": [3, 1], "x": 44, "y": 11, "flags": 4},
- {"matrix": [4, 1], "x": 55, "y": 11, "flags": 4},
- {"matrix": [5, 1], "x": 66, "y": 11, "flags": 4},
- {"matrix": [6, 1], "x": 77, "y": 11, "flags": 4},
- {"matrix": [7, 1], "x": 88, "y": 11, "flags": 4},
- {"matrix": [8, 1], "x": 99, "y": 11, "flags": 4},
- {"matrix": [9, 1], "x": 110, "y": 11, "flags": 4},
- {"matrix": [10, 1], "x": 121, "y": 11, "flags": 4},
- {"matrix": [11, 1], "x": 132, "y": 11, "flags": 4},
- {"matrix": [12, 1], "x": 143, "y": 11, "flags": 4},
- {"matrix": [13, 1], "x": 154, "y": 11, "flags": 4},
- {"matrix": [4, 6], "x": 165, "y": 11, "flags": 1},
- {"matrix": [5, 6], "x": 176, "y": 11, "flags": 4},
- {"matrix": [6, 6], "x": 187, "y": 11, "flags": 4},
- {"matrix": [7, 6], "x": 198, "y": 11, "flags": 4},
- {"matrix": [0, 2], "x": 11, "y": 22, "flags": 4},
- {"matrix": [1, 2], "x": 22, "y": 22, "flags": 4},
- {"matrix": [2, 2], "x": 33, "y": 22, "flags": 4},
- {"matrix": [3, 2], "x": 44, "y": 22, "flags": 4},
- {"matrix": [4, 2], "x": 55, "y": 22, "flags": 4},
- {"matrix": [5, 2], "x": 66, "y": 22, "flags": 4},
- {"matrix": [6, 2], "x": 77, "y": 22, "flags": 4},
- {"matrix": [7, 2], "x": 88, "y": 22, "flags": 4},
- {"matrix": [8, 2], "x": 99, "y": 22, "flags": 4},
- {"matrix": [9, 2], "x": 110, "y": 22, "flags": 4},
- {"matrix": [10, 2], "x": 121, "y": 22, "flags": 4},
- {"matrix": [11, 2], "x": 132, "y": 22, "flags": 4},
- {"matrix": [12, 2], "x": 143, "y": 22, "flags": 4},
- {"matrix": [13, 3], "x": 154, "y": 22, "flags": 4},
- {"matrix": [8, 6], "x": 165, "y": 22, "flags": 4},
- {"matrix": [9, 6], "x": 176, "y": 22, "flags": 4},
- {"matrix": [10, 6], "x": 187, "y": 22, "flags": 4},
- {"matrix": [11, 6], "x": 198, "y": 22, "flags": 4},
- {"matrix": [0, 3], "x": 11, "y": 33, "flags": 1},
- {"matrix": [1, 3], "x": 22, "y": 33, "flags": 4},
- {"matrix": [2, 3], "x": 33, "y": 33, "flags": 4},
- {"matrix": [3, 3], "x": 44, "y": 33, "flags": 4},
- {"matrix": [4, 3], "x": 55, "y": 33, "flags": 4},
- {"matrix": [5, 3], "x": 66, "y": 33, "flags": 4},
- {"matrix": [6, 3], "x": 77, "y": 33, "flags": 4},
- {"matrix": [7, 3], "x": 88, "y": 33, "flags": 4},
- {"matrix": [8, 3], "x": 99, "y": 33, "flags": 4},
- {"matrix": [9, 3], "x": 110, "y": 33, "flags": 4},
- {"matrix": [10, 3], "x": 121, "y": 33, "flags": 4},
- {"matrix": [11, 3], "x": 132, "y": 33, "flags": 4},
- {"matrix": [12, 3], "x": 143, "y": 33, "flags": 4},
- {"matrix": [10, 7], "x": 165, "y": 33, "flags": 4},
- {"matrix": [11, 7], "x": 176, "y": 33, "flags": 4},
- {"matrix": [12, 7], "x": 187, "y": 33, "flags": 4},
- {"matrix": [0, 4], "x": 11, "y": 44, "flags": 4},
- {"matrix": [1, 4], "x": 22, "y": 44, "flags": 4},
- {"matrix": [2, 4], "x": 33, "y": 44, "flags": 4},
- {"matrix": [3, 4], "x": 44, "y": 44, "flags": 4},
- {"matrix": [4, 4], "x": 55, "y": 44, "flags": 4},
- {"matrix": [5, 4], "x": 66, "y": 44, "flags": 4},
- {"matrix": [6, 4], "x": 77, "y": 44, "flags": 4},
- {"matrix": [7, 4], "x": 88, "y": 44, "flags": 4},
- {"matrix": [8, 4], "x": 99, "y": 44, "flags": 4},
- {"matrix": [9, 4], "x": 110, "y": 44, "flags": 4},
- {"matrix": [10, 4], "x": 121, "y": 44, "flags": 4},
- {"matrix": [11, 4], "x": 132, "y": 44, "flags": 4},
- {"matrix": [13, 4], "x": 143, "y": 44, "flags": 4},
- {"matrix": [1, 7], "x": 154, "y": 44, "flags": 4},
- {"matrix": [6, 7], "x": 165, "y": 44, "flags": 4},
- {"matrix": [7, 7], "x": 176, "y": 44, "flags": 4},
- {"matrix": [8, 7], "x": 187, "y": 44, "flags": 4},
- {"matrix": [9, 7], "x": 198, "y": 44, "flags": 4},
- {"matrix": [0, 5], "x": 11, "y": 55, "flags": 4},
- {"matrix": [1, 5], "x": 22, "y": 55, "flags": 4},
- {"matrix": [2, 5], "x": 33, "y": 55, "flags": 4},
- {"matrix": [6, 5], "x": 77, "y": 55, "flags": 4},
- {"matrix": [9, 5], "x": 110, "y": 55, "flags": 4},
- {"matrix": [10, 5], "x": 121, "y": 55, "flags": 4},
- {"matrix": [12, 5], "x": 132, "y": 55, "flags": 4},
- {"matrix": [0, 7], "x": 143, "y": 55, "flags": 4},
- {"matrix": [2, 7], "x": 154, "y": 55, "flags": 4},
- {"matrix": [3, 7], "x": 165, "y": 55, "flags": 4},
- {"matrix": [4, 7], "x": 176, "y": 55, "flags": 4},
- {"matrix": [5, 7], "x": 187, "y": 55, "flags": 4},
- {"x": 0, "y": 0, "flags": 2},
- {"x": 0, "y": 6, "flags": 2},
- {"x": 0, "y": 12, "flags": 2},
- {"x": 0, "y": 18, "flags": 2},
- {"x": 0, "y": 24, "flags": 2},
- {"x": 0, "y": 30, "flags": 2},
- {"x": 0, "y": 36, "flags": 2},
- {"x": 0, "y": 42, "flags": 2},
- {"x": 0, "y": 48, "flags": 2},
- {"x": 0, "y": 54, "flags": 2},
- {"x": 209, "y": 0, "flags": 2},
- {"x": 209, "y": 6, "flags": 2},
- {"x": 209, "y": 12, "flags": 2},
- {"x": 209, "y": 18, "flags": 2},
- {"x": 209, "y": 24, "flags": 2},
- {"x": 209, "y": 30, "flags": 2},
- {"x": 209, "y": 36, "flags": 2},
- {"x": 209, "y": 42, "flags": 2},
- {"x": 209, "y": 48, "flags": 2},
- {"x": 209, "y": 54, "flags": 2}
- ]
- },
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/gmmk/numpad/keyboard.json b/keyboards/gmmk/numpad/keyboard.json
index 23dd46ca1a..f5d64bf6cb 100644
--- a/keyboards/gmmk/numpad/keyboard.json
+++ b/keyboards/gmmk/numpad/keyboard.json
@@ -69,40 +69,7 @@
"solid_splash": true,
"solid_multisplash": true
},
- "driver": "aw20216s",
- "layout": [
- {"matrix": [0, 0], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 134, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 179, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 45, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 90, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 134, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 179, "y": 24, "flags": 4},
- {"matrix": [2, 0], "x": 45, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 90, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 134, "y": 32, "flags": 4},
- {"matrix": [3, 0], "x": 45, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 90, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 134, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 179, "y": 56, "flags": 4},
- {"matrix": [4, 0], "x": 67, "y": 64, "flags": 4},
- {"matrix": [4, 3], "x": 134, "y": 64, "flags": 4},
- {"x": 0, "y": 0, "flags": 2},
- {"x": 0, "y": 11, "flags": 2},
- {"x": 0, "y": 21, "flags": 2},
- {"x": 0, "y": 32, "flags": 2},
- {"x": 0, "y": 43, "flags": 2},
- {"x": 0, "y": 53, "flags": 2},
- {"x": 0, "y": 64, "flags": 2},
- {"x": 224, "y": 0, "flags": 2},
- {"x": 224, "y": 11, "flags": 2},
- {"x": 224, "y": 21, "flags": 2},
- {"x": 224, "y": 32, "flags": 2},
- {"x": 224, "y": 43, "flags": 2},
- {"x": 224, "y": 53, "flags": 2},
- {"x": 224, "y": 64, "flags": 2}
- ]
+ "driver": "aw20216s"
},
"processor": "WB32F3G71",
"bootloader": "wb32-dfu",
diff --git a/keyboards/gmmk/numpad/numpad.c b/keyboards/gmmk/numpad/numpad.c
index fa8a28bf8b..87446d8f49 100644
--- a/keyboards/gmmk/numpad/numpad.c
+++ b/keyboards/gmmk/numpad/numpad.c
@@ -59,6 +59,54 @@ const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = {
{0, SW7_CS10, SW7_CS11, SW7_CS12 }, // 30 LED33
};
+led_config_t g_led_config = {{
+ { 0, 1, 2, 3 },
+ { 4, 5, 6, 7 },
+ { 8, 9, 10, NO_LED},
+ { 11, 12, 13, 14 },
+ { 15, NO_LED, NO_LED, 16 }
+}, {
+ {45, 0 }, // 0 NUM
+ {90, 0 }, // 1 /
+ {134, 0 }, // 2 *
+ {179, 0 }, // 3 -
+ {45, 16 }, // 4 7
+ {90, 16 }, // 5 8
+ {134, 16 }, // 6 9
+ {179, 24 }, // 7 +
+ {45, 32 }, // 8 4
+ {90, 32 }, // 9 5
+ {134, 32 }, // 10 6
+ {45, 48 }, // 11 1
+ {90, 48 }, // 12 2
+ {134, 48 }, // 13 3
+ {179, 56 }, // 14 ENTER
+ {67, 64 }, // 15 0
+ {134, 64 }, // 16 .
+ {0, 0 }, // 17 LED18
+ {0, 11 }, // 18 LED19
+ {0, 21 }, // 19 LED20
+ {0, 32 }, // 20 LED21
+ {0, 43 }, // 21 LED22
+ {0, 53 }, // 22 LED23
+ {0, 64 }, // 23 LED24
+ {224, 0 }, // 24 LED27
+ {224, 11 }, // 25 LED28
+ {224, 21 }, // 26 LED29
+ {224, 32 }, // 27 LED30
+ {224, 43 }, // 28 LED31
+ {224, 53 }, // 29 LED32
+ {224, 64 } // 30 LED33
+}, {
+ 4, 4, 4, 4,
+ 4, 4, 4, 4,
+ 4, 4, 4,
+ 4, 4, 4, 4,
+ 4, 4,
+ 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2
+} };
+
# ifdef AW20216S_PW_EN_PIN
void keyboard_pre_init_kb(void) {
diff --git a/keyboards/gmmk/pro/rev1/ansi/ansi.c b/keyboards/gmmk/pro/rev1/ansi/ansi.c
index 05365ee9f9..77e0a8c1a1 100644
--- a/keyboards/gmmk/pro/rev1/ansi/ansi.c
+++ b/keyboards/gmmk/pro/rev1/ansi/ansi.c
@@ -18,6 +18,124 @@
#ifdef RGB_MATRIX_ENABLE
// clang-format off
+led_config_t g_led_config = {{
+ { 4, NO_LED, NO_LED, 95, 65, 79, 5, 28 },
+ { 8, 2, 9, 0, 10, 75, 1, 7 },
+ { 14, 3, 15, NO_LED, 16, 86, 6, 13 },
+ { 20, 18, 21, 23, 22, 94, 12, 19 },
+ { 25, 30, 26, 31, 27, 32, 29, 24 },
+ { 41, 36, 42, 37, 43, 38, 35, 40 },
+ { 46, 89, 47, 34, 48, 72, 78, 45 },
+ { 52, 39, 53, 97, 54, 82, 44, 51 },
+ { 58, 63, 59, 64, NO_LED, 60, 62, 57 },
+ { 11, 90, 55, 17, 33, 49, NO_LED, 69 },
+ { NO_LED, 85, 93, 61, 96, 66, 50, 56 }
+}, {
+ {0, 0}, // 0, ESC, k13
+ {0, 15}, // 1, ~, k16
+ {4, 26}, // 2, Tab, k11
+ {5, 38}, // 3, Caps, k21
+ {9, 49}, // 4, Sh_L, k00
+ {2, 61}, // 5, Ct_L, k06
+ {18, 0}, // 6, F1, k26
+ {14, 15}, // 7, 1, k17
+ {22, 26}, // 8, Q, k10
+ {25, 38}, // 9, A, k12
+ {33, 49}, // 10, Z, k14
+ {20, 61}, // 11, Win_L, k90
+ {33, 0}, // 12, F2, k36
+ {29, 15}, // 13, 2, k27
+ {36, 26}, // 14, W, k20
+ {40, 38}, // 15, S, k22
+ {47, 49}, // 16, X, k24
+ {38, 61}, // 17, Alt_L, k93
+ {47, 0}, // 18, F3, k31
+ {43, 15}, // 19, 3, k37
+ {51, 26}, // 20, E, k30
+ {54, 38}, // 21, D, k32
+ {61, 49}, // 22, C, k34
+ {61, 0}, // 23, F4, k33
+ {58, 15}, // 24, 4, k47
+ {65, 26}, // 25, R, k40
+ {69, 38}, // 26, F, k42
+ {76, 49}, // 27, V, k44
+ {79, 0}, // 28, F5, k07
+ {72, 15}, // 29, 5, k46
+ {79, 26}, // 30, T, k41
+ {83, 38}, // 31, G, k43
+ {90, 49}, // 32, B, k45
+ {92, 61}, // 33, SPACE, k94
+ {94, 0}, // 34, F6, k63
+ {87, 15}, // 35, 6, k56
+ {94, 26}, // 36, Y, k51
+ {98, 38}, // 37, H, k53
+ {105, 49}, // 38, N, k55
+ {108, 0}, // 39, F7, k71
+ {101, 15}, // 40, 7, k57
+ {108, 26}, // 41, U, k50
+ {112, 38}, // 42, J, k52
+ {119, 49}, // 43, M, k54
+ {123, 0}, // 44, F8, k76
+ {116, 15}, // 45, 8, k67
+ {123, 26}, // 46, I, k60
+ {126, 38}, // 47, K, k62
+ {134, 49}, // 48, ,, k64
+ {145, 61}, // 49, Alt_R, k95
+ {141, 0}, // 50, F9, ka6
+ {130, 15}, // 51, 9, k77
+ {137, 26}, // 52, O, k70
+ {141, 38}, // 53, L, k72
+ {148, 49}, // 54, ., k74
+ {159, 61}, // 55, FN, k92
+ {155, 0}, // 56, F10, ka7
+ {145, 15}, // 57, 0, k87
+ {152, 26}, // 58, P, k80
+ {155, 38}, // 59, ;, k82
+ {163, 49}, // 60, ?, k85
+ {170, 0}, // 61, F11, ka3
+ {159, 15}, // 62, -, k86
+ {166, 26}, // 63, [, k81
+ {170, 38}, // 64, ", k83
+ {173, 61}, // 65, Ct_R, k04
+ {184, 0}, // 66, F12, ka5
+ {0, 8}, // 67, LED, l01
+ {224, 8}, // 68, LED, l11
+ {202, 0}, // 69, Prt, k97
+ {0, 15}, // 70, LED, l02
+ {224, 15}, // 71, LED, l12
+ {224, 15}, // 72, Del, k65
+ {0, 21}, // 73, LED, l03
+ {224, 21}, // 74, LED, l13
+ {224, 26}, // 75, PgUp, k15
+ {0, 28}, // 76, LED, l04
+ {224, 28}, // 77, LED, l14
+ {173, 15}, // 78, =, k66
+ {220, 64}, // 79, Right, k05
+ {0, 35}, // 80, LED, l05
+ {224, 35}, // 81, LED, l15
+ {224, 49}, // 82, End, k75
+ {0, 42}, // 83, LED, l06
+ {224, 42}, // 84, LED, l16
+ {195, 15}, // 85, BSpc, ka1
+ {224, 38}, // 86, PgDn, k25
+ {0, 48}, // 87, LED, l07
+ {224, 48}, // 88, LED, l17
+ {181, 26}, // 89, ], k61
+ {182, 49}, // 90, Sh_R, k91
+ {0, 55}, // 91, LED, l08
+ {224, 55}, // 92, LED, l18
+ {199, 26}, // 93, \, ka2
+ {206, 52}, // 94, Up, k35
+ {191, 64}, // 95, Left, k03
+ {193, 38}, // 96, Enter, ka4
+ {206, 64} // 97, Down, k73
+}, {
+ 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,
+ 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,
+ 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,
+ 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4
+}};
+
const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = {
{0, SW1_CS1, SW1_CS2, SW1_CS3}, // 0, ESC, k13
{0, SW1_CS4, SW1_CS5, SW1_CS6}, // 1, ~, k16
diff --git a/keyboards/gmmk/pro/rev1/ansi/keyboard.json b/keyboards/gmmk/pro/rev1/ansi/keyboard.json
index e7bf3d6a59..fbb9107d16 100644
--- a/keyboards/gmmk/pro/rev1/ansi/keyboard.json
+++ b/keyboards/gmmk/pro/rev1/ansi/keyboard.json
@@ -34,108 +34,6 @@
},
"processor": "STM32F303",
"bootloader": "stm32-dfu",
- "rgb_matrix": {
- "layout": [
- {"matrix": [1, 3], "x": 0, "y": 0, "flags": 4},
- {"matrix": [1, 6], "x": 0, "y": 15, "flags": 4},
- {"matrix": [1, 1], "x": 4, "y": 26, "flags": 4},
- {"matrix": [2, 1], "x": 5, "y": 38, "flags": 4},
- {"matrix": [0, 0], "x": 9, "y": 49, "flags": 4},
- {"matrix": [0, 6], "x": 2, "y": 61, "flags": 4},
- {"matrix": [2, 6], "x": 18, "y": 0, "flags": 4},
- {"matrix": [1, 7], "x": 14, "y": 15, "flags": 4},
- {"matrix": [1, 0], "x": 22, "y": 26, "flags": 4},
- {"matrix": [1, 2], "x": 25, "y": 38, "flags": 4},
- {"matrix": [1, 4], "x": 33, "y": 49, "flags": 4},
- {"matrix": [9, 0], "x": 20, "y": 61, "flags": 4},
- {"matrix": [3, 6], "x": 33, "y": 0, "flags": 4},
- {"matrix": [2, 7], "x": 29, "y": 15, "flags": 4},
- {"matrix": [2, 0], "x": 36, "y": 26, "flags": 4},
- {"matrix": [2, 2], "x": 40, "y": 38, "flags": 4},
- {"matrix": [2, 4], "x": 47, "y": 49, "flags": 4},
- {"matrix": [9, 3], "x": 38, "y": 61, "flags": 4},
- {"matrix": [3, 1], "x": 47, "y": 0, "flags": 4},
- {"matrix": [3, 7], "x": 43, "y": 15, "flags": 4},
- {"matrix": [3, 0], "x": 51, "y": 26, "flags": 4},
- {"matrix": [3, 2], "x": 54, "y": 38, "flags": 4},
- {"matrix": [3, 4], "x": 61, "y": 49, "flags": 4},
- {"matrix": [3, 3], "x": 61, "y": 0, "flags": 4},
- {"matrix": [4, 7], "x": 58, "y": 15, "flags": 4},
- {"matrix": [4, 0], "x": 65, "y": 26, "flags": 4},
- {"matrix": [4, 2], "x": 69, "y": 38, "flags": 4},
- {"matrix": [4, 4], "x": 76, "y": 49, "flags": 4},
- {"matrix": [0, 7], "x": 79, "y": 0, "flags": 4},
- {"matrix": [4, 6], "x": 72, "y": 15, "flags": 4},
- {"matrix": [4, 1], "x": 79, "y": 26, "flags": 4},
- {"matrix": [4, 3], "x": 83, "y": 38, "flags": 4},
- {"matrix": [4, 5], "x": 90, "y": 49, "flags": 4},
- {"matrix": [9, 4], "x": 92, "y": 61, "flags": 4},
- {"matrix": [6, 3], "x": 94, "y": 0, "flags": 4},
- {"matrix": [5, 6], "x": 87, "y": 15, "flags": 4},
- {"matrix": [5, 1], "x": 94, "y": 26, "flags": 4},
- {"matrix": [5, 3], "x": 98, "y": 38, "flags": 4},
- {"matrix": [5, 5], "x": 105, "y": 49, "flags": 4},
- {"matrix": [7, 1], "x": 108, "y": 0, "flags": 4},
- {"matrix": [5, 7], "x": 101, "y": 15, "flags": 4},
- {"matrix": [5, 0], "x": 108, "y": 26, "flags": 4},
- {"matrix": [5, 2], "x": 112, "y": 38, "flags": 4},
- {"matrix": [5, 4], "x": 119, "y": 49, "flags": 4},
- {"matrix": [7, 6], "x": 123, "y": 0, "flags": 4},
- {"matrix": [6, 7], "x": 116, "y": 15, "flags": 4},
- {"matrix": [6, 0], "x": 123, "y": 26, "flags": 4},
- {"matrix": [6, 2], "x": 126, "y": 38, "flags": 4},
- {"matrix": [6, 4], "x": 134, "y": 49, "flags": 4},
- {"matrix": [9, 5], "x": 145, "y": 61, "flags": 4},
- {"matrix": [10, 6], "x": 141, "y": 0, "flags": 4},
- {"matrix": [7, 7], "x": 130, "y": 15, "flags": 4},
- {"matrix": [7, 0], "x": 137, "y": 26, "flags": 4},
- {"matrix": [7, 2], "x": 141, "y": 38, "flags": 4},
- {"matrix": [7, 4], "x": 148, "y": 49, "flags": 4},
- {"matrix": [9, 2], "x": 159, "y": 61, "flags": 4},
- {"matrix": [10, 7], "x": 155, "y": 0, "flags": 4},
- {"matrix": [8, 7], "x": 145, "y": 15, "flags": 4},
- {"matrix": [8, 0], "x": 152, "y": 26, "flags": 4},
- {"matrix": [8, 2], "x": 155, "y": 38, "flags": 4},
- {"matrix": [8, 5], "x": 163, "y": 49, "flags": 4},
- {"matrix": [10, 3], "x": 170, "y": 0, "flags": 4},
- {"matrix": [8, 6], "x": 159, "y": 15, "flags": 4},
- {"matrix": [8, 1], "x": 166, "y": 26, "flags": 4},
- {"matrix": [8, 3], "x": 170, "y": 38, "flags": 4},
- {"matrix": [0, 4], "x": 173, "y": 61, "flags": 4},
- {"matrix": [10, 5], "x": 184, "y": 0, "flags": 4},
- {"x": 0, "y": 8, "flags": 2},
- {"x": 224, "y": 8, "flags": 2},
- {"matrix": [9, 7], "x": 202, "y": 0, "flags": 4},
- {"x": 0, "y": 15, "flags": 2},
- {"x": 224, "y": 15, "flags": 2},
- {"matrix": [6, 5], "x": 224, "y": 15, "flags": 4},
- {"x": 0, "y": 21, "flags": 2},
- {"x": 224, "y": 21, "flags": 2},
- {"matrix": [1, 5], "x": 224, "y": 26, "flags": 4},
- {"x": 0, "y": 28, "flags": 2},
- {"x": 224, "y": 28, "flags": 2},
- {"matrix": [6, 6], "x": 173, "y": 15, "flags": 4},
- {"matrix": [0, 5], "x": 220, "y": 64, "flags": 4},
- {"x": 0, "y": 35, "flags": 2},
- {"x": 224, "y": 35, "flags": 2},
- {"matrix": [7, 5], "x": 224, "y": 49, "flags": 4},
- {"x": 0, "y": 42, "flags": 2},
- {"x": 224, "y": 42, "flags": 2},
- {"matrix": [10, 1], "x": 195, "y": 15, "flags": 4},
- {"matrix": [2, 5], "x": 224, "y": 38, "flags": 4},
- {"x": 0, "y": 48, "flags": 2},
- {"x": 224, "y": 48, "flags": 2},
- {"matrix": [6, 1], "x": 181, "y": 26, "flags": 4},
- {"matrix": [9, 1], "x": 182, "y": 49, "flags": 4},
- {"x": 0, "y": 55, "flags": 2},
- {"x": 224, "y": 55, "flags": 2},
- {"matrix": [10, 2], "x": 199, "y": 26, "flags": 4},
- {"matrix": [3, 5], "x": 206, "y": 52, "flags": 4},
- {"matrix": [0, 3], "x": 191, "y": 64, "flags": 4},
- {"matrix": [10, 4], "x": 193, "y": 38, "flags": 4},
- {"matrix": [7, 3], "x": 206, "y": 64, "flags": 4}
- ]
- },
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/gmmk/pro/rev1/iso/iso.c b/keyboards/gmmk/pro/rev1/iso/iso.c
index 1ba3ddc404..932c6a1f49 100644
--- a/keyboards/gmmk/pro/rev1/iso/iso.c
+++ b/keyboards/gmmk/pro/rev1/iso/iso.c
@@ -18,6 +18,125 @@
#ifdef RGB_MATRIX_ENABLE
// clang-format off
+led_config_t g_led_config = {{
+ { 4, NO_LED, NO_LED, 96, 65, 80, 5, 28 },
+ { 8, 2, 9, 0, 10, 76, 1, 7 },
+ { 14, 3, 15, 67, 16, 87, 6, 13 },
+ { 20, 18, 21, 23, 22, 94, 12, 19 },
+ { 25, 30, 26, 31, 27, 32, 29, 24 },
+ { 41, 36, 42, 37, 43, 38, 35, 40 },
+ { 46, 90, 47, 34, 48, 73, 79, 45 },
+ { 52, 39, 53, 98, 54, 83, 44, 51 },
+ { 58, 63, 59, 64, 95, 60, 62, 57 },
+ { 11, 91, 55, 17, 33, 49, NO_LED, 70 },
+ { NO_LED, 86, NO_LED, 61, 97, 66, 50, 56 }
+}, {
+ {0, 0}, // 0, ESC, k13
+ {0, 15}, // 1, `, k16
+ {4, 26}, // 2, Tab, k11
+ {5, 38}, // 3, Caps, k21
+ {2, 49}, // 4, Sh_L, k00
+ {2, 61}, // 5, Ct_L, k06
+ {18, 0}, // 6, F1, k26
+ {14, 15}, // 7, 1, k17
+ {22, 26}, // 8, Q, k10
+ {25, 38}, // 9, A, k12
+ {33, 49}, // 10, Z, k14
+ {20, 61}, // 11, Win_L, k90
+ {33, 0}, // 12, F2, k36
+ {29, 15}, // 13, 2, k27
+ {36, 26}, // 14, W, k20
+ {40, 38}, // 15, S, k22
+ {47, 49}, // 16, X, k24
+ {38, 61}, // 17, Alt_L, k93
+ {47, 0}, // 18, F3, k31
+ {43, 15}, // 19, 3, k37
+ {51, 26}, // 20, E, k30
+ {54, 38}, // 21, D, k32
+ {61, 49}, // 22, C, k34
+ {61, 0}, // 23, F4, k33
+ {58, 15}, // 24, 4, k47
+ {65, 26}, // 25, R, k40
+ {69, 38}, // 26, F, k42
+ {76, 49}, // 27, V, k44
+ {79, 0}, // 28, F5, k07
+ {72, 15}, // 29, 5, k46
+ {79, 26}, // 30, T, k41
+ {83, 38}, // 31, G, k43
+ {90, 49}, // 32, B, k45
+ {92, 61}, // 33, SPACE, k94
+ {94, 0}, // 34, F6, k63
+ {87, 15}, // 35, 6, k56
+ {94, 26}, // 36, Y, k51
+ {98, 38}, // 37, H, k53
+ {105, 49}, // 38, N, k55
+ {108, 0}, // 39, F7, k71
+ {101, 15}, // 40, 7, k57
+ {108, 26}, // 41, U, k50
+ {112, 38}, // 42, J, k52
+ {119, 49}, // 43, M, k54
+ {123, 0}, // 44, F8, k76
+ {116, 15}, // 45, 8, k67
+ {123, 26}, // 46, I, k60
+ {126, 38}, // 47, K, k62
+ {134, 49}, // 48, ,, k64
+ {145, 61}, // 49, Alt_R, k95
+ {141, 0}, // 50, F9, ka6
+ {130, 15}, // 51, 9, k77
+ {137, 26}, // 52, O, k70
+ {141, 38}, // 53, L, k72
+ {148, 49}, // 54, ., k74
+ {159, 61}, // 55, FN, k92
+ {155, 0}, // 56, F10, ka7
+ {145, 15}, // 57, 0, k87
+ {152, 26}, // 58, P, k80
+ {155, 38}, // 59, ;, k82
+ {163, 49}, // 60, /, k85
+ {170, 0}, // 61, F11, ka3
+ {159, 15}, // 62, -, k86
+ {166, 26}, // 63, [, k81
+ {170, 38}, // 64, ", k83
+ {173, 61}, // 65, Ct_R, k04
+ {184, 0}, // 66, F12, ka5
+ {18, 49}, // 67, \, k23
+ {0, 8}, // 68, LED, l01
+ {224, 8}, // 69, LED, l11
+ {202, 0}, // 70, Prt, k97
+ {0, 15}, // 71, LED, l02
+ {224, 15}, // 72, LED, l12
+ {224, 15}, // 73, Del, k65
+ {0, 21}, // 74, LED, l03
+ {224, 21}, // 75, LED, l13
+ {224, 26}, // 76, PgUp, k15
+ {0, 28}, // 77, LED, l04
+ {224, 28}, // 78, LED, l14
+ {173, 15}, // 79, =, k66
+ {220, 64}, // 80, Right, k05
+ {0, 35}, // 81, LED, l05
+ {224, 35}, // 82, LED, l15
+ {224, 49}, // 83, End, k75
+ {0, 42}, // 84, LED, l06
+ {224, 42}, // 85, LED, l16
+ {195, 15}, // 86, BSpc, ka1
+ {224, 38}, // 87, PgDn, k25
+ {0, 48}, // 88, LED, l07
+ {224, 48}, // 89, LED, l17
+ {181, 26}, // 90, ], k61
+ {182, 49}, // 91, Sh_R, k91
+ {0, 55}, // 92, LED, l08
+ {224, 55}, // 93, LED, l18
+ {206, 52}, // 94, Up, k35
+ {184, 38}, // 95, #, k84
+ {191, 64}, // 96, Left, k03
+ {201, 26}, // 97, Enter, ka4
+ {206, 64}, // 98, Down, k73
+}, {
+ 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,
+ 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,
+ 4, 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, 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4
+}};
+
const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = {
{0, SW1_CS1, SW1_CS2, SW1_CS3}, // 0, ESC, k13
{0, SW1_CS4, SW1_CS5, SW1_CS6}, // 1, ~, k16
diff --git a/keyboards/gmmk/pro/rev1/iso/keyboard.json b/keyboards/gmmk/pro/rev1/iso/keyboard.json
index a30e7cbb6d..7506f8952d 100644
--- a/keyboards/gmmk/pro/rev1/iso/keyboard.json
+++ b/keyboards/gmmk/pro/rev1/iso/keyboard.json
@@ -34,109 +34,6 @@
},
"processor": "STM32F303",
"bootloader": "stm32-dfu",
- "rgb_matrix": {
- "layout": [
- {"matrix": [1, 3], "x": 0, "y": 0, "flags": 4},
- {"matrix": [1, 6], "x": 0, "y": 15, "flags": 4},
- {"matrix": [1, 1], "x": 4, "y": 26, "flags": 4},
- {"matrix": [2, 1], "x": 5, "y": 38, "flags": 4},
- {"matrix": [0, 0], "x": 2, "y": 49, "flags": 4},
- {"matrix": [0, 6], "x": 2, "y": 61, "flags": 4},
- {"matrix": [2, 6], "x": 18, "y": 0, "flags": 4},
- {"matrix": [1, 7], "x": 14, "y": 15, "flags": 4},
- {"matrix": [1, 0], "x": 22, "y": 26, "flags": 4},
- {"matrix": [1, 2], "x": 25, "y": 38, "flags": 4},
- {"matrix": [1, 4], "x": 33, "y": 49, "flags": 4},
- {"matrix": [9, 0], "x": 20, "y": 61, "flags": 4},
- {"matrix": [3, 6], "x": 33, "y": 0, "flags": 4},
- {"matrix": [2, 7], "x": 29, "y": 15, "flags": 4},
- {"matrix": [2, 0], "x": 36, "y": 26, "flags": 4},
- {"matrix": [2, 2], "x": 40, "y": 38, "flags": 4},
- {"matrix": [2, 4], "x": 47, "y": 49, "flags": 4},
- {"matrix": [9, 3], "x": 38, "y": 61, "flags": 4},
- {"matrix": [3, 1], "x": 47, "y": 0, "flags": 4},
- {"matrix": [3, 7], "x": 43, "y": 15, "flags": 4},
- {"matrix": [3, 0], "x": 51, "y": 26, "flags": 4},
- {"matrix": [3, 2], "x": 54, "y": 38, "flags": 4},
- {"matrix": [3, 4], "x": 61, "y": 49, "flags": 4},
- {"matrix": [3, 3], "x": 61, "y": 0, "flags": 4},
- {"matrix": [4, 7], "x": 58, "y": 15, "flags": 4},
- {"matrix": [4, 0], "x": 65, "y": 26, "flags": 4},
- {"matrix": [4, 2], "x": 69, "y": 38, "flags": 4},
- {"matrix": [4, 4], "x": 76, "y": 49, "flags": 4},
- {"matrix": [0, 7], "x": 79, "y": 0, "flags": 4},
- {"matrix": [4, 6], "x": 72, "y": 15, "flags": 4},
- {"matrix": [4, 1], "x": 79, "y": 26, "flags": 4},
- {"matrix": [4, 3], "x": 83, "y": 38, "flags": 4},
- {"matrix": [4, 5], "x": 90, "y": 49, "flags": 4},
- {"matrix": [9, 4], "x": 92, "y": 61, "flags": 4},
- {"matrix": [6, 3], "x": 94, "y": 0, "flags": 4},
- {"matrix": [5, 6], "x": 87, "y": 15, "flags": 4},
- {"matrix": [5, 1], "x": 94, "y": 26, "flags": 4},
- {"matrix": [5, 3], "x": 98, "y": 38, "flags": 4},
- {"matrix": [5, 5], "x": 105, "y": 49, "flags": 4},
- {"matrix": [7, 1], "x": 108, "y": 0, "flags": 4},
- {"matrix": [5, 7], "x": 101, "y": 15, "flags": 4},
- {"matrix": [5, 0], "x": 108, "y": 26, "flags": 4},
- {"matrix": [5, 2], "x": 112, "y": 38, "flags": 4},
- {"matrix": [5, 4], "x": 119, "y": 49, "flags": 4},
- {"matrix": [7, 6], "x": 123, "y": 0, "flags": 4},
- {"matrix": [6, 7], "x": 116, "y": 15, "flags": 4},
- {"matrix": [6, 0], "x": 123, "y": 26, "flags": 4},
- {"matrix": [6, 2], "x": 126, "y": 38, "flags": 4},
- {"matrix": [6, 4], "x": 134, "y": 49, "flags": 4},
- {"matrix": [9, 5], "x": 145, "y": 61, "flags": 4},
- {"matrix": [10, 6], "x": 141, "y": 0, "flags": 4},
- {"matrix": [7, 7], "x": 130, "y": 15, "flags": 4},
- {"matrix": [7, 0], "x": 137, "y": 26, "flags": 4},
- {"matrix": [7, 2], "x": 141, "y": 38, "flags": 4},
- {"matrix": [7, 4], "x": 148, "y": 49, "flags": 4},
- {"matrix": [9, 2], "x": 159, "y": 61, "flags": 4},
- {"matrix": [10, 7], "x": 155, "y": 0, "flags": 4},
- {"matrix": [8, 7], "x": 145, "y": 15, "flags": 4},
- {"matrix": [8, 0], "x": 152, "y": 26, "flags": 4},
- {"matrix": [8, 2], "x": 155, "y": 38, "flags": 4},
- {"matrix": [8, 5], "x": 163, "y": 49, "flags": 4},
- {"matrix": [10, 3], "x": 170, "y": 0, "flags": 4},
- {"matrix": [8, 6], "x": 159, "y": 15, "flags": 4},
- {"matrix": [8, 1], "x": 166, "y": 26, "flags": 4},
- {"matrix": [8, 3], "x": 170, "y": 38, "flags": 4},
- {"matrix": [0, 4], "x": 173, "y": 61, "flags": 4},
- {"matrix": [10, 5], "x": 184, "y": 0, "flags": 4},
- {"matrix": [2, 3], "x": 18, "y": 49, "flags": 4},
- {"x": 0, "y": 8, "flags": 2},
- {"x": 224, "y": 8, "flags": 2},
- {"matrix": [9, 7], "x": 202, "y": 0, "flags": 4},
- {"x": 0, "y": 15, "flags": 2},
- {"x": 224, "y": 15, "flags": 2},
- {"matrix": [6, 5], "x": 224, "y": 15, "flags": 4},
- {"x": 0, "y": 21, "flags": 2},
- {"x": 224, "y": 21, "flags": 2},
- {"matrix": [1, 5], "x": 224, "y": 26, "flags": 4},
- {"x": 0, "y": 28, "flags": 2},
- {"x": 224, "y": 28, "flags": 2},
- {"matrix": [6, 6], "x": 173, "y": 15, "flags": 4},
- {"matrix": [0, 5], "x": 220, "y": 64, "flags": 4},
- {"x": 0, "y": 35, "flags": 2},
- {"x": 224, "y": 35, "flags": 2},
- {"matrix": [7, 5], "x": 224, "y": 49, "flags": 4},
- {"x": 0, "y": 42, "flags": 2},
- {"x": 224, "y": 42, "flags": 2},
- {"matrix": [10, 1], "x": 195, "y": 15, "flags": 4},
- {"matrix": [2, 5], "x": 224, "y": 38, "flags": 4},
- {"x": 0, "y": 48, "flags": 2},
- {"x": 224, "y": 48, "flags": 2},
- {"matrix": [6, 1], "x": 181, "y": 26, "flags": 4},
- {"matrix": [9, 1], "x": 182, "y": 49, "flags": 4},
- {"x": 0, "y": 55, "flags": 2},
- {"x": 224, "y": 55, "flags": 2},
- {"matrix": [3, 5], "x": 206, "y": 52, "flags": 4},
- {"matrix": [8, 4], "x": 184, "y": 38, "flags": 4},
- {"matrix": [0, 3], "x": 191, "y": 64, "flags": 4},
- {"matrix": [10, 4], "x": 201, "y": 26, "flags": 4},
- {"matrix": [7, 3], "x": 206, "y": 64, "flags": 4}
- ]
- },
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/gmmk/pro/rev2/ansi/ansi.c b/keyboards/gmmk/pro/rev2/ansi/ansi.c
index 8b7695095f..a3f957ef0a 100644
--- a/keyboards/gmmk/pro/rev2/ansi/ansi.c
+++ b/keyboards/gmmk/pro/rev2/ansi/ansi.c
@@ -18,6 +18,124 @@
#ifdef RGB_MATRIX_ENABLE
// clang-format off
+led_config_t g_led_config = {{
+ { 4, NO_LED, NO_LED, 95, 65, 79, 5, 28 },
+ { 8, 2, 9, 0, 10, 75, 1, 7 },
+ { 14, 3, 15, NO_LED, 16, 86, 6, 13 },
+ { 20, 18, 21, 23, 22, 94, 12, 19 },
+ { 25, 30, 26, 31, 27, 32, 29, 24 },
+ { 41, 36, 42, 37, 43, 38, 35, 40 },
+ { 46, 89, 47, 34, 48, 72, 78, 45 },
+ { 52, 39, 53, 97, 54, 82, 44, 51 },
+ { 58, 63, 59, 64, NO_LED, 60, 62, 57 },
+ { 11, 90, 55, 17, 33, 49, NO_LED, 69 },
+ { NO_LED, 85, 93, 61, 96, 66, 50, 56 }
+}, {
+ {0, 0}, // 0, ESC, k13
+ {0, 15}, // 1, ~, k16
+ {4, 26}, // 2, Tab, k11
+ {5, 38}, // 3, Caps, k21
+ {9, 49}, // 4, Sh_L, k00
+ {2, 61}, // 5, Ct_L, k06
+ {18, 0}, // 6, F1, k26
+ {14, 15}, // 7, 1, k17
+ {22, 26}, // 8, Q, k10
+ {25, 38}, // 9, A, k12
+ {33, 49}, // 10, Z, k14
+ {20, 61}, // 11, Win_L, k90
+ {33, 0}, // 12, F2, k36
+ {29, 15}, // 13, 2, k27
+ {36, 26}, // 14, W, k20
+ {40, 38}, // 15, S, k22
+ {47, 49}, // 16, X, k24
+ {38, 61}, // 17, Alt_L, k93
+ {47, 0}, // 18, F3, k31
+ {43, 15}, // 19, 3, k37
+ {51, 26}, // 20, E, k30
+ {54, 38}, // 21, D, k32
+ {61, 49}, // 22, C, k34
+ {61, 0}, // 23, F4, k33
+ {58, 15}, // 24, 4, k47
+ {65, 26}, // 25, R, k40
+ {69, 38}, // 26, F, k42
+ {76, 49}, // 27, V, k44
+ {79, 0}, // 28, F5, k07
+ {72, 15}, // 29, 5, k46
+ {79, 26}, // 30, T, k41
+ {83, 38}, // 31, G, k43
+ {90, 49}, // 32, B, k45
+ {92, 61}, // 33, SPACE, k94
+ {94, 0}, // 34, F6, k63
+ {87, 15}, // 35, 6, k56
+ {94, 26}, // 36, Y, k51
+ {98, 38}, // 37, H, k53
+ {105, 49}, // 38, N, k55
+ {108, 0}, // 39, F7, k71
+ {101, 15}, // 40, 7, k57
+ {108, 26}, // 41, U, k50
+ {112, 38}, // 42, J, k52
+ {119, 49}, // 43, M, k54
+ {123, 0}, // 44, F8, k76
+ {116, 15}, // 45, 8, k67
+ {123, 26}, // 46, I, k60
+ {126, 38}, // 47, K, k62
+ {134, 49}, // 48, ,, k64
+ {145, 61}, // 49, Alt_R, k95
+ {141, 0}, // 50, F9, ka6
+ {130, 15}, // 51, 9, k77
+ {137, 26}, // 52, O, k70
+ {141, 38}, // 53, L, k72
+ {148, 49}, // 54, ., k74
+ {159, 61}, // 55, FN, k92
+ {155, 0}, // 56, F10, ka7
+ {145, 15}, // 57, 0, k87
+ {152, 26}, // 58, P, k80
+ {155, 38}, // 59, ;, k82
+ {163, 49}, // 60, ?, k85
+ {170, 0}, // 61, F11, ka3
+ {159, 15}, // 62, -, k86
+ {166, 26}, // 63, [, k81
+ {170, 38}, // 64, ", k83
+ {173, 61}, // 65, Ct_R, k04
+ {184, 0}, // 66, F12, ka5
+ {0, 8}, // 67, LED, l01
+ {224, 8}, // 68, LED, l11
+ {202, 0}, // 69, Prt, k97
+ {0, 15}, // 70, LED, l02
+ {224, 15}, // 71, LED, l12
+ {224, 15}, // 72, Del, k65
+ {0, 21}, // 73, LED, l03
+ {224, 21}, // 74, LED, l13
+ {224, 26}, // 75, PgUp, k15
+ {0, 28}, // 76, LED, l04
+ {224, 28}, // 77, LED, l14
+ {173, 15}, // 78, =, k66
+ {220, 64}, // 79, Right, k05
+ {0, 35}, // 80, LED, l05
+ {224, 35}, // 81, LED, l15
+ {224, 49}, // 82, End, k75
+ {0, 42}, // 83, LED, l06
+ {224, 42}, // 84, LED, l16
+ {195, 15}, // 85, BSpc, ka1
+ {224, 38}, // 86, PgDn, k25
+ {0, 48}, // 87, LED, l07
+ {224, 48}, // 88, LED, l17
+ {181, 26}, // 89, ], k61
+ {182, 49}, // 90, Sh_R, k91
+ {0, 55}, // 91, LED, l08
+ {224, 55}, // 92, LED, l18
+ {199, 26}, // 93, \, ka2
+ {206, 52}, // 94, Up, k35
+ {191, 64}, // 95, Left, k03
+ {193, 38}, // 96, Enter, ka4
+ {206, 64} // 97, Down, k73
+}, {
+ 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,
+ 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,
+ 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,
+ 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4
+}};
+
const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = {
{0, SW1_CS1, SW1_CS2, SW1_CS3}, // 0, ESC, k13
{0, SW1_CS4, SW1_CS5, SW1_CS6}, // 1, ~, k16
diff --git a/keyboards/gmmk/pro/rev2/ansi/keyboard.json b/keyboards/gmmk/pro/rev2/ansi/keyboard.json
index f8eb11f10b..4e0fdfccd9 100644
--- a/keyboards/gmmk/pro/rev2/ansi/keyboard.json
+++ b/keyboards/gmmk/pro/rev2/ansi/keyboard.json
@@ -41,108 +41,6 @@
},
"processor": "WB32F3G71",
"bootloader": "wb32-dfu",
- "rgb_matrix": {
- "layout": [
- {"matrix": [1, 3], "x": 0, "y": 0, "flags": 4},
- {"matrix": [1, 6], "x": 0, "y": 15, "flags": 4},
- {"matrix": [1, 1], "x": 4, "y": 26, "flags": 4},
- {"matrix": [2, 1], "x": 5, "y": 38, "flags": 4},
- {"matrix": [0, 0], "x": 9, "y": 49, "flags": 4},
- {"matrix": [0, 6], "x": 2, "y": 61, "flags": 4},
- {"matrix": [2, 6], "x": 18, "y": 0, "flags": 4},
- {"matrix": [1, 7], "x": 14, "y": 15, "flags": 4},
- {"matrix": [1, 0], "x": 22, "y": 26, "flags": 4},
- {"matrix": [1, 2], "x": 25, "y": 38, "flags": 4},
- {"matrix": [1, 4], "x": 33, "y": 49, "flags": 4},
- {"matrix": [9, 0], "x": 20, "y": 61, "flags": 4},
- {"matrix": [3, 6], "x": 33, "y": 0, "flags": 4},
- {"matrix": [2, 7], "x": 29, "y": 15, "flags": 4},
- {"matrix": [2, 0], "x": 36, "y": 26, "flags": 4},
- {"matrix": [2, 2], "x": 40, "y": 38, "flags": 4},
- {"matrix": [2, 4], "x": 47, "y": 49, "flags": 4},
- {"matrix": [9, 3], "x": 38, "y": 61, "flags": 4},
- {"matrix": [3, 1], "x": 47, "y": 0, "flags": 4},
- {"matrix": [3, 7], "x": 43, "y": 15, "flags": 4},
- {"matrix": [3, 0], "x": 51, "y": 26, "flags": 4},
- {"matrix": [3, 2], "x": 54, "y": 38, "flags": 4},
- {"matrix": [3, 4], "x": 61, "y": 49, "flags": 4},
- {"matrix": [3, 3], "x": 61, "y": 0, "flags": 4},
- {"matrix": [4, 7], "x": 58, "y": 15, "flags": 4},
- {"matrix": [4, 0], "x": 65, "y": 26, "flags": 4},
- {"matrix": [4, 2], "x": 69, "y": 38, "flags": 4},
- {"matrix": [4, 4], "x": 76, "y": 49, "flags": 4},
- {"matrix": [0, 7], "x": 79, "y": 0, "flags": 4},
- {"matrix": [4, 6], "x": 72, "y": 15, "flags": 4},
- {"matrix": [4, 1], "x": 79, "y": 26, "flags": 4},
- {"matrix": [4, 3], "x": 83, "y": 38, "flags": 4},
- {"matrix": [4, 5], "x": 90, "y": 49, "flags": 4},
- {"matrix": [9, 4], "x": 92, "y": 61, "flags": 4},
- {"matrix": [6, 3], "x": 94, "y": 0, "flags": 4},
- {"matrix": [5, 6], "x": 87, "y": 15, "flags": 4},
- {"matrix": [5, 1], "x": 94, "y": 26, "flags": 4},
- {"matrix": [5, 3], "x": 98, "y": 38, "flags": 4},
- {"matrix": [5, 5], "x": 105, "y": 49, "flags": 4},
- {"matrix": [7, 1], "x": 108, "y": 0, "flags": 4},
- {"matrix": [5, 7], "x": 101, "y": 15, "flags": 4},
- {"matrix": [5, 0], "x": 108, "y": 26, "flags": 4},
- {"matrix": [5, 2], "x": 112, "y": 38, "flags": 4},
- {"matrix": [5, 4], "x": 119, "y": 49, "flags": 4},
- {"matrix": [7, 6], "x": 123, "y": 0, "flags": 4},
- {"matrix": [6, 7], "x": 116, "y": 15, "flags": 4},
- {"matrix": [6, 0], "x": 123, "y": 26, "flags": 4},
- {"matrix": [6, 2], "x": 126, "y": 38, "flags": 4},
- {"matrix": [6, 4], "x": 134, "y": 49, "flags": 4},
- {"matrix": [9, 5], "x": 145, "y": 61, "flags": 4},
- {"matrix": [10, 6], "x": 141, "y": 0, "flags": 4},
- {"matrix": [7, 7], "x": 130, "y": 15, "flags": 4},
- {"matrix": [7, 0], "x": 137, "y": 26, "flags": 4},
- {"matrix": [7, 2], "x": 141, "y": 38, "flags": 4},
- {"matrix": [7, 4], "x": 148, "y": 49, "flags": 4},
- {"matrix": [9, 2], "x": 159, "y": 61, "flags": 4},
- {"matrix": [10, 7], "x": 155, "y": 0, "flags": 4},
- {"matrix": [8, 7], "x": 145, "y": 15, "flags": 4},
- {"matrix": [8, 0], "x": 152, "y": 26, "flags": 4},
- {"matrix": [8, 2], "x": 155, "y": 38, "flags": 4},
- {"matrix": [8, 5], "x": 163, "y": 49, "flags": 4},
- {"matrix": [10, 3], "x": 170, "y": 0, "flags": 4},
- {"matrix": [8, 6], "x": 159, "y": 15, "flags": 4},
- {"matrix": [8, 1], "x": 166, "y": 26, "flags": 4},
- {"matrix": [8, 3], "x": 170, "y": 38, "flags": 4},
- {"matrix": [0, 4], "x": 173, "y": 61, "flags": 4},
- {"matrix": [10, 5], "x": 184, "y": 0, "flags": 4},
- {"x": 0, "y": 8, "flags": 2},
- {"x": 224, "y": 8, "flags": 2},
- {"matrix": [9, 7], "x": 202, "y": 0, "flags": 4},
- {"x": 0, "y": 15, "flags": 2},
- {"x": 224, "y": 15, "flags": 2},
- {"matrix": [6, 5], "x": 224, "y": 15, "flags": 4},
- {"x": 0, "y": 21, "flags": 2},
- {"x": 224, "y": 21, "flags": 2},
- {"matrix": [1, 5], "x": 224, "y": 26, "flags": 4},
- {"x": 0, "y": 28, "flags": 2},
- {"x": 224, "y": 28, "flags": 2},
- {"matrix": [6, 6], "x": 173, "y": 15, "flags": 4},
- {"matrix": [0, 5], "x": 220, "y": 64, "flags": 4},
- {"x": 0, "y": 35, "flags": 2},
- {"x": 224, "y": 35, "flags": 2},
- {"matrix": [7, 5], "x": 224, "y": 49, "flags": 4},
- {"x": 0, "y": 42, "flags": 2},
- {"x": 224, "y": 42, "flags": 2},
- {"matrix": [10, 1], "x": 195, "y": 15, "flags": 4},
- {"matrix": [2, 5], "x": 224, "y": 38, "flags": 4},
- {"x": 0, "y": 48, "flags": 2},
- {"x": 224, "y": 48, "flags": 2},
- {"matrix": [6, 1], "x": 181, "y": 26, "flags": 4},
- {"matrix": [9, 1], "x": 182, "y": 49, "flags": 4},
- {"x": 0, "y": 55, "flags": 2},
- {"x": 224, "y": 55, "flags": 2},
- {"matrix": [10, 2], "x": 199, "y": 26, "flags": 4},
- {"matrix": [3, 5], "x": 206, "y": 52, "flags": 4},
- {"matrix": [0, 3], "x": 191, "y": 64, "flags": 4},
- {"matrix": [10, 4], "x": 193, "y": 38, "flags": 4},
- {"matrix": [7, 3], "x": 206, "y": 64, "flags": 4}
- ]
- },
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/gmmk/pro/rev2/iso/iso.c b/keyboards/gmmk/pro/rev2/iso/iso.c
index ce211ea47d..7a34f2432f 100644
--- a/keyboards/gmmk/pro/rev2/iso/iso.c
+++ b/keyboards/gmmk/pro/rev2/iso/iso.c
@@ -18,6 +18,125 @@
#ifdef RGB_MATRIX_ENABLE
// clang-format off
+led_config_t g_led_config = {{
+ { 4, NO_LED, NO_LED, 96, 65, 80, 5, 28 },
+ { 8, 2, 9, 0, 10, 76, 1, 7 },
+ { 14, 3, 15, 67, 16, 87, 6, 13 },
+ { 20, 18, 21, 23, 22, 94, 12, 19 },
+ { 25, 30, 26, 31, 27, 32, 29, 24 },
+ { 41, 36, 42, 37, 43, 38, 35, 40 },
+ { 46, 90, 47, 34, 48, 73, 79, 45 },
+ { 52, 39, 53, 98, 54, 83, 44, 51 },
+ { 58, 63, 59, 64, 95, 60, 62, 57 },
+ { 11, 91, 55, 17, 33, 49, NO_LED, 70 },
+ { NO_LED, 86, NO_LED, 61, 97, 66, 50, 56 }
+}, {
+ {0, 0}, // 0, ESC, k13
+ {0, 15}, // 1, `, k16
+ {4, 26}, // 2, Tab, k11
+ {5, 38}, // 3, Caps, k21
+ {2, 49}, // 4, Sh_L, k00
+ {2, 61}, // 5, Ct_L, k06
+ {18, 0}, // 6, F1, k26
+ {14, 15}, // 7, 1, k17
+ {22, 26}, // 8, Q, k10
+ {25, 38}, // 9, A, k12
+ {33, 49}, // 10, Z, k14
+ {20, 61}, // 11, Win_L, k90
+ {33, 0}, // 12, F2, k36
+ {29, 15}, // 13, 2, k27
+ {36, 26}, // 14, W, k20
+ {40, 38}, // 15, S, k22
+ {47, 49}, // 16, X, k24
+ {38, 61}, // 17, Alt_L, k93
+ {47, 0}, // 18, F3, k31
+ {43, 15}, // 19, 3, k37
+ {51, 26}, // 20, E, k30
+ {54, 38}, // 21, D, k32
+ {61, 49}, // 22, C, k34
+ {61, 0}, // 23, F4, k33
+ {58, 15}, // 24, 4, k47
+ {65, 26}, // 25, R, k40
+ {69, 38}, // 26, F, k42
+ {76, 49}, // 27, V, k44
+ {79, 0}, // 28, F5, k07
+ {72, 15}, // 29, 5, k46
+ {79, 26}, // 30, T, k41
+ {83, 38}, // 31, G, k43
+ {90, 49}, // 32, B, k45
+ {92, 61}, // 33, SPACE, k94
+ {94, 0}, // 34, F6, k63
+ {87, 15}, // 35, 6, k56
+ {94, 26}, // 36, Y, k51
+ {98, 38}, // 37, H, k53
+ {105, 49}, // 38, N, k55
+ {108, 0}, // 39, F7, k71
+ {101, 15}, // 40, 7, k57
+ {108, 26}, // 41, U, k50
+ {112, 38}, // 42, J, k52
+ {119, 49}, // 43, M, k54
+ {123, 0}, // 44, F8, k76
+ {116, 15}, // 45, 8, k67
+ {123, 26}, // 46, I, k60
+ {126, 38}, // 47, K, k62
+ {134, 49}, // 48, ,, k64
+ {145, 61}, // 49, Alt_R, k95
+ {141, 0}, // 50, F9, ka6
+ {130, 15}, // 51, 9, k77
+ {137, 26}, // 52, O, k70
+ {141, 38}, // 53, L, k72
+ {148, 49}, // 54, ., k74
+ {159, 61}, // 55, FN, k92
+ {155, 0}, // 56, F10, ka7
+ {145, 15}, // 57, 0, k87
+ {152, 26}, // 58, P, k80
+ {155, 38}, // 59, ;, k82
+ {163, 49}, // 60, /, k85
+ {170, 0}, // 61, F11, ka3
+ {159, 15}, // 62, -, k86
+ {166, 26}, // 63, [, k81
+ {170, 38}, // 64, ", k83
+ {173, 61}, // 65, Ct_R, k04
+ {184, 0}, // 66, F12, ka5
+ {18, 49}, // 67, \, k23
+ {0, 8}, // 68, LED, l01
+ {224, 8}, // 69, LED, l11
+ {202, 0}, // 70, Prt, k97
+ {0, 15}, // 71, LED, l02
+ {224, 15}, // 72, LED, l12
+ {224, 15}, // 73, Del, k65
+ {0, 21}, // 74, LED, l03
+ {224, 21}, // 75, LED, l13
+ {224, 26}, // 76, PgUp, k15
+ {0, 28}, // 77, LED, l04
+ {224, 28}, // 78, LED, l14
+ {173, 15}, // 79, =, k66
+ {220, 64}, // 80, Right, k05
+ {0, 35}, // 81, LED, l05
+ {224, 35}, // 82, LED, l15
+ {224, 49}, // 83, End, k75
+ {0, 42}, // 84, LED, l06
+ {224, 42}, // 85, LED, l16
+ {195, 15}, // 86, BSpc, ka1
+ {224, 38}, // 87, PgDn, k25
+ {0, 48}, // 88, LED, l07
+ {224, 48}, // 89, LED, l17
+ {181, 26}, // 90, ], k61
+ {182, 49}, // 91, Sh_R, k91
+ {0, 55}, // 92, LED, l08
+ {224, 55}, // 93, LED, l18
+ {206, 52}, // 94, Up, k35
+ {184, 38}, // 95, #, k84
+ {191, 64}, // 96, Left, k03
+ {201, 26}, // 97, Enter, ka4
+ {206, 64}, // 98, Down, k73
+}, {
+ 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,
+ 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,
+ 4, 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, 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4
+}};
+
const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = {
{0, SW1_CS1, SW1_CS2, SW1_CS3}, // 0, ESC, k13
{0, SW1_CS4, SW1_CS5, SW1_CS6}, // 1, ~, k16
diff --git a/keyboards/gmmk/pro/rev2/iso/keyboard.json b/keyboards/gmmk/pro/rev2/iso/keyboard.json
index 886d9e8c55..01db9dc22f 100644
--- a/keyboards/gmmk/pro/rev2/iso/keyboard.json
+++ b/keyboards/gmmk/pro/rev2/iso/keyboard.json
@@ -41,109 +41,6 @@
},
"processor": "WB32F3G71",
"bootloader": "wb32-dfu",
- "rgb_matrix": {
- "layout": [
- {"matrix": [1, 3], "x": 0, "y": 0, "flags": 4},
- {"matrix": [1, 6], "x": 0, "y": 15, "flags": 4},
- {"matrix": [1, 1], "x": 4, "y": 26, "flags": 4},
- {"matrix": [2, 1], "x": 5, "y": 38, "flags": 4},
- {"matrix": [0, 0], "x": 2, "y": 49, "flags": 4},
- {"matrix": [0, 6], "x": 2, "y": 61, "flags": 4},
- {"matrix": [2, 6], "x": 18, "y": 0, "flags": 4},
- {"matrix": [1, 7], "x": 14, "y": 15, "flags": 4},
- {"matrix": [1, 0], "x": 22, "y": 26, "flags": 4},
- {"matrix": [1, 2], "x": 25, "y": 38, "flags": 4},
- {"matrix": [1, 4], "x": 33, "y": 49, "flags": 4},
- {"matrix": [9, 0], "x": 20, "y": 61, "flags": 4},
- {"matrix": [3, 6], "x": 33, "y": 0, "flags": 4},
- {"matrix": [2, 7], "x": 29, "y": 15, "flags": 4},
- {"matrix": [2, 0], "x": 36, "y": 26, "flags": 4},
- {"matrix": [2, 2], "x": 40, "y": 38, "flags": 4},
- {"matrix": [2, 4], "x": 47, "y": 49, "flags": 4},
- {"matrix": [9, 3], "x": 38, "y": 61, "flags": 4},
- {"matrix": [3, 1], "x": 47, "y": 0, "flags": 4},
- {"matrix": [3, 7], "x": 43, "y": 15, "flags": 4},
- {"matrix": [3, 0], "x": 51, "y": 26, "flags": 4},
- {"matrix": [3, 2], "x": 54, "y": 38, "flags": 4},
- {"matrix": [3, 4], "x": 61, "y": 49, "flags": 4},
- {"matrix": [3, 3], "x": 61, "y": 0, "flags": 4},
- {"matrix": [4, 7], "x": 58, "y": 15, "flags": 4},
- {"matrix": [4, 0], "x": 65, "y": 26, "flags": 4},
- {"matrix": [4, 2], "x": 69, "y": 38, "flags": 4},
- {"matrix": [4, 4], "x": 76, "y": 49, "flags": 4},
- {"matrix": [0, 7], "x": 79, "y": 0, "flags": 4},
- {"matrix": [4, 6], "x": 72, "y": 15, "flags": 4},
- {"matrix": [4, 1], "x": 79, "y": 26, "flags": 4},
- {"matrix": [4, 3], "x": 83, "y": 38, "flags": 4},
- {"matrix": [4, 5], "x": 90, "y": 49, "flags": 4},
- {"matrix": [9, 4], "x": 92, "y": 61, "flags": 4},
- {"matrix": [6, 3], "x": 94, "y": 0, "flags": 4},
- {"matrix": [5, 6], "x": 87, "y": 15, "flags": 4},
- {"matrix": [5, 1], "x": 94, "y": 26, "flags": 4},
- {"matrix": [5, 3], "x": 98, "y": 38, "flags": 4},
- {"matrix": [5, 5], "x": 105, "y": 49, "flags": 4},
- {"matrix": [7, 1], "x": 108, "y": 0, "flags": 4},
- {"matrix": [5, 7], "x": 101, "y": 15, "flags": 4},
- {"matrix": [5, 0], "x": 108, "y": 26, "flags": 4},
- {"matrix": [5, 2], "x": 112, "y": 38, "flags": 4},
- {"matrix": [5, 4], "x": 119, "y": 49, "flags": 4},
- {"matrix": [7, 6], "x": 123, "y": 0, "flags": 4},
- {"matrix": [6, 7], "x": 116, "y": 15, "flags": 4},
- {"matrix": [6, 0], "x": 123, "y": 26, "flags": 4},
- {"matrix": [6, 2], "x": 126, "y": 38, "flags": 4},
- {"matrix": [6, 4], "x": 134, "y": 49, "flags": 4},
- {"matrix": [9, 5], "x": 145, "y": 61, "flags": 4},
- {"matrix": [10, 6], "x": 141, "y": 0, "flags": 4},
- {"matrix": [7, 7], "x": 130, "y": 15, "flags": 4},
- {"matrix": [7, 0], "x": 137, "y": 26, "flags": 4},
- {"matrix": [7, 2], "x": 141, "y": 38, "flags": 4},
- {"matrix": [7, 4], "x": 148, "y": 49, "flags": 4},
- {"matrix": [9, 2], "x": 159, "y": 61, "flags": 4},
- {"matrix": [10, 7], "x": 155, "y": 0, "flags": 4},
- {"matrix": [8, 7], "x": 145, "y": 15, "flags": 4},
- {"matrix": [8, 0], "x": 152, "y": 26, "flags": 4},
- {"matrix": [8, 2], "x": 155, "y": 38, "flags": 4},
- {"matrix": [8, 5], "x": 163, "y": 49, "flags": 4},
- {"matrix": [10, 3], "x": 170, "y": 0, "flags": 4},
- {"matrix": [8, 6], "x": 159, "y": 15, "flags": 4},
- {"matrix": [8, 1], "x": 166, "y": 26, "flags": 4},
- {"matrix": [8, 3], "x": 170, "y": 38, "flags": 4},
- {"matrix": [0, 4], "x": 173, "y": 61, "flags": 4},
- {"matrix": [10, 5], "x": 184, "y": 0, "flags": 4},
- {"matrix": [2, 3], "x": 18, "y": 49, "flags": 4},
- {"x": 0, "y": 8, "flags": 2},
- {"x": 224, "y": 8, "flags": 2},
- {"matrix": [9, 7], "x": 202, "y": 0, "flags": 4},
- {"x": 0, "y": 15, "flags": 2},
- {"x": 224, "y": 15, "flags": 2},
- {"matrix": [6, 5], "x": 224, "y": 15, "flags": 4},
- {"x": 0, "y": 21, "flags": 2},
- {"x": 224, "y": 21, "flags": 2},
- {"matrix": [1, 5], "x": 224, "y": 26, "flags": 4},
- {"x": 0, "y": 28, "flags": 2},
- {"x": 224, "y": 28, "flags": 2},
- {"matrix": [6, 6], "x": 173, "y": 15, "flags": 4},
- {"matrix": [0, 5], "x": 220, "y": 64, "flags": 4},
- {"x": 0, "y": 35, "flags": 2},
- {"x": 224, "y": 35, "flags": 2},
- {"matrix": [7, 5], "x": 224, "y": 49, "flags": 4},
- {"x": 0, "y": 42, "flags": 2},
- {"x": 224, "y": 42, "flags": 2},
- {"matrix": [10, 1], "x": 195, "y": 15, "flags": 4},
- {"matrix": [2, 5], "x": 224, "y": 38, "flags": 4},
- {"x": 0, "y": 48, "flags": 2},
- {"x": 224, "y": 48, "flags": 2},
- {"matrix": [6, 1], "x": 181, "y": 26, "flags": 4},
- {"matrix": [9, 1], "x": 182, "y": 49, "flags": 4},
- {"x": 0, "y": 55, "flags": 2},
- {"x": 224, "y": 55, "flags": 2},
- {"matrix": [3, 5], "x": 206, "y": 52, "flags": 4},
- {"matrix": [8, 4], "x": 184, "y": 38, "flags": 4},
- {"matrix": [0, 3], "x": 191, "y": 64, "flags": 4},
- {"matrix": [10, 4], "x": 201, "y": 26, "flags": 4},
- {"matrix": [7, 3], "x": 206, "y": 64, "flags": 4}
- ]
- },
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/gopolar/gg86/gg86.c b/keyboards/gopolar/gg86/gg86.c
index 3aa1d608a8..52e1434f00 100644
--- a/keyboards/gopolar/gg86/gg86.c
+++ b/keyboards/gopolar/gg86/gg86.c
@@ -25,6 +25,37 @@
#include
#include
+led_config_t g_led_config = { {
+ { 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, NO_LED, 74, 73, 72 },
+ { 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71 },
+ { 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38 },
+ { 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, NO_LED, 37, NO_LED, NO_LED, NO_LED },
+ { 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, NO_LED, 10, NO_LED },
+ { 0, 1, 2, NO_LED, NO_LED, 3, NO_LED, NO_LED, NO_LED, NO_LED, 4, 5, 6, NO_LED, 7, 8, 9 }
+}, {
+ // Key matrix (0 -> 87)
+ {3 , 64}, {19 , 64}, {36 , 64}, {91 , 64}, {146, 64}, {162, 64}, {179, 64}, {198, 64}, {211, 64}, {224, 64},
+ {211, 52}, {182, 52}, {170, 52}, {146, 52}, {133, 52}, {120, 52}, {107, 52}, {94 , 52}, {81 , 52}, {68 , 52}, {55 , 52}, {42 , 52}, {29 , 52}, {16 , 52}, {2 , 52},
+ {2 , 41}, {23 , 41}, {36 , 41}, {49 , 41}, {62 , 41}, {75 , 41}, {88 , 41}, {101, 41}, {114, 41}, {127, 41}, {140, 41}, {153, 41}, {174, 41},
+ {224, 29}, {211, 29}, {198, 29}, {179, 29}, {162, 29}, {149, 29}, {136, 29}, {123, 29}, {110, 29}, {97 , 29}, {84 , 29}, {71 , 29}, {58 , 29}, {45 , 29}, {32 , 29}, {19 , 29}, {3 , 29},
+ {0 , 17}, {13 , 17}, {26 , 17}, {39 , 17}, {52 , 17}, {65 , 17}, {78 , 17}, {91 , 17}, {104, 17}, {117, 17}, {130, 17}, {143, 17}, {156, 17}, {175, 17}, {198, 17}, {211, 17}, {224, 17},
+ {224, 0}, {211, 0}, {198, 0}, {182, 0}, {169, 0}, {156, 0}, {143, 0}, {123, 0}, {110, 0}, {97 , 0}, {84 , 0}, {65 , 0}, {52 , 0}, {39 , 0}, {26 , 0}, {0 , 0},
+
+ // Underglow (88 -> 99)
+ {1 , 6}, {50 , 6}, {89 , 6}, {135, 6}, {176, 6}, {198, 6}, {221, 55}, {192, 58}, {138, 59}, {96 , 61}, {42 , 59}, {7 , 60},
+}, {
+ // Key matrix (0 -> 87)
+ 1, 1, 1, 4, 1, 1, 1, 4, 4, 4,
+ 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4,
+ 4, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+
+ // Underglow (88 -> 99)
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
+} };
+
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QK_RGB_MATRIX_TOGGLE:
@@ -83,7 +114,7 @@ bool rgb_matrix_indicators_kb(void) {
#endif
#ifdef OLED_ENABLE
- uint16_t startup_timer;
+ uint16_t startup_timer;
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
startup_timer = timer_read();
@@ -98,7 +129,7 @@ bool rgb_matrix_indicators_kb(void) {
render_logo();
} else {
finished_logo = true;
-
+
if (!oled_task_user()) {
return false;
}
diff --git a/keyboards/gopolar/gg86/keyboard.json b/keyboards/gopolar/gg86/keyboard.json
index dc182f6977..3412a7c63c 100644
--- a/keyboards/gopolar/gg86/keyboard.json
+++ b/keyboards/gopolar/gg86/keyboard.json
@@ -59,108 +59,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [5, 0], "x": 3, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 19, "y": 64, "flags": 1},
- {"matrix": [5, 2], "x": 36, "y": 64, "flags": 1},
- {"matrix": [5, 5], "x": 91, "y": 64, "flags": 4},
- {"matrix": [5, 10], "x": 146, "y": 64, "flags": 1},
- {"matrix": [5, 11], "x": 162, "y": 64, "flags": 1},
- {"matrix": [5, 12], "x": 179, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 198, "y": 64, "flags": 4},
- {"matrix": [5, 15], "x": 211, "y": 64, "flags": 4},
- {"matrix": [5, 16], "x": 224, "y": 64, "flags": 4},
- {"matrix": [4, 15], "x": 211, "y": 52, "flags": 4},
- {"matrix": [4, 13], "x": 182, "y": 52, "flags": 1},
- {"matrix": [4, 12], "x": 170, "y": 52, "flags": 1},
- {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4},
- {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4},
- {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4},
- {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4},
- {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4},
- {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4},
- {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4},
- {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4},
- {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4},
- {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4},
- {"matrix": [4, 1], "x": 16, "y": 52, "flags": 4},
- {"matrix": [4, 0], "x": 2, "y": 52, "flags": 1},
- {"matrix": [3, 0], "x": 2, "y": 41, "flags": 8},
- {"matrix": [3, 1], "x": 23, "y": 41, "flags": 4},
- {"matrix": [3, 2], "x": 36, "y": 41, "flags": 4},
- {"matrix": [3, 3], "x": 49, "y": 41, "flags": 4},
- {"matrix": [3, 4], "x": 62, "y": 41, "flags": 4},
- {"matrix": [3, 5], "x": 75, "y": 41, "flags": 4},
- {"matrix": [3, 6], "x": 88, "y": 41, "flags": 4},
- {"matrix": [3, 7], "x": 101, "y": 41, "flags": 4},
- {"matrix": [3, 8], "x": 114, "y": 41, "flags": 4},
- {"matrix": [3, 9], "x": 127, "y": 41, "flags": 4},
- {"matrix": [3, 10], "x": 140, "y": 41, "flags": 4},
- {"matrix": [3, 11], "x": 153, "y": 41, "flags": 4},
- {"matrix": [3, 13], "x": 174, "y": 41, "flags": 1},
- {"matrix": [2, 16], "x": 224, "y": 29, "flags": 4},
- {"matrix": [2, 15], "x": 211, "y": 29, "flags": 4},
- {"matrix": [2, 14], "x": 198, "y": 29, "flags": 4},
- {"matrix": [2, 13], "x": 179, "y": 29, "flags": 4},
- {"matrix": [2, 12], "x": 162, "y": 29, "flags": 4},
- {"matrix": [2, 11], "x": 149, "y": 29, "flags": 4},
- {"matrix": [2, 10], "x": 136, "y": 29, "flags": 4},
- {"matrix": [2, 9], "x": 123, "y": 29, "flags": 4},
- {"matrix": [2, 8], "x": 110, "y": 29, "flags": 4},
- {"matrix": [2, 7], "x": 97, "y": 29, "flags": 4},
- {"matrix": [2, 6], "x": 84, "y": 29, "flags": 4},
- {"matrix": [2, 5], "x": 71, "y": 29, "flags": 4},
- {"matrix": [2, 4], "x": 58, "y": 29, "flags": 4},
- {"matrix": [2, 3], "x": 45, "y": 29, "flags": 4},
- {"matrix": [2, 2], "x": 32, "y": 29, "flags": 4},
- {"matrix": [2, 1], "x": 19, "y": 29, "flags": 4},
- {"matrix": [2, 0], "x": 3, "y": 29, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 17, "flags": 4},
- {"matrix": [1, 1], "x": 13, "y": 17, "flags": 4},
- {"matrix": [1, 2], "x": 26, "y": 17, "flags": 4},
- {"matrix": [1, 3], "x": 39, "y": 17, "flags": 4},
- {"matrix": [1, 4], "x": 52, "y": 17, "flags": 4},
- {"matrix": [1, 5], "x": 65, "y": 17, "flags": 4},
- {"matrix": [1, 6], "x": 78, "y": 17, "flags": 4},
- {"matrix": [1, 7], "x": 91, "y": 17, "flags": 4},
- {"matrix": [1, 8], "x": 104, "y": 17, "flags": 4},
- {"matrix": [1, 9], "x": 117, "y": 17, "flags": 4},
- {"matrix": [1, 10], "x": 130, "y": 17, "flags": 4},
- {"matrix": [1, 11], "x": 143, "y": 17, "flags": 4},
- {"matrix": [1, 12], "x": 156, "y": 17, "flags": 4},
- {"matrix": [1, 13], "x": 175, "y": 17, "flags": 1},
- {"matrix": [1, 14], "x": 198, "y": 17, "flags": 4},
- {"matrix": [1, 15], "x": 211, "y": 17, "flags": 4},
- {"matrix": [1, 16], "x": 224, "y": 17, "flags": 4},
- {"matrix": [0, 16], "x": 224, "y": 0, "flags": 4},
- {"matrix": [0, 15], "x": 211, "y": 0, "flags": 8},
- {"matrix": [0, 14], "x": 198, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 182, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 169, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 156, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 143, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 123, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 110, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 97, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 84, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 65, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 39, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 26, "y": 0, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"x": 1, "y": 6, "flags": 2},
- {"x": 50, "y": 6, "flags": 2},
- {"x": 89, "y": 6, "flags": 2},
- {"x": 135, "y": 6, "flags": 2},
- {"x": 176, "y": 6, "flags": 2},
- {"x": 198, "y": 6, "flags": 2},
- {"x": 221, "y": 55, "flags": 2},
- {"x": 192, "y": 58, "flags": 2},
- {"x": 138, "y": 59, "flags": 2},
- {"x": 96, "y": 61, "flags": 2},
- {"x": 42, "y": 59, "flags": 2},
- {"x": 7, "y": 60, "flags": 2}
- ],
"max_brightness": 150
},
"matrix_pins": {
diff --git a/keyboards/hadron/ver3/keyboard.json b/keyboards/hadron/ver3/keyboard.json
index 525b15df80..f3e4bba06f 100644
--- a/keyboards/hadron/ver3/keyboard.json
+++ b/keyboards/hadron/ver3/keyboard.json
@@ -3,19 +3,7 @@
"device_version": "0.0.3"
},
"rgb_matrix": {
- "driver": "ws2812",
- "layout": [
- {"matrix": [1, 13], "x": 195, "y": 3, "flags": 4},
- {"matrix": [4, 13], "x": 195, "y": 16, "flags": 4},
- {"matrix": [4, 10], "x": 150, "y": 16, "flags": 4},
- {"matrix": [4, 7], "x": 105, "y": 16, "flags": 4},
- {"matrix": [4, 4], "x": 60, "y": 16, "flags": 4},
- {"matrix": [4, 1], "x": 15, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 15, "y": 3, "flags": 4},
- {"matrix": [1, 4], "x": 60, "y": 3, "flags": 4},
- {"matrix": [1, 7], "x": 105, "y": 3, "flags": 4},
- {"matrix": [1, 10], "x": 150, "y": 3, "flags": 4}
- ]
+ "driver": "ws2812"
},
"matrix_pins": {
"cols": ["B8", "B2", "B10", "A0", "A1", "A2", "B0", "A3", "B1", "A6", "A7", "B12", "C13", "B11", "B9"],
diff --git a/keyboards/hadron/ver3/ver3.c b/keyboards/hadron/ver3/ver3.c
index 212aa15725..d337fd9681 100644
--- a/keyboards/hadron/ver3/ver3.c
+++ b/keyboards/hadron/ver3/ver3.c
@@ -15,6 +15,24 @@
*/
#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+#include "rgb_matrix.h"
+
+led_config_t g_led_config = { {
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, 6, NO_LED, NO_LED, 7, NO_LED, NO_LED, 8, NO_LED, NO_LED, 9, NO_LED, NO_LED, 0, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, 5, NO_LED, NO_LED, 4, NO_LED, NO_LED, 3, NO_LED, NO_LED, 2, NO_LED, NO_LED, 1, NO_LED }
+}, {
+ { 195, 3 }, { 195, 16 }, { 150, 16 }, { 105, 16 }, { 60, 16 }, { 15, 16 }, { 15, 3 }, { 60, 3 }, { 105, 3 }, { 150, 3 }
+}, {
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
+} };
+
+#endif
+
#ifdef OLED_ENABLE
oled_rotation_t oled_init_kb(oled_rotation_t rotation) { return OLED_ROTATION_180; }
diff --git a/keyboards/handwired/alcor_dactyl/config.h b/keyboards/handwired/alcor_dactyl/config.h
index 3da8cebf4d..42c45acdbf 100644
--- a/keyboards/handwired/alcor_dactyl/config.h
+++ b/keyboards/handwired/alcor_dactyl/config.h
@@ -3,6 +3,26 @@
#pragma once
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U
+
#define SERIAL_USART_FULL_DUPLEX
#define SERIAL_USART_TX_PIN GP10
#define SERIAL_USART_RX_PIN GP9
diff --git a/keyboards/handwired/colorlice/colorlice.c b/keyboards/handwired/colorlice/colorlice.c
new file mode 100644
index 0000000000..81e87d8c7a
--- /dev/null
+++ b/keyboards/handwired/colorlice/colorlice.c
@@ -0,0 +1,39 @@
+/* Copyright 2019 marhalloweenvt
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
+ { 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, NO_LED },
+ { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, NO_LED, 44, NO_LED },
+ { 58, 57, 56, 55, 54, 53, NO_LED, 52, 51, 50, 49, 48, 47, 46, 45, NO_LED},
+ { 59, NO_LED, 60, 61, 62, NO_LED, NO_LED,63, NO_LED, NO_LED, 64, 65,66,67, 68, NO_LED }
+}, {
+ { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 195, 0 }, { 210, 0 }, { 224, 0 },
+ { 224, 16 }, { 210, 16 }, { 195, 16 }, { 180, 16 }, { 165, 16 }, { 150, 16 }, { 135, 16 }, { 120, 16 }, { 90, 16 }, { 75, 16 }, { 60, 16 }, { 45, 16 }, { 30, 16 }, { 15, 16 }, { 0, 16 },
+ { 0, 32 }, { 15, 32 }, { 30, 32 }, { 45, 32 }, { 60, 32 }, { 75, 32 }, { 90, 32 }, { 135, 32 }, { 150, 32 }, { 165, 32 }, { 180, 32 }, { 195, 32 }, { 210, 32 }, { 224, 32 },
+ { 225, 48 }, { 224, 48 }, { 210, 48 }, { 195, 48 }, { 180, 48 }, { 165, 48 }, { 150, 48 }, { 135, 48 }, { 90, 48 }, { 75, 48 }, { 60, 48 }, { 45, 48 }, { 30, 48 }, { 15, 48 },
+ { 15, 64 }, { 45, 64 }, { 75, 64 }, { 90, 64 }, { 150, 64 }, { 180, 64 }, { 210, 64 }, { 215, 64 }, { 220, 64 }, { 225, 64 }
+}, {
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
+} };
+#endif
diff --git a/keyboards/handwired/colorlice/keyboard.json b/keyboards/handwired/colorlice/keyboard.json
index 5780f012d5..b2606afb89 100644
--- a/keyboards/handwired/colorlice/keyboard.json
+++ b/keyboards/handwired/colorlice/keyboard.json
@@ -57,77 +57,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 195, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 210, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
- {"matrix": [1, 13], "x": 210, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 195, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 180, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 165, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 150, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 135, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 90, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 75, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 60, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 45, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 30, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 15, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1},
- {"matrix": [2, 1], "x": 15, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 30, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 45, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 60, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 75, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 90, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 135, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 150, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 165, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 180, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 195, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 210, "y": 32, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
- {"matrix": [3, 13], "x": 224, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 210, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 195, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 180, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 165, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 150, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 135, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 90, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 75, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 60, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 45, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 30, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 15, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 15, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 45, "y": 64, "flags": 1},
- {"matrix": [4, 3], "x": 75, "y": 64, "flags": 1},
- {"matrix": [4, 4], "x": 90, "y": 64, "flags": 1},
- {"matrix": [4, 7], "x": 150, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 180, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 210, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 215, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 220, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
- ],
"led_flush_limit": 26,
"led_process_limit": 4,
"sleep": true
diff --git a/keyboards/handwired/dactyl_manuform_pi_pico/config.h b/keyboards/handwired/dactyl_manuform_pi_pico/config.h
index 9b5e919b1b..c622149a4a 100644
--- a/keyboards/handwired/dactyl_manuform_pi_pico/config.h
+++ b/keyboards/handwired/dactyl_manuform_pi_pico/config.h
@@ -2,7 +2,8 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
-
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U
#define SERIAL_USART_FULL_DUPLEX
#define SERIAL_USART_TX_PIN GP9
#define SERIAL_USART_RX_PIN GP8
diff --git a/keyboards/handwired/dygma/raise/ansi/ansi.c b/keyboards/handwired/dygma/raise/ansi/ansi.c
index de2b9dedf6..67b84c3bc8 100644
--- a/keyboards/handwired/dygma/raise/ansi/ansi.c
+++ b/keyboards/handwired/dygma/raise/ansi/ansi.c
@@ -38,3 +38,44 @@ const uint8_t led_map[RGB_MATRIX_LED_COUNT] = {
34 + LPH, 35 + LPH, 36 + LPH, 37 + LPH, 38 + LPH, 39 + LPH, 40 + LPH, 41 + LPH, 42 + LPH, 43 + LPH, 44 + LPH, 45 + LPH, 46 + LPH, 47 + LPH, 48 + LPH, 49 + LPH, 50 + LPH, 51 + LPH,
52 + LPH, 53 + LPH, 54 + LPH, 55 + LPH, 56 + LPH, 57 + LPH, 58 + LPH, 59 + LPH, 60 + LPH, 61 + LPH, 62 + LPH, 63 + LPH, 64 + LPH, 65 + LPH, 0xff
};
+
+// taken from "key_led_map" and reformatted
+// ISO & ANSI (ANSI has no LED at 20, but this key can never be pressed so we can have just one map).
+led_config_t g_led_config = { {
+ // left hand
+ { 0 , 1 , 2 , 3 , 4 , 5 , 6 , NO_LED } ,
+ { 7 , 8 , 9 , 10 , 11 , 12 , NO_LED , NO_LED } ,
+ { 13 , 14 , 15 , 16 , 17 , 18 , NO_LED , NO_LED } ,
+ { 19 , 20 , 21 , 22 , 23 , 24 , 25 , NO_LED } ,
+ { 26 , 27 , 28 , 29 , 30 , NO_LED , 31 , 32 } ,
+
+ // right hand
+ { 33 , 34 , 35 , 36 , 37 , 38 , 39 , NO_LED } ,
+ { 40 , 41 , 42 , 43 , 44 , 45 , 46 , 47 } ,
+ { 48 , 49 , 50 , 51 , 52 , 53 , 54 , NO_LED } ,
+ { 55 , 56 , 57 , 58 , 59 , 60 , NO_LED , NO_LED } ,
+ { 61 , 62 , 63 , 64 , 65 , 66 , 67 , 68 }
+ }, {
+ // generated from the svg image of the keyboard, see create-led-config.js
+ {82, 3}, {88, 3}, {94, 3}, {100, 3}, {106, 3}, {112, 3}, {118, 3}, {84, 10}, {91, 10}, {97, 10}, {103, 10}, {109, 10},
+ {115, 10}, {84, 16}, {92, 16}, {98, 16}, {104, 16}, {110, 16}, {116, 16}, {85, 22},
+ {0, 0},
+ {94, 22}, {100, 22}, {106, 22}, {112, 22}, {118, 22}, {83, 28}, {90, 28}, {98, 28}, {106, 28}, {116, 28}, {111, 34},
+ {118, 34}, {168, 3}, {159, 3}, {153, 3}, {147, 3}, {141, 3}, {135, 3}, {129, 3}, {168, 16}, {162, 10}, {156, 10},
+ {150, 10}, {144, 10}, {139, 10}, {133, 10}, {127, 10}, {170, 10}, {159, 16}, {153, 16}, {147, 16}, {141, 16}, {135, 16},
+ {129, 16}, {166, 22}, {154, 22}, {148, 22}, {142, 22}, {136, 22}, {130, 22}, {170, 28}, {163, 28}, {156, 28}, {149, 28},
+ {140, 28}, {131, 28}, {136, 34}, {128, 34}, {78, 13}, {78, 6}, {80, 0}, {87, 0}, {95, 0}, {103, 0}, {111, 0}, {119, 0},
+ {122, 3}, {121, 9}, {120, 15}, {122, 21}, {123, 27}, {123, 33}, {120, 38}, {116, 42}, {114, 48}, {112, 55}, {109, 61},
+ {103, 64}, {96, 64}, {88, 64}, {81, 63}, {76, 60}, {75, 52}, {75, 46}, {74, 38}, {74, 32}, {75, 27}, {77, 21}, {175, 10},
+ {175, 4}, {172, 0}, {164, 0}, {157, 0}, {149, 0}, {142, 0}, {134, 0}, {127, 0}, {123, 3}, {122, 8}, {122, 15}, {124, 21},
+ {124, 27}, {124, 33}, {126, 38}, {131, 42}, {134, 48}, {135, 55}, {137, 61}, {143, 63}, {150, 63}, {158, 63}, {166, 63},
+ {173, 63}, {177, 59}, {178, 49}, {179, 40}, {179, 31}, {177, 25}, {175, 20}, {175, 15}, {123, 54}
+ }, {
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 0,
+ 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4
+ }
+};
diff --git a/keyboards/handwired/dygma/raise/ansi/keyboard.json b/keyboards/handwired/dygma/raise/ansi/keyboard.json
index 703ae91244..9abe98fdfa 100644
--- a/keyboards/handwired/dygma/raise/ansi/keyboard.json
+++ b/keyboards/handwired/dygma/raise/ansi/keyboard.json
@@ -6,142 +6,6 @@
"rgb_matrix": true,
"raw": true
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 82, "y": 3, "flags": 4},
- {"matrix": [0, 1], "x": 88, "y": 3, "flags": 4},
- {"matrix": [0, 2], "x": 94, "y": 3, "flags": 4},
- {"matrix": [0, 3], "x": 100, "y": 3, "flags": 4},
- {"matrix": [0, 4], "x": 106, "y": 3, "flags": 4},
- {"matrix": [0, 5], "x": 112, "y": 3, "flags": 4},
- {"matrix": [0, 6], "x": 118, "y": 3, "flags": 4},
- {"matrix": [1, 0], "x": 84, "y": 10, "flags": 4},
- {"matrix": [1, 1], "x": 91, "y": 10, "flags": 4},
- {"matrix": [1, 2], "x": 97, "y": 10, "flags": 4},
- {"matrix": [1, 3], "x": 103, "y": 10, "flags": 4},
- {"matrix": [1, 4], "x": 109, "y": 10, "flags": 4},
- {"matrix": [1, 5], "x": 115, "y": 10, "flags": 4},
- {"matrix": [2, 0], "x": 84, "y": 16, "flags": 4},
- {"matrix": [2, 1], "x": 92, "y": 16, "flags": 4},
- {"matrix": [2, 2], "x": 98, "y": 16, "flags": 4},
- {"matrix": [2, 3], "x": 104, "y": 16, "flags": 4},
- {"matrix": [2, 4], "x": 110, "y": 16, "flags": 4},
- {"matrix": [2, 5], "x": 116, "y": 16, "flags": 4},
- {"matrix": [3, 0], "x": 85, "y": 22, "flags": 4},
- {"matrix": [3, 1], "x": 0, "y": 0, "flags": 0},
- {"matrix": [3, 2], "x": 94, "y": 22, "flags": 4},
- {"matrix": [3, 3], "x": 100, "y": 22, "flags": 4},
- {"matrix": [3, 4], "x": 106, "y": 22, "flags": 4},
- {"matrix": [3, 5], "x": 112, "y": 22, "flags": 4},
- {"matrix": [3, 6], "x": 118, "y": 22, "flags": 4},
- {"matrix": [4, 0], "x": 83, "y": 28, "flags": 4},
- {"matrix": [4, 1], "x": 90, "y": 28, "flags": 4},
- {"matrix": [4, 2], "x": 98, "y": 28, "flags": 4},
- {"matrix": [4, 3], "x": 106, "y": 28, "flags": 4},
- {"matrix": [4, 4], "x": 116, "y": 28, "flags": 4},
- {"matrix": [4, 6], "x": 111, "y": 34, "flags": 4},
- {"matrix": [4, 7], "x": 118, "y": 34, "flags": 4},
- {"matrix": [5, 0], "x": 168, "y": 3, "flags": 4},
- {"matrix": [5, 1], "x": 159, "y": 3, "flags": 4},
- {"matrix": [5, 2], "x": 153, "y": 3, "flags": 4},
- {"matrix": [5, 3], "x": 147, "y": 3, "flags": 4},
- {"matrix": [5, 4], "x": 141, "y": 3, "flags": 4},
- {"matrix": [5, 5], "x": 135, "y": 3, "flags": 4},
- {"matrix": [5, 6], "x": 129, "y": 3, "flags": 4},
- {"matrix": [6, 0], "x": 168, "y": 16, "flags": 4},
- {"matrix": [6, 1], "x": 162, "y": 10, "flags": 4},
- {"matrix": [6, 2], "x": 156, "y": 10, "flags": 4},
- {"matrix": [6, 3], "x": 150, "y": 10, "flags": 4},
- {"matrix": [6, 4], "x": 144, "y": 10, "flags": 4},
- {"matrix": [6, 5], "x": 139, "y": 10, "flags": 4},
- {"matrix": [6, 6], "x": 133, "y": 10, "flags": 4},
- {"matrix": [6, 7], "x": 127, "y": 10, "flags": 4},
- {"matrix": [7, 0], "x": 170, "y": 10, "flags": 4},
- {"matrix": [7, 1], "x": 159, "y": 16, "flags": 4},
- {"matrix": [7, 2], "x": 153, "y": 16, "flags": 4},
- {"matrix": [7, 3], "x": 147, "y": 16, "flags": 4},
- {"matrix": [7, 4], "x": 141, "y": 16, "flags": 4},
- {"matrix": [7, 5], "x": 135, "y": 16, "flags": 4},
- {"matrix": [7, 6], "x": 129, "y": 16, "flags": 4},
- {"matrix": [8, 0], "x": 166, "y": 22, "flags": 4},
- {"matrix": [8, 1], "x": 154, "y": 22, "flags": 4},
- {"matrix": [8, 2], "x": 148, "y": 22, "flags": 4},
- {"matrix": [8, 3], "x": 142, "y": 22, "flags": 4},
- {"matrix": [8, 4], "x": 136, "y": 22, "flags": 4},
- {"matrix": [8, 5], "x": 130, "y": 22, "flags": 4},
- {"matrix": [9, 0], "x": 170, "y": 28, "flags": 4},
- {"matrix": [9, 1], "x": 163, "y": 28, "flags": 4},
- {"matrix": [9, 2], "x": 156, "y": 28, "flags": 4},
- {"matrix": [9, 3], "x": 149, "y": 28, "flags": 4},
- {"matrix": [9, 4], "x": 140, "y": 28, "flags": 4},
- {"matrix": [9, 5], "x": 131, "y": 28, "flags": 4},
- {"matrix": [9, 6], "x": 136, "y": 34, "flags": 4},
- {"matrix": [9, 7], "x": 128, "y": 34, "flags": 4},
- {"x": 78, "y": 13, "flags": 2},
- {"x": 78, "y": 6, "flags": 2},
- {"x": 80, "y": 0, "flags": 2},
- {"x": 87, "y": 0, "flags": 2},
- {"x": 95, "y": 0, "flags": 2},
- {"x": 103, "y": 0, "flags": 2},
- {"x": 111, "y": 0, "flags": 2},
- {"x": 119, "y": 0, "flags": 2},
- {"x": 122, "y": 3, "flags": 2},
- {"x": 121, "y": 9, "flags": 2},
- {"x": 120, "y": 15, "flags": 2},
- {"x": 122, "y": 21, "flags": 2},
- {"x": 123, "y": 27, "flags": 2},
- {"x": 123, "y": 33, "flags": 2},
- {"x": 120, "y": 38, "flags": 2},
- {"x": 116, "y": 42, "flags": 2},
- {"x": 114, "y": 48, "flags": 2},
- {"x": 112, "y": 55, "flags": 2},
- {"x": 109, "y": 61, "flags": 2},
- {"x": 103, "y": 64, "flags": 2},
- {"x": 96, "y": 64, "flags": 2},
- {"x": 88, "y": 64, "flags": 2},
- {"x": 81, "y": 63, "flags": 2},
- {"x": 76, "y": 60, "flags": 2},
- {"x": 75, "y": 52, "flags": 2},
- {"x": 75, "y": 46, "flags": 2},
- {"x": 74, "y": 38, "flags": 2},
- {"x": 74, "y": 32, "flags": 2},
- {"x": 75, "y": 27, "flags": 2},
- {"x": 77, "y": 21, "flags": 2},
- {"x": 175, "y": 10, "flags": 2},
- {"x": 175, "y": 4, "flags": 2},
- {"x": 172, "y": 0, "flags": 2},
- {"x": 164, "y": 0, "flags": 2},
- {"x": 157, "y": 0, "flags": 2},
- {"x": 149, "y": 0, "flags": 2},
- {"x": 142, "y": 0, "flags": 2},
- {"x": 134, "y": 0, "flags": 2},
- {"x": 127, "y": 0, "flags": 2},
- {"x": 123, "y": 3, "flags": 2},
- {"x": 122, "y": 8, "flags": 2},
- {"x": 122, "y": 15, "flags": 2},
- {"x": 124, "y": 21, "flags": 2},
- {"x": 124, "y": 27, "flags": 2},
- {"x": 124, "y": 33, "flags": 2},
- {"x": 126, "y": 38, "flags": 2},
- {"x": 131, "y": 42, "flags": 2},
- {"x": 134, "y": 48, "flags": 2},
- {"x": 135, "y": 55, "flags": 2},
- {"x": 137, "y": 61, "flags": 2},
- {"x": 143, "y": 63, "flags": 2},
- {"x": 150, "y": 63, "flags": 2},
- {"x": 158, "y": 63, "flags": 2},
- {"x": 166, "y": 63, "flags": 2},
- {"x": 173, "y": 63, "flags": 2},
- {"x": 177, "y": 59, "flags": 2},
- {"x": 178, "y": 49, "flags": 2},
- {"x": 179, "y": 40, "flags": 2},
- {"x": 179, "y": 31, "flags": 2},
- {"x": 177, "y": 25, "flags": 2},
- {"x": 175, "y": 20, "flags": 2},
- {"x": 175, "y": 15, "flags": 2},
- {"x": 123, "y": 54, "flags": 4}
- ]
- },
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/handwired/dygma/raise/iso/iso.c b/keyboards/handwired/dygma/raise/iso/iso.c
index 247a9646df..9643af7b8c 100644
--- a/keyboards/handwired/dygma/raise/iso/iso.c
+++ b/keyboards/handwired/dygma/raise/iso/iso.c
@@ -38,3 +38,42 @@ const uint8_t led_map[RGB_MATRIX_LED_COUNT] = {
34 + LPH, 35 + LPH, 36 + LPH, 37 + LPH, 38 + LPH, 39 + LPH, 40 + LPH, 41 + LPH, 42 + LPH, 43 + LPH, 44 + LPH, 45 + LPH, 46 + LPH, 47 + LPH, 48 + LPH, 49 + LPH, 50 + LPH, 51 + LPH,
52 + LPH, 53 + LPH, 54 + LPH, 55 + LPH, 56 + LPH, 57 + LPH, 58 + LPH, 59 + LPH, 60 + LPH, 61 + LPH, 62 + LPH, 63 + LPH, 64 + LPH, 65 + LPH, 0xff
};
+
+// taken from "key_led_map" and reformatted
+// ISO & ANSI (ANSI has no LED at 20, but this key can never be pressed so we can have just one map).
+led_config_t g_led_config = { {
+ // left hand
+ { 0 , 1 , 2 , 3 , 4 , 5 , 6 , NO_LED } ,
+ { 7 , 8 , 9 , 10 , 11 , 12 , NO_LED , NO_LED } ,
+ { 13 , 14 , 15 , 16 , 17 , 18 , NO_LED , NO_LED } ,
+ { 19 , 20 , 21 , 22 , 23 , 24 , 25 , NO_LED } ,
+ { 26 , 27 , 28 , 29 , 30 , NO_LED , 31 , 32 } ,
+
+ // right hand
+ { 33 , 34 , 35 , 36 , 37 , 38 , 39 , NO_LED } ,
+ { 40 , 41 , 42 , 43 , 44 , 45 , 46 , 47 } ,
+ { 48 , 49 , 50 , 51 , 52 , 53 , 54 , NO_LED } ,
+ { 55 , 56 , 57 , 58 , 59 , 60 , NO_LED , NO_LED } ,
+ { 61 , 62 , 63 , 64 , 65 , 66 , 67 , 68 }
+ }, {
+ // generated from the svg image of the keyboard, see create-led-config.js
+ {82, 3}, {88, 3}, {94, 3}, {100, 3}, {106, 3}, {112, 3}, {118, 3}, {84, 10}, {91, 10}, {97, 10}, {103, 10}, {109, 10},
+ {115, 10}, {84, 16}, {92, 16}, {98, 16}, {104, 16}, {110, 16}, {116, 16}, {82, 22}, {88, 22}, {94, 22}, {100, 22},
+ {106, 22}, {112, 22}, {118, 22}, {83, 28}, {90, 28}, {98, 28}, {106, 28}, {116, 28}, {111, 34}, {118, 34}, {168, 3},
+ {159, 3}, {153, 3}, {147, 3}, {141, 3}, {135, 3}, {129, 3}, {170, 13}, {162, 10}, {156, 10}, {150, 10}, {144, 10},
+ {139, 10}, {133, 10}, {127, 10}, {164, 16}, {158, 16}, {152, 16}, {146, 16}, {140, 16}, {134, 16}, {128, 16}, {166, 22},
+ {154, 22}, {148, 22}, {142, 22}, {136, 22}, {130, 22}, {170, 28}, {163, 28}, {156, 28}, {149, 28}, {140, 28}, {131, 28},
+ {136, 34}, {128, 34}, {78, 13}, {78, 6}, {80, 0}, {87, 0}, {95, 0}, {103, 0}, {111, 0}, {119, 0}, {122, 3}, {121, 9},
+ {120, 15}, {122, 21}, {123, 27}, {123, 33}, {120, 38}, {116, 42}, {114, 48}, {112, 55}, {109, 61}, {103, 64}, {96, 64},
+ {88, 64}, {81, 63}, {76, 60}, {75, 52}, {75, 46}, {74, 38}, {74, 32}, {75, 27}, {77, 21}, {175, 10}, {175, 4}, {172, 0},
+ {164, 0}, {157, 0}, {149, 0}, {142, 0}, {134, 0}, {127, 0}, {123, 3}, {122, 8}, {122, 15}, {124, 21}, {124, 27}, {124, 33},
+ {126, 38}, {131, 42}, {134, 48}, {135, 55}, {137, 61}, {143, 63}, {150, 63}, {158, 63}, {166, 63}, {173, 63}, {177, 59},
+ {178, 49}, {179, 40}, {179, 31}, {177, 25}, {175, 20}, {175, 15}, {123, 54}
+
+ }, {
+ 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, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4
+ }
+};
diff --git a/keyboards/handwired/dygma/raise/iso/keyboard.json b/keyboards/handwired/dygma/raise/iso/keyboard.json
index 057851bd8c..9abe98fdfa 100644
--- a/keyboards/handwired/dygma/raise/iso/keyboard.json
+++ b/keyboards/handwired/dygma/raise/iso/keyboard.json
@@ -6,142 +6,6 @@
"rgb_matrix": true,
"raw": true
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 82, "y": 3, "flags": 4},
- {"matrix": [0, 1], "x": 88, "y": 3, "flags": 4},
- {"matrix": [0, 2], "x": 94, "y": 3, "flags": 4},
- {"matrix": [0, 3], "x": 100, "y": 3, "flags": 4},
- {"matrix": [0, 4], "x": 106, "y": 3, "flags": 4},
- {"matrix": [0, 5], "x": 112, "y": 3, "flags": 4},
- {"matrix": [0, 6], "x": 118, "y": 3, "flags": 4},
- {"matrix": [1, 0], "x": 84, "y": 10, "flags": 4},
- {"matrix": [1, 1], "x": 91, "y": 10, "flags": 4},
- {"matrix": [1, 2], "x": 97, "y": 10, "flags": 4},
- {"matrix": [1, 3], "x": 103, "y": 10, "flags": 4},
- {"matrix": [1, 4], "x": 109, "y": 10, "flags": 4},
- {"matrix": [1, 5], "x": 115, "y": 10, "flags": 4},
- {"matrix": [2, 0], "x": 84, "y": 16, "flags": 4},
- {"matrix": [2, 1], "x": 92, "y": 16, "flags": 4},
- {"matrix": [2, 2], "x": 98, "y": 16, "flags": 4},
- {"matrix": [2, 3], "x": 104, "y": 16, "flags": 4},
- {"matrix": [2, 4], "x": 110, "y": 16, "flags": 4},
- {"matrix": [2, 5], "x": 116, "y": 16, "flags": 4},
- {"matrix": [3, 0], "x": 82, "y": 22, "flags": 4},
- {"matrix": [3, 1], "x": 88, "y": 22, "flags": 4},
- {"matrix": [3, 2], "x": 94, "y": 22, "flags": 4},
- {"matrix": [3, 3], "x": 100, "y": 22, "flags": 4},
- {"matrix": [3, 4], "x": 106, "y": 22, "flags": 4},
- {"matrix": [3, 5], "x": 112, "y": 22, "flags": 4},
- {"matrix": [3, 6], "x": 118, "y": 22, "flags": 4},
- {"matrix": [4, 0], "x": 83, "y": 28, "flags": 4},
- {"matrix": [4, 1], "x": 90, "y": 28, "flags": 4},
- {"matrix": [4, 2], "x": 98, "y": 28, "flags": 4},
- {"matrix": [4, 3], "x": 106, "y": 28, "flags": 4},
- {"matrix": [4, 4], "x": 116, "y": 28, "flags": 4},
- {"matrix": [4, 6], "x": 111, "y": 34, "flags": 4},
- {"matrix": [4, 7], "x": 118, "y": 34, "flags": 4},
- {"matrix": [5, 0], "x": 168, "y": 3, "flags": 4},
- {"matrix": [5, 1], "x": 159, "y": 3, "flags": 4},
- {"matrix": [5, 2], "x": 153, "y": 3, "flags": 4},
- {"matrix": [5, 3], "x": 147, "y": 3, "flags": 4},
- {"matrix": [5, 4], "x": 141, "y": 3, "flags": 4},
- {"matrix": [5, 5], "x": 135, "y": 3, "flags": 4},
- {"matrix": [5, 6], "x": 129, "y": 3, "flags": 4},
- {"matrix": [6, 0], "x": 170, "y": 13, "flags": 4},
- {"matrix": [6, 1], "x": 162, "y": 10, "flags": 4},
- {"matrix": [6, 2], "x": 156, "y": 10, "flags": 4},
- {"matrix": [6, 3], "x": 150, "y": 10, "flags": 4},
- {"matrix": [6, 4], "x": 144, "y": 10, "flags": 4},
- {"matrix": [6, 5], "x": 139, "y": 10, "flags": 4},
- {"matrix": [6, 6], "x": 133, "y": 10, "flags": 4},
- {"matrix": [6, 7], "x": 127, "y": 10, "flags": 4},
- {"matrix": [7, 0], "x": 164, "y": 16, "flags": 4},
- {"matrix": [7, 1], "x": 158, "y": 16, "flags": 4},
- {"matrix": [7, 2], "x": 152, "y": 16, "flags": 4},
- {"matrix": [7, 3], "x": 146, "y": 16, "flags": 4},
- {"matrix": [7, 4], "x": 140, "y": 16, "flags": 4},
- {"matrix": [7, 5], "x": 134, "y": 16, "flags": 4},
- {"matrix": [7, 6], "x": 128, "y": 16, "flags": 4},
- {"matrix": [8, 0], "x": 166, "y": 22, "flags": 4},
- {"matrix": [8, 1], "x": 154, "y": 22, "flags": 4},
- {"matrix": [8, 2], "x": 148, "y": 22, "flags": 4},
- {"matrix": [8, 3], "x": 142, "y": 22, "flags": 4},
- {"matrix": [8, 4], "x": 136, "y": 22, "flags": 4},
- {"matrix": [8, 5], "x": 130, "y": 22, "flags": 4},
- {"matrix": [9, 0], "x": 170, "y": 28, "flags": 4},
- {"matrix": [9, 1], "x": 163, "y": 28, "flags": 4},
- {"matrix": [9, 2], "x": 156, "y": 28, "flags": 4},
- {"matrix": [9, 3], "x": 149, "y": 28, "flags": 4},
- {"matrix": [9, 4], "x": 140, "y": 28, "flags": 4},
- {"matrix": [9, 5], "x": 131, "y": 28, "flags": 4},
- {"matrix": [9, 6], "x": 136, "y": 34, "flags": 4},
- {"matrix": [9, 7], "x": 128, "y": 34, "flags": 4},
- {"x": 78, "y": 13, "flags": 2},
- {"x": 78, "y": 6, "flags": 2},
- {"x": 80, "y": 0, "flags": 2},
- {"x": 87, "y": 0, "flags": 2},
- {"x": 95, "y": 0, "flags": 2},
- {"x": 103, "y": 0, "flags": 2},
- {"x": 111, "y": 0, "flags": 2},
- {"x": 119, "y": 0, "flags": 2},
- {"x": 122, "y": 3, "flags": 2},
- {"x": 121, "y": 9, "flags": 2},
- {"x": 120, "y": 15, "flags": 2},
- {"x": 122, "y": 21, "flags": 2},
- {"x": 123, "y": 27, "flags": 2},
- {"x": 123, "y": 33, "flags": 2},
- {"x": 120, "y": 38, "flags": 2},
- {"x": 116, "y": 42, "flags": 2},
- {"x": 114, "y": 48, "flags": 2},
- {"x": 112, "y": 55, "flags": 2},
- {"x": 109, "y": 61, "flags": 2},
- {"x": 103, "y": 64, "flags": 2},
- {"x": 96, "y": 64, "flags": 2},
- {"x": 88, "y": 64, "flags": 2},
- {"x": 81, "y": 63, "flags": 2},
- {"x": 76, "y": 60, "flags": 2},
- {"x": 75, "y": 52, "flags": 2},
- {"x": 75, "y": 46, "flags": 2},
- {"x": 74, "y": 38, "flags": 2},
- {"x": 74, "y": 32, "flags": 2},
- {"x": 75, "y": 27, "flags": 2},
- {"x": 77, "y": 21, "flags": 2},
- {"x": 175, "y": 10, "flags": 2},
- {"x": 175, "y": 4, "flags": 2},
- {"x": 172, "y": 0, "flags": 2},
- {"x": 164, "y": 0, "flags": 2},
- {"x": 157, "y": 0, "flags": 2},
- {"x": 149, "y": 0, "flags": 2},
- {"x": 142, "y": 0, "flags": 2},
- {"x": 134, "y": 0, "flags": 2},
- {"x": 127, "y": 0, "flags": 2},
- {"x": 123, "y": 3, "flags": 2},
- {"x": 122, "y": 8, "flags": 2},
- {"x": 122, "y": 15, "flags": 2},
- {"x": 124, "y": 21, "flags": 2},
- {"x": 124, "y": 27, "flags": 2},
- {"x": 124, "y": 33, "flags": 2},
- {"x": 126, "y": 38, "flags": 2},
- {"x": 131, "y": 42, "flags": 2},
- {"x": 134, "y": 48, "flags": 2},
- {"x": 135, "y": 55, "flags": 2},
- {"x": 137, "y": 61, "flags": 2},
- {"x": 143, "y": 63, "flags": 2},
- {"x": 150, "y": 63, "flags": 2},
- {"x": 158, "y": 63, "flags": 2},
- {"x": 166, "y": 63, "flags": 2},
- {"x": 173, "y": 63, "flags": 2},
- {"x": 177, "y": 59, "flags": 2},
- {"x": 178, "y": 49, "flags": 2},
- {"x": 179, "y": 40, "flags": 2},
- {"x": 179, "y": 31, "flags": 2},
- {"x": 177, "y": 25, "flags": 2},
- {"x": 175, "y": 20, "flags": 2},
- {"x": 175, "y": 15, "flags": 2},
- {"x": 123, "y": 54, "flags": 4}
- ]
- },
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/handwired/hnah108/hnah108.c b/keyboards/handwired/hnah108/hnah108.c
new file mode 100644
index 0000000000..fde7b16564
--- /dev/null
+++ b/keyboards/handwired/hnah108/hnah108.c
@@ -0,0 +1,47 @@
+/* Copyright 2019 HnahKB
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 18, 17, 16, NO_LED, 15, 14, NO_LED, NO_LED, 13, 12, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { 19, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { 20, NO_LED, NO_LED, NO_LED, NO_LED, 24, NO_LED, NO_LED, 26, NO_LED, NO_LED },
+ { 21, 22, 23, 25, 27, NO_LED, 28, 29, NO_LED, 0, 1 },
+ { 11, 10, NO_LED, 9, NO_LED, 8, NO_LED, 7, 6, NO_LED, 5 },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 4 },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 3 },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 2 }
+ }, {
+ // LED Index to Physical Position
+ { 0, 0 }, { 18, 0 }, { 37, 0 }, { 56, 0 }, { 74, 0 }, { 93, 0 }, { 112, 0 }, { 130, 0 }, { 149, 0 }, { 168, 0 }, { 186, 0 }, { 205, 0 }, { 224, 0 },
+ { 0, 25 }, { 224, 25 },
+ { 0, 51 }, { 224, 51 },
+ { 0, 63 }, { 18, 63 }, { 37, 63 }, { 56, 63 }, { 74, 63 }, { 93, 63 }, { 112, 63 }, { 130, 63 }, { 149, 63 }, { 168, 63 }, { 186, 63 }, { 205, 63 }, { 224, 63 }
+ }, {
+ // LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1,
+ 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
+ }
+};
+#endif
diff --git a/keyboards/handwired/hnah108/keyboard.json b/keyboards/handwired/hnah108/keyboard.json
index 808fd9eb24..a02a70173c 100644
--- a/keyboards/handwired/hnah108/keyboard.json
+++ b/keyboards/handwired/hnah108/keyboard.json
@@ -51,39 +51,7 @@
"solid_splash": true,
"solid_multisplash": true
},
- "driver": "ws2812",
- "layout": [
- {"matrix": [5, 9], "x": 0, "y": 0, "flags": 1},
- {"matrix": [5, 10], "x": 18, "y": 0, "flags": 1},
- {"matrix": [9, 10], "x": 37, "y": 0, "flags": 1},
- {"matrix": [8, 10], "x": 56, "y": 0, "flags": 1},
- {"matrix": [7, 10], "x": 74, "y": 0, "flags": 1},
- {"matrix": [6, 10], "x": 93, "y": 0, "flags": 1},
- {"matrix": [6, 8], "x": 112, "y": 0, "flags": 1},
- {"matrix": [6, 7], "x": 130, "y": 0, "flags": 1},
- {"matrix": [6, 5], "x": 149, "y": 0, "flags": 1},
- {"matrix": [6, 3], "x": 168, "y": 0, "flags": 1},
- {"matrix": [6, 1], "x": 186, "y": 0, "flags": 1},
- {"matrix": [6, 0], "x": 205, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 224, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 0, "y": 25, "flags": 1},
- {"matrix": [0, 5], "x": 224, "y": 25, "flags": 1},
- {"matrix": [0, 4], "x": 0, "y": 51, "flags": 1},
- {"matrix": [0, 2], "x": 224, "y": 51, "flags": 1},
- {"matrix": [0, 1], "x": 0, "y": 63, "flags": 1},
- {"matrix": [0, 0], "x": 18, "y": 63, "flags": 1},
- {"matrix": [2, 0], "x": 37, "y": 63, "flags": 1},
- {"matrix": [4, 0], "x": 56, "y": 63, "flags": 1},
- {"matrix": [5, 0], "x": 74, "y": 63, "flags": 1},
- {"matrix": [5, 1], "x": 93, "y": 63, "flags": 1},
- {"matrix": [5, 2], "x": 112, "y": 63, "flags": 1},
- {"matrix": [4, 5], "x": 130, "y": 63, "flags": 1},
- {"matrix": [5, 3], "x": 149, "y": 63, "flags": 1},
- {"matrix": [4, 8], "x": 168, "y": 63, "flags": 1},
- {"matrix": [5, 4], "x": 186, "y": 63, "flags": 1},
- {"matrix": [5, 6], "x": 205, "y": 63, "flags": 1},
- {"matrix": [5, 7], "x": 224, "y": 63, "flags": 1}
- ]
+ "driver": "ws2812"
},
"features": {
"backlight": true,
diff --git a/keyboards/handwired/hnah40rgb/hnah40rgb.c b/keyboards/handwired/hnah40rgb/hnah40rgb.c
new file mode 100644
index 0000000000..1f877975e5
--- /dev/null
+++ b/keyboards/handwired/hnah40rgb/hnah40rgb.c
@@ -0,0 +1,47 @@
+#include "quantum.h"
+#ifdef RGB_MATRIX_ENABLE
+#if defined (ansi)
+led_config_t g_led_config = { {
+ //Key Matrix to LED Index
+ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10},
+ {22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12 },
+ {23, 24, 25, 26, 27, 28, 29, 30, 31, NO_LED, 34},
+ {43, 42, 41, NO_LED, NO_LED, NO_LED, 38, NO_LED, 36, 35, 11}
+}, {
+ //LED Index to Physical Positon
+ { 0, 0}, { 20, 0}, { 40, 0 }, { 61, 0 }, { 81, 0}, { 101, 0}, { 122, 0}, { 142, 0}, { 162, 0}, { 183, 0}, { 224, 0}, { 224, 0},
+ {224, 21}, {183, 21}, {162,21 }, {142, 21}, {122,21}, { 101,21}, { 81 ,21}, { 61 ,21}, { 40 ,21}, { 20 ,21}, { 0 ,21},
+ { 0, 42}, { 20, 42}, { 40,42 }, { 61, 42}, { 81,42}, { 101,42}, { 122,42}, { 142,42}, { 162,42}, { 183,42}, { 224,42},
+ {224, 64}, {224, 64}, {181,64 }, {162, 64}, {122,64}, {101,64}, { 61,64}, { 40,64}, { 20,64}, { 0,64},
+ { 0,64}, { 0,0}, { 224,10}, { 224,18}, { 224,30}, { 224,47},
+}, {
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1,
+} };
+
+#else
+led_config_t g_led_config = { {
+ //Key Matrix to LED Index
+ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10},
+ {22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12 },
+ {23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34},
+ {43, 42, 41, NO_LED, 40, 39, 38, 37, 36, 35, 11}
+}, {
+ //LED Index to Physical Positon
+ { 0, 0}, { 20, 0}, { 40, 0 }, { 61, 0 }, { 81, 0}, { 101, 0}, { 122, 0}, { 142, 0}, { 162, 0}, { 183, 0}, { 224, 0}, { 224, 0},
+ {224, 21}, {183, 21}, {162,21 }, {142, 21}, {122,21}, { 101,21}, { 81 ,21}, { 61 ,21}, { 40 ,21}, { 20 ,21}, { 0 ,21},
+ { 0, 42}, { 20, 42}, { 40,42 }, { 61, 42}, { 81,42}, { 101,42}, { 122,42}, { 142,42}, { 162,42}, { 183,42}, { 224,42},
+ {224, 64}, {224, 64}, {181,64 }, {162, 64}, {122,64}, {101,64}, { 61,64}, { 40,64}, { 20,64}, { 0,64},
+ { 0,64}, { 0,0}, { 224,10}, { 224,18}, { 224,30}, { 224,47},
+}, {
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1,
+} };
+#endif
+#endif
\ No newline at end of file
diff --git a/keyboards/handwired/hnah40rgb/keyboard.json b/keyboards/handwired/hnah40rgb/keyboard.json
index ec824ea14f..6f13b70095 100644
--- a/keyboards/handwired/hnah40rgb/keyboard.json
+++ b/keyboards/handwired/hnah40rgb/keyboard.json
@@ -60,58 +60,6 @@
"animation": "cycle_pinwheel"
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 81, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 101, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 122, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 142, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 162, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 183, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 224, "y": 0, "flags": 4},
- {"matrix": [3, 10], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 10], "x": 224, "y": 21, "flags": 1},
- {"matrix": [1, 9], "x": 183, "y": 21, "flags": 4},
- {"matrix": [1, 8], "x": 162, "y": 21, "flags": 4},
- {"matrix": [1, 7], "x": 142, "y": 21, "flags": 4},
- {"matrix": [1, 6], "x": 122, "y": 21, "flags": 4},
- {"matrix": [1, 5], "x": 101, "y": 21, "flags": 4},
- {"matrix": [1, 4], "x": 81, "y": 21, "flags": 4},
- {"matrix": [1, 3], "x": 61, "y": 21, "flags": 4},
- {"matrix": [1, 2], "x": 40, "y": 21, "flags": 4},
- {"matrix": [1, 1], "x": 20, "y": 21, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1},
- {"matrix": [2, 0], "x": 0, "y": 42, "flags": 1},
- {"matrix": [2, 1], "x": 20, "y": 42, "flags": 4},
- {"matrix": [2, 2], "x": 40, "y": 42, "flags": 4},
- {"matrix": [2, 3], "x": 61, "y": 42, "flags": 4},
- {"matrix": [2, 4], "x": 81, "y": 42, "flags": 4},
- {"matrix": [2, 5], "x": 101, "y": 42, "flags": 4},
- {"matrix": [2, 6], "x": 122, "y": 42, "flags": 4},
- {"matrix": [2, 7], "x": 142, "y": 42, "flags": 4},
- {"matrix": [2, 8], "x": 162, "y": 42, "flags": 4},
- {"matrix": [2, 9], "x": 183, "y": 42, "flags": 4},
- {"x": 224, "y": 42, "flags": 1},
- {"matrix": [2, 10], "x": 224, "y": 64, "flags": 1},
- {"matrix": [3, 9], "x": 224, "y": 64, "flags": 1},
- {"matrix": [3, 8], "x": 181, "y": 64, "flags": 1},
- {"matrix": [3, 7], "x": 162, "y": 64, "flags": 1},
- {"matrix": [3, 6], "x": 122, "y": 64, "flags": 1},
- {"matrix": [3, 5], "x": 101, "y": 64, "flags": 1},
- {"matrix": [3, 4], "x": 61, "y": 64, "flags": 1},
- {"matrix": [3, 2], "x": 40, "y": 64, "flags": 1},
- {"matrix": [3, 1], "x": 20, "y": 64, "flags": 1},
- {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1},
- {"x": 0, "y": 64, "flags": 1},
- {"x": 0, "y": 0, "flags": 1},
- {"x": 224, "y": 10, "flags": 1},
- {"x": 224, "y": 18, "flags": 1},
- {"x": 224, "y": 30, "flags": 1},
- {"x": 224, "y": 47, "flags": 1}
- ],
"max_brightness": 200,
"react_on_keyup": true
},
diff --git a/keyboards/durgod/dgk6x/venus_iso/config.h b/keyboards/handwired/hnah40rgb/keymaps/ansi/config.h
similarity index 90%
rename from keyboards/durgod/dgk6x/venus_iso/config.h
rename to keyboards/handwired/hnah40rgb/keymaps/ansi/config.h
index f23b355905..66cd76a901 100644
--- a/keyboards/durgod/dgk6x/venus_iso/config.h
+++ b/keyboards/handwired/hnah40rgb/keymaps/ansi/config.h
@@ -1,4 +1,4 @@
-/* Copyright 2021 Jessica Sullivan and Don Kjer
+/* Copyright 2019 HnahKB
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -15,5 +15,4 @@
*/
#pragma once
-
-#define CAPS_LED 29
+#define ansi
\ No newline at end of file
diff --git a/keyboards/handwired/onekey/nucleo_f446re/board.h b/keyboards/handwired/onekey/nucleo_f446re/board.h
index 54c93c551a..0c5f4dde79 100644
--- a/keyboards/handwired/onekey/nucleo_f446re/board.h
+++ b/keyboards/handwired/onekey/nucleo_f446re/board.h
@@ -4,5 +4,6 @@
#include_next
-// Configure clocks to use onboard STLINKs MCO as HSE is not populated by default
+#undef STM32_HSECLK
+#define STM32_HSECLK 8000000U
#define STM32_HSE_BYPASS
diff --git a/keyboards/handwired/onekey/nucleo_f446re/mcuconf.h b/keyboards/handwired/onekey/nucleo_f446re/mcuconf.h
index ba463bf4f7..701d61d31d 100644
--- a/keyboards/handwired/onekey/nucleo_f446re/mcuconf.h
+++ b/keyboards/handwired/onekey/nucleo_f446re/mcuconf.h
@@ -4,6 +4,12 @@
#include_next
+#undef STM32_PLLM_VALUE
+#define STM32_PLLM_VALUE 4
+
+#undef STM32_PLLSAIM_VALUE
+#define STM32_PLLSAIM_VALUE 4
+
#undef STM32_ADC_USE_ADC1
#define STM32_ADC_USE_ADC1 TRUE
diff --git a/keyboards/handwired/onekey/nucleo_f446re/readme.md b/keyboards/handwired/onekey/nucleo_f446re/readme.md
index 71a5e48184..b0645b65fe 100644
--- a/keyboards/handwired/onekey/nucleo_f446re/readme.md
+++ b/keyboards/handwired/onekey/nucleo_f446re/readme.md
@@ -1,4 +1,4 @@
-# STM32 Nucleo-F446 onekey
+# STM32 Nucleo-L432 onekey
To trigger keypress, short together pins *A0* and *A1*. Note that the pin numbering is relative to the MCU, so that A0 and A1 refer to PA0 and PA1 on the MCU (which are also labelled A0 and A1 on the board, but this isn't true for the other PAx pins).
diff --git a/keyboards/handwired/orbweaver/keyboard.json b/keyboards/handwired/orbweaver/keyboard.json
index 0061c79ba2..73baa9a21d 100644
--- a/keyboards/handwired/orbweaver/keyboard.json
+++ b/keyboards/handwired/orbweaver/keyboard.json
@@ -12,29 +12,8 @@
"rgb_matrix": true
},
"rgb_matrix": {
- "driver": "is31fl3731",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"x": 56, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 168, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 224, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 0, "y": 20, "flags": 4},
- {"matrix": [1, 0], "x": 56, "y": 20, "flags": 4},
- {"matrix": [1, 1], "x": 112, "y": 20, "flags": 4},
- {"matrix": [1, 2], "x": 168, "y": 20, "flags": 4},
- {"matrix": [1, 3], "x": 224, "y": 20, "flags": 4},
- {"matrix": [1, 4], "x": 0, "y": 40, "flags": 4},
- {"matrix": [2, 0], "x": 56, "y": 40, "flags": 4},
- {"matrix": [2, 1], "x": 112, "y": 40, "flags": 4},
- {"matrix": [2, 2], "x": 168, "y": 40, "flags": 4},
- {"matrix": [2, 3], "x": 224, "y": 40, "flags": 4},
- {"matrix": [2, 4], "x": 0, "y": 60, "flags": 4},
- {"matrix": [3, 0], "x": 56, "y": 60, "flags": 4},
- {"matrix": [3, 1], "x": 112, "y": 60, "flags": 4},
- {"matrix": [3, 2], "x": 168, "y": 60, "flags": 4},
- {"matrix": [3, 4], "x": 224, "y": 60, "flags": 4}
- ]
+ "center_point": [40, 30],
+ "driver": "is31fl3731"
},
"matrix_pins": {
"rows": ["GP4", "GP5", "GP6", "GP7", "GP8", "GP9"],
diff --git a/keyboards/handwired/orbweaver/orbweaver.c b/keyboards/handwired/orbweaver/orbweaver.c
index 8c23818eea..f89d1ca363 100644
--- a/keyboards/handwired/orbweaver/orbweaver.c
+++ b/keyboards/handwired/orbweaver/orbweaver.c
@@ -15,10 +15,10 @@
//
// SPDX-License-Identifier: GPL-2.0-or-later
-// This IS31FL3731 configuration is for a Razer Orbweaver Chroma.
-// It was reverse-engineered by testing all possible Cx_y combinations (144 total),
+// This IS31FL3731 configuration is for a Razer Orbweaver Chroma.
+// It was reverse-engineered by testing all possible Cx_y combinations (144 total),
// and determining which ones addressed individual diodes (60 total). These were then
-// placed in order R-G-B, sweeping left to right, and then top to bottom.
+// placed in order R-G-B, sweeping left to right, and then top to bottom.
#include "rgb_matrix.h"
@@ -30,24 +30,55 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
* | | | B location
* | | | | */
{0, C9_1, C8_1, C7_1}, //top left key.
- {0, C9_2, C8_2, C7_2},
+ {0, C9_2, C8_2, C7_2},
{0, C9_3, C8_3, C7_3},
{0, C9_4, C8_4, C7_4},
- {0, C9_5, C8_5, C7_5}, //top right key.
+ {0, C9_5, C8_5, C7_5}, //top right key.
{0, C9_6, C8_6, C7_6},
- {0, C9_7, C8_7, C6_6},
+ {0, C9_7, C8_7, C6_6},
{0, C9_8, C7_7, C6_7},
- {0, C1_8, C2_8, C3_8},
+ {0, C1_8, C2_8, C3_8},
{0, C1_7, C2_7, C3_7},
{0, C1_6, C2_6, C3_6},
- {0, C1_5, C2_5, C3_5},
- {0, C1_4, C2_4, C3_4},
- {0, C1_3, C2_3, C3_3},
+ {0, C1_5, C2_5, C3_5},
+ {0, C1_4, C2_4, C3_4},
+ {0, C1_3, C2_3, C3_3},
{0, C1_2, C2_2, C4_3},
{0, C1_1, C3_2, C4_2}, //lower left key
- {0, C9_9, C8_9, C7_9},
+ {0, C9_9, C8_9, C7_9},
{0, C9_10, C8_10, C7_10},
{0, C9_11, C8_11, C7_11},
{0, C9_12, C8_12, C7_12} //lower right key
};
+
+led_config_t g_led_config = {
+ // Matrix location to LED index
+ {
+ { 0, 2, 3, 4, 5 },
+ { 6, 7, 8, 9, 10 },
+ { 11, 12, 13, 14, 15 },
+ { 16, 17, 18, 19, 19 },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }
+ },
+
+ // LED index to physical location
+ {
+ {0,0}, {20,0}, {40,0}, {60,0}, {80,0},
+ {0,20}, {20,20}, {40,20}, {60,20}, {80,20},
+ {0,40}, {20,40}, {40,40}, {60,40}, {80,40},
+ {0,60}, {20,60}, {40,60}, {60,60}, {80,60}
+ },
+
+ // LED index to flags
+ {
+ 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4
+ }
+ };
+
+
+
diff --git a/keyboards/handwired/tractyl_manuform/4x6_right/4x6_right.c b/keyboards/handwired/tractyl_manuform/4x6_right/4x6_right.c
index f678db94d8..298060bcb4 100644
--- a/keyboards/handwired/tractyl_manuform/4x6_right/4x6_right.c
+++ b/keyboards/handwired/tractyl_manuform/4x6_right/4x6_right.c
@@ -16,6 +16,39 @@
#include "tractyl_manuform.h"
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ { 24, 23, 18, 17, 10, 9 },
+ { 25, 22, 19, 16, 11, 8 },
+ { 26, 21, 20, 15, 12, 7 },
+ { NO_LED, NO_LED, NO_LED, 14, 13, 6 },
+ { NO_LED, NO_LED, NO_LED, 14, 13, 6 },
+ { 51, 50, 45, 44, 37, 36 },
+ { 52, 49, 46, 43, 38, 35 },
+ { 53, 48, 47, 42, 39, 34 },
+ { NO_LED, NO_LED, NO_LED, 41, 40, 33 },
+ { NO_LED, NO_LED, NO_LED, 41, 40, 33 }
+}, {
+ { 85, 16 }, { 50, 13 }, { 16, 20 }, { 16, 38 }, { 50, 48 }, { 85, 52 }, { 95, 63 },
+ { 85, 39 }, { 85, 21 }, { 85, 4 }, { 68, 2 }, { 68, 19 }, { 68, 37 }, { 80, 58 },
+ { 60, 55 }, { 50, 35 }, { 50, 13 }, { 50, 0 }, { 33, 3 }, { 33, 20 }, { 33, 37 },
+ { 16, 42 }, { 16, 24 }, { 16, 7 }, { 0, 7 }, { 0, 24 }, { 0, 41 }, { 139, 16 },
+ { 174, 13 }, { 208, 20 }, { 208, 38 }, { 174, 48 }, { 139, 52 }, { 129, 63 }, { 139, 39 },
+ { 139, 21 }, { 139, 4 }, { 156, 2 }, { 156, 19 }, { 156, 37 }, { 144, 58 }, { 164, 55 },
+ { 174, 35 }, { 174, 13 }, { 174, 0 }, { 191, 3 }, { 191, 20 }, { 191, 37 }, { 208, 42 },
+ { 208, 24 }, { 208, 7 }, { 224, 7 }, { 224, 24 }, { 224, 41 }
+}, {
+ 2, 2, 2, 2, 2, 2, 1,
+ 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 1, 1, 1, 2,
+ 2, 2, 2, 2, 2, 1, 4,
+ 4, 4, 4, 4, 4, 1, 1,
+ 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 1, 1, 1
+} };
+#endif
+
#ifdef SWAP_HANDS_ENABLE
const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
/* Left hand, matrix positions */
diff --git a/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json b/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json
index 8e5290006e..cc651bec95 100644
--- a/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json
+++ b/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json
@@ -7,62 +7,6 @@
},
"rgb_matrix": {
"driver": "ws2812",
- "layout": [
- {"x": 85, "y": 16, "flags": 2},
- {"x": 50, "y": 13, "flags": 2},
- {"x": 16, "y": 20, "flags": 2},
- {"x": 16, "y": 38, "flags": 2},
- {"x": 50, "y": 48, "flags": 2},
- {"x": 85, "y": 52, "flags": 2},
- {"matrix": [4, 5], "x": 95, "y": 63, "flags": 1},
- {"matrix": [2, 5], "x": 85, "y": 39, "flags": 4},
- {"matrix": [1, 5], "x": 85, "y": 21, "flags": 4},
- {"matrix": [0, 5], "x": 85, "y": 4, "flags": 4},
- {"matrix": [0, 4], "x": 68, "y": 2, "flags": 4},
- {"matrix": [1, 4], "x": 68, "y": 19, "flags": 4},
- {"matrix": [2, 4], "x": 68, "y": 37, "flags": 4},
- {"matrix": [4, 4], "x": 80, "y": 58, "flags": 1},
- {"matrix": [4, 3], "x": 60, "y": 55, "flags": 1},
- {"matrix": [2, 3], "x": 50, "y": 35, "flags": 4},
- {"matrix": [1, 3], "x": 50, "y": 13, "flags": 4},
- {"matrix": [0, 3], "x": 50, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 33, "y": 3, "flags": 4},
- {"matrix": [1, 2], "x": 33, "y": 20, "flags": 4},
- {"matrix": [2, 2], "x": 33, "y": 37, "flags": 4},
- {"matrix": [2, 1], "x": 16, "y": 42, "flags": 4},
- {"matrix": [1, 1], "x": 16, "y": 24, "flags": 4},
- {"matrix": [0, 1], "x": 16, "y": 7, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 7, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 24, "flags": 1},
- {"matrix": [2, 0], "x": 0, "y": 41, "flags": 1},
- {"x": 139, "y": 16, "flags": 2},
- {"x": 174, "y": 13, "flags": 2},
- {"x": 208, "y": 20, "flags": 2},
- {"x": 208, "y": 38, "flags": 2},
- {"x": 174, "y": 48, "flags": 2},
- {"x": 139, "y": 52, "flags": 2},
- {"matrix": [9, 5], "x": 129, "y": 63, "flags": 1},
- {"matrix": [7, 5], "x": 139, "y": 39, "flags": 4},
- {"matrix": [6, 5], "x": 139, "y": 21, "flags": 4},
- {"matrix": [5, 5], "x": 139, "y": 4, "flags": 4},
- {"matrix": [5, 4], "x": 156, "y": 2, "flags": 4},
- {"matrix": [6, 4], "x": 156, "y": 19, "flags": 4},
- {"matrix": [7, 4], "x": 156, "y": 37, "flags": 4},
- {"matrix": [9, 4], "x": 144, "y": 58, "flags": 1},
- {"matrix": [9, 3], "x": 164, "y": 55, "flags": 1},
- {"matrix": [7, 3], "x": 174, "y": 35, "flags": 4},
- {"matrix": [6, 3], "x": 174, "y": 13, "flags": 4},
- {"matrix": [5, 3], "x": 174, "y": 0, "flags": 4},
- {"matrix": [5, 2], "x": 191, "y": 3, "flags": 4},
- {"matrix": [6, 2], "x": 191, "y": 20, "flags": 4},
- {"matrix": [7, 2], "x": 191, "y": 37, "flags": 4},
- {"matrix": [7, 1], "x": 208, "y": 42, "flags": 4},
- {"matrix": [6, 1], "x": 208, "y": 24, "flags": 4},
- {"matrix": [5, 1], "x": 208, "y": 7, "flags": 4},
- {"matrix": [5, 0], "x": 224, "y": 7, "flags": 1},
- {"matrix": [6, 0], "x": 224, "y": 24, "flags": 1},
- {"matrix": [7, 0], "x": 224, "y": 41, "flags": 1}
- ],
"max_brightness": 80,
"sleep": true,
"split_count": [32, 30]
diff --git a/keyboards/hfdkb/ac001/ac001.c b/keyboards/hfdkb/ac001/ac001.c
new file mode 100644
index 0000000000..83dbdeb628
--- /dev/null
+++ b/keyboards/hfdkb/ac001/ac001.c
@@ -0,0 +1,36 @@
+/* Copyright (C) 2022 jonylee@hfd
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+/*
+ 3---------------2
+ | | |
+ | | |
+ 4-------0-------1
+*/
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4}
+}, {
+ // LED Index to Physical Position
+ { 64, 112 }, { 64, 224 }, { 224, 0 }, { 0, 0 }, { 64, 0 },
+
+}, {
+ // LED Index to Flag
+ 4, 4, 4, 4, 4
+} };
+#endif
diff --git a/keyboards/hfdkb/ac001/keyboard.json b/keyboards/hfdkb/ac001/keyboard.json
index ffb20e3c01..ee9aab074b 100644
--- a/keyboards/hfdkb/ac001/keyboard.json
+++ b/keyboards/hfdkb/ac001/keyboard.json
@@ -21,13 +21,6 @@
"multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 112, "y": 64, "flags": 4},
- {"matrix": [0, 1], "x": 224, "y": 64, "flags": 4},
- {"matrix": [0, 2], "x": 224, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 0, "y": 64, "flags": 4}
- ],
"react_on_keyup": true,
"sleep": true
},
diff --git a/keyboards/hhkb/jp/keyboard.json b/keyboards/hhkb/jp/keyboard.json
index 69bb681edf..b776b416ec 100644
--- a/keyboards/hhkb/jp/keyboard.json
+++ b/keyboards/hhkb/jp/keyboard.json
@@ -49,20 +49,20 @@
{"matrix": [15, 3], "x": 11.5, "y": 1},
{"matrix": [13, 3], "x": 12.5, "y": 1},
- {"matrix": [6, 6], "x": 0, "y": 2, "w": 1.75},
- {"matrix": [2, 6], "x": 1.75, "y": 2},
- {"matrix": [1, 6], "x": 2.75, "y": 2},
- {"matrix": [5, 6], "x": 3.75, "y": 2},
- {"matrix": [7, 6], "x": 4.75, "y": 2},
- {"matrix": [10, 6], "x": 5.75, "y": 2},
- {"matrix": [9, 6], "x": 6.75, "y": 2},
- {"matrix": [8, 6], "x": 7.75, "y": 2},
- {"matrix": [11, 6], "x": 8.75, "y": 2},
- {"matrix": [14, 6], "x": 9.75, "y": 2},
- {"matrix": [15, 6], "x": 10.75, "y": 2},
- {"matrix": [13, 6], "x": 11.75, "y": 2},
- {"matrix": [12, 6], "x": 12.75, "y": 2},
- {"matrix": [0, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+ {"matrix": [0, 6], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [6, 6], "x": 1.75, "y": 2},
+ {"matrix": [2, 6], "x": 2.75, "y": 2},
+ {"matrix": [1, 6], "x": 3.75, "y": 2},
+ {"matrix": [5, 6], "x": 4.75, "y": 2},
+ {"matrix": [7, 6], "x": 5.75, "y": 2},
+ {"matrix": [10, 6], "x": 6.75, "y": 2},
+ {"matrix": [9, 6], "x": 7.75, "y": 2},
+ {"matrix": [8, 6], "x": 8.75, "y": 2},
+ {"matrix": [11, 6], "x": 9.75, "y": 2},
+ {"matrix": [14, 6], "x": 10.75, "y": 2},
+ {"matrix": [15, 6], "x": 11.75, "y": 2},
+ {"matrix": [13, 6], "x": 12.75, "y": 2},
+ {"matrix": [12, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [0, 5], "x": 0, "y": 3, "w": 2},
{"matrix": [6, 5], "x": 2, "y": 3},
diff --git a/keyboards/horrortroll/chinese_pcb/devil68_pro/devil68_pro.c b/keyboards/horrortroll/chinese_pcb/devil68_pro/devil68_pro.c
new file mode 100644
index 0000000000..98a35e7483
--- /dev/null
+++ b/keyboards/horrortroll/chinese_pcb/devil68_pro/devil68_pro.c
@@ -0,0 +1,49 @@
+/* Copyright 2022 HorrorTroll
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, NO_LED, 13, 14 },
+ { 15, NO_LED, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
+ { 30, NO_LED, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, NO_LED, 43 },
+ { NO_LED, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, NO_LED, 55, 56, 57 },
+ { 58, 59, NO_LED, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 }
+}, {
+ // Key matrix (0 -> 67)
+ {0 , 0}, {15 , 0}, {30 , 0}, {45 , 0}, {60 , 0}, {75 , 0}, {90 , 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {202, 0}, {224, 0},
+ {3 , 16}, {21 , 16}, {36 , 16}, {51 , 16}, {66 , 16}, {81 , 16}, {96 , 16}, {111, 16}, {126, 16}, {141, 16}, {156, 16}, {171, 16}, {186, 16}, {205, 16}, {224, 16},
+ {5 , 32}, {25 , 32}, {40 , 32}, {55 , 32}, {70 , 32}, {85 , 32}, {100, 32}, {115, 32}, {130, 32}, {145, 32}, {160, 32}, {175, 32}, {200, 32}, {224, 32},
+ {8 , 48}, {31 , 48}, {46 , 48}, {61 , 48}, {76 , 48}, {91 , 48}, {106, 48}, {121, 48}, {136, 48}, {151, 48}, {166, 48}, {188, 48}, {210, 48}, {224, 48},
+ {2 , 64}, {19 , 64}, {36 , 64}, {96 , 64}, {149, 64}, {164, 64}, {179, 64}, {194, 64}, {209, 64}, {224, 64},
+
+ // Underglow (68 -> 85)
+ {210, 60}, {186, 12}, {158, 12}, {130, 12}, {101, 12}, {71 , 12}, {39 , 12}, {13 , 12}, {13 , 35},
+ {13 , 12}, {39 , 12}, {71 , 12}, {101, 12}, {130, 12}, {158, 12}, {186, 12}, {210, 12}, {210, 35},
+}, {
+ // Key matrix (0 -> 67)
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4,
+ 1, 1, 1, 4, 1, 1, 1, 4, 4, 4,
+
+ // Underglow (68 -> 85)
+ 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2
+} };
+#endif
diff --git a/keyboards/horrortroll/chinese_pcb/devil68_pro/keyboard.json b/keyboards/horrortroll/chinese_pcb/devil68_pro/keyboard.json
index 80cb05a3c2..250cceb3e7 100644
--- a/keyboards/horrortroll/chinese_pcb/devil68_pro/keyboard.json
+++ b/keyboards/horrortroll/chinese_pcb/devil68_pro/keyboard.json
@@ -59,94 +59,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 202, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 224, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 3, "y": 16, "flags": 1},
- {"matrix": [1, 2], "x": 21, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 36, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 51, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 66, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 81, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 96, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 111, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 126, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 141, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 156, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 171, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 186, "y": 16, "flags": 4},
- {"matrix": [1, 14], "x": 205, "y": 16, "flags": 4},
- {"matrix": [1, 15], "x": 224, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 5, "y": 32, "flags": 8},
- {"matrix": [2, 2], "x": 25, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 40, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 55, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 70, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 85, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 100, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 115, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 130, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 145, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 160, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 175, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 200, "y": 32, "flags": 1},
- {"matrix": [2, 15], "x": 224, "y": 32, "flags": 4},
- {"matrix": [3, 1], "x": 8, "y": 48, "flags": 1},
- {"matrix": [3, 2], "x": 31, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 46, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 61, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 76, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 91, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 106, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 121, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 136, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 151, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 166, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 188, "y": 48, "flags": 1},
- {"matrix": [3, 14], "x": 210, "y": 48, "flags": 4},
- {"matrix": [3, 15], "x": 224, "y": 48, "flags": 4},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 19, "y": 64, "flags": 1},
- {"matrix": [4, 3], "x": 36, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 149, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 164, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 179, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 194, "y": 64, "flags": 4},
- {"matrix": [4, 14], "x": 209, "y": 64, "flags": 4},
- {"matrix": [4, 15], "x": 224, "y": 64, "flags": 4},
- {"x": 210, "y": 60, "flags": 2},
- {"x": 186, "y": 12, "flags": 2},
- {"x": 158, "y": 12, "flags": 2},
- {"x": 130, "y": 12, "flags": 2},
- {"x": 101, "y": 12, "flags": 2},
- {"x": 71, "y": 12, "flags": 2},
- {"x": 39, "y": 12, "flags": 2},
- {"x": 13, "y": 12, "flags": 2},
- {"x": 13, "y": 35, "flags": 2},
- {"x": 13, "y": 12, "flags": 2},
- {"x": 39, "y": 12, "flags": 2},
- {"x": 71, "y": 12, "flags": 2},
- {"x": 101, "y": 12, "flags": 2},
- {"x": 130, "y": 12, "flags": 2},
- {"x": 158, "y": 12, "flags": 2},
- {"x": 186, "y": 12, "flags": 2},
- {"x": 210, "y": 12, "flags": 2},
- {"x": 210, "y": 35, "flags": 2}
- ],
"max_brightness": 200
},
"features": {
diff --git a/keyboards/hotdox76v2/hotdox76v2.c b/keyboards/hotdox76v2/hotdox76v2.c
index 022bd92a1f..e60777703e 100644
--- a/keyboards/hotdox76v2/hotdox76v2.c
+++ b/keyboards/hotdox76v2/hotdox76v2.c
@@ -8,6 +8,56 @@
#include "oled_font_lib/logo2.h"
#include "oled_font_lib/ext_font.h"
+
+#ifdef RGB_MATRIX_ENABLE
+// clang-format off
+led_config_t g_led_config = {
+ {
+ { NO_LED, 34, 33, 32, 35, 37, 36 },
+ { 27, 28, 29, 30, 31, NO_LED, NO_LED },
+ { 26, 25, 24, 23, 22, 21, 20 },
+ { 14, 15, 16, 17, 18, 19, NO_LED },
+ { 13, 12, 11, 10, 9, 8, 7 },
+ { 0, 1, 2, 3, 4, 5, 6 },
+ /*right*/
+ { NO_LED, 77, 76, 75, 78, 80, 79 },
+ { 70, 71, 72, 73, 74, NO_LED, NO_LED },
+ { 69, 68, 67, 66, 65, 64, 63 },
+ { 57, 58, 59, 60, 61, 62, NO_LED },
+ { 56, 55, 54, 53, 52, 51, 50 },
+ { 43, 44, 45, 46, 47, 48, 49 }
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {17,0}, {34,0}, {52,0}, {69,0}, {86,0}, {103,0},
+ {103,13}, {86,13}, {69,13}, {52,13}, {34,13}, {17,13}, {0,13},
+ {0,26}, {17,26}, {34,26}, {52,26}, {69,26}, {86,26},
+ {103,38}, {86,38}, {69,38}, {52,38}, {34,38}, {17,38}, {0,38},
+ {0,51}, {17,51}, {34,51}, {52,51}, {69,51},
+ {86,64}, {69,64}, {52,64}, {34,64}, {17,64}, {0,64},
+ {69,64}, {52,64}, {34,64}, {17,64}, {0,64},
+
+ {224,0}, {207,0}, {190,0}, {172,0}, {155,0}, {138,0}, {121,0},
+ {121,13}, {138,13}, {155,13}, {172,13}, {190,13}, {207,13}, {224,13},
+ {224,26}, {207,26}, {190,26}, {172,26}, {155,26}, {138,26},
+ {121,38}, {138,38}, {155,38}, {172,38}, {190,38}, {207,38}, {224,38},
+ {224,51}, {207,51}, {190,51}, {172,51}, {155,51},
+ {138,64}, {155,64}, {172,64}, {190,64}, {207,64}, {224,64},
+ {155,64}, {172,64}, {190,64}, {207,64}, {224,64}
+
+
+ },
+ {
+ // LED Index to Flag
+ 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,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 2,2,2,2,2,
+ 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,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 2,2,2,2,2
+ }
+};
+// clang-format on
+#endif
+
#ifdef OLED_ENABLE
# define UNC (' ')
diff --git a/keyboards/hotdox76v2/keyboard.json b/keyboards/hotdox76v2/keyboard.json
index cb70bdefee..8881670b56 100644
--- a/keyboards/hotdox76v2/keyboard.json
+++ b/keyboards/hotdox76v2/keyboard.json
@@ -24,94 +24,6 @@
},
"center_point": [112, 32],
"driver": "ws2812",
- "layout": [
- {"matrix": [5, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [5, 1], "x": 17, "y": 0, "flags": 4},
- {"matrix": [5, 2], "x": 34, "y": 0, "flags": 4},
- {"matrix": [5, 3], "x": 52, "y": 0, "flags": 4},
- {"matrix": [5, 4], "x": 69, "y": 0, "flags": 4},
- {"matrix": [5, 5], "x": 86, "y": 0, "flags": 4},
- {"matrix": [5, 6], "x": 103, "y": 0, "flags": 4},
- {"matrix": [4, 6], "x": 103, "y": 13, "flags": 4},
- {"matrix": [4, 5], "x": 86, "y": 13, "flags": 4},
- {"matrix": [4, 4], "x": 69, "y": 13, "flags": 4},
- {"matrix": [4, 3], "x": 52, "y": 13, "flags": 4},
- {"matrix": [4, 2], "x": 34, "y": 13, "flags": 4},
- {"matrix": [4, 1], "x": 17, "y": 13, "flags": 4},
- {"matrix": [4, 0], "x": 0, "y": 13, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 26, "flags": 4},
- {"matrix": [3, 1], "x": 17, "y": 26, "flags": 4},
- {"matrix": [3, 2], "x": 34, "y": 26, "flags": 4},
- {"matrix": [3, 3], "x": 52, "y": 26, "flags": 4},
- {"matrix": [3, 4], "x": 69, "y": 26, "flags": 4},
- {"matrix": [3, 5], "x": 86, "y": 26, "flags": 4},
- {"matrix": [2, 6], "x": 103, "y": 38, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 38, "flags": 4},
- {"matrix": [2, 4], "x": 69, "y": 38, "flags": 4},
- {"matrix": [2, 3], "x": 52, "y": 38, "flags": 4},
- {"matrix": [2, 2], "x": 34, "y": 38, "flags": 4},
- {"matrix": [2, 1], "x": 17, "y": 38, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 38, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 51, "flags": 4},
- {"matrix": [1, 1], "x": 17, "y": 51, "flags": 4},
- {"matrix": [1, 2], "x": 34, "y": 51, "flags": 4},
- {"matrix": [1, 3], "x": 52, "y": 51, "flags": 4},
- {"matrix": [1, 4], "x": 69, "y": 51, "flags": 4},
- {"matrix": [0, 3], "x": 86, "y": 64, "flags": 4},
- {"matrix": [0, 2], "x": 69, "y": 64, "flags": 4},
- {"matrix": [0, 1], "x": 52, "y": 64, "flags": 4},
- {"matrix": [0, 4], "x": 34, "y": 64, "flags": 4},
- {"matrix": [0, 6], "x": 17, "y": 64, "flags": 4},
- {"matrix": [0, 5], "x": 0, "y": 64, "flags": 4},
- {"x": 69, "y": 64, "flags": 2},
- {"x": 52, "y": 64, "flags": 2},
- {"x": 34, "y": 64, "flags": 2},
- {"x": 17, "y": 64, "flags": 2},
- {"x": 0, "y": 64, "flags": 2},
- {"matrix": [11, 0], "x": 224, "y": 0, "flags": 4},
- {"matrix": [11, 1], "x": 207, "y": 0, "flags": 4},
- {"matrix": [11, 2], "x": 190, "y": 0, "flags": 4},
- {"matrix": [11, 3], "x": 172, "y": 0, "flags": 4},
- {"matrix": [11, 4], "x": 155, "y": 0, "flags": 4},
- {"matrix": [11, 5], "x": 138, "y": 0, "flags": 4},
- {"matrix": [11, 6], "x": 121, "y": 0, "flags": 4},
- {"matrix": [10, 6], "x": 121, "y": 13, "flags": 4},
- {"matrix": [10, 5], "x": 138, "y": 13, "flags": 4},
- {"matrix": [10, 4], "x": 155, "y": 13, "flags": 4},
- {"matrix": [10, 3], "x": 172, "y": 13, "flags": 4},
- {"matrix": [10, 2], "x": 190, "y": 13, "flags": 4},
- {"matrix": [10, 1], "x": 207, "y": 13, "flags": 4},
- {"matrix": [10, 0], "x": 224, "y": 13, "flags": 4},
- {"matrix": [9, 0], "x": 224, "y": 26, "flags": 4},
- {"matrix": [9, 1], "x": 207, "y": 26, "flags": 4},
- {"matrix": [9, 2], "x": 190, "y": 26, "flags": 4},
- {"matrix": [9, 3], "x": 172, "y": 26, "flags": 4},
- {"matrix": [9, 4], "x": 155, "y": 26, "flags": 4},
- {"matrix": [9, 5], "x": 138, "y": 26, "flags": 4},
- {"matrix": [8, 6], "x": 121, "y": 38, "flags": 4},
- {"matrix": [8, 5], "x": 138, "y": 38, "flags": 4},
- {"matrix": [8, 4], "x": 155, "y": 38, "flags": 4},
- {"matrix": [8, 3], "x": 172, "y": 38, "flags": 4},
- {"matrix": [8, 2], "x": 190, "y": 38, "flags": 4},
- {"matrix": [8, 1], "x": 207, "y": 38, "flags": 4},
- {"matrix": [8, 0], "x": 224, "y": 38, "flags": 4},
- {"matrix": [7, 0], "x": 224, "y": 51, "flags": 4},
- {"matrix": [7, 1], "x": 207, "y": 51, "flags": 4},
- {"matrix": [7, 2], "x": 190, "y": 51, "flags": 4},
- {"matrix": [7, 3], "x": 172, "y": 51, "flags": 4},
- {"matrix": [7, 4], "x": 155, "y": 51, "flags": 4},
- {"matrix": [6, 3], "x": 138, "y": 64, "flags": 4},
- {"matrix": [6, 2], "x": 155, "y": 64, "flags": 4},
- {"matrix": [6, 1], "x": 172, "y": 64, "flags": 4},
- {"matrix": [6, 4], "x": 190, "y": 64, "flags": 4},
- {"matrix": [6, 6], "x": 207, "y": 64, "flags": 4},
- {"matrix": [6, 5], "x": 224, "y": 64, "flags": 4},
- {"x": 155, "y": 64, "flags": 2},
- {"x": 172, "y": 64, "flags": 2},
- {"x": 190, "y": 64, "flags": 2},
- {"x": 207, "y": 64, "flags": 2},
- {"x": 224, "y": 64, "flags": 2}
- ],
"max_brightness": 150,
"sleep": true,
"split_count": [43, 43]
diff --git a/keyboards/ibm/model_m/yacobo/keyboard.json b/keyboards/ibm/model_m/yacobo/keyboard.json
index 7ea9c6a621..dd88ac5cd4 100644
--- a/keyboards/ibm/model_m/yacobo/keyboard.json
+++ b/keyboards/ibm/model_m/yacobo/keyboard.json
@@ -153,7 +153,7 @@
{"label": "\u2193", "matrix": [7, 11], "x": 16.5, "y": 5.5},
{"label": "\u2192", "matrix": [7, 12], "x": 17.5, "y": 5.5},
- {"label": "0", "matrix": [0, 11], "x": 19, "y": 5.5, "w": 2},
+ {"label": "0", "matrix": [0, 12], "x": 19, "y": 5.5, "w": 2},
{"label": ".", "matrix": [0, 13], "x": 21, "y": 5.5}
]
},
@@ -277,7 +277,7 @@
{"label": "\u2193", "matrix": [7, 11], "x": 16.5, "y": 5.5},
{"label": "\u2192", "matrix": [7, 12], "x": 17.5, "y": 5.5},
- {"label": "0", "matrix": [0, 11], "x": 19, "y": 5.5, "w": 2},
+ {"label": "0", "matrix": [0, 12], "x": 19, "y": 5.5, "w": 2},
{"label": ".", "matrix": [0, 13], "x": 21, "y": 5.5}
]
}
diff --git a/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/mcuconf.h b/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/mcuconf.h
deleted file mode 100644
index 0e89bead66..0000000000
--- a/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/mcuconf.h
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright 2025 QMK
-// SPDX-License-Identifier: GPL-2.0-or-later
-#pragma once
-
-#include_next
-
-#undef STM32_PLLM_VALUE
-#define STM32_PLLM_VALUE 8
-
-#undef STM32_PLLSAIM_VALUE
-#define STM32_PLLSAIM_VALUE 8
diff --git a/keyboards/idobao/id42/id42.c b/keyboards/idobao/id42/id42.c
new file mode 100755
index 0000000000..5e76e4c5be
--- /dev/null
+++ b/keyboards/idobao/id42/id42.c
@@ -0,0 +1,45 @@
+// Copyright 2022 Vino Rodrigues (@vinorodrigues)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "quantum.h"
+
+#define __ NO_LED
+
+#ifdef RGB_MATRIX_ENABLE
+
+/*
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │41 │40 │39 │38 │37 │36 │35 │34 │33 │32 │31 │30 │
+ * ├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
+ * │ 29 │28 │27 │26 │25 │24 │23 │22 │21 │20 │ 19 │
+ * ├────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴──┬┴──┬───┤
+ * │ 18 │17 │16 │15 │14 │13 │12 │11 │ 10 │ 9 │ 8 │
+ * ├────┬┴──┬┴───┼───┴───┴─┬─┴───┴───┼─┬───┼───┼───┤
+ * │ 7 │ 6 │ 5 │ 4 │ 3 │ │ 2 │ 1 │ 0 │
+ * └────┴───┴────┴─────────┴─────────┘ └───┴───┴───┘
+ */
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ // WS2812 LED strings are addressed from 0 (1st) to RGB_MATRIX_LED_COUNT-1 (last)
+ { 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30 },
+ { 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, __, 19 },
+ { 18, 17, 16, 15, 14, 13, 12, 11, 10, __, 9, 8 },
+ { 7, 6, 5, 4, __, __, 3, __, __, 2, 1, 0 }
+}, {
+ // LED Index to Physical Position
+ // **NB**: Reversed order
+ // Generated from: https://xelus.netlify.app/guides/KLE_to_RGB_parser
+ {224,64 }, {204,64 }, {183,64 }, {135,64 }, { 84,64 }, { 48,64 }, { 25,64 }, { 3,64 },
+ {224,43 }, {204,43 }, {181,43 }, {158,43 }, {137,43 }, {117,43 }, { 97,43 }, { 76,43 }, { 56,43 }, { 36,43 }, { 8,43 },
+ {216,21 }, {188,21 }, {168,21 }, {148,21 }, {127,21 }, {107,21 }, { 87,21 }, { 66,21 }, { 46,21 }, { 25,21 }, { 3,21 },
+ {224,0 }, {204,0 }, {183,0 }, {163,0 }, {143,0 }, {122,0 }, {102,0 }, { 81,0 }, { 61,0 }, { 41,0 }, { 20,0 }, { 0,0 }
+}, {
+ // LED Index to Flag
+ // **NB**: Reversed order
+ 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 4,
+ 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
+ 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4
+} };
+
+#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/idobao/id42/keyboard.json b/keyboards/idobao/id42/keyboard.json
index d726f04e78..0f1cecd16a 100644
--- a/keyboards/idobao/id42/keyboard.json
+++ b/keyboards/idobao/id42/keyboard.json
@@ -56,50 +56,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [3, 11], "x": 224, "y": 64, "flags": 4},
- {"matrix": [3, 10], "x": 204, "y": 64, "flags": 4},
- {"matrix": [3, 9], "x": 183, "y": 64, "flags": 4},
- {"matrix": [3, 6], "x": 135, "y": 64, "flags": 4},
- {"matrix": [3, 3], "x": 84, "y": 64, "flags": 4},
- {"matrix": [3, 2], "x": 48, "y": 64, "flags": 4},
- {"matrix": [3, 1], "x": 25, "y": 64, "flags": 4},
- {"matrix": [3, 0], "x": 3, "y": 64, "flags": 4},
- {"matrix": [2, 11], "x": 224, "y": 43, "flags": 4},
- {"matrix": [2, 10], "x": 204, "y": 43, "flags": 4},
- {"matrix": [2, 8], "x": 181, "y": 43, "flags": 4},
- {"matrix": [2, 7], "x": 158, "y": 43, "flags": 1},
- {"matrix": [2, 6], "x": 137, "y": 43, "flags": 1},
- {"matrix": [2, 5], "x": 117, "y": 43, "flags": 1},
- {"matrix": [2, 4], "x": 97, "y": 43, "flags": 1},
- {"matrix": [2, 3], "x": 76, "y": 43, "flags": 1},
- {"matrix": [2, 2], "x": 56, "y": 43, "flags": 1},
- {"matrix": [2, 1], "x": 36, "y": 43, "flags": 1},
- {"matrix": [2, 0], "x": 8, "y": 43, "flags": 4},
- {"matrix": [1, 11], "x": 216, "y": 21, "flags": 4},
- {"matrix": [1, 9], "x": 188, "y": 21, "flags": 1},
- {"matrix": [1, 8], "x": 168, "y": 21, "flags": 1},
- {"matrix": [1, 7], "x": 148, "y": 21, "flags": 1},
- {"matrix": [1, 6], "x": 127, "y": 21, "flags": 1},
- {"matrix": [1, 5], "x": 107, "y": 21, "flags": 1},
- {"matrix": [1, 4], "x": 87, "y": 21, "flags": 1},
- {"matrix": [1, 3], "x": 66, "y": 21, "flags": 1},
- {"matrix": [1, 2], "x": 46, "y": 21, "flags": 1},
- {"matrix": [1, 1], "x": 25, "y": 21, "flags": 1},
- {"matrix": [1, 0], "x": 3, "y": 21, "flags": 4},
- {"matrix": [0, 11], "x": 224, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 204, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 183, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 163, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 143, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 122, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 102, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 81, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 61, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 41, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 20, "y": 0, "flags": 1},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}
- ],
"max_brightness": 180,
"sleep": true
},
diff --git a/keyboards/idobao/id61/config.h b/keyboards/idobao/id61/config.h
new file mode 100644
index 0000000000..3766a8ef1d
--- /dev/null
+++ b/keyboards/idobao/id61/config.h
@@ -0,0 +1,28 @@
+// Copyright 2022 Vino Rodrigues (@vinorodrigues)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#if defined(RGB_MATRIX_ENABLE)
+ #ifndef ID61_DISABLE_UNDERGLOW
+ #define RGB_MATRIX_LED_COUNT 71
+ #else
+ #define RGB_MATRIX_LED_COUNT 61 // = 71 - 10
+ #endif
+#endif // RGB_MATRIX_ENABLE
+
+/* -----------------------
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ * ----------------------- */
+
+/* disable debug print */
+// #define NO_DEBUG
+
+/* disable print */
+// #define NO_PRINT
+
+/* disable action features */
+// #define NO_ACTION_LAYER
+// #define NO_ACTION_TAPPING
+// #define NO_ACTION_ONESHOT
diff --git a/keyboards/idobao/id61/id61.c b/keyboards/idobao/id61/id61.c
new file mode 100644
index 0000000000..bd2271049b
--- /dev/null
+++ b/keyboards/idobao/id61/id61.c
@@ -0,0 +1,68 @@
+// Copyright 2022 Vino Rodrigues (@vinorodrigues)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "quantum.h"
+
+#define __ NO_LED
+
+#if defined(RGB_MATRIX_ENABLE)
+
+/* Pre-key
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
+ * │60 │59 │58 │57 │56 │55 │54 │53 │52 │51 │50 │49 │48 │ 47 │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
+ * │ 46 │45 │44 │43 │42 │41 │40 │39 │38 │37 │36 │35 │34 │ 33 │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
+ * │ 32 │31 │30 │29 │28 │27 │26 │25 │24 │23 │22 │21 │ 20 │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
+ * │ 19 │18 │17 │16 │15 │14 │13 │12 │11 │10 │ 9 │ 8 │
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
+ * │ 7 │ 6 │ 5 │ 4 │ 3 │ 2 │ 1 │ 0 │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+ *
+ * Underglow (from top / [Esc] = top left)
+ * ┌────┬────┬────┬────┬────┐
+ * │ 61 │ 62 │ 63 │ 64 │ 65 │
+ * ├────┴────┴────┴────┴────┤
+ * ├────┬────┬────┬────┬────┤
+ * │ 70 │ 69 │ 68 │ 67 │ 66 │
+ * └────┴────┴────┴────┴────┘
+ */
+
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47 },
+ { 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33 },
+ { 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, __ },
+ { 19, __, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, __ },
+ { 7, 6, 5, __, __, __, 4, __, __, __, 3, 2, 1, 0 },
+}, {
+ // LED Index to Physical Position
+ // generated from: https://xelus.netlify.app/guides/KLE_to_RGB_parser
+ /* NB: Reverse order! */
+ {224,64 }, {204,64 }, {184,64 }, {163,64 }, {103,64 }, { 42,64 }, { 22,64 }, { 2,64 },
+ {212,48 }, {182,48 }, {165,48 }, {149,48 }, {133,48 }, {117,48 }, {101,48 }, { 85,48 }, { 69,48 }, { 52,48 }, { 36,48 }, { 10,48 },
+ {216,32 }, {190,32 }, {174,32 }, {157,32 }, {141,32 }, {125,32 }, {109,32 }, { 93,32 }, { 77,32 }, { 61,32 }, { 44,32 }, { 28,32 }, { 6,32 },
+ {222,16 }, {202,16 }, {186,16 }, {170,16 }, {153,16 }, {137,16 }, {121,16 }, {105,16 }, { 89,16 }, { 73,16 }, { 57,16 }, { 40,16 }, { 24,16 }, { 4,16 },
+ {218,0 }, {194,0 }, {178,0 }, {161,0 }, {145,0 }, {129,0 }, {113,0 }, { 97,0 }, { 81,0 }, { 65,0 }, { 48,0 }, { 32,0 }, { 16,0 }, { 0,0 }
+ // underglow LEDs (positions pushed to nearest edge to match edge key colors)
+ #ifndef ID61_DISABLE_UNDERGLOW
+ , { 0,0 }, { 56,0 }, { 112,0 }, {168,0 }, {224,0 },
+ {224,64 }, {168,64 }, {112,64 }, { 56,64 }, { 0,64 }
+ #endif
+}, {
+ // LED Index to Flag
+ /* NB: Reverse order! */
+ 1, 1, 1, 1, 4, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
+ // underglow LEDs
+ #ifndef ID61_DISABLE_UNDERGLOW
+ , 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2
+ #endif
+} };
+
+#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/idobao/id61/keyboard.json b/keyboards/idobao/id61/keyboard.json
index af0c29788d..d3bf62c726 100644
--- a/keyboards/idobao/id61/keyboard.json
+++ b/keyboards/idobao/id61/keyboard.json
@@ -56,79 +56,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 204, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 184, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 163, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 103, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [3, 12], "x": 212, "y": 48, "flags": 1},
- {"matrix": [3, 11], "x": 182, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 165, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 149, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 133, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 117, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 101, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 85, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1},
- {"matrix": [2, 12], "x": 216, "y": 32, "flags": 1},
- {"matrix": [2, 11], "x": 190, "y": 32, "flags": 1},
- {"matrix": [2, 10], "x": 174, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 157, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 141, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 125, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 109, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 93, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 77, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 61, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 9},
- {"matrix": [1, 13], "x": 222, "y": 16, "flags": 1},
- {"matrix": [1, 12], "x": 202, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 186, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 170, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 153, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 137, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 121, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 105, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 89, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 73, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 57, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [0, 13], "x": 218, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 194, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 178, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 161, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 145, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 129, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 113, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 97, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 81, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 65, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"x": 0, "y": 0, "flags": 2},
- {"x": 56, "y": 0, "flags": 2},
- {"x": 112, "y": 0, "flags": 2},
- {"x": 168, "y": 0, "flags": 2},
- {"x": 224, "y": 0, "flags": 2},
- {"x": 224, "y": 64, "flags": 2},
- {"x": 168, "y": 64, "flags": 2},
- {"x": 112, "y": 64, "flags": 2},
- {"x": 56, "y": 64, "flags": 2},
- {"x": 0, "y": 64, "flags": 2}
- ],
"max_brightness": 170,
"sleep": true
},
diff --git a/keyboards/idobao/id61/post_rules.mk b/keyboards/idobao/id61/post_rules.mk
new file mode 100644
index 0000000000..673b260396
--- /dev/null
+++ b/keyboards/idobao/id61/post_rules.mk
@@ -0,0 +1,8 @@
+# The Denwir D60 case has a sealed/solid undercase,
+# this enables switching off thoes LEDs
+# Usage: `make idobao/id61:default UNDERGLOW=off`
+
+UNDERGLOW ?= yes
+ifneq ($(strip $(UNDERGLOW)), yes)
+ OPT_DEFS += -DID61_DISABLE_UNDERGLOW
+endif
diff --git a/keyboards/idobao/id63/config.h b/keyboards/idobao/id63/config.h
new file mode 100644
index 0000000000..5a7df9028e
--- /dev/null
+++ b/keyboards/idobao/id63/config.h
@@ -0,0 +1,28 @@
+// Copyright 2022 Vino Rodrigues (@vinorodrigues)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#if defined(RGB_MATRIX_ENABLE)
+ #ifndef ID63_DISABLE_UNDERGLOW
+ #define RGB_MATRIX_LED_COUNT 75
+ #else
+ #define RGB_MATRIX_LED_COUNT (75 - 12)
+ #endif
+#endif // RGB_MATRIX_ENABLE
+
+/* -----------------------
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ * ----------------------- */
+
+/* disable debug print */
+// #define NO_DEBUG
+
+/* disable print */
+// #define NO_PRINT
+
+/* disable action features */
+// #define NO_ACTION_LAYER
+// #define NO_ACTION_TAPPING
+// #define NO_ACTION_ONESHOT
diff --git a/keyboards/idobao/id63/id63.c b/keyboards/idobao/id63/id63.c
new file mode 100644
index 0000000000..f425eb4fe4
--- /dev/null
+++ b/keyboards/idobao/id63/id63.c
@@ -0,0 +1,68 @@
+// Copyright 2022 Vino Rodrigues (@vinorodrigues)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "quantum.h"
+
+#define __ NO_LED
+
+#ifdef RGB_MATRIX_ENABLE
+
+/* Pre-key LED addresses
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
+ * │62 │61 │60 │59 │58 │57 │56 │55 │54 │53 │52 │51 │50 │ 49 │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
+ * │ 48 │47 │46 │45 │44 │43 │42 │41 │40 │39 │38 │37 │36 │ 35 │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
+ * │ 34 │33 │32 │31 │30 │29 │28 │27 │26 │25 │24 │23 │ 22 │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤
+ * │ 21 │20 │19 │18 │17 │16 │15 │14 │13 │12 │ 11 │10 │ 9 │
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬───┼───┼───┤
+ * │ 8 │ 7 │ 6 │ 5 │ 4 │ 3 │ 2 │ 1 │ 0 │
+ * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘
+ *
+ * Underglow LED addresses (as seen from top / [Esc] = top left)
+ * ┌────┬────┬────┬────┬────┬────┐
+ * │ 63 │ 64 │ 65 │ 66 │ 67 │ 68 │
+ * ├────┴────┴────┴────┴────┴────┤
+ * ├────┬────┬────┬────┬────┬────┤
+ * │ 74 │ 73 │ 72 │ 71 │ 70 │ 69 │
+ * └────┴────┴────┴────┴────┴────┘
+ */
+
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49 },
+ { 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35 },
+ { 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, __, 22 },
+ { 21, __, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9 },
+ { 8, 7, __, 6, __, __, 5, __, __, 4, 3, 2, 1, 0 },
+}, {
+ // LED Index to Physical Position
+ // generated from: https://xelus.netlify.app/guides/KLE_to_RGB_parser
+ /* NB: Reverse & upside-down order! */
+ {224,64 }, {208,64 }, {192,64 }, {176,64 }, {160,64 }, {102,64 }, { 42,64 }, { 22,64 }, { 2,64 },
+ {224,48 }, {208,48 }, {186,48 }, {164,48 }, {148,48 }, {132,48 }, {116,48 }, {100,48 }, { 84,48 }, { 68,48 }, { 52,48 }, { 36,48 }, { 10,48 },
+ {214,32 }, {188,32 }, {172,32 }, {156,32 }, {140,32 }, {124,32 }, {108,32 }, { 92,32 }, { 76,32 }, { 60,32 }, { 44,32 }, { 28,32 }, { 6,32 },
+ {220,16 }, {200,16 }, {184,16 }, {168,16 }, {152,16 }, {136,16 }, {120,16 }, {104,16 }, { 88,16 }, { 72,16 }, { 56,16 }, { 40,16 }, { 24,16 }, { 4,16 },
+ {216,0 }, {192,0 }, {176,0 }, {160,0 }, {144,0 }, {128,0 }, {112,0 }, { 96,0 }, { 80,0 }, { 64,0 }, { 48,0 }, { 32,0 }, { 16,0 }, { 0,0 }
+ // underglow LEDs (positions pushed to nearest edge to match edge key colors)
+ #ifndef ID63_DISABLE_UNDERGLOW
+ , { 0,0 }, { 45,0 }, { 90,0 }, {134,0 }, {179,0 }, {224,0 },
+ {224,64 }, {179,64 }, {134,64 }, { 90,64 }, { 45,64 }, { 0,64 }
+ #endif
+}, {
+ // LED Index to Flag
+ /* NB: Reverse & upside-down order! */
+ 4, 4, 4, 1, 1, 4, 1, 1, 1,
+ 1, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
+ // underglow LEDs
+ #ifndef ID63_DISABLE_UNDERGLOW
+ , 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2
+ #endif
+} };
+
+#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/idobao/id63/keyboard.json b/keyboards/idobao/id63/keyboard.json
index bfe0ac7cbe..141c1263d1 100644
--- a/keyboards/idobao/id63/keyboard.json
+++ b/keyboards/idobao/id63/keyboard.json
@@ -56,83 +56,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [4, 13], "x": 224, "y": 64, "flags": 4},
- {"matrix": [4, 12], "x": 208, "y": 64, "flags": 4},
- {"matrix": [4, 11], "x": 192, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 176, "y": 64, "flags": 1},
- {"matrix": [4, 9], "x": 160, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 102, "y": 64, "flags": 4},
- {"matrix": [4, 3], "x": 42, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1},
- {"matrix": [3, 12], "x": 208, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 186, "y": 48, "flags": 1},
- {"matrix": [3, 10], "x": 164, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 148, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 132, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 116, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 100, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 84, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 68, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1},
- {"matrix": [2, 13], "x": 214, "y": 32, "flags": 1},
- {"matrix": [2, 11], "x": 188, "y": 32, "flags": 1},
- {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 9},
- {"matrix": [1, 13], "x": 220, "y": 16, "flags": 1},
- {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"x": 0, "y": 0, "flags": 2},
- {"x": 45, "y": 0, "flags": 2},
- {"x": 90, "y": 0, "flags": 2},
- {"x": 134, "y": 0, "flags": 2},
- {"x": 179, "y": 0, "flags": 2},
- {"x": 224, "y": 0, "flags": 2},
- {"x": 224, "y": 64, "flags": 2},
- {"x": 179, "y": 64, "flags": 2},
- {"x": 134, "y": 64, "flags": 2},
- {"x": 90, "y": 64, "flags": 2},
- {"x": 45, "y": 64, "flags": 2},
- {"x": 0, "y": 64, "flags": 2}
- ],
"max_brightness": 180,
"sleep": true
},
diff --git a/keyboards/idobao/id63/post_rules.mk b/keyboards/idobao/id63/post_rules.mk
new file mode 100644
index 0000000000..1a465397fd
--- /dev/null
+++ b/keyboards/idobao/id63/post_rules.mk
@@ -0,0 +1,8 @@
+# The Denwir D60 case has a sealed/solid undercase,
+# this enables switching off thoes LEDs
+# Usage: `make idobao/id63:default UNDERGLOW=off`
+
+UNDERGLOW ?= yes
+ifneq ($(strip $(UNDERGLOW)), yes)
+ OPT_DEFS += -DID63_DISABLE_UNDERGLOW
+endif
diff --git a/keyboards/idobao/id67/config.h b/keyboards/idobao/id67/config.h
new file mode 100644
index 0000000000..8f454d1ff4
--- /dev/null
+++ b/keyboards/idobao/id67/config.h
@@ -0,0 +1,30 @@
+// Copyright 2021 Tybera (@tybera)
+// Copyright 2021 Werther (@thewerther)
+// Copyright 2022 Vino Rodrigues (@vinorodrigues)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#if defined(RGB_MATRIX_ENABLE)
+ #ifndef ID67_DISABLE_UNDERGLOW
+ #define RGB_MATRIX_LED_COUNT 77
+ #else
+ #define RGB_MATRIX_LED_COUNT (77 - 10)
+ #endif
+#endif // RGB_MATRIX_ENABLE
+
+/* -----------------------
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ * ----------------------- */
+
+/* disable debug print */
+// #define NO_DEBUG
+
+/* disable print */
+// #define NO_PRINT
+
+/* disable action features */
+// #define NO_ACTION_LAYER
+// #define NO_ACTION_TAPPING
+// #define NO_ACTION_ONESHOT
diff --git a/keyboards/idobao/id67/id67.c b/keyboards/idobao/id67/id67.c
new file mode 100644
index 0000000000..dab6347eb3
--- /dev/null
+++ b/keyboards/idobao/id67/id67.c
@@ -0,0 +1,68 @@
+// Copyright 2021 Tybera (@tybera)
+// Copyright 2021 Werther (@thewerther)
+// Copyright 2022 Vino Rodrigues (@vinorodrigues)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "quantum.h"
+
+#define __ NO_LED
+
+#if defined(RGB_MATRIX_ENABLE)
+
+/* NB!!: Indices are reversed on the physical board, top left is bottom right.
+ * These "LED Index to *" arrays are in that reversed order!
+ * i.e., Space row on top, listed right to left */
+led_config_t g_led_config = { {
+ /* Under- / Per-Key
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
+ * │66 │65 │64 │63 │62 │61 │60 │59 │58 │57 │56 │55 │54 │ 53 │52 │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
+ * │ 51 │50 │49 │48 │47 │46 │45 │44 │43 │42 │41 │40 │39 │ 38 │37 │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
+ * │ 36 │35 │34 │33 │32 │31 │30 │29 │28 │27 │26 │25 │ 24 │23 │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
+ * │ 22 │21 │20 │19 │18 │17 │16 │15 │14 │13 │12 │ 11 │10 │ 9 │
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
+ * │ 8 │ 7 │ 6 │ 5 │ 4 │ 3 │ │ 2 │ 1 │ 0 │
+ * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
+ *
+ * Bottom Side (as seen from top orientation)
+ * 67 68 69 70 71
+ * 76 75 74 73 72
+ */
+ // Key Matrix to LED Index
+ {66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52},
+ {51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37},
+ {36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, __, 24, 23},
+ {22, __, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9},
+ { 8, 7, __, 6, __, __, 5, __, __, __, 4, 3, 2, 1, 0},
+}, {
+ // LED Index to Physical Position
+ // based on: https://gist.github.com/vinorodrigues/07fd735683856b2a06c7c52b9b3878cb
+ // **NB: In reverse order**
+ {224,64 }, {209,64 }, {194,64 }, {170,64 }, {151,64 }, { 95,64 }, { 39,64 }, { 21,64 }, { 2,64 },
+ {224,48 }, {209,48 }, {189,48 }, {168,48 }, {153,48 }, {138,48 }, {123,48 }, {108,48 }, { 93,48 }, { 78,48 }, { 63,48 }, { 49,48 }, { 34,48 }, { 9,48 },
+ {224,32 }, {200,32 }, {175,32 }, {161,32 }, {146,32 }, {131,32 }, {116,32 }, {101,32 }, { 86,32 }, { 71,32 }, { 56,32 }, { 41,32 }, { 26,32 }, { 6,32 },
+ {224,16 }, {205,16 }, {187,16 }, {172,16 }, {157,16 }, {142,16 }, {127,16 }, {112,16 }, { 97,16 }, { 82,16 }, { 67,16 }, { 52,16 }, { 37,16 }, { 22,16 }, { 4,16 },
+ {224,0 }, {202,0 }, {179,0 }, {164,0 }, {149,0 }, {134,0 }, {119,0 }, {105,0 }, { 90,0 }, { 75,0 }, { 60,0 }, { 45,0 }, { 30,0 }, { 15,0 }, { 0,0 }
+ // underglow LEDs
+ #ifndef ID67_DISABLE_UNDERGLOW
+ , {0, 0}, {56, 0}, {112, 0}, {168, 0}, {224, 0},
+ {224, 64}, {168, 64}, {112, 64}, {56, 64}, {0, 64}
+ #endif
+}, {
+ // LED Index to Flag
+ // **NB: In reverse order**
+ 1, 1, 1, 1, 1, 4, 1, 1, 1, // fifth/bottom row
+ 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // fourth row
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, // third row
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // second row
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1 // first/top row
+ // underglow LEDs
+ #ifndef ID67_DISABLE_UNDERGLOW
+ , 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2
+ #endif
+} };
+
+#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/idobao/id67/keyboard.json b/keyboards/idobao/id67/keyboard.json
index 025b965050..786ed39be0 100644
--- a/keyboards/idobao/id67/keyboard.json
+++ b/keyboards/idobao/id67/keyboard.json
@@ -56,85 +56,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 209, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 194, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 170, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 151, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 95, "y": 64, "flags": 4},
- {"matrix": [4, 3], "x": 39, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
- {"matrix": [3, 13], "x": 209, "y": 48, "flags": 1},
- {"matrix": [3, 12], "x": 189, "y": 48, "flags": 1},
- {"matrix": [3, 11], "x": 168, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 153, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 138, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 123, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 108, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 93, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 78, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 63, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
- {"matrix": [2, 13], "x": 200, "y": 32, "flags": 1},
- {"matrix": [2, 11], "x": 175, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 9},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
- {"matrix": [1, 13], "x": 205, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 179, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 164, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 149, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 134, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 119, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"x": 0, "y": 0, "flags": 2},
- {"x": 56, "y": 0, "flags": 2},
- {"x": 112, "y": 0, "flags": 2},
- {"x": 168, "y": 0, "flags": 2},
- {"x": 224, "y": 0, "flags": 2},
- {"x": 224, "y": 64, "flags": 2},
- {"x": 168, "y": 64, "flags": 2},
- {"x": 112, "y": 64, "flags": 2},
- {"x": 56, "y": 64, "flags": 2},
- {"x": 0, "y": 64, "flags": 2}
- ],
"max_brightness": 180,
"sleep": true
},
diff --git a/keyboards/idobao/id67/post_rules.mk b/keyboards/idobao/id67/post_rules.mk
new file mode 100644
index 0000000000..32832a65b2
--- /dev/null
+++ b/keyboards/idobao/id67/post_rules.mk
@@ -0,0 +1,8 @@
+# Some ID67 variants (v1 base build & "Bestype") have a solid back plate,
+# this enables switching off thoes LEDs
+# Usage: `make idobao/id67:default UNDERGLOW=off`
+
+UNDERGLOW ?= yes
+ifneq ($(strip $(UNDERGLOW)), yes)
+ OPT_DEFS += -DID67_DISABLE_UNDERGLOW
+endif
diff --git a/keyboards/idobao/id75/v2/keyboard.json b/keyboards/idobao/id75/v2/keyboard.json
index 068c01a785..743c7cf404 100644
--- a/keyboards/idobao/id75/v2/keyboard.json
+++ b/keyboards/idobao/id75/v2/keyboard.json
@@ -44,94 +44,7 @@
"solid_splash": true,
"solid_multisplash": true
},
- "driver": "ws2812",
- "layout": [
- {"x": 8, "y": 12, "flags": 2},
- {"x": 60, "y": 12, "flags": 2},
- {"x": 112, "y": 12, "flags": 2},
- {"x": 164, "y": 12, "flags": 2},
- {"x": 216, "y": 12, "flags": 2},
- {"x": 216, "y": 60, "flags": 2},
- {"x": 164, "y": 60, "flags": 2},
- {"x": 112, "y": 60, "flags": 2},
- {"x": 60, "y": 60, "flags": 2},
- {"x": 8, "y": 60, "flags": 2},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4},
- {"matrix": [4, 13], "x": 208, "y": 64, "flags": 4},
- {"matrix": [4, 12], "x": 192, "y": 64, "flags": 4},
- {"matrix": [4, 11], "x": 176, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 160, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 144, "y": 64, "flags": 4},
- {"matrix": [4, 8], "x": 128, "y": 64, "flags": 4},
- {"matrix": [4, 7], "x": 112, "y": 64, "flags": 4},
- {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 5], "x": 80, "y": 64, "flags": 4},
- {"matrix": [4, 4], "x": 64, "y": 64, "flags": 4},
- {"matrix": [4, 3], "x": 48, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4},
- {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4},
- {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 208, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 192, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 208, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}
- ]
+ "driver": "ws2812"
},
"build": {
"lto": true
diff --git a/keyboards/idobao/id75/v2/v2.c b/keyboards/idobao/id75/v2/v2.c
new file mode 100644
index 0000000000..55d58d92e1
--- /dev/null
+++ b/keyboards/idobao/id75/v2/v2.c
@@ -0,0 +1,49 @@
+/* Copyright 2022 peepeetee
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+{ 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70 },
+{ 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55 },
+{ 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40 },
+{ 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25 },
+{ 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10 }
+}, {
+ // LED Index to Physical Position
+{8, 12},{60, 12},{112, 12},{164, 12},{216, 12},
+{216, 60},{164, 60},{112, 60},{60, 60},{8, 60},
+
+
+{224, 64}, {208, 64}, {192, 64}, {176, 64}, {160, 64}, {144, 64}, {128, 64}, {112, 64}, {96, 64}, {80, 64}, {64, 64}, {48, 64}, {32, 64}, {16, 64}, {0, 64},
+{224, 48}, {208, 48}, {192, 48}, {176, 48}, {160, 48}, {144, 48}, {128, 48}, {112, 48}, {96, 48}, {80, 48}, {64, 48}, {48, 48}, {32, 48}, {16, 48}, {0, 48},
+{224, 32}, {208, 32}, {192, 32}, {176, 32}, {160, 32}, {144, 32}, {128, 32}, {112, 32}, {96, 32}, {80, 32}, {64, 32}, {48, 32}, {32, 32}, {16, 32}, {0, 32},
+{224, 16}, {208, 16}, {192, 16}, {176, 16}, {160, 16}, {144, 16}, {128, 16}, {112, 16}, {96, 16}, {80, 16}, {64, 16}, {48, 16}, {32, 16}, {16, 16}, {0, 16},
+{224, 0}, {208, 0}, {192, 0}, {176, 0}, {160, 0}, {144, 0}, {128, 0}, {112, 0}, {96, 0}, {80, 0}, {64, 0}, {48, 0}, {32, 0}, {16, 0}, {0, 0},
+
+}, {
+ // LED Index to Flag
+2,2,2,2,2,2,2,2,2,2,
+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,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,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,
+
+} };
+
+#endif
diff --git a/keyboards/idobao/id80/v3/ansi/ansi.c b/keyboards/idobao/id80/v3/ansi/ansi.c
new file mode 100644
index 0000000000..75f995fbbe
--- /dev/null
+++ b/keyboards/idobao/id80/v3/ansi/ansi.c
@@ -0,0 +1,76 @@
+// Copyright 2022 Vino Rodrigues (@vinorodrigues)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "quantum.h"
+
+#define __ NO_LED
+
+#ifdef RGB_MATRIX_ENABLE
+
+/* Per-key LED's
+ * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┐
+ * │79 ││78 │77 │76 │75 ││74 │73 │72 │71 ││70 │69 │68 │67 ││66 ││65 │
+ * ├───┼┴──┬┴──┬┴──┬┴──┬┴┴─┬─┴─┬─┴─┬─┴─┬─┴┴┬──┴┬──┴┬──┴┬──┴┴───┤├───┤
+ * │64 │63 │62 │61 │60 │59 │58 │57 │56 │55 │54 │53 │52 │ 51 ││50 │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┤
+ * │ 49 │48 │47 │46 │45 │44 │43 │42 │41 │40 │39 │38 │37 │ 36 ││35 │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┘
+ * │ 34 │33 │32 │31 │30 │29 │28 │27 │26 │25 │24 │23 │ 22 │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘
+ * │ 21 │20 │19 │18 │17 │16 │15 │14 │13 │12 │11 │ 10 │┌───┐
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┘│ 9 │
+ * │ 8 │ 7 │ 6 │ 5 │ 4 │ 3 │┌───┼───┼───┐
+ * └────┴────┴────┴────────────────────────┴─────┴─────┘│ 2 │ 1 │ 0 │
+ * └───┴───┴───┘
+ * Underglow (as seen from top)
+ * ┌────┬────┬────┬────┬────┬────┐
+ * │ 80 │ 81 │ 82 │ 83 │ 84 │ 85 │
+ * ├────┼────┴────┴────┴────┼────┤
+ * │ 93 │ │ 86 │
+ * ├────┼────┬────┬────┬────┼────┤
+ * │ 92 │ 91 │ 90 │ 89 │ 88 │ 87 │
+ * └────┴────┴────┴────┴────┴────┘
+ */
+
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ /* Generated with: https://xelus.netlify.app/guides/KLE_to_RGB_parser */
+ { 8, 21, 34, 49, 64, 79, __, __, __, __, __ },
+ { 7, __, 33, 48, 63, 78, __, __, __, __, __ },
+ { 6, 20, 32, 47, 62, 77, __, __, 35, 50, 65 },
+ { 0, 19, 31, 46, 61, 76, 9, __, 36, __, 67 },
+ { 1, 18, 30, 45, 60, 75, 10, 22, 37, 52, 68 },
+ { 2, 17, 29, 44, 59, 74, 11, 23, 38, 53, 69 },
+ { 5, 16, 28, 43, 58, 73, __, __, __, 51, 66 },
+ { 3, 15, 27, 42, 57, 72, 12, 24, 39, 54, 70 },
+ { 4, 14, 26, 41, 56, 71, 13, 25, 40, 55, __ },
+}, {
+ /* NB: Reversed order */
+ // per-key
+ {224,64 }, {209,64 }, {195,64 }, {173,61 }, {151,61 }, { 94,61 }, { 39,61 }, { 20,61 }, { 2,61 },
+ {209,52 }, {185,49 }, {165,49 }, {151,49 }, {136,49 }, {121,49 }, {106,49 }, { 92,49 }, { 77,49 }, { 62,49 }, { 48,49 }, { 33,49 }, { 9,49 },
+ {196,38 }, {173,38 }, {158,38 }, {143,38 }, {129,38 }, {114,38 }, { 99,38 }, { 84,38 }, { 70,38 }, { 55,38 }, { 40,38 }, { 26,38 }, { 6,38 },
+ {224,26 }, {202,26 }, {184,26 }, {169,26 }, {154,26 }, {140,26 }, {125,26 }, {110,26 }, { 95,26 }, { 81,26 }, { 66,26 }, { 51,26 }, { 37,26 }, { 22,26 }, { 4,26 },
+ {224,15 }, {198,15 }, {176,15 }, {162,15 }, {147,15 }, {132,15 }, {118,15 }, {103,15 }, { 88,15 }, { 73,15 }, { 59,15 }, { 44,15 }, { 29,15 }, { 15,15 }, { 0,15 },
+ {224,0 }, {206,0 }, {187,0 }, {173,0 }, {158,0 }, {143,0 }, {125,0 }, {110,0 }, { 95,0 }, { 81,0 }, { 62,0 }, { 48,0 }, { 33,0 }, { 18,0 }, { 0,0 },
+ // underglow
+ { 0,0 }, { 45,0 }, { 90,0 }, {134,0 }, {179,0 }, {224,0 },
+ {224,32 },
+ {224,64 }, {179,64 }, {134,64 }, { 90,64 }, { 45,64 }, { 0,64 },
+ { 0,32 }
+}, {
+ /* NB: Reversed order */
+ 4, 4, 4, 4, 4, 1, 4, 4, 4,
+ 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
+ 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
+ 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
+ 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ //
+ 2, 2, 2, 2, 2, 2,
+ 2,
+ 2, 2, 2, 2, 2, 2,
+ 2
+} };
+
+#endif
diff --git a/keyboards/idobao/id80/v3/ansi/keyboard.json b/keyboards/idobao/id80/v3/ansi/keyboard.json
index a366289a1f..0ab369fb5d 100644
--- a/keyboards/idobao/id80/v3/ansi/keyboard.json
+++ b/keyboards/idobao/id80/v3/ansi/keyboard.json
@@ -53,102 +53,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [3, 0], "x": 224, "y": 64, "flags": 4},
- {"matrix": [4, 0], "x": 209, "y": 64, "flags": 4},
- {"matrix": [5, 0], "x": 195, "y": 64, "flags": 4},
- {"matrix": [7, 0], "x": 173, "y": 61, "flags": 4},
- {"matrix": [8, 0], "x": 151, "y": 61, "flags": 4},
- {"matrix": [6, 0], "x": 94, "y": 61, "flags": 1},
- {"matrix": [2, 0], "x": 39, "y": 61, "flags": 4},
- {"matrix": [1, 0], "x": 20, "y": 61, "flags": 4},
- {"matrix": [0, 0], "x": 2, "y": 61, "flags": 4},
- {"matrix": [3, 6], "x": 209, "y": 52, "flags": 4},
- {"matrix": [4, 6], "x": 185, "y": 49, "flags": 4},
- {"matrix": [5, 6], "x": 165, "y": 49, "flags": 1},
- {"matrix": [7, 6], "x": 151, "y": 49, "flags": 1},
- {"matrix": [8, 6], "x": 136, "y": 49, "flags": 1},
- {"matrix": [8, 1], "x": 121, "y": 49, "flags": 1},
- {"matrix": [7, 1], "x": 106, "y": 49, "flags": 1},
- {"matrix": [6, 1], "x": 92, "y": 49, "flags": 1},
- {"matrix": [5, 1], "x": 77, "y": 49, "flags": 1},
- {"matrix": [4, 1], "x": 62, "y": 49, "flags": 1},
- {"matrix": [3, 1], "x": 48, "y": 49, "flags": 1},
- {"matrix": [2, 1], "x": 33, "y": 49, "flags": 1},
- {"matrix": [0, 1], "x": 9, "y": 49, "flags": 4},
- {"matrix": [4, 7], "x": 196, "y": 38, "flags": 4},
- {"matrix": [5, 7], "x": 173, "y": 38, "flags": 1},
- {"matrix": [7, 7], "x": 158, "y": 38, "flags": 1},
- {"matrix": [8, 7], "x": 143, "y": 38, "flags": 1},
- {"matrix": [8, 2], "x": 129, "y": 38, "flags": 1},
- {"matrix": [7, 2], "x": 114, "y": 38, "flags": 1},
- {"matrix": [6, 2], "x": 99, "y": 38, "flags": 1},
- {"matrix": [5, 2], "x": 84, "y": 38, "flags": 1},
- {"matrix": [4, 2], "x": 70, "y": 38, "flags": 1},
- {"matrix": [3, 2], "x": 55, "y": 38, "flags": 1},
- {"matrix": [2, 2], "x": 40, "y": 38, "flags": 1},
- {"matrix": [1, 2], "x": 26, "y": 38, "flags": 1},
- {"matrix": [0, 2], "x": 6, "y": 38, "flags": 4},
- {"matrix": [2, 8], "x": 224, "y": 26, "flags": 4},
- {"matrix": [3, 8], "x": 202, "y": 26, "flags": 1},
- {"matrix": [4, 8], "x": 184, "y": 26, "flags": 1},
- {"matrix": [5, 8], "x": 169, "y": 26, "flags": 1},
- {"matrix": [7, 8], "x": 154, "y": 26, "flags": 1},
- {"matrix": [8, 8], "x": 140, "y": 26, "flags": 1},
- {"matrix": [8, 3], "x": 125, "y": 26, "flags": 1},
- {"matrix": [7, 3], "x": 110, "y": 26, "flags": 1},
- {"matrix": [6, 3], "x": 95, "y": 26, "flags": 1},
- {"matrix": [5, 3], "x": 81, "y": 26, "flags": 1},
- {"matrix": [4, 3], "x": 66, "y": 26, "flags": 1},
- {"matrix": [3, 3], "x": 51, "y": 26, "flags": 1},
- {"matrix": [2, 3], "x": 37, "y": 26, "flags": 1},
- {"matrix": [1, 3], "x": 22, "y": 26, "flags": 1},
- {"matrix": [0, 3], "x": 4, "y": 26, "flags": 4},
- {"matrix": [2, 9], "x": 224, "y": 15, "flags": 4},
- {"matrix": [6, 9], "x": 198, "y": 15, "flags": 4},
- {"matrix": [4, 9], "x": 176, "y": 15, "flags": 1},
- {"matrix": [5, 9], "x": 162, "y": 15, "flags": 1},
- {"matrix": [7, 9], "x": 147, "y": 15, "flags": 1},
- {"matrix": [8, 9], "x": 132, "y": 15, "flags": 1},
- {"matrix": [8, 4], "x": 118, "y": 15, "flags": 1},
- {"matrix": [7, 4], "x": 103, "y": 15, "flags": 1},
- {"matrix": [6, 4], "x": 88, "y": 15, "flags": 1},
- {"matrix": [5, 4], "x": 73, "y": 15, "flags": 1},
- {"matrix": [4, 4], "x": 59, "y": 15, "flags": 1},
- {"matrix": [3, 4], "x": 44, "y": 15, "flags": 1},
- {"matrix": [2, 4], "x": 29, "y": 15, "flags": 1},
- {"matrix": [1, 4], "x": 15, "y": 15, "flags": 1},
- {"matrix": [0, 4], "x": 0, "y": 15, "flags": 1},
- {"matrix": [2, 10], "x": 224, "y": 0, "flags": 4},
- {"matrix": [6, 10], "x": 206, "y": 0, "flags": 4},
- {"matrix": [3, 10], "x": 187, "y": 0, "flags": 4},
- {"matrix": [4, 10], "x": 173, "y": 0, "flags": 4},
- {"matrix": [5, 10], "x": 158, "y": 0, "flags": 4},
- {"matrix": [7, 10], "x": 143, "y": 0, "flags": 4},
- {"matrix": [8, 5], "x": 125, "y": 0, "flags": 4},
- {"matrix": [7, 5], "x": 110, "y": 0, "flags": 4},
- {"matrix": [6, 5], "x": 95, "y": 0, "flags": 4},
- {"matrix": [5, 5], "x": 81, "y": 0, "flags": 4},
- {"matrix": [4, 5], "x": 62, "y": 0, "flags": 4},
- {"matrix": [3, 5], "x": 48, "y": 0, "flags": 4},
- {"matrix": [2, 5], "x": 33, "y": 0, "flags": 4},
- {"matrix": [1, 5], "x": 18, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 0, "y": 0, "flags": 4},
- {"x": 0, "y": 0, "flags": 2},
- {"x": 45, "y": 0, "flags": 2},
- {"x": 90, "y": 0, "flags": 2},
- {"x": 134, "y": 0, "flags": 2},
- {"x": 179, "y": 0, "flags": 2},
- {"x": 224, "y": 0, "flags": 2},
- {"x": 224, "y": 32, "flags": 2},
- {"x": 224, "y": 64, "flags": 2},
- {"x": 179, "y": 64, "flags": 2},
- {"x": 134, "y": 64, "flags": 2},
- {"x": 90, "y": 64, "flags": 2},
- {"x": 45, "y": 64, "flags": 2},
- {"x": 0, "y": 64, "flags": 2},
- {"x": 0, "y": 32, "flags": 2}
- ],
"max_brightness": 180,
"sleep": true
},
diff --git a/keyboards/idobao/id87/v2/keyboard.json b/keyboards/idobao/id87/v2/keyboard.json
index 1b7d428dda..ad6641f954 100644
--- a/keyboards/idobao/id87/v2/keyboard.json
+++ b/keyboards/idobao/id87/v2/keyboard.json
@@ -56,111 +56,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"x": 0, "y": 64, "flags": 2},
- {"x": 37, "y": 64, "flags": 2},
- {"x": 75, "y": 64, "flags": 2},
- {"x": 112, "y": 64, "flags": 2},
- {"x": 149, "y": 64, "flags": 2},
- {"x": 187, "y": 64, "flags": 2},
- {"x": 224, "y": 64, "flags": 2},
- {"x": 224, "y": 32, "flags": 2},
- {"x": 224, "y": 0, "flags": 2},
- {"x": 187, "y": 0, "flags": 2},
- {"x": 149, "y": 0, "flags": 2},
- {"x": 112, "y": 0, "flags": 2},
- {"x": 75, "y": 0, "flags": 2},
- {"x": 37, "y": 0, "flags": 2},
- {"x": 0, "y": 0, "flags": 2},
- {"x": 0, "y": 32, "flags": 2},
- {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1},
- {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1},
- {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4},
- {"matrix": [5, 8], "x": 131, "y": 64, "flags": 1},
- {"matrix": [5, 7], "x": 148, "y": 64, "flags": 1},
- {"matrix": [5, 4], "x": 164, "y": 64, "flags": 1},
- {"matrix": [5, 3], "x": 180, "y": 64, "flags": 1},
- {"matrix": [10, 6], "x": 198, "y": 64, "flags": 1},
- {"matrix": [10, 2], "x": 211, "y": 64, "flags": 1},
- {"matrix": [10, 1], "x": 224, "y": 64, "flags": 1},
- {"matrix": [9, 2], "x": 211, "y": 52, "flags": 1},
- {"matrix": [10, 4], "x": 170, "y": 52, "flags": 1},
- {"matrix": [10, 5], "x": 146, "y": 52, "flags": 4},
- {"matrix": [10, 7], "x": 133, "y": 52, "flags": 4},
- {"matrix": [10, 8], "x": 120, "y": 52, "flags": 4},
- {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4},
- {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4},
- {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4},
- {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4},
- {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4},
- {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4},
- {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4},
- {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1},
- {"matrix": [3, 0], "x": 5, "y": 40, "flags": 1},
- {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4},
- {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4},
- {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4},
- {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4},
- {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4},
- {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4},
- {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4},
- {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4},
- {"matrix": [9, 8], "x": 127, "y": 40, "flags": 4},
- {"matrix": [9, 7], "x": 140, "y": 40, "flags": 4},
- {"matrix": [9, 5], "x": 153, "y": 40, "flags": 4},
- {"matrix": [9, 3], "x": 174, "y": 40, "flags": 1},
- {"matrix": [8, 1], "x": 224, "y": 27, "flags": 1},
- {"matrix": [8, 2], "x": 211, "y": 27, "flags": 1},
- {"matrix": [8, 6], "x": 198, "y": 27, "flags": 1},
- {"matrix": [8, 3], "x": 179, "y": 27, "flags": 4},
- {"matrix": [8, 4], "x": 162, "y": 27, "flags": 4},
- {"matrix": [8, 5], "x": 149, "y": 27, "flags": 4},
- {"matrix": [8, 7], "x": 136, "y": 27, "flags": 4},
- {"matrix": [8, 8], "x": 123, "y": 27, "flags": 4},
- {"matrix": [2, 8], "x": 110, "y": 27, "flags": 4},
- {"matrix": [2, 7], "x": 97, "y": 27, "flags": 4},
- {"matrix": [2, 6], "x": 84, "y": 27, "flags": 4},
- {"matrix": [2, 5], "x": 71, "y": 27, "flags": 4},
- {"matrix": [2, 4], "x": 58, "y": 27, "flags": 4},
- {"matrix": [2, 3], "x": 45, "y": 27, "flags": 4},
- {"matrix": [2, 2], "x": 32, "y": 27, "flags": 4},
- {"matrix": [2, 1], "x": 19, "y": 27, "flags": 4},
- {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 4},
- {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4},
- {"matrix": [7, 8], "x": 117, "y": 15, "flags": 4},
- {"matrix": [7, 0], "x": 130, "y": 15, "flags": 4},
- {"matrix": [7, 7], "x": 143, "y": 15, "flags": 4},
- {"matrix": [7, 5], "x": 156, "y": 15, "flags": 4},
- {"matrix": [7, 3], "x": 175, "y": 15, "flags": 1},
- {"matrix": [7, 6], "x": 198, "y": 15, "flags": 1},
- {"matrix": [7, 2], "x": 211, "y": 15, "flags": 1},
- {"matrix": [7, 1], "x": 224, "y": 15, "flags": 1},
- {"matrix": [6, 1], "x": 224, "y": 0, "flags": 1},
- {"matrix": [6, 2], "x": 211, "y": 0, "flags": 1},
- {"matrix": [6, 6], "x": 198, "y": 0, "flags": 1},
- {"matrix": [6, 3], "x": 182, "y": 0, "flags": 1},
- {"matrix": [6, 4], "x": 169, "y": 0, "flags": 1},
- {"matrix": [6, 5], "x": 156, "y": 0, "flags": 1},
- {"matrix": [6, 7], "x": 143, "y": 0, "flags": 1},
- {"matrix": [6, 8], "x": 123, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 97, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 65, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 52, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 39, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 26, "y": 0, "flags": 1},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}
- ],
"max_brightness": 180,
"sleep": true
},
diff --git a/keyboards/idobao/id87/v2/v2.c b/keyboards/idobao/id87/v2/v2.c
new file mode 100644
index 0000000000..7992fb6295
--- /dev/null
+++ b/keyboards/idobao/id87/v2/v2.c
@@ -0,0 +1,83 @@
+// Copyright 2022 vinorodrigues (@vinorodrigues)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "quantum.h"
+
+#define __ NO_LED
+
+#if defined(RGB_MATRIX_ENABLE)
+
+/* Under-, Per-Key
+ * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
+ * │102│ │101│100│99 │98 │ │97 │96 │95 │94 │ │93 │92 │91 │90 │ │89 │88 │87 │
+ * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐
+ * │70 │71 │72 │73 │74 │75 │76 │77 │78 │79 │80 │81 │82 │ 83 │ │84 │85 │86 │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤
+ * │ 69 │68 │67 │66 │65 │64 │63 │62 │61 │60 │59 │58 │57 │ 56 │ │55 │54 │53 │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘
+ * │ 40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │50 │51 │ 52 │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐
+ * │ 39 │38 │37 │36 │35 │34 │33 │32 │31 │30 │29 │ 28 │ │27 │
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐
+ * │ 16 │ 17 │ 18 │ 19 │ 20 │ 21 │ 22 │ 23 │ │24 │25 │26 │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘
+ *
+ * Underglow (as seen from top)
+ * ┌───┬───┬───┬───┬───┬───┬───┐
+ * │14 │13 │12 │11 │10 │ 9 │ 8 │
+ * ├───┼───┴───┴───┴───┴───┼───┤
+ * │15 │ │ 7 │
+ * ├───┼───┬───┬───┬───┬───┼───┤
+ * │ 0 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │
+ * └───┴───┴───┴───┴───┴───┴───┘
+*/
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ // partially generated from: https://xelus.netlify.app/guides/KLE_to_RGB_parser & CSV Excel formula
+
+ { 102, __, 101, 100, 99, 98, 97, 96, 95 },
+ { 70, 71, 72, 73, 74, 75, 76, 77, 78 },
+ { 69, 68, 67, 66, 65, 64, 63, 62, 61 },
+ { 40, 41, 42, 43, 44, 45, 46, 47, 48 },
+ { 39, __, 38, 37, 36, 35, 34, 33, 32 },
+ { 16, 17, 18, 23, 22, __, 19, 21, 20 },
+ { __, 87, 88, 90, 91, 92, 89, 93, 94 },
+ { 80, 86, 85, 83, __, 82, 84, 81, 79 },
+ { __, 53, 54, 56, 57, 58, 55, 59, 60 },
+ { __, __, 27, 52, __, 51, __, 50, 49 },
+ { __, 26, 25, __, 28, 29, 24, 30, 31 }
+}, {
+ // LED Index to Physical Position
+ // generated from: https://xelus.netlify.app/guides/KLE_to_RGB_parser
+ // underglow
+ /* colors are pushed to the edge as only the edges can be seen */
+ { 0,64 }, { 37,64 }, { 75,64 }, {112,64 }, {149,64 }, {187,64 }, {224,64 },
+ {224,32 },
+ {224,0 }, {187,0 }, {149,0 }, {112,0 }, { 75,0 }, { 37,0 }, { 0,0 },
+ { 0,32 },
+ // under-, per-key
+ /* pattern is complex; starts at btm-lft, zig-zags up, and ends top-lft */
+ { 2,64 }, { 18,64 }, { 34,64 }, { 83,64 }, {131,64 }, {148,64 }, {164,64 }, {180,64 }, {198,64 }, {211,64 }, {224,64 }, // lf-2-rt, btm
+ {211,52 }, {170,52 }, {146,52 }, {133,52 }, {120,52 }, {107,52 }, { 94,52 }, { 81,52 }, { 68,52 }, { 55,52 }, { 42,52 }, { 29,52 }, { 8,52 }, // rt-2-lf**
+ { 5,40 }, { 23,40 }, { 36,40 }, { 49,40 }, { 62,40 }, { 75,40 }, { 88,40 }, {101,40 }, {114,40 }, {127,40 }, {140,40 }, {153,40 }, {174,40 }, // lf-2-rt
+ {224,27 }, {211,27 }, {198,27 }, {179,27 }, {162,27 }, {149,27 }, {136,27 }, {123,27 }, {110,27 }, { 97,27 }, { 84,27 }, { 71,27 }, { 58,27 }, { 45,27 }, { 32,27 }, { 19,27 }, { 3,27 }, // rt-2-lf**
+ { 0,15 }, { 13,15 }, { 26,15 }, { 39,15 }, { 52,15 }, { 65,15 }, { 78,15 }, { 91,15 }, {104,15 }, {117,15 }, {130,15 }, {143,15 }, {156,15 }, {175,15 }, {198,15 }, {211,15 }, {224,15 }, // lf-2-rt
+ {224,0 }, {211,0 }, {198,0 }, {182,0 }, {169,0 }, {156,0 }, {143,0 }, {123,0 }, {110,0 }, { 97,0 }, { 84,0 }, { 65,0 }, { 52,0 }, { 39,0 }, { 26,0 }, { 0,0 }, // rt-2-lf**, top
+}, {
+ // LED Index to Flag
+ // underglow
+ 2, 2, 2, 2, 2, 2, 2,
+ 2,
+ 2, 2, 2, 2, 2, 2, 2,
+ 2,
+ // under-, per-key
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
+} };
+
+#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/idobao/montex/v1rgb/keyboard.json b/keyboards/idobao/montex/v1rgb/keyboard.json
index affe87fd1f..1c5252bbea 100755
--- a/keyboards/idobao/montex/v1rgb/keyboard.json
+++ b/keyboards/idobao/montex/v1rgb/keyboard.json
@@ -33,39 +33,6 @@
"solid_splash": true
},
"driver": "ws2812",
- "layout": [
- {"x": 224, "y": 0, "flags": 2},
- {"x": 224, "y": 64, "flags": 2},
- {"x": 0, "y": 64, "flags": 2},
- {"x": 0, "y": 0, "flags": 2},
- {"matrix": [0, 2], "x": 112, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 56, "y": 0, "flags": 1},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4},
- {"matrix": [5, 1], "x": 84, "y": 64, "flags": 4},
- {"matrix": [5, 2], "x": 168, "y": 64, "flags": 4},
- {"matrix": [5, 3], "x": 224, "y": 58, "flags": 4},
- {"matrix": [4, 3], "x": 168, "y": 41, "flags": 4},
- {"matrix": [4, 2], "x": 112, "y": 41, "flags": 4},
- {"matrix": [4, 1], "x": 56, "y": 41, "flags": 4},
- {"matrix": [4, 0], "x": 0, "y": 41, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 29, "flags": 4},
- {"matrix": [3, 1], "x": 56, "y": 29, "flags": 4},
- {"matrix": [3, 2], "x": 112, "y": 29, "flags": 4},
- {"matrix": [3, 3], "x": 168, "y": 29, "flags": 4},
- {"matrix": [2, 4], "x": 224, "y": 35, "flags": 4},
- {"matrix": [2, 3], "x": 168, "y": 29, "flags": 4},
- {"matrix": [2, 2], "x": 112, "y": 29, "flags": 4},
- {"matrix": [2, 1], "x": 56, "y": 29, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 29, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 17, "flags": 4},
- {"matrix": [1, 1], "x": 56, "y": 17, "flags": 4},
- {"matrix": [1, 2], "x": 112, "y": 17, "flags": 4},
- {"matrix": [1, 3], "x": 168, "y": 17, "flags": 4},
- {"matrix": [1, 4], "x": 224, "y": 17, "flags": 4},
- {"matrix": [0, 4], "x": 224, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 168, "y": 0, "flags": 1}
- ],
"max_brightness": 170
},
"features": {
diff --git a/keyboards/idobao/montex/v1rgb/v1rgb.c b/keyboards/idobao/montex/v1rgb/v1rgb.c
new file mode 100755
index 0000000000..b70067cfcf
--- /dev/null
+++ b/keyboards/idobao/montex/v1rgb/v1rgb.c
@@ -0,0 +1,58 @@
+// Copyright 2022 peepeetee (@peepeetee)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+
+/* WS2812 indices always start at 0
+ * underglow = 0-3
+ * note: starting point of 4 and jump from 6 to 7
+ * ┌───┌───┐───┬───┬───┐
+ * │ 6 │ 5 │ 4 │30 │29 │
+ * ├───┼───┘───┼───┼───┤
+ * │24 │25 │26 │27 │28 │
+ * ├───┼───┼───┼───┼───┤
+ * │23 │22 │21 │20 │19 │
+ * ├───┼───┼───┼───┤ │
+ * │15 │16 │17 │18 │ │
+ * ├───┼───┼───┼───┤───┤
+ * │14 │13 │12 │11 │10 │
+ * ├───┼───┴───┼───┤ │
+ * │ 7 │ 8 │ 9 │ │
+ * └───┴───────┴───┘───┘
+ */
+
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 6, 5, 4, 30, 29},
+ { 24, 25, 26, 27, 28},
+ { 23, 22, 21, 20, 19},
+ { 15, 16, 17, 18, NO_LED},
+ { 14, 13, 12, 11, NO_LED},
+ { 7, 8, 9, 10, NO_LED}
+}, {
+ // LED Index to Physical Position
+ /* underglow: because this is under the kb, you want the colors on the edge (corners) of the acrylic plate */
+ { 224,0 }, { 224,64}, { 0,64 }, { 0,0 }, // 0-3 (underglow)
+ /* per-key: origins generated from https://xelus.netlify.app/guides/KLE_to_RGB_parser */
+ { 112,0 }, { 56,0 }, { 0,0 }, /* ---- */ /* ---- */ // 4-6 (top row middle to left)
+ { 0,64 }, { 84,64 }, { 168,64 }, // 7-9 (jump to bottom left)
+ { 224,58 }, { 168,41 }, { 112,41 }, { 56,41 }, { 0,41 }, // 10-14 (flow Z pattern upwards...)
+ { 0,29 }, { 56,29 }, { 112,29 }, { 168,29 }, // 15-18
+ { 224,35 }, { 168,29 }, { 112,29 }, { 56,29 }, { 0,29 }, // 19-23
+ { 0,17 }, { 56,17 }, { 112,17 }, { 168,17 }, { 224,17 }, // 24-28
+ /* ---- */ /* ---- */ /* ---- */ { 224,0 }, { 168,0 } // 29-30 (end at top)
+}, {
+ // LED Index to Flag
+ 2, 2, 2, 2, // 0 1 2 3 (underglow)
+ 1, 1, 1, // 4 5 6
+ 4, 4, 4, 4, // 7 - 10
+ 4, 4, 4, 4, //11 - 14
+ 4, 4, 4, 4, //15 - 18
+ 4, 4, 4, 4, 4, //19 - 23
+ 4, 4, 4, 4, 4, //24 - 28
+ 1, 1 //29 30
+} };
+
+#endif
diff --git a/keyboards/idobao/montex/v2/config.h b/keyboards/idobao/montex/v2/config.h
new file mode 100755
index 0000000000..548f3f62e7
--- /dev/null
+++ b/keyboards/idobao/montex/v2/config.h
@@ -0,0 +1,28 @@
+// Copyright 2022 IBNobody (@IBNobody)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#if defined(RGB_MATRIX_ENABLE)
+ #ifndef ID27_DISABLE_UNDERGLOW
+ #define RGB_MATRIX_LED_COUNT 31 // The number of LEDs connected
+ #else
+ #define RGB_MATRIX_LED_COUNT 27 // -4 disabled underglow LEDs
+ #endif
+#endif // RGB_MATRIX_ENABLE
+
+/* -----------------------
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ * ----------------------- */
+
+/* disable debug print */
+// #define NO_DEBUG
+
+/* disable print */
+// #define NO_PRINT
+
+/* disable action features */
+// #define NO_ACTION_LAYER
+// #define NO_ACTION_TAPPING
+// #define NO_ACTION_ONESHOT
diff --git a/keyboards/idobao/montex/v2/keyboard.json b/keyboards/idobao/montex/v2/keyboard.json
index 0832ed8729..319f46a459 100755
--- a/keyboards/idobao/montex/v2/keyboard.json
+++ b/keyboards/idobao/montex/v2/keyboard.json
@@ -41,39 +41,6 @@
"solid_splash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 4], "x": 224, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 168, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 112, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 56, "y": 0, "flags": 1},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 17, "flags": 4},
- {"matrix": [1, 1], "x": 56, "y": 17, "flags": 4},
- {"matrix": [1, 2], "x": 112, "y": 17, "flags": 4},
- {"matrix": [1, 3], "x": 168, "y": 17, "flags": 4},
- {"matrix": [1, 4], "x": 224, "y": 17, "flags": 4},
- {"matrix": [2, 4], "x": 224, "y": 35, "flags": 4},
- {"matrix": [2, 3], "x": 168, "y": 29, "flags": 4},
- {"matrix": [2, 2], "x": 112, "y": 29, "flags": 4},
- {"matrix": [2, 1], "x": 56, "y": 29, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 29, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 41, "flags": 4},
- {"matrix": [3, 1], "x": 56, "y": 41, "flags": 4},
- {"matrix": [3, 2], "x": 112, "y": 41, "flags": 4},
- {"matrix": [3, 3], "x": 168, "y": 41, "flags": 4},
- {"matrix": [5, 3], "x": 224, "y": 58, "flags": 4},
- {"matrix": [4, 3], "x": 168, "y": 52, "flags": 4},
- {"matrix": [4, 2], "x": 112, "y": 52, "flags": 4},
- {"matrix": [4, 1], "x": 56, "y": 52, "flags": 4},
- {"matrix": [4, 0], "x": 0, "y": 52, "flags": 4},
- {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4},
- {"matrix": [5, 1], "x": 84, "y": 64, "flags": 4},
- {"matrix": [5, 2], "x": 168, "y": 64, "flags": 4},
- {"x": 224, "y": 64, "flags": 2},
- {"x": 0, "y": 64, "flags": 2},
- {"x": 0, "y": 0, "flags": 2},
- {"x": 224, "y": 0, "flags": 2}
- ],
"max_brightness": 180,
"sleep": true
},
diff --git a/keyboards/idobao/montex/v2/post_rules.mk b/keyboards/idobao/montex/v2/post_rules.mk
new file mode 100644
index 0000000000..f2d43fa6ac
--- /dev/null
+++ b/keyboards/idobao/montex/v2/post_rules.mk
@@ -0,0 +1,8 @@
+# some (if not most) Montex have a solid back plate,
+# this enables switching off the bottom facing LEDs
+# Usage: `make idobao/montex/v2:default UNDERGLOW=off`
+
+UNDERGLOW ?= yes
+ifneq ($(strip $(UNDERGLOW)), yes)
+ OPT_DEFS += -DID27_DISABLE_UNDERGLOW
+endif
diff --git a/keyboards/idobao/montex/v2/v2.c b/keyboards/idobao/montex/v2/v2.c
new file mode 100755
index 0000000000..ad6e32a692
--- /dev/null
+++ b/keyboards/idobao/montex/v2/v2.c
@@ -0,0 +1,82 @@
+// Copyright 2022 IBNobody (@IBNobody)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "quantum.h"
+
+#define __ NO_LED
+
+#ifdef RGB_MATRIX_ENABLE
+
+/* Under-, Per-key
+ * ┌───┬───┬───┬───┬───┐
+ * │ 4 │ 3 │ 2 │ 1 │ 0 │
+ * ├───┼───┼───┼───┼───┤
+ * │ 5 │ 6 │ 7 │ 8 │ 9 │
+ * ├───┼───┼───┼───┼───┤
+ * │14 │13 │12 │11 │ │
+ * ├───┼───┼───┼───┤10 │
+ * │15 │16 │17 │18 │ │
+ * ├───┼───┼───┼───┼───┤
+ * │23 │22 │21 │20 │ │
+ * ├───┼───┴───┼───┤19 │
+ * │24 │ 25 │26 │ │
+ * └───┴───────┴───┴───┘
+ *
+ * Underglow (from top / [Esc] = top left)
+ * ┌─────────┬─────────┐
+ * │ │ │
+ * │ │ │
+ * │ 29 │ 30 │
+ * │ │ │
+ * │ │ │
+ * ├─────────┼─────────┤
+ * │ │ │
+ * │ │ │
+ * │ 28 │ 27 │
+ * │ │ │
+ * │ │ │
+ * └─────────┴─────────┘
+ */
+
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ // Montex v2 WS2812 are laid in a Z-shape with index 0 = top-right
+ // Based on: https://xelus.netlify.app/guides/KLE_to_RGB_parser
+ { 4, 3, 2, 1, 0},
+ { 5, 6, 7, 8, 9},
+ { 14, 13, 12, 11, 10},
+ { 15, 16, 17, 18, __},
+ { 23, 22, 21, 20, __},
+ { 24, 25, 26, 19, __}
+}, {
+ // LED Index to Physical Position
+ // per-key
+ // Based on: https://xelus.netlify.app/guides/KLE_to_RGB_parser
+ {224,0 }, {168,0 }, {112,0 }, { 56,0 }, { 0,0 }, // top row
+ { 0,17 }, { 56,17 }, {112,17 }, {168,17 }, {224,17 }, // num-lk & /*- (reversed)
+ {224,35 }, {168,29 }, {112,29 }, { 56,29 }, { 0,29 }, // 789+
+ { 0,41 }, { 56,41 }, {112,41 }, {168,41 }, // 456 (reversed)
+ {224,58 }, {168,52 }, {112,52 }, { 56,52 }, // 123
+ { 0,52 }, { 0,64 }, { 84,64 }, {168,64 } // 0. & enter (reversed)
+ // underglow LEDs (positions pushed to nearest edge to match edge key colors)
+ #ifndef ID27_DISABLE_UNDERGLOW
+ , {224,64 }, { 0,64 },
+ { 0,0 }, { 224,0 }
+ #endif
+}, {
+ // LED Index to Flag
+ // LED_FLAG_MODIFIER 0x01, LED_FLAG_UNDERGLOW 0x02, LED_FLAG_KEYLIGHT 0x04, LED_FLAG_INDICATOR 0x08
+ // per-key
+ 1, 1, 1, 1, 1,
+ 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4,
+ 4, 4, 4, 4,
+ 4, 4, 4, 4,
+ 4, 4, 4, 4
+ // underglow
+ #ifndef ID27_DISABLE_UNDERGLOW
+ , 2, 2, 2, 2
+ #endif
+} };
+
+#endif
diff --git a/keyboards/idyllic/tinny50_rgb/keyboard.json b/keyboards/idyllic/tinny50_rgb/keyboard.json
index e3d44714ab..4d3cd320dd 100644
--- a/keyboards/idyllic/tinny50_rgb/keyboard.json
+++ b/keyboards/idyllic/tinny50_rgb/keyboard.json
@@ -59,39 +59,7 @@
"default": {
"val": 223
},
- "driver": "ws2812",
- "layout": [
- {"x": 126, "y": 64, "flags": 2},
- {"x": 108, "y": 64, "flags": 2},
- {"x": 90, "y": 64, "flags": 2},
- {"x": 72, "y": 64, "flags": 2},
- {"x": 54, "y": 64, "flags": 2},
- {"x": 36, "y": 64, "flags": 2},
- {"x": 18, "y": 64, "flags": 2},
- {"x": 0, "y": 52, "flags": 2},
- {"x": 0, "y": 39, "flags": 2},
- {"x": 0, "y": 26, "flags": 2},
- {"x": 0, "y": 13, "flags": 2},
- {"x": 18, "y": 0, "flags": 2},
- {"x": 36, "y": 0, "flags": 2},
- {"x": 54, "y": 0, "flags": 2},
- {"x": 72, "y": 0, "flags": 2},
- {"x": 90, "y": 0, "flags": 2},
- {"x": 108, "y": 0, "flags": 2},
- {"x": 126, "y": 0, "flags": 2},
- {"x": 144, "y": 0, "flags": 2},
- {"x": 162, "y": 0, "flags": 2},
- {"x": 180, "y": 0, "flags": 2},
- {"x": 198, "y": 0, "flags": 2},
- {"x": 224, "y": 13, "flags": 2},
- {"x": 224, "y": 26, "flags": 2},
- {"x": 224, "y": 39, "flags": 2},
- {"x": 224, "y": 52, "flags": 2},
- {"x": 198, "y": 64, "flags": 2},
- {"x": 180, "y": 64, "flags": 2},
- {"x": 162, "y": 64, "flags": 2},
- {"x": 144, "y": 64, "flags": 2}
- ]
+ "driver": "ws2812"
},
"ws2812": {
"pin": "GP10",
diff --git a/keyboards/idyllic/tinny50_rgb/tinny50_rgb.c b/keyboards/idyllic/tinny50_rgb/tinny50_rgb.c
new file mode 100644
index 0000000000..d8b06b8fb6
--- /dev/null
+++ b/keyboards/idyllic/tinny50_rgb/tinny50_rgb.c
@@ -0,0 +1,45 @@
+/*
+Copyright 2022 Zykrah
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED},
+ {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED},
+ {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED},
+ {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED},
+ {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}
+ }, {
+ // LED Index to Physical Position
+ {150, 64}, {130, 64}, {110, 64}, { 90, 64}, { 70, 64}, { 50, 64}, { 30, 64},
+ { 0, 52}, { 0, 39}, { 0, 26}, { 0, 13},
+ { 30, 0}, { 50, 0}, { 70, 0}, { 90, 0}, {110, 0}, {130, 0}, {150, 0}, {170, 0}, {190, 0}, {210, 0}, {230, 0},
+ {255, 13}, {255, 26}, {255, 39}, {255, 52},
+ {230, 64}, {210, 64}, {190, 64}, {170, 64}
+ }, {
+ // LED Index to Flag
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // UNDERGLOW
+ 2, 2, 2, 2, // UNDERGLOW
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // UNDERGLOW
+ 2, 2, 2, 2, // UNDERGLOW
+ }
+};
+#endif
+
diff --git a/keyboards/ilumkb/simpler61/keyboard.json b/keyboards/ilumkb/simpler61/keyboard.json
index eb98400603..10e182dac8 100644
--- a/keyboards/ilumkb/simpler61/keyboard.json
+++ b/keyboards/ilumkb/simpler61/keyboard.json
@@ -43,69 +43,6 @@
"animation": "cycle_all"
},
"driver": "is31fl3741",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 216, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 2, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 114, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 130, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 162, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 178, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 204, "y": 32, "flags": 4},
- {"matrix": [3, 0], "x": 9, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 36, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 68, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 84, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 100, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 116, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 132, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 148, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 164, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 180, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 202, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 224, "y": 48, "flags": 4},
- {"matrix": [4, 0], "x": 4, "y": 64, "flags": 4},
- {"matrix": [4, 1], "x": 24, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 44, "y": 64, "flags": 4},
- {"matrix": [4, 5], "x": 112, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 180, "y": 64, "flags": 4},
- {"matrix": [4, 11], "x": 200, "y": 64, "flags": 4},
- {"matrix": [4, 13], "x": 220, "y": 64, "flags": 4}
- ],
"led_process_limit": 4,
"led_flush_limit": 26,
"sleep": true
diff --git a/keyboards/ilumkb/simpler61/simpler61.c b/keyboards/ilumkb/simpler61/simpler61.c
index afff4dbc36..99cefc7844 100644
--- a/keyboards/ilumkb/simpler61/simpler61.c
+++ b/keyboards/ilumkb/simpler61/simpler61.c
@@ -84,4 +84,27 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, SW7_CS30, SW7_CS29, SW7_CS28},
{0, SW5_CS30, SW5_CS29, SW5_CS28},
};
+
+led_config_t g_led_config = {
+ {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13},
+ { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27},
+ { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40},
+ { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, NO_LED, 53},
+ { 54, 55, 56, NO_LED, NO_LED, 57, NO_LED, NO_LED, NO_LED, NO_LED, 58, 59, NO_LED, 60},
+ }, {
+ {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {216, 0},
+ {4, 16}, {24, 16}, {40, 16}, {56, 16}, {72, 16}, {88, 16}, {104, 16}, {120, 16}, {136, 16}, {152, 16}, {168, 16}, {184, 16}, {200, 16}, {220, 16},
+ {2, 32}, {28, 32}, {44, 32}, {60, 32}, {76, 32}, {92, 32}, {108, 32}, {114, 32}, {130, 32}, {146, 32}, {162, 32}, {178, 32}, {204, 32},
+ {9, 48}, {36, 48}, {52, 48}, {68, 48}, {84, 48}, {100, 48}, {116, 48}, {132, 48}, {148, 48}, {164, 48}, {180, 48}, {202, 48}, {224, 48},
+ {4, 64}, {24, 64}, {44, 64}, {112, 64}, {180, 64}, {200, 64}, {220, 64},
+ }, {
+ 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, 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, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4,
+ }
+};
+
#endif
diff --git a/keyboards/ilumkb/simpler64/keyboard.json b/keyboards/ilumkb/simpler64/keyboard.json
index b49c986d86..240d0d67c2 100644
--- a/keyboards/ilumkb/simpler64/keyboard.json
+++ b/keyboards/ilumkb/simpler64/keyboard.json
@@ -43,72 +43,6 @@
"animation": "cycle_all"
},
"driver": "is31fl3741",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 216, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 114, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 130, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 162, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 178, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 204, "y": 32, "flags": 4},
- {"matrix": [3, 0], "x": 8, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 32, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 48, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 80, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 96, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 112, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 138, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 154, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 160, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 176, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 192, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 208, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 224, "y": 48, "flags": 4},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 4},
- {"matrix": [4, 1], "x": 22, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 42, "y": 64, "flags": 4},
- {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 160, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 176, "y": 64, "flags": 4},
- {"matrix": [4, 11], "x": 192, "y": 64, "flags": 4},
- {"matrix": [4, 12], "x": 208, "y": 64, "flags": 4},
- {"matrix": [4, 13], "x": 224, "y": 64, "flags": 4}
- ],
"led_process_limit": 4,
"led_flush_limit": 26,
"sleep": true
diff --git a/keyboards/ilumkb/simpler64/simpler64.c b/keyboards/ilumkb/simpler64/simpler64.c
index aa0a97fe54..21892a55f4 100644
--- a/keyboards/ilumkb/simpler64/simpler64.c
+++ b/keyboards/ilumkb/simpler64/simpler64.c
@@ -87,4 +87,27 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, SW6_CS30, SW6_CS29, SW6_CS28},
{0, SW5_CS30, SW5_CS29, SW5_CS28},
};
+
+led_config_t g_led_config = {
+ {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13},
+ { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27},
+ { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40},
+ { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54},
+ { 55, 56, 57, NO_LED, NO_LED, 58, NO_LED, NO_LED, NO_LED, 59, 60, 61, 62, 63},
+ }, {
+ {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {216, 0},
+ {4, 16}, {24, 16}, {40, 16}, {56, 16}, {72, 16}, {88, 16}, {104, 16}, {120, 16}, {136, 16}, {152, 16}, {168, 16}, {184, 16}, {200, 16}, {220, 16},
+ {6, 32}, {28, 32}, {44, 32}, {60, 32}, {76, 32}, {92, 32}, {108, 32}, {114, 32}, {130, 32}, {146, 32}, {162, 32}, {178, 32}, {204, 32},
+ {8, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {138, 48}, {154, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, {224, 48},
+ {2, 64}, {22, 64}, {42, 64}, {102, 64}, {160, 64}, {176, 64}, {192, 64}, {208, 64}, {224, 64},
+ }, {
+ 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, 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, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ }
+};
+
#endif
diff --git a/keyboards/inett_studio/sqx/hotswap/hotswap.c b/keyboards/inett_studio/sqx/hotswap/hotswap.c
index da9f0fd617..dc12ec4f30 100644
--- a/keyboards/inett_studio/sqx/hotswap/hotswap.c
+++ b/keyboards/inett_studio/sqx/hotswap/hotswap.c
@@ -114,6 +114,44 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
{1, C9_16, C7_15, C6_15},
};
+led_config_t g_led_config = {
+ {
+ { 18, 19, 20, 21, 22, 23, 24, 16, 17, 36, 37, 38, 39, 40},
+ { 26, 27, 28, 29, 30, 31, 25, 48, 41, 42, 43, 44, 45, 46},
+ { 8, 7, 0, 32, 33, 34, 35, 49, 50, 51, 52, 53, NO_LED, 47},
+ { 9, NO_LED, 10, 1, 2, 3, 4, 5, 56, 55, 57, 58, 59, 54},
+ { 14, 13, 12, 11, NO_LED, NO_LED, 6, 15, NO_LED, NO_LED, 60, 61, 62, 63},
+ },
+ {
+ { 48, 32},{ 48, 48},{ 64, 48},{ 80, 48},{ 96, 48},{112, 48},{112, 64},{ 32, 32},
+ { 16, 32},{ 16, 48}, { 32, 48},{ 64, 64},{ 40, 64},{ 20, 64},{ 0, 64},
+
+ { 0, 0},{ 16, 0},{ 32, 0},{ 48, 0},{ 64, 0},{ 80, 0},{ 96, 0},{ 96, 16},
+ { 0, 16},{ 16, 16},
+ { 32, 16},{ 48, 16},{ 64, 16},{ 80, 16},{ 64, 32},{ 80, 32},{ 96, 32},{112, 32},
+
+ {112, 0},{128, 0},{144, 0},{160, 0},{176, 0},{192, 0},{208, 0},{224, 0},
+ {128, 16},{144, 16},{160, 16},{176, 16},{192, 16},{216, 16},{216, 32},{112, 16},
+
+ {128, 32},{144, 32},{160, 32},{176, 32},{192, 32}, {224, 48},{144, 48},
+ {128, 48},{160, 48},{176, 48},{192, 48},{160, 64},{180, 64},{200, 64},{224, 64}
+ },
+ {
+ 4, 4, 4, 4, 4, 4, 4, 4,
+ 1, 1, 4, 1, 1, 1, 1,
+
+ 1, 4, 4, 4, 4, 4, 4, 4,
+ 1, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4,
+
+ 4, 4, 4, 4, 4, 4, 1, 1,
+ 4, 4, 4, 4, 4, 1, 1, 4,
+
+ 4, 4, 4, 4, 4, 1, 4,
+ 4, 4, 4, 1, 1, 1, 1, 1,
+ }
+};
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/inett_studio/sqx/hotswap/keyboard.json b/keyboards/inett_studio/sqx/hotswap/keyboard.json
index a7dd508f3f..0c28be4582 100644
--- a/keyboards/inett_studio/sqx/hotswap/keyboard.json
+++ b/keyboards/inett_studio/sqx/hotswap/keyboard.json
@@ -40,72 +40,6 @@
"pixel_fractal": true
},
"driver": "is31fl3731",
- "layout": [
- {"matrix": [2, 2], "x": 48, "y": 32, "flags": 4},
- {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4},
- {"matrix": [4, 6], "x": 112, "y": 64, "flags": 4},
- {"matrix": [2, 1], "x": 32, "y": 32, "flags": 4},
- {"matrix": [2, 0], "x": 16, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 16, "y": 48, "flags": 1},
- {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4},
- {"matrix": [4, 3], "x": 64, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 40, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 20, "y": 64, "flags": 1},
- {"matrix": [4, 0], "x": 0, "y": 64, "flags": 1},
- {"matrix": [4, 7], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 0], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 96, "y": 16, "flags": 4},
- {"matrix": [0, 5], "x": 0, "y": 16, "flags": 1},
- {"matrix": [0, 6], "x": 16, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 32, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 48, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 64, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 80, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 64, "y": 32, "flags": 4},
- {"matrix": [1, 4], "x": 80, "y": 32, "flags": 4},
- {"matrix": [1, 5], "x": 96, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 112, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 112, "y": 0, "flags": 4},
- {"matrix": [2, 5], "x": 128, "y": 0, "flags": 4},
- {"matrix": [2, 6], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 192, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 208, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 216, "y": 16, "flags": 1},
- {"matrix": [2, 13], "x": 216, "y": 32, "flags": 1},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [2, 7], "x": 128, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 144, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 160, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 192, "y": 32, "flags": 4},
- {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1},
- {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 192, "y": 48, "flags": 1},
- {"matrix": [4, 10], "x": 160, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 180, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 200, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}
- ],
"max_brightness": 170
},
"rgblight": {
diff --git a/keyboards/inett_studio/sqx/universal/keyboard.json b/keyboards/inett_studio/sqx/universal/keyboard.json
index 7e207f0eb1..2c2b03bd0d 100644
--- a/keyboards/inett_studio/sqx/universal/keyboard.json
+++ b/keyboards/inett_studio/sqx/universal/keyboard.json
@@ -40,80 +40,6 @@
"pixel_fractal": true
},
"driver": "is31fl3731",
- "layout": [
- {"matrix": [0, 0], "x": 32, "y": 32, "flags": 4},
- {"matrix": [0, 1], "x": 48, "y": 48, "flags": 4},
- {"matrix": [0, 2], "x": 64, "y": 48, "flags": 4},
- {"matrix": [0, 3], "x": 80, "y": 48, "flags": 4},
- {"matrix": [0, 4], "x": 96, "y": 48, "flags": 4},
- {"matrix": [0, 5], "x": 112, "y": 48, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 64, "flags": 4},
- {"matrix": [1, 6], "x": 96, "y": 64, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 32, "flags": 1},
- {"matrix": [1, 1], "x": 16, "y": 32, "flags": 4},
- {"matrix": [1, 2], "x": 0, "y": 48, "flags": 4},
- {"matrix": [1, 3], "x": 0, "y": 48, "flags": 4},
- {"matrix": [1, 4], "x": 16, "y": 48, "flags": 1},
- {"matrix": [1, 5], "x": 32, "y": 48, "flags": 1},
- {"matrix": [2, 3], "x": 64, "y": 64, "flags": 1},
- {"matrix": [2, 4], "x": 32, "y": 64, "flags": 4},
- {"matrix": [2, 5], "x": 16, "y": 64, "flags": 4},
- {"matrix": [2, 6], "x": 0, "y": 64, "flags": 4},
- {"matrix": [2, 2], "x": 0, "y": 0, "flags": 1},
- {"matrix": [3, 3], "x": 16, "y": 0, "flags": 4},
- {"matrix": [3, 4], "x": 32, "y": 0, "flags": 4},
- {"matrix": [3, 5], "x": 48, "y": 0, "flags": 4},
- {"matrix": [3, 6], "x": 64, "y": 0, "flags": 4},
- {"matrix": [3, 7], "x": 80, "y": 0, "flags": 4},
- {"matrix": [4, 6], "x": 96, "y": 0, "flags": 4},
- {"x": 96, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 16, "flags": 1},
- {"matrix": [2, 1], "x": 16, "y": 16, "flags": 4},
- {"x": 32, "y": 16, "flags": 4},
- {"matrix": [3, 0], "x": 48, "y": 16, "flags": 4},
- {"matrix": [3, 1], "x": 64, "y": 16, "flags": 4},
- {"matrix": [3, 2], "x": 80, "y": 16, "flags": 4},
- {"x": 48, "y": 32, "flags": 4},
- {"matrix": [4, 2], "x": 64, "y": 32, "flags": 4},
- {"matrix": [4, 1], "x": 80, "y": 32, "flags": 4},
- {"matrix": [4, 0], "x": 96, "y": 32, "flags": 4},
- {"matrix": [0, 7], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 192, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 208, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1},
- {"x": 224, "y": 0, "flags": 1},
- {"matrix": [4, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [1, 7], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 144, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 160, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 176, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 192, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 208, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 224, "y": 16, "flags": 1},
- {"x": 224, "y": 32, "flags": 1},
- {"matrix": [2, 13], "x": 216, "y": 32, "flags": 1},
- {"matrix": [2, 7], "x": 128, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 144, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 160, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 192, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 208, "y": 32, "flags": 4},
- {"x": 208, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1},
- {"matrix": [3, 8], "x": 128, "y": 48, "flags": 1},
- {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 192, "y": 48, "flags": 4},
- {"x": 142, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 160, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 176, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 208, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}
- ],
"max_brightness": 170
},
"rgblight": {
diff --git a/keyboards/inett_studio/sqx/universal/universal.c b/keyboards/inett_studio/sqx/universal/universal.c
index 0f92fa3807..105e89ecc5 100644
--- a/keyboards/inett_studio/sqx/universal/universal.c
+++ b/keyboards/inett_studio/sqx/universal/universal.c
@@ -114,6 +114,48 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
{1, C9_16, C7_15, C6_15},
};
+led_config_t g_led_config = {
+ {
+ { 0, 1, 2, 3, 4, 5, 6, 36, 37, 38, 39, 40, 41, 42},
+ { 8, 9, 10, 11, 12, 13, 7, 45, 46, 47, 48, 49, 50, 51},
+ { 26,27, 18, 14, 15, 16, 17, 54, 55, 56, 57, 58, 59, 53},
+ { 29,30, 31, 19, 20, 21, 22, 23, 62, 63, 64, 65, 66, 61},
+ { 35,34, 33, NO_LED, NO_LED, NO_LED, 24, 44, NO_LED, NO_LED, 68, 69, 70, 71},
+ },
+ {
+ { 32, 32},{ 48, 48},{ 64, 48},{ 80, 48},{ 96, 48},{112, 48},{ 96, 64},{ 96, 64},
+ { 0, 32},{ 16, 32},
+ { 0, 48},{ 0, 48},{ 16, 48},{ 32, 48},{ 64, 64},{ 32, 64},{ 16, 64},{ 0, 64},
+ { 0, 0},{ 16, 0},{ 32, 0},{ 48, 0},{ 64, 0},{ 80, 0},{ 96, 0},{ 96, 16},
+ { 0, 16},{ 16, 16},
+ { 32, 16},{ 48, 16},{ 64, 16},{ 80, 16},{ 48, 32},{ 64, 32},{ 80, 32},{ 96, 32},
+
+ {128, 0},{144, 0},{160, 0},{176, 0},{192, 0},{208, 0},{216, 0},{224, 0},
+ {112, 0},{128, 16},
+ {144, 16},{160, 16},{176, 16},{192, 16},{208, 16},{224, 16},{224, 32},{216, 32},
+ {128, 32},{144, 32},{160, 32},{176, 32},{192, 32},{208, 32},{208, 48},{224, 48},
+ {128, 48},{144, 48},
+ {160, 48},{176, 48},{192, 48},{142, 64},{160, 64},{176, 64},{208, 64},{224, 64}
+ },
+ {
+ 4, 4, 4, 4, 4, 4, 4, 4,
+ 1, 4,
+ 4, 4, 1, 1, 1, 4, 4, 4,
+
+ 1, 4, 4, 4, 4, 4, 4, 4,
+ 1, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4,
+
+ 4, 4, 4, 4, 4, 4, 1, 1,
+ 4, 4,
+ 4, 4, 4, 4, 4, 1, 1, 1,
+
+ 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4,
+ 4, 4, 4, 4, 1, 1, 1, 1,
+ }
+};
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/input_club/k_type/k_type.c b/keyboards/input_club/k_type/k_type.c
index 2fd1bd0612..c719208af1 100644
--- a/keyboards/input_club/k_type/k_type.c
+++ b/keyboards/input_club/k_type/k_type.c
@@ -150,6 +150,57 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
{ 1, SW11_CS7, SW10_CS7, SW12_CS7 }
};
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },
+ { 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 },
+ { 20, 21, 22, 23, 24, 25, 26, 27, 28, NO_LED },
+ { 29, NO_LED, 30, 31, 32, 33, 34, 35, 36, 37 },
+ { 38, 39, 40, 41, 42, 43, 44, 45, 46, NO_LED },
+ { 47, 48, 49, 50, 51, 52, 53, 54, 55, 56 },
+ { 57, 58, 59, 60, 61, NO_LED, 62, NO_LED, 63, NO_LED },
+ { 64, 65, 66, 67, 68, 69, 70, 71, 72, 73 },
+ { NO_LED, 74, NO_LED, 75, 76, 77, 78, 79, 80, 81 },
+ { 82, 83, 84, 85, 86, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }
+ }, {
+ // LED Index to Physical Position
+ // Key LED
+ { 0, 0 }, { 26, 0 }, { 39, 0 }, { 52, 0 }, { 65, 0 }, { 79, 0 }, { 92, 0 }, { 105, 0 }, { 118, 0 }, { 131, 0 }, { 144, 0 }, { 158, 0 }, { 171, 0 }, { 197, 0 }, { 210, 0 }, { 224, 0 },
+
+ { 0, 21 }, { 13, 21 }, { 26, 21 }, { 39, 21 }, { 52, 21 }, { 65, 21 }, { 79, 21 }, { 92, 21 }, { 105, 21 }, { 118, 21 }, { 131, 21 }, { 144, 21 }, { 158, 21 }, { 171, 21 }, { 197, 21 }, { 210, 21 }, { 224, 21 },
+ { 0, 32 }, { 13, 32 }, { 26, 32 }, { 39, 32 }, { 52, 32 }, { 65, 32 }, { 79, 32 }, { 92, 32 }, { 105, 32 }, { 118, 32 }, { 131, 32 }, { 144, 32 }, { 158, 32 }, { 171, 32 }, { 197, 32 }, { 210, 32 }, { 224, 32 },
+ { 0, 42 }, { 13, 42 }, { 26, 42 }, { 39, 42 }, { 52, 42 }, { 65, 42 }, { 79, 42 }, { 92, 42 }, { 105, 42 }, { 118, 42 }, { 131, 42 }, { 144, 42 }, { 171, 42 },
+ { 0, 53 }, { 26, 53 }, { 39, 53 }, { 52, 53 }, { 65, 53 }, { 79, 53 }, { 92, 53 }, { 105, 53 }, { 118, 53 }, { 131, 53 }, { 144, 53 }, { 171, 53 }, { 210, 53 },
+ { 0, 64 }, { 13, 64 }, { 26, 64 }, { 79, 64 }, { 131, 64 }, { 144, 64 }, { 158, 64 }, { 171, 64 }, { 197, 64 }, { 210, 64 }, { 224, 64 },
+
+ // Underglow LED
+ { 224, 64 }, { 206, 64 }, { 189, 64 }, { 172, 64 }, { 155, 64 }, { 137, 64 }, { 120, 64 }, { 103, 64 }, { 86, 64 }, { 68, 64 }, { 51, 64 }, { 34, 64 }, { 17, 64 }, { 0, 64 },
+ { 0, 42 }, { 0, 21 },
+ { 0, 0 }, { 17, 0 }, { 34, 0 }, { 51, 0 }, { 68, 0 }, { 86, 0 }, { 103, 0 }, { 120, 0 }, { 137, 0 }, { 155, 0 }, { 172, 0 }, { 189, 0 }, { 206, 0 }, { 224, 0 },
+ { 224, 21 }, { 224, 42 }
+ }, {
+ // LED Index to Flag
+ //Key LED
+ 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1,
+
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
+
+ // Underglow LED
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+
+ 2, 2,
+
+ 2, 2,
+
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ }
+};
+
void matrix_init_kb(void) {
// put your keyboard start-up code here
// runs once when the firmware starts up
diff --git a/keyboards/input_club/k_type/keyboard.json b/keyboards/input_club/k_type/keyboard.json
index 99ff1fe5b6..ed004335c0 100644
--- a/keyboards/input_club/k_type/keyboard.json
+++ b/keyboards/input_club/k_type/keyboard.json
@@ -53,128 +53,7 @@
"solid_splash": true,
"solid_multisplash": true
},
- "driver": "custom",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 26, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 39, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 65, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 79, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 92, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 118, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 131, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 144, "y": 0, "flags": 4},
- {"matrix": [1, 1], "x": 158, "y": 0, "flags": 4},
- {"matrix": [1, 2], "x": 171, "y": 0, "flags": 4},
- {"matrix": [1, 3], "x": 197, "y": 0, "flags": 1},
- {"matrix": [1, 4], "x": 210, "y": 0, "flags": 1},
- {"matrix": [1, 5], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 6], "x": 0, "y": 21, "flags": 1},
- {"matrix": [1, 7], "x": 13, "y": 21, "flags": 4},
- {"matrix": [1, 8], "x": 26, "y": 21, "flags": 4},
- {"matrix": [1, 9], "x": 39, "y": 21, "flags": 4},
- {"matrix": [2, 0], "x": 52, "y": 21, "flags": 4},
- {"matrix": [2, 1], "x": 65, "y": 21, "flags": 4},
- {"matrix": [2, 2], "x": 79, "y": 21, "flags": 4},
- {"matrix": [2, 3], "x": 92, "y": 21, "flags": 4},
- {"matrix": [2, 4], "x": 105, "y": 21, "flags": 4},
- {"matrix": [2, 5], "x": 118, "y": 21, "flags": 4},
- {"matrix": [2, 6], "x": 131, "y": 21, "flags": 4},
- {"matrix": [2, 7], "x": 144, "y": 21, "flags": 4},
- {"matrix": [2, 8], "x": 158, "y": 21, "flags": 4},
- {"matrix": [3, 0], "x": 171, "y": 21, "flags": 1},
- {"matrix": [3, 2], "x": 197, "y": 21, "flags": 4},
- {"matrix": [3, 3], "x": 210, "y": 21, "flags": 4},
- {"matrix": [3, 4], "x": 224, "y": 21, "flags": 4},
- {"matrix": [3, 5], "x": 0, "y": 32, "flags": 1},
- {"matrix": [3, 6], "x": 13, "y": 32, "flags": 4},
- {"matrix": [3, 7], "x": 26, "y": 32, "flags": 4},
- {"matrix": [3, 8], "x": 39, "y": 32, "flags": 4},
- {"matrix": [3, 9], "x": 52, "y": 32, "flags": 4},
- {"matrix": [4, 0], "x": 65, "y": 32, "flags": 4},
- {"matrix": [4, 1], "x": 79, "y": 32, "flags": 4},
- {"matrix": [4, 2], "x": 92, "y": 32, "flags": 4},
- {"matrix": [4, 3], "x": 105, "y": 32, "flags": 4},
- {"matrix": [4, 4], "x": 118, "y": 32, "flags": 4},
- {"matrix": [4, 5], "x": 131, "y": 32, "flags": 4},
- {"matrix": [4, 6], "x": 144, "y": 32, "flags": 4},
- {"matrix": [4, 7], "x": 158, "y": 32, "flags": 4},
- {"matrix": [4, 8], "x": 171, "y": 32, "flags": 4},
- {"matrix": [5, 0], "x": 197, "y": 32, "flags": 4},
- {"matrix": [5, 1], "x": 210, "y": 32, "flags": 4},
- {"matrix": [5, 2], "x": 224, "y": 32, "flags": 4},
- {"matrix": [5, 3], "x": 0, "y": 42, "flags": 1},
- {"matrix": [5, 4], "x": 13, "y": 42, "flags": 4},
- {"matrix": [5, 5], "x": 26, "y": 42, "flags": 4},
- {"matrix": [5, 6], "x": 39, "y": 42, "flags": 4},
- {"matrix": [5, 7], "x": 52, "y": 42, "flags": 4},
- {"matrix": [5, 8], "x": 65, "y": 42, "flags": 4},
- {"matrix": [5, 9], "x": 79, "y": 42, "flags": 4},
- {"matrix": [6, 0], "x": 92, "y": 42, "flags": 4},
- {"matrix": [6, 1], "x": 105, "y": 42, "flags": 4},
- {"matrix": [6, 2], "x": 118, "y": 42, "flags": 4},
- {"matrix": [6, 3], "x": 131, "y": 42, "flags": 4},
- {"matrix": [6, 4], "x": 144, "y": 42, "flags": 4},
- {"matrix": [6, 6], "x": 171, "y": 42, "flags": 1},
- {"matrix": [6, 8], "x": 0, "y": 53, "flags": 1},
- {"matrix": [7, 0], "x": 26, "y": 53, "flags": 4},
- {"matrix": [7, 1], "x": 39, "y": 53, "flags": 4},
- {"matrix": [7, 2], "x": 52, "y": 53, "flags": 4},
- {"matrix": [7, 3], "x": 65, "y": 53, "flags": 4},
- {"matrix": [7, 4], "x": 79, "y": 53, "flags": 4},
- {"matrix": [7, 5], "x": 92, "y": 53, "flags": 4},
- {"matrix": [7, 6], "x": 105, "y": 53, "flags": 4},
- {"matrix": [7, 7], "x": 118, "y": 53, "flags": 4},
- {"matrix": [7, 8], "x": 131, "y": 53, "flags": 4},
- {"matrix": [7, 9], "x": 144, "y": 53, "flags": 4},
- {"matrix": [8, 1], "x": 171, "y": 53, "flags": 1},
- {"matrix": [8, 3], "x": 210, "y": 53, "flags": 1},
- {"matrix": [8, 4], "x": 0, "y": 64, "flags": 1},
- {"matrix": [8, 5], "x": 13, "y": 64, "flags": 1},
- {"matrix": [8, 6], "x": 26, "y": 64, "flags": 1},
- {"matrix": [8, 7], "x": 79, "y": 64, "flags": 4},
- {"matrix": [8, 8], "x": 131, "y": 64, "flags": 1},
- {"matrix": [8, 9], "x": 144, "y": 64, "flags": 1},
- {"matrix": [9, 0], "x": 158, "y": 64, "flags": 1},
- {"matrix": [9, 1], "x": 171, "y": 64, "flags": 1},
- {"matrix": [9, 2], "x": 197, "y": 64, "flags": 1},
- {"matrix": [9, 3], "x": 210, "y": 64, "flags": 1},
- {"matrix": [9, 4], "x": 224, "y": 64, "flags": 1},
- {"x": 224, "y": 64, "flags": 2},
- {"x": 206, "y": 64, "flags": 2},
- {"x": 189, "y": 64, "flags": 2},
- {"x": 172, "y": 64, "flags": 2},
- {"x": 155, "y": 64, "flags": 2},
- {"x": 137, "y": 64, "flags": 2},
- {"x": 120, "y": 64, "flags": 2},
- {"x": 103, "y": 64, "flags": 2},
- {"x": 86, "y": 64, "flags": 2},
- {"x": 68, "y": 64, "flags": 2},
- {"x": 51, "y": 64, "flags": 2},
- {"x": 34, "y": 64, "flags": 2},
- {"x": 17, "y": 64, "flags": 2},
- {"x": 0, "y": 64, "flags": 2},
- {"x": 0, "y": 42, "flags": 2},
- {"x": 0, "y": 21, "flags": 2},
- {"x": 0, "y": 0, "flags": 2},
- {"x": 17, "y": 0, "flags": 2},
- {"x": 34, "y": 0, "flags": 2},
- {"x": 51, "y": 0, "flags": 2},
- {"x": 68, "y": 0, "flags": 2},
- {"x": 86, "y": 0, "flags": 2},
- {"x": 103, "y": 0, "flags": 2},
- {"x": 120, "y": 0, "flags": 2},
- {"x": 137, "y": 0, "flags": 2},
- {"x": 155, "y": 0, "flags": 2},
- {"x": 172, "y": 0, "flags": 2},
- {"x": 189, "y": 0, "flags": 2},
- {"x": 206, "y": 0, "flags": 2},
- {"x": 224, "y": 0, "flags": 2},
- {"x": 224, "y": 21, "flags": 2},
- {"x": 224, "y": 42, "flags": 2}
- ]
+ "driver": "custom"
},
"features": {
"bootmagic": false,
diff --git a/keyboards/joshajohnson/hub20/hub20.c b/keyboards/joshajohnson/hub20/hub20.c
new file mode 100644
index 0000000000..8b1c58e1f7
--- /dev/null
+++ b/keyboards/joshajohnson/hub20/hub20.c
@@ -0,0 +1,171 @@
+/* Copyright 2020 joshajohnson 2021 peepeetee
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ {NO_LED,NO_LED,NO_LED,NO_LED},
+ { 7, 8, 9, 10},
+ { 11, 12, 13, 14},
+ { 15, 16, 17, 18},
+ { 19, 20, 21, 22},
+ { 23, 24, 25, 26}
+ //todo: assign leds to keys differently for the different layouts
+}, {
+ // LED Index to Physical Position
+ { 190, 50}, { 111, 50}, { 35, 50}, {38, 0}, {38, 35}, {186, 35}, {186, 0}, // UNDERGLOW
+ //todo: underglow location needs to be recalculated. The top row is above row 4, and for now they have the same y value 0
+ { 0, 0}, {75, 0}, {150, 0}, {225, 0}, // row 4
+ { 0, 16}, {75, 16}, {150, 16}, {225, 16}, // row 3
+ { 0, 32}, {75, 32}, {150, 32}, {225, 32}, // row 2
+ { 0, 48}, {75, 48}, {150, 48}, {225, 48}, // row 1
+ { 0, 64}, {75, 64}, {150, 64}, {225, 64} // row 0
+
+}, {
+ // LED Index to Flag
+ LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, // UNDERGLOW
+ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // row 4
+ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // row 3
+ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // row 2
+ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // row 1
+ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT // row 0
+
+} };
+#endif
+
+
+
+// #if LED_MERGE_NUMPAD_LEFT_HANDED_ENTER && LED_MERGE_NUMPAD_RIGHT_HANDED_ZERO
+// #error lower left enter conflicts with lower left zero
+// #endif
+
+// #if LED_MERGE_NUMPAD_RIGHT_HANDED_ENTER && LED_MERGE_NUMPAD_LEFT_HANDED_ZERO
+// #error lower right enter conflicts with lower right zero
+// #endif
+
+// /* LAYOUT_left_handed
+
+
+// * ┌───┬───┐
+// * │01 │02 │
+// * ┌───┼───┼───┼───┐
+// * │10 │11 │12 │13 │
+// * ├───┼───┼───┼───┤
+// * │ │21 │22 │23 │
+// * │20 ├───┼───┼───┤
+// * │ │31 │32 │33 │
+// * ├───┼───┼───┼───┤
+// * │ │41 │42 │43 │
+// * │40 ├───┼───┴───┤
+// * │ │51 │ 52 │
+// * └───┴───┴───────┘
+// */
+
+// #ifndef LED_MERGE_NUMPAD_LEFT_HANDED_PLUS //key 20
+// #define LED_MERGE_NUMPAD_LEFT_HANDED_PLUS FALSE
+// #endif // LED_MERGE_NUMPAD_LEFT_HANDED_PLUS
+
+// #ifndef LED_MERGE_NUMPAD_LEFT_HANDED_ENTER //key 40
+// #define LED_MERGE_NUMPAD_LEFT_HANDED_ENTER FALSE
+// #endif // LED_MERGE_NUMPAD_LEFT_HANDED_ENTER
+
+// #ifndef LED_MERGE_NUMPAD_LEFT_HANDED_ZERO //key 52
+// #define LED_MERGE_NUMPAD_LEFT_HANDED_ZERO FALSE
+// #endif // LED_MERGE_NUMPAD_LEFT_HANDED_ZERO
+
+
+// /* LAYOUT_right_handed
+
+
+// * ┌───┬───┐
+// * │01 │02 │
+// * ┌───┼───┼───┼───┐
+// * │10 │11 │12 │13 │
+// * ├───┼───┼───┼───┤
+// * │20 │21 │22 │ │
+// * ├───┼───┼───┤23 │
+// * │30 │31 │32 │ │
+// * ├───┼───┼───┼───┤
+// * │40 │41 │42 │ │
+// * ├───┴───┼───┤43 │
+// * │ 50 │52 │ │
+// * └───────┴───┴───┘
+// */
+// //LOCATION OF bottom row 0 NOT TESTED, WAITING ENDORSEMENT FROM MANUFACTURER
+
+// #ifndef LED_MERGE_NUMPAD_RIGHT_HANDED_PLUS // key 23
+// #define LED_MERGE_NUMPAD_RIGHT_HANDED_PLUS FALSE
+// #endif // LED_MERGE_NUMPAD_RIGHT_HANDED_PLUS
+
+// #ifndef LED_MERGE_NUMPAD_RIGHT_HANDED_ENTER // key 43
+// #define LED_MERGE_NUMPAD_RIGHT_HANDED_ENTER FALSE
+// #endif // LED_MERGE_NUMPAD_RIGHT_HANDED_ENTER
+
+// #ifndef LED_MERGE_NUMPAD_RIGHT_HANDED_ZERO // key 50 (confirm with manufacturer)
+// #define LED_MERGE_NUMPAD_RIGHT_HANDED_ZERO FALSE
+// #endif // LED_MERGE_NUMPAD_RIGHT_HANDED_ZERO
+
+// uint8_t rgb_matrix_map_row_column_to_led_kb(uint8_t row, uint8_t column, uint8_t *led_i) {
+// // Keys here have 2 leds. Here we add the led that is not bound to the key
+// // and the default led would be added
+// // by the default code that runs after this in rgb_matrix_map_row_column_to_led
+
+// uint8_t counter = 0;
+
+// #if LED_MERGE_NUMPAD_LEFT_HANDED_PLUS //key 20, leds 7 and 11, 7 already bound
+
+// if (row == 2 && column == 0) {
+// led_i[counter] = 11;
+// counter ++;
+// }
+// #endif
+// #if LED_MERGE_NUMPAD_LEFT_HANDED_ENTER //key 40, leds 19 and 23, 23 already bound
+// if (row == 4 && column == 0) {
+// led_i[counter] = 23;
+// counter ++;
+// }
+// #endif
+// #if LED_MERGE_NUMPAD_LEFT_HANDED_ZERO //key 52, leds 25 and 26, 26 already bound
+// if (row == 5 && column == 2) {
+// led_i[counter] = 26;
+// counter ++;
+// }
+// #endif
+
+// #if LED_MERGE_NUMPAD_RIGHT_HANDED_PLUS // key 23, led 14 and 18, 14 already bound
+// if (row == 2 && column == 3) {
+// led_i[counter] = 18;
+// counter ++;
+// }
+// #endif
+// #if LED_MERGE_NUMPAD_RIGHT_HANDED_ENTER // key 43, led 22 and 26, 22 already bound
+// if (row == 4 && column == 3) {
+// led_i[counter] = 26;
+// counter ++;
+// }
+// #endif
+// #if LED_MERGE_NUMPAD_RIGHT_HANDED_ZERO // key 50 (confirm with manufacturer)
+// // LED 23 and 24, 23(?) already bound
+// if (row == 5 && column == 0) {
+// led_i[counter] = 24;
+// counter ++;
+// }
+// #endif
+// return counter;
+// }
diff --git a/keyboards/joshajohnson/hub20/keyboard.json b/keyboards/joshajohnson/hub20/keyboard.json
index c26a25de3c..0d557c58b5 100644
--- a/keyboards/joshajohnson/hub20/keyboard.json
+++ b/keyboards/joshajohnson/hub20/keyboard.json
@@ -28,36 +28,7 @@
"solid_reactive_simple": true,
"solid_reactive": true
},
- "driver": "ws2812",
- "layout": [
- {"x": 190, "y": 50, "flags": 2},
- {"x": 111, "y": 50, "flags": 2},
- {"x": 35, "y": 50, "flags": 2},
- {"x": 38, "y": 0, "flags": 2},
- {"x": 38, "y": 35, "flags": 2},
- {"x": 186, "y": 35, "flags": 2},
- {"x": 186, "y": 0, "flags": 2},
- {"matrix": [1, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [1, 1], "x": 75, "y": 0, "flags": 4},
- {"matrix": [1, 2], "x": 150, "y": 0, "flags": 4},
- {"matrix": [1, 3], "x": 224, "y": 0, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 16, "flags": 4},
- {"matrix": [2, 1], "x": 75, "y": 16, "flags": 4},
- {"matrix": [2, 2], "x": 150, "y": 16, "flags": 4},
- {"matrix": [2, 3], "x": 224, "y": 16, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 32, "flags": 4},
- {"matrix": [3, 1], "x": 75, "y": 32, "flags": 4},
- {"matrix": [3, 2], "x": 150, "y": 32, "flags": 4},
- {"matrix": [3, 3], "x": 224, "y": 32, "flags": 4},
- {"matrix": [4, 0], "x": 0, "y": 48, "flags": 4},
- {"matrix": [4, 1], "x": 75, "y": 48, "flags": 4},
- {"matrix": [4, 2], "x": 150, "y": 48, "flags": 4},
- {"matrix": [4, 3], "x": 224, "y": 48, "flags": 4},
- {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4},
- {"matrix": [5, 1], "x": 75, "y": 64, "flags": 4},
- {"matrix": [5, 2], "x": 150, "y": 64, "flags": 4},
- {"matrix": [5, 3], "x": 224, "y": 64, "flags": 4}
- ]
+ "driver": "ws2812"
},
"features": {
"bootmagic": true,
diff --git a/keyboards/junco/rev1/keyboard.json b/keyboards/junco/rev1/keyboard.json
index 1ec680aa3a..936a0bf29c 100644
--- a/keyboards/junco/rev1/keyboard.json
+++ b/keyboards/junco/rev1/keyboard.json
@@ -22,82 +22,6 @@
},
"rgb_matrix": {
"driver": "ws2812",
- "layout": [
- {"x": 95, "y": 64, "flags": 2},
- {"x": 52, "y": 64, "flags": 2},
- {"x": 86, "y": 40, "flags": 2},
- {"x": 52, "y": 40, "flags": 2},
- {"x": 9, "y": 40, "flags": 2},
- {"x": 9, "y": 8, "flags": 2},
- {"x": 52, "y": 8, "flags": 2},
- {"x": 86, "y": 8, "flags": 2},
- {"matrix": [0, 5], "x": 86, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 69, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 34, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 17, "y": 0, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 17, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 34, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 69, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 86, "y": 16, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 69, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 52, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 34, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 17, "y": 32, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 17, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 86, "y": 48, "flags": 4},
- {"matrix": [4, 4], "x": 103, "y": 64, "flags": 4},
- {"matrix": [4, 3], "x": 86, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 69, "y": 64, "flags": 4},
- {"matrix": [4, 1], "x": 52, "y": 64, "flags": 4},
- {"matrix": [4, 0], "x": 34, "y": 64, "flags": 4},
- {"x": 129, "y": 64, "flags": 2},
- {"x": 172, "y": 64, "flags": 2},
- {"x": 138, "y": 40, "flags": 2},
- {"x": 172, "y": 40, "flags": 2},
- {"x": 215, "y": 40, "flags": 2},
- {"x": 215, "y": 8, "flags": 2},
- {"x": 172, "y": 8, "flags": 2},
- {"x": 138, "y": 8, "flags": 2},
- {"matrix": [5, 5], "x": 138, "y": 0, "flags": 4},
- {"matrix": [5, 4], "x": 155, "y": 0, "flags": 4},
- {"matrix": [5, 3], "x": 172, "y": 0, "flags": 4},
- {"matrix": [5, 2], "x": 190, "y": 0, "flags": 4},
- {"matrix": [5, 1], "x": 207, "y": 0, "flags": 4},
- {"matrix": [5, 0], "x": 224, "y": 0, "flags": 4},
- {"matrix": [6, 0], "x": 224, "y": 16, "flags": 4},
- {"matrix": [6, 1], "x": 207, "y": 16, "flags": 4},
- {"matrix": [6, 2], "x": 190, "y": 16, "flags": 4},
- {"matrix": [6, 3], "x": 172, "y": 16, "flags": 4},
- {"matrix": [6, 4], "x": 155, "y": 16, "flags": 4},
- {"matrix": [6, 5], "x": 138, "y": 16, "flags": 4},
- {"matrix": [7, 5], "x": 138, "y": 32, "flags": 4},
- {"matrix": [7, 4], "x": 155, "y": 32, "flags": 4},
- {"matrix": [7, 3], "x": 172, "y": 32, "flags": 4},
- {"matrix": [7, 2], "x": 190, "y": 32, "flags": 4},
- {"matrix": [7, 1], "x": 207, "y": 32, "flags": 4},
- {"matrix": [7, 0], "x": 224, "y": 32, "flags": 4},
- {"matrix": [8, 0], "x": 224, "y": 48, "flags": 4},
- {"matrix": [8, 1], "x": 207, "y": 48, "flags": 4},
- {"matrix": [8, 2], "x": 190, "y": 48, "flags": 4},
- {"matrix": [8, 3], "x": 172, "y": 48, "flags": 4},
- {"matrix": [8, 4], "x": 155, "y": 48, "flags": 4},
- {"matrix": [8, 5], "x": 138, "y": 48, "flags": 4},
- {"matrix": [9, 4], "x": 121, "y": 64, "flags": 4},
- {"matrix": [9, 3], "x": 138, "y": 64, "flags": 4},
- {"matrix": [9, 2], "x": 155, "y": 64, "flags": 4},
- {"matrix": [9, 1], "x": 172, "y": 64, "flags": 4},
- {"matrix": [9, 0], "x": 190, "y": 64, "flags": 4}
- ],
"split_count": [37, 37]
},
"encoder": {
diff --git a/keyboards/junco/rev1/rev1.c b/keyboards/junco/rev1/rev1.c
index 0167a095ad..d1346b82e2 100644
--- a/keyboards/junco/rev1/rev1.c
+++ b/keyboards/junco/rev1/rev1.c
@@ -21,3 +21,106 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
{{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}, {5, 4}, {6, 4}}
};
#endif
+
+/* RGB LED matrix */
+#ifdef RGB_MATRIX_ENABLE
+/*
+ Key Matrix Physical
+ L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05,
+ L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15,
+ L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25,
+ L30, L31, L32, L33, L34, L35, L45, R40, R30, R31, R32, R33, R34, R35,
+ L40, L41, L42, L43, L44, R42, R41, R43, R44, R45
+
+ Key Electrical
+ Left:
+ { L00, L01, L02, L03, L04, L05 },
+ { L10, L11, L12, L13, L14, L15 },
+ { L20, L21, L22, L23, L24, L25 },
+ { L30, L31, L32, L33, L34, L35 },
+ { L40, L41, L42, L43, L44, L45 },
+ Right:
+ { R05, R04, R03, R02, R01, R00 },
+ { R15, R14, R13, R12, R11, R10 },
+ { R25, R24, R23, R22, R21, R20 },
+ { R35, R34, R33, R32, R31, R30 },
+ { R45, R44, R43, R42, R41, R40 }
+
+ Key matrix physical filled with LED electrical indexes, count starting at 1
+
+ Col
+ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Row
+
+ 14 13 12 11 10 9 46 47 48 49 50 51 0
+ 6 7 8 45 44 43
+ 15 16 17 18 19 20 57 56 55 54 53 52 1
+
+ 26 25 24 23 22 21 58 59 60 61 62 63 2
+ 5 4 3 40 41 42
+ 27 28 29 30 31 32 NO NO 69 68 67 66 65 64 3
+
+ 37 36 35 34 33 70 71 72 73 74 4
+ 2 1 38 39
+*/
+
+// clang-format off
+led_config_t g_led_config = {
+ { // Key Electrical Matrix to LED Index (count start at 0, so 8 is the first non-underglow key)
+
+ // Left Half
+ { 13, 12, 11, 10, 9, 8 },
+ { 14, 15, 16, 17, 18, 19 },
+ { 25, 24, 23, 22, 21, 20 },
+ { 26, 27, 28, 29, 30, 31 },
+ { 36, 35, 34, 33, 32, NO_LED },
+
+ // Right Half
+ { 50, 49, 48, 47, 46, 45 },
+ { 51, 52, 53, 54, 55, 56 },
+ { 62, 61, 60, 59, 58, 57 },
+ { 63, 64, 65, 66, 67, 68 },
+ { 73, 72, 71, 70, 69, NO_LED }
+ },
+ { // LED Index to LED Physical Position (mirrored on right half)
+
+ // Left Underglow (indicies 1 - 8)
+ { 95, 72 }, { 52, 72 }, { 86, 40 }, { 52, 40 }, { 9, 40 }, { 9, 8 }, { 52, 8 }, { 86, 8 },
+ // Left Matrix (indicies 9 - 37)
+ { 86, 0 }, { 69, 0 }, { 52, 0 }, { 34, 0 }, { 17, 0 }, { 0, 0 },
+ { 0, 16 }, { 17, 16 }, { 34, 16 }, { 52, 16 }, { 69, 16 }, { 86, 16 },
+ { 86, 32 }, { 69, 32 }, { 52, 32 }, { 34, 32 }, { 17, 32 }, { 0, 32 },
+ { 0, 48 }, { 17, 48 }, { 34, 48 }, { 52, 48 }, { 69, 48 }, { 86, 48 }, /* No Led */
+ { 103, 64 }, { 86, 64 }, { 69, 64 }, { 52, 64 }, { 34, 64 },
+
+ // Right Underglow (indicies 38 - 45)
+ { 129, 72 }, { 172, 72 }, { 138, 40 }, { 172, 40 }, { 215, 40 }, { 215, 8 }, { 172, 8 }, { 138, 8 },
+ // Right Matrix (indicies 46 - 74)
+ { 138, 0 }, { 155, 0 }, { 172, 0 }, { 190, 0 }, { 207, 0 }, { 224, 0 },
+ { 224, 16 }, { 207, 16 }, { 190, 16 }, { 172, 16 }, { 155, 16 }, { 138, 16 },
+ { 138, 32 }, { 155, 32 }, { 172, 32 }, { 190, 32 }, { 207, 32 }, { 224, 32 },
+ /* No Led */ { 224, 48 }, { 207, 48 }, { 190, 48 }, { 172, 48 }, { 155, 48 }, { 138, 48 },
+ { 121, 64 }, { 138, 64 }, { 155, 64 }, { 172, 64 }, { 190, 64 }
+ },
+ { // LED Index to Flag (2 - Underglow, 4 - Key Backlight)
+
+ // Left Underglow
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ // Left Matrix
+ 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, 4, 4, 4, 4,
+
+ // Right Underglow
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ // Right Matrix
+ 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, 4, 4, 4, 4
+ }
+};
+
+#endif
diff --git a/keyboards/kapl/rev1/keyboard.json b/keyboards/kapl/rev1/keyboard.json
index 9354a5e4fe..843847d8fe 100644
--- a/keyboards/kapl/rev1/keyboard.json
+++ b/keyboards/kapl/rev1/keyboard.json
@@ -35,96 +35,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"x": 96, "y": 57, "flags": 2},
- {"x": 112, "y": 44, "flags": 2},
- {"x": 112, "y": 19, "flags": 2},
- {"x": 80, "y": 19, "flags": 2},
- {"x": 48, "y": 19, "flags": 2},
- {"x": 16, "y": 19, "flags": 2},
- {"x": 16, "y": 57, "flags": 2},
- {"x": 48, "y": 57, "flags": 2},
- {"x": 80, "y": 57, "flags": 2},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 17, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 34, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 69, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 86, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 103, "y": 0, "flags": 1},
- {"matrix": [1, 6], "x": 103, "y": 16, "flags": 1},
- {"matrix": [1, 5], "x": 86, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 69, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 34, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 17, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1},
- {"matrix": [2, 1], "x": 17, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 34, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 52, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 69, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 103, "y": 32, "flags": 1},
- {"matrix": [3, 6], "x": 103, "y": 48, "flags": 1},
- {"matrix": [3, 5], "x": 86, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 17, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 0, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 17, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 34, "y": 64, "flags": 1},
- {"matrix": [4, 3], "x": 52, "y": 64, "flags": 1},
- {"matrix": [4, 4], "x": 69, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 86, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 103, "y": 64, "flags": 1},
- {"x": 144, "y": 57, "flags": 2},
- {"x": 128, "y": 44, "flags": 2},
- {"x": 128, "y": 19, "flags": 2},
- {"x": 160, "y": 19, "flags": 2},
- {"x": 192, "y": 19, "flags": 2},
- {"x": 224, "y": 19, "flags": 2},
- {"x": 224, "y": 57, "flags": 2},
- {"x": 192, "y": 57, "flags": 2},
- {"x": 160, "y": 57, "flags": 2},
- {"matrix": [5, 0], "x": 224, "y": 0, "flags": 1},
- {"matrix": [5, 1], "x": 207, "y": 0, "flags": 4},
- {"matrix": [5, 2], "x": 190, "y": 0, "flags": 4},
- {"matrix": [5, 3], "x": 172, "y": 0, "flags": 4},
- {"matrix": [5, 4], "x": 155, "y": 0, "flags": 4},
- {"matrix": [5, 5], "x": 138, "y": 0, "flags": 4},
- {"matrix": [5, 6], "x": 121, "y": 0, "flags": 1},
- {"matrix": [6, 6], "x": 121, "y": 16, "flags": 1},
- {"matrix": [6, 5], "x": 138, "y": 16, "flags": 4},
- {"matrix": [6, 4], "x": 155, "y": 16, "flags": 4},
- {"matrix": [6, 3], "x": 172, "y": 16, "flags": 4},
- {"matrix": [6, 2], "x": 190, "y": 16, "flags": 4},
- {"matrix": [6, 1], "x": 207, "y": 16, "flags": 4},
- {"matrix": [6, 0], "x": 224, "y": 16, "flags": 1},
- {"matrix": [7, 0], "x": 224, "y": 32, "flags": 1},
- {"matrix": [7, 1], "x": 207, "y": 32, "flags": 4},
- {"matrix": [7, 2], "x": 190, "y": 32, "flags": 4},
- {"matrix": [7, 3], "x": 172, "y": 32, "flags": 4},
- {"matrix": [7, 4], "x": 155, "y": 32, "flags": 4},
- {"matrix": [7, 5], "x": 138, "y": 32, "flags": 4},
- {"matrix": [7, 6], "x": 121, "y": 32, "flags": 1},
- {"matrix": [8, 6], "x": 121, "y": 48, "flags": 1},
- {"matrix": [8, 5], "x": 138, "y": 48, "flags": 4},
- {"matrix": [8, 4], "x": 155, "y": 48, "flags": 4},
- {"matrix": [8, 3], "x": 172, "y": 48, "flags": 4},
- {"matrix": [8, 2], "x": 190, "y": 48, "flags": 4},
- {"matrix": [8, 1], "x": 207, "y": 48, "flags": 4},
- {"matrix": [8, 0], "x": 224, "y": 48, "flags": 1},
- {"matrix": [9, 0], "x": 224, "y": 64, "flags": 1},
- {"matrix": [9, 1], "x": 207, "y": 64, "flags": 1},
- {"matrix": [9, 2], "x": 190, "y": 64, "flags": 1},
- {"matrix": [9, 3], "x": 172, "y": 64, "flags": 1},
- {"matrix": [9, 4], "x": 155, "y": 64, "flags": 1},
- {"matrix": [9, 5], "x": 138, "y": 64, "flags": 1},
- {"matrix": [9, 6], "x": 121, "y": 64, "flags": 1}
- ],
"max_brightness": 120,
"speed_steps": 10,
"split_count": [44, 44]
diff --git a/keyboards/kapl/rev1/rev1.c b/keyboards/kapl/rev1/rev1.c
new file mode 100644
index 0000000000..fd3b9289dc
--- /dev/null
+++ b/keyboards/kapl/rev1/rev1.c
@@ -0,0 +1,55 @@
+// Copyright 2022 Alexander Lozyuk (@keyzog)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Left Hand
+ // { 8, 7, 6, 5, 4, 3, 2, 1, 0 }, // underglow
+ { 9, 10, 11, 12, 13, 14, 15 },
+ { 22, 21, 20, 19, 18, 17, 16 },
+ { 23, 24, 25, 26, 27, 28, 29 },
+ { 36, 35, 34, 33, 32, 31, 30 },
+ { 37, 38, 39, 40, 41, 42, 43 },
+
+ // Right Hand
+ // { 44, 45, 46, 47, 48, 49, 50, 51, 52 }, // underglow
+ { 53, 54, 55, 56, 57, 58, 59 },
+ { 66, 65, 64, 63, 62, 61, 60 },
+ { 67, 68, 69, 70, 71, 72, 73 },
+ { 80, 79, 78, 77, 76, 75, 74 },
+ { 81, 82, 83, 84, 85, 86, 87 }
+}, {
+ // Left Hand
+ {96, 57}, {112, 44}, {112, 19}, {80, 19}, {48, 19}, {16, 19}, {16, 57}, {48, 57}, {80, 57}, // underglow
+ {0, 0}, {17, 0}, {34, 0}, {52, 0}, {69, 0}, {86, 0}, {103, 0},
+ {103, 16}, {86, 16}, {69, 16}, {52, 16}, {34, 16}, {17, 16}, {0, 16},
+ {0, 32}, {17, 32}, {34, 32}, {52, 32}, {69, 32}, {86, 32}, {103, 32},
+ {103, 48}, {86, 48}, {69, 48}, {52, 48}, {34, 48}, {17, 48}, {0, 48},
+ {0, 64}, {17, 64}, {34, 64}, {52, 64}, {69, 64}, {86, 64}, {103, 64},
+
+ // Right Hand
+ {144, 57}, {128, 44}, {128, 19}, {160, 19}, {192, 19}, {224, 19}, {224, 57}, {192, 57}, {160, 57}, // underglow
+ {224, 0}, {207, 0}, {190, 0}, {172, 0}, {155, 0}, {138, 0}, {121, 0},
+ {121, 16}, {138, 16}, {155, 16}, {172, 16}, {190, 16}, {207, 16}, {224, 16},
+ {224, 32}, {207, 32}, {190, 32}, {172, 32}, {155, 32}, {138, 32}, {121, 32},
+ {121, 48}, {138, 48}, {155, 48}, {172, 48}, {190, 48}, {207, 48}, {224, 48},
+ {224, 64}, {207, 64}, {190, 64}, {172, 64}, {155, 64}, {138, 64}, {121, 64}
+}, {
+ // Left Hand
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, // underglow
+ 1, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 1, 1, 1, 1,
+
+ // Right Hand
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, // underglow
+ 1, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 1, 1, 1, 1
+} };
+#endif
diff --git a/keyboards/kbdfans/baguette66/rgb/keyboard.json b/keyboards/kbdfans/baguette66/rgb/keyboard.json
index 77103382bd..5955add028 100644
--- a/keyboards/kbdfans/baguette66/rgb/keyboard.json
+++ b/keyboards/kbdfans/baguette66/rgb/keyboard.json
@@ -58,74 +58,6 @@
"animation": "cycle_all"
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 195, "y": 0, "flags": 4},
- {"matrix": [2, 14], "x": 210, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 201, "y": 32, "flags": 4},
- {"matrix": [3, 13], "x": 220, "y": 48, "flags": 1},
- {"matrix": [3, 12], "x": 205, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 187, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 9, "y": 48, "flags": 4},
- {"matrix": [4, 1], "x": 21, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 39, "y": 64, "flags": 4},
- {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 8], "x": 152, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 171, "y": 64, "flags": 4},
- {"matrix": [4, 12], "x": 195, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
- ],
"max_brightness": 150,
"sat_steps": 8,
"sleep": true,
diff --git a/keyboards/kbdfans/baguette66/rgb/rgb.c b/keyboards/kbdfans/baguette66/rgb/rgb.c
index 379597b58e..8e1dbc5bcd 100644
--- a/keyboards/kbdfans/baguette66/rgb/rgb.c
+++ b/keyboards/kbdfans/baguette66/rgb/rgb.c
@@ -17,6 +17,26 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15 },
+ { 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16 },
+ { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,NO_LED, 14 },
+ { 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, NO_LED},
+ { NO_LED, 58, 59, NO_LED, NO_LED, 60, NO_LED, NO_LED, 61, NO_LED, 62, NO_LED, 63, 64, 65 }
+}, {
+ {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{195,0}, {210,0},{224,0},
+ {224,16}, {206,16},{188,16},{173,16},{158,16},{143,16},{128,16},{113,16},{98,16},{83,16},{68,16},{53,16},{38,16},{23,16},{4,16},
+ {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},
+ {220,48},{205,48},{187,48},{169,48},{154,48},{139,48},{124,48},{109,48},{94,48},{79,48},{64,48},{49,48},{34,48},{9,48},
+ {21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64}
+}, {
+ 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, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 1, 1, 1
+} };
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/kbdfans/bella/rgb/keyboard.json b/keyboards/kbdfans/bella/rgb/keyboard.json
index 7bbc5ea7a2..2ca18d2851 100644
--- a/keyboards/kbdfans/bella/rgb/keyboard.json
+++ b/keyboards/kbdfans/bella/rgb/keyboard.json
@@ -54,102 +54,6 @@
"animation": "cycle_all"
},
"driver": "is31fl3741",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 29, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 44, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 59, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 73, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 95, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 110, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 125, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 140, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 161, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 176, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 191, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 206, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 224, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 17, "flags": 4},
- {"matrix": [1, 1], "x": 15, "y": 17, "flags": 4},
- {"matrix": [1, 2], "x": 29, "y": 17, "flags": 4},
- {"matrix": [1, 3], "x": 44, "y": 17, "flags": 4},
- {"matrix": [1, 4], "x": 59, "y": 17, "flags": 4},
- {"matrix": [1, 5], "x": 73, "y": 17, "flags": 4},
- {"matrix": [1, 6], "x": 88, "y": 17, "flags": 4},
- {"matrix": [1, 7], "x": 102, "y": 17, "flags": 4},
- {"matrix": [1, 8], "x": 117, "y": 17, "flags": 4},
- {"matrix": [1, 9], "x": 132, "y": 17, "flags": 4},
- {"matrix": [1, 10], "x": 147, "y": 17, "flags": 4},
- {"matrix": [1, 11], "x": 161, "y": 17, "flags": 4},
- {"matrix": [1, 12], "x": 176, "y": 17, "flags": 4},
- {"matrix": [1, 14], "x": 198, "y": 17, "flags": 4},
- {"matrix": [1, 15], "x": 224, "y": 17, "flags": 4},
- {"matrix": [2, 0], "x": 4, "y": 29, "flags": 4},
- {"matrix": [2, 1], "x": 22, "y": 29, "flags": 4},
- {"matrix": [2, 2], "x": 37, "y": 29, "flags": 4},
- {"matrix": [2, 3], "x": 51, "y": 29, "flags": 4},
- {"matrix": [2, 4], "x": 66, "y": 29, "flags": 4},
- {"matrix": [2, 5], "x": 81, "y": 29, "flags": 4},
- {"matrix": [2, 6], "x": 95, "y": 29, "flags": 4},
- {"matrix": [2, 7], "x": 110, "y": 29, "flags": 4},
- {"matrix": [2, 8], "x": 125, "y": 29, "flags": 4},
- {"matrix": [2, 9], "x": 140, "y": 29, "flags": 4},
- {"matrix": [2, 10], "x": 154, "y": 29, "flags": 4},
- {"matrix": [2, 11], "x": 169, "y": 29, "flags": 4},
- {"matrix": [2, 12], "x": 184, "y": 29, "flags": 4},
- {"matrix": [2, 13], "x": 202, "y": 29, "flags": 4},
- {"matrix": [2, 15], "x": 224, "y": 29, "flags": 4},
- {"matrix": [3, 0], "x": 5, "y": 41, "flags": 4},
- {"matrix": [3, 1], "x": 26, "y": 41, "flags": 4},
- {"matrix": [3, 2], "x": 40, "y": 41, "flags": 4},
- {"matrix": [3, 3], "x": 55, "y": 41, "flags": 4},
- {"matrix": [3, 4], "x": 70, "y": 41, "flags": 4},
- {"matrix": [3, 5], "x": 84, "y": 41, "flags": 4},
- {"matrix": [3, 6], "x": 99, "y": 41, "flags": 4},
- {"matrix": [3, 7], "x": 114, "y": 41, "flags": 4},
- {"matrix": [3, 8], "x": 129, "y": 41, "flags": 4},
- {"matrix": [3, 9], "x": 143, "y": 41, "flags": 4},
- {"matrix": [3, 10], "x": 158, "y": 41, "flags": 4},
- {"matrix": [3, 11], "x": 172, "y": 41, "flags": 4},
- {"matrix": [3, 13], "x": 196, "y": 41, "flags": 4},
- {"matrix": [3, 15], "x": 224, "y": 41, "flags": 4},
- {"matrix": [4, 0], "x": 9, "y": 52, "flags": 4},
- {"matrix": [4, 2], "x": 33, "y": 52, "flags": 4},
- {"matrix": [4, 3], "x": 48, "y": 52, "flags": 4},
- {"matrix": [4, 4], "x": 62, "y": 52, "flags": 4},
- {"matrix": [4, 5], "x": 77, "y": 52, "flags": 4},
- {"matrix": [4, 6], "x": 92, "y": 52, "flags": 4},
- {"matrix": [4, 7], "x": 106, "y": 52, "flags": 4},
- {"matrix": [4, 8], "x": 121, "y": 52, "flags": 4},
- {"matrix": [4, 9], "x": 136, "y": 52, "flags": 4},
- {"matrix": [4, 10], "x": 150, "y": 52, "flags": 4},
- {"matrix": [4, 11], "x": 165, "y": 52, "flags": 4},
- {"matrix": [4, 12], "x": 185, "y": 52, "flags": 4},
- {"matrix": [4, 14], "x": 209, "y": 52, "flags": 1},
- {"matrix": [5, 0], "x": 2, "y": 64, "flags": 4},
- {"matrix": [5, 1], "x": 20, "y": 64, "flags": 4},
- {"matrix": [5, 2], "x": 38, "y": 64, "flags": 4},
- {"matrix": [5, 6], "x": 94, "y": 64, "flags": 4},
- {"matrix": [5, 10], "x": 150, "y": 64, "flags": 4},
- {"matrix": [5, 11], "x": 172, "y": 64, "flags": 4},
- {"matrix": [5, 12], "x": 195, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 209, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1},
- {"x": 0, "y": 0, "flags": 2},
- {"x": 45, "y": 0, "flags": 2},
- {"x": 90, "y": 0, "flags": 2},
- {"x": 134, "y": 0, "flags": 2},
- {"x": 179, "y": 0, "flags": 2},
- {"x": 224, "y": 0, "flags": 2},
- {"x": 0, "y": 32, "flags": 2},
- {"x": 224, "y": 32, "flags": 2},
- {"x": 0, "y": 64, "flags": 2},
- {"x": 45, "y": 64, "flags": 2},
- {"x": 90, "y": 64, "flags": 2},
- {"x": 134, "y": 64, "flags": 2},
- {"x": 179, "y": 64, "flags": 2},
- {"x": 224, "y": 64, "flags": 2}
- ],
"led_flush_limit": 26,
"led_process_limit": 4,
"sleep": true
diff --git a/keyboards/kbdfans/bella/rgb/rgb.c b/keyboards/kbdfans/bella/rgb/rgb.c
index 2dd792c5bc..4818c99005 100644
--- a/keyboards/kbdfans/bella/rgb/rgb.c
+++ b/keyboards/kbdfans/bella/rgb/rgb.c
@@ -118,6 +118,36 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, SW4_CS3, SW4_CS2, SW4_CS1}, /* RGB40 */
};
+led_config_t g_led_config = {
+ {
+ /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15*/
+ { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, NO_LED, 9, 10, 11, 12, 13, }, /* R0 */
+ { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, NO_LED, 27, 28, }, /* R1 */
+ { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, NO_LED, 43, }, /* R2 */
+ { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, NO_LED, 57, }, /* R3 */
+ { 58, NO_LED, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, NO_LED, 70, NO_LED, }, /* R4 */
+ { 71, 72, 73, NO_LED, NO_LED, NO_LED, 74, NO_LED, NO_LED, NO_LED, 75, 76, 77, NO_LED, 78, 79, }, /* R5 */
+ }, {
+ {0, 0}, {29, 0}, {44, 0}, {59, 0}, {73, 0}, {95, 0}, {110, 0}, {125, 0}, {140, 0}, {161, 0}, {176, 0}, {191, 0}, {206, 0}, {224, 0},
+ {0, 17}, {15, 17}, {29, 17}, {44, 17}, {59, 17}, {73, 17}, {88, 17}, {102, 17}, {117, 17}, {132, 17}, {147, 17}, {161, 17}, {176, 17}, {198, 17}, {224, 17},
+ {4, 29}, {22, 29}, {37, 29}, {51, 29}, {66, 29}, {81, 29}, {95, 29}, {110, 29}, {125, 29}, {140, 29}, {154, 29}, {169, 29}, {184, 29}, {202, 29}, {224, 29},
+ {5, 41}, {26, 41}, {40, 41}, {55, 41}, {70, 41}, {84, 41}, {99, 41}, {114, 41}, {129, 41}, {143, 41}, {158, 41}, {172, 41}, {196, 41}, {224, 41},
+ {9, 52}, {33, 52}, {48, 52}, {62, 52}, {77, 52}, {92, 52}, {106, 52}, {121, 52}, {136, 52}, {150, 52}, {165, 52}, {185, 52}, {209, 52},
+ {2, 64}, {20, 64}, {38, 64}, {94, 64}, {150, 64}, {172, 64}, {195, 64}, {209, 64}, {224, 64},
+ {0, 0}, {45, 0}, {90, 0}, {134, 0}, {179, 0}, {224, 0},
+ {0, 32}, {224,32},
+ {0, 64}, {45, 64}, {90, 64}, {134, 64}, {179, 64}, {224, 64},
+ }, {
+ 4,1,1,1,1,1,1,1,1,1,1,1,1,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,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,4,4,4,4,4,4,4,1,
+ 4,4,4,4,4,4,1,1,1,
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+ }
+};
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/kbdfans/bella/rgb_iso/keyboard.json b/keyboards/kbdfans/bella/rgb_iso/keyboard.json
index 43f36625f9..c7dd6423b5 100644
--- a/keyboards/kbdfans/bella/rgb_iso/keyboard.json
+++ b/keyboards/kbdfans/bella/rgb_iso/keyboard.json
@@ -54,103 +54,6 @@
"animation": "cycle_all"
},
"driver": "is31fl3741",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 29, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 44, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 59, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 73, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 95, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 110, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 125, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 140, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 161, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 176, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 191, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 206, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 224, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 17, "flags": 4},
- {"matrix": [1, 1], "x": 15, "y": 17, "flags": 4},
- {"matrix": [1, 2], "x": 29, "y": 17, "flags": 4},
- {"matrix": [1, 3], "x": 44, "y": 17, "flags": 4},
- {"matrix": [1, 4], "x": 59, "y": 17, "flags": 4},
- {"matrix": [1, 5], "x": 73, "y": 17, "flags": 4},
- {"matrix": [1, 6], "x": 88, "y": 17, "flags": 4},
- {"matrix": [1, 7], "x": 102, "y": 17, "flags": 4},
- {"matrix": [1, 8], "x": 117, "y": 17, "flags": 4},
- {"matrix": [1, 9], "x": 132, "y": 17, "flags": 4},
- {"matrix": [1, 10], "x": 147, "y": 17, "flags": 4},
- {"matrix": [1, 11], "x": 161, "y": 17, "flags": 4},
- {"matrix": [1, 12], "x": 176, "y": 17, "flags": 4},
- {"matrix": [1, 14], "x": 198, "y": 17, "flags": 4},
- {"matrix": [1, 15], "x": 224, "y": 17, "flags": 4},
- {"matrix": [2, 0], "x": 4, "y": 29, "flags": 4},
- {"matrix": [2, 1], "x": 22, "y": 29, "flags": 4},
- {"matrix": [2, 2], "x": 37, "y": 29, "flags": 4},
- {"matrix": [2, 3], "x": 51, "y": 29, "flags": 4},
- {"matrix": [2, 4], "x": 66, "y": 29, "flags": 4},
- {"matrix": [2, 5], "x": 81, "y": 29, "flags": 4},
- {"matrix": [2, 6], "x": 95, "y": 29, "flags": 4},
- {"matrix": [2, 7], "x": 110, "y": 29, "flags": 4},
- {"matrix": [2, 8], "x": 125, "y": 29, "flags": 4},
- {"matrix": [2, 9], "x": 140, "y": 29, "flags": 4},
- {"matrix": [2, 10], "x": 154, "y": 29, "flags": 4},
- {"matrix": [2, 11], "x": 169, "y": 29, "flags": 4},
- {"matrix": [2, 12], "x": 184, "y": 29, "flags": 4},
- {"matrix": [3, 13], "x": 200, "y": 35, "flags": 4},
- {"matrix": [2, 15], "x": 224, "y": 29, "flags": 4},
- {"matrix": [3, 0], "x": 5, "y": 41, "flags": 4},
- {"matrix": [3, 1], "x": 26, "y": 41, "flags": 4},
- {"matrix": [3, 2], "x": 40, "y": 41, "flags": 4},
- {"matrix": [3, 3], "x": 55, "y": 41, "flags": 4},
- {"matrix": [3, 4], "x": 70, "y": 41, "flags": 4},
- {"matrix": [3, 5], "x": 84, "y": 41, "flags": 4},
- {"matrix": [3, 6], "x": 99, "y": 41, "flags": 4},
- {"matrix": [3, 7], "x": 114, "y": 41, "flags": 4},
- {"matrix": [3, 8], "x": 129, "y": 41, "flags": 4},
- {"matrix": [3, 9], "x": 143, "y": 41, "flags": 4},
- {"matrix": [3, 10], "x": 158, "y": 41, "flags": 4},
- {"matrix": [3, 11], "x": 172, "y": 41, "flags": 4},
- {"matrix": [2, 13], "x": 187, "y": 41, "flags": 4},
- {"matrix": [3, 15], "x": 224, "y": 41, "flags": 4},
- {"matrix": [4, 0], "x": 2, "y": 52, "flags": 4},
- {"matrix": [4, 1], "x": 18, "y": 52, "flags": 4},
- {"matrix": [4, 2], "x": 33, "y": 52, "flags": 4},
- {"matrix": [4, 3], "x": 48, "y": 52, "flags": 4},
- {"matrix": [4, 4], "x": 62, "y": 52, "flags": 4},
- {"matrix": [4, 5], "x": 77, "y": 52, "flags": 4},
- {"matrix": [4, 6], "x": 92, "y": 52, "flags": 4},
- {"matrix": [4, 7], "x": 106, "y": 52, "flags": 4},
- {"matrix": [4, 8], "x": 121, "y": 52, "flags": 4},
- {"matrix": [4, 9], "x": 136, "y": 52, "flags": 4},
- {"matrix": [4, 10], "x": 150, "y": 52, "flags": 4},
- {"matrix": [4, 11], "x": 165, "y": 52, "flags": 4},
- {"matrix": [4, 12], "x": 185, "y": 52, "flags": 4},
- {"matrix": [4, 14], "x": 209, "y": 52, "flags": 1},
- {"matrix": [5, 0], "x": 2, "y": 64, "flags": 4},
- {"matrix": [5, 1], "x": 20, "y": 64, "flags": 4},
- {"matrix": [5, 2], "x": 38, "y": 64, "flags": 4},
- {"matrix": [5, 6], "x": 94, "y": 64, "flags": 4},
- {"matrix": [5, 10], "x": 150, "y": 64, "flags": 4},
- {"matrix": [5, 11], "x": 172, "y": 64, "flags": 4},
- {"matrix": [5, 12], "x": 195, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 209, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1},
- {"x": 0, "y": 0, "flags": 2},
- {"x": 45, "y": 0, "flags": 2},
- {"x": 90, "y": 0, "flags": 2},
- {"x": 134, "y": 0, "flags": 2},
- {"x": 179, "y": 0, "flags": 2},
- {"x": 224, "y": 0, "flags": 2},
- {"x": 0, "y": 32, "flags": 2},
- {"x": 224, "y": 32, "flags": 2},
- {"x": 0, "y": 64, "flags": 2},
- {"x": 45, "y": 64, "flags": 2},
- {"x": 90, "y": 64, "flags": 2},
- {"x": 134, "y": 64, "flags": 2},
- {"x": 179, "y": 64, "flags": 2},
- {"x": 224, "y": 64, "flags": 2}
- ],
"led_flush_limit": 26,
"led_process_limit": 4,
"sleep": true
diff --git a/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c b/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c
index ecbe4b3122..8d9349e295 100644
--- a/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c
+++ b/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c
@@ -119,6 +119,36 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, SW4_CS3, SW4_CS2, SW4_CS1}, /* RGB40 */
};
+led_config_t g_led_config = {
+ {
+ /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15*/
+ { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, NO_LED, 9, 10, 11, 12, 13, }, /* R0 */
+ { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, NO_LED, 27, 28, }, /* R1 */
+ { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 56, NO_LED, 43, }, /* R2 */
+ { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 42, NO_LED, 57, }, /* R3 */
+ { 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, NO_LED, 71, NO_LED, }, /* R4 */
+ { 72, 73, 74, NO_LED, NO_LED, NO_LED, 75, NO_LED, NO_LED, NO_LED, 76, 77, 78, NO_LED, 79, 80, }, /* R5 */
+ }, {
+ {0, 0}, {29, 0}, {44, 0}, {59, 0}, {73, 0}, {95, 0}, {110, 0}, {125, 0}, {140, 0}, {161, 0}, {176, 0}, {191, 0}, {206, 0}, {224, 0},
+ {0, 17}, {15, 17}, {29, 17}, {44, 17}, {59, 17}, {73, 17}, {88, 17}, {102, 17}, {117, 17}, {132, 17}, {147, 17}, {161, 17}, {176, 17}, {198, 17}, {224, 17},
+ {4, 29}, {22, 29}, {37, 29}, {51, 29}, {66, 29}, {81, 29}, {95, 29}, {110, 29}, {125, 29}, {140, 29}, {154, 29}, {169, 29}, {184, 29}, {200, 35}, {224, 29},
+ {5, 41}, {26, 41}, {40, 41}, {55, 41}, {70, 41}, {84, 41}, {99, 41}, {114, 41}, {129, 41}, {143, 41}, {158, 41}, {172, 41}, {187, 41}, {224, 41},
+ {2, 52}, {18, 52}, {33, 52}, {48, 52}, {62, 52}, {77, 52}, {92, 52}, {106, 52}, {121, 52}, {136, 52}, {150, 52}, {165, 52}, {185, 52}, {209, 52},
+ {2, 64}, {20, 64}, {38, 64}, {94, 64}, {150, 64}, {172, 64}, {195, 64}, {209, 64}, {224, 64},
+ {0, 0}, {45, 0}, {90, 0}, {134, 0}, {179, 0}, {224, 0},
+ {0, 32}, {224,32},
+ {0, 64}, {45, 64}, {90, 64}, {134, 64}, {179, 64}, {224, 64},
+ }, {
+ 4,1,1,1,1,1,1,1,1,1,1,1,1,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,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,4,4,4,4,4,4,4,4,1,
+ 4,4,4,4,4,4,1,1,1,
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+ }
+};
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/kbdfans/boop65/rgb/keyboard.json b/keyboards/kbdfans/boop65/rgb/keyboard.json
index 6fc36d1539..4a051c9112 100644
--- a/keyboards/kbdfans/boop65/rgb/keyboard.json
+++ b/keyboards/kbdfans/boop65/rgb/keyboard.json
@@ -56,91 +56,6 @@
"animation": "cycle_all"
},
"driver": "is31fl3741",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
- {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1},
- {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 8], "x": 152, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 171, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1},
- {"x": 0, "y": 8, "flags": 2},
- {"x": 32, "y": 8, "flags": 2},
- {"x": 64, "y": 8, "flags": 2},
- {"x": 96, "y": 8, "flags": 2},
- {"x": 128, "y": 8, "flags": 2},
- {"x": 160, "y": 8, "flags": 2},
- {"x": 192, "y": 8, "flags": 2},
- {"x": 224, "y": 8, "flags": 2},
- {"x": 0, "y": 56, "flags": 2},
- {"x": 32, "y": 56, "flags": 2},
- {"x": 64, "y": 56, "flags": 2},
- {"x": 96, "y": 56, "flags": 2},
- {"x": 128, "y": 56, "flags": 2},
- {"x": 160, "y": 56, "flags": 2},
- {"x": 192, "y": 56, "flags": 2},
- {"x": 224, "y": 56, "flags": 2}
- ],
"led_flush_limit": 26,
"led_process_limit": 4,
"max_brightness": 200,
diff --git a/keyboards/kbdfans/boop65/rgb/rgb.c b/keyboards/kbdfans/boop65/rgb/rgb.c
index 5a6caf64d1..f70c92812f 100644
--- a/keyboards/kbdfans/boop65/rgb/rgb.c
+++ b/keyboards/kbdfans/boop65/rgb/rgb.c
@@ -112,6 +112,29 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, SW6_CS39, SW6_CS38, SW6_CS37}
};
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED,42, 43 },
+ { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED,56, 57 },
+ { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, NO_LED, 63, 64, NO_LED, 65, 66 }
+}, {
+ {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0},
+ {4,16},{23,16},{38,16},{53,16},{68,16},{83,16},{98,16},{113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16},
+ {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32},
+ {9,48},{34,48},{49,48},{64,48},{79,48},{94,48},{109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48},
+ {2,64},{21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64},
+ {0,8},{32,8},{64,8},{96,8},{128,8},{160,8},{192,8},{224,8},
+ {0,56},{32,56},{64,56},{96,56},{128,56},{160,56},{192,56},{224,56}
+}, {
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2
+} };
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
diff --git a/keyboards/kbdfans/d60b/keyboard.json b/keyboards/kbdfans/d60b/keyboard.json
deleted file mode 100644
index 817cc6f504..0000000000
--- a/keyboards/kbdfans/d60b/keyboard.json
+++ /dev/null
@@ -1,215 +0,0 @@
-{
- "manufacturer": "KBDfans",
- "keyboard_name": "D60B",
- "maintainer": "chrisgve",
- "bootloader": "atmel-dfu",
- "community_layouts": ["60_ansi_tsangan_split_bs_rshift"],
- "diode_direction": "COL2ROW",
- "features": {
- "bootmagic": true,
- "extrakey": true,
- "mousekey": true,
- "nkro": true,
- "rgb_matrix": true
- },
- "matrix_pins": {
- "cols": ["F0", "F1", "F5", "F4", "E6", "B7", "D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4"],
- "rows": ["C7", "C6", "B6", "B5", "F6"]
- },
- "processor": "atmega32u4",
- "qmk": {
- "locking": {
- "enabled": true
- }
- },
- "rgb_matrix": {
- "animations": {
- "alphas_mods": true,
- "band_pinwheel_sat": true,
- "band_pinwheel_val": true,
- "band_sat": true,
- "band_spiral_sat": true,
- "band_spiral_val": true,
- "band_val": true,
- "breathing": true,
- "cycle_all": true,
- "cycle_left_right": true,
- "cycle_out_in": true,
- "cycle_out_in_dual": true,
- "cycle_pinwheel": true,
- "cycle_spiral": true,
- "cycle_up_down": true,
- "digital_rain": true,
- "dual_beacon": true,
- "flower_blooming": true,
- "gradient_left_right": true,
- "gradient_up_down": true,
- "hue_breathing": true,
- "hue_pendulum": true,
- "hue_wave": true,
- "jellybean_raindrops": true,
- "multisplash": true,
- "pixel_flow": true,
- "pixel_fractal": true,
- "pixel_rain": true,
- "rainbow_beacon": true,
- "rainbow_moving_chevron": true,
- "rainbow_pinwheels": true,
- "raindrops": true,
- "riverflow": true,
- "solid_multisplash": true,
- "solid_reactive": true,
- "solid_reactive_cross": true,
- "solid_reactive_multicross": true,
- "solid_reactive_multinexus": true,
- "solid_reactive_multiwide": true,
- "solid_reactive_nexus": true,
- "solid_reactive_simple": true,
- "solid_reactive_wide": true,
- "solid_splash": true
- },
- "driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4},
- {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 208, "y": 48, "flags": 4},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4},
- {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4},
- {"matrix": [4, 3], "x": 48, "y": 64, "flags": 4},
- {"matrix": [4, 7], "x": 112, "y": 64, "flags": 4},
- {"matrix": [4, 11], "x": 176, "y": 64, "flags": 4},
- {"matrix": [4, 13], "x": 208, "y": 64, "flags": 4},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4}
- ],
- "max_brightness": 200,
- "sleep": true
- },
- "usb": {
- "device_version": "0.0.1",
- "pid": "0x1600",
- "vid": "0xCA04"
- },
- "ws2812": {
- "pin": "F7"
- },
- "layouts": {
- "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0},
- {"matrix": [0, 1], "x": 1, "y": 0},
- {"matrix": [0, 2], "x": 2, "y": 0},
- {"matrix": [0, 3], "x": 3, "y": 0},
- {"matrix": [0, 4], "x": 4, "y": 0},
- {"matrix": [0, 5], "x": 5, "y": 0},
- {"matrix": [0, 6], "x": 6, "y": 0},
- {"matrix": [0, 7], "x": 7, "y": 0},
- {"matrix": [0, 8], "x": 8, "y": 0},
- {"matrix": [0, 9], "x": 9, "y": 0},
- {"matrix": [0, 10], "x": 10, "y": 0},
- {"matrix": [0, 11], "x": 11, "y": 0},
- {"matrix": [0, 12], "x": 12, "y": 0},
- {"matrix": [0, 13], "x": 13, "y": 0},
- {"matrix": [0, 14], "x": 14, "y": 0},
- {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
- {"matrix": [1, 2], "x": 1.5, "y": 1},
- {"matrix": [1, 3], "x": 2.5, "y": 1},
- {"matrix": [1, 4], "x": 3.5, "y": 1},
- {"matrix": [1, 5], "x": 4.5, "y": 1},
- {"matrix": [1, 6], "x": 5.5, "y": 1},
- {"matrix": [1, 7], "x": 6.5, "y": 1},
- {"matrix": [1, 8], "x": 7.5, "y": 1},
- {"matrix": [1, 9], "x": 8.5, "y": 1},
- {"matrix": [1, 10], "x": 9.5, "y": 1},
- {"matrix": [1, 11], "x": 10.5, "y": 1},
- {"matrix": [1, 12], "x": 11.5, "y": 1},
- {"matrix": [1, 13], "x": 12.5, "y": 1},
- {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
- {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
- {"matrix": [2, 2], "x": 1.75, "y": 2},
- {"matrix": [2, 3], "x": 2.75, "y": 2},
- {"matrix": [2, 4], "x": 3.75, "y": 2},
- {"matrix": [2, 5], "x": 4.75, "y": 2},
- {"matrix": [2, 6], "x": 5.75, "y": 2},
- {"matrix": [2, 7], "x": 6.75, "y": 2},
- {"matrix": [2, 8], "x": 7.75, "y": 2},
- {"matrix": [2, 9], "x": 8.75, "y": 2},
- {"matrix": [2, 10], "x": 9.75, "y": 2},
- {"matrix": [2, 11], "x": 10.75, "y": 2},
- {"matrix": [2, 12], "x": 11.75, "y": 2},
- {"matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25},
- {"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25},
- {"matrix": [3, 2], "x": 2.25, "y": 3},
- {"matrix": [3, 3], "x": 3.25, "y": 3},
- {"matrix": [3, 4], "x": 4.25, "y": 3},
- {"matrix": [3, 5], "x": 5.25, "y": 3},
- {"matrix": [3, 6], "x": 6.25, "y": 3},
- {"matrix": [3, 7], "x": 7.25, "y": 3},
- {"matrix": [3, 8], "x": 8.25, "y": 3},
- {"matrix": [3, 9], "x": 9.25, "y": 3},
- {"matrix": [3, 10], "x": 10.25, "y": 3},
- {"matrix": [3, 11], "x": 11.25, "y": 3},
- {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
- {"matrix": [3, 14], "x": 14, "y": 3},
- {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
- {"matrix": [4, 2], "x": 1.5, "y": 4},
- {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
- {"matrix": [4, 7], "x": 4, "y": 4, "w": 7},
- {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
- {"matrix": [4, 13], "x": 12.5, "y": 4},
- {"matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}
- ]
- }
- }
-}
diff --git a/keyboards/kbdfans/d60b/readme.md b/keyboards/kbdfans/d60b/readme.md
deleted file mode 100644
index 903a52019f..0000000000
--- a/keyboards/kbdfans/d60b/readme.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# KBDfans D60B
-
-Customizable 60% Tsangan Hotswap by PCB by [KBDfans](https://kbdfans.com).
-This board has also, at times, been referred to as the Sun60, but the name on the PCB is D60 B.
-
-- Keyboard Maintainer: [chrisgve](https://github.com/chrisgve)
-- Hardware Supported: KBDfans D60B
-- Hardware Availability: no longer available for sale
-
-Make example for this keyboard (after setting up your build environment):
-
- make kbdfans/d60b:default
-
-The keyboard uses a DFU bootloader. To make a keymap and use dfu to flash it:
-
- make kbdfans/d60b:default:flash
-
-See 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).
-
-## Bootloader
-
-Enter the bootloader in 3 ways:
-
-- **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
-- **Physical reset button**: Short the two pads close to the position of the caps lock key
-- **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v1/keyboard.json b/keyboards/kbdfans/kbd67/mkiirgb/v1/keyboard.json
index 9b034ef194..f55a649f43 100644
--- a/keyboards/kbdfans/kbd67/mkiirgb/v1/keyboard.json
+++ b/keyboards/kbdfans/kbd67/mkiirgb/v1/keyboard.json
@@ -37,75 +37,6 @@
"animation": "cycle_all"
},
"driver": "is31fl3731",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
- {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1},
- {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 8], "x": 152, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 171, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
- ],
"led_flush_limit": 26,
"led_process_limit": 4,
"max_brightness": 200,
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c b/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c
index 7d25400d7f..210be85d3f 100644
--- a/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c
+++ b/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c
@@ -92,6 +92,10 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
};
+led_config_t g_led_config = {{{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, {15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29}, {30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43}, {44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, 57}, {58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, NO_LED, 63, 64, NO_LED, 65, 66}},
+ {{0, 0}, {15, 0}, {30, 0}, {45, 0}, {60, 0}, {75, 0}, {90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {203, 0}, {224, 0}, {4, 16}, {23, 16}, {38, 16}, {53, 16}, {68, 16}, {83, 16}, {98, 16}, {113, 16}, {128, 16}, {143, 16}, {158, 16}, {173, 16}, {188, 16}, {206, 16}, {224, 16}, {6, 32}, {26, 32}, {41, 32}, {56, 32}, {71, 32}, {86, 32}, {101, 32}, {116, 32}, {131, 32}, {146, 32}, {161, 32}, {176, 32}, {201, 32}, {224, 32}, {9, 48}, {34, 48}, {49, 48}, {64, 48}, {79, 48}, {94, 48}, {109, 48}, {124, 48}, {139, 48}, {154, 48}, {169, 48}, {189, 48}, {210, 48}, {224, 48}, {2, 64}, {21, 64}, {39, 64}, {96, 64}, {152, 64}, {171, 64}, {195, 64}, {210, 64}, {224, 64}},
+ {1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1}};
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v2/keyboard.json b/keyboards/kbdfans/kbd67/mkiirgb/v2/keyboard.json
index 012ab5257b..916ee0f33a 100644
--- a/keyboards/kbdfans/kbd67/mkiirgb/v2/keyboard.json
+++ b/keyboards/kbdfans/kbd67/mkiirgb/v2/keyboard.json
@@ -35,75 +35,6 @@
"animation": "cycle_all"
},
"driver": "is31fl3731",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
- {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1},
- {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 8], "x": 152, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 171, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
- ],
"led_flush_limit": 26,
"led_process_limit": 4,
"sleep": true
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c b/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c
index f32d5b2f1d..50958017a2 100644
--- a/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c
+++ b/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c
@@ -92,6 +92,27 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
};
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED,42, 43 },
+ { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED,56, 57 },
+ { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, NO_LED, 63, 64, NO_LED, 65, 66 }
+}, {
+ {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0},
+ {4,16},{23,16},{38,16},{53,16},{68,16},{83,16},{98,16},{113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16},
+ {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32},
+ {9,48},{34,48},{49,48},{64,48},{79,48},{94,48},{109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48},
+ {2,64},{21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64}
+}, {
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1
+} };
+
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/keyboard.json b/keyboards/kbdfans/kbd67/mkiirgb/v3/keyboard.json
index bab449e144..4a3beea9eb 100644
--- a/keyboards/kbdfans/kbd67/mkiirgb/v3/keyboard.json
+++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/keyboard.json
@@ -37,75 +37,6 @@
"animation": "cycle_all"
},
"driver": "is31fl3741",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 119, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 134, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 149, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 164, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 179, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 202, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 205, "y": 16, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 9},
- {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 175, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 200, "y": 32, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1},
- {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 63, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 78, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 93, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 108, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 123, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 138, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 153, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 168, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 209, "y": 48, "flags": 4},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 95, "y": 64, "flags": 4},
- {"matrix": [4, 8], "x": 151, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 170, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 194, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 209, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
- ],
"val_steps": 8,
"led_flush_limit": 26,
"led_process_limit": 4,
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c b/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c
index dd3fd96e1c..0b40afadf9 100755
--- a/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c
+++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c
@@ -94,7 +94,33 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
};
+#define __ NO_LED
#define CAPS_LOCK_LED_INDEX 30
+
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, __, 42, 43 },
+ { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, __, 56, 57 },
+ { 58, 59, 60, __, __, 61, __, __, 62, __, 63, 64, __, 65, 66 }
+}, {
+ // LED Index to Physical Position
+ // based on: https://gist.github.com/vinorodrigues/07fd735683856b2a06c7c52b9b3878cb
+ {0, 0}, {15, 0}, {30, 0}, {45, 0}, {60, 0}, {75, 0}, {90, 0}, {105, 0}, {119, 0}, {134, 0}, {149, 0}, {164, 0}, {179, 0}, {202, 0}, {224, 0},
+ {4, 16}, {22, 16}, {37, 16}, {52, 16}, {67, 16}, {82, 16}, {97, 16}, {112, 16}, {127, 16}, {142, 16}, {157, 16}, {172, 16}, {187, 16}, {205, 16}, {224, 16},
+ {6, 32}, {26, 32}, {41, 32}, {56, 32}, {71, 32}, {86, 32}, {101, 32}, {116, 32}, {131, 32}, {146, 32}, {161, 32}, {175, 32}, {200, 32}, {224, 32},
+ {9, 48}, {34, 48}, {49, 48}, {63, 48}, {78, 48}, {93, 48}, {108, 48}, {123, 48}, {138, 48}, {153, 48}, {168, 48}, {189, 48}, {209, 48}, {224, 48},
+ {2, 64}, {21, 64}, {39, 64}, {95, 64}, {151, 64}, {170, 64}, {194, 64}, {209, 64}, {224, 64}
+}, {
+ // LED Index to Flag
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // caps lock is also an indicator so mask is `0x01 | 0x08`
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1
+} };
+
#endif
#if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX)
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v4/keyboard.json b/keyboards/kbdfans/kbd67/mkiirgb/v4/keyboard.json
index 574a02088f..ed47182ae5 100644
--- a/keyboards/kbdfans/kbd67/mkiirgb/v4/keyboard.json
+++ b/keyboards/kbdfans/kbd67/mkiirgb/v4/keyboard.json
@@ -52,75 +52,6 @@
"animation": "cycle_all"
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
- {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
- {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 201, "y": 32, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
- {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 152, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 171, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
- ],
"max_brightness": 150,
"sat_steps": 8,
"val_steps": 8,
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v4/v4.c b/keyboards/kbdfans/kbd67/mkiirgb/v4/v4.c
index f9af0a3df9..24ccaea968 100644
--- a/keyboards/kbdfans/kbd67/mkiirgb/v4/v4.c
+++ b/keyboards/kbdfans/kbd67/mkiirgb/v4/v4.c
@@ -17,6 +17,28 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
+
+led_config_t g_led_config = {
+{
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15 },
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,NO_LED, 43 },
+ { 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, NO_LED,45, 44 },
+ { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, NO_LED,65, 66 }
+}, {
+ {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0},
+ {224,16},{206,16},{188,16},{173,16},{158,16},{143,16},{128,16},{113,16},{98,16},{83,16}, {68,16},{53,16},{38,16},{23,16},{4,16},
+ {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32},
+ {224,48},{210,48},{189,48},{169,48},{154,48},{139,48},{124,48},{109,48},{94,48},{79,48},{64,48},{49,48},{34,48},{9,48},
+ {2,64},{21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64}
+}, {
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1
+} };
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/kbdfans/kbd67/mkiirgb_iso/keyboard.json b/keyboards/kbdfans/kbd67/mkiirgb_iso/keyboard.json
index 3d544fe88c..5000f8fb0a 100644
--- a/keyboards/kbdfans/kbd67/mkiirgb_iso/keyboard.json
+++ b/keyboards/kbdfans/kbd67/mkiirgb_iso/keyboard.json
@@ -40,76 +40,6 @@
"animation": "cycle_all"
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
- {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
- {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 191, "y": 32, "flags": 4},
- {"matrix": [1, 13], "x": 206, "y": 24, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
- {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4},
- {"matrix": [4, 3], "x": 21, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 2, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 152, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 171, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
- ],
"sat_steps": 8,
"val_steps": 8,
"speed_steps": 10,
diff --git a/keyboards/kbdfans/kbd67/mkiirgb_iso/mkiirgb_iso.c b/keyboards/kbdfans/kbd67/mkiirgb_iso/mkiirgb_iso.c
index 8aa7d42ef3..432c871dba 100644
--- a/keyboards/kbdfans/kbd67/mkiirgb_iso/mkiirgb_iso.c
+++ b/keyboards/kbdfans/kbd67/mkiirgb_iso/mkiirgb_iso.c
@@ -17,6 +17,28 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = {
+{
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 42, 15 },
+ { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,NO_LED, 43 },
+ { 58, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, NO_LED,45, 44 },
+ { 59, 60, 61, 57, NO_LED, 62, NO_LED, NO_LED, NO_LED, 63, 64, 65, NO_LED,66, 67 }
+}, {
+ {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0},
+ {224,16},{188,16},{173,16},{158,16},{143,16},{128,16},{113,16},{98,16},{83,16}, {68,16},{53,16},{38,16},{23,16},{4,16},
+ {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{191,32},{206,24},{224,32},
+ {224,48},{210,48},{189,48},{169,48},{154,48},{139,48},{124,48},{109,48},{94,48},{79,48},{64,48},{49,48},{34,48},{21,48},{2,48},
+ {2,64},{21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64}
+}, {
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1
+} };
+
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/kbdfans/kbd75rgb/kbd75rgb.c b/keyboards/kbdfans/kbd75rgb/kbd75rgb.c
index 45e195524a..622ca83b68 100644
--- a/keyboards/kbdfans/kbd75rgb/kbd75rgb.c
+++ b/keyboards/kbdfans/kbd75rgb/kbd75rgb.c
@@ -17,6 +17,29 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15},
+ { 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16},
+ { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45},
+ { 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 14, 47, 46},
+ { 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, NO_LED,72, 73},
+ { 83, 82, 81, NO_LED, NO_LED, 80, NO_LED, NO_LED, 79, 78, 77, 76, NO_LED,75 ,74}
+}, {
+ {0, 0}, {15, 0}, {30, 0},{45, 0}, {60, 0}, {75, 0}, {90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {195, 0}, {210, 0}, {224, 0},
+ {224, 12}, {218, 12},{192, 12},{176, 12},{160, 12},{144, 12},{128, 12},{112, 12},{96, 12},{80, 12},{64, 12},{48, 12},{32, 12},{16, 12},{0, 12},
+ {0, 25},{16, 25}, {32, 25}, {48, 25}, {64, 25}, {80, 25}, {96, 25}, {112, 25}, {128, 25}, {144, 25}, {160, 25},{176, 25}, {192, 25}, {218, 25}, {224, 25},
+{224, 38},{200, 38},{176, 38},{160, 38},{144, 38},{128, 38},{112, 38},{96, 38},{80, 38},{64, 38},{48, 38},{32, 38},{16, 38},{0, 38},
+ {0, 51},{16, 51}, {32, 51}, {48, 51}, {64, 51}, {80, 51}, {96, 51}, {112, 51}, {128, 51}, {144, 51}, {160, 51}, {189, 51}, {218, 51}, {224, 51},
+{224, 64},{218, 64},{192, 64},{176, 64},{160, 64},{144, 64}, {80, 64}, {32, 64},{16, 64},{0, 64}
+}, {
+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,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,4,4,4,4,4,4,4,4,4,4,
+4,4,4,4,4,4,4,4,4,4,4,4,1,4,1,1,1,4,4,4,
+4,4,4,4
+} };
+
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/kbdfans/kbd75rgb/keyboard.json b/keyboards/kbdfans/kbd75rgb/keyboard.json
index af6379071d..6a69d78c03 100644
--- a/keyboards/kbdfans/kbd75rgb/keyboard.json
+++ b/keyboards/kbdfans/kbd75rgb/keyboard.json
@@ -58,92 +58,6 @@
"animation": "cycle_all"
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 195, "y": 0, "flags": 4},
- {"matrix": [3, 12], "x": 210, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 12, "flags": 4},
- {"matrix": [1, 13], "x": 218, "y": 12, "flags": 4},
- {"matrix": [1, 12], "x": 192, "y": 12, "flags": 4},
- {"matrix": [1, 11], "x": 176, "y": 12, "flags": 4},
- {"matrix": [1, 10], "x": 160, "y": 12, "flags": 4},
- {"matrix": [1, 9], "x": 144, "y": 12, "flags": 4},
- {"matrix": [1, 8], "x": 128, "y": 12, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 12, "flags": 4},
- {"matrix": [1, 6], "x": 96, "y": 12, "flags": 4},
- {"matrix": [1, 5], "x": 80, "y": 12, "flags": 4},
- {"matrix": [1, 4], "x": 64, "y": 12, "flags": 4},
- {"matrix": [1, 3], "x": 48, "y": 12, "flags": 4},
- {"matrix": [1, 2], "x": 32, "y": 12, "flags": 4},
- {"matrix": [1, 1], "x": 16, "y": 12, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 25, "flags": 4},
- {"matrix": [2, 1], "x": 16, "y": 25, "flags": 4},
- {"matrix": [2, 2], "x": 32, "y": 25, "flags": 4},
- {"matrix": [2, 3], "x": 48, "y": 25, "flags": 4},
- {"matrix": [2, 4], "x": 64, "y": 25, "flags": 4},
- {"matrix": [2, 5], "x": 80, "y": 25, "flags": 4},
- {"matrix": [2, 6], "x": 96, "y": 25, "flags": 4},
- {"matrix": [2, 7], "x": 112, "y": 25, "flags": 4},
- {"matrix": [2, 8], "x": 128, "y": 25, "flags": 4},
- {"matrix": [2, 9], "x": 144, "y": 25, "flags": 4},
- {"matrix": [2, 10], "x": 160, "y": 25, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 25, "flags": 4},
- {"matrix": [2, 12], "x": 192, "y": 25, "flags": 4},
- {"matrix": [2, 13], "x": 218, "y": 25, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 25, "flags": 4},
- {"matrix": [3, 14], "x": 224, "y": 38, "flags": 4},
- {"matrix": [3, 13], "x": 200, "y": 38, "flags": 4},
- {"matrix": [3, 11], "x": 176, "y": 38, "flags": 4},
- {"matrix": [3, 10], "x": 160, "y": 38, "flags": 4},
- {"matrix": [3, 9], "x": 144, "y": 38, "flags": 4},
- {"matrix": [3, 8], "x": 128, "y": 38, "flags": 4},
- {"matrix": [3, 7], "x": 112, "y": 38, "flags": 4},
- {"matrix": [3, 6], "x": 96, "y": 38, "flags": 4},
- {"matrix": [3, 5], "x": 80, "y": 38, "flags": 4},
- {"matrix": [3, 4], "x": 64, "y": 38, "flags": 4},
- {"matrix": [3, 3], "x": 48, "y": 38, "flags": 4},
- {"matrix": [3, 2], "x": 32, "y": 38, "flags": 4},
- {"matrix": [3, 1], "x": 16, "y": 38, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4},
- {"matrix": [4, 0], "x": 0, "y": 51, "flags": 4},
- {"matrix": [4, 1], "x": 16, "y": 51, "flags": 4},
- {"matrix": [4, 2], "x": 32, "y": 51, "flags": 4},
- {"matrix": [4, 3], "x": 48, "y": 51, "flags": 4},
- {"matrix": [4, 4], "x": 64, "y": 51, "flags": 4},
- {"matrix": [4, 5], "x": 80, "y": 51, "flags": 4},
- {"matrix": [4, 6], "x": 96, "y": 51, "flags": 4},
- {"matrix": [4, 7], "x": 112, "y": 51, "flags": 4},
- {"matrix": [4, 8], "x": 128, "y": 51, "flags": 4},
- {"matrix": [4, 9], "x": 144, "y": 51, "flags": 4},
- {"matrix": [4, 10], "x": 160, "y": 51, "flags": 4},
- {"matrix": [4, 11], "x": 189, "y": 51, "flags": 4},
- {"matrix": [4, 13], "x": 218, "y": 51, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 51, "flags": 4},
- {"matrix": [5, 14], "x": 224, "y": 64, "flags": 1},
- {"matrix": [5, 13], "x": 218, "y": 64, "flags": 1},
- {"matrix": [5, 11], "x": 192, "y": 64, "flags": 1},
- {"matrix": [5, 10], "x": 176, "y": 64, "flags": 4},
- {"matrix": [5, 9], "x": 160, "y": 64, "flags": 4},
- {"matrix": [5, 8], "x": 144, "y": 64, "flags": 4},
- {"matrix": [5, 5], "x": 80, "y": 64, "flags": 4},
- {"matrix": [5, 2], "x": 32, "y": 64, "flags": 4},
- {"matrix": [5, 1], "x": 16, "y": 64, "flags": 4},
- {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4}
- ],
"sat_steps": 8,
"val_steps": 8,
"speed_steps": 10,
diff --git a/keyboards/kbdfans/kbdmini/kbdmini.c b/keyboards/kbdfans/kbdmini/kbdmini.c
index c9b558b7d3..18acc21da4 100644
--- a/keyboards/kbdfans/kbdmini/kbdmini.c
+++ b/keyboards/kbdfans/kbdmini/kbdmini.c
@@ -57,3 +57,22 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
{ 0, SW11_CS2, SW10_CS2, SW12_CS2 }, //LA8
{ 0, SW11_CS1, SW10_CS1, SW12_CS1 } //LA4
};
+
+led_config_t g_led_config = {
+ {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 },
+ { 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 },
+ { 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38 },
+ { 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51 }
+ }, {
+ { 0, 0 }, { 19, 0 }, { 38, 0 }, { 57, 0 }, { 76, 0 }, { 95, 0 }, { 114, 0 }, { 133, 0 }, { 152, 0 }, { 171, 0 }, { 190, 0 }, { 209, 0 }, { 224, 0 },
+ { 0, 21 }, { 19, 21 }, { 38, 21 }, { 57, 21 }, { 76, 21 }, { 95, 21 }, { 114, 21 }, { 133, 21 }, { 152, 21 }, { 171, 21 }, { 190, 21 }, { 209, 21 }, { 224, 21 },
+ { 0, 42 }, { 19, 42 }, { 38, 42 }, { 57, 42 }, { 76, 42 }, { 95, 42 }, { 114, 42 }, { 133, 42 }, { 152, 42 }, { 171, 42 }, { 190, 42 }, { 209, 42 }, { 224, 42 },
+ { 0, 64 }, { 19, 64 }, { 38, 64 }, { 57, 64 }, { 76, 64 }, { 95, 64 }, { 114, 64 }, { 133, 64 }, { 152, 64 }, { 171, 64 }, { 190, 64 }, { 209, 64 }, { 224, 64 }
+ }, {
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
+ }
+};
diff --git a/keyboards/kbdfans/kbdmini/keyboard.json b/keyboards/kbdfans/kbdmini/keyboard.json
index 90ec227140..97edf073e6 100644
--- a/keyboards/kbdfans/kbdmini/keyboard.json
+++ b/keyboards/kbdfans/kbdmini/keyboard.json
@@ -37,60 +37,6 @@
"typing_heatmap": true
},
"driver": "is31fl3733",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 19, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 38, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 57, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 76, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 95, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 114, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 133, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 152, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 171, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 190, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 209, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1},
- {"matrix": [1, 1], "x": 19, "y": 21, "flags": 4},
- {"matrix": [1, 2], "x": 38, "y": 21, "flags": 4},
- {"matrix": [1, 3], "x": 57, "y": 21, "flags": 4},
- {"matrix": [1, 4], "x": 76, "y": 21, "flags": 4},
- {"matrix": [1, 5], "x": 95, "y": 21, "flags": 4},
- {"matrix": [1, 6], "x": 114, "y": 21, "flags": 4},
- {"matrix": [1, 7], "x": 133, "y": 21, "flags": 4},
- {"matrix": [1, 8], "x": 152, "y": 21, "flags": 4},
- {"matrix": [1, 9], "x": 171, "y": 21, "flags": 4},
- {"matrix": [1, 10], "x": 190, "y": 21, "flags": 4},
- {"matrix": [1, 11], "x": 209, "y": 21, "flags": 4},
- {"matrix": [1, 12], "x": 224, "y": 21, "flags": 1},
- {"matrix": [2, 0], "x": 0, "y": 42, "flags": 1},
- {"matrix": [2, 1], "x": 19, "y": 42, "flags": 4},
- {"matrix": [2, 2], "x": 38, "y": 42, "flags": 4},
- {"matrix": [2, 3], "x": 57, "y": 42, "flags": 4},
- {"matrix": [2, 4], "x": 76, "y": 42, "flags": 4},
- {"matrix": [2, 5], "x": 95, "y": 42, "flags": 4},
- {"matrix": [2, 6], "x": 114, "y": 42, "flags": 4},
- {"matrix": [2, 7], "x": 133, "y": 42, "flags": 4},
- {"matrix": [2, 8], "x": 152, "y": 42, "flags": 4},
- {"matrix": [2, 9], "x": 171, "y": 42, "flags": 4},
- {"matrix": [2, 10], "x": 190, "y": 42, "flags": 4},
- {"matrix": [2, 11], "x": 209, "y": 42, "flags": 4},
- {"matrix": [2, 12], "x": 224, "y": 42, "flags": 1},
- {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1},
- {"matrix": [3, 1], "x": 19, "y": 64, "flags": 1},
- {"matrix": [3, 2], "x": 38, "y": 64, "flags": 1},
- {"matrix": [3, 3], "x": 57, "y": 64, "flags": 1},
- {"matrix": [3, 4], "x": 76, "y": 64, "flags": 1},
- {"matrix": [3, 5], "x": 95, "y": 64, "flags": 1},
- {"matrix": [3, 6], "x": 114, "y": 64, "flags": 1},
- {"matrix": [3, 7], "x": 133, "y": 64, "flags": 1},
- {"matrix": [3, 8], "x": 152, "y": 64, "flags": 1},
- {"matrix": [3, 9], "x": 171, "y": 64, "flags": 1},
- {"matrix": [3, 10], "x": 190, "y": 64, "flags": 1},
- {"matrix": [3, 11], "x": 209, "y": 64, "flags": 1},
- {"matrix": [3, 12], "x": 224, "y": 64, "flags": 1}
- ],
"sleep": true
},
"features": {
diff --git a/keyboards/kbdfans/maja/keyboard.json b/keyboards/kbdfans/maja/keyboard.json
index fd5d10d833..949dd09fe2 100644
--- a/keyboards/kbdfans/maja/keyboard.json
+++ b/keyboards/kbdfans/maja/keyboard.json
@@ -40,75 +40,6 @@
"animation": "cycle_all"
},
"driver": "is31fl3731",
- "layout": [
- {"matrix": [0, 0], "x": 4, "y": 1, "flags": 1},
- {"matrix": [0, 1], "x": 18, "y": 1, "flags": 4},
- {"matrix": [0, 2], "x": 31, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 46, "y": 3, "flags": 4},
- {"matrix": [0, 4], "x": 59, "y": 5, "flags": 4},
- {"matrix": [0, 5], "x": 73, "y": 7, "flags": 4},
- {"matrix": [0, 6], "x": 86, "y": 10, "flags": 4},
- {"matrix": [0, 7], "x": 107, "y": 9, "flags": 4},
- {"matrix": [0, 8], "x": 121, "y": 7, "flags": 4},
- {"matrix": [0, 9], "x": 134, "y": 4, "flags": 4},
- {"matrix": [0, 10], "x": 148, "y": 2, "flags": 4},
- {"matrix": [0, 11], "x": 162, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 176, "y": 2, "flags": 4},
- {"matrix": [0, 13], "x": 196, "y": 2, "flags": 4},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 5, "y": 15, "flags": 4},
- {"matrix": [1, 1], "x": 22, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 37, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 50, "y": 17, "flags": 4},
- {"matrix": [1, 4], "x": 64, "y": 20, "flags": 4},
- {"matrix": [1, 5], "x": 77, "y": 22, "flags": 4},
- {"matrix": [1, 6], "x": 103, "y": 23, "flags": 4},
- {"matrix": [1, 7], "x": 117, "y": 21, "flags": 4},
- {"matrix": [1, 8], "x": 130, "y": 19, "flags": 4},
- {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 158, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 171, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 186, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 202, "y": 16, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 4, "y": 28, "flags": 4},
- {"matrix": [2, 1], "x": 23, "y": 28, "flags": 4},
- {"matrix": [2, 2], "x": 38, "y": 29, "flags": 4},
- {"matrix": [2, 3], "x": 51, "y": 31, "flags": 4},
- {"matrix": [2, 4], "x": 65, "y": 34, "flags": 4},
- {"matrix": [2, 5], "x": 78, "y": 36, "flags": 4},
- {"matrix": [2, 6], "x": 109, "y": 36, "flags": 4},
- {"matrix": [2, 7], "x": 122, "y": 34, "flags": 4},
- {"matrix": [2, 8], "x": 136, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 150, "y": 29, "flags": 4},
- {"matrix": [2, 10], "x": 164, "y": 29, "flags": 4},
- {"matrix": [2, 11], "x": 177, "y": 29, "flags": 4},
- {"matrix": [2, 13], "x": 200, "y": 29, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 29, "flags": 4},
- {"matrix": [3, 0], "x": 5, "y": 42, "flags": 4},
- {"matrix": [3, 1], "x": 27, "y": 42, "flags": 4},
- {"matrix": [3, 2], "x": 42, "y": 43, "flags": 4},
- {"matrix": [3, 3], "x": 55, "y": 46, "flags": 4},
- {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 82, "y": 51, "flags": 4},
- {"matrix": [3, 6], "x": 104, "y": 51, "flags": 4},
- {"matrix": [3, 7], "x": 118, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 131, "y": 46, "flags": 4},
- {"matrix": [3, 9], "x": 145, "y": 44, "flags": 4},
- {"matrix": [3, 10], "x": 159, "y": 43, "flags": 4},
- {"matrix": [3, 11], "x": 173, "y": 43, "flags": 4},
- {"matrix": [3, 12], "x": 192, "y": 43, "flags": 4},
- {"matrix": [3, 13], "x": 214, "y": 46, "flags": 1},
- {"matrix": [4, 0], "x": 0, "y": 55, "flags": 4},
- {"matrix": [4, 2], "x": 40, "y": 58, "flags": 4},
- {"matrix": [4, 3], "x": 62, "y": 61, "flags": 4},
- {"matrix": [4, 5], "x": 86, "y": 64, "flags": 1},
- {"matrix": [4, 7], "x": 119, "y": 62, "flags": 4},
- {"matrix": [4, 9], "x": 147, "y": 58, "flags": 4},
- {"matrix": [4, 12], "x": 201, "y": 60, "flags": 1},
- {"matrix": [4, 13], "x": 214, "y": 60, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 60, "flags": 1}
- ],
"led_flush_limit": 26,
"led_process_limit": 4,
"sleep": true
diff --git a/keyboards/kbdfans/maja/maja.c b/keyboards/kbdfans/maja/maja.c
index c1db8e606c..cc073930bc 100755
--- a/keyboards/kbdfans/maja/maja.c
+++ b/keyboards/kbdfans/maja/maja.c
@@ -74,6 +74,26 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
{1, C8_16, C7_16, C6_16} // LD17
};
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14},
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,},
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43},
+ { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, NO_LED},
+ { 58, NO_LED, 59, 60, NO_LED, 61, NO_LED, 62, NO_LED, 63, NO_LED, NO_LED, 64, 65, 66}
+}, {
+ {4,1},{18,1},{31,0},{46,3},{59,5},{73,7},{86,10},{107,9},{121,7},{134,4},{148,2},{162,0},{176,2},{196,2},{224,0},
+ {5,15},{22,15},{37,15},{50,17},{64,20},{77,22},{103,23},{117,21},{130,19},{143,16},{158,15},{171,16},{186,16},{202,16},{224,16},
+ {4,28},{23,28},{38,29},{51,31},{65,34},{78,36},{109,36},{122,34},{136,32},{150,29},{164,29},{177,29},{200,29},{224,29},
+ {5,42},{27,42},{42,43},{55,46},{69,48},{82,51},{104,51},{118,48},{131,46},{145,44},{159,43},{173,43},{192,43},{214,46},
+ {0,55},{40,58},{62,61},{86,64},{119,62},{147,58},{201,60},{214,60},{224,60}
+}, {
+ 1, 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, 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, 4, 4, 4, 4, 4, 4, 1,
+ 4, 4, 4, 1, 4, 4, 1, 1, 1
+} };
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/kbdfans/odin/rgb/keyboard.json b/keyboards/kbdfans/odin/rgb/keyboard.json
index 8e14e1210a..1fb5a833ec 100644
--- a/keyboards/kbdfans/odin/rgb/keyboard.json
+++ b/keyboards/kbdfans/odin/rgb/keyboard.json
@@ -59,112 +59,6 @@
"animation": "cycle_all"
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 24, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 36, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 84, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 108, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 132, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 156, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 168, "y": 0, "flags": 4},
- {"matrix": [0, 15], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 16], "x": 192, "y": 0, "flags": 4},
- {"matrix": [0, 17], "x": 204, "y": 0, "flags": 4},
- {"matrix": [0, 18], "x": 216, "y": 0, "flags": 4},
- {"matrix": [0, 19], "x": 224, "y": 0, "flags": 4},
- {"matrix": [1, 19], "x": 224, "y": 14, "flags": 4},
- {"matrix": [1, 18], "x": 216, "y": 14, "flags": 4},
- {"matrix": [1, 17], "x": 204, "y": 14, "flags": 4},
- {"matrix": [1, 16], "x": 192, "y": 14, "flags": 4},
- {"matrix": [1, 15], "x": 180, "y": 14, "flags": 4},
- {"matrix": [1, 13], "x": 156, "y": 14, "flags": 4},
- {"matrix": [1, 12], "x": 144, "y": 14, "flags": 4},
- {"matrix": [1, 11], "x": 132, "y": 14, "flags": 4},
- {"matrix": [1, 10], "x": 120, "y": 14, "flags": 4},
- {"matrix": [1, 9], "x": 108, "y": 14, "flags": 4},
- {"matrix": [1, 8], "x": 96, "y": 14, "flags": 4},
- {"matrix": [1, 7], "x": 84, "y": 14, "flags": 4},
- {"matrix": [1, 6], "x": 72, "y": 14, "flags": 4},
- {"matrix": [1, 5], "x": 60, "y": 14, "flags": 4},
- {"matrix": [1, 4], "x": 48, "y": 14, "flags": 4},
- {"matrix": [1, 3], "x": 36, "y": 14, "flags": 4},
- {"matrix": [1, 2], "x": 24, "y": 14, "flags": 4},
- {"matrix": [1, 1], "x": 12, "y": 14, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 14, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 27, "flags": 4},
- {"matrix": [2, 1], "x": 12, "y": 27, "flags": 4},
- {"matrix": [2, 2], "x": 24, "y": 27, "flags": 4},
- {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4},
- {"matrix": [2, 4], "x": 48, "y": 27, "flags": 4},
- {"matrix": [2, 5], "x": 60, "y": 27, "flags": 4},
- {"matrix": [2, 6], "x": 72, "y": 27, "flags": 4},
- {"matrix": [2, 7], "x": 84, "y": 27, "flags": 4},
- {"matrix": [2, 8], "x": 96, "y": 27, "flags": 4},
- {"matrix": [2, 9], "x": 108, "y": 27, "flags": 4},
- {"matrix": [2, 10], "x": 120, "y": 27, "flags": 4},
- {"matrix": [2, 11], "x": 132, "y": 27, "flags": 4},
- {"matrix": [2, 12], "x": 144, "y": 27, "flags": 4},
- {"matrix": [2, 13], "x": 156, "y": 27, "flags": 4},
- {"matrix": [2, 15], "x": 180, "y": 27, "flags": 4},
- {"matrix": [2, 16], "x": 192, "y": 27, "flags": 4},
- {"matrix": [2, 17], "x": 204, "y": 27, "flags": 4},
- {"matrix": [2, 18], "x": 216, "y": 27, "flags": 4},
- {"matrix": [2, 19], "x": 224, "y": 33, "flags": 4},
- {"matrix": [3, 18], "x": 216, "y": 40, "flags": 4},
- {"matrix": [3, 17], "x": 204, "y": 40, "flags": 4},
- {"matrix": [3, 16], "x": 192, "y": 40, "flags": 4},
- {"x": 224, "y": 0, "flags": 4},
- {"x": 0, "y": 0, "flags": 4},
- {"x": 0, "y": 64, "flags": 4},
- {"x": 224, "y": 64, "flags": 4},
- {"matrix": [3, 13], "x": 156, "y": 40, "flags": 4},
- {"matrix": [3, 11], "x": 132, "y": 40, "flags": 4},
- {"matrix": [3, 10], "x": 120, "y": 40, "flags": 4},
- {"matrix": [3, 9], "x": 108, "y": 40, "flags": 4},
- {"matrix": [3, 8], "x": 96, "y": 40, "flags": 4},
- {"matrix": [3, 7], "x": 84, "y": 40, "flags": 4},
- {"matrix": [3, 6], "x": 72, "y": 40, "flags": 4},
- {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4},
- {"matrix": [3, 4], "x": 48, "y": 40, "flags": 4},
- {"matrix": [3, 3], "x": 36, "y": 40, "flags": 4},
- {"matrix": [3, 2], "x": 24, "y": 40, "flags": 4},
- {"matrix": [3, 1], "x": 12, "y": 40, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 40, "flags": 4},
- {"matrix": [4, 0], "x": 0, "y": 52, "flags": 4},
- {"matrix": [4, 2], "x": 24, "y": 52, "flags": 4},
- {"matrix": [4, 3], "x": 36, "y": 52, "flags": 4},
- {"matrix": [4, 4], "x": 48, "y": 52, "flags": 4},
- {"matrix": [4, 5], "x": 60, "y": 52, "flags": 4},
- {"matrix": [4, 6], "x": 72, "y": 52, "flags": 4},
- {"matrix": [4, 7], "x": 84, "y": 52, "flags": 4},
- {"matrix": [4, 8], "x": 96, "y": 52, "flags": 4},
- {"matrix": [4, 9], "x": 108, "y": 52, "flags": 4},
- {"matrix": [4, 10], "x": 120, "y": 52, "flags": 4},
- {"matrix": [4, 11], "x": 132, "y": 52, "flags": 4},
- {"matrix": [4, 13], "x": 156, "y": 52, "flags": 4},
- {"matrix": [4, 15], "x": 180, "y": 52, "flags": 4},
- {"matrix": [4, 16], "x": 192, "y": 52, "flags": 4},
- {"matrix": [4, 17], "x": 204, "y": 52, "flags": 4},
- {"matrix": [4, 18], "x": 216, "y": 52, "flags": 4},
- {"matrix": [4, 19], "x": 224, "y": 58, "flags": 4},
- {"matrix": [5, 18], "x": 216, "y": 64, "flags": 4},
- {"matrix": [5, 17], "x": 204, "y": 64, "flags": 4},
- {"matrix": [5, 16], "x": 192, "y": 64, "flags": 4},
- {"matrix": [5, 15], "x": 180, "y": 64, "flags": 4},
- {"matrix": [5, 14], "x": 168, "y": 64, "flags": 4},
- {"matrix": [5, 13], "x": 156, "y": 64, "flags": 4},
- {"matrix": [5, 11], "x": 132, "y": 64, "flags": 4},
- {"matrix": [5, 6], "x": 72, "y": 64, "flags": 4},
- {"matrix": [5, 2], "x": 24, "y": 64, "flags": 4},
- {"matrix": [5, 1], "x": 12, "y": 64, "flags": 4},
- {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4}
- ],
"max_brightness": 150,
"sleep": true
},
diff --git a/keyboards/kbdfans/odin/rgb/rgb.c b/keyboards/kbdfans/odin/rgb/rgb.c
index 1cfe8d487c..2774ca7a6e 100644
--- a/keyboards/kbdfans/odin/rgb/rgb.c
+++ b/keyboards/kbdfans/odin/rgb/rgb.c
@@ -16,6 +16,31 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = {
+ {
+ { 0, NO_LED, 1, 2, 3, 4, NO_LED, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 },
+ { 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, NO_LED, 22, 21, 20, 19, 18 },
+ { 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, NO_LED, 51, 52, 53, 54, 55 },
+ { 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, NO_LED, 63, NO_LED, NO_LED, 58, 57, 56, NO_LED },
+ { 76, NO_LED, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, NO_LED, 87, NO_LED, 88, 89, 90, 91, 92 },
+ { 103, 102, 101, NO_LED, NO_LED, NO_LED, 100, NO_LED, NO_LED, NO_LED, NO_LED, 99, NO_LED, 98, 97, 96, 95, 94, 93, NO_LED }
+ }, {
+ { 0, 0 }, { 24, 0 }, { 36, 0 }, { 48, 0 }, { 60, 0 }, { 84, 0 }, { 96, 0 }, { 108, 0 }, { 120, 0 }, { 132, 0 }, { 144, 0 }, { 156, 0 }, { 168, 0 }, { 180, 0 }, { 192, 0 }, { 204, 0 }, { 216, 0 }, { 224, 0 },
+ { 224, 14 }, { 216, 14 }, { 204, 14 }, { 192, 14 }, { 180, 14 }, { 156, 14 }, { 144, 14 }, { 132, 14 }, { 120, 14 }, { 108, 14 }, { 96, 14 }, { 84, 14 }, { 72, 14 }, { 60, 14 }, { 48, 14 }, { 36, 14 }, { 24, 14 }, { 12, 14 }, { 0, 14 },
+ { 0, 27 }, { 12, 27 }, { 24, 27 }, { 36, 27 }, { 48, 27 }, { 60, 27 }, { 72, 27 }, { 84, 27 }, { 96, 27 }, { 108, 27 }, { 120, 27 }, { 132, 27 }, { 144, 27 }, { 156, 27 }, { 180, 27 }, { 192, 27 }, { 204, 27 }, { 216, 27 }, { 224, 33 },
+ { 216, 40 }, { 204, 40 }, { 192, 40 }, { 224, 0 }, { 0, 0 }, { 0, 64 }, { 224, 64 }, { 156, 40 }, { 132, 40 }, { 120, 40 }, { 108, 40 }, { 96, 40 }, { 84, 40 }, { 72, 40 }, { 60, 40 }, { 48, 40 }, { 36, 40 }, { 24, 40 }, { 12, 40 }, { 0, 40 },
+ { 0, 52 }, { 24, 52 }, { 36, 52 }, { 48, 52 }, { 60, 52 }, { 72, 52 }, { 84, 52 }, { 96, 52 }, { 108, 52 }, { 120, 52 }, { 132, 52 }, { 156, 52 }, { 180, 52 }, { 192, 52 }, { 204, 52 }, { 216, 52 }, { 224, 58 },
+ { 216, 64 }, { 204, 64 }, { 192, 64 }, { 180, 64 }, { 168, 64 }, { 156, 64 }, { 132, 64 }, { 72, 64 }, { 24, 64 }, { 12, 64 }, { 0, 64 }
+ }, {
+ 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, 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, 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, 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, 4, 4, 4, 4
+ }
+};
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/keebio/bamfk4/bamfk4.c b/keyboards/keebio/bamfk4/bamfk4.c
new file mode 100644
index 0000000000..757bc03f72
--- /dev/null
+++ b/keyboards/keebio/bamfk4/bamfk4.c
@@ -0,0 +1,37 @@
+// Copyright 2022 Danny Nguyen (@nooges)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { NO_LED, NO_LED, NO_LED, NO_LED },
+}, {
+ // LED Index to Physical Position
+ //through switch
+ { 26, 10 }, { 4, 10 }, { 3, 49 }, { 23, 49 },
+ { 69, 49 }, { 68, 10 }, { 90, 10 }, { 89, 49 },
+ { 134, 49 }, { 132, 10 }, { 155, 10 }, { 155, 49 },
+ { 199, 49 }, { 199, 10 }, { 219, 10 }, { 219, 49 },
+
+ //underglow
+ { 218, 62 }, { 188, 62 }, { 159, 62 }, { 123, 62 }, //bottom right
+ { 100, 62 }, { 59, 62 }, { 35, 62 }, { 5, 62 }, //bottom left
+ { 6, 6 }, { 35, 6 }, { 59, 6 }, { 100, 6 }, //top left
+ { 123, 6 }, { 159, 6 }, { 188, 6 }, { 218, 6 } //top right
+}, {
+ // LED Index to Flag
+ 4, 4, 4, 4,
+ 4, 4, 4, 4,
+ 4, 4, 4, 4,
+ 4, 4, 4, 4,
+ 2, 2, 2, 2,
+ 2, 2, 2, 2,
+ 2, 2, 2, 2,
+ 2, 2, 2, 2
+} };
+
+
+
+#endif
\ No newline at end of file
diff --git a/keyboards/keebio/bamfk4/config.h b/keyboards/keebio/bamfk4/config.h
index 832d0afd67..e97e28f5a9 100644
--- a/keyboards/keebio/bamfk4/config.h
+++ b/keyboards/keebio/bamfk4/config.h
@@ -4,3 +4,19 @@
#pragma once
#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
diff --git a/keyboards/keebio/bamfk4/keyboard.json b/keyboards/keebio/bamfk4/keyboard.json
index 98ea684637..08b3900766 100644
--- a/keyboards/keebio/bamfk4/keyboard.json
+++ b/keyboards/keebio/bamfk4/keyboard.json
@@ -50,40 +50,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"x": 26, "y": 10, "flags": 4},
- {"x": 4, "y": 10, "flags": 4},
- {"x": 3, "y": 49, "flags": 4},
- {"x": 23, "y": 49, "flags": 4},
- {"x": 69, "y": 49, "flags": 4},
- {"x": 68, "y": 10, "flags": 4},
- {"x": 90, "y": 10, "flags": 4},
- {"x": 89, "y": 49, "flags": 4},
- {"x": 134, "y": 49, "flags": 4},
- {"x": 132, "y": 10, "flags": 4},
- {"x": 155, "y": 10, "flags": 4},
- {"x": 155, "y": 49, "flags": 4},
- {"x": 199, "y": 49, "flags": 4},
- {"x": 199, "y": 10, "flags": 4},
- {"x": 219, "y": 10, "flags": 4},
- {"x": 219, "y": 49, "flags": 4},
- {"x": 218, "y": 62, "flags": 2},
- {"x": 188, "y": 62, "flags": 2},
- {"x": 159, "y": 62, "flags": 2},
- {"x": 123, "y": 62, "flags": 2},
- {"x": 100, "y": 62, "flags": 2},
- {"x": 59, "y": 62, "flags": 2},
- {"x": 35, "y": 62, "flags": 2},
- {"x": 5, "y": 62, "flags": 2},
- {"x": 6, "y": 6, "flags": 2},
- {"x": 35, "y": 6, "flags": 2},
- {"x": 59, "y": 6, "flags": 2},
- {"x": 100, "y": 6, "flags": 2},
- {"x": 123, "y": 6, "flags": 2},
- {"x": 159, "y": 6, "flags": 2},
- {"x": 188, "y": 6, "flags": 2},
- {"x": 218, "y": 6, "flags": 2}
- ],
"max_brightness": 160,
"sleep": true
},
diff --git a/keyboards/keebio/bdn9/keymaps/test/config.h b/keyboards/keebio/bdn9/keymaps/test/config.h
new file mode 100644
index 0000000000..e09fba9232
--- /dev/null
+++ b/keyboards/keebio/bdn9/keymaps/test/config.h
@@ -0,0 +1,5 @@
+#pragma once
+
+#ifdef RGB_MATRIX_ENABLE
+# define RGB_MATRIX_KEYPRESSES
+#endif
diff --git a/keyboards/keebio/bdn9/rev1/config.h b/keyboards/keebio/bdn9/rev1/config.h
deleted file mode 100644
index 4ffb768771..0000000000
--- a/keyboards/keebio/bdn9/rev1/config.h
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright 2025 Danny Nguyen (danny@keeb.io)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
diff --git a/keyboards/keebio/bdn9/rev1/keyboard.json b/keyboards/keebio/bdn9/rev1/keyboard.json
index 8130b115f9..5c677db78d 100644
--- a/keyboards/keebio/bdn9/rev1/keyboard.json
+++ b/keyboards/keebio/bdn9/rev1/keyboard.json
@@ -12,9 +12,6 @@
]
},
"backlight": {
- "default": {
- "brightness": 5
- },
"pin": "B5",
"levels": 7
},
diff --git a/keyboards/keebio/bdn9/rev1/rev1.c b/keyboards/keebio/bdn9/rev1/rev1.c
index fe3defa156..567de03af4 100644
--- a/keyboards/keebio/bdn9/rev1/rev1.c
+++ b/keyboards/keebio/bdn9/rev1/rev1.c
@@ -1,8 +1,22 @@
-// Copyright 2025 Danny Nguyen (danny@keeb.io)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
#include "quantum.h"
+void eeconfig_init_kb(void) {
+#ifdef BACKLIGHT_ENABLE
+ backlight_enable();
+ backlight_level(5);
+#endif
+#ifdef RGBLIGHT_ENABLE
+ rgblight_enable(); // Enable RGB by default
+ rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness
+#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
+ rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default
+#endif
+#endif
+
+ eeconfig_update_kb(0);
+ eeconfig_init_user();
+}
+
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) { return false; }
if (index == 0) {
diff --git a/keyboards/keebio/bdn9/rev2/config.h b/keyboards/keebio/bdn9/rev2/config.h
deleted file mode 100644
index 4ffb768771..0000000000
--- a/keyboards/keebio/bdn9/rev2/config.h
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright 2025 Danny Nguyen (danny@keeb.io)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
diff --git a/keyboards/keebio/bdn9/rev2/keyboard.json b/keyboards/keebio/bdn9/rev2/keyboard.json
index ee1787e169..a8a0c8d10d 100644
--- a/keyboards/keebio/bdn9/rev2/keyboard.json
+++ b/keyboards/keebio/bdn9/rev2/keyboard.json
@@ -71,20 +71,7 @@
"solid_splash": true,
"solid_multisplash": true
},
- "driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 224, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 32, "flags": 4},
- {"matrix": [1, 1], "x": 112, "y": 32, "flags": 4},
- {"matrix": [1, 2], "x": 224, "y": 32, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 64, "flags": 4},
- {"matrix": [2, 1], "x": 112, "y": 64, "flags": 4},
- {"matrix": [2, 2], "x": 224, "y": 64, "flags": 4},
- {"x": 56, "y": 64, "flags": 2},
- {"x": 168, "y": 64, "flags": 2}
- ]
+ "driver": "ws2812"
},
"encoder": {
"rotary": [
diff --git a/keyboards/keebio/bdn9/rev2/rev2.c b/keyboards/keebio/bdn9/rev2/rev2.c
index fe3defa156..5c6d940325 100644
--- a/keyboards/keebio/bdn9/rev2/rev2.c
+++ b/keyboards/keebio/bdn9/rev2/rev2.c
@@ -1,8 +1,43 @@
-// Copyright 2025 Danny Nguyen (danny@keeb.io)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
#include "quantum.h"
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 0, 1, 2 },
+ { 3, 4, 5 },
+ { 6, 7, 8 }
+}, {
+ // LED Index to Physical Position
+ { 0, 0 }, { 112, 0 }, { 224, 0 },
+ { 0, 32 }, { 112, 32 }, { 224, 32 },
+ { 0, 64 }, { 112, 64 }, { 224, 64 },
+ { 56, 64 }, { 168, 64 },
+}, {
+ // LED Index to Flag
+ 4, 4, 4,
+ 4, 4, 4,
+ 4, 4, 4,
+ 2, 2
+} };
+#endif
+
+void eeconfig_init_kb(void) {
+#ifdef RGBLIGHT_ENABLE
+ rgblight_enable(); // Enable RGB by default
+ rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness
+# ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
+ rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default
+# endif
+#endif
+
+#ifdef RGB_MATRIX_ENABLE
+ rgb_matrix_enable(); // Enable RGB by default
+#endif
+
+ eeconfig_update_kb(0);
+ eeconfig_init_user();
+}
+
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) { return false; }
if (index == 0) {
diff --git a/keyboards/keebio/bdn9/rev3/config.h b/keyboards/keebio/bdn9/rev3/config.h
index 98f261b801..3afa37bce1 100644
--- a/keyboards/keebio/bdn9/rev3/config.h
+++ b/keyboards/keebio/bdn9/rev3/config.h
@@ -4,9 +4,11 @@
#pragma once
/* Defines for the RGB matrix */
-#define WS2812_PWM_DRIVER PWMD15
-#define WS2812_PWM_CHANNEL 2
-#define WS2812_PWM_PAL_MODE 1
-#define WS2812_DMA_STREAM STM32_DMA1_STREAM2
-#define WS2812_DMA_CHANNEL 2
-#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM15_UP
+#ifdef RGB_MATRIX_ENABLE
+# define WS2812_PWM_DRIVER PWMD15
+# define WS2812_PWM_CHANNEL 2
+# define WS2812_PWM_PAL_MODE 1
+# define WS2812_DMA_STREAM STM32_DMA1_STREAM2
+# define WS2812_DMA_CHANNEL 2
+# define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM15_UP
+#endif
diff --git a/keyboards/keebio/bfo9000/keymaps/default/config.h b/keyboards/keebio/bfo9000/keymaps/default/config.h
new file mode 100644
index 0000000000..a9ae679110
--- /dev/null
+++ b/keyboards/keebio/bfo9000/keymaps/default/config.h
@@ -0,0 +1,27 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako
+Copyright 2015 Jack Humbert
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+#pragma once
+
+// #define USE_I2C
+
+/* Select hand configuration */
+// #define MASTER_RIGHT
+// #define EE_HANDS
diff --git a/keyboards/keebio/bfo9000/keymaps/default/keymap.c b/keyboards/keebio/bfo9000/keymaps/default/keymap.c
index 0d28c3c5c2..f37ea79c40 100644
--- a/keyboards/keebio/bfo9000/keymaps/default/keymap.c
+++ b/keyboards/keebio/bfo9000/keymaps/default/keymap.c
@@ -1,6 +1,3 @@
-// Copyright 2025 Keebio (@keebio)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
#include QMK_KEYBOARD_H
#define _BASE 0
diff --git a/keyboards/keebio/bfo9000/readme.md b/keyboards/keebio/bfo9000/readme.md
index 3fa6239680..059f2800a2 100644
--- a/keyboards/keebio/bfo9000/readme.md
+++ b/keyboards/keebio/bfo9000/readme.md
@@ -1,10 +1,11 @@
-# BFO-9000
+BFO-9000
+========
A split full-size ortholinear keyboard made and sold by Keebio. Each half is a 6x9 arrangement, with breakable pieces to allow the number of rows to be customized between 4 to 6, and the number of columns to be between 7 to 9. [More info at Keebio](https://keeb.io).
-* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges)
-* Hardware Supported: Pro Micro
-* Hardware Availability: [Keebio](https://keeb.io)
+Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges)
+Hardware Supported: Pro Micro
+Hardware Availability: [Keebio](https://keeb.io)
Make example for this keyboard (after setting up your build environment):
@@ -12,6 +13,6 @@ Make example for this keyboard (after setting up your build environment):
Example of flashing this keyboard:
- make keebio/bfo9000:default:flash
+ make keebio/bfo9000:default:avrdude
-See 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).
+See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
diff --git a/keyboards/keebio/bigswitchseat/keymaps/default/keymap.c b/keyboards/keebio/bigswitchseat/keymaps/default/keymap.c
index a48f4f9165..6d4378b995 100644
--- a/keyboards/keebio/bigswitchseat/keymaps/default/keymap.c
+++ b/keyboards/keebio/bigswitchseat/keymaps/default/keymap.c
@@ -5,11 +5,23 @@
// Defines names for use in layer keycodes and the keymap
enum layer_names {
- _MAIN
+ _MAIN,
+ _FN1,
+ _FN2,
+ _FN3
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_MAIN] = LAYOUT(
KC_A
+ ),
+ [_FN1] = LAYOUT(
+ _______
+ ),
+ [_FN2] = LAYOUT(
+ _______
+ ),
+ [_FN3] = LAYOUT(
+ _______
)
};
diff --git a/keyboards/keebio/chiri_ce/rev1/config.h b/keyboards/keebio/chiri_ce/rev1/config.h
index e9d9934301..b1eb9da4e9 100644
--- a/keyboards/keebio/chiri_ce/rev1/config.h
+++ b/keyboards/keebio/chiri_ce/rev1/config.h
@@ -3,16 +3,14 @@
#pragma once
+#define SPLIT_HAND_PIN GP4
#define USB_VBUS_PIN GP0
-
#define SERIAL_USART_FULL_DUPLEX
#define SERIAL_USART_TX_PIN GP12
#define SERIAL_USART_RX_PIN GP13
#define SERIAL_USART_PIN_SWAP
-
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U
-
#define I2C_DRIVER I2CD2
#define I2C1_SDA_PIN GP10
#define I2C1_SCL_PIN GP11
diff --git a/keyboards/keebio/chiri_ce/rev1/keyboard.json b/keyboards/keebio/chiri_ce/rev1/keyboard.json
index aea1fb1d6f..9cf7f51654 100644
--- a/keyboards/keebio/chiri_ce/rev1/keyboard.json
+++ b/keyboards/keebio/chiri_ce/rev1/keyboard.json
@@ -118,9 +118,6 @@
"matrix": [4, 0]
},
"enabled": true,
- "handedness": {
- "pin": "GP4"
- },
"matrix_pins": {
"right": {
"cols": ["GP29", "GP28", "GP2", "GP27", "GP18", "GP7"],
diff --git a/keyboards/keebio/chocopad/readme.md b/keyboards/keebio/chocopad/readme.md
index 9a6e62178f..67c875d923 100644
--- a/keyboards/keebio/chocopad/readme.md
+++ b/keyboards/keebio/chocopad/readme.md
@@ -1,17 +1,14 @@
-# Chocopad
+Chocopad
+========
A 4x4 macropad keyboard using Kailh PG1350 Lower Profile Choc switches.
-* Keyboard Maintainer: Keebio
-* Hardware Supported: Chocopad PCB, Arduino Pro Micro
-* Hardware Availability: [Keebio](https://keeb.io)
+Keyboard Maintainer: Keebio
+Hardware Supported: Chocopad PCB, Arduino Pro Micro
+Hardware Availability: [Keebio](https://keeb.io)
Make example for this keyboard (after setting up your build environment):
make keebio/chocopad/rev1:default
-Example of flashing this keyboard:
-
- make keebio/chocopad/rev1:default:flash
-
-See 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).
+See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
diff --git a/keyboards/keebio/chocopad/rev1/config.h b/keyboards/keebio/chocopad/rev1/config.h
deleted file mode 100644
index 4ffb768771..0000000000
--- a/keyboards/keebio/chocopad/rev1/config.h
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright 2025 Danny Nguyen (danny@keeb.io)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
diff --git a/keyboards/keebio/chocopad/rev1/keyboard.json b/keyboards/keebio/chocopad/rev1/keyboard.json
index 06dbbf0bc6..fafea9dce0 100644
--- a/keyboards/keebio/chocopad/rev1/keyboard.json
+++ b/keyboards/keebio/chocopad/rev1/keyboard.json
@@ -17,9 +17,6 @@
"rgblight": true
},
"backlight": {
- "default": {
- "brightness": 5
- },
"pin": "B5",
"levels": 6
},
diff --git a/keyboards/keebio/chocopad/rev1/rev1.c b/keyboards/keebio/chocopad/rev1/rev1.c
new file mode 100644
index 0000000000..e362bb3483
--- /dev/null
+++ b/keyboards/keebio/chocopad/rev1/rev1.c
@@ -0,0 +1,21 @@
+// Copyright 2023 Danny Nguyen (danny@keeb.io)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "quantum.h"
+
+void eeconfig_init_kb(void) {
+#ifdef BACKLIGHT_ENABLE
+ backlight_enable();
+ backlight_level(5);
+#endif
+#ifdef RGBLIGHT_ENABLE
+ rgblight_enable(); // Enable RGB by default
+ rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness
+#ifdef RGBLIGHT_MODE_EFFECT_SWIRL
+ rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default
+#endif
+#endif
+
+ eeconfig_update_kb(0);
+ eeconfig_init_user();
+}
diff --git a/keyboards/keebio/convolution/readme.md b/keyboards/keebio/convolution/readme.md
index cb7d7c35db..c1bc8ae3d8 100644
--- a/keyboards/keebio/convolution/readme.md
+++ b/keyboards/keebio/convolution/readme.md
@@ -13,6 +13,6 @@ Example of flashing this keyboard:
make keebio/convolution/rev1:default:flash
-See 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).
+See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
A build guide for this keyboard can be found here: [Keebio Build Guides](https://docs.keeb.io)
diff --git a/keyboards/keebio/dilly/config.h b/keyboards/keebio/dilly/config.h
deleted file mode 100644
index 4ffb768771..0000000000
--- a/keyboards/keebio/dilly/config.h
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright 2025 Danny Nguyen (danny@keeb.io)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
diff --git a/keyboards/keebio/dilly/dilly.c b/keyboards/keebio/dilly/dilly.c
new file mode 100644
index 0000000000..231a828f07
--- /dev/null
+++ b/keyboards/keebio/dilly/dilly.c
@@ -0,0 +1,18 @@
+#include "quantum.h"
+
+void eeconfig_init_kb(void) {
+#ifdef BACKLIGHT_ENABLE
+ backlight_enable();
+ backlight_level(3);
+#endif
+#ifdef RGBLIGHT_ENABLE
+ rgblight_enable(); // Enable RGB by default
+ rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness
+#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
+ rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default
+#endif
+#endif
+
+ eeconfig_update_kb(0);
+ eeconfig_init_user();
+}
diff --git a/keyboards/keebio/dilly/keymaps/default/keymap.c b/keyboards/keebio/dilly/keymaps/default/keymap.c
index 9cef52ae4e..71a92037b6 100644
--- a/keyboards/keebio/dilly/keymaps/default/keymap.c
+++ b/keyboards/keebio/dilly/keymaps/default/keymap.c
@@ -1,8 +1,6 @@
-// Copyright 2025 Keebio (@keebio)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
#include QMK_KEYBOARD_H
+
#define _BASE 0
#define _FN1 1
#define _FN2 2
diff --git a/keyboards/keebio/dilly/readme.md b/keyboards/keebio/dilly/readme.md
index e4b6e418a3..74139eaeae 100644
--- a/keyboards/keebio/dilly/readme.md
+++ b/keyboards/keebio/dilly/readme.md
@@ -1,17 +1,14 @@
-# Dilly
+Dilly
+=====
A 3x10 ortholinear keyboard using Kailh PG1350 Lower Profile Choc switches.
-* Keyboard Maintainer: Keebio
-* Hardware Supported: Dilly PCB, Arduino Pro Micro
-* Hardware Availability: [Keebio](https://keeb.io)
+Keyboard Maintainer: Keebio
+Hardware Supported: Dilly PCB, Arduino Pro Micro
+Hardware Availability: [Keebio](https://keeb.io)
Make example for this keyboard (after setting up your build environment):
make keebio/dilly:default
-Example of flashing this keyboard:
-
- make keebio/dilly:default:flash
-
-See 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).
+See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
diff --git a/keyboards/keebio/dsp40/keymaps/default/keymap.c b/keyboards/keebio/dsp40/keymaps/default/keymap.c
index c1496844bb..e8d3627ff2 100755
--- a/keyboards/keebio/dsp40/keymaps/default/keymap.c
+++ b/keyboards/keebio/dsp40/keymaps/default/keymap.c
@@ -24,7 +24,8 @@ enum custom_layer {
};
enum custom_keycodes {
- LOWER = SAFE_RANGE,
+ QWERTY = SAFE_RANGE,
+ LOWER,
RAISE,
ADJUST,
};
diff --git a/keyboards/keebio/dsp40/readme.md b/keyboards/keebio/dsp40/readme.md
index 1a37587313..c6b195c404 100644
--- a/keyboards/keebio/dsp40/readme.md
+++ b/keyboards/keebio/dsp40/readme.md
@@ -10,8 +10,4 @@ Make example for this keyboard (after setting up your build environment):
make keebio/dsp40/rev1:default
-Example of flashing this keyboard:
-
- make keebio/dsp40/rev1:default:flash
-
See 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/keebio/dsp40/rev1/keyboard.json b/keyboards/keebio/dsp40/rev1/keyboard.json
index 2553e12c2b..776f67837c 100644
--- a/keyboards/keebio/dsp40/rev1/keyboard.json
+++ b/keyboards/keebio/dsp40/rev1/keyboard.json
@@ -26,9 +26,6 @@
}
},
"backlight": {
- "default": {
- "brightness": 5
- },
"pin": "A6",
"levels": 7
},
diff --git a/keyboards/keebio/dsp40/rev1/readme.md b/keyboards/keebio/dsp40/rev1/readme.md
index 8852ef5501..ee62ba7886 100644
--- a/keyboards/keebio/dsp40/rev1/readme.md
+++ b/keyboards/keebio/dsp40/rev1/readme.md
@@ -10,8 +10,4 @@ Make example for this keyboard (after setting up your build environment):
make keebio/dsp40/rev1:default
-Example of flashing this keyboard:
-
- make keebio/dsp40/rev1:default:flash
-
See 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/keebio/dsp40/rev1/rev1.c b/keyboards/keebio/dsp40/rev1/rev1.c
new file mode 100644
index 0000000000..091cfc1523
--- /dev/null
+++ b/keyboards/keebio/dsp40/rev1/rev1.c
@@ -0,0 +1,26 @@
+/* Copyright 2021 Danny Nguyen
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+#include "quantum.h"
+
+void eeconfig_init_kb(void) {
+#ifdef BACKLIGHT_ENABLE
+ backlight_enable();
+ backlight_level(5);
+#endif
+ eeconfig_update_kb(0);
+ eeconfig_init_user();
+}
diff --git a/keyboards/keebio/ergodicity/config.h b/keyboards/keebio/ergodicity/config.h
deleted file mode 100644
index 4ffb768771..0000000000
--- a/keyboards/keebio/ergodicity/config.h
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright 2025 Danny Nguyen (danny@keeb.io)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
diff --git a/keyboards/keebio/ergodicity/ergodicity.c b/keyboards/keebio/ergodicity/ergodicity.c
new file mode 100644
index 0000000000..76fb136c03
--- /dev/null
+++ b/keyboards/keebio/ergodicity/ergodicity.c
@@ -0,0 +1,18 @@
+#include "quantum.h"
+
+void eeconfig_init_kb(void) {
+#ifdef BACKLIGHT_ENABLE
+ backlight_enable();
+ backlight_level(5);
+#endif
+#ifdef RGBLIGHT_ENABLE
+ rgblight_enable(); // Enable RGB by default
+ rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness
+#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
+ rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default
+#endif
+#endif
+
+ eeconfig_update_kb(0);
+ eeconfig_init_user();
+}
diff --git a/keyboards/keebio/ergodicity/keyboard.json b/keyboards/keebio/ergodicity/keyboard.json
index 504edf3b56..6f755ba45c 100644
--- a/keyboards/keebio/ergodicity/keyboard.json
+++ b/keyboards/keebio/ergodicity/keyboard.json
@@ -29,9 +29,6 @@
},
"diode_direction": "COL2ROW",
"backlight": {
- "default": {
- "brightness": 5
- },
"pin": "B5",
"levels": 7,
"breathing": true
diff --git a/keyboards/keebio/ergodicity/readme.md b/keyboards/keebio/ergodicity/readme.md
index 3fe77848e3..61f4ee658c 100644
--- a/keyboards/keebio/ergodicity/readme.md
+++ b/keyboards/keebio/ergodicity/readme.md
@@ -1,15 +1,11 @@
# Ergodicity
-* Keyboard Maintainer: [nooges/bakingpy](https://github.com/nooges)
-* Hardware Supported: Ergodicity PCB w/ATmega32u4
-* Hardware Availability: [Keebio](https://keeb.io)
+Keyboard Maintainer: [nooges/bakingpy](https://github.com/nooges)
+Hardware Supported: Ergodicity PCB w/ATmega32u4
+Hardware Availability: [Keebio](https://keeb.io)
Make example for this keyboard (after setting up your build environment):
- make keebio/ergodicity:default
-
-Example of flashing this keyboard:
-
- make keebio/ergodicity:default:flash
+ make keebio/ergodicity:default:dfu
See 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/keebio/foldkb/rev1/rev1.c b/keyboards/keebio/foldkb/rev1/rev1.c
index 33915a0efe..c2ba942a30 100644
--- a/keyboards/keebio/foldkb/rev1/rev1.c
+++ b/keyboards/keebio/foldkb/rev1/rev1.c
@@ -16,6 +16,15 @@ along with this program. If not, see .
#include "quantum.h"
+void eeconfig_init_kb(void) {
+#ifdef BACKLIGHT_ENABLE
+ backlight_enable();
+ backlight_level(3);
+#endif
+ eeconfig_update_kb(0);
+ eeconfig_init_user();
+}
+
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) { return false; }
if (index == 0) {
diff --git a/keyboards/keebio/fourier/keymaps/default/config.h b/keyboards/keebio/fourier/keymaps/default/config.h
new file mode 100644
index 0000000000..fa952ef4c3
--- /dev/null
+++ b/keyboards/keebio/fourier/keymaps/default/config.h
@@ -0,0 +1,23 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako
+Copyright 2015 Jack Humbert
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+#pragma once
+
+// #define USE_I2C
diff --git a/keyboards/keebio/fourier/keymaps/default/keymap.c b/keyboards/keebio/fourier/keymaps/default/keymap.c
index 0c8e1168af..6fa9ab5799 100644
--- a/keyboards/keebio/fourier/keymaps/default/keymap.c
+++ b/keyboards/keebio/fourier/keymaps/default/keymap.c
@@ -1,6 +1,3 @@
-// Copyright 2025 Keebio (@keebio)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
#include QMK_KEYBOARD_H
// Each layer gets a name for readability, which is then used in the keymap matrix below.
@@ -11,6 +8,10 @@
#define _FN1 1
#define _FN2 2
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+};
+
#define KC_FN1 MO(_FN1)
#define KC_FN2 MO(_FN2)
#define SPFN1 LT(_FN1, KC_SPACE)
diff --git a/keyboards/keebio/fourier/readme.md b/keyboards/keebio/fourier/readme.md
index d3d0f81f1e..c18d1a7484 100644
--- a/keyboards/keebio/fourier/readme.md
+++ b/keyboards/keebio/fourier/readme.md
@@ -1,10 +1,11 @@
-# Fourier
+Fourier
+========
A split 40% staggered keyboard made and sold by Keebio. [More info at Keebio](https://keeb.io).
-* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges)
-* Hardware Supported: Pro Micro
-* Hardware Availability: [Keebio](https://keeb.io/collections/frontpage/products/fourier-40-split-staggered-keyboard)
+Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges)
+Hardware Supported: Pro Micro
+Hardware Availability: [Keebio](https://keeb.io/collections/frontpage/products/fourier-40-split-staggered-keyboard)
Make example for this keyboard (after setting up your build environment):
@@ -12,8 +13,8 @@ Make example for this keyboard (after setting up your build environment):
Example of flashing this keyboard:
- make keebio/fourier:default:flash
+ make keebio/fourier:default:avrdude
-See 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).
+See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
A build guide for this keyboard can be found here: [Keebio Build Guides](https://docs.keeb.io)
diff --git a/keyboards/keebio/iris/readme.md b/keyboards/keebio/iris/readme.md
index d1d498c67e..e98f985394 100644
--- a/keyboards/keebio/iris/readme.md
+++ b/keyboards/keebio/iris/readme.md
@@ -1,10 +1,11 @@
-# Iris
+Iris
+====
A split ergo 4x6 keyboard with 3 or 4 thumb keys made and sold by Keebio. [More info at Keebio](https://keeb.io).
-* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges)
-* Hardware Supported: Pro Micro, ATmega32u4
-* Hardware Availability: [Keebio](https://keeb.io)
+Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges)
+Hardware Supported: Pro Micro, ATmega32u4
+Hardware Availability: [Keebio](https://keeb.io)
Make example for this keyboard (after setting up your build environment):
diff --git a/keyboards/keebio/iris/rev1/rev1.c b/keyboards/keebio/iris/rev1/rev1.c
index ea8029f47c..e05b758a44 100644
--- a/keyboards/keebio/iris/rev1/rev1.c
+++ b/keyboards/keebio/iris/rev1/rev1.c
@@ -1,6 +1,3 @@
-// Copyright 2025 Keebio (@keebio)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
#include "quantum.h"
#ifdef SWAP_HANDS_ENABLE
diff --git a/keyboards/keebio/iris/rev1_led/rev1_led.c b/keyboards/keebio/iris/rev1_led/rev1_led.c
index ea8029f47c..e05b758a44 100644
--- a/keyboards/keebio/iris/rev1_led/rev1_led.c
+++ b/keyboards/keebio/iris/rev1_led/rev1_led.c
@@ -1,6 +1,3 @@
-// Copyright 2025 Keebio (@keebio)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
#include "quantum.h"
#ifdef SWAP_HANDS_ENABLE
diff --git a/keyboards/keebio/iris/rev2/config.h b/keyboards/keebio/iris/rev2/config.h
deleted file mode 100644
index 4ffb768771..0000000000
--- a/keyboards/keebio/iris/rev2/config.h
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright 2025 Danny Nguyen (danny@keeb.io)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
diff --git a/keyboards/keebio/iris/rev2/keyboard.json b/keyboards/keebio/iris/rev2/keyboard.json
index 23023fa3db..9ea21851ee 100644
--- a/keyboards/keebio/iris/rev2/keyboard.json
+++ b/keyboards/keebio/iris/rev2/keyboard.json
@@ -10,9 +10,6 @@
},
"diode_direction": "COL2ROW",
"backlight": {
- "default": {
- "brightness": 3
- },
"pin": "B5",
"levels": 5
},
diff --git a/keyboards/keebio/iris/rev2/rev2.c b/keyboards/keebio/iris/rev2/rev2.c
index 45c8d90361..87d4b4029d 100644
--- a/keyboards/keebio/iris/rev2/rev2.c
+++ b/keyboards/keebio/iris/rev2/rev2.c
@@ -1,6 +1,3 @@
-// Copyright 2025 Danny Nguyen (danny@keeb.io)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
#include "quantum.h"
#ifdef SWAP_HANDS_ENABLE
@@ -21,3 +18,20 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
{{0,4}, {1,4}, {2,4}, {3,4}, {4,4}, {5,4}},
};
#endif
+
+void eeconfig_init_kb(void) {
+#ifdef BACKLIGHT_ENABLE
+ backlight_enable();
+ backlight_level(3);
+#endif
+#ifdef RGBLIGHT_ENABLE
+ rgblight_enable(); // Enable RGB by default
+ rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness
+#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
+ rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default
+#endif
+#endif
+
+ eeconfig_update_kb(0);
+ eeconfig_init_user();
+}
diff --git a/keyboards/keebio/iris/rev3/config.h b/keyboards/keebio/iris/rev3/config.h
deleted file mode 100644
index 4ffb768771..0000000000
--- a/keyboards/keebio/iris/rev3/config.h
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright 2025 Danny Nguyen (danny@keeb.io)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
diff --git a/keyboards/keebio/iris/rev3/keyboard.json b/keyboards/keebio/iris/rev3/keyboard.json
index 68805c27f8..f7b3f894fe 100644
--- a/keyboards/keebio/iris/rev3/keyboard.json
+++ b/keyboards/keebio/iris/rev3/keyboard.json
@@ -15,9 +15,6 @@
]
},
"backlight": {
- "default": {
- "brightness": 3
- },
"pin": "B6",
"levels": 5
},
diff --git a/keyboards/keebio/iris/rev3/rev3.c b/keyboards/keebio/iris/rev3/rev3.c
index 0f7f5a7f75..8b12388cac 100644
--- a/keyboards/keebio/iris/rev3/rev3.c
+++ b/keyboards/keebio/iris/rev3/rev3.c
@@ -1,6 +1,3 @@
-// Copyright 2025 Danny Nguyen (danny@keeb.io)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
#include "quantum.h"
#ifdef SWAP_HANDS_ENABLE
@@ -25,6 +22,23 @@ const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {1, 0};
# endif
#endif
+void eeconfig_init_kb(void) {
+#ifdef BACKLIGHT_ENABLE
+ backlight_enable();
+ backlight_level(3);
+#endif
+#ifdef RGBLIGHT_ENABLE
+ rgblight_enable(); // Enable RGB by default
+ rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness
+#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
+ rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default
+#endif
+#endif
+
+ eeconfig_update_kb(0);
+ eeconfig_init_user();
+}
+
#ifdef ENCODER_ENABLE
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) { return false; }
diff --git a/keyboards/keebio/iris/rev4/config.h b/keyboards/keebio/iris/rev4/config.h
deleted file mode 100644
index 4ffb768771..0000000000
--- a/keyboards/keebio/iris/rev4/config.h
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright 2025 Danny Nguyen (danny@keeb.io)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
diff --git a/keyboards/keebio/iris/rev4/keyboard.json b/keyboards/keebio/iris/rev4/keyboard.json
index dc5392d91f..3acd3d0a14 100644
--- a/keyboards/keebio/iris/rev4/keyboard.json
+++ b/keyboards/keebio/iris/rev4/keyboard.json
@@ -15,9 +15,6 @@
]
},
"backlight": {
- "default": {
- "brightness": 3
- },
"pin": "B5",
"levels": 5
},
diff --git a/keyboards/keebio/iris/rev4/rev4.c b/keyboards/keebio/iris/rev4/rev4.c
index 03a25c3395..04a2241966 100644
--- a/keyboards/keebio/iris/rev4/rev4.c
+++ b/keyboards/keebio/iris/rev4/rev4.c
@@ -1,8 +1,22 @@
-// Copyright 2025 Danny Nguyen (danny@keeb.io)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
#include "quantum.h"
+void eeconfig_init_kb(void) {
+#ifdef BACKLIGHT_ENABLE
+ backlight_enable();
+ backlight_level(3);
+#endif
+#ifdef RGBLIGHT_ENABLE
+ rgblight_enable(); // Enable RGB by default
+ rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness
+#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
+ rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default
+#endif
+#endif
+
+ eeconfig_update_kb(0);
+ eeconfig_init_user();
+}
+
#ifdef ENCODER_ENABLE
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) { return false; }
diff --git a/keyboards/keebio/iris/rev6/keyboard.json b/keyboards/keebio/iris/rev6/keyboard.json
index 910c4b35ce..ef240c5ab9 100644
--- a/keyboards/keebio/iris/rev6/keyboard.json
+++ b/keyboards/keebio/iris/rev6/keyboard.json
@@ -43,76 +43,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 5, "flags": 4},
- {"matrix": [0, 1], "x": 16, "y": 5, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 2, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 2, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 3, "flags": 4},
- {"matrix": [1, 5], "x": 80, "y": 17, "flags": 4},
- {"matrix": [1, 4], "x": 64, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 48, "y": 13, "flags": 4},
- {"matrix": [1, 2], "x": 32, "y": 15, "flags": 4},
- {"matrix": [1, 1], "x": 16, "y": 18, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 18, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4},
- {"matrix": [2, 3], "x": 48, "y": 27, "flags": 4},
- {"matrix": [2, 4], "x": 64, "y": 28, "flags": 4},
- {"matrix": [2, 5], "x": 80, "y": 30, "flags": 4},
- {"matrix": [3, 5], "x": 80, "y": 43, "flags": 4},
- {"matrix": [3, 4], "x": 64, "y": 42, "flags": 4},
- {"matrix": [3, 3], "x": 48, "y": 40, "flags": 4},
- {"matrix": [3, 2], "x": 32, "y": 42, "flags": 4},
- {"matrix": [3, 1], "x": 16, "y": 45, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 45, "flags": 4},
- {"matrix": [4, 2], "x": 56, "y": 47, "flags": 4},
- {"matrix": [4, 3], "x": 72, "y": 58, "flags": 4},
- {"matrix": [4, 4], "x": 90, "y": 64, "flags": 4},
- {"matrix": [4, 5], "x": 98, "y": 52, "flags": 4},
- {"x": 80, "y": 58, "flags": 2},
- {"x": 40, "y": 50, "flags": 2},
- {"x": 8, "y": 43, "flags": 2},
- {"x": 8, "y": 5, "flags": 2},
- {"x": 40, "y": 1, "flags": 2},
- {"x": 72, "y": 3, "flags": 2},
- {"matrix": [5, 0], "x": 224, "y": 5, "flags": 4},
- {"matrix": [5, 1], "x": 208, "y": 5, "flags": 4},
- {"matrix": [5, 2], "x": 192, "y": 2, "flags": 4},
- {"matrix": [5, 3], "x": 176, "y": 0, "flags": 4},
- {"matrix": [5, 4], "x": 160, "y": 2, "flags": 4},
- {"matrix": [5, 5], "x": 144, "y": 3, "flags": 4},
- {"matrix": [6, 5], "x": 144, "y": 18, "flags": 4},
- {"matrix": [6, 4], "x": 160, "y": 18, "flags": 4},
- {"matrix": [6, 3], "x": 176, "y": 15, "flags": 4},
- {"matrix": [6, 2], "x": 192, "y": 13, "flags": 4},
- {"matrix": [6, 1], "x": 208, "y": 15, "flags": 4},
- {"matrix": [6, 0], "x": 224, "y": 17, "flags": 4},
- {"matrix": [7, 0], "x": 224, "y": 32, "flags": 4},
- {"matrix": [7, 1], "x": 208, "y": 32, "flags": 4},
- {"matrix": [7, 2], "x": 192, "y": 28, "flags": 4},
- {"matrix": [7, 3], "x": 176, "y": 27, "flags": 4},
- {"matrix": [7, 4], "x": 160, "y": 28, "flags": 4},
- {"matrix": [7, 5], "x": 144, "y": 30, "flags": 4},
- {"matrix": [8, 5], "x": 144, "y": 45, "flags": 4},
- {"matrix": [8, 4], "x": 160, "y": 45, "flags": 4},
- {"matrix": [8, 3], "x": 176, "y": 42, "flags": 4},
- {"matrix": [8, 2], "x": 192, "y": 40, "flags": 4},
- {"matrix": [8, 1], "x": 208, "y": 42, "flags": 4},
- {"matrix": [8, 0], "x": 224, "y": 43, "flags": 4},
- {"matrix": [9, 2], "x": 168, "y": 47, "flags": 4},
- {"matrix": [9, 3], "x": 152, "y": 58, "flags": 4},
- {"matrix": [9, 4], "x": 134, "y": 64, "flags": 4},
- {"matrix": [9, 5], "x": 126, "y": 52, "flags": 4},
- {"x": 144, "y": 58, "flags": 2},
- {"x": 184, "y": 50, "flags": 2},
- {"x": 216, "y": 43, "flags": 2},
- {"x": 216, "y": 5, "flags": 2},
- {"x": 184, "y": 1, "flags": 2},
- {"x": 152, "y": 3, "flags": 2}
- ],
"max_brightness": 160,
"sleep": true,
"split_count": [34, 34]
diff --git a/keyboards/keebio/iris/rev6/rev6.c b/keyboards/keebio/iris/rev6/rev6.c
index 1547a0a6e8..3d9e18fd01 100644
--- a/keyboards/keebio/iris/rev6/rev6.c
+++ b/keyboards/keebio/iris/rev6/rev6.c
@@ -13,6 +13,57 @@ along with this program. If not, see .
*/
#include "quantum.h"
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ // Left Half
+ { 0, 1, 2, 3, 4, 5 },
+ { 11, 10, 9, 8, 7, 6 },
+ { 12, 13, 14, 15, 16, 17 },
+ { 23, 22, 21, 20, 19, 18 },
+ { NO_LED, NO_LED, 24, 25, 26, 27 },
+ // Right Half
+ { 34, 35, 36, 37, 38, 39 },
+ { 45, 44, 43, 42, 41, 40 },
+ { 46, 47, 48, 49, 50, 51 },
+ { 57, 56, 55, 54, 53, 52 },
+ { NO_LED, NO_LED, 58, 59, 60, 61 }
+}, {
+ // LED Index to Physical Position
+ // Left Half
+ { 0, 5 }, { 16, 5 }, { 32, 2 }, { 48, 0 }, { 64, 2 }, { 80, 3 },
+ { 80, 17 }, { 64, 15 }, { 48, 13 }, { 32, 15 }, { 16, 18 }, { 0, 18 },
+ { 0, 32 }, { 16, 32 }, { 32, 28 }, { 48, 27 }, { 64, 28 }, { 80, 30 },
+ { 80, 43 }, { 64, 42 }, { 48, 40 }, { 32, 42 }, { 16, 45 }, { 0, 45 },
+ { 56, 47 }, { 72, 58 }, { 90, 64 }, { 98, 52 },
+ { 80, 58 }, { 40, 50 }, { 8, 43 }, { 8, 5 }, { 40, 1 }, { 72, 3 },
+ // Right Half
+ { 224, 5 }, { 208, 5 }, { 192, 2 }, { 176, 0 }, { 160, 2 }, { 144, 3 },
+ { 144, 18 }, { 160, 18 }, { 176, 15 }, { 192, 13 }, { 208, 15 }, { 224, 17 },
+ { 224, 32 }, { 208, 32 }, { 192, 28 }, { 176, 27 }, { 160, 28 }, { 144, 30 },
+ { 144, 45 }, { 160, 45 }, { 176, 42 }, { 192, 40 }, { 208, 42 }, { 224, 43 },
+ { 168, 47 }, { 152, 58 }, { 134, 64 }, { 126, 52 },
+ { 144, 58 }, { 184, 50 }, { 216, 43 }, { 216, 5 }, { 184, 1 }, { 152, 3 }
+}, {
+ // LED Index to Flag
+ // Left Half
+ 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, 4, 4, 4,
+ 2, 2, 2, 2, 2, 2,
+ // Right Half
+ 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, 4, 4, 4,
+ 2, 2, 2, 2, 2, 2
+
+} };
+#endif
+
#ifdef ENCODER_ENABLE
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) { return false; }
diff --git a/keyboards/keebio/iris/rev7/keyboard.json b/keyboards/keebio/iris/rev7/keyboard.json
index 7b58990d18..79b410cd94 100644
--- a/keyboards/keebio/iris/rev7/keyboard.json
+++ b/keyboards/keebio/iris/rev7/keyboard.json
@@ -41,76 +41,6 @@
"multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 5, "flags": 4},
- {"matrix": [0, 1], "x": 16, "y": 5, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 2, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 2, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 3, "flags": 4},
- {"matrix": [1, 5], "x": 80, "y": 17, "flags": 4},
- {"matrix": [1, 4], "x": 64, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 48, "y": 13, "flags": 4},
- {"matrix": [1, 2], "x": 32, "y": 15, "flags": 4},
- {"matrix": [1, 1], "x": 16, "y": 18, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 18, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4},
- {"matrix": [2, 3], "x": 48, "y": 27, "flags": 4},
- {"matrix": [2, 4], "x": 64, "y": 28, "flags": 4},
- {"matrix": [2, 5], "x": 80, "y": 30, "flags": 4},
- {"matrix": [3, 5], "x": 80, "y": 43, "flags": 4},
- {"matrix": [3, 4], "x": 64, "y": 42, "flags": 4},
- {"matrix": [3, 3], "x": 48, "y": 40, "flags": 4},
- {"matrix": [3, 2], "x": 32, "y": 42, "flags": 4},
- {"matrix": [3, 1], "x": 16, "y": 45, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 45, "flags": 4},
- {"matrix": [4, 2], "x": 56, "y": 47, "flags": 4},
- {"matrix": [4, 3], "x": 72, "y": 58, "flags": 4},
- {"matrix": [4, 4], "x": 90, "y": 64, "flags": 4},
- {"matrix": [4, 5], "x": 98, "y": 52, "flags": 4},
- {"x": 80, "y": 58, "flags": 2},
- {"x": 40, "y": 50, "flags": 2},
- {"x": 8, "y": 43, "flags": 2},
- {"x": 8, "y": 5, "flags": 2},
- {"x": 40, "y": 1, "flags": 2},
- {"x": 72, "y": 3, "flags": 2},
- {"matrix": [5, 0], "x": 224, "y": 5, "flags": 4},
- {"matrix": [5, 1], "x": 208, "y": 5, "flags": 4},
- {"matrix": [5, 2], "x": 192, "y": 2, "flags": 4},
- {"matrix": [5, 3], "x": 176, "y": 0, "flags": 4},
- {"matrix": [5, 4], "x": 160, "y": 2, "flags": 4},
- {"matrix": [5, 5], "x": 144, "y": 3, "flags": 4},
- {"matrix": [6, 5], "x": 144, "y": 18, "flags": 4},
- {"matrix": [6, 4], "x": 160, "y": 18, "flags": 4},
- {"matrix": [6, 3], "x": 176, "y": 15, "flags": 4},
- {"matrix": [6, 2], "x": 192, "y": 13, "flags": 4},
- {"matrix": [6, 1], "x": 208, "y": 15, "flags": 4},
- {"matrix": [6, 0], "x": 224, "y": 17, "flags": 4},
- {"matrix": [7, 0], "x": 224, "y": 32, "flags": 4},
- {"matrix": [7, 1], "x": 208, "y": 32, "flags": 4},
- {"matrix": [7, 2], "x": 192, "y": 28, "flags": 4},
- {"matrix": [7, 3], "x": 176, "y": 27, "flags": 4},
- {"matrix": [7, 4], "x": 160, "y": 28, "flags": 4},
- {"matrix": [7, 5], "x": 144, "y": 30, "flags": 4},
- {"matrix": [8, 5], "x": 144, "y": 45, "flags": 4},
- {"matrix": [8, 4], "x": 160, "y": 45, "flags": 4},
- {"matrix": [8, 3], "x": 176, "y": 42, "flags": 4},
- {"matrix": [8, 2], "x": 192, "y": 40, "flags": 4},
- {"matrix": [8, 1], "x": 208, "y": 42, "flags": 4},
- {"matrix": [8, 0], "x": 224, "y": 43, "flags": 4},
- {"matrix": [9, 2], "x": 168, "y": 47, "flags": 4},
- {"matrix": [9, 3], "x": 152, "y": 58, "flags": 4},
- {"matrix": [9, 4], "x": 134, "y": 64, "flags": 4},
- {"matrix": [9, 5], "x": 126, "y": 52, "flags": 4},
- {"x": 144, "y": 58, "flags": 2},
- {"x": 184, "y": 50, "flags": 2},
- {"x": 216, "y": 43, "flags": 2},
- {"x": 216, "y": 5, "flags": 2},
- {"x": 184, "y": 1, "flags": 2},
- {"x": 152, "y": 3, "flags": 2}
- ],
"max_brightness": 120,
"sleep": true,
"split_count": [34, 34]
diff --git a/keyboards/keebio/iris/rev7/rev7.c b/keyboards/keebio/iris/rev7/rev7.c
index 197a9dec75..deab7acc8a 100644
--- a/keyboards/keebio/iris/rev7/rev7.c
+++ b/keyboards/keebio/iris/rev7/rev7.c
@@ -13,6 +13,59 @@ along with this program. If not, see .
*/
#include "quantum.h"
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ // Left Half
+ { 0, 1, 2, 3, 4, 5 },
+ { 11, 10, 9, 8, 7, 6 },
+ { 12, 13, 14, 15, 16, 17 },
+ { 23, 22, 21, 20, 19, 18 },
+ { NO_LED, NO_LED, 24, 25, 26, 27 },
+ // Right Half
+ { 34, 35, 36, 37, 38, 39 },
+ { 45, 44, 43, 42, 41, 40 },
+ { 46, 47, 48, 49, 50, 51 },
+ { 57, 56, 55, 54, 53, 52 },
+ { NO_LED, NO_LED, 58, 59, 60, 61 }
+}, {
+ // LED Index to Physical Position
+ // Left Half
+ { 0, 5 }, { 16, 5 }, { 32, 2 }, { 48, 0 }, { 64, 2 }, { 80, 3 },
+ { 80, 17 }, { 64, 15 }, { 48, 13 }, { 32, 15 }, { 16, 18 }, { 0, 18 },
+ { 0, 32 }, { 16, 32 }, { 32, 28 }, { 48, 27 }, { 64, 28 }, { 80, 30 },
+ { 80, 43 }, { 64, 42 }, { 48, 40 }, { 32, 42 }, { 16, 45 }, { 0, 45 },
+ { 56, 47 }, { 72, 58 }, { 90, 64 }, { 98, 52 },
+ { 80, 58 }, { 40, 50 }, { 8, 43 }, { 8, 5 }, { 40, 1 }, { 72, 3 },
+ // Right Half
+ { 224, 5 }, { 208, 5 }, { 192, 2 }, { 176, 0 }, { 160, 2 }, { 144, 3 },
+ { 144, 18 }, { 160, 18 }, { 176, 15 }, { 192, 13 }, { 208, 15 }, { 224, 17 },
+ { 224, 32 }, { 208, 32 }, { 192, 28 }, { 176, 27 }, { 160, 28 }, { 144, 30 },
+ { 144, 45 }, { 160, 45 }, { 176, 42 }, { 192, 40 }, { 208, 42 }, { 224, 43 },
+ { 168, 47 }, { 152, 58 }, { 134, 64 }, { 126, 52 },
+ { 144, 58 }, { 184, 50 }, { 216, 43 }, { 216, 5 }, { 184, 1 }, { 152, 3 }
+}, {
+ // LED Index to Flag
+ // Left Half
+ 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, 4, 4, 4,
+ 2, 2, 2, 2, 2, 2,
+ // Right Half
+ 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, 4, 4, 4,
+ 2, 2, 2, 2, 2, 2
+
+} };
+
+
+#endif
+
#ifdef ENCODER_ENABLE
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) { return false; }
diff --git a/keyboards/keebio/iris_lm/g1/config.h b/keyboards/keebio/iris_lm/g1/config.h
index ca19ea6402..952033edf1 100644
--- a/keyboards/keebio/iris_lm/g1/config.h
+++ b/keyboards/keebio/iris_lm/g1/config.h
@@ -13,11 +13,14 @@
#define SERIAL_USART_PIN_SWAP
#define USB_VBUS_PIN C6
+#define SPLIT_HAND_PIN A0
/* Defines for the RGB matrix */
-#define WS2812_PWM_DRIVER PWMD3
-#define WS2812_PWM_CHANNEL 4
-#define WS2812_PWM_PAL_MODE 10
-#define WS2812_DMA_STREAM STM32_DMA1_STREAM2
-#define WS2812_DMA_CHANNEL 2
-#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP
+#ifdef RGB_MATRIX_ENABLE
+# define WS2812_PWM_DRIVER PWMD3
+# define WS2812_PWM_CHANNEL 4
+# define WS2812_PWM_PAL_MODE 10
+# define WS2812_DMA_STREAM STM32_DMA1_STREAM2
+# define WS2812_DMA_CHANNEL 2
+# define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP
+#endif
diff --git a/keyboards/keebio/iris_lm/g1/keyboard.json b/keyboards/keebio/iris_lm/g1/keyboard.json
index 20cd78d937..6aca0c9bac 100644
--- a/keyboards/keebio/iris_lm/g1/keyboard.json
+++ b/keyboards/keebio/iris_lm/g1/keyboard.json
@@ -33,9 +33,6 @@
]
}
},
- "handedness": {
- "pin": "A0"
- },
"matrix_pins": {
"right": {
"cols": ["C11", "C13", "B6", "B9", "B12", "B2"],
diff --git a/keyboards/keebio/iris_lm/k1/config.h b/keyboards/keebio/iris_lm/k1/config.h
index ca19ea6402..952033edf1 100644
--- a/keyboards/keebio/iris_lm/k1/config.h
+++ b/keyboards/keebio/iris_lm/k1/config.h
@@ -13,11 +13,14 @@
#define SERIAL_USART_PIN_SWAP
#define USB_VBUS_PIN C6
+#define SPLIT_HAND_PIN A0
/* Defines for the RGB matrix */
-#define WS2812_PWM_DRIVER PWMD3
-#define WS2812_PWM_CHANNEL 4
-#define WS2812_PWM_PAL_MODE 10
-#define WS2812_DMA_STREAM STM32_DMA1_STREAM2
-#define WS2812_DMA_CHANNEL 2
-#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP
+#ifdef RGB_MATRIX_ENABLE
+# define WS2812_PWM_DRIVER PWMD3
+# define WS2812_PWM_CHANNEL 4
+# define WS2812_PWM_PAL_MODE 10
+# define WS2812_DMA_STREAM STM32_DMA1_STREAM2
+# define WS2812_DMA_CHANNEL 2
+# define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP
+#endif
diff --git a/keyboards/keebio/iris_lm/k1/keyboard.json b/keyboards/keebio/iris_lm/k1/keyboard.json
index 3a86f6253b..e5b0d5c655 100644
--- a/keyboards/keebio/iris_lm/k1/keyboard.json
+++ b/keyboards/keebio/iris_lm/k1/keyboard.json
@@ -18,9 +18,6 @@
},
"split": {
"enabled": true,
- "handedness": {
- "pin": "A0"
- },
"matrix_pins": {
"right": {
"cols": ["C11", "C13", "B6", "B9", "B12", "B2"],
diff --git a/keyboards/keebio/kbo5000/keymaps/default/keymap.c b/keyboards/keebio/kbo5000/keymaps/default/keymap.c
index e3ad5fe6fa..e164711fc9 100644
--- a/keyboards/keebio/kbo5000/keymaps/default/keymap.c
+++ b/keyboards/keebio/kbo5000/keymaps/default/keymap.c
@@ -1,6 +1,3 @@
-// Copyright 2025 Keebio (@keebio)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
#include QMK_KEYBOARD_H
enum encoder_names {
diff --git a/keyboards/keebio/kbo5000/keymaps/iso/keymap.c b/keyboards/keebio/kbo5000/keymaps/iso/keymap.c
index 78b3023267..b08c92d7e1 100644
--- a/keyboards/keebio/kbo5000/keymaps/iso/keymap.c
+++ b/keyboards/keebio/kbo5000/keymaps/iso/keymap.c
@@ -1,6 +1,3 @@
-// Copyright 2025 Keebio (@keebio)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
#include QMK_KEYBOARD_H
enum encoder_names {
diff --git a/keyboards/keebio/kbo5000/readme.md b/keyboards/keebio/kbo5000/readme.md
index 2208542122..1f1f63889e 100644
--- a/keyboards/keebio/kbo5000/readme.md
+++ b/keyboards/keebio/kbo5000/readme.md
@@ -15,6 +15,6 @@ Example of flashing this keyboard:
Handedness detection is already hardwired onto the PCB, so no need to deal with `EE_HANDS` or flashing .eep files.
-See 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).
+See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
A build guide for this keyboard can be found here: [Keebio Build Guides](https://docs.keeb.io)
diff --git a/keyboards/keebio/kbo5000/rev1/config.h b/keyboards/keebio/kbo5000/rev1/config.h
index 365d756870..12f7f76c87 100644
--- a/keyboards/keebio/kbo5000/rev1/config.h
+++ b/keyboards/keebio/kbo5000/rev1/config.h
@@ -18,6 +18,4 @@ along with this program. If not, see .
#pragma once
-#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
-
#define CAPS_LOCK_LED_PIN B6
diff --git a/keyboards/keebio/kbo5000/rev1/rev1.c b/keyboards/keebio/kbo5000/rev1/rev1.c
index 1fd1b9b905..8aa227deba 100644
--- a/keyboards/keebio/kbo5000/rev1/rev1.c
+++ b/keyboards/keebio/kbo5000/rev1/rev1.c
@@ -1,6 +1,3 @@
-// Copyright 2025 Danny Nguyen (danny@keeb.io)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
#include "quantum.h"
#include "split_util.h"
@@ -17,6 +14,23 @@ bool led_update_kb(led_t led_state) {
return true;
}
+void eeconfig_init_kb(void) {
+#ifdef BACKLIGHT_ENABLE
+ backlight_enable();
+ backlight_level(3);
+#endif
+#ifdef RGBLIGHT_ENABLE
+ rgblight_enable(); // Enable RGB by default
+ rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness
+#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
+ rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default
+#endif
+#endif
+
+ eeconfig_update_kb(0);
+ eeconfig_init_user();
+}
+
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) { return false; }
if (index == 0) {
diff --git a/keyboards/keebio/laplace/keymaps/default/keymap.c b/keyboards/keebio/laplace/keymaps/default/keymap.c
index c45a7956e5..fbd88c72af 100644
--- a/keyboards/keebio/laplace/keymaps/default/keymap.c
+++ b/keyboards/keebio/laplace/keymaps/default/keymap.c
@@ -1,6 +1,3 @@
-// Copyright 2025 Keebio (@keebio)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
#include QMK_KEYBOARD_H
#define _BASE 0
diff --git a/keyboards/keebio/laplace/readme.md b/keyboards/keebio/laplace/readme.md
index f71efb0c37..4292483bc8 100644
--- a/keyboards/keebio/laplace/readme.md
+++ b/keyboards/keebio/laplace/readme.md
@@ -1,10 +1,11 @@
-# Laplace
+Laplace
+=======
A 40% staggered keyboard made and sold by Keebio. [More info at Keebio](https://keeb.io).
-* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges)
-* Hardware Supported: Pro Micro
-* Hardware Availability: [Keebio](https://keeb.io)
+Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges)
+Hardware Supported: Pro Micro
+Hardware Availability: [Keebio](https://keeb.io)
Make example for this keyboard (after setting up your build environment):
@@ -12,8 +13,8 @@ Make example for this keyboard (after setting up your build environment):
Example of flashing this keyboard:
- make keebio/laplace:default:flash
+ make keebio/laplace:default:avrdude
-See 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).
+See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
A build guide for this keyboard can be found here: [Keebio Build Guides](https://docs.keeb.io)
diff --git a/keyboards/keebio/levinson/keymaps/default/config.h b/keyboards/keebio/levinson/keymaps/default/config.h
new file mode 100644
index 0000000000..be2d71e8f0
--- /dev/null
+++ b/keyboards/keebio/levinson/keymaps/default/config.h
@@ -0,0 +1,28 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako
+Copyright 2015 Jack Humbert
+Copyright 2018 Danny Nguyen
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+#pragma once
+
+// #define USE_I2C
+
+/* Select hand configuration */
+// #define MASTER_RIGHT
+// #define EE_HANDS
diff --git a/keyboards/keebio/levinson/keymaps/default/keymap.c b/keyboards/keebio/levinson/keymaps/default/keymap.c
index b3f4e17124..20be1edd39 100644
--- a/keyboards/keebio/levinson/keymaps/default/keymap.c
+++ b/keyboards/keebio/levinson/keymaps/default/keymap.c
@@ -1,8 +1,6 @@
-// Copyright 2025 Keebio (@keebio)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
#include QMK_KEYBOARD_H
+
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
diff --git a/keyboards/keebio/levinson/levinson.c b/keyboards/keebio/levinson/levinson.c
index e78585b731..6f1a050e80 100644
--- a/keyboards/keebio/levinson/levinson.c
+++ b/keyboards/keebio/levinson/levinson.c
@@ -1,6 +1,3 @@
-// Copyright 2025 Keebio (@keebio)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
#include "quantum.h"
#ifdef SWAP_HANDS_ENABLE
diff --git a/keyboards/keebio/levinson/readme.md b/keyboards/keebio/levinson/readme.md
index 2c63b7d8f5..f328aa4205 100644
--- a/keyboards/keebio/levinson/readme.md
+++ b/keyboards/keebio/levinson/readme.md
@@ -1,10 +1,11 @@
-# Levinson
+Levinson
+========
A split 40% split 4x12 ortholinear keyboard made and sold by Keebio. It's essentially a Let's Split with LED backlight support and 2u thumb key support. [More info at Keebio](https://keeb.io).
-* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges)
-* Hardware Supported: Pro Micro, Elite-C
-* Hardware Availability: [Keebio](https://keeb.io)
+Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges)
+Hardware Supported: Pro Micro, Elite-C
+Hardware Availability: [Keebio](https://keeb.io)
Make example for this keyboard (after setting up your build environment):
@@ -12,7 +13,7 @@ Make example for this keyboard (after setting up your build environment):
Example of flashing this keyboard with Pro micro:
- make keebio/levinson/rev3:default:flash
+ make keebio/levinson/rev3:default:avrdude
Example of flashing this keyboard with Elite-C:
diff --git a/keyboards/keebio/levinson/rev2/config.h b/keyboards/keebio/levinson/rev2/config.h
deleted file mode 100644
index 4ffb768771..0000000000
--- a/keyboards/keebio/levinson/rev2/config.h
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright 2025 Danny Nguyen (danny@keeb.io)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
diff --git a/keyboards/keebio/levinson/rev2/keyboard.json b/keyboards/keebio/levinson/rev2/keyboard.json
index b6b1fcfa33..dd71186837 100644
--- a/keyboards/keebio/levinson/rev2/keyboard.json
+++ b/keyboards/keebio/levinson/rev2/keyboard.json
@@ -15,27 +15,12 @@
},
"diode_direction": "COL2ROW",
"backlight": {
- "default": {
- "brightness": 5
- },
"pin": "B5",
"levels": 7
},
"rgblight": {
"led_count": 12,
- "split_count": [6, 6],
- "animations": {
- "breathing": true,
- "rainbow_mood": true,
- "rainbow_swirl": true,
- "snake": true,
- "knight": true,
- "christmas": true,
- "static_gradient": true,
- "rgb_test": true,
- "alternating": true,
- "twinkle": true
- }
+ "split_count": [6, 6]
},
"ws2812": {
"pin": "D3"
diff --git a/keyboards/keebio/levinson/rev2/rev2.c b/keyboards/keebio/levinson/rev2/rev2.c
new file mode 100644
index 0000000000..76fb136c03
--- /dev/null
+++ b/keyboards/keebio/levinson/rev2/rev2.c
@@ -0,0 +1,18 @@
+#include "quantum.h"
+
+void eeconfig_init_kb(void) {
+#ifdef BACKLIGHT_ENABLE
+ backlight_enable();
+ backlight_level(5);
+#endif
+#ifdef RGBLIGHT_ENABLE
+ rgblight_enable(); // Enable RGB by default
+ rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness
+#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
+ rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default
+#endif
+#endif
+
+ eeconfig_update_kb(0);
+ eeconfig_init_user();
+}
diff --git a/keyboards/keebio/levinson/rev3/config.h b/keyboards/keebio/levinson/rev3/config.h
deleted file mode 100644
index 4ffb768771..0000000000
--- a/keyboards/keebio/levinson/rev3/config.h
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright 2025 Danny Nguyen (danny@keeb.io)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
diff --git a/keyboards/keebio/levinson/rev3/keyboard.json b/keyboards/keebio/levinson/rev3/keyboard.json
index 0c619bb627..7930727755 100644
--- a/keyboards/keebio/levinson/rev3/keyboard.json
+++ b/keyboards/keebio/levinson/rev3/keyboard.json
@@ -24,9 +24,6 @@
},
"diode_direction": "COL2ROW",
"backlight": {
- "default": {
- "brightness": 5
- },
"pin": "B6",
"levels": 7
},
diff --git a/keyboards/keebio/levinson/rev3/rev3.c b/keyboards/keebio/levinson/rev3/rev3.c
new file mode 100644
index 0000000000..76fb136c03
--- /dev/null
+++ b/keyboards/keebio/levinson/rev3/rev3.c
@@ -0,0 +1,18 @@
+#include "quantum.h"
+
+void eeconfig_init_kb(void) {
+#ifdef BACKLIGHT_ENABLE
+ backlight_enable();
+ backlight_level(5);
+#endif
+#ifdef RGBLIGHT_ENABLE
+ rgblight_enable(); // Enable RGB by default
+ rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness
+#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
+ rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default
+#endif
+#endif
+
+ eeconfig_update_kb(0);
+ eeconfig_init_user();
+}
diff --git a/keyboards/keebio/nyquist/readme.md b/keyboards/keebio/nyquist/readme.md
index 1bfcd59bfa..40e7ebf3d2 100644
--- a/keyboards/keebio/nyquist/readme.md
+++ b/keyboards/keebio/nyquist/readme.md
@@ -1,10 +1,11 @@
-# Nyquist
+Nyquist
+=======
A split 60% split 5x12 ortholinear keyboard made and sold by Keebio. [More info at Keebio](https://keeb.io).
-* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges)
-* Hardware Supported: Pro Micro, ATmega32u4
-* Hardware Availability: [Keebio](https://keeb.io)
+Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges)
+Hardware Supported: Pro Micro, ATmega32u4
+Hardware Availability: [Keebio](https://keeb.io)
Make example for this keyboard (after setting up your build environment):
@@ -14,6 +15,6 @@ Example of flashing this keyboard:
make keebio/nyquist/rev3:default:flash
-See 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).
+See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
A build guide for this keyboard can be found here: [Nyquist Build Guide](https://docs.keeb.io)
diff --git a/keyboards/keebio/nyquist/rev2/config.h b/keyboards/keebio/nyquist/rev2/config.h
deleted file mode 100644
index 4ffb768771..0000000000
--- a/keyboards/keebio/nyquist/rev2/config.h
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright 2025 Danny Nguyen (danny@keeb.io)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
diff --git a/keyboards/keebio/nyquist/rev2/keyboard.json b/keyboards/keebio/nyquist/rev2/keyboard.json
index a66dff3904..69639db6bf 100644
--- a/keyboards/keebio/nyquist/rev2/keyboard.json
+++ b/keyboards/keebio/nyquist/rev2/keyboard.json
@@ -24,27 +24,12 @@
},
"diode_direction": "COL2ROW",
"backlight": {
- "default": {
- "brightness": 5
- },
"pin": "B6",
"levels": 7
},
"rgblight": {
"led_count": 12,
- "split_count": [6, 6],
- "animations": {
- "breathing": true,
- "rainbow_mood": true,
- "rainbow_swirl": true,
- "snake": true,
- "knight": true,
- "christmas": true,
- "static_gradient": true,
- "rgb_test": true,
- "alternating": true,
- "twinkle": true
- }
+ "split_count": [6, 6]
},
"ws2812": {
"pin": "D3"
diff --git a/keyboards/keebio/nyquist/rev2/rev2.c b/keyboards/keebio/nyquist/rev2/rev2.c
new file mode 100644
index 0000000000..76fb136c03
--- /dev/null
+++ b/keyboards/keebio/nyquist/rev2/rev2.c
@@ -0,0 +1,18 @@
+#include "quantum.h"
+
+void eeconfig_init_kb(void) {
+#ifdef BACKLIGHT_ENABLE
+ backlight_enable();
+ backlight_level(5);
+#endif
+#ifdef RGBLIGHT_ENABLE
+ rgblight_enable(); // Enable RGB by default
+ rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness
+#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
+ rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default
+#endif
+#endif
+
+ eeconfig_update_kb(0);
+ eeconfig_init_user();
+}
diff --git a/keyboards/keebio/nyquist/rev3/config.h b/keyboards/keebio/nyquist/rev3/config.h
deleted file mode 100644
index 4ffb768771..0000000000
--- a/keyboards/keebio/nyquist/rev3/config.h
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright 2025 Danny Nguyen (danny@keeb.io)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
diff --git a/keyboards/keebio/nyquist/rev3/keyboard.json b/keyboards/keebio/nyquist/rev3/keyboard.json
index a4db4dcd8e..bdc7be0e4e 100644
--- a/keyboards/keebio/nyquist/rev3/keyboard.json
+++ b/keyboards/keebio/nyquist/rev3/keyboard.json
@@ -24,9 +24,6 @@
},
"diode_direction": "COL2ROW",
"backlight": {
- "default": {
- "brightness": 5
- },
"pin": "B5",
"levels": 7
},
diff --git a/keyboards/keebio/nyquist/rev3/rev3.c b/keyboards/keebio/nyquist/rev3/rev3.c
new file mode 100644
index 0000000000..76fb136c03
--- /dev/null
+++ b/keyboards/keebio/nyquist/rev3/rev3.c
@@ -0,0 +1,18 @@
+#include "quantum.h"
+
+void eeconfig_init_kb(void) {
+#ifdef BACKLIGHT_ENABLE
+ backlight_enable();
+ backlight_level(5);
+#endif
+#ifdef RGBLIGHT_ENABLE
+ rgblight_enable(); // Enable RGB by default
+ rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness
+#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
+ rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default
+#endif
+#endif
+
+ eeconfig_update_kb(0);
+ eeconfig_init_user();
+}
diff --git a/keyboards/keebio/nyquist/rev5/config.h b/keyboards/keebio/nyquist/rev5/config.h
index f05cd8695f..c4bbd6c5b2 100644
--- a/keyboards/keebio/nyquist/rev5/config.h
+++ b/keyboards/keebio/nyquist/rev5/config.h
@@ -3,6 +3,8 @@
#pragma once
+#define SPLIT_HAND_PIN GP23
+
#define USB_VBUS_PIN GP18
#define SERIAL_USART_FULL_DUPLEX
diff --git a/keyboards/keebio/nyquist/rev5/keyboard.json b/keyboards/keebio/nyquist/rev5/keyboard.json
index 6ff3dd3821..fc03c00e29 100644
--- a/keyboards/keebio/nyquist/rev5/keyboard.json
+++ b/keyboards/keebio/nyquist/rev5/keyboard.json
@@ -25,9 +25,6 @@
]
}
},
- "handedness": {
- "pin": "GP23"
- },
"matrix_pins": {
"right":{
"cols": ["GP25", "GP29", "GP20", "GP11", "GP3", "GP2"],
diff --git a/keyboards/keebio/quefrency/keymaps/default/config.h b/keyboards/keebio/quefrency/keymaps/default/config.h
new file mode 100644
index 0000000000..53bf8fb933
--- /dev/null
+++ b/keyboards/keebio/quefrency/keymaps/default/config.h
@@ -0,0 +1,24 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako
+Copyright 2015 Jack Humbert
+Copyright 2018 Danny Nguyen
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+#pragma once
+
+// #define USE_I2C
diff --git a/keyboards/keebio/quefrency/keymaps/default/keymap.c b/keyboards/keebio/quefrency/keymaps/default/keymap.c
index 35fb3eec1b..48dcd73eff 100644
--- a/keyboards/keebio/quefrency/keymaps/default/keymap.c
+++ b/keyboards/keebio/quefrency/keymaps/default/keymap.c
@@ -12,6 +12,10 @@ enum custom_layer {
_FN1,
};
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+};
+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT_65_with_macro(
KC_F1, KC_F2, QK_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_DEL, KC_BSPC, KC_HOME,
diff --git a/keyboards/keebio/quefrency/keymaps/default60/keymap.c b/keyboards/keebio/quefrency/keymaps/default60/keymap.c
index 2f06f69309..f3545dfbdc 100644
--- a/keyboards/keebio/quefrency/keymaps/default60/keymap.c
+++ b/keyboards/keebio/quefrency/keymaps/default60/keymap.c
@@ -12,6 +12,10 @@ enum custom_layer {
_FN1,
};
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+};
+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT_60(
QK_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_DEL, KC_BSPC,
diff --git a/keyboards/keebio/quefrency/keymaps/default65/keymap.c b/keyboards/keebio/quefrency/keymaps/default65/keymap.c
index 0cdc7dbcdc..980dd95eed 100644
--- a/keyboards/keebio/quefrency/keymaps/default65/keymap.c
+++ b/keyboards/keebio/quefrency/keymaps/default65/keymap.c
@@ -3,6 +3,8 @@
#include QMK_KEYBOARD_H
+extern keymap_config_t keymap_config;
+
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
@@ -10,6 +12,10 @@
#define _BASE 0
#define _FN1 1
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+};
+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT_65(
QK_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_DEL, KC_BSPC, KC_HOME,
diff --git a/keyboards/keebio/quefrency/readme.md b/keyboards/keebio/quefrency/readme.md
index 2138a5d14b..dd2bde88f4 100644
--- a/keyboards/keebio/quefrency/readme.md
+++ b/keyboards/keebio/quefrency/readme.md
@@ -1,10 +1,11 @@
-# Quefrency
+Quefrency
+=========
A split 60/65% staggered keyboard made and sold by Keebio. [More info at Keebio](https://keeb.io).
-* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges)
-* Hardware Supported: Pro Micro (Rev. 1), ATmega32u4 (Rev. 2 & 3)
-* Hardware Availability: [Keebio](https://keeb.io/)
+Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges)
+Hardware Supported: Pro Micro (Rev. 1), ATmega32u4 (Rev. 2 & 3)
+Hardware Availability: [Keebio](https://keeb.io/)
Make example for this keyboard (after setting up your build environment):
@@ -16,6 +17,6 @@ Example of flashing this keyboard:
Handedness detection is already hardwired onto the PCB, so no need to deal with `EE_HANDS` or flashing .eep files.
-See 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).
+See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
A build guide for this keyboard can be found here: [Keebio Build Guides](https://docs.keeb.io)
diff --git a/keyboards/keebio/quefrency/rev1/config.h b/keyboards/keebio/quefrency/rev1/config.h
deleted file mode 100644
index 4ffb768771..0000000000
--- a/keyboards/keebio/quefrency/rev1/config.h
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright 2025 Danny Nguyen (danny@keeb.io)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
diff --git a/keyboards/keebio/quefrency/rev1/rev1.c b/keyboards/keebio/quefrency/rev1/rev1.c
new file mode 100644
index 0000000000..51adb74d31
--- /dev/null
+++ b/keyboards/keebio/quefrency/rev1/rev1.c
@@ -0,0 +1,14 @@
+#include "quantum.h"
+
+void eeconfig_init_kb(void) {
+#ifdef RGBLIGHT_ENABLE
+ rgblight_enable(); // Enable RGB by default
+ rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness
+#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
+ rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default
+#endif
+#endif
+
+ eeconfig_update_kb(0);
+ eeconfig_init_user();
+}
diff --git a/keyboards/keebio/quefrency/rev2/config.h b/keyboards/keebio/quefrency/rev2/config.h
index 365d756870..12f7f76c87 100644
--- a/keyboards/keebio/quefrency/rev2/config.h
+++ b/keyboards/keebio/quefrency/rev2/config.h
@@ -18,6 +18,4 @@ along with this program. If not, see .
#pragma once
-#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
-
#define CAPS_LOCK_LED_PIN B6
diff --git a/keyboards/keebio/quefrency/rev2/rev2.c b/keyboards/keebio/quefrency/rev2/rev2.c
index 63a02ee20b..f0320597f7 100644
--- a/keyboards/keebio/quefrency/rev2/rev2.c
+++ b/keyboards/keebio/quefrency/rev2/rev2.c
@@ -1,6 +1,3 @@
-// Copyright 2025 Danny Nguyen (danny@keeb.io)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
#include "quantum.h"
#include "split_util.h"
@@ -17,6 +14,23 @@ bool led_update_kb(led_t led_state) {
return true;
}
+void eeconfig_init_kb(void) {
+#ifdef BACKLIGHT_ENABLE
+ backlight_enable();
+ backlight_level(3);
+#endif
+#ifdef RGBLIGHT_ENABLE
+ rgblight_enable(); // Enable RGB by default
+ rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness
+#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
+ rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default
+#endif
+#endif
+
+ eeconfig_update_kb(0);
+ eeconfig_init_user();
+}
+
#ifdef ENCODER_ENABLE
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) { return false; }
diff --git a/keyboards/keebio/quefrency/rev3/config.h b/keyboards/keebio/quefrency/rev3/config.h
index 365d756870..12f7f76c87 100644
--- a/keyboards/keebio/quefrency/rev3/config.h
+++ b/keyboards/keebio/quefrency/rev3/config.h
@@ -18,6 +18,4 @@ along with this program. If not, see .
#pragma once
-#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
-
#define CAPS_LOCK_LED_PIN B6
diff --git a/keyboards/keebio/quefrency/rev3/rev3.c b/keyboards/keebio/quefrency/rev3/rev3.c
index 3e61e07928..74d68723f5 100644
--- a/keyboards/keebio/quefrency/rev3/rev3.c
+++ b/keyboards/keebio/quefrency/rev3/rev3.c
@@ -30,6 +30,23 @@ bool led_update_kb(led_t led_state) {
return true;
}
+void eeconfig_init_kb(void) {
+#ifdef BACKLIGHT_ENABLE
+ backlight_enable();
+ backlight_level(3);
+#endif
+#ifdef RGBLIGHT_ENABLE
+ rgblight_enable(); // Enable RGB by default
+ rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness
+#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
+ rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default
+#endif
+#endif
+
+ eeconfig_update_kb(0);
+ eeconfig_init_user();
+}
+
#ifdef ENCODER_ENABLE
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) { return false; }
diff --git a/keyboards/keebio/quefrency/rev6/config.h b/keyboards/keebio/quefrency/rev6/config.h
index ca19ea6402..952033edf1 100644
--- a/keyboards/keebio/quefrency/rev6/config.h
+++ b/keyboards/keebio/quefrency/rev6/config.h
@@ -13,11 +13,14 @@
#define SERIAL_USART_PIN_SWAP
#define USB_VBUS_PIN C6
+#define SPLIT_HAND_PIN A0
/* Defines for the RGB matrix */
-#define WS2812_PWM_DRIVER PWMD3
-#define WS2812_PWM_CHANNEL 4
-#define WS2812_PWM_PAL_MODE 10
-#define WS2812_DMA_STREAM STM32_DMA1_STREAM2
-#define WS2812_DMA_CHANNEL 2
-#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP
+#ifdef RGB_MATRIX_ENABLE
+# define WS2812_PWM_DRIVER PWMD3
+# define WS2812_PWM_CHANNEL 4
+# define WS2812_PWM_PAL_MODE 10
+# define WS2812_DMA_STREAM STM32_DMA1_STREAM2
+# define WS2812_DMA_CHANNEL 2
+# define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP
+#endif
diff --git a/keyboards/keebio/quefrency/rev6/keyboard.json b/keyboards/keebio/quefrency/rev6/keyboard.json
index ac488daa08..84629eb4cf 100644
--- a/keyboards/keebio/quefrency/rev6/keyboard.json
+++ b/keyboards/keebio/quefrency/rev6/keyboard.json
@@ -200,18 +200,12 @@
]
}
},
- "handedness": {
- "pin": "A0"
- },
"matrix_pins": {
"right": {
"cols": ["B2", "B1", "B0", "B12", "B13", "A7", "B6", "C13", "C14"],
"rows": ["A5", "A4", "A3", "B5", "F1"]
}
},
- "serial": {
- "driver": "usart"
- },
"transport": {
"sync": {
"matrix_state": true
diff --git a/keyboards/keebio/quefrency/rev6/rules.mk b/keyboards/keebio/quefrency/rev6/rules.mk
new file mode 100644
index 0000000000..c6e2988321
--- /dev/null
+++ b/keyboards/keebio/quefrency/rev6/rules.mk
@@ -0,0 +1 @@
+SERIAL_DRIVER = usart
diff --git a/keyboards/keebio/rorschach/keymaps/default/config.h b/keyboards/keebio/rorschach/keymaps/default/config.h
new file mode 100644
index 0000000000..da32daebb3
--- /dev/null
+++ b/keyboards/keebio/rorschach/keymaps/default/config.h
@@ -0,0 +1,24 @@
+/*
+Copyright 2018 Danny Nguyen
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+#pragma once
+
+// #define USE_I2C
+
+/* Select hand configuration */
+// #define MASTER_RIGHT
+// #define EE_HANDS
diff --git a/keyboards/keebio/rorschach/keymaps/default/keymap.c b/keyboards/keebio/rorschach/keymaps/default/keymap.c
index df03718193..2949164c34 100644
--- a/keyboards/keebio/rorschach/keymaps/default/keymap.c
+++ b/keyboards/keebio/rorschach/keymaps/default/keymap.c
@@ -1,8 +1,6 @@
-// Copyright 2025 Keebio (@keebio)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
#include QMK_KEYBOARD_H
+
enum layer_names {
_QWERTY,
_LOWER,
diff --git a/keyboards/keebio/rorschach/readme.md b/keyboards/keebio/rorschach/readme.md
index f048cd307a..1a623a5353 100644
--- a/keyboards/keebio/rorschach/readme.md
+++ b/keyboards/keebio/rorschach/readme.md
@@ -1,10 +1,11 @@
-# Rorschach
+Rorschach
+=========
A split ortholinear 4x6 keyboard with 2 additional thumb keys and sold by Keebio. [More info at Keebio](https://keeb.io).
-* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges)
-* Hardware Supported: Pro Micro
-* Hardware Availability: [Keebio](https://keeb.io)
+Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges)
+Hardware Supported: Pro Micro
+Hardware Availability: [Keebio](https://keeb.io)
Make example for this keyboard (after setting up your build environment):
@@ -12,8 +13,8 @@ Make example for this keyboard (after setting up your build environment):
Example of flashing this keyboard:
- make keebio/rorschach/rev1:default:flash
+ make keebio/rorschach/rev1:default:avrdude
-See 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).
+See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
A build guide for this keyboard can be found here: [Iris Build Guide](https://docs.keeb.io/iris-build-guide.html)
diff --git a/keyboards/keebio/sinc/readme.md b/keyboards/keebio/sinc/readme.md
index 9ffdf29c42..29d9ed0415 100644
--- a/keyboards/keebio/sinc/readme.md
+++ b/keyboards/keebio/sinc/readme.md
@@ -15,6 +15,6 @@ Example of flashing this keyboard:
Handedness detection is already hardwired onto the PCB, so no need to deal with `EE_HANDS` or flashing .eep files.
-See 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).
+See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
A build guide for this keyboard can be found here: [Keebio Build Guides](https://docs.keeb.io)
diff --git a/keyboards/keebio/stick/config.h b/keyboards/keebio/stick/config.h
deleted file mode 100644
index 4ffb768771..0000000000
--- a/keyboards/keebio/stick/config.h
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright 2025 Danny Nguyen (danny@keeb.io)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
diff --git a/keyboards/keebio/stick/keyboard.json b/keyboards/keebio/stick/keyboard.json
index 00102c565a..b8d1184ec1 100644
--- a/keyboards/keebio/stick/keyboard.json
+++ b/keyboards/keebio/stick/keyboard.json
@@ -54,21 +54,7 @@
"solid_splash": true,
"solid_multisplash": true
},
- "driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 100, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 140, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 200, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 220, "y": 0, "flags": 4}
- ]
+ "driver": "ws2812"
},
"encoder": {
"rotary": [
diff --git a/keyboards/keebio/stick/stick.c b/keyboards/keebio/stick/stick.c
index 9c5e67d93d..6fac145091 100644
--- a/keyboards/keebio/stick/stick.c
+++ b/keyboards/keebio/stick/stick.c
@@ -17,6 +17,38 @@ along with this program. If not, see .
#include "quantum.h"
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }
+}, {
+ // LED Index to Physical Position
+ { 0, 0 }, { 20, 0 }, { 40, 0 }, { 60, 0 },
+ { 80, 0 }, { 100, 0 }, { 120, 0 }, { 140, 0 },
+ { 160, 0 }, { 180, 0 }, { 200, 0 }, { 220, 0 },
+}, {
+ // LED Index to Flag
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
+} };
+#endif
+
+void eeconfig_init_kb(void) {
+#ifdef RGBLIGHT_ENABLE
+ rgblight_enable(); // Enable RGB by default
+ rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness
+# ifdef RGBLIGHT_EFFECT_RAINDOWN_SWIRL
+ rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default
+# endif
+#endif
+
+#ifdef RGB_MATRIX_ENABLE
+ rgb_matrix_enable(); // Enable RGB by default
+#endif
+
+ eeconfig_update_kb(0);
+ eeconfig_init_user();
+}
+
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) { return false; }
if (index == 0) {
diff --git a/keyboards/keebio/tragicforce68/keymaps/default/keymap.c b/keyboards/keebio/tragicforce68/keymaps/default/keymap.c
index ee1c567c1b..59076d4ecf 100644
--- a/keyboards/keebio/tragicforce68/keymaps/default/keymap.c
+++ b/keyboards/keebio/tragicforce68/keymaps/default/keymap.c
@@ -1,6 +1,3 @@
-// Copyright 2025 Keebio (@keebio)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
#include QMK_KEYBOARD_H
#define _QWERTY 0
diff --git a/keyboards/keebio/tragicforce68/readme.md b/keyboards/keebio/tragicforce68/readme.md
index 07a673e848..c3ea92d7ad 100644
--- a/keyboards/keebio/tragicforce68/readme.md
+++ b/keyboards/keebio/tragicforce68/readme.md
@@ -1,10 +1,11 @@
-# Tragicforce 68
+Tragicforce 68
+===============
Magicforce 68 with [Tragicforce 68 replacement PCB](https://keeb.io/products/mf68-magicforce-68-pcb-replacement-kit) from Keebio.
-* Keyboard Maintainer: [Keebio](https://keeb.io)
-* Hardware Supported: Pro Micro
-* Hardware Availability: [Keebio](https://keeb.io)
+Keyboard Maintainer: [Keebio](https://keeb.io)
+Hardware Supported: Pro Micro
+Hardware Availability: [Keebio](https://keeb.io)
Make example for this keyboard (after setting up your build environment):
@@ -12,6 +13,6 @@ Make example for this keyboard (after setting up your build environment):
Example of flashing this keyboard:
- make keebio/tragicforce68:default:flash
+ make keebio/tragicforce68:default:avrdude
-See 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).
+See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
diff --git a/keyboards/keebio/tukey/readme.md b/keyboards/keebio/tukey/readme.md
index 7e0334084c..21527b6bf4 100644
--- a/keyboards/keebio/tukey/readme.md
+++ b/keyboards/keebio/tukey/readme.md
@@ -2,16 +2,12 @@
2-key keyboard for Big Switches
-* Keyboard Maintainer: [nooges/Keebio](https://github.com/nooges)
-* Hardware Supported: Pro Micro, Elite-C
-* Hardware Availability: [Keebio](https://keeb.io)
+Keyboard Maintainer: [nooges/Keebio](https://github.com/nooges)
+Hardware Supported: Pro Micro, Elite-C
+Hardware Availability: [Keebio](https://keeb.io)
Make example for this keyboard (after setting up your build environment):
make keebio/tukey:default
-Example of flashing this keyboard:
-
- make keebio/tukey:default:flash
-
See 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/keebio/viterbi/keymaps/default/config.h b/keyboards/keebio/viterbi/keymaps/default/config.h
index ffe91d3bee..acc5970dcb 100644
--- a/keyboards/keebio/viterbi/keymaps/default/config.h
+++ b/keyboards/keebio/viterbi/keymaps/default/config.h
@@ -17,6 +17,13 @@ along with this program. If not, see .
#pragma once
+// #define USE_I2C
+
+/* Select hand configuration */
+
+// #define MASTER_RIGHT
+// #define EE_HANDS
+
#undef RGBLIGHT_LED_COUNT
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
diff --git a/keyboards/keebio/viterbi/keymaps/default/keymap.c b/keyboards/keebio/viterbi/keymaps/default/keymap.c
index 4a658ac6ec..e37fc8f790 100644
--- a/keyboards/keebio/viterbi/keymaps/default/keymap.c
+++ b/keyboards/keebio/viterbi/keymaps/default/keymap.c
@@ -1,8 +1,6 @@
-// Copyright 2025 Keebio (@keebio)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
#include QMK_KEYBOARD_H
+
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
diff --git a/keyboards/keebio/viterbi/readme.md b/keyboards/keebio/viterbi/readme.md
index 393fd6bbfb..2e475100b6 100644
--- a/keyboards/keebio/viterbi/readme.md
+++ b/keyboards/keebio/viterbi/readme.md
@@ -1,19 +1,21 @@
-# Viterbi
+Viterbi
+=======
A split 5x14 ortholinear keyboard kit made and sold by Keebio. [More info at Keebio](https://keeb.io)
-* Keyboard Maintainer: [Bakingpy](https://github.com/nooges)
-* Hardware Supported: Pro Micro
-* Hardware Availability: [Keebio](https://keeb.io)
+Keyboard Maintainer: [Bakingpy](https://github.com/nooges)
+Hardware Supported: Pro Micro
+Hardware Availability: [Keebio](https://keeb.io)
Make example for this keyboard (after setting up your build environment):
make keebio/viterbi/rev1:default
+
Example of flashing this keyboard:
- make keebio/viterbi/rev1:default:flash
+ make keebio/viterbi/rev1:default:avrdude
-See 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).
+See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
A build guide for this keyboard can be found here: [Viterbi Build Guide](https://docs.keeb.io)
diff --git a/keyboards/keebio/viterbi/rev2/config.h b/keyboards/keebio/viterbi/rev2/config.h
deleted file mode 100644
index 4ffb768771..0000000000
--- a/keyboards/keebio/viterbi/rev2/config.h
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright 2025 Danny Nguyen (danny@keeb.io)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
diff --git a/keyboards/keebio/viterbi/rev2/keyboard.json b/keyboards/keebio/viterbi/rev2/keyboard.json
index 4d427df6ef..a3e2d055b2 100644
--- a/keyboards/keebio/viterbi/rev2/keyboard.json
+++ b/keyboards/keebio/viterbi/rev2/keyboard.json
@@ -18,9 +18,6 @@
},
"diode_direction": "COL2ROW",
"backlight": {
- "default": {
- "brightness": 5
- },
"pin": "B6",
"levels": 7
},
diff --git a/keyboards/keebio/viterbi/rev2/rev2.c b/keyboards/keebio/viterbi/rev2/rev2.c
new file mode 100644
index 0000000000..f00bb726e9
--- /dev/null
+++ b/keyboards/keebio/viterbi/rev2/rev2.c
@@ -0,0 +1,18 @@
+#include "quantum.h"
+
+void eeconfig_init_kb(void) {
+#ifdef BACKLIGHT_ENABLE
+ backlight_enable();
+ backlight_level(5);
+#endif
+#ifdef RGBLIGHT_ENABLE
+ rgblight_enable(); // Enable RGB by default
+ rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness
+#ifdef RGBLIGHT_MODE_RAINBOW_SWIRL
+ rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default
+#endif
+#endif
+
+ eeconfig_update_kb(0);
+ eeconfig_init_user();
+}
diff --git a/keyboards/keebio/wavelet/keymaps/default/keymap.c b/keyboards/keebio/wavelet/keymaps/default/keymap.c
index b3f4e17124..20be1edd39 100644
--- a/keyboards/keebio/wavelet/keymaps/default/keymap.c
+++ b/keyboards/keebio/wavelet/keymaps/default/keymap.c
@@ -1,8 +1,6 @@
-// Copyright 2025 Keebio (@keebio)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
#include QMK_KEYBOARD_H
+
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
diff --git a/keyboards/keebio/wavelet/readme.md b/keyboards/keebio/wavelet/readme.md
index e77344bfb6..a107289bb4 100644
--- a/keyboards/keebio/wavelet/readme.md
+++ b/keyboards/keebio/wavelet/readme.md
@@ -1,10 +1,11 @@
-# Wavelet
+Wavelet
+=======
A 4x12 ortholinear keyboard using Kailh Choc Low-Profile switches made and sold by [Keebio](https://keeb.io).
-* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges)
-* Hardware Supported: Pro Micro
-* Hardware Availability: [Keebio](https://keeb.io)
+Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges)
+Hardware Supported: Pro Micro
+Hardware Availability: [Keebio](https://keeb.io)
Make example for this keyboard (after setting up your build environment):
@@ -12,8 +13,8 @@ Make example for this keyboard (after setting up your build environment):
Example of flashing this keyboard:
- make keebio/wavelet:default:flash
+ make keebio/wavelet:default:avrdude
-See 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).
+See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
A build guide for this keyboard can be found here: [Levinson Build Guide](https://docs.keeb.io)
diff --git a/keyboards/keebio/wavelet/wavelet.c b/keyboards/keebio/wavelet/wavelet.c
index e78585b731..6f1a050e80 100644
--- a/keyboards/keebio/wavelet/wavelet.c
+++ b/keyboards/keebio/wavelet/wavelet.c
@@ -1,6 +1,3 @@
-// Copyright 2025 Keebio (@keebio)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
#include "quantum.h"
#ifdef SWAP_HANDS_ENABLE
diff --git a/keyboards/keybee/keybee65/keybee65.c b/keyboards/keybee/keybee65/keybee65.c
new file mode 100644
index 0000000000..6033dbeaaa
--- /dev/null
+++ b/keyboards/keybee/keybee65/keybee65.c
@@ -0,0 +1,39 @@
+/*
+Copyright 2020
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+#include "quantum.h"
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, NO_LED, 13, 14 },
+ { 29, NO_LED, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15 },
+ { 30, NO_LED, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 },
+ { 57, NO_LED, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, NO_LED, 45, 44 },
+ { 58, 59, 60, NO_LED, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 }
+ }, {
+ // LED Index to Physical Position
+ { 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 },
+ { 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 },
+ { 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 },
+ { 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 },
+ { 6, 68 }, { 25, 68 }, { 44, 68 }, { 96, 68 }, { 148, 68 }, { 164, 68 }, { 180, 68 }, { 192, 68 }, { 207, 68 }, { 220, 68 }
+ }, {
+ // LED Index to Flag
+ 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, 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, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
+ }
+};
diff --git a/keyboards/keybee/keybee65/keyboard.json b/keyboards/keybee/keybee65/keyboard.json
index a1f3426dbe..a2a4862836 100644
--- a/keyboards/keybee/keybee65/keyboard.json
+++ b/keyboards/keybee/keybee65/keyboard.json
@@ -12,76 +12,6 @@
},
"rgb_matrix": {
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 6, "y": 2, "flags": 4},
- {"matrix": [0, 1], "x": 20, "y": 2, "flags": 4},
- {"matrix": [0, 2], "x": 35, "y": 11, "flags": 4},
- {"matrix": [0, 3], "x": 49, "y": 11, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 11, "flags": 4},
- {"matrix": [0, 5], "x": 78, "y": 11, "flags": 4},
- {"matrix": [0, 6], "x": 92, "y": 11, "flags": 4},
- {"matrix": [0, 7], "x": 107, "y": 11, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 11, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 11, "flags": 4},
- {"matrix": [0, 10], "x": 148, "y": 11, "flags": 4},
- {"matrix": [0, 11], "x": 164, "y": 11, "flags": 4},
- {"matrix": [0, 12], "x": 177, "y": 11, "flags": 4},
- {"matrix": [0, 14], "x": 198, "y": 11, "flags": 4},
- {"matrix": [0, 15], "x": 220, "y": 11, "flags": 4},
- {"matrix": [1, 15], "x": 9, "y": 24, "flags": 4},
- {"matrix": [1, 14], "x": 26, "y": 24, "flags": 4},
- {"matrix": [1, 13], "x": 42, "y": 24, "flags": 4},
- {"matrix": [1, 12], "x": 56, "y": 24, "flags": 4},
- {"matrix": [1, 11], "x": 70, "y": 24, "flags": 4},
- {"matrix": [1, 10], "x": 85, "y": 24, "flags": 4},
- {"matrix": [1, 9], "x": 100, "y": 24, "flags": 4},
- {"matrix": [1, 8], "x": 113, "y": 24, "flags": 4},
- {"matrix": [1, 7], "x": 128, "y": 24, "flags": 4},
- {"matrix": [1, 6], "x": 143, "y": 24, "flags": 4},
- {"matrix": [1, 5], "x": 156, "y": 24, "flags": 4},
- {"matrix": [1, 4], "x": 170, "y": 24, "flags": 4},
- {"matrix": [1, 3], "x": 184, "y": 24, "flags": 4},
- {"matrix": [1, 2], "x": 202, "y": 24, "flags": 4},
- {"matrix": [1, 0], "x": 220, "y": 24, "flags": 4},
- {"matrix": [2, 0], "x": 11, "y": 38, "flags": 4},
- {"matrix": [2, 2], "x": 29, "y": 38, "flags": 4},
- {"matrix": [2, 3], "x": 46, "y": 38, "flags": 4},
- {"matrix": [2, 4], "x": 60, "y": 38, "flags": 4},
- {"matrix": [2, 5], "x": 74, "y": 38, "flags": 4},
- {"matrix": [2, 6], "x": 88, "y": 38, "flags": 4},
- {"matrix": [2, 7], "x": 103, "y": 38, "flags": 4},
- {"matrix": [2, 8], "x": 118, "y": 38, "flags": 4},
- {"matrix": [2, 9], "x": 132, "y": 38, "flags": 4},
- {"matrix": [2, 10], "x": 146, "y": 38, "flags": 4},
- {"matrix": [2, 11], "x": 160, "y": 38, "flags": 4},
- {"matrix": [2, 12], "x": 174, "y": 38, "flags": 4},
- {"matrix": [2, 14], "x": 198, "y": 38, "flags": 4},
- {"matrix": [2, 15], "x": 220, "y": 38, "flags": 4},
- {"matrix": [3, 15], "x": 16, "y": 53, "flags": 4},
- {"matrix": [3, 14], "x": 37, "y": 53, "flags": 4},
- {"matrix": [3, 12], "x": 52, "y": 53, "flags": 4},
- {"matrix": [3, 11], "x": 66, "y": 53, "flags": 4},
- {"matrix": [3, 10], "x": 80, "y": 53, "flags": 4},
- {"matrix": [3, 9], "x": 96, "y": 53, "flags": 4},
- {"matrix": [3, 8], "x": 110, "y": 53, "flags": 4},
- {"matrix": [3, 7], "x": 125, "y": 53, "flags": 4},
- {"matrix": [3, 6], "x": 140, "y": 53, "flags": 4},
- {"matrix": [3, 5], "x": 153, "y": 53, "flags": 4},
- {"matrix": [3, 4], "x": 164, "y": 53, "flags": 4},
- {"matrix": [3, 3], "x": 187, "y": 53, "flags": 4},
- {"matrix": [3, 2], "x": 207, "y": 53, "flags": 4},
- {"matrix": [3, 0], "x": 220, "y": 53, "flags": 4},
- {"matrix": [4, 0], "x": 6, "y": 64, "flags": 4},
- {"matrix": [4, 1], "x": 25, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 44, "y": 64, "flags": 4},
- {"matrix": [4, 7], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 148, "y": 64, "flags": 4},
- {"matrix": [4, 11], "x": 164, "y": 64, "flags": 4},
- {"matrix": [4, 12], "x": 180, "y": 64, "flags": 4},
- {"matrix": [4, 13], "x": 192, "y": 64, "flags": 4},
- {"matrix": [4, 14], "x": 207, "y": 64, "flags": 4},
- {"matrix": [4, 15], "x": 220, "y": 64, "flags": 4}
- ],
"sleep": true
},
"rgblight": {
diff --git a/keyboards/keycapsss/kimiko/rev2/glcdfont.c b/keyboards/keycapsss/kimiko/glcdfont.c
similarity index 100%
rename from keyboards/keycapsss/kimiko/rev2/glcdfont.c
rename to keyboards/keycapsss/kimiko/glcdfont.c
diff --git a/keyboards/keycapsss/kimiko/rev1/keymaps/default/config.h b/keyboards/keycapsss/kimiko/keymaps/default/config.h
similarity index 91%
rename from keyboards/keycapsss/kimiko/rev1/keymaps/default/config.h
rename to keyboards/keycapsss/kimiko/keymaps/default/config.h
index fc6f93bec0..8be15d964a 100644
--- a/keyboards/keycapsss/kimiko/rev1/keymaps/default/config.h
+++ b/keyboards/keycapsss/kimiko/keymaps/default/config.h
@@ -17,6 +17,10 @@
#pragma once
+#define OLED_FONT_H "keyboards/keycapsss/kimiko/keymaps/default/glcdfont.c"
+// #define OLED_FONT_WIDTH 5
+// #define OLED_FONT_HEIGHT 7
+
#ifdef RGBLIGHT_ENABLE
# define RGBLIGHT_HUE_STEP 8
# define RGBLIGHT_SAT_STEP 8
diff --git a/keyboards/keycapsss/kimiko/keymaps/default/glcdfont.c b/keyboards/keycapsss/kimiko/keymaps/default/glcdfont.c
new file mode 100644
index 0000000000..c3c79d76ee
--- /dev/null
+++ b/keyboards/keycapsss/kimiko/keymaps/default/glcdfont.c
@@ -0,0 +1,237 @@
+// Copyright 2019 MechMerlin
+// Copyright 2020 @ben_roe (keycapsss.com)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "progmem.h"
+
+// Corne 8x6 font
+// Online editor: https://helixfonteditor.netlify.com
+// or https://joric.github.io/qle/
+// See also: https://github.com/soundmonster/glcdfont_converter
+
+const unsigned char font[] PROGMEM = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
+ 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
+ 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
+ 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
+ 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
+ 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
+ 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
+ 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
+ 0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
+ 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
+ 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
+ 0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
+ 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
+ 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
+ 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
+ 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
+ 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
+ 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
+ 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
+ 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
+ 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
+ 0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
+ 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
+ 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
+ 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
+ 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
+ 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
+ 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
+ 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
+ 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
+ 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
+ 0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
+ 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
+ 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
+ 0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
+ 0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
+ 0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
+ 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
+ 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
+ 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
+ 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
+ 0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
+ 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
+ 0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
+ 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
+ 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
+ 0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
+ 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
+ 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
+ 0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
+ 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
+ 0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
+ 0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
+ 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
+ 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
+ 0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
+ 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
+ 0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
+ 0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
+ 0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
+ 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
+ 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
+ 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
+ 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
+ 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
+ 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
+ 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
+ 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
+ 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
+ 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
+ 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
+ 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
+ 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
+ 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
+ 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
+ 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
+ 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
+ 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
+ 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
+ 0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
+ 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
+ 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
+ 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
+ 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
+ 0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
+ 0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
+ 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
+ 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
+ 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
+ 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
+ 0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
+ 0x00, 0x13, 0x07, 0x08, 0x00, 0x00,
+ 0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
+ 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
+ 0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
+ 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
+ 0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
+ 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
+ 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00,
+ 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
+ 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
+ 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
+ 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
+ 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
+ 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
+ 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
+ 0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
+ 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00,
+ 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00,
+ 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
+ 0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
+ 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
+ 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
+ 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
+ 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
+ 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
+ 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
+ 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
+ 0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
+ 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
+ 0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
+ 0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
+ 0x3C, 0x26, 0x23, 0x26, 0x3C, 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, 0xF8, 0x04, 0x22, 0x52, 0xE2,
+ 0x42, 0x42, 0x42, 0xE2, 0x52, 0x22,
+ 0x22, 0x22, 0x42, 0x82, 0x02, 0x02,
+ 0x22, 0x22, 0x02, 0x04, 0xF8, 0x00,
+ 0x00, 0xF8, 0x04, 0x02, 0x02, 0x82,
+ 0x42, 0x22, 0x42, 0x82, 0x02, 0x02,
+ 0x02, 0x82, 0x42, 0x22, 0x12, 0x22,
+ 0x42, 0x82, 0x02, 0x04, 0xF8, 0x00,
+ 0x00, 0xF8, 0xFC, 0xDE, 0xAE, 0x1E,
+ 0xBE, 0xBE, 0xBE, 0x1E, 0xAE, 0xDE,
+ 0xDE, 0xDE, 0xBE, 0x7E, 0xFE, 0xFE,
+ 0xDE, 0xDE, 0xFE, 0xFC, 0xF8, 0x00,
+ 0x00, 0xF8, 0xFC, 0xFE, 0xFE, 0x7E,
+ 0xBE, 0xDE, 0xBE, 0x7E, 0xFE, 0xFE,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x80, 0x80, 0x40, 0x40, 0x20, 0x20,
+ 0x10, 0x10, 0x08, 0x08, 0x10, 0x10,
+ 0x20, 0x20, 0x40, 0x40, 0x80, 0x80,
+ 0x80, 0x80, 0xC0, 0xC0, 0xE0, 0xE0,
+ 0xF0, 0xF0, 0xF8, 0xF8, 0xF0, 0xF0,
+ 0xE0, 0xE0, 0xC0, 0xC0, 0x80, 0x80,
+ 0x80, 0x80, 0x40, 0x40, 0x20, 0x20,
+ 0x10, 0x10, 0x08, 0x08, 0x10, 0x10,
+ 0x20, 0x20, 0x40, 0x40, 0x80, 0x80,
+ 0x80, 0x80, 0x40, 0xC0, 0x60, 0xA0,
+ 0x50, 0xB0, 0x58, 0xA8, 0x50, 0xB0,
+ 0x60, 0xA0, 0x40, 0xC0, 0x80, 0x80,
+ 0x1F, 0x1F, 0x0E, 0x1B, 0x11, 0xC0,
+ 0x1F, 0x1F, 0x00, 0x1F, 0x1F, 0x06,
+ 0x0C, 0xC6, 0x1F, 0x1F, 0x80, 0x5F,
+ 0x1F, 0x00, 0x1F, 0x1F, 0x8E, 0x9B,
+ 0x91, 0x80, 0x9F, 0x9F, 0x91, 0x1F,
+ 0x00, 0x1F, 0x20, 0x44, 0x4A, 0x47,
+ 0x42, 0x42, 0x42, 0x47, 0x4A, 0x44,
+ 0x40, 0x40, 0x40, 0x40, 0x41, 0x42,
+ 0x44, 0x44, 0x40, 0x20, 0x1F, 0x00,
+ 0x00, 0x1F, 0x20, 0x40, 0x41, 0x40,
+ 0x40, 0x40, 0x40, 0x40, 0x41, 0x40,
+ 0x41, 0x41, 0x4F, 0x48, 0x48, 0x48,
+ 0x4F, 0x41, 0x41, 0x20, 0x1F, 0x00,
+ 0x00, 0x1F, 0x3F, 0x7B, 0x75, 0x78,
+ 0x7D, 0x7D, 0x7D, 0x78, 0x75, 0x7B,
+ 0x7F, 0x7F, 0x7F, 0x7F, 0x7E, 0x7D,
+ 0x7B, 0x7B, 0x7F, 0x3F, 0x1F, 0x00,
+ 0x00, 0x1F, 0x3F, 0x7F, 0x7E, 0x7F,
+ 0x7F, 0x7F, 0x7F, 0x7F, 0x7E, 0x7F,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x88, 0x88, 0x5D, 0x5D, 0x3E, 0x3E,
+ 0x7C, 0x7C, 0xF8, 0xF8, 0x7C, 0x7C,
+ 0x3E, 0x3E, 0x5D, 0x5D, 0x88, 0x88,
+ 0x88, 0x88, 0x55, 0x55, 0x23, 0x23,
+ 0x47, 0x47, 0x8F, 0x8F, 0x47, 0x47,
+ 0x23, 0x23, 0x55, 0x55, 0x88, 0x88,
+ 0x88, 0x88, 0xD5, 0xD5, 0xE2, 0xE2,
+ 0xC4, 0xC4, 0x88, 0x88, 0xC4, 0xC4,
+ 0xE2, 0xE2, 0xD5, 0xD5, 0x88, 0x88,
+ 0x88, 0x88, 0x5D, 0xD5, 0x6B, 0xB6,
+ 0x6D, 0xD6, 0xAD, 0xDA, 0x6D, 0xD6,
+ 0x6B, 0xB6, 0x5D, 0xD5, 0x88, 0x88,
+ 0x00, 0x84, 0x87, 0x7D, 0x55, 0x57,
+ 0x55, 0x7D, 0x87, 0x84, 0x00, 0x91,
+ 0x95, 0x55, 0x55, 0x3F, 0x55, 0x55,
+ 0x95, 0x91, 0x00, 0x08, 0x08, 0x08,
+ 0x88, 0xFC, 0x0A, 0x09, 0x08, 0x08,
+ 0x04, 0xF8, 0x00, 0x00, 0xF8, 0x04,
+ 0x20, 0x1F, 0x00, 0x00, 0x1F, 0x20,
+ 0xFC, 0xF8, 0x00, 0x00, 0xF8, 0x04,
+ 0x3F, 0x1F, 0x00, 0x00, 0x1F, 0x20,
+ 0x04, 0xF8, 0x00, 0x00, 0xF8, 0xFC,
+ 0x20, 0x1F, 0x00, 0x00, 0x1F, 0x3F,
+ 0xFC, 0xF8, 0x00, 0x00, 0xF8, 0xFC,
+ 0x3F, 0x1F, 0x00, 0x00, 0x1F, 0x3F,
+ 0xFE, 0x7E, 0xBE, 0xDE, 0xEE, 0xDE,
+ 0xBE, 0x7E, 0xFE, 0xFC, 0xF8, 0x00,
+ 0x7E, 0x7E, 0x70, 0x77, 0x77, 0x77,
+ 0x70, 0x7E, 0x7E, 0x3F, 0x1F, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x02, 0x02,
+ 0x04, 0x04, 0x08, 0x08, 0x04, 0x04,
+ 0x02, 0x02, 0x01, 0x01, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x02, 0x02,
+ 0x04, 0x04, 0x08, 0x08, 0x04, 0x04,
+ 0x02, 0x02, 0x01, 0x01, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x03, 0x03,
+ 0x07, 0x07, 0x0F, 0x0F, 0x07, 0x07,
+ 0x03, 0x03, 0x01, 0x01, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x03, 0x02,
+ 0x05, 0x06, 0x0D, 0x0A, 0x05, 0x06,
+ 0x03, 0x02, 0x01, 0x01, 0x00, 0x00,
+};
diff --git a/keyboards/keycapsss/kimiko/rev1/keymaps/default/keymap.c b/keyboards/keycapsss/kimiko/keymaps/default/keymap.c
similarity index 100%
rename from keyboards/keycapsss/kimiko/rev1/keymaps/default/keymap.c
rename to keyboards/keycapsss/kimiko/keymaps/default/keymap.c
diff --git a/keyboards/keycapsss/kimiko/rev1/keymaps/default/rules.mk b/keyboards/keycapsss/kimiko/keymaps/default/rules.mk
similarity index 95%
rename from keyboards/keycapsss/kimiko/rev1/keymaps/default/rules.mk
rename to keyboards/keycapsss/kimiko/keymaps/default/rules.mk
index 16cecbdbc6..ef4f0c0b43 100644
--- a/keyboards/keycapsss/kimiko/rev1/keymaps/default/rules.mk
+++ b/keyboards/keycapsss/kimiko/keymaps/default/rules.mk
@@ -1,3 +1,4 @@
+OLED_ENABLE = yes
ENCODER_ENABLE = yes # ENables the use of one or more encoders
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
diff --git a/keyboards/keycapsss/kimiko/kimiko.c b/keyboards/keycapsss/kimiko/kimiko.c
new file mode 100644
index 0000000000..c99a966603
--- /dev/null
+++ b/keyboards/keycapsss/kimiko/kimiko.c
@@ -0,0 +1,83 @@
+/* Copyright 2023 @BenRoe (keycapsss.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+ #include "quantum.h"
+
+#ifdef KEYBOARD_keycapsss_kimiko_rev1
+#ifdef RGB_MATRIX_ENABLE
+
+//Thanks to Ben (keycapsss) for helpipng me to create g_led_config
+
+// Physical LED position
+// X 0 16 32 48 64 80 96 112 128 144 160 176 208 224
+// -----------------------------------------------------------| Y
+// 5 4 3 2 1 0 0 1 2 3 4 5 | 0
+// 6 7 8 9 10 11 11 10 9 8 7 6 | 16
+// 17 16 15 14 13 12 12 13 14 15 16 17 | 32
+// 18 19 20 21 22 23 24 24 23 22 21 20 19 18 | 48
+// 29 28 27 26 25 25 26 27 28 29 | 64
+
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 5, 4, 3, 2, 1, 0 },
+ { 6, 7, 8, 9, 10, 11 },
+ { 17, 16, 15, 14, 13, 12 },
+ { 18, 19, 20, 21, 22, 23 },
+ { 29, 28, 27, 26, 25, 24 },
+ { 35, 34, 33, 32, 31, 30 },
+ { 36, 37, 38, 39, 40, 41 },
+ { 47, 46, 45, 44, 43, 42 },
+ { 48, 49, 50, 51, 52, 53 },
+ { 59, 58, 57, 56, 55, 54 }
+}, {
+ // LED Index to Physical Position
+ // Left half
+ { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 },
+ { 0, 16 }, { 16, 16 }, { 32, 16 }, { 48, 16 }, { 64, 16 }, { 80, 16 },
+ { 80, 32 }, { 64, 32 }, { 48, 32 }, { 32, 32 }, { 16, 32 }, { 0, 32 },
+ { 0, 48 }, { 16, 48 }, { 32, 48 }, { 48, 48 }, { 64, 48 }, { 80, 48 },
+ { 96, 48 }, { 96, 64 }, { 80, 64 }, { 64, 64 }, { 48, 64 }, { 32, 64 },
+ // Right half
+ { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 208, 0 }, { 224, 0 },
+ { 224, 16 }, { 208, 16 }, { 176, 16 }, { 160, 16 }, { 144, 16 }, { 128, 16 },
+ { 128, 32 }, { 144, 32 }, { 160, 32 }, { 176, 32 }, { 208, 32 }, { 224, 32 },
+ { 224, 48 }, { 208, 48 }, { 176, 48 }, { 160, 48 }, { 144, 48 }, { 128, 48 },
+ { 112, 48 }, { 112, 64 }, { 128, 64 }, { 144, 64 }, { 160, 64 }, { 176, 64 }
+
+}, {
+ // LED Index to Flag
+ // 0x01 = 1 = modifier key
+ // 0x02 = 2 = underglow
+ // 0x04 = 4 = key backlight
+ // 0x08 = 8 = keyboard state indication
+ // Left half
+ 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 1,
+ 4, 4, 4, 4, 4, 1,
+ 4, 4, 1, 1, 1, 1,
+ // Right half
+ 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4,
+ 4, 4, 1, 1, 1, 1
+} };
+
+#endif // RGB_MATRIX_ENABLE
+#endif // KEYBOARD_keycapsss_kimiko_rev1
+
+
diff --git a/keyboards/keycapsss/kimiko/rev2/config.h b/keyboards/keycapsss/kimiko/post_config.h
similarity index 87%
rename from keyboards/keycapsss/kimiko/rev2/config.h
rename to keyboards/keycapsss/kimiko/post_config.h
index c728510c30..31be5898cf 100644
--- a/keyboards/keycapsss/kimiko/rev2/config.h
+++ b/keyboards/keycapsss/kimiko/post_config.h
@@ -18,4 +18,8 @@
#pragma once
-#define OLED_FONT_H "keyboards/keycapsss/kimiko/rev2/glcdfont.c"
+// OLED definitions
+#ifndef OLED_FONT_H
+# define OLED_FONT_H "keyboards/keycapsss/kimiko/glcdfont.c"
+#endif
+
diff --git a/keyboards/keycapsss/kimiko/rev1/keyboard.json b/keyboards/keycapsss/kimiko/rev1/keyboard.json
index bf9aa76ed7..ae09eb83c8 100644
--- a/keyboards/keycapsss/kimiko/rev1/keyboard.json
+++ b/keyboards/keycapsss/kimiko/rev1/keyboard.json
@@ -40,71 +40,6 @@
"led_count": 60,
"split_count": [30, 30]
},
- "rgb_matrix": {
- "driver": "ws2812",
- "layout": [
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4},
- {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 80, "y": 48, "flags": 1},
- {"matrix": [4, 5], "x": 96, "y": 48, "flags": 4},
- {"matrix": [4, 4], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 3], "x": 80, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 64, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 48, "y": 64, "flags": 1},
- {"matrix": [4, 0], "x": 32, "y": 64, "flags": 1},
- {"matrix": [5, 5], "x": 128, "y": 0, "flags": 4},
- {"matrix": [5, 4], "x": 144, "y": 0, "flags": 4},
- {"matrix": [5, 3], "x": 160, "y": 0, "flags": 4},
- {"matrix": [5, 2], "x": 176, "y": 0, "flags": 4},
- {"matrix": [5, 1], "x": 208, "y": 0, "flags": 4},
- {"matrix": [5, 0], "x": 224, "y": 0, "flags": 4},
- {"matrix": [6, 0], "x": 224, "y": 16, "flags": 4},
- {"matrix": [6, 1], "x": 208, "y": 16, "flags": 4},
- {"matrix": [6, 2], "x": 176, "y": 16, "flags": 4},
- {"matrix": [6, 3], "x": 160, "y": 16, "flags": 4},
- {"matrix": [6, 4], "x": 144, "y": 16, "flags": 4},
- {"matrix": [6, 5], "x": 128, "y": 16, "flags": 4},
- {"matrix": [7, 5], "x": 128, "y": 32, "flags": 4},
- {"matrix": [7, 4], "x": 144, "y": 32, "flags": 4},
- {"matrix": [7, 3], "x": 160, "y": 32, "flags": 4},
- {"matrix": [7, 2], "x": 176, "y": 32, "flags": 4},
- {"matrix": [7, 1], "x": 208, "y": 32, "flags": 4},
- {"matrix": [7, 0], "x": 224, "y": 32, "flags": 4},
- {"matrix": [8, 0], "x": 224, "y": 48, "flags": 1},
- {"matrix": [8, 1], "x": 208, "y": 48, "flags": 4},
- {"matrix": [8, 2], "x": 176, "y": 48, "flags": 4},
- {"matrix": [8, 3], "x": 160, "y": 48, "flags": 4},
- {"matrix": [8, 4], "x": 144, "y": 48, "flags": 4},
- {"matrix": [8, 5], "x": 128, "y": 48, "flags": 4},
- {"matrix": [9, 5], "x": 112, "y": 48, "flags": 4},
- {"matrix": [9, 4], "x": 112, "y": 64, "flags": 4},
- {"matrix": [9, 3], "x": 128, "y": 64, "flags": 1},
- {"matrix": [9, 2], "x": 144, "y": 64, "flags": 1},
- {"matrix": [9, 1], "x": 160, "y": 64, "flags": 1},
- {"matrix": [9, 0], "x": 176, "y": 64, "flags": 1}
- ]
- },
"ws2812": {
"pin": "D3"
},
diff --git a/keyboards/keycapsss/plaid_pad/rev3/keymaps/oled/config.h b/keyboards/keycapsss/plaid_pad/keymaps/oled/config.h
similarity index 90%
rename from keyboards/keycapsss/plaid_pad/rev3/keymaps/oled/config.h
rename to keyboards/keycapsss/plaid_pad/keymaps/oled/config.h
index 74597b4253..ddb539fb09 100644
--- a/keyboards/keycapsss/plaid_pad/rev3/keymaps/oled/config.h
+++ b/keyboards/keycapsss/plaid_pad/keymaps/oled/config.h
@@ -17,4 +17,4 @@
#pragma once
// place overrides here
-#define OLED_FONT_H "keyboards/keycapsss/plaid_pad/rev3/lib/glcdfont.c"
+#define OLED_FONT_H "keyboards/keycapsss/plaid_pad/keymaps/oled/glcdfont.c"
diff --git a/keyboards/keycapsss/plaid_pad/rev3/lib/glcdfont.c b/keyboards/keycapsss/plaid_pad/keymaps/oled/glcdfont.c
similarity index 100%
rename from keyboards/keycapsss/plaid_pad/rev3/lib/glcdfont.c
rename to keyboards/keycapsss/plaid_pad/keymaps/oled/glcdfont.c
diff --git a/keyboards/keycapsss/plaid_pad/rev3/keymaps/oled/keymap.c b/keyboards/keycapsss/plaid_pad/keymaps/oled/keymap.c
similarity index 100%
rename from keyboards/keycapsss/plaid_pad/rev3/keymaps/oled/keymap.c
rename to keyboards/keycapsss/plaid_pad/keymaps/oled/keymap.c
diff --git a/keyboards/keycapsss/plaid_pad/rev3/keymaps/oled/readme.md b/keyboards/keycapsss/plaid_pad/keymaps/oled/readme.md
similarity index 100%
rename from keyboards/keycapsss/plaid_pad/rev3/keymaps/oled/readme.md
rename to keyboards/keycapsss/plaid_pad/keymaps/oled/readme.md
diff --git a/keyboards/keycapsss/plaid_pad/rev3/keymaps/oled/rules.mk b/keyboards/keycapsss/plaid_pad/keymaps/oled/rules.mk
similarity index 100%
rename from keyboards/keycapsss/plaid_pad/rev3/keymaps/oled/rules.mk
rename to keyboards/keycapsss/plaid_pad/keymaps/oled/rules.mk
diff --git a/keyboards/keychron/q10/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q10/ansi_encoder/ansi_encoder.c
index 5359d2b30b..a4432cd4ce 100644
--- a/keyboards/keychron/q10/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q10/ansi_encoder/ansi_encoder.c
@@ -121,4 +121,37 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB6_CA2, CB4_CA2, CB5_CA2}, // Down
{1, CB6_CA1, CB4_CA1, CB5_CA1}, // Right
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { __, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 },
+ { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46 },
+ { 47, 48, 49, 50, 51, 52, 53, __, 54, 55, 56, 57, 58, 59, 60, 61 },
+ { 62, 63, __, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76 },
+ { 77, 78, 79, 80, 81, __, __, 82, 83, 84, __, __, __, 85, 86, 87 },
+ },
+ {
+ // LED Index to Physical Position
+ {19,0}, {34,0}, {46,0}, {60,1}, {72,3}, {87,6}, {99,8}, {120,8}, {132,6}, {147,3}, {159,1}, {173,0}, {185,0}, {201,1}, {219,1},
+ {5,14}, {24,14}, {36,14}, {48,13}, {62,15}, {74,17}, {86,20}, {98,22}, {115,22}, {127,20}, {139,17}, {151,15}, {165,13}, {177,14}, {195,14}, {220,13},
+ {4,24}, {24,24}, {40,24}, {53,24}, {65,27}, {77,29}, {89,31}, {112,33}, {124,31}, {136,29}, {148,27}, {160,24}, {174,24}, {186,24}, {201,24}, {222,25},
+ {2,34}, {23,34}, {40,34}, {54,35}, {66,37}, {78,39}, {90,42}, {118,43}, {130,40}, {142,38}, {154,36}, {167,35}, {179,35}, {199,35}, {224,36},
+ {0,45}, {24,45}, {44,45}, {57,46}, {69,48}, {81,51}, {93,53}, {111,54}, {123,52}, {135,50}, {147,48}, {159,46}, {173,45}, {190,45}, {210,47},
+ {0,55}, {18,55}, {33,55}, {56,57}, {77,61}, {97,64}, {124,63}, {147,59}, {198,58}, {210,58}, {222,58},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 1, 4, 1, 4, 1, 1, 1, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q10/ansi_encoder/keyboard.json b/keyboards/keychron/q10/ansi_encoder/keyboard.json
index 6cfb637b0d..f47136edf7 100644
--- a/keyboards/keychron/q10/ansi_encoder/keyboard.json
+++ b/keyboards/keychron/q10/ansi_encoder/keyboard.json
@@ -27,98 +27,6 @@
"encoder": true,
"dip_switch": true
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 1], "x": 19, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 34, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 46, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 60, "y": 1, "flags": 1},
- {"matrix": [0, 5], "x": 72, "y": 3, "flags": 1},
- {"matrix": [0, 6], "x": 87, "y": 6, "flags": 1},
- {"matrix": [0, 7], "x": 99, "y": 8, "flags": 1},
- {"matrix": [0, 8], "x": 120, "y": 8, "flags": 1},
- {"matrix": [0, 9], "x": 132, "y": 6, "flags": 1},
- {"matrix": [0, 10], "x": 147, "y": 3, "flags": 1},
- {"matrix": [0, 11], "x": 159, "y": 1, "flags": 1},
- {"matrix": [0, 12], "x": 173, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 185, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 201, "y": 1, "flags": 1},
- {"matrix": [0, 15], "x": 219, "y": 1, "flags": 1},
- {"matrix": [1, 0], "x": 5, "y": 14, "flags": 1},
- {"matrix": [1, 1], "x": 24, "y": 14, "flags": 1},
- {"matrix": [1, 2], "x": 36, "y": 14, "flags": 4},
- {"matrix": [1, 3], "x": 48, "y": 13, "flags": 4},
- {"matrix": [1, 4], "x": 62, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 74, "y": 17, "flags": 4},
- {"matrix": [1, 6], "x": 86, "y": 20, "flags": 4},
- {"matrix": [1, 7], "x": 98, "y": 22, "flags": 4},
- {"matrix": [1, 8], "x": 115, "y": 22, "flags": 4},
- {"matrix": [1, 9], "x": 127, "y": 20, "flags": 4},
- {"matrix": [1, 10], "x": 139, "y": 17, "flags": 4},
- {"matrix": [1, 11], "x": 151, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 165, "y": 13, "flags": 4},
- {"matrix": [1, 13], "x": 177, "y": 14, "flags": 4},
- {"matrix": [1, 14], "x": 195, "y": 14, "flags": 1},
- {"matrix": [1, 15], "x": 220, "y": 13, "flags": 1},
- {"matrix": [2, 0], "x": 4, "y": 24, "flags": 1},
- {"matrix": [2, 1], "x": 24, "y": 24, "flags": 1},
- {"matrix": [2, 2], "x": 40, "y": 24, "flags": 4},
- {"matrix": [2, 3], "x": 53, "y": 24, "flags": 4},
- {"matrix": [2, 4], "x": 65, "y": 27, "flags": 4},
- {"matrix": [2, 5], "x": 77, "y": 29, "flags": 4},
- {"matrix": [2, 6], "x": 89, "y": 31, "flags": 4},
- {"matrix": [2, 7], "x": 112, "y": 33, "flags": 4},
- {"matrix": [2, 8], "x": 124, "y": 31, "flags": 4},
- {"matrix": [2, 9], "x": 136, "y": 29, "flags": 4},
- {"matrix": [2, 10], "x": 148, "y": 27, "flags": 4},
- {"matrix": [2, 11], "x": 160, "y": 24, "flags": 4},
- {"matrix": [2, 12], "x": 174, "y": 24, "flags": 4},
- {"matrix": [2, 13], "x": 186, "y": 24, "flags": 4},
- {"matrix": [2, 14], "x": 201, "y": 24, "flags": 4},
- {"matrix": [2, 15], "x": 222, "y": 25, "flags": 1},
- {"matrix": [3, 0], "x": 2, "y": 34, "flags": 1},
- {"matrix": [3, 1], "x": 23, "y": 34, "flags": 8},
- {"matrix": [3, 2], "x": 40, "y": 34, "flags": 4},
- {"matrix": [3, 3], "x": 54, "y": 35, "flags": 4},
- {"matrix": [3, 4], "x": 66, "y": 37, "flags": 4},
- {"matrix": [3, 5], "x": 78, "y": 39, "flags": 4},
- {"matrix": [3, 6], "x": 90, "y": 42, "flags": 4},
- {"matrix": [3, 8], "x": 118, "y": 43, "flags": 4},
- {"matrix": [3, 9], "x": 130, "y": 40, "flags": 4},
- {"matrix": [3, 10], "x": 142, "y": 38, "flags": 4},
- {"matrix": [3, 11], "x": 154, "y": 36, "flags": 4},
- {"matrix": [3, 12], "x": 167, "y": 35, "flags": 4},
- {"matrix": [3, 13], "x": 179, "y": 35, "flags": 4},
- {"matrix": [3, 14], "x": 199, "y": 35, "flags": 1},
- {"matrix": [3, 15], "x": 224, "y": 36, "flags": 1},
- {"matrix": [4, 0], "x": 0, "y": 45, "flags": 1},
- {"matrix": [4, 1], "x": 24, "y": 45, "flags": 1},
- {"matrix": [4, 3], "x": 44, "y": 45, "flags": 4},
- {"matrix": [4, 4], "x": 57, "y": 46, "flags": 4},
- {"matrix": [4, 5], "x": 69, "y": 48, "flags": 4},
- {"matrix": [4, 6], "x": 81, "y": 51, "flags": 4},
- {"matrix": [4, 7], "x": 93, "y": 53, "flags": 4},
- {"matrix": [4, 8], "x": 111, "y": 54, "flags": 4},
- {"matrix": [4, 9], "x": 123, "y": 52, "flags": 4},
- {"matrix": [4, 10], "x": 135, "y": 50, "flags": 4},
- {"matrix": [4, 11], "x": 147, "y": 48, "flags": 4},
- {"matrix": [4, 12], "x": 159, "y": 46, "flags": 4},
- {"matrix": [4, 13], "x": 173, "y": 45, "flags": 4},
- {"matrix": [4, 14], "x": 190, "y": 45, "flags": 1},
- {"matrix": [4, 15], "x": 210, "y": 47, "flags": 1},
- {"matrix": [5, 0], "x": 0, "y": 55, "flags": 1},
- {"matrix": [5, 1], "x": 18, "y": 55, "flags": 1},
- {"matrix": [5, 2], "x": 33, "y": 55, "flags": 1},
- {"matrix": [5, 3], "x": 56, "y": 57, "flags": 1},
- {"matrix": [5, 4], "x": 77, "y": 61, "flags": 4},
- {"matrix": [5, 7], "x": 97, "y": 64, "flags": 1},
- {"matrix": [5, 8], "x": 124, "y": 63, "flags": 4},
- {"matrix": [5, 9], "x": 147, "y": 59, "flags": 1},
- {"matrix": [5, 13], "x": 198, "y": 58, "flags": 1},
- {"matrix": [5, 14], "x": 210, "y": 58, "flags": 1},
- {"matrix": [5, 15], "x": 222, "y": 58, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_ansi_89": {
"layout": [
diff --git a/keyboards/keychron/q10/iso_encoder/iso_encoder.c b/keyboards/keychron/q10/iso_encoder/iso_encoder.c
index c857c854ac..9ff43263b2 100644
--- a/keyboards/keychron/q10/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/q10/iso_encoder/iso_encoder.c
@@ -122,4 +122,37 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB6_CA2, CB4_CA2, CB5_CA2}, // Down
{1, CB6_CA1, CB4_CA1, CB5_CA1}, // Right
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { __, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 },
+ { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 59, 45 },
+ { 46, 47, 48, 49, 50, 51, 52, __, 53, 54, 55, 56, 57, 58, 60, 61 },
+ { 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77 },
+ { 78, 79, 80, 81, 82, __, __, 83, 84, 85, __, __, __, 86, 87, 88 },
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {19,0}, {34,0}, {60,1}, {72,3}, {87,6}, {99,8}, {120,8}, {132,6}, {147,3}, {159,1}, {173,0}, {185,0}, {201,1}, {219,1},
+ {5,14}, {24,14}, {36,14}, {48,13}, {62,15}, {74,17}, {86,20}, {98,22}, {115,22}, {127,20}, {139,17}, {151,15}, {165,13}, {177,14}, {195,14}, {220,15},
+ {4,24}, {24,24}, {40,24}, {53,24}, {65,27}, {77,29}, {89,31}, {112,33}, {124,31}, {136,29}, {148,27}, {160,24}, {176,24}, {189,24}, {222,25},
+ {2,34}, {23,34}, {40,34}, {54,35}, {66,37}, {78,39}, {90,42}, {118,43}, {130,40}, {142,38}, {154,36}, {167,35}, {179,35}, {192,35}, {208,31}, {224,36},
+ {0,45}, {18,45}, {31,45}, {44,45}, {57,46}, {69,48}, {81,51}, {93,53}, {111,54}, {123,52}, {135,50}, {147,48}, {159,46}, {173,45}, {190,45}, {210,47},
+ {0,55}, {18,55}, {33,55}, {56,57}, {77,61}, {97,64}, {124,63}, {147,59}, {198,58}, {210,58}, {222,58},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 1, 4, 1, 4, 1, 1, 1, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q10/iso_encoder/keyboard.json b/keyboards/keychron/q10/iso_encoder/keyboard.json
index b83015971f..5ec70d1a14 100644
--- a/keyboards/keychron/q10/iso_encoder/keyboard.json
+++ b/keyboards/keychron/q10/iso_encoder/keyboard.json
@@ -27,99 +27,6 @@
"encoder": true,
"dip_switch": true
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 1], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 19, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 34, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 60, "y": 1, "flags": 1},
- {"matrix": [0, 5], "x": 72, "y": 3, "flags": 1},
- {"matrix": [0, 6], "x": 87, "y": 6, "flags": 1},
- {"matrix": [0, 7], "x": 99, "y": 8, "flags": 1},
- {"matrix": [0, 8], "x": 120, "y": 8, "flags": 1},
- {"matrix": [0, 9], "x": 132, "y": 6, "flags": 1},
- {"matrix": [0, 10], "x": 147, "y": 3, "flags": 1},
- {"matrix": [0, 11], "x": 159, "y": 1, "flags": 1},
- {"matrix": [0, 12], "x": 173, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 185, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 201, "y": 1, "flags": 1},
- {"matrix": [0, 15], "x": 219, "y": 1, "flags": 1},
- {"matrix": [1, 0], "x": 5, "y": 14, "flags": 1},
- {"matrix": [1, 1], "x": 24, "y": 14, "flags": 1},
- {"matrix": [1, 2], "x": 36, "y": 14, "flags": 4},
- {"matrix": [1, 3], "x": 48, "y": 13, "flags": 4},
- {"matrix": [1, 4], "x": 62, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 74, "y": 17, "flags": 4},
- {"matrix": [1, 6], "x": 86, "y": 20, "flags": 4},
- {"matrix": [1, 7], "x": 98, "y": 22, "flags": 4},
- {"matrix": [1, 8], "x": 115, "y": 22, "flags": 4},
- {"matrix": [1, 9], "x": 127, "y": 20, "flags": 4},
- {"matrix": [1, 10], "x": 139, "y": 17, "flags": 4},
- {"matrix": [1, 11], "x": 151, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 165, "y": 13, "flags": 4},
- {"matrix": [1, 13], "x": 177, "y": 14, "flags": 4},
- {"matrix": [1, 14], "x": 195, "y": 14, "flags": 1},
- {"matrix": [1, 15], "x": 220, "y": 15, "flags": 1},
- {"matrix": [2, 0], "x": 4, "y": 24, "flags": 1},
- {"matrix": [2, 1], "x": 24, "y": 24, "flags": 1},
- {"matrix": [2, 2], "x": 40, "y": 24, "flags": 4},
- {"matrix": [2, 3], "x": 53, "y": 24, "flags": 4},
- {"matrix": [2, 4], "x": 65, "y": 27, "flags": 4},
- {"matrix": [2, 5], "x": 77, "y": 29, "flags": 4},
- {"matrix": [2, 6], "x": 89, "y": 31, "flags": 4},
- {"matrix": [2, 7], "x": 112, "y": 33, "flags": 4},
- {"matrix": [2, 8], "x": 124, "y": 31, "flags": 4},
- {"matrix": [2, 9], "x": 136, "y": 29, "flags": 4},
- {"matrix": [2, 10], "x": 148, "y": 27, "flags": 4},
- {"matrix": [2, 11], "x": 160, "y": 24, "flags": 4},
- {"matrix": [2, 12], "x": 176, "y": 24, "flags": 4},
- {"matrix": [2, 13], "x": 189, "y": 24, "flags": 4},
- {"matrix": [2, 15], "x": 222, "y": 25, "flags": 1},
- {"matrix": [3, 0], "x": 2, "y": 34, "flags": 1},
- {"matrix": [3, 1], "x": 23, "y": 34, "flags": 8},
- {"matrix": [3, 2], "x": 40, "y": 34, "flags": 4},
- {"matrix": [3, 3], "x": 54, "y": 35, "flags": 4},
- {"matrix": [3, 4], "x": 66, "y": 37, "flags": 4},
- {"matrix": [3, 5], "x": 78, "y": 39, "flags": 4},
- {"matrix": [3, 6], "x": 90, "y": 42, "flags": 4},
- {"matrix": [3, 8], "x": 118, "y": 43, "flags": 4},
- {"matrix": [3, 9], "x": 130, "y": 40, "flags": 4},
- {"matrix": [3, 10], "x": 142, "y": 38, "flags": 4},
- {"matrix": [3, 11], "x": 154, "y": 36, "flags": 4},
- {"matrix": [3, 12], "x": 167, "y": 35, "flags": 4},
- {"matrix": [3, 13], "x": 179, "y": 35, "flags": 4},
- {"matrix": [2, 14], "x": 192, "y": 35, "flags": 4},
- {"matrix": [3, 14], "x": 208, "y": 31, "flags": 1},
- {"matrix": [3, 15], "x": 224, "y": 36, "flags": 1},
- {"matrix": [4, 0], "x": 0, "y": 45, "flags": 1},
- {"matrix": [4, 1], "x": 18, "y": 45, "flags": 1},
- {"matrix": [4, 2], "x": 31, "y": 45, "flags": 4},
- {"matrix": [4, 3], "x": 44, "y": 45, "flags": 4},
- {"matrix": [4, 4], "x": 57, "y": 46, "flags": 4},
- {"matrix": [4, 5], "x": 69, "y": 48, "flags": 4},
- {"matrix": [4, 6], "x": 81, "y": 51, "flags": 4},
- {"matrix": [4, 7], "x": 93, "y": 53, "flags": 4},
- {"matrix": [4, 8], "x": 111, "y": 54, "flags": 4},
- {"matrix": [4, 9], "x": 123, "y": 52, "flags": 4},
- {"matrix": [4, 10], "x": 135, "y": 50, "flags": 4},
- {"matrix": [4, 11], "x": 147, "y": 48, "flags": 4},
- {"matrix": [4, 12], "x": 159, "y": 46, "flags": 4},
- {"matrix": [4, 13], "x": 173, "y": 45, "flags": 4},
- {"matrix": [4, 14], "x": 190, "y": 45, "flags": 1},
- {"matrix": [4, 15], "x": 210, "y": 47, "flags": 1},
- {"matrix": [5, 0], "x": 0, "y": 55, "flags": 1},
- {"matrix": [5, 1], "x": 18, "y": 55, "flags": 1},
- {"matrix": [5, 2], "x": 33, "y": 55, "flags": 1},
- {"matrix": [5, 3], "x": 56, "y": 57, "flags": 1},
- {"matrix": [5, 4], "x": 77, "y": 61, "flags": 4},
- {"matrix": [5, 7], "x": 97, "y": 64, "flags": 1},
- {"matrix": [5, 8], "x": 124, "y": 63, "flags": 4},
- {"matrix": [5, 9], "x": 147, "y": 59, "flags": 1},
- {"matrix": [5, 13], "x": 198, "y": 58, "flags": 1},
- {"matrix": [5, 14], "x": 210, "y": 58, "flags": 1},
- {"matrix": [5, 15], "x": 222, "y": 58, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_iso_90": {
"layout": [
diff --git a/keyboards/keychron/q12/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q12/ansi_encoder/ansi_encoder.c
index 35e8414be6..ba32f58fc6 100644
--- a/keyboards/keychron/q12/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q12/ansi_encoder/ansi_encoder.c
@@ -135,4 +135,36 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB12_CA6, CB10_CA6, CB11_CA6}, // Down
{1, CB12_CA7, CB10_CA7, CB11_CA7}, // Right
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, __, 0, 1 },
+ { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 18, 19, 20 },
+ { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 37, 38, 39 },
+ { 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 76, 71, 72, 56, 57, 58 },
+ { 77, __, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, __, 88, 89, 73, 74, 75 },
+ { 92, 93, 94, __, __, 21, 95, 40, __, 96, 97, 98, 99, 100, 101, 90, 2, 91 },
+ },
+ {
+ // LED Index to Physical Position
+ {11,0}, {23,0}, {34,0}, {49,0}, {63,0}, {75,0}, {86,0}, {98,0}, {112,0}, {123,0}, {135,0}, {146,0}, {161,0}, {172,0}, {184,0}, {195,0}, {209,0}, {224,0},
+ {0,15}, {11,15}, {23,15}, {34,15}, {49,15}, {60,15}, {72,15}, {83,15}, {95,15}, {106,15}, {118,15}, {129,15}, {141,15}, {152,15}, {164,15}, {175,15}, {186,15}, {204,15}, {224,15},
+ {0,26}, {11,26}, {23,26}, {34,32}, {52,26}, {66,26}, {78,26}, {89,26}, {101,26}, {112,26}, {123,26}, {135,26}, {146,26}, {158,26}, {169,26}, {181,26}, {192,26}, {207,26}, {224,26},
+ {0,38}, {11,38}, {23,38}, {53,38}, {69,38}, {81,38}, {92,38}, {103,38}, {115,38}, {126,38}, {138,38}, {149,38}, {161,38}, {172,38}, {184,38}, {202,38}, {224,38},
+ {0,49}, {11,49}, {23,49}, {34,55}, {56,49}, {75,49}, {86,49}, {98,49}, {109,49}, {121,49}, {132,49}, {144,49}, {155,49}, {166,49}, {178,49}, {194,49}, {213,52},
+ {6,61}, {23,61}, {50,61}, {65,61}, {79,61}, {122,61}, {163,61}, {175,61}, {186,61}, {201,64}, {213,64}, {224,64},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 4, 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 4, 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 4, 4, 1, 1, 1, 4, 1, 4, 1, 1, 1, 1,
+ }
+};
#endif
diff --git a/keyboards/keychron/q12/ansi_encoder/keyboard.json b/keyboards/keychron/q12/ansi_encoder/keyboard.json
index faf8b5527e..d2f90cb8ac 100644
--- a/keyboards/keychron/q12/ansi_encoder/keyboard.json
+++ b/keyboards/keychron/q12/ansi_encoder/keyboard.json
@@ -24,112 +24,6 @@
"encoder": true,
"dip_switch": true
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 16], "x": 11, "y": 0, "flags": 1},
- {"matrix": [0, 17], "x": 23, "y": 0, "flags": 1},
- {"matrix": [5, 16], "x": 34, "y": 0, "flags": 1},
- {"matrix": [0, 0], "x": 49, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 63, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 75, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 86, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 98, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 112, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 123, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 135, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 146, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 161, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 172, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 184, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 195, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 209, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 15], "x": 0, "y": 15, "flags": 8},
- {"matrix": [1, 16], "x": 11, "y": 15, "flags": 4},
- {"matrix": [1, 17], "x": 23, "y": 15, "flags": 4},
- {"matrix": [5, 5], "x": 34, "y": 15, "flags": 4},
- {"matrix": [1, 0], "x": 49, "y": 15, "flags": 4},
- {"matrix": [1, 1], "x": 60, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 72, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 83, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 95, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 106, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 118, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 129, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 141, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 152, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 164, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 175, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 186, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 204, "y": 15, "flags": 1},
- {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1},
- {"matrix": [2, 15], "x": 0, "y": 26, "flags": 4},
- {"matrix": [2, 16], "x": 11, "y": 26, "flags": 4},
- {"matrix": [2, 17], "x": 23, "y": 26, "flags": 4},
- {"matrix": [5, 7], "x": 34, "y": 32, "flags": 4},
- {"matrix": [2, 0], "x": 52, "y": 26, "flags": 1},
- {"matrix": [2, 1], "x": 66, "y": 26, "flags": 4},
- {"matrix": [2, 2], "x": 78, "y": 26, "flags": 4},
- {"matrix": [2, 3], "x": 89, "y": 26, "flags": 4},
- {"matrix": [2, 4], "x": 101, "y": 26, "flags": 4},
- {"matrix": [2, 5], "x": 112, "y": 26, "flags": 4},
- {"matrix": [2, 6], "x": 123, "y": 26, "flags": 4},
- {"matrix": [2, 7], "x": 135, "y": 26, "flags": 4},
- {"matrix": [2, 8], "x": 146, "y": 26, "flags": 4},
- {"matrix": [2, 9], "x": 158, "y": 26, "flags": 4},
- {"matrix": [2, 10], "x": 169, "y": 26, "flags": 4},
- {"matrix": [2, 11], "x": 181, "y": 26, "flags": 4},
- {"matrix": [2, 12], "x": 192, "y": 26, "flags": 4},
- {"matrix": [2, 13], "x": 207, "y": 26, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 26, "flags": 1},
- {"matrix": [3, 15], "x": 0, "y": 38, "flags": 4},
- {"matrix": [3, 16], "x": 11, "y": 38, "flags": 4},
- {"matrix": [3, 17], "x": 23, "y": 38, "flags": 4},
- {"matrix": [3, 0], "x": 53, "y": 38, "flags": 8},
- {"matrix": [3, 1], "x": 69, "y": 38, "flags": 4},
- {"matrix": [3, 2], "x": 81, "y": 38, "flags": 4},
- {"matrix": [3, 3], "x": 92, "y": 38, "flags": 4},
- {"matrix": [3, 4], "x": 103, "y": 38, "flags": 4},
- {"matrix": [3, 5], "x": 115, "y": 38, "flags": 4},
- {"matrix": [3, 6], "x": 126, "y": 38, "flags": 4},
- {"matrix": [3, 7], "x": 138, "y": 38, "flags": 4},
- {"matrix": [3, 8], "x": 149, "y": 38, "flags": 4},
- {"matrix": [3, 9], "x": 161, "y": 38, "flags": 4},
- {"matrix": [3, 10], "x": 172, "y": 38, "flags": 4},
- {"matrix": [3, 11], "x": 184, "y": 38, "flags": 4},
- {"matrix": [3, 13], "x": 202, "y": 38, "flags": 1},
- {"matrix": [3, 14], "x": 224, "y": 38, "flags": 1},
- {"matrix": [4, 15], "x": 0, "y": 49, "flags": 4},
- {"matrix": [4, 16], "x": 11, "y": 49, "flags": 4},
- {"matrix": [4, 17], "x": 23, "y": 49, "flags": 4},
- {"matrix": [3, 12], "x": 34, "y": 55, "flags": 4},
- {"matrix": [4, 0], "x": 56, "y": 49, "flags": 1},
- {"matrix": [4, 2], "x": 75, "y": 49, "flags": 4},
- {"matrix": [4, 3], "x": 86, "y": 49, "flags": 4},
- {"matrix": [4, 4], "x": 98, "y": 49, "flags": 4},
- {"matrix": [4, 5], "x": 109, "y": 49, "flags": 4},
- {"matrix": [4, 6], "x": 121, "y": 49, "flags": 4},
- {"matrix": [4, 7], "x": 132, "y": 49, "flags": 4},
- {"matrix": [4, 8], "x": 144, "y": 49, "flags": 4},
- {"matrix": [4, 9], "x": 155, "y": 49, "flags": 4},
- {"matrix": [4, 10], "x": 166, "y": 49, "flags": 4},
- {"matrix": [4, 11], "x": 178, "y": 49, "flags": 4},
- {"matrix": [4, 13], "x": 194, "y": 49, "flags": 1},
- {"matrix": [4, 14], "x": 213, "y": 52, "flags": 1},
- {"matrix": [5, 15], "x": 6, "y": 61, "flags": 4},
- {"matrix": [5, 17], "x": 23, "y": 61, "flags": 4},
- {"matrix": [5, 0], "x": 50, "y": 61, "flags": 1},
- {"matrix": [5, 1], "x": 65, "y": 61, "flags": 1},
- {"matrix": [5, 2], "x": 79, "y": 61, "flags": 1},
- {"matrix": [5, 6], "x": 122, "y": 61, "flags": 4},
- {"matrix": [5, 9], "x": 163, "y": 61, "flags": 1},
- {"matrix": [5, 10], "x": 175, "y": 61, "flags": 4},
- {"matrix": [5, 11], "x": 186, "y": 61, "flags": 1},
- {"matrix": [5, 12], "x": 201, "y": 64, "flags": 1},
- {"matrix": [5, 13], "x": 213, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 224, "y": 64, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_ansi_103": {
"layout": [
diff --git a/keyboards/keychron/q12/iso_encoder/iso_encoder.c b/keyboards/keychron/q12/iso_encoder/iso_encoder.c
index 058a5d2ff4..f9513e7f41 100644
--- a/keyboards/keychron/q12/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/q12/iso_encoder/iso_encoder.c
@@ -138,4 +138,36 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB12_CA6, CB10_CA6, CB11_CA6}, // Down
{1, CB12_CA7, CB10_CA7, CB11_CA7}, // Right
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, __, 0, 1 },
+ { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 18, 19, 20 },
+ { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 71, 54, 37, 38, 39 },
+ { 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 76, 70, 72, 55, 56, 57 },
+ { 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, __, 89, 90, 73, 74, 75 },
+ { 93, 94, 95, __, __, 21, 96, 40, __, 97, 98, 99, 100, 101, 102, 91, 2, 92 },
+ },
+ {
+ // LED Index to Physical Position
+ {11,0}, {23,0}, {34,0}, {49,0}, {63,0}, {75,0}, {86,0}, {98,0}, {112,0}, {123,0}, {135,0}, {146,0}, {160,0}, {172,0}, {183,0}, {194,0}, {209,0}, {224,0},
+ {0,15}, {11,15}, {23,15}, {34,15}, {49,15}, {60,15}, {72,15}, {83,15}, {95,15}, {106,15}, {117,15}, {129,15}, {140,15}, {152,15}, {163,15}, {175,15}, {186,15}, {204,15}, {224,15},
+ {0,26}, {11,26}, {23,26}, {34,32}, {52,26}, {66,26}, {77,26}, {89,26}, {100,26}, {112,26}, {123,26}, {135,26}, {146,26}, {158,26}, {169,26}, {180,26}, {192,26}, {224,26},
+ {0,38}, {11,38}, {23,38}, {53,38}, {69,38}, {80,38}, {92,38}, {103,38}, {115,38}, {126,38}, {137,38}, {149,38}, {160,38}, {172,38}, {183,38}, {195,38}, {210,34}, {224,38},
+ {0,49}, {11,49}, {23,49}, {34,55}, {50,49}, {63,49}, {75,49}, {86,49}, {97,49}, {109,49}, {120,49}, {132,49}, {143,49}, {155,49}, {166,49}, {177,49}, {193,49}, {212,52},
+ {6,61}, {23,61}, {50,61}, {65,61}, {79,61}, {122,61}, {163,61}, {174,61}, {186,61}, {201,64}, {212,64}, {223,64},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 4, 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 4, 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 4, 4, 1, 1, 1, 4, 1, 4, 1, 1, 1, 1,
+ }
+};
#endif
diff --git a/keyboards/keychron/q12/iso_encoder/keyboard.json b/keyboards/keychron/q12/iso_encoder/keyboard.json
index d5105ac2b3..29e24a1491 100644
--- a/keyboards/keychron/q12/iso_encoder/keyboard.json
+++ b/keyboards/keychron/q12/iso_encoder/keyboard.json
@@ -24,113 +24,6 @@
"encoder": true,
"dip_switch": true
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 16], "x": 11, "y": 0, "flags": 1},
- {"matrix": [0, 17], "x": 23, "y": 0, "flags": 1},
- {"matrix": [5, 16], "x": 34, "y": 0, "flags": 1},
- {"matrix": [0, 0], "x": 49, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 63, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 75, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 86, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 98, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 112, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 123, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 135, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 146, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 160, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 172, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 183, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 194, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 209, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 15], "x": 0, "y": 15, "flags": 8},
- {"matrix": [1, 16], "x": 11, "y": 15, "flags": 4},
- {"matrix": [1, 17], "x": 23, "y": 15, "flags": 4},
- {"matrix": [5, 5], "x": 34, "y": 15, "flags": 4},
- {"matrix": [1, 0], "x": 49, "y": 15, "flags": 4},
- {"matrix": [1, 1], "x": 60, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 72, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 83, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 95, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 106, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 117, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 129, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 140, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 152, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 163, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 175, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 186, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 204, "y": 15, "flags": 1},
- {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1},
- {"matrix": [2, 15], "x": 0, "y": 26, "flags": 4},
- {"matrix": [2, 16], "x": 11, "y": 26, "flags": 4},
- {"matrix": [2, 17], "x": 23, "y": 26, "flags": 4},
- {"matrix": [5, 7], "x": 34, "y": 32, "flags": 4},
- {"matrix": [2, 0], "x": 52, "y": 26, "flags": 1},
- {"matrix": [2, 1], "x": 66, "y": 26, "flags": 4},
- {"matrix": [2, 2], "x": 77, "y": 26, "flags": 4},
- {"matrix": [2, 3], "x": 89, "y": 26, "flags": 4},
- {"matrix": [2, 4], "x": 100, "y": 26, "flags": 4},
- {"matrix": [2, 5], "x": 112, "y": 26, "flags": 4},
- {"matrix": [2, 6], "x": 123, "y": 26, "flags": 4},
- {"matrix": [2, 7], "x": 135, "y": 26, "flags": 4},
- {"matrix": [2, 8], "x": 146, "y": 26, "flags": 4},
- {"matrix": [2, 9], "x": 158, "y": 26, "flags": 4},
- {"matrix": [2, 10], "x": 169, "y": 26, "flags": 4},
- {"matrix": [2, 11], "x": 180, "y": 26, "flags": 4},
- {"matrix": [2, 12], "x": 192, "y": 26, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 26, "flags": 1},
- {"matrix": [3, 15], "x": 0, "y": 38, "flags": 4},
- {"matrix": [3, 16], "x": 11, "y": 38, "flags": 4},
- {"matrix": [3, 17], "x": 23, "y": 38, "flags": 4},
- {"matrix": [3, 0], "x": 53, "y": 38, "flags": 8},
- {"matrix": [3, 1], "x": 69, "y": 38, "flags": 4},
- {"matrix": [3, 2], "x": 80, "y": 38, "flags": 4},
- {"matrix": [3, 3], "x": 92, "y": 38, "flags": 4},
- {"matrix": [3, 4], "x": 103, "y": 38, "flags": 4},
- {"matrix": [3, 5], "x": 115, "y": 38, "flags": 4},
- {"matrix": [3, 6], "x": 126, "y": 38, "flags": 4},
- {"matrix": [3, 7], "x": 137, "y": 38, "flags": 4},
- {"matrix": [3, 8], "x": 149, "y": 38, "flags": 4},
- {"matrix": [3, 9], "x": 160, "y": 38, "flags": 4},
- {"matrix": [3, 10], "x": 172, "y": 38, "flags": 4},
- {"matrix": [3, 11], "x": 183, "y": 38, "flags": 4},
- {"matrix": [3, 13], "x": 195, "y": 38, "flags": 4},
- {"matrix": [2, 13], "x": 210, "y": 34, "flags": 1},
- {"matrix": [3, 14], "x": 224, "y": 38, "flags": 1},
- {"matrix": [4, 15], "x": 0, "y": 49, "flags": 4},
- {"matrix": [4, 16], "x": 11, "y": 49, "flags": 4},
- {"matrix": [4, 17], "x": 23, "y": 49, "flags": 4},
- {"matrix": [3, 12], "x": 34, "y": 55, "flags": 4},
- {"matrix": [4, 0], "x": 50, "y": 49, "flags": 1},
- {"matrix": [4, 1], "x": 63, "y": 49, "flags": 4},
- {"matrix": [4, 2], "x": 75, "y": 49, "flags": 4},
- {"matrix": [4, 3], "x": 86, "y": 49, "flags": 4},
- {"matrix": [4, 4], "x": 97, "y": 49, "flags": 4},
- {"matrix": [4, 5], "x": 109, "y": 49, "flags": 4},
- {"matrix": [4, 6], "x": 120, "y": 49, "flags": 4},
- {"matrix": [4, 7], "x": 132, "y": 49, "flags": 4},
- {"matrix": [4, 8], "x": 143, "y": 49, "flags": 4},
- {"matrix": [4, 9], "x": 155, "y": 49, "flags": 4},
- {"matrix": [4, 10], "x": 166, "y": 49, "flags": 4},
- {"matrix": [4, 11], "x": 177, "y": 49, "flags": 4},
- {"matrix": [4, 13], "x": 193, "y": 49, "flags": 4},
- {"matrix": [4, 14], "x": 212, "y": 52, "flags": 1},
- {"matrix": [5, 15], "x": 6, "y": 61, "flags": 4},
- {"matrix": [5, 17], "x": 23, "y": 61, "flags": 4},
- {"matrix": [5, 0], "x": 50, "y": 61, "flags": 1},
- {"matrix": [5, 1], "x": 65, "y": 61, "flags": 1},
- {"matrix": [5, 2], "x": 79, "y": 61, "flags": 1},
- {"matrix": [5, 6], "x": 122, "y": 61, "flags": 4},
- {"matrix": [5, 9], "x": 163, "y": 61, "flags": 1},
- {"matrix": [5, 10], "x": 174, "y": 61, "flags": 4},
- {"matrix": [5, 11], "x": 186, "y": 61, "flags": 1},
- {"matrix": [5, 12], "x": 201, "y": 64, "flags": 1},
- {"matrix": [5, 13], "x": 212, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 223, "y": 64, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_iso_104": {
"layout": [
diff --git a/keyboards/keychron/q1v1/iso/iso.c b/keyboards/keychron/q1v1/iso/iso.c
index 108ce01542..ef4f3425af 100644
--- a/keyboards/keychron/q1v1/iso/iso.c
+++ b/keyboards/keychron/q1v1/iso/iso.c
@@ -113,4 +113,37 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
{1, SW6_CS15, SW4_CS15, SW5_CS15},
{1, SW6_CS16, SW4_CS16, SW5_CS16}
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, __, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 57, 43 },
+ { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 72, 56, 58 },
+ { 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 81, 71, 13 },
+ { 73, 74, 75, __, __, __, 76, __, __, __, 77, 78, 79, 80, 82 }
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {18,0}, {33,0}, {48,0}, {62,0}, {81,0}, {95,0}, {110,0}, {125,0}, {143,0}, {158,0}, {173,0}, {187,0}, {206,0}, {224,0},
+ {0,15}, {15,15}, {29,15}, {44,15}, {59,15}, {73,15}, {88,15}, {103,15}, {118,15}, {132,15}, {147,15}, {162,15}, {176,15}, {198,15}, {224,15},
+ {4,26}, {22,26}, {37,26}, {51,26}, {66,26}, {81,26}, {95,26}, {110,26}, {125,26}, {140,26}, {154,26}, {169,26}, {184,26}, {224,26},
+ {6,38}, {26,38}, {40,38}, {55,38}, {70,38}, {84,38}, {99,38}, {114,38}, {129,38}, {143,38}, {158,38}, {173,38}, {187,38}, {203,32}, {224,38},
+ {2,49}, {18,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {151,49}, {165,49}, {185,49}, {209,52},
+ {2,61}, {20,61}, {39,61}, {94,61}, {147,61}, {162,61}, {176,61}, {195,64}, {209,64}, {224,64}
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q6/ansi/ansi.c b/keyboards/keychron/q6/ansi/ansi.c
index bbc467bb49..62a22971e1 100644
--- a/keyboards/keychron/q6/ansi/ansi.c
+++ b/keyboards/keychron/q6/ansi/ansi.c
@@ -141,4 +141,37 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB12_CA12, CB10_CA12, CB11_CA12},
{1, CB12_CA9, CB10_CA9, CB11_CA9},
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14, 15, 39, 40, 16 },
+ { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 17 },
+ { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 18 },
+ { 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, __, 73, 60, 77, 76, 74, 75, 19 },
+ { 78, __, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, __, 89, 93, 90, 107, 91, 92, __ },
+ { 94, 95, 96, __, __, __, 97, __, __, __, 98, 99, 100, 101, 102, 103, 104, 105, 106, __ },
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {21,0}, {31,0}, {42,0}, {52,0}, {68,0}, {78,0}, {89,0}, {99,0}, {115,0}, {125,0}, {136,0}, {146,0}, {159,0}, {169,0}, {180,0}, {193,0}, {203,0}, {214,0}, {224,0},
+ {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15},
+ {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {143,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27},
+ {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {139,40}, {193,40}, {203,40}, {214,40}, {224,34},
+ {7,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52},
+ {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, {224,58},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q6/ansi/keyboard.json b/keyboards/keychron/q6/ansi/keyboard.json
index 10cb586908..664fe87008 100644
--- a/keyboards/keychron/q6/ansi/keyboard.json
+++ b/keyboards/keychron/q6/ansi/keyboard.json
@@ -21,118 +21,6 @@
"build": {
"lto": true
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 21, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 31, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 52, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 68, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 78, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 89, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 99, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 115, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 125, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 136, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 146, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1},
- {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1},
- {"matrix": [0, 19], "x": 193, "y": 0, "flags": 1},
- {"matrix": [1, 19], "x": 203, "y": 0, "flags": 1},
- {"matrix": [2, 19], "x": 214, "y": 0, "flags": 1},
- {"matrix": [3, 19], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1},
- {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1},
- {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1},
- {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1},
- {"matrix": [1, 17], "x": 193, "y": 15, "flags": 8},
- {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4},
- {"matrix": [0, 17], "x": 214, "y": 15, "flags": 4},
- {"matrix": [0, 18], "x": 224, "y": 15, "flags": 4},
- {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1},
- {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4},
- {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4},
- {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4},
- {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4},
- {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4},
- {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4},
- {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4},
- {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4},
- {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4},
- {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4},
- {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4},
- {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4},
- {"matrix": [2, 13], "x": 143, "y": 27, "flags": 4},
- {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1},
- {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1},
- {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1},
- {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4},
- {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4},
- {"matrix": [3, 14], "x": 214, "y": 27, "flags": 4},
- {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8},
- {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4},
- {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4},
- {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4},
- {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4},
- {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4},
- {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4},
- {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4},
- {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4},
- {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4},
- {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4},
- {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4},
- {"matrix": [3, 13], "x": 139, "y": 40, "flags": 1},
- {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4},
- {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4},
- {"matrix": [3, 16], "x": 214, "y": 40, "flags": 4},
- {"matrix": [3, 15], "x": 224, "y": 34, "flags": 4},
- {"matrix": [4, 0], "x": 7, "y": 52, "flags": 1},
- {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4},
- {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4},
- {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4},
- {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4},
- {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4},
- {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4},
- {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4},
- {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4},
- {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4},
- {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4},
- {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1},
- {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1},
- {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4},
- {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4},
- {"matrix": [4, 14], "x": 214, "y": 52, "flags": 4},
- {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1},
- {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1},
- {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4},
- {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1},
- {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1},
- {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1},
- {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1},
- {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1},
- {"matrix": [5, 17], "x": 198, "y": 64, "flags": 1},
- {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4},
- {"matrix": [4, 16], "x": 224, "y": 58, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_ansi_108": {
"layout": [
diff --git a/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c
index 5897e1be72..b3d8a6bd4c 100644
--- a/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c
@@ -142,4 +142,36 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB12_CA9, CB10_CA9, CB11_CA9},
};
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14, 15, 39, 40, 16 },
+ { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 17 },
+ { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 18 },
+ { 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, __, 73, 60, 77, 76, 74, 75, 19 },
+ { 78, __, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, __, 89, 93, 90, 107, 91, 92, __ },
+ { 94, 95, 96, __, __, __, 97, __, __, __, 98, 99, 100, 101, 102, 103, 104, 105, 106, __ },
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {13,0}, {24,0}, {34,0}, {45,0}, {57,0}, {68,0}, {78,0}, {89,0}, {102,0}, {112,0}, {123,0}, {133,0}, {159,0}, {169,0}, {180,0}, {193,0}, {203,0}, {214,0}, {224,0},
+ {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15},
+ {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {143,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27},
+ {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {139,40}, {193,40}, {203,40}, {214,40}, {224,34},
+ {7,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52},
+ {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, {224,58},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q6/ansi_encoder/keyboard.json b/keyboards/keychron/q6/ansi_encoder/keyboard.json
index 8b3ad779c9..a37b68f553 100644
--- a/keyboards/keychron/q6/ansi_encoder/keyboard.json
+++ b/keyboards/keychron/q6/ansi_encoder/keyboard.json
@@ -27,118 +27,6 @@
"build": {
"lto": true
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 13, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 34, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 45, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 57, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 68, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 78, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 89, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 102, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 112, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 123, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 133, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1},
- {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1},
- {"matrix": [0, 19], "x": 193, "y": 0, "flags": 1},
- {"matrix": [1, 19], "x": 203, "y": 0, "flags": 1},
- {"matrix": [2, 19], "x": 214, "y": 0, "flags": 1},
- {"matrix": [3, 19], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1},
- {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1},
- {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1},
- {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1},
- {"matrix": [1, 17], "x": 193, "y": 15, "flags": 8},
- {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4},
- {"matrix": [0, 17], "x": 214, "y": 15, "flags": 4},
- {"matrix": [0, 18], "x": 224, "y": 15, "flags": 4},
- {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1},
- {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4},
- {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4},
- {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4},
- {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4},
- {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4},
- {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4},
- {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4},
- {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4},
- {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4},
- {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4},
- {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4},
- {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4},
- {"matrix": [2, 13], "x": 143, "y": 27, "flags": 4},
- {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1},
- {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1},
- {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1},
- {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4},
- {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4},
- {"matrix": [3, 14], "x": 214, "y": 27, "flags": 4},
- {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8},
- {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4},
- {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4},
- {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4},
- {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4},
- {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4},
- {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4},
- {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4},
- {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4},
- {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4},
- {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4},
- {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4},
- {"matrix": [3, 13], "x": 139, "y": 40, "flags": 1},
- {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4},
- {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4},
- {"matrix": [3, 16], "x": 214, "y": 40, "flags": 4},
- {"matrix": [3, 15], "x": 224, "y": 34, "flags": 4},
- {"matrix": [4, 0], "x": 7, "y": 52, "flags": 1},
- {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4},
- {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4},
- {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4},
- {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4},
- {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4},
- {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4},
- {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4},
- {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4},
- {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4},
- {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4},
- {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1},
- {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1},
- {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4},
- {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4},
- {"matrix": [4, 14], "x": 214, "y": 52, "flags": 4},
- {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1},
- {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1},
- {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4},
- {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1},
- {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1},
- {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1},
- {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1},
- {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1},
- {"matrix": [5, 17], "x": 198, "y": 64, "flags": 1},
- {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4},
- {"matrix": [4, 16], "x": 224, "y": 58, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_ansi_109": {
"layout": [
diff --git a/keyboards/keychron/q6/iso/iso.c b/keyboards/keychron/q6/iso/iso.c
index 5316273776..eb6cab855a 100644
--- a/keyboards/keychron/q6/iso/iso.c
+++ b/keyboards/keychron/q6/iso/iso.c
@@ -142,4 +142,37 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB12_CA12, CB10_CA12, CB11_CA12},
{1, CB12_CA9, CB10_CA9, CB11_CA9},
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14, 15, 39, 40, 16 },
+ { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 17 },
+ { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 73, 54, 55, 56, 57, 58, 18 },
+ { 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, __, 72, 59, 77, 76, 74, 75, 19 },
+ { 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, __, 90, 94, 91, 108, 92, 93, __ },
+ { 95, 96, 97, __, __, __, 98, __, __, __, 99, 100, 101, 102, 103, 104, 105, 106, 107, __ },
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {21,0}, {31,0}, {42,0}, {52,0}, {68,0}, {78,0}, {89,0}, {99,0}, {115,0}, {125,0}, {136,0}, {146,0}, {159,0}, {169,0}, {180,0}, {193,0}, {203,0}, {214,0}, {224,0},
+ {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15},
+ {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27},
+ {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {133,40}, {147,36}, {193,40}, {203,40}, {214,40}, {224,34},
+ {1,52}, {13,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52},
+ {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, {224,58},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q6/iso/keyboard.json b/keyboards/keychron/q6/iso/keyboard.json
index fae62800a3..28730b2d74 100644
--- a/keyboards/keychron/q6/iso/keyboard.json
+++ b/keyboards/keychron/q6/iso/keyboard.json
@@ -21,119 +21,6 @@
"build": {
"lto": true
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 21, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 31, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 52, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 68, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 78, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 89, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 99, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 115, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 125, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 136, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 146, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1},
- {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1},
- {"matrix": [0, 19], "x": 193, "y": 0, "flags": 1},
- {"matrix": [1, 19], "x": 203, "y": 0, "flags": 1},
- {"matrix": [2, 19], "x": 214, "y": 0, "flags": 1},
- {"matrix": [3, 19], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1},
- {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1},
- {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1},
- {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1},
- {"matrix": [1, 17], "x": 193, "y": 15, "flags": 8},
- {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4},
- {"matrix": [0, 17], "x": 214, "y": 15, "flags": 4},
- {"matrix": [0, 18], "x": 224, "y": 15, "flags": 4},
- {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1},
- {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4},
- {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4},
- {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4},
- {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4},
- {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4},
- {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4},
- {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4},
- {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4},
- {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4},
- {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4},
- {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4},
- {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4},
- {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1},
- {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1},
- {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1},
- {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4},
- {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4},
- {"matrix": [3, 14], "x": 214, "y": 27, "flags": 4},
- {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8},
- {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4},
- {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4},
- {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4},
- {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4},
- {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4},
- {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4},
- {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4},
- {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4},
- {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4},
- {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4},
- {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4},
- {"matrix": [3, 13], "x": 133, "y": 40, "flags": 4},
- {"matrix": [2, 13], "x": 147, "y": 36, "flags": 1},
- {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4},
- {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4},
- {"matrix": [3, 16], "x": 214, "y": 40, "flags": 4},
- {"matrix": [3, 15], "x": 224, "y": 34, "flags": 4},
- {"matrix": [4, 0], "x": 1, "y": 52, "flags": 1},
- {"matrix": [4, 1], "x": 13, "y": 52, "flags": 4},
- {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4},
- {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4},
- {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4},
- {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4},
- {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4},
- {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4},
- {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4},
- {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4},
- {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4},
- {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4},
- {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1},
- {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1},
- {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4},
- {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4},
- {"matrix": [4, 14], "x": 214, "y": 52, "flags": 4},
- {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1},
- {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1},
- {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4},
- {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1},
- {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1},
- {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1},
- {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1},
- {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1},
- {"matrix": [5, 17], "x": 198, "y": 64, "flags": 1},
- {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4},
- {"matrix": [4, 16], "x": 224, "y": 58, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_iso_109": {
"layout": [
diff --git a/keyboards/keychron/q6/iso_encoder/iso_encoder.c b/keyboards/keychron/q6/iso_encoder/iso_encoder.c
index 5316273776..439e1cee50 100644
--- a/keyboards/keychron/q6/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/q6/iso_encoder/iso_encoder.c
@@ -142,4 +142,37 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB12_CA12, CB10_CA12, CB11_CA12},
{1, CB12_CA9, CB10_CA9, CB11_CA9},
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14, 15, 39, 40, 16 },
+ { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 17 },
+ { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 73, 54, 55, 56, 57, 58, 18 },
+ { 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, __, 72, 59, 77, 76, 74, 75, 19 },
+ { 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, __, 90, 94, 91, 108, 92, 93, __ },
+ { 95, 96, 97, __, __, __, 98, __, __, __, 99, 100, 101, 102, 103, 104, 105, 106, 107, __ },
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {13,0}, {24,0}, {34,0}, {45,0}, {57,0}, {68,0}, {78,0}, {89,0}, {102,0}, {112,0}, {123,0}, {133,0}, {159,0}, {169,0}, {180,0}, {193,0}, {203,0}, {214,0}, {224,0},
+ {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15},
+ {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27},
+ {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {133,40}, {147,36}, {193,40}, {203,40}, {214,40}, {224,34},
+ {1,52}, {13,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52},
+ {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, {224,58},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q6/iso_encoder/keyboard.json b/keyboards/keychron/q6/iso_encoder/keyboard.json
index b404e9f50d..3fc4ee8f1c 100644
--- a/keyboards/keychron/q6/iso_encoder/keyboard.json
+++ b/keyboards/keychron/q6/iso_encoder/keyboard.json
@@ -27,119 +27,6 @@
"build": {
"lto": true
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 13, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 34, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 45, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 57, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 68, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 78, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 89, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 102, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 112, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 123, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 133, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1},
- {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1},
- {"matrix": [0, 19], "x": 193, "y": 0, "flags": 1},
- {"matrix": [1, 19], "x": 203, "y": 0, "flags": 1},
- {"matrix": [2, 19], "x": 214, "y": 0, "flags": 1},
- {"matrix": [3, 19], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1},
- {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1},
- {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1},
- {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1},
- {"matrix": [1, 17], "x": 193, "y": 15, "flags": 8},
- {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4},
- {"matrix": [0, 17], "x": 214, "y": 15, "flags": 4},
- {"matrix": [0, 18], "x": 224, "y": 15, "flags": 4},
- {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1},
- {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4},
- {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4},
- {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4},
- {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4},
- {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4},
- {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4},
- {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4},
- {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4},
- {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4},
- {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4},
- {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4},
- {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4},
- {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1},
- {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1},
- {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1},
- {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4},
- {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4},
- {"matrix": [3, 14], "x": 214, "y": 27, "flags": 4},
- {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8},
- {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4},
- {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4},
- {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4},
- {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4},
- {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4},
- {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4},
- {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4},
- {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4},
- {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4},
- {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4},
- {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4},
- {"matrix": [3, 13], "x": 133, "y": 40, "flags": 4},
- {"matrix": [2, 13], "x": 147, "y": 36, "flags": 1},
- {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4},
- {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4},
- {"matrix": [3, 16], "x": 214, "y": 40, "flags": 4},
- {"matrix": [3, 15], "x": 224, "y": 34, "flags": 4},
- {"matrix": [4, 0], "x": 1, "y": 52, "flags": 1},
- {"matrix": [4, 1], "x": 13, "y": 52, "flags": 4},
- {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4},
- {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4},
- {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4},
- {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4},
- {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4},
- {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4},
- {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4},
- {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4},
- {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4},
- {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4},
- {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1},
- {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1},
- {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4},
- {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4},
- {"matrix": [4, 14], "x": 214, "y": 52, "flags": 4},
- {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1},
- {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1},
- {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4},
- {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1},
- {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1},
- {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1},
- {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1},
- {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1},
- {"matrix": [5, 17], "x": 198, "y": 64, "flags": 1},
- {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4},
- {"matrix": [4, 16], "x": 224, "y": 58, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_iso_110": {
"layout": [
diff --git a/keyboards/keychron/q60/ansi/ansi.c b/keyboards/keychron/q60/ansi/ansi.c
index b69b303d36..8b702eb5a6 100644
--- a/keyboards/keychron/q60/ansi/ansi.c
+++ b/keyboards/keychron/q60/ansi/ansi.c
@@ -92,4 +92,34 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{0, CB9_CA15, CB7_CA15, CB8_CA15},
{0, CB9_CA16, CB7_CA16, CB8_CA16},
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28 },
+ { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, __, 41 },
+ { 42, __, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54 },
+ { 55, 56, __, __, __, __, 57, __, __, __, 58, 59, 14, __ },
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {16,0}, {32,0}, {48,0}, {64,0}, {80,0}, {96,0}, {112,0}, {128,0}, {144,0}, {160,0}, {176,0}, {192,0}, {208,0}, {224,0},
+ {4,16}, {24,16}, {40,16}, {56,16}, {72,16}, {88,16}, {104,16}, {120,16}, {136,16}, {152,16}, {168,16}, {184,16}, {200,16}, {220,16},
+ {6,32}, {28,32}, {44,32}, {60,32}, {76,32}, {92,32}, {108,32}, {124,32}, {140,32}, {156,32}, {172,32}, {188,32}, {214,32},
+ {10,48}, {36,48}, {52,48}, {68,48}, {84,48}, {100,48}, {116,48}, {132,48}, {148,48}, {164,48}, {180,48}, {202,48}, {224,48},
+ {24,64}, {44,64}, {112,64}, {180,64}, {200,64},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 4, 1, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q60/ansi/keyboard.json b/keyboards/keychron/q60/ansi/keyboard.json
index 762ef21161..83ee57d011 100644
--- a/keyboards/keychron/q60/ansi/keyboard.json
+++ b/keyboards/keychron/q60/ansi/keyboard.json
@@ -23,70 +23,6 @@
"diode_direction": "ROW2COL",
"processor": "STM32L432",
"bootloader": "stm32-dfu",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 208, "y": 0, "flags": 1},
- {"matrix": [4, 12], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 220, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 8},
- {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 214, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1},
- {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 68, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 84, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 100, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 116, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 132, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 148, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 164, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 180, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 202, "y": 48, "flags": 1},
- {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 24, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 44, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 112, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 180, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 200, "y": 64, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_ansi_60": {
"layout": [
diff --git a/keyboards/keychron/q65/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q65/ansi_encoder/ansi_encoder.c
index f16cc60424..6c4c2abe21 100644
--- a/keyboards/keychron/q65/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q65/ansi_encoder/ansi_encoder.c
@@ -102,4 +102,34 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB6_CA2, CB4_CA2, CB5_CA2}, // Down
{1, CB6_CA1, CB4_CA1, CB5_CA1}, // Right
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { __, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 },
+ { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, __, 44, 45 },
+ { 46, 47, __, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60 },
+ { 61, 62, 63, 64, __, __, __, 65, __, __, 66, 67, 68, 69, 70, 71 },
+ },
+ {
+ // LED Index to Physical Position
+ {20,0}, {33,0}, {47,0}, {60,0}, {73,0}, {86,0}, {99,0}, {112,0}, {125,0}, {138,0}, {151,0}, {164,0}, {177,0}, {197,0}, {224,0},
+ {0,15}, {24,15}, {40,15}, {53,15}, {66,15}, {79,15}, {92,15}, {105,15}, {119,15}, {132,15}, {145,15}, {158,15}, {171,15}, {184,15}, {200,15}, {224,15},
+ {0,30}, {25,30}, {43,30}, {56,30}, {69,30}, {83,30}, {96,30}, {109,30}, {122,30}, {135,30}, {148,30}, {161,30}, {174,30}, {195,30}, {224,30},
+ {0,45}, {29,45}, {50,45}, {63,45}, {76,45}, {89,45}, {102,45}, {115,45}, {128,45}, {141,45}, {155,45}, {168,45}, {186,45}, {207,49}, {224,45},
+ {0,60}, {22,60}, {38,60}, {55,60}, {104,60}, {151,60}, {164,60}, {177,60}, {194,64}, {207,64}, {220,64},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
+ 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q65/ansi_encoder/keyboard.json b/keyboards/keychron/q65/ansi_encoder/keyboard.json
index 1fef623719..76b17dd5fb 100644
--- a/keyboards/keychron/q65/ansi_encoder/keyboard.json
+++ b/keyboards/keychron/q65/ansi_encoder/keyboard.json
@@ -27,82 +27,6 @@
"dip_switch": true,
"rgb_matrix": true
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 1], "x": 20, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 33, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 47, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 73, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 86, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 99, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 125, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 138, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 151, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 164, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 177, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 197, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 24, "y": 15, "flags": 1},
- {"matrix": [1, 2], "x": 40, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 53, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 66, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 79, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 92, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 105, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 119, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 145, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 158, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 171, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 184, "y": 15, "flags": 4},
- {"matrix": [1, 14], "x": 200, "y": 15, "flags": 4},
- {"matrix": [1, 15], "x": 224, "y": 15, "flags": 1},
- {"matrix": [2, 0], "x": 0, "y": 30, "flags": 1},
- {"matrix": [2, 1], "x": 25, "y": 30, "flags": 9},
- {"matrix": [2, 2], "x": 43, "y": 30, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 30, "flags": 4},
- {"matrix": [2, 4], "x": 69, "y": 30, "flags": 4},
- {"matrix": [2, 5], "x": 83, "y": 30, "flags": 4},
- {"matrix": [2, 6], "x": 96, "y": 30, "flags": 4},
- {"matrix": [2, 7], "x": 109, "y": 30, "flags": 4},
- {"matrix": [2, 8], "x": 122, "y": 30, "flags": 4},
- {"matrix": [2, 9], "x": 135, "y": 30, "flags": 4},
- {"matrix": [2, 10], "x": 148, "y": 30, "flags": 4},
- {"matrix": [2, 11], "x": 161, "y": 30, "flags": 4},
- {"matrix": [2, 12], "x": 174, "y": 30, "flags": 4},
- {"matrix": [2, 14], "x": 195, "y": 30, "flags": 1},
- {"matrix": [2, 15], "x": 224, "y": 30, "flags": 1},
- {"matrix": [3, 0], "x": 0, "y": 45, "flags": 1},
- {"matrix": [3, 1], "x": 29, "y": 45, "flags": 1},
- {"matrix": [3, 3], "x": 50, "y": 45, "flags": 4},
- {"matrix": [3, 4], "x": 63, "y": 45, "flags": 4},
- {"matrix": [3, 5], "x": 76, "y": 45, "flags": 4},
- {"matrix": [3, 6], "x": 89, "y": 45, "flags": 4},
- {"matrix": [3, 7], "x": 102, "y": 45, "flags": 4},
- {"matrix": [3, 8], "x": 115, "y": 45, "flags": 4},
- {"matrix": [3, 9], "x": 128, "y": 45, "flags": 4},
- {"matrix": [3, 10], "x": 141, "y": 45, "flags": 4},
- {"matrix": [3, 11], "x": 155, "y": 45, "flags": 4},
- {"matrix": [3, 12], "x": 168, "y": 45, "flags": 4},
- {"matrix": [3, 13], "x": 186, "y": 45, "flags": 1},
- {"matrix": [3, 14], "x": 207, "y": 49, "flags": 1},
- {"matrix": [3, 15], "x": 224, "y": 45, "flags": 1},
- {"matrix": [4, 0], "x": 0, "y": 60, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 60, "flags": 1},
- {"matrix": [4, 2], "x": 38, "y": 60, "flags": 1},
- {"matrix": [4, 3], "x": 55, "y": 60, "flags": 1},
- {"matrix": [4, 7], "x": 104, "y": 60, "flags": 4},
- {"matrix": [4, 10], "x": 151, "y": 60, "flags": 1},
- {"matrix": [4, 11], "x": 164, "y": 60, "flags": 1},
- {"matrix": [4, 12], "x": 177, "y": 60, "flags": 1},
- {"matrix": [4, 13], "x": 194, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 207, "y": 64, "flags": 1},
- {"matrix": [4, 15], "x": 220, "y": 64, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_ansi_73": {
"layout": [
diff --git a/keyboards/keychron/s1/ansi/rgb/keyboard.json b/keyboards/keychron/s1/ansi/rgb/keyboard.json
index 2dbc05f2fa..fb52ee6423 100644
--- a/keyboards/keychron/s1/ansi/rgb/keyboard.json
+++ b/keyboards/keychron/s1/ansi/rgb/keyboard.json
@@ -33,92 +33,6 @@
"solid_splash": true
},
"driver": "snled27351",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 119, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 134, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 149, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 164, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 179, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 194, "y": 0, "flags": 1},
- {"matrix": [3, 12], "x": 209, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 13, "flags": 1},
- {"matrix": [1, 1], "x": 15, "y": 13, "flags": 4},
- {"matrix": [1, 2], "x": 30, "y": 13, "flags": 4},
- {"matrix": [1, 3], "x": 45, "y": 13, "flags": 4},
- {"matrix": [1, 4], "x": 60, "y": 13, "flags": 4},
- {"matrix": [1, 5], "x": 75, "y": 13, "flags": 4},
- {"matrix": [1, 6], "x": 90, "y": 13, "flags": 4},
- {"matrix": [1, 7], "x": 105, "y": 13, "flags": 4},
- {"matrix": [1, 8], "x": 119, "y": 13, "flags": 4},
- {"matrix": [1, 9], "x": 134, "y": 13, "flags": 4},
- {"matrix": [1, 10], "x": 149, "y": 13, "flags": 4},
- {"matrix": [1, 11], "x": 164, "y": 13, "flags": 4},
- {"matrix": [1, 12], "x": 179, "y": 13, "flags": 4},
- {"matrix": [1, 13], "x": 202, "y": 13, "flags": 1},
- {"matrix": [1, 14], "x": 224, "y": 13, "flags": 1},
- {"matrix": [2, 0], "x": 4, "y": 26, "flags": 1},
- {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4},
- {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4},
- {"matrix": [2, 3], "x": 52, "y": 26, "flags": 4},
- {"matrix": [2, 4], "x": 67, "y": 26, "flags": 4},
- {"matrix": [2, 5], "x": 82, "y": 26, "flags": 4},
- {"matrix": [2, 6], "x": 97, "y": 26, "flags": 4},
- {"matrix": [2, 7], "x": 112, "y": 26, "flags": 4},
- {"matrix": [2, 8], "x": 127, "y": 26, "flags": 4},
- {"matrix": [2, 9], "x": 142, "y": 26, "flags": 4},
- {"matrix": [2, 10], "x": 157, "y": 26, "flags": 4},
- {"matrix": [2, 11], "x": 172, "y": 26, "flags": 4},
- {"matrix": [2, 12], "x": 187, "y": 26, "flags": 4},
- {"matrix": [2, 13], "x": 205, "y": 26, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 26, "flags": 1},
- {"matrix": [3, 0], "x": 6, "y": 38, "flags": 8},
- {"matrix": [3, 1], "x": 26, "y": 38, "flags": 4},
- {"matrix": [3, 2], "x": 41, "y": 38, "flags": 4},
- {"matrix": [3, 3], "x": 56, "y": 38, "flags": 4},
- {"matrix": [3, 4], "x": 71, "y": 38, "flags": 4},
- {"matrix": [3, 5], "x": 86, "y": 38, "flags": 4},
- {"matrix": [3, 6], "x": 101, "y": 38, "flags": 4},
- {"matrix": [3, 7], "x": 116, "y": 38, "flags": 4},
- {"matrix": [3, 8], "x": 131, "y": 38, "flags": 4},
- {"matrix": [3, 9], "x": 146, "y": 38, "flags": 4},
- {"matrix": [3, 10], "x": 160, "y": 38, "flags": 4},
- {"matrix": [3, 11], "x": 175, "y": 38, "flags": 4},
- {"matrix": [3, 13], "x": 200, "y": 38, "flags": 1},
- {"matrix": [3, 14], "x": 224, "y": 38, "flags": 1},
- {"matrix": [4, 0], "x": 9, "y": 51, "flags": 1},
- {"matrix": [4, 2], "x": 34, "y": 51, "flags": 4},
- {"matrix": [4, 3], "x": 48, "y": 51, "flags": 4},
- {"matrix": [4, 4], "x": 63, "y": 51, "flags": 4},
- {"matrix": [4, 5], "x": 78, "y": 51, "flags": 4},
- {"matrix": [4, 6], "x": 93, "y": 51, "flags": 4},
- {"matrix": [4, 7], "x": 108, "y": 51, "flags": 4},
- {"matrix": [4, 8], "x": 123, "y": 51, "flags": 4},
- {"matrix": [4, 9], "x": 138, "y": 51, "flags": 4},
- {"matrix": [4, 10], "x": 153, "y": 51, "flags": 4},
- {"matrix": [4, 11], "x": 168, "y": 51, "flags": 4},
- {"matrix": [4, 12], "x": 189, "y": 51, "flags": 1},
- {"matrix": [4, 13], "x": 209, "y": 51, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 51, "flags": 1},
- {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 21, "y": 64, "flags": 1},
- {"matrix": [5, 2], "x": 39, "y": 64, "flags": 1},
- {"matrix": [5, 6], "x": 95, "y": 64, "flags": 4},
- {"matrix": [5, 9], "x": 149, "y": 64, "flags": 1},
- {"matrix": [5, 10], "x": 164, "y": 64, "flags": 1},
- {"matrix": [5, 11], "x": 179, "y": 64, "flags": 1},
- {"matrix": [5, 12], "x": 194, "y": 64, "flags": 1},
- {"matrix": [5, 13], "x": 209, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 224, "y": 64, "flags": 1}
- ]
"sleep": true
},
"features": {
diff --git a/keyboards/keychron/s1/ansi/rgb/rgb.c b/keyboards/keychron/s1/ansi/rgb/rgb.c
index a40fdbd7cc..af6390f753 100644
--- a/keyboards/keychron/s1/ansi/rgb/rgb.c
+++ b/keyboards/keychron/s1/ansi/rgb/rgb.c
@@ -117,4 +117,37 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB6_CA14, CB4_CA14, CB5_CA14}, // down
{1, CB6_CA16, CB4_CA16, CB5_CA16}, // right
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15 },
+ { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 },
+ { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45 },
+ { 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 14, 58, 59 },
+ { 60, __, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73 },
+ { 74, 75, 76, __, __, __, 77, __, __, 78, 79, 80, 81, 82, 83 }
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {15,0}, {30,0}, {45,0}, {60,0}, {75,0}, {90,0}, {105,0}, {119,0}, {134,0}, {149,0}, {164,0}, {179,0}, {194,0}, {209,0}, {224,0},
+ {0,13}, {15,13}, {30,13}, {45,13}, {60,13}, {75,13}, {90,13}, {105,13}, {119,13}, {134,13}, {149,13}, {164,13}, {179,13}, {202,13}, {224,13},
+ {4,26}, {22,26}, {37,26}, {52,26}, {67,26}, {82,26}, {97,26}, {112,26}, {127,26}, {142,26}, {157,26}, {172,26}, {187,26}, {205,26}, {224,26},
+ {6,38}, {26,38}, {41,38}, {56,38}, {71,38}, {86,38}, {101,38}, {116,38}, {131,38}, {146,38}, {160,38}, {175,38}, {200,38}, {224,38},
+ {9,51}, {34,51}, {48,51}, {63,51}, {78,51}, {93,51}, {108,51}, {123,51}, {138,51}, {153,51}, {168,51}, {189,51}, {209,51}, {224,51},
+ {2,64}, {21,64}, {39,64}, {95,64}, {149,64}, {164,64}, {179,64}, {194,64}, {209,64}, {224,64}
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v1/ansi/ansi.c b/keyboards/keychron/v1/ansi/ansi.c
index b3b96c26a4..a78d5dd4d7 100644
--- a/keyboards/keychron/v1/ansi/ansi.c
+++ b/keyboards/keychron/v1/ansi/ansi.c
@@ -115,4 +115,37 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB3_CA15, CB1_CA15, CB2_CA15},
{1, CB3_CA16, CB1_CA16, CB2_CA16},
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, __, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, __, 29 },
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, __, 44 },
+ { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, __, 57, __, 58 },
+ { 59, __, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, __, 70, 71, __ },
+ { 72, 73, 74, __, __, __, 75, __, __, __, 76, 77, 78, 79, 80, 81 }
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {18,0}, {33,0}, {48,0}, {62,0}, {81,0}, {95,0}, {110,0}, {125,0}, {143,0}, {158,0}, {173,0}, {187,0}, {206,0}, {224,0},
+ {0,15}, {15,15}, {29,15}, {44,15}, {59,15}, {73,15}, {88,15}, {103,15}, {118,15}, {132,15}, {147,15}, {162,15}, {176,15}, {198,15}, {224,15},
+ {4,26}, {22,26}, {37,26}, {51,26}, {66,26}, {81,26}, {95,26}, {110,26}, {125,26}, {140,26}, {154,26}, {169,26}, {184,26}, {202,26}, {224,26},
+ {6,38}, {26,38}, {40,38}, {55,38}, {70,38}, {84,38}, {99,38}, {114,38}, {129,38}, {143,38}, {158,38}, {173,38}, {196,38}, {224,38},
+ {9,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {151,49}, {165,49}, {185,49}, {209,52},
+ {2,61}, {20,61}, {39,61}, {94,61}, {147,61}, {162,61}, {176,61}, {195,64}, {209,64}, {224,64}
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v1/ansi/keyboard.json b/keyboards/keychron/v1/ansi/keyboard.json
index 09242fb595..d4bbca78de 100644
--- a/keyboards/keychron/v1/ansi/keyboard.json
+++ b/keyboards/keychron/v1/ansi/keyboard.json
@@ -18,92 +18,6 @@
"dip_switch": true,
"rgb_matrix": true
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 18, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 33, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 62, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 81, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 95, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 110, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 125, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 158, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 173, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 187, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 206, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 73, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 118, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 162, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 198, "y": 15, "flags": 1},
- {"matrix": [1, 15], "x": 224, "y": 15, "flags": 1},
- {"matrix": [2, 0], "x": 4, "y": 26, "flags": 1},
- {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4},
- {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4},
- {"matrix": [2, 3], "x": 51, "y": 26, "flags": 4},
- {"matrix": [2, 4], "x": 66, "y": 26, "flags": 4},
- {"matrix": [2, 5], "x": 81, "y": 26, "flags": 4},
- {"matrix": [2, 6], "x": 95, "y": 26, "flags": 4},
- {"matrix": [2, 7], "x": 110, "y": 26, "flags": 4},
- {"matrix": [2, 8], "x": 125, "y": 26, "flags": 4},
- {"matrix": [2, 9], "x": 140, "y": 26, "flags": 4},
- {"matrix": [2, 10], "x": 154, "y": 26, "flags": 4},
- {"matrix": [2, 11], "x": 169, "y": 26, "flags": 4},
- {"matrix": [2, 12], "x": 184, "y": 26, "flags": 4},
- {"matrix": [2, 13], "x": 202, "y": 26, "flags": 4},
- {"matrix": [2, 15], "x": 224, "y": 26, "flags": 1},
- {"matrix": [3, 0], "x": 6, "y": 38, "flags": 8},
- {"matrix": [3, 1], "x": 26, "y": 38, "flags": 4},
- {"matrix": [3, 2], "x": 40, "y": 38, "flags": 4},
- {"matrix": [3, 3], "x": 55, "y": 38, "flags": 4},
- {"matrix": [3, 4], "x": 70, "y": 38, "flags": 4},
- {"matrix": [3, 5], "x": 84, "y": 38, "flags": 4},
- {"matrix": [3, 6], "x": 99, "y": 38, "flags": 4},
- {"matrix": [3, 7], "x": 114, "y": 38, "flags": 4},
- {"matrix": [3, 8], "x": 129, "y": 38, "flags": 4},
- {"matrix": [3, 9], "x": 143, "y": 38, "flags": 4},
- {"matrix": [3, 10], "x": 158, "y": 38, "flags": 4},
- {"matrix": [3, 11], "x": 173, "y": 38, "flags": 4},
- {"matrix": [3, 13], "x": 196, "y": 38, "flags": 1},
- {"matrix": [3, 15], "x": 224, "y": 38, "flags": 1},
- {"matrix": [4, 0], "x": 9, "y": 49, "flags": 1},
- {"matrix": [4, 2], "x": 33, "y": 49, "flags": 4},
- {"matrix": [4, 3], "x": 48, "y": 49, "flags": 4},
- {"matrix": [4, 4], "x": 62, "y": 49, "flags": 4},
- {"matrix": [4, 5], "x": 77, "y": 49, "flags": 4},
- {"matrix": [4, 6], "x": 92, "y": 49, "flags": 4},
- {"matrix": [4, 7], "x": 106, "y": 49, "flags": 4},
- {"matrix": [4, 8], "x": 121, "y": 49, "flags": 4},
- {"matrix": [4, 9], "x": 136, "y": 49, "flags": 4},
- {"matrix": [4, 10], "x": 151, "y": 49, "flags": 4},
- {"matrix": [4, 11], "x": 165, "y": 49, "flags": 4},
- {"matrix": [4, 13], "x": 185, "y": 49, "flags": 1},
- {"matrix": [4, 14], "x": 209, "y": 52, "flags": 1},
- {"matrix": [5, 0], "x": 2, "y": 61, "flags": 1},
- {"matrix": [5, 1], "x": 20, "y": 61, "flags": 1},
- {"matrix": [5, 2], "x": 39, "y": 61, "flags": 1},
- {"matrix": [5, 6], "x": 94, "y": 61, "flags": 4},
- {"matrix": [5, 10], "x": 147, "y": 61, "flags": 1},
- {"matrix": [5, 11], "x": 162, "y": 61, "flags": 1},
- {"matrix": [5, 12], "x": 176, "y": 61, "flags": 1},
- {"matrix": [5, 13], "x": 195, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 209, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_ansi_82": {
"layout": [
diff --git a/keyboards/keychron/v1/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v1/ansi_encoder/ansi_encoder.c
index b3b96c26a4..a78d5dd4d7 100644
--- a/keyboards/keychron/v1/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/v1/ansi_encoder/ansi_encoder.c
@@ -115,4 +115,37 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB3_CA15, CB1_CA15, CB2_CA15},
{1, CB3_CA16, CB1_CA16, CB2_CA16},
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, __, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, __, 29 },
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, __, 44 },
+ { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, __, 57, __, 58 },
+ { 59, __, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, __, 70, 71, __ },
+ { 72, 73, 74, __, __, __, 75, __, __, __, 76, 77, 78, 79, 80, 81 }
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {18,0}, {33,0}, {48,0}, {62,0}, {81,0}, {95,0}, {110,0}, {125,0}, {143,0}, {158,0}, {173,0}, {187,0}, {206,0}, {224,0},
+ {0,15}, {15,15}, {29,15}, {44,15}, {59,15}, {73,15}, {88,15}, {103,15}, {118,15}, {132,15}, {147,15}, {162,15}, {176,15}, {198,15}, {224,15},
+ {4,26}, {22,26}, {37,26}, {51,26}, {66,26}, {81,26}, {95,26}, {110,26}, {125,26}, {140,26}, {154,26}, {169,26}, {184,26}, {202,26}, {224,26},
+ {6,38}, {26,38}, {40,38}, {55,38}, {70,38}, {84,38}, {99,38}, {114,38}, {129,38}, {143,38}, {158,38}, {173,38}, {196,38}, {224,38},
+ {9,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {151,49}, {165,49}, {185,49}, {209,52},
+ {2,61}, {20,61}, {39,61}, {94,61}, {147,61}, {162,61}, {176,61}, {195,64}, {209,64}, {224,64}
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v1/ansi_encoder/keyboard.json b/keyboards/keychron/v1/ansi_encoder/keyboard.json
index cd62b128a0..62bbeb9d5d 100644
--- a/keyboards/keychron/v1/ansi_encoder/keyboard.json
+++ b/keyboards/keychron/v1/ansi_encoder/keyboard.json
@@ -24,92 +24,6 @@
"dip_switch": true,
"rgb_matrix": true
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 18, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 33, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 62, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 81, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 95, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 110, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 125, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 158, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 173, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 187, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 206, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 73, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 118, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 162, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 198, "y": 15, "flags": 1},
- {"matrix": [1, 15], "x": 224, "y": 15, "flags": 1},
- {"matrix": [2, 0], "x": 4, "y": 26, "flags": 1},
- {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4},
- {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4},
- {"matrix": [2, 3], "x": 51, "y": 26, "flags": 4},
- {"matrix": [2, 4], "x": 66, "y": 26, "flags": 4},
- {"matrix": [2, 5], "x": 81, "y": 26, "flags": 4},
- {"matrix": [2, 6], "x": 95, "y": 26, "flags": 4},
- {"matrix": [2, 7], "x": 110, "y": 26, "flags": 4},
- {"matrix": [2, 8], "x": 125, "y": 26, "flags": 4},
- {"matrix": [2, 9], "x": 140, "y": 26, "flags": 4},
- {"matrix": [2, 10], "x": 154, "y": 26, "flags": 4},
- {"matrix": [2, 11], "x": 169, "y": 26, "flags": 4},
- {"matrix": [2, 12], "x": 184, "y": 26, "flags": 4},
- {"matrix": [2, 13], "x": 202, "y": 26, "flags": 4},
- {"matrix": [2, 15], "x": 224, "y": 26, "flags": 1},
- {"matrix": [3, 0], "x": 6, "y": 38, "flags": 8},
- {"matrix": [3, 1], "x": 26, "y": 38, "flags": 4},
- {"matrix": [3, 2], "x": 40, "y": 38, "flags": 4},
- {"matrix": [3, 3], "x": 55, "y": 38, "flags": 4},
- {"matrix": [3, 4], "x": 70, "y": 38, "flags": 4},
- {"matrix": [3, 5], "x": 84, "y": 38, "flags": 4},
- {"matrix": [3, 6], "x": 99, "y": 38, "flags": 4},
- {"matrix": [3, 7], "x": 114, "y": 38, "flags": 4},
- {"matrix": [3, 8], "x": 129, "y": 38, "flags": 4},
- {"matrix": [3, 9], "x": 143, "y": 38, "flags": 4},
- {"matrix": [3, 10], "x": 158, "y": 38, "flags": 4},
- {"matrix": [3, 11], "x": 173, "y": 38, "flags": 4},
- {"matrix": [3, 13], "x": 196, "y": 38, "flags": 1},
- {"matrix": [3, 15], "x": 224, "y": 38, "flags": 1},
- {"matrix": [4, 0], "x": 9, "y": 49, "flags": 1},
- {"matrix": [4, 2], "x": 33, "y": 49, "flags": 4},
- {"matrix": [4, 3], "x": 48, "y": 49, "flags": 4},
- {"matrix": [4, 4], "x": 62, "y": 49, "flags": 4},
- {"matrix": [4, 5], "x": 77, "y": 49, "flags": 4},
- {"matrix": [4, 6], "x": 92, "y": 49, "flags": 4},
- {"matrix": [4, 7], "x": 106, "y": 49, "flags": 4},
- {"matrix": [4, 8], "x": 121, "y": 49, "flags": 4},
- {"matrix": [4, 9], "x": 136, "y": 49, "flags": 4},
- {"matrix": [4, 10], "x": 151, "y": 49, "flags": 4},
- {"matrix": [4, 11], "x": 165, "y": 49, "flags": 4},
- {"matrix": [4, 13], "x": 185, "y": 49, "flags": 1},
- {"matrix": [4, 14], "x": 209, "y": 52, "flags": 1},
- {"matrix": [5, 0], "x": 2, "y": 61, "flags": 1},
- {"matrix": [5, 1], "x": 20, "y": 61, "flags": 1},
- {"matrix": [5, 2], "x": 39, "y": 61, "flags": 1},
- {"matrix": [5, 6], "x": 94, "y": 61, "flags": 4},
- {"matrix": [5, 10], "x": 147, "y": 61, "flags": 1},
- {"matrix": [5, 11], "x": 162, "y": 61, "flags": 1},
- {"matrix": [5, 12], "x": 176, "y": 61, "flags": 1},
- {"matrix": [5, 13], "x": 195, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 209, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_ansi_82": {
"layout": [
diff --git a/keyboards/keychron/v1/iso/iso.c b/keyboards/keychron/v1/iso/iso.c
index 4cb877f918..a1095dcc92 100644
--- a/keyboards/keychron/v1/iso/iso.c
+++ b/keyboards/keychron/v1/iso/iso.c
@@ -116,4 +116,37 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB3_CA15, CB1_CA15, CB2_CA15},
{1, CB3_CA16, CB1_CA16, CB2_CA16},
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, __, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, __, 29 },
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 57, __, 43 },
+ { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, __, 56, __, 58 },
+ { 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, __, 71, 72, __ },
+ { 73, 74, 75, __, __, __, 76, __, __, __, 77, 78, 79, 80, 81, 82 }
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {18,0}, {33,0}, {48,0}, {62,0}, {81,0}, {95,0}, {110,0}, {125,0}, {143,0}, {158,0}, {173,0}, {187,0}, {206,0}, {224,0},
+ {0,15}, {15,15}, {29,15}, {44,15}, {59,15}, {73,15}, {88,15}, {103,15}, {118,15}, {132,15}, {147,15}, {162,15}, {176,15}, {198,15}, {224,15},
+ {4,26}, {22,26}, {37,26}, {51,26}, {66,26}, {81,26}, {95,26}, {110,26}, {125,26}, {140,26}, {154,26}, {169,26}, {184,26}, {224,26},
+ {6,38}, {26,38}, {40,38}, {55,38}, {70,38}, {84,38}, {99,38}, {114,38}, {129,38}, {143,38}, {158,38}, {173,38}, {187,38}, {203,32}, {224,38},
+ {2,49}, {18,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {151,49}, {165,49}, {185,49}, {209,52},
+ {2,61}, {20,61}, {39,61}, {94,61}, {147,61}, {162,61}, {176,61}, {195,64}, {209,64}, {224,64}
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v1/iso/keyboard.json b/keyboards/keychron/v1/iso/keyboard.json
index 43376e3077..6e307ea4df 100644
--- a/keyboards/keychron/v1/iso/keyboard.json
+++ b/keyboards/keychron/v1/iso/keyboard.json
@@ -18,93 +18,6 @@
"rgb_matrix": true,
"dip_switch": true
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 18, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 33, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 62, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 81, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 95, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 110, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 125, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 158, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 173, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 187, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 206, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 73, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 118, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 162, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 198, "y": 15, "flags": 1},
- {"matrix": [1, 15], "x": 224, "y": 15, "flags": 1},
- {"matrix": [2, 0], "x": 4, "y": 26, "flags": 1},
- {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4},
- {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4},
- {"matrix": [2, 3], "x": 51, "y": 26, "flags": 4},
- {"matrix": [2, 4], "x": 66, "y": 26, "flags": 4},
- {"matrix": [2, 5], "x": 81, "y": 26, "flags": 4},
- {"matrix": [2, 6], "x": 95, "y": 26, "flags": 4},
- {"matrix": [2, 7], "x": 110, "y": 26, "flags": 4},
- {"matrix": [2, 8], "x": 125, "y": 26, "flags": 4},
- {"matrix": [2, 9], "x": 140, "y": 26, "flags": 4},
- {"matrix": [2, 10], "x": 154, "y": 26, "flags": 4},
- {"matrix": [2, 11], "x": 169, "y": 26, "flags": 4},
- {"matrix": [2, 12], "x": 184, "y": 26, "flags": 4},
- {"matrix": [2, 15], "x": 224, "y": 26, "flags": 1},
- {"matrix": [3, 0], "x": 6, "y": 38, "flags": 8},
- {"matrix": [3, 1], "x": 26, "y": 38, "flags": 4},
- {"matrix": [3, 2], "x": 40, "y": 38, "flags": 4},
- {"matrix": [3, 3], "x": 55, "y": 38, "flags": 4},
- {"matrix": [3, 4], "x": 70, "y": 38, "flags": 4},
- {"matrix": [3, 5], "x": 84, "y": 38, "flags": 4},
- {"matrix": [3, 6], "x": 99, "y": 38, "flags": 4},
- {"matrix": [3, 7], "x": 114, "y": 38, "flags": 4},
- {"matrix": [3, 8], "x": 129, "y": 38, "flags": 4},
- {"matrix": [3, 9], "x": 143, "y": 38, "flags": 4},
- {"matrix": [3, 10], "x": 158, "y": 38, "flags": 4},
- {"matrix": [3, 11], "x": 173, "y": 38, "flags": 4},
- {"matrix": [3, 13], "x": 187, "y": 38, "flags": 4},
- {"matrix": [2, 13], "x": 203, "y": 32, "flags": 1},
- {"matrix": [3, 15], "x": 224, "y": 38, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 49, "flags": 1},
- {"matrix": [4, 1], "x": 18, "y": 49, "flags": 4},
- {"matrix": [4, 2], "x": 33, "y": 49, "flags": 4},
- {"matrix": [4, 3], "x": 48, "y": 49, "flags": 4},
- {"matrix": [4, 4], "x": 62, "y": 49, "flags": 4},
- {"matrix": [4, 5], "x": 77, "y": 49, "flags": 4},
- {"matrix": [4, 6], "x": 92, "y": 49, "flags": 4},
- {"matrix": [4, 7], "x": 106, "y": 49, "flags": 4},
- {"matrix": [4, 8], "x": 121, "y": 49, "flags": 4},
- {"matrix": [4, 9], "x": 136, "y": 49, "flags": 4},
- {"matrix": [4, 10], "x": 151, "y": 49, "flags": 4},
- {"matrix": [4, 11], "x": 165, "y": 49, "flags": 4},
- {"matrix": [4, 13], "x": 185, "y": 49, "flags": 1},
- {"matrix": [4, 14], "x": 209, "y": 52, "flags": 1},
- {"matrix": [5, 0], "x": 2, "y": 61, "flags": 1},
- {"matrix": [5, 1], "x": 20, "y": 61, "flags": 1},
- {"matrix": [5, 2], "x": 39, "y": 61, "flags": 1},
- {"matrix": [5, 6], "x": 94, "y": 61, "flags": 4},
- {"matrix": [5, 10], "x": 147, "y": 61, "flags": 1},
- {"matrix": [5, 11], "x": 162, "y": 61, "flags": 1},
- {"matrix": [5, 12], "x": 176, "y": 61, "flags": 1},
- {"matrix": [5, 13], "x": 195, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 209, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_iso_83": {
"layout": [
diff --git a/keyboards/keychron/v1/iso_encoder/iso_encoder.c b/keyboards/keychron/v1/iso_encoder/iso_encoder.c
index 4cb877f918..a1095dcc92 100644
--- a/keyboards/keychron/v1/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/v1/iso_encoder/iso_encoder.c
@@ -116,4 +116,37 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB3_CA15, CB1_CA15, CB2_CA15},
{1, CB3_CA16, CB1_CA16, CB2_CA16},
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, __, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, __, 29 },
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 57, __, 43 },
+ { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, __, 56, __, 58 },
+ { 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, __, 71, 72, __ },
+ { 73, 74, 75, __, __, __, 76, __, __, __, 77, 78, 79, 80, 81, 82 }
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {18,0}, {33,0}, {48,0}, {62,0}, {81,0}, {95,0}, {110,0}, {125,0}, {143,0}, {158,0}, {173,0}, {187,0}, {206,0}, {224,0},
+ {0,15}, {15,15}, {29,15}, {44,15}, {59,15}, {73,15}, {88,15}, {103,15}, {118,15}, {132,15}, {147,15}, {162,15}, {176,15}, {198,15}, {224,15},
+ {4,26}, {22,26}, {37,26}, {51,26}, {66,26}, {81,26}, {95,26}, {110,26}, {125,26}, {140,26}, {154,26}, {169,26}, {184,26}, {224,26},
+ {6,38}, {26,38}, {40,38}, {55,38}, {70,38}, {84,38}, {99,38}, {114,38}, {129,38}, {143,38}, {158,38}, {173,38}, {187,38}, {203,32}, {224,38},
+ {2,49}, {18,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {151,49}, {165,49}, {185,49}, {209,52},
+ {2,61}, {20,61}, {39,61}, {94,61}, {147,61}, {162,61}, {176,61}, {195,64}, {209,64}, {224,64}
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v1/iso_encoder/keyboard.json b/keyboards/keychron/v1/iso_encoder/keyboard.json
index b095d4d436..077cb045b2 100644
--- a/keyboards/keychron/v1/iso_encoder/keyboard.json
+++ b/keyboards/keychron/v1/iso_encoder/keyboard.json
@@ -24,93 +24,6 @@
"encoder": true,
"dip_switch": true
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 18, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 33, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 62, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 81, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 95, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 110, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 125, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 158, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 173, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 187, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 206, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 73, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 118, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 162, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 198, "y": 15, "flags": 1},
- {"matrix": [1, 15], "x": 224, "y": 15, "flags": 1},
- {"matrix": [2, 0], "x": 4, "y": 26, "flags": 1},
- {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4},
- {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4},
- {"matrix": [2, 3], "x": 51, "y": 26, "flags": 4},
- {"matrix": [2, 4], "x": 66, "y": 26, "flags": 4},
- {"matrix": [2, 5], "x": 81, "y": 26, "flags": 4},
- {"matrix": [2, 6], "x": 95, "y": 26, "flags": 4},
- {"matrix": [2, 7], "x": 110, "y": 26, "flags": 4},
- {"matrix": [2, 8], "x": 125, "y": 26, "flags": 4},
- {"matrix": [2, 9], "x": 140, "y": 26, "flags": 4},
- {"matrix": [2, 10], "x": 154, "y": 26, "flags": 4},
- {"matrix": [2, 11], "x": 169, "y": 26, "flags": 4},
- {"matrix": [2, 12], "x": 184, "y": 26, "flags": 4},
- {"matrix": [2, 15], "x": 224, "y": 26, "flags": 1},
- {"matrix": [3, 0], "x": 6, "y": 38, "flags": 8},
- {"matrix": [3, 1], "x": 26, "y": 38, "flags": 4},
- {"matrix": [3, 2], "x": 40, "y": 38, "flags": 4},
- {"matrix": [3, 3], "x": 55, "y": 38, "flags": 4},
- {"matrix": [3, 4], "x": 70, "y": 38, "flags": 4},
- {"matrix": [3, 5], "x": 84, "y": 38, "flags": 4},
- {"matrix": [3, 6], "x": 99, "y": 38, "flags": 4},
- {"matrix": [3, 7], "x": 114, "y": 38, "flags": 4},
- {"matrix": [3, 8], "x": 129, "y": 38, "flags": 4},
- {"matrix": [3, 9], "x": 143, "y": 38, "flags": 4},
- {"matrix": [3, 10], "x": 158, "y": 38, "flags": 4},
- {"matrix": [3, 11], "x": 173, "y": 38, "flags": 4},
- {"matrix": [3, 13], "x": 187, "y": 38, "flags": 4},
- {"matrix": [2, 13], "x": 203, "y": 32, "flags": 1},
- {"matrix": [3, 15], "x": 224, "y": 38, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 49, "flags": 1},
- {"matrix": [4, 1], "x": 18, "y": 49, "flags": 4},
- {"matrix": [4, 2], "x": 33, "y": 49, "flags": 4},
- {"matrix": [4, 3], "x": 48, "y": 49, "flags": 4},
- {"matrix": [4, 4], "x": 62, "y": 49, "flags": 4},
- {"matrix": [4, 5], "x": 77, "y": 49, "flags": 4},
- {"matrix": [4, 6], "x": 92, "y": 49, "flags": 4},
- {"matrix": [4, 7], "x": 106, "y": 49, "flags": 4},
- {"matrix": [4, 8], "x": 121, "y": 49, "flags": 4},
- {"matrix": [4, 9], "x": 136, "y": 49, "flags": 4},
- {"matrix": [4, 10], "x": 151, "y": 49, "flags": 4},
- {"matrix": [4, 11], "x": 165, "y": 49, "flags": 4},
- {"matrix": [4, 13], "x": 185, "y": 49, "flags": 1},
- {"matrix": [4, 14], "x": 209, "y": 52, "flags": 1},
- {"matrix": [5, 0], "x": 2, "y": 61, "flags": 1},
- {"matrix": [5, 1], "x": 20, "y": 61, "flags": 1},
- {"matrix": [5, 2], "x": 39, "y": 61, "flags": 1},
- {"matrix": [5, 6], "x": 94, "y": 61, "flags": 4},
- {"matrix": [5, 10], "x": 147, "y": 61, "flags": 1},
- {"matrix": [5, 11], "x": 162, "y": 61, "flags": 1},
- {"matrix": [5, 12], "x": 176, "y": 61, "flags": 1},
- {"matrix": [5, 13], "x": 195, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 209, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_iso_83": {
"layout": [
diff --git a/keyboards/keychron/v1/jis/jis.c b/keyboards/keychron/v1/jis/jis.c
index 04839ff24a..d3b3f9aa90 100644
--- a/keyboards/keychron/v1/jis/jis.c
+++ b/keyboards/keychron/v1/jis/jis.c
@@ -119,4 +119,37 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB3_CA15, CB1_CA15, CB2_CA15},
{1, CB3_CA16, CB1_CA16, CB2_CA16},
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, __, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 },
+ { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 58, __, 44 },
+ { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, __, 57, __, 59 },
+ { 60, __, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, __ },
+ { 74, 75, 76, 77, __, __, 78, __, __, 79, 80, 81, 82, 83, 84, 85 },
+ },
+ {
+ // LED Index to Physical Position
+ {0, 0}, {18, 0}, {33, 0}, {48, 0}, {62, 0}, {81, 0}, {95, 0}, {110, 0}, {125, 0}, {143, 0}, {158, 0}, {173, 0}, {187, 0}, {205, 0}, {224, 0},
+ {0, 15}, {15, 15}, {29, 15}, {44, 15}, {59, 15}, {73, 15}, {88, 15}, {103, 15}, {117, 15}, {132, 15}, {147, 15}, {161, 15}, {176, 15}, {191, 15}, {205, 15}, {224, 15},
+ {4, 28}, {22, 28}, {37, 28}, {51, 28}, {66, 28}, {81, 28}, {95, 28}, {110, 28}, {125, 28}, {139, 28}, {154, 28}, {169, 28}, {183, 28}, {224, 28},
+ {6, 40}, {26, 40}, {40, 40}, {55, 40}, {70, 40}, {84, 40}, {99, 40}, {114, 40}, {128, 40}, {143, 40}, {158, 40}, {172, 40}, {187, 40}, {207, 36}, {224, 40},
+ {9, 52}, {33, 52}, {48, 52}, {62, 52}, {77, 52}, {92, 52}, {106, 52}, {121, 52}, {136, 52}, {150, 52}, {165, 52}, {180, 52}, {194, 52}, {209, 52},
+ {2, 64}, {18, 64}, {35, 64}, {51, 64}, { 92, 64}, {134, 64}, {150, 64}, {165, 64}, {180, 64}, {194, 64}, {209, 64}, {224, 64},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v1/jis/keyboard.json b/keyboards/keychron/v1/jis/keyboard.json
index e02699c03c..a6a43a75da 100644
--- a/keyboards/keychron/v1/jis/keyboard.json
+++ b/keyboards/keychron/v1/jis/keyboard.json
@@ -18,96 +18,6 @@
"rgb_matrix": true,
"dip_switch": true
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 18, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 33, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 62, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 81, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 95, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 110, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 125, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 158, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 173, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 187, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 205, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 73, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 117, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 161, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 191, "y": 15, "flags": 4},
- {"matrix": [1, 14], "x": 205, "y": 15, "flags": 1},
- {"matrix": [1, 15], "x": 224, "y": 15, "flags": 1},
- {"matrix": [2, 0], "x": 4, "y": 28, "flags": 1},
- {"matrix": [2, 1], "x": 22, "y": 28, "flags": 4},
- {"matrix": [2, 2], "x": 37, "y": 28, "flags": 4},
- {"matrix": [2, 3], "x": 51, "y": 28, "flags": 4},
- {"matrix": [2, 4], "x": 66, "y": 28, "flags": 4},
- {"matrix": [2, 5], "x": 81, "y": 28, "flags": 4},
- {"matrix": [2, 6], "x": 95, "y": 28, "flags": 4},
- {"matrix": [2, 7], "x": 110, "y": 28, "flags": 4},
- {"matrix": [2, 8], "x": 125, "y": 28, "flags": 4},
- {"matrix": [2, 9], "x": 139, "y": 28, "flags": 4},
- {"matrix": [2, 10], "x": 154, "y": 28, "flags": 4},
- {"matrix": [2, 11], "x": 169, "y": 28, "flags": 4},
- {"matrix": [2, 12], "x": 183, "y": 28, "flags": 4},
- {"matrix": [2, 15], "x": 224, "y": 28, "flags": 1},
- {"matrix": [3, 0], "x": 6, "y": 40, "flags": 8},
- {"matrix": [3, 1], "x": 26, "y": 40, "flags": 4},
- {"matrix": [3, 2], "x": 40, "y": 40, "flags": 4},
- {"matrix": [3, 3], "x": 55, "y": 40, "flags": 4},
- {"matrix": [3, 4], "x": 70, "y": 40, "flags": 4},
- {"matrix": [3, 5], "x": 84, "y": 40, "flags": 4},
- {"matrix": [3, 6], "x": 99, "y": 40, "flags": 4},
- {"matrix": [3, 7], "x": 114, "y": 40, "flags": 4},
- {"matrix": [3, 8], "x": 128, "y": 40, "flags": 4},
- {"matrix": [3, 9], "x": 143, "y": 40, "flags": 4},
- {"matrix": [3, 10], "x": 158, "y": 40, "flags": 4},
- {"matrix": [3, 11], "x": 172, "y": 40, "flags": 4},
- {"matrix": [3, 13], "x": 187, "y": 40, "flags": 4},
- {"matrix": [2, 13], "x": 207, "y": 36, "flags": 1},
- {"matrix": [3, 15], "x": 224, "y": 40, "flags": 1},
- {"matrix": [4, 0], "x": 9, "y": 52, "flags": 1},
- {"matrix": [4, 2], "x": 33, "y": 52, "flags": 4},
- {"matrix": [4, 3], "x": 48, "y": 52, "flags": 4},
- {"matrix": [4, 4], "x": 62, "y": 52, "flags": 4},
- {"matrix": [4, 5], "x": 77, "y": 52, "flags": 4},
- {"matrix": [4, 6], "x": 92, "y": 52, "flags": 4},
- {"matrix": [4, 7], "x": 106, "y": 52, "flags": 4},
- {"matrix": [4, 8], "x": 121, "y": 52, "flags": 4},
- {"matrix": [4, 9], "x": 136, "y": 52, "flags": 4},
- {"matrix": [4, 10], "x": 150, "y": 52, "flags": 4},
- {"matrix": [4, 11], "x": 165, "y": 52, "flags": 4},
- {"matrix": [4, 12], "x": 180, "y": 52, "flags": 4},
- {"matrix": [4, 13], "x": 194, "y": 52, "flags": 1},
- {"matrix": [4, 14], "x": 209, "y": 52, "flags": 1},
- {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1},
- {"matrix": [5, 2], "x": 35, "y": 64, "flags": 1},
- {"matrix": [5, 3], "x": 51, "y": 64, "flags": 1},
- {"matrix": [5, 6], "x": 92, "y": 64, "flags": 4},
- {"matrix": [5, 9], "x": 134, "y": 64, "flags": 1},
- {"matrix": [5, 10], "x": 150, "y": 64, "flags": 1},
- {"matrix": [5, 11], "x": 165, "y": 64, "flags": 1},
- {"matrix": [5, 12], "x": 180, "y": 64, "flags": 1},
- {"matrix": [5, 13], "x": 194, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 209, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_jis_86": {
"layout": [
diff --git a/keyboards/keychron/v1/jis_encoder/jis_encoder.c b/keyboards/keychron/v1/jis_encoder/jis_encoder.c
index 04839ff24a..d3b3f9aa90 100644
--- a/keyboards/keychron/v1/jis_encoder/jis_encoder.c
+++ b/keyboards/keychron/v1/jis_encoder/jis_encoder.c
@@ -119,4 +119,37 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB3_CA15, CB1_CA15, CB2_CA15},
{1, CB3_CA16, CB1_CA16, CB2_CA16},
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, __, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 },
+ { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 58, __, 44 },
+ { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, __, 57, __, 59 },
+ { 60, __, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, __ },
+ { 74, 75, 76, 77, __, __, 78, __, __, 79, 80, 81, 82, 83, 84, 85 },
+ },
+ {
+ // LED Index to Physical Position
+ {0, 0}, {18, 0}, {33, 0}, {48, 0}, {62, 0}, {81, 0}, {95, 0}, {110, 0}, {125, 0}, {143, 0}, {158, 0}, {173, 0}, {187, 0}, {205, 0}, {224, 0},
+ {0, 15}, {15, 15}, {29, 15}, {44, 15}, {59, 15}, {73, 15}, {88, 15}, {103, 15}, {117, 15}, {132, 15}, {147, 15}, {161, 15}, {176, 15}, {191, 15}, {205, 15}, {224, 15},
+ {4, 28}, {22, 28}, {37, 28}, {51, 28}, {66, 28}, {81, 28}, {95, 28}, {110, 28}, {125, 28}, {139, 28}, {154, 28}, {169, 28}, {183, 28}, {224, 28},
+ {6, 40}, {26, 40}, {40, 40}, {55, 40}, {70, 40}, {84, 40}, {99, 40}, {114, 40}, {128, 40}, {143, 40}, {158, 40}, {172, 40}, {187, 40}, {207, 36}, {224, 40},
+ {9, 52}, {33, 52}, {48, 52}, {62, 52}, {77, 52}, {92, 52}, {106, 52}, {121, 52}, {136, 52}, {150, 52}, {165, 52}, {180, 52}, {194, 52}, {209, 52},
+ {2, 64}, {18, 64}, {35, 64}, {51, 64}, { 92, 64}, {134, 64}, {150, 64}, {165, 64}, {180, 64}, {194, 64}, {209, 64}, {224, 64},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v1/jis_encoder/keyboard.json b/keyboards/keychron/v1/jis_encoder/keyboard.json
index 3a89e69153..4e39e3d4a8 100644
--- a/keyboards/keychron/v1/jis_encoder/keyboard.json
+++ b/keyboards/keychron/v1/jis_encoder/keyboard.json
@@ -24,96 +24,6 @@
"encoder": true,
"dip_switch": true
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 18, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 33, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 62, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 81, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 95, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 110, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 125, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 158, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 173, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 187, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 205, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 73, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 117, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 161, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 191, "y": 15, "flags": 4},
- {"matrix": [1, 14], "x": 205, "y": 15, "flags": 1},
- {"matrix": [1, 15], "x": 224, "y": 15, "flags": 1},
- {"matrix": [2, 0], "x": 4, "y": 28, "flags": 1},
- {"matrix": [2, 1], "x": 22, "y": 28, "flags": 4},
- {"matrix": [2, 2], "x": 37, "y": 28, "flags": 4},
- {"matrix": [2, 3], "x": 51, "y": 28, "flags": 4},
- {"matrix": [2, 4], "x": 66, "y": 28, "flags": 4},
- {"matrix": [2, 5], "x": 81, "y": 28, "flags": 4},
- {"matrix": [2, 6], "x": 95, "y": 28, "flags": 4},
- {"matrix": [2, 7], "x": 110, "y": 28, "flags": 4},
- {"matrix": [2, 8], "x": 125, "y": 28, "flags": 4},
- {"matrix": [2, 9], "x": 139, "y": 28, "flags": 4},
- {"matrix": [2, 10], "x": 154, "y": 28, "flags": 4},
- {"matrix": [2, 11], "x": 169, "y": 28, "flags": 4},
- {"matrix": [2, 12], "x": 183, "y": 28, "flags": 4},
- {"matrix": [2, 15], "x": 224, "y": 28, "flags": 1},
- {"matrix": [3, 0], "x": 6, "y": 40, "flags": 8},
- {"matrix": [3, 1], "x": 26, "y": 40, "flags": 4},
- {"matrix": [3, 2], "x": 40, "y": 40, "flags": 4},
- {"matrix": [3, 3], "x": 55, "y": 40, "flags": 4},
- {"matrix": [3, 4], "x": 70, "y": 40, "flags": 4},
- {"matrix": [3, 5], "x": 84, "y": 40, "flags": 4},
- {"matrix": [3, 6], "x": 99, "y": 40, "flags": 4},
- {"matrix": [3, 7], "x": 114, "y": 40, "flags": 4},
- {"matrix": [3, 8], "x": 128, "y": 40, "flags": 4},
- {"matrix": [3, 9], "x": 143, "y": 40, "flags": 4},
- {"matrix": [3, 10], "x": 158, "y": 40, "flags": 4},
- {"matrix": [3, 11], "x": 172, "y": 40, "flags": 4},
- {"matrix": [3, 13], "x": 187, "y": 40, "flags": 4},
- {"matrix": [2, 13], "x": 207, "y": 36, "flags": 1},
- {"matrix": [3, 15], "x": 224, "y": 40, "flags": 1},
- {"matrix": [4, 0], "x": 9, "y": 52, "flags": 1},
- {"matrix": [4, 2], "x": 33, "y": 52, "flags": 4},
- {"matrix": [4, 3], "x": 48, "y": 52, "flags": 4},
- {"matrix": [4, 4], "x": 62, "y": 52, "flags": 4},
- {"matrix": [4, 5], "x": 77, "y": 52, "flags": 4},
- {"matrix": [4, 6], "x": 92, "y": 52, "flags": 4},
- {"matrix": [4, 7], "x": 106, "y": 52, "flags": 4},
- {"matrix": [4, 8], "x": 121, "y": 52, "flags": 4},
- {"matrix": [4, 9], "x": 136, "y": 52, "flags": 4},
- {"matrix": [4, 10], "x": 150, "y": 52, "flags": 4},
- {"matrix": [4, 11], "x": 165, "y": 52, "flags": 4},
- {"matrix": [4, 12], "x": 180, "y": 52, "flags": 4},
- {"matrix": [4, 13], "x": 194, "y": 52, "flags": 1},
- {"matrix": [4, 14], "x": 209, "y": 52, "flags": 1},
- {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1},
- {"matrix": [5, 2], "x": 35, "y": 64, "flags": 1},
- {"matrix": [5, 3], "x": 51, "y": 64, "flags": 1},
- {"matrix": [5, 6], "x": 92, "y": 64, "flags": 4},
- {"matrix": [5, 9], "x": 134, "y": 64, "flags": 1},
- {"matrix": [5, 10], "x": 150, "y": 64, "flags": 1},
- {"matrix": [5, 11], "x": 165, "y": 64, "flags": 1},
- {"matrix": [5, 12], "x": 180, "y": 64, "flags": 1},
- {"matrix": [5, 13], "x": 194, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 209, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_jis_86": {
"layout": [
diff --git a/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c
index a9468493d6..7a58d4deef 100644
--- a/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c
@@ -121,4 +121,37 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB6_CA2, CB4_CA2, CB5_CA2}, // Down
{1, CB6_CA1, CB4_CA1, CB5_CA1}, // Right
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { __, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 },
+ { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46 },
+ { 47, 48, 49, 50, 51, 52, 53, __, 54, 55, 56, 57, 58, 59, 60, 61 },
+ { 62, 63, __, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76 },
+ { 77, 78, 79, 80, 81, __, __, 82, 83, 84, __, __, __, 85, 86, 87 },
+ },
+ {
+ // LED Index to Physical Position
+ {19,0}, {34,0}, {46,0}, {60,1}, {72,3}, {87,6}, {99,8}, {120,8}, {132,6}, {147,3}, {159,1}, {173,0}, {185,0}, {201,1}, {219,1},
+ {5,14}, {24,14}, {36,14}, {48,13}, {62,15}, {74,17}, {86,20}, {98,22}, {115,22}, {127,20}, {139,17}, {151,15}, {165,13}, {177,14}, {195,14}, {220,13},
+ {4,24}, {24,24}, {40,24}, {53,24}, {65,27}, {77,29}, {89,31}, {112,33}, {124,31}, {136,29}, {148,27}, {160,24}, {174,24}, {186,24}, {201,24}, {222,25},
+ {2,34}, {23,34}, {40,34}, {54,35}, {66,37}, {78,39}, {90,42}, {118,43}, {130,40}, {142,38}, {154,36}, {167,35}, {179,35}, {199,35}, {224,36},
+ {0,45}, {24,45}, {44,45}, {57,46}, {69,48}, {81,51}, {93,53}, {111,54}, {123,52}, {135,50}, {147,48}, {159,46}, {173,45}, {190,45}, {210,47},
+ {0,55}, {18,55}, {33,55}, {56,57}, {77,61}, {97,64}, {124,63}, {147,59}, {198,58}, {210,58}, {222,58},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 1, 4, 1, 4, 1, 1, 1, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v10/ansi_encoder/keyboard.json b/keyboards/keychron/v10/ansi_encoder/keyboard.json
index 98a700ab2e..825fa65ef8 100644
--- a/keyboards/keychron/v10/ansi_encoder/keyboard.json
+++ b/keyboards/keychron/v10/ansi_encoder/keyboard.json
@@ -27,98 +27,6 @@
"encoder": true,
"dip_switch": true
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 1], "x": 19, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 34, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 46, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 60, "y": 1, "flags": 1},
- {"matrix": [0, 5], "x": 72, "y": 3, "flags": 1},
- {"matrix": [0, 6], "x": 87, "y": 6, "flags": 1},
- {"matrix": [0, 7], "x": 99, "y": 8, "flags": 1},
- {"matrix": [0, 8], "x": 120, "y": 8, "flags": 1},
- {"matrix": [0, 9], "x": 132, "y": 6, "flags": 1},
- {"matrix": [0, 10], "x": 147, "y": 3, "flags": 1},
- {"matrix": [0, 11], "x": 159, "y": 1, "flags": 1},
- {"matrix": [0, 12], "x": 173, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 185, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 201, "y": 1, "flags": 1},
- {"matrix": [0, 15], "x": 219, "y": 1, "flags": 1},
- {"matrix": [1, 0], "x": 5, "y": 14, "flags": 1},
- {"matrix": [1, 1], "x": 24, "y": 14, "flags": 1},
- {"matrix": [1, 2], "x": 36, "y": 14, "flags": 4},
- {"matrix": [1, 3], "x": 48, "y": 13, "flags": 4},
- {"matrix": [1, 4], "x": 62, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 74, "y": 17, "flags": 4},
- {"matrix": [1, 6], "x": 86, "y": 20, "flags": 4},
- {"matrix": [1, 7], "x": 98, "y": 22, "flags": 4},
- {"matrix": [1, 8], "x": 115, "y": 22, "flags": 4},
- {"matrix": [1, 9], "x": 127, "y": 20, "flags": 4},
- {"matrix": [1, 10], "x": 139, "y": 17, "flags": 4},
- {"matrix": [1, 11], "x": 151, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 165, "y": 13, "flags": 4},
- {"matrix": [1, 13], "x": 177, "y": 14, "flags": 4},
- {"matrix": [1, 14], "x": 195, "y": 14, "flags": 1},
- {"matrix": [1, 15], "x": 220, "y": 13, "flags": 1},
- {"matrix": [2, 0], "x": 4, "y": 24, "flags": 1},
- {"matrix": [2, 1], "x": 24, "y": 24, "flags": 1},
- {"matrix": [2, 2], "x": 40, "y": 24, "flags": 4},
- {"matrix": [2, 3], "x": 53, "y": 24, "flags": 4},
- {"matrix": [2, 4], "x": 65, "y": 27, "flags": 4},
- {"matrix": [2, 5], "x": 77, "y": 29, "flags": 4},
- {"matrix": [2, 6], "x": 89, "y": 31, "flags": 4},
- {"matrix": [2, 7], "x": 112, "y": 33, "flags": 4},
- {"matrix": [2, 8], "x": 124, "y": 31, "flags": 4},
- {"matrix": [2, 9], "x": 136, "y": 29, "flags": 4},
- {"matrix": [2, 10], "x": 148, "y": 27, "flags": 4},
- {"matrix": [2, 11], "x": 160, "y": 24, "flags": 4},
- {"matrix": [2, 12], "x": 174, "y": 24, "flags": 4},
- {"matrix": [2, 13], "x": 186, "y": 24, "flags": 4},
- {"matrix": [2, 14], "x": 201, "y": 24, "flags": 4},
- {"matrix": [2, 15], "x": 222, "y": 25, "flags": 1},
- {"matrix": [3, 0], "x": 2, "y": 34, "flags": 1},
- {"matrix": [3, 1], "x": 23, "y": 34, "flags": 8},
- {"matrix": [3, 2], "x": 40, "y": 34, "flags": 4},
- {"matrix": [3, 3], "x": 54, "y": 35, "flags": 4},
- {"matrix": [3, 4], "x": 66, "y": 37, "flags": 4},
- {"matrix": [3, 5], "x": 78, "y": 39, "flags": 4},
- {"matrix": [3, 6], "x": 90, "y": 42, "flags": 4},
- {"matrix": [3, 8], "x": 118, "y": 43, "flags": 4},
- {"matrix": [3, 9], "x": 130, "y": 40, "flags": 4},
- {"matrix": [3, 10], "x": 142, "y": 38, "flags": 4},
- {"matrix": [3, 11], "x": 154, "y": 36, "flags": 4},
- {"matrix": [3, 12], "x": 167, "y": 35, "flags": 4},
- {"matrix": [3, 13], "x": 179, "y": 35, "flags": 4},
- {"matrix": [3, 14], "x": 199, "y": 35, "flags": 1},
- {"matrix": [3, 15], "x": 224, "y": 36, "flags": 1},
- {"matrix": [4, 0], "x": 0, "y": 45, "flags": 1},
- {"matrix": [4, 1], "x": 24, "y": 45, "flags": 1},
- {"matrix": [4, 3], "x": 44, "y": 45, "flags": 4},
- {"matrix": [4, 4], "x": 57, "y": 46, "flags": 4},
- {"matrix": [4, 5], "x": 69, "y": 48, "flags": 4},
- {"matrix": [4, 6], "x": 81, "y": 51, "flags": 4},
- {"matrix": [4, 7], "x": 93, "y": 53, "flags": 4},
- {"matrix": [4, 8], "x": 111, "y": 54, "flags": 4},
- {"matrix": [4, 9], "x": 123, "y": 52, "flags": 4},
- {"matrix": [4, 10], "x": 135, "y": 50, "flags": 4},
- {"matrix": [4, 11], "x": 147, "y": 48, "flags": 4},
- {"matrix": [4, 12], "x": 159, "y": 46, "flags": 4},
- {"matrix": [4, 13], "x": 173, "y": 45, "flags": 4},
- {"matrix": [4, 14], "x": 190, "y": 45, "flags": 1},
- {"matrix": [4, 15], "x": 210, "y": 47, "flags": 1},
- {"matrix": [5, 0], "x": 0, "y": 55, "flags": 1},
- {"matrix": [5, 1], "x": 18, "y": 55, "flags": 1},
- {"matrix": [5, 2], "x": 33, "y": 55, "flags": 1},
- {"matrix": [5, 3], "x": 56, "y": 57, "flags": 1},
- {"matrix": [5, 4], "x": 77, "y": 61, "flags": 4},
- {"matrix": [5, 7], "x": 97, "y": 64, "flags": 1},
- {"matrix": [5, 8], "x": 124, "y": 63, "flags": 4},
- {"matrix": [5, 9], "x": 147, "y": 59, "flags": 1},
- {"matrix": [5, 13], "x": 198, "y": 58, "flags": 1},
- {"matrix": [5, 14], "x": 210, "y": 58, "flags": 1},
- {"matrix": [5, 15], "x": 222, "y": 58, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_ansi_89": {
"layout": [
diff --git a/keyboards/keychron/v10/iso_encoder/iso_encoder.c b/keyboards/keychron/v10/iso_encoder/iso_encoder.c
index 5092a283df..359646b542 100644
--- a/keyboards/keychron/v10/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/v10/iso_encoder/iso_encoder.c
@@ -122,4 +122,37 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB6_CA2, CB4_CA2, CB5_CA2}, // Down
{1, CB6_CA1, CB4_CA1, CB5_CA1}, // Right
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { __, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 },
+ { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 59, 45 },
+ { 46, 47, 48, 49, 50, 51, 52, __, 53, 54, 55, 56, 57, 58, 60, 61 },
+ { 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77 },
+ { 78, 79, 80, 81, 82, __, __, 83, 84, 85, __, __, __, 86, 87, 88 },
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {19,0}, {34,0}, {60,1}, {72,3}, {87,6}, {99,8}, {120,8}, {132,6}, {147,3}, {159,1}, {173,0}, {185,0}, {201,1}, {219,1},
+ {5,14}, {24,14}, {36,14}, {48,13}, {62,15}, {74,17}, {86,20}, {98,22}, {115,22}, {127,20}, {139,17}, {151,15}, {165,13}, {177,14}, {195,14}, {220,15},
+ {4,24}, {24,24}, {40,24}, {53,24}, {65,27}, {77,29}, {89,31}, {112,33}, {124,31}, {136,29}, {148,27}, {160,24}, {176,24}, {189,24}, {222,25},
+ {2,34}, {23,34}, {40,34}, {54,35}, {66,37}, {78,39}, {90,42}, {118,43}, {130,40}, {142,38}, {154,36}, {167,35}, {179,35}, {192,35}, {208,31}, {224,36},
+ {0,45}, {18,45}, {31,45}, {44,45}, {57,46}, {69,48}, {81,51}, {93,53}, {111,54}, {123,52}, {135,50}, {147,48}, {159,46}, {173,45}, {190,45}, {210,47},
+ {0,55}, {18,55}, {33,55}, {56,57}, {77,61}, {97,64}, {124,63}, {147,59}, {198,58}, {210,58}, {222,58},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 1, 4, 1, 4, 1, 1, 1, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v10/iso_encoder/keyboard.json b/keyboards/keychron/v10/iso_encoder/keyboard.json
index 7880fd6501..ea2dfb35e2 100644
--- a/keyboards/keychron/v10/iso_encoder/keyboard.json
+++ b/keyboards/keychron/v10/iso_encoder/keyboard.json
@@ -27,99 +27,6 @@
"encoder": true,
"dip_switch": true
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 1], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 19, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 34, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 60, "y": 1, "flags": 1},
- {"matrix": [0, 5], "x": 72, "y": 3, "flags": 1},
- {"matrix": [0, 6], "x": 87, "y": 6, "flags": 1},
- {"matrix": [0, 7], "x": 99, "y": 8, "flags": 1},
- {"matrix": [0, 8], "x": 120, "y": 8, "flags": 1},
- {"matrix": [0, 9], "x": 132, "y": 6, "flags": 1},
- {"matrix": [0, 10], "x": 147, "y": 3, "flags": 1},
- {"matrix": [0, 11], "x": 159, "y": 1, "flags": 1},
- {"matrix": [0, 12], "x": 173, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 185, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 201, "y": 1, "flags": 1},
- {"matrix": [0, 15], "x": 219, "y": 1, "flags": 1},
- {"matrix": [1, 0], "x": 5, "y": 14, "flags": 1},
- {"matrix": [1, 1], "x": 24, "y": 14, "flags": 1},
- {"matrix": [1, 2], "x": 36, "y": 14, "flags": 4},
- {"matrix": [1, 3], "x": 48, "y": 13, "flags": 4},
- {"matrix": [1, 4], "x": 62, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 74, "y": 17, "flags": 4},
- {"matrix": [1, 6], "x": 86, "y": 20, "flags": 4},
- {"matrix": [1, 7], "x": 98, "y": 22, "flags": 4},
- {"matrix": [1, 8], "x": 115, "y": 22, "flags": 4},
- {"matrix": [1, 9], "x": 127, "y": 20, "flags": 4},
- {"matrix": [1, 10], "x": 139, "y": 17, "flags": 4},
- {"matrix": [1, 11], "x": 151, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 165, "y": 13, "flags": 4},
- {"matrix": [1, 13], "x": 177, "y": 14, "flags": 4},
- {"matrix": [1, 14], "x": 195, "y": 14, "flags": 1},
- {"matrix": [1, 15], "x": 220, "y": 15, "flags": 1},
- {"matrix": [2, 0], "x": 4, "y": 24, "flags": 1},
- {"matrix": [2, 1], "x": 24, "y": 24, "flags": 1},
- {"matrix": [2, 2], "x": 40, "y": 24, "flags": 4},
- {"matrix": [2, 3], "x": 53, "y": 24, "flags": 4},
- {"matrix": [2, 4], "x": 65, "y": 27, "flags": 4},
- {"matrix": [2, 5], "x": 77, "y": 29, "flags": 4},
- {"matrix": [2, 6], "x": 89, "y": 31, "flags": 4},
- {"matrix": [2, 7], "x": 112, "y": 33, "flags": 4},
- {"matrix": [2, 8], "x": 124, "y": 31, "flags": 4},
- {"matrix": [2, 9], "x": 136, "y": 29, "flags": 4},
- {"matrix": [2, 10], "x": 148, "y": 27, "flags": 4},
- {"matrix": [2, 11], "x": 160, "y": 24, "flags": 4},
- {"matrix": [2, 12], "x": 176, "y": 24, "flags": 4},
- {"matrix": [2, 13], "x": 189, "y": 24, "flags": 4},
- {"matrix": [2, 15], "x": 222, "y": 25, "flags": 1},
- {"matrix": [3, 0], "x": 2, "y": 34, "flags": 1},
- {"matrix": [3, 1], "x": 23, "y": 34, "flags": 8},
- {"matrix": [3, 2], "x": 40, "y": 34, "flags": 4},
- {"matrix": [3, 3], "x": 54, "y": 35, "flags": 4},
- {"matrix": [3, 4], "x": 66, "y": 37, "flags": 4},
- {"matrix": [3, 5], "x": 78, "y": 39, "flags": 4},
- {"matrix": [3, 6], "x": 90, "y": 42, "flags": 4},
- {"matrix": [3, 8], "x": 118, "y": 43, "flags": 4},
- {"matrix": [3, 9], "x": 130, "y": 40, "flags": 4},
- {"matrix": [3, 10], "x": 142, "y": 38, "flags": 4},
- {"matrix": [3, 11], "x": 154, "y": 36, "flags": 4},
- {"matrix": [3, 12], "x": 167, "y": 35, "flags": 4},
- {"matrix": [3, 13], "x": 179, "y": 35, "flags": 4},
- {"matrix": [2, 14], "x": 192, "y": 35, "flags": 4},
- {"matrix": [3, 14], "x": 208, "y": 31, "flags": 1},
- {"matrix": [3, 15], "x": 224, "y": 36, "flags": 1},
- {"matrix": [4, 0], "x": 0, "y": 45, "flags": 1},
- {"matrix": [4, 1], "x": 18, "y": 45, "flags": 1},
- {"matrix": [4, 2], "x": 31, "y": 45, "flags": 4},
- {"matrix": [4, 3], "x": 44, "y": 45, "flags": 4},
- {"matrix": [4, 4], "x": 57, "y": 46, "flags": 4},
- {"matrix": [4, 5], "x": 69, "y": 48, "flags": 4},
- {"matrix": [4, 6], "x": 81, "y": 51, "flags": 4},
- {"matrix": [4, 7], "x": 93, "y": 53, "flags": 4},
- {"matrix": [4, 8], "x": 111, "y": 54, "flags": 4},
- {"matrix": [4, 9], "x": 123, "y": 52, "flags": 4},
- {"matrix": [4, 10], "x": 135, "y": 50, "flags": 4},
- {"matrix": [4, 11], "x": 147, "y": 48, "flags": 4},
- {"matrix": [4, 12], "x": 159, "y": 46, "flags": 4},
- {"matrix": [4, 13], "x": 173, "y": 45, "flags": 4},
- {"matrix": [4, 14], "x": 190, "y": 45, "flags": 1},
- {"matrix": [4, 15], "x": 210, "y": 47, "flags": 1},
- {"matrix": [5, 0], "x": 0, "y": 55, "flags": 1},
- {"matrix": [5, 1], "x": 18, "y": 55, "flags": 1},
- {"matrix": [5, 2], "x": 33, "y": 55, "flags": 1},
- {"matrix": [5, 3], "x": 56, "y": 57, "flags": 1},
- {"matrix": [5, 4], "x": 77, "y": 61, "flags": 4},
- {"matrix": [5, 7], "x": 97, "y": 64, "flags": 1},
- {"matrix": [5, 8], "x": 124, "y": 63, "flags": 4},
- {"matrix": [5, 9], "x": 147, "y": 59, "flags": 1},
- {"matrix": [5, 13], "x": 198, "y": 58, "flags": 1},
- {"matrix": [5, 14], "x": 210, "y": 58, "flags": 1},
- {"matrix": [5, 15], "x": 222, "y": 58, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_iso_90": {
"layout": [
diff --git a/keyboards/keychron/v2/ansi/ansi.c b/keyboards/keychron/v2/ansi/ansi.c
index ea92662c59..722aa27b47 100644
--- a/keyboards/keychron/v2/ansi/ansi.c
+++ b/keyboards/keychron/v2/ansi/ansi.c
@@ -99,4 +99,34 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB6_CA15, CB4_CA15, CB5_CA15},
{1, CB6_CA16, CB4_CA16, CB5_CA16},
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 65, 42, 43 },
+ { 44, __, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, __, 55, 56 },
+ { 57, 58, 59, __, __, __, 60, __, __, __, 61, 62, 63, 64, 66 }
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {15,0}, {29,0}, {44,0}, {59,0}, {73,0}, {88,0}, {103,0}, {118,0}, {132,0}, {147,0}, {162,0}, {176,0}, {198,0}, {224,0}, // {244,-4}
+ {4,15}, {22,15}, {37,15}, {51,15}, {66,15}, {81,15}, {95,15}, {110,15}, {125,15}, {140,15}, {154,15}, {169,15}, {184,15}, {202,15}, {224,15},
+ {6,30}, {26,30}, {40,30}, {55,30}, {70,30}, {84,30}, {99,30}, {114,30}, {129,30}, {143,30}, {158,30}, {173,30}, {196,30}, {224,30},
+ {9,45}, {33,45}, {48,45}, {62,45}, {77,45}, {92,45}, {106,45}, {121,45}, {136,45}, {151,45}, {165,45}, {185,45}, {209,49},
+ {2,60}, {20,60}, {39,60}, {94,60}, {147,60}, {162,60}, {176,60}, {195,64}, {209,64}, {224,64}
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v2/ansi/keyboard.json b/keyboards/keychron/v2/ansi/keyboard.json
index 962bcaee98..bc09cb8a27 100644
--- a/keyboards/keychron/v2/ansi/keyboard.json
+++ b/keyboards/keychron/v2/ansi/keyboard.json
@@ -23,77 +23,6 @@
"diode_direction": "ROW2COL",
"processor": "STM32L432",
"bootloader": "stm32-dfu",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 29, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 44, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 59, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 73, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 88, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 103, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 118, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 132, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 147, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 162, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 198, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 22, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 37, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 51, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 66, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 81, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 95, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 110, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 125, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 140, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 154, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 169, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 184, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 202, "y": 15, "flags": 1},
- {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1},
- {"matrix": [2, 0], "x": 6, "y": 30, "flags": 8},
- {"matrix": [2, 1], "x": 26, "y": 30, "flags": 4},
- {"matrix": [2, 2], "x": 40, "y": 30, "flags": 4},
- {"matrix": [2, 3], "x": 55, "y": 30, "flags": 4},
- {"matrix": [2, 4], "x": 70, "y": 30, "flags": 4},
- {"matrix": [2, 5], "x": 84, "y": 30, "flags": 4},
- {"matrix": [2, 6], "x": 99, "y": 30, "flags": 4},
- {"matrix": [2, 7], "x": 114, "y": 30, "flags": 4},
- {"matrix": [2, 8], "x": 129, "y": 30, "flags": 4},
- {"matrix": [2, 9], "x": 143, "y": 30, "flags": 4},
- {"matrix": [2, 10], "x": 158, "y": 30, "flags": 4},
- {"matrix": [2, 11], "x": 173, "y": 30, "flags": 4},
- {"matrix": [2, 13], "x": 196, "y": 30, "flags": 1},
- {"matrix": [2, 14], "x": 224, "y": 30, "flags": 1},
- {"matrix": [3, 0], "x": 9, "y": 45, "flags": 1},
- {"matrix": [3, 2], "x": 33, "y": 45, "flags": 4},
- {"matrix": [3, 3], "x": 48, "y": 45, "flags": 4},
- {"matrix": [3, 4], "x": 62, "y": 45, "flags": 4},
- {"matrix": [3, 5], "x": 77, "y": 45, "flags": 4},
- {"matrix": [3, 6], "x": 92, "y": 45, "flags": 4},
- {"matrix": [3, 7], "x": 106, "y": 45, "flags": 4},
- {"matrix": [3, 8], "x": 121, "y": 45, "flags": 4},
- {"matrix": [3, 9], "x": 136, "y": 45, "flags": 4},
- {"matrix": [3, 10], "x": 151, "y": 45, "flags": 4},
- {"matrix": [3, 11], "x": 165, "y": 45, "flags": 4},
- {"matrix": [3, 13], "x": 185, "y": 45, "flags": 1},
- {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 60, "flags": 1},
- {"matrix": [4, 1], "x": 20, "y": 60, "flags": 1},
- {"matrix": [4, 2], "x": 39, "y": 60, "flags": 1},
- {"matrix": [4, 6], "x": 94, "y": 60, "flags": 4},
- {"matrix": [4, 10], "x": 147, "y": 60, "flags": 1},
- {"matrix": [4, 11], "x": 162, "y": 60, "flags": 1},
- {"matrix": [4, 12], "x": 176, "y": 60, "flags": 1},
- {"matrix": [4, 13], "x": 195, "y": 64, "flags": 1},
- {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_ansi_67": {
"layout": [
diff --git a/keyboards/keychron/v2/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v2/ansi_encoder/ansi_encoder.c
index ea92662c59..6203483285 100644
--- a/keyboards/keychron/v2/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/v2/ansi_encoder/ansi_encoder.c
@@ -99,4 +99,34 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB6_CA15, CB4_CA15, CB5_CA15},
{1, CB6_CA16, CB4_CA16, CB5_CA16},
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 65, 42, 43 },
+ { 44, __, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, __, 55, 56 },
+ { 57, 58, 59, __, __, __, 60, __, __, __, 61, 62, 63, 64, 66 }
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {15,0}, {29,0}, {44,0}, {59,0}, {73,0}, {88,0}, {103,0}, {118,0}, {132,0}, {147,0}, {162,0}, {176,0}, {198,0}, {224,0}, // {244,-4}
+ {4,15}, {22,15}, {37,15}, {51,15}, {66,15}, {81,15}, {95,15}, {110,15}, {125,15}, {140,15}, {154,15}, {169,15}, {184,15}, {202,15}, {224,15},
+ {6,30}, {26,30}, {40,30}, {55,30}, {70,30}, {84,30}, {99,30}, {114,30}, {129,30}, {143,30}, {158,30}, {173,30}, {196,30}, {224,30},
+ {9,45}, {33,45}, {48,45}, {62,45}, {77,45}, {92,45}, {106,45}, {121,45}, {136,45}, {151,45}, {165,45}, {185,45}, {209,49},
+ {2,60}, {20,60}, {39,60}, {94,60}, {147,60}, {162,60}, {176,60}, {195,64}, {209,64}, {224,64}
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v2/ansi_encoder/keyboard.json b/keyboards/keychron/v2/ansi_encoder/keyboard.json
index 42b6814781..6752d14b15 100644
--- a/keyboards/keychron/v2/ansi_encoder/keyboard.json
+++ b/keyboards/keychron/v2/ansi_encoder/keyboard.json
@@ -29,77 +29,6 @@
},
"processor": "STM32L432",
"bootloader": "stm32-dfu",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 29, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 44, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 59, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 73, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 88, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 103, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 118, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 132, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 147, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 162, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 198, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 22, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 37, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 51, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 66, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 81, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 95, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 110, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 125, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 140, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 154, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 169, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 184, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 202, "y": 15, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1},
- {"matrix": [2, 0], "x": 6, "y": 30, "flags": 8},
- {"matrix": [2, 1], "x": 26, "y": 30, "flags": 4},
- {"matrix": [2, 2], "x": 40, "y": 30, "flags": 4},
- {"matrix": [2, 3], "x": 55, "y": 30, "flags": 4},
- {"matrix": [2, 4], "x": 70, "y": 30, "flags": 4},
- {"matrix": [2, 5], "x": 84, "y": 30, "flags": 4},
- {"matrix": [2, 6], "x": 99, "y": 30, "flags": 4},
- {"matrix": [2, 7], "x": 114, "y": 30, "flags": 4},
- {"matrix": [2, 8], "x": 129, "y": 30, "flags": 4},
- {"matrix": [2, 9], "x": 143, "y": 30, "flags": 4},
- {"matrix": [2, 10], "x": 158, "y": 30, "flags": 4},
- {"matrix": [2, 11], "x": 173, "y": 30, "flags": 4},
- {"matrix": [2, 13], "x": 196, "y": 30, "flags": 1},
- {"matrix": [2, 14], "x": 224, "y": 30, "flags": 1},
- {"matrix": [3, 0], "x": 9, "y": 45, "flags": 1},
- {"matrix": [3, 2], "x": 33, "y": 45, "flags": 4},
- {"matrix": [3, 3], "x": 48, "y": 45, "flags": 4},
- {"matrix": [3, 4], "x": 62, "y": 45, "flags": 4},
- {"matrix": [3, 5], "x": 77, "y": 45, "flags": 4},
- {"matrix": [3, 6], "x": 92, "y": 45, "flags": 4},
- {"matrix": [3, 7], "x": 106, "y": 45, "flags": 4},
- {"matrix": [3, 8], "x": 121, "y": 45, "flags": 4},
- {"matrix": [3, 9], "x": 136, "y": 45, "flags": 4},
- {"matrix": [3, 10], "x": 151, "y": 45, "flags": 4},
- {"matrix": [3, 11], "x": 165, "y": 45, "flags": 4},
- {"matrix": [3, 13], "x": 185, "y": 45, "flags": 1},
- {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 60, "flags": 1},
- {"matrix": [4, 1], "x": 20, "y": 60, "flags": 1},
- {"matrix": [4, 2], "x": 39, "y": 60, "flags": 1},
- {"matrix": [4, 6], "x": 94, "y": 60, "flags": 4},
- {"matrix": [4, 10], "x": 147, "y": 60, "flags": 1},
- {"matrix": [4, 11], "x": 162, "y": 60, "flags": 1},
- {"matrix": [4, 12], "x": 176, "y": 60, "flags": 1},
- {"matrix": [4, 13], "x": 195, "y": 64, "flags": 1},
- {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_ansi_67": {
"layout": [
diff --git a/keyboards/keychron/v2/iso/iso.c b/keyboards/keychron/v2/iso/iso.c
index b5a5193892..aca0879838 100644
--- a/keyboards/keychron/v2/iso/iso.c
+++ b/keyboards/keychron/v2/iso/iso.c
@@ -100,4 +100,34 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB6_CA15, CB4_CA15, CB5_CA15},
{1, CB6_CA16, CB4_CA16, CB5_CA16}
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 42, 28 },
+ { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 66, 41, 43 },
+ { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, __, 56, 57 },
+ { 58, 59, 60, __, __, __, 61, __, __, __, 62, 63, 64, 65, 67 }
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {15,0}, {29,0}, {44,0}, {59,0}, {73,0}, {88,0}, {103,0}, {118,0}, {132,0}, {147,0}, {162,0}, {176,0}, {198,0}, {224,0},
+ {4,15}, {22,15}, {37,15}, {51,15}, {66,15}, {81,15}, {95,15}, {110,15}, {125,15}, {140,15}, {154,15}, {169,15}, {184,15}, {224,15},
+ {6,30}, {26,30}, {40,30}, {55,30}, {70,30}, {84,30}, {99,30}, {114,30}, {129,30}, {143,30}, {158,30}, {173,30}, {187,30}, {204,23}, {224,30},
+ {2,45}, {18,45}, {33,45}, {48,45}, {62,45}, {77,45}, {92,45}, {106,45}, {121,45}, {136,45}, {151,45}, {165,45}, {185,45}, {209,49},
+ {2,60}, {20,60}, {39,60}, {94,60}, {147,60}, {162,60}, {176,60}, {195,64}, {209,64}, {224,64}
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v2/iso/keyboard.json b/keyboards/keychron/v2/iso/keyboard.json
index f430c50270..89bdb51a65 100644
--- a/keyboards/keychron/v2/iso/keyboard.json
+++ b/keyboards/keychron/v2/iso/keyboard.json
@@ -23,78 +23,6 @@
"diode_direction": "ROW2COL",
"processor": "STM32L432",
"bootloader": "stm32-dfu",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 29, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 44, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 59, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 73, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 88, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 103, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 118, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 132, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 147, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 162, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 198, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 22, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 37, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 51, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 66, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 81, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 95, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 110, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 125, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 140, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 154, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 169, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 184, "y": 15, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1},
- {"matrix": [2, 0], "x": 6, "y": 30, "flags": 8},
- {"matrix": [2, 1], "x": 26, "y": 30, "flags": 4},
- {"matrix": [2, 2], "x": 40, "y": 30, "flags": 4},
- {"matrix": [2, 3], "x": 55, "y": 30, "flags": 4},
- {"matrix": [2, 4], "x": 70, "y": 30, "flags": 4},
- {"matrix": [2, 5], "x": 84, "y": 30, "flags": 4},
- {"matrix": [2, 6], "x": 99, "y": 30, "flags": 4},
- {"matrix": [2, 7], "x": 114, "y": 30, "flags": 4},
- {"matrix": [2, 8], "x": 129, "y": 30, "flags": 4},
- {"matrix": [2, 9], "x": 143, "y": 30, "flags": 4},
- {"matrix": [2, 10], "x": 158, "y": 30, "flags": 4},
- {"matrix": [2, 11], "x": 173, "y": 30, "flags": 4},
- {"matrix": [2, 13], "x": 187, "y": 30, "flags": 4},
- {"matrix": [1, 13], "x": 204, "y": 23, "flags": 1},
- {"matrix": [2, 14], "x": 224, "y": 30, "flags": 1},
- {"matrix": [3, 0], "x": 2, "y": 45, "flags": 1},
- {"matrix": [3, 1], "x": 18, "y": 45, "flags": 4},
- {"matrix": [3, 2], "x": 33, "y": 45, "flags": 4},
- {"matrix": [3, 3], "x": 48, "y": 45, "flags": 4},
- {"matrix": [3, 4], "x": 62, "y": 45, "flags": 4},
- {"matrix": [3, 5], "x": 77, "y": 45, "flags": 4},
- {"matrix": [3, 6], "x": 92, "y": 45, "flags": 4},
- {"matrix": [3, 7], "x": 106, "y": 45, "flags": 4},
- {"matrix": [3, 8], "x": 121, "y": 45, "flags": 4},
- {"matrix": [3, 9], "x": 136, "y": 45, "flags": 4},
- {"matrix": [3, 10], "x": 151, "y": 45, "flags": 4},
- {"matrix": [3, 11], "x": 165, "y": 45, "flags": 4},
- {"matrix": [3, 13], "x": 185, "y": 45, "flags": 1},
- {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 60, "flags": 1},
- {"matrix": [4, 1], "x": 20, "y": 60, "flags": 1},
- {"matrix": [4, 2], "x": 39, "y": 60, "flags": 1},
- {"matrix": [4, 6], "x": 94, "y": 60, "flags": 4},
- {"matrix": [4, 10], "x": 147, "y": 60, "flags": 1},
- {"matrix": [4, 11], "x": 162, "y": 60, "flags": 1},
- {"matrix": [4, 12], "x": 176, "y": 60, "flags": 1},
- {"matrix": [4, 13], "x": 195, "y": 64, "flags": 1},
- {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_iso_68": {
"layout": [
diff --git a/keyboards/keychron/v2/iso_encoder/iso_encoder.c b/keyboards/keychron/v2/iso_encoder/iso_encoder.c
index 5911f9d9c1..aca0879838 100644
--- a/keyboards/keychron/v2/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/v2/iso_encoder/iso_encoder.c
@@ -101,4 +101,33 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB6_CA16, CB4_CA16, CB5_CA16}
};
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 42, 28 },
+ { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 66, 41, 43 },
+ { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, __, 56, 57 },
+ { 58, 59, 60, __, __, __, 61, __, __, __, 62, 63, 64, 65, 67 }
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {15,0}, {29,0}, {44,0}, {59,0}, {73,0}, {88,0}, {103,0}, {118,0}, {132,0}, {147,0}, {162,0}, {176,0}, {198,0}, {224,0},
+ {4,15}, {22,15}, {37,15}, {51,15}, {66,15}, {81,15}, {95,15}, {110,15}, {125,15}, {140,15}, {154,15}, {169,15}, {184,15}, {224,15},
+ {6,30}, {26,30}, {40,30}, {55,30}, {70,30}, {84,30}, {99,30}, {114,30}, {129,30}, {143,30}, {158,30}, {173,30}, {187,30}, {204,23}, {224,30},
+ {2,45}, {18,45}, {33,45}, {48,45}, {62,45}, {77,45}, {92,45}, {106,45}, {121,45}, {136,45}, {151,45}, {165,45}, {185,45}, {209,49},
+ {2,60}, {20,60}, {39,60}, {94,60}, {147,60}, {162,60}, {176,60}, {195,64}, {209,64}, {224,64}
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v2/iso_encoder/keyboard.json b/keyboards/keychron/v2/iso_encoder/keyboard.json
index 4dd36fdda4..89ce2714f1 100644
--- a/keyboards/keychron/v2/iso_encoder/keyboard.json
+++ b/keyboards/keychron/v2/iso_encoder/keyboard.json
@@ -29,78 +29,6 @@
},
"processor": "STM32L432",
"bootloader": "stm32-dfu",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 29, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 44, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 59, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 73, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 88, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 103, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 118, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 132, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 147, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 162, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 198, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 22, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 37, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 51, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 66, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 81, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 95, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 110, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 125, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 140, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 154, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 169, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 184, "y": 15, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1},
- {"matrix": [2, 0], "x": 6, "y": 30, "flags": 8},
- {"matrix": [2, 1], "x": 26, "y": 30, "flags": 4},
- {"matrix": [2, 2], "x": 40, "y": 30, "flags": 4},
- {"matrix": [2, 3], "x": 55, "y": 30, "flags": 4},
- {"matrix": [2, 4], "x": 70, "y": 30, "flags": 4},
- {"matrix": [2, 5], "x": 84, "y": 30, "flags": 4},
- {"matrix": [2, 6], "x": 99, "y": 30, "flags": 4},
- {"matrix": [2, 7], "x": 114, "y": 30, "flags": 4},
- {"matrix": [2, 8], "x": 129, "y": 30, "flags": 4},
- {"matrix": [2, 9], "x": 143, "y": 30, "flags": 4},
- {"matrix": [2, 10], "x": 158, "y": 30, "flags": 4},
- {"matrix": [2, 11], "x": 173, "y": 30, "flags": 4},
- {"matrix": [2, 13], "x": 187, "y": 30, "flags": 4},
- {"matrix": [1, 13], "x": 204, "y": 23, "flags": 1},
- {"matrix": [2, 14], "x": 224, "y": 30, "flags": 1},
- {"matrix": [3, 0], "x": 2, "y": 45, "flags": 1},
- {"matrix": [3, 1], "x": 18, "y": 45, "flags": 4},
- {"matrix": [3, 2], "x": 33, "y": 45, "flags": 4},
- {"matrix": [3, 3], "x": 48, "y": 45, "flags": 4},
- {"matrix": [3, 4], "x": 62, "y": 45, "flags": 4},
- {"matrix": [3, 5], "x": 77, "y": 45, "flags": 4},
- {"matrix": [3, 6], "x": 92, "y": 45, "flags": 4},
- {"matrix": [3, 7], "x": 106, "y": 45, "flags": 4},
- {"matrix": [3, 8], "x": 121, "y": 45, "flags": 4},
- {"matrix": [3, 9], "x": 136, "y": 45, "flags": 4},
- {"matrix": [3, 10], "x": 151, "y": 45, "flags": 4},
- {"matrix": [3, 11], "x": 165, "y": 45, "flags": 4},
- {"matrix": [3, 13], "x": 185, "y": 45, "flags": 1},
- {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 60, "flags": 1},
- {"matrix": [4, 1], "x": 20, "y": 60, "flags": 1},
- {"matrix": [4, 2], "x": 39, "y": 60, "flags": 1},
- {"matrix": [4, 6], "x": 94, "y": 60, "flags": 4},
- {"matrix": [4, 10], "x": 147, "y": 60, "flags": 1},
- {"matrix": [4, 11], "x": 162, "y": 60, "flags": 1},
- {"matrix": [4, 12], "x": 176, "y": 60, "flags": 1},
- {"matrix": [4, 13], "x": 195, "y": 64, "flags": 1},
- {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_iso_68": {
"layout": [
diff --git a/keyboards/keychron/v2/jis/jis.c b/keyboards/keychron/v2/jis/jis.c
index 1664a5f703..1269d9b1e6 100644
--- a/keyboards/keychron/v2/jis/jis.c
+++ b/keyboards/keychron/v2/jis/jis.c
@@ -101,4 +101,34 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB6_CA15, CB4_CA15, CB5_CA15},
{1, CB6_CA16, CB4_CA16, CB5_CA16}
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15 },
+ { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 43, 29 },
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 69, 42, 44 },
+ { 45, 14, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 },
+ { 59, 60, 61, 62, __, __, 63, __, __, 64, 65, 66, 67, 68, 70 }
+ },
+ {
+ // LED Index to Physical Position
+ {0,4}, {15,4}, {29,4}, {44,4}, {59,4}, {73,4}, {88,4}, {103,4}, {117,4}, {132,4}, {146,4}, {161,4}, {176,4}, {190,4}, {205,4}, {224,0},
+ {4,19}, {22,19}, {37,19}, {51,19}, {66,19}, {81,19}, {95,19}, {110,19}, {125,19}, {139,19}, {154,19}, {168,19}, {183,19}, {224,19},
+ {6,34}, {26,34}, {40,34}, {55,34}, {70,34}, {84,34}, {99,34}, {114,34}, {128,34}, {143,34}, {158,34}, {172,34}, {187,34}, {207,29}, {224,34},
+ {9,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {150,49}, {165,49}, {179,49}, {194,49}, {209,49},
+ {2,64}, {18,64}, {35,64}, {51,64}, {92,64}, {134,64}, {150,64}, {165,64}, {179,64}, {194,64}, {209,64}, {223,64},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v2/jis/keyboard.json b/keyboards/keychron/v2/jis/keyboard.json
index 96b19c7372..01beaf31ac 100644
--- a/keyboards/keychron/v2/jis/keyboard.json
+++ b/keyboards/keychron/v2/jis/keyboard.json
@@ -23,81 +23,6 @@
"diode_direction": "ROW2COL",
"processor": "STM32L432",
"bootloader": "stm32-dfu",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 4, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 4, "flags": 4},
- {"matrix": [0, 2], "x": 29, "y": 4, "flags": 4},
- {"matrix": [0, 3], "x": 44, "y": 4, "flags": 4},
- {"matrix": [0, 4], "x": 59, "y": 4, "flags": 4},
- {"matrix": [0, 5], "x": 73, "y": 4, "flags": 4},
- {"matrix": [0, 6], "x": 88, "y": 4, "flags": 4},
- {"matrix": [0, 7], "x": 103, "y": 4, "flags": 4},
- {"matrix": [0, 8], "x": 117, "y": 4, "flags": 4},
- {"matrix": [0, 9], "x": 132, "y": 4, "flags": 4},
- {"matrix": [0, 10], "x": 146, "y": 4, "flags": 4},
- {"matrix": [0, 11], "x": 161, "y": 4, "flags": 4},
- {"matrix": [0, 12], "x": 176, "y": 4, "flags": 4},
- {"matrix": [0, 13], "x": 190, "y": 4, "flags": 4},
- {"matrix": [3, 1], "x": 205, "y": 4, "flags": 1},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 19, "flags": 1},
- {"matrix": [1, 1], "x": 22, "y": 19, "flags": 4},
- {"matrix": [1, 2], "x": 37, "y": 19, "flags": 4},
- {"matrix": [1, 3], "x": 51, "y": 19, "flags": 4},
- {"matrix": [1, 4], "x": 66, "y": 19, "flags": 4},
- {"matrix": [1, 5], "x": 81, "y": 19, "flags": 4},
- {"matrix": [1, 6], "x": 95, "y": 19, "flags": 4},
- {"matrix": [1, 7], "x": 110, "y": 19, "flags": 4},
- {"matrix": [1, 8], "x": 125, "y": 19, "flags": 4},
- {"matrix": [1, 9], "x": 139, "y": 19, "flags": 4},
- {"matrix": [1, 10], "x": 154, "y": 19, "flags": 4},
- {"matrix": [1, 11], "x": 168, "y": 19, "flags": 4},
- {"matrix": [1, 12], "x": 183, "y": 19, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 19, "flags": 1},
- {"matrix": [2, 0], "x": 6, "y": 34, "flags": 8},
- {"matrix": [2, 1], "x": 26, "y": 34, "flags": 4},
- {"matrix": [2, 2], "x": 40, "y": 34, "flags": 4},
- {"matrix": [2, 3], "x": 55, "y": 34, "flags": 4},
- {"matrix": [2, 4], "x": 70, "y": 34, "flags": 4},
- {"matrix": [2, 5], "x": 84, "y": 34, "flags": 4},
- {"matrix": [2, 6], "x": 99, "y": 34, "flags": 4},
- {"matrix": [2, 7], "x": 114, "y": 34, "flags": 4},
- {"matrix": [2, 8], "x": 128, "y": 34, "flags": 4},
- {"matrix": [2, 9], "x": 143, "y": 34, "flags": 4},
- {"matrix": [2, 10], "x": 158, "y": 34, "flags": 4},
- {"matrix": [2, 11], "x": 172, "y": 34, "flags": 4},
- {"matrix": [2, 13], "x": 187, "y": 34, "flags": 4},
- {"matrix": [1, 13], "x": 207, "y": 29, "flags": 1},
- {"matrix": [2, 14], "x": 224, "y": 34, "flags": 1},
- {"matrix": [3, 0], "x": 9, "y": 49, "flags": 1},
- {"matrix": [3, 2], "x": 33, "y": 49, "flags": 4},
- {"matrix": [3, 3], "x": 48, "y": 49, "flags": 4},
- {"matrix": [3, 4], "x": 62, "y": 49, "flags": 4},
- {"matrix": [3, 5], "x": 77, "y": 49, "flags": 4},
- {"matrix": [3, 6], "x": 92, "y": 49, "flags": 4},
- {"matrix": [3, 7], "x": 106, "y": 49, "flags": 4},
- {"matrix": [3, 8], "x": 121, "y": 49, "flags": 4},
- {"matrix": [3, 9], "x": 136, "y": 49, "flags": 4},
- {"matrix": [3, 10], "x": 150, "y": 49, "flags": 4},
- {"matrix": [3, 11], "x": 165, "y": 49, "flags": 4},
- {"matrix": [3, 12], "x": 179, "y": 49, "flags": 4},
- {"matrix": [3, 13], "x": 194, "y": 49, "flags": 1},
- {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 18, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 35, "y": 64, "flags": 1},
- {"matrix": [4, 3], "x": 51, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 92, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 134, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 150, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 165, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 179, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 194, "y": 64, "flags": 1},
- {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 223, "y": 64, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_jis_71": {
"layout": [
diff --git a/keyboards/keychron/v2/jis_encoder/jis_encoder.c b/keyboards/keychron/v2/jis_encoder/jis_encoder.c
index 1664a5f703..85aaf165f6 100644
--- a/keyboards/keychron/v2/jis_encoder/jis_encoder.c
+++ b/keyboards/keychron/v2/jis_encoder/jis_encoder.c
@@ -101,4 +101,34 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB6_CA15, CB4_CA15, CB5_CA15},
{1, CB6_CA16, CB4_CA16, CB5_CA16}
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15 },
+ { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 43, 29 },
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 69, 42, 44 },
+ { 45, 14, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 },
+ { 59, 60, 61, 62, __, __, 63, __, __, 64, 65, 66, 67, 68, 70 },
+ },
+ {
+ // LED Index to Physical Position
+ {0,4}, {15,4}, {29,4}, {44,4}, {59,4}, {73,4}, {88,4}, {103,4}, {117,4}, {132,4}, {146,4}, {161,4}, {176,4}, {190,4}, {205,4}, {224,0},
+ {4,19}, {22,19}, {37,19}, {51,19}, {66,19}, {81,19}, {95,19}, {110,19}, {125,19}, {139,19}, {154,19}, {168,19}, {183,19}, {224,19},
+ {6,34}, {26,34}, {40,34}, {55,34}, {70,34}, {84,34}, {99,34}, {114,34}, {128,34}, {143,34}, {158,34}, {172,34}, {187,34}, {207,29}, {224,34},
+ {9,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {150,49}, {165,49}, {179,49}, {194,49}, {209,49},
+ {2,64}, {18,64}, {35,64}, {51,64}, {92,64}, {134,64}, {150,64}, {165,64}, {179,64}, {194,64}, {209,64}, {223,64},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v2/jis_encoder/keyboard.json b/keyboards/keychron/v2/jis_encoder/keyboard.json
index 105b5b6724..d8a540953c 100644
--- a/keyboards/keychron/v2/jis_encoder/keyboard.json
+++ b/keyboards/keychron/v2/jis_encoder/keyboard.json
@@ -29,81 +29,6 @@
},
"processor": "STM32L432",
"bootloader": "stm32-dfu",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 4, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 4, "flags": 4},
- {"matrix": [0, 2], "x": 29, "y": 4, "flags": 4},
- {"matrix": [0, 3], "x": 44, "y": 4, "flags": 4},
- {"matrix": [0, 4], "x": 59, "y": 4, "flags": 4},
- {"matrix": [0, 5], "x": 73, "y": 4, "flags": 4},
- {"matrix": [0, 6], "x": 88, "y": 4, "flags": 4},
- {"matrix": [0, 7], "x": 103, "y": 4, "flags": 4},
- {"matrix": [0, 8], "x": 117, "y": 4, "flags": 4},
- {"matrix": [0, 9], "x": 132, "y": 4, "flags": 4},
- {"matrix": [0, 10], "x": 146, "y": 4, "flags": 4},
- {"matrix": [0, 11], "x": 161, "y": 4, "flags": 4},
- {"matrix": [0, 12], "x": 176, "y": 4, "flags": 4},
- {"matrix": [0, 13], "x": 190, "y": 4, "flags": 4},
- {"matrix": [3, 1], "x": 205, "y": 4, "flags": 1},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 19, "flags": 1},
- {"matrix": [1, 1], "x": 22, "y": 19, "flags": 4},
- {"matrix": [1, 2], "x": 37, "y": 19, "flags": 4},
- {"matrix": [1, 3], "x": 51, "y": 19, "flags": 4},
- {"matrix": [1, 4], "x": 66, "y": 19, "flags": 4},
- {"matrix": [1, 5], "x": 81, "y": 19, "flags": 4},
- {"matrix": [1, 6], "x": 95, "y": 19, "flags": 4},
- {"matrix": [1, 7], "x": 110, "y": 19, "flags": 4},
- {"matrix": [1, 8], "x": 125, "y": 19, "flags": 4},
- {"matrix": [1, 9], "x": 139, "y": 19, "flags": 4},
- {"matrix": [1, 10], "x": 154, "y": 19, "flags": 4},
- {"matrix": [1, 11], "x": 168, "y": 19, "flags": 4},
- {"matrix": [1, 12], "x": 183, "y": 19, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 19, "flags": 1},
- {"matrix": [2, 0], "x": 6, "y": 34, "flags": 8},
- {"matrix": [2, 1], "x": 26, "y": 34, "flags": 4},
- {"matrix": [2, 2], "x": 40, "y": 34, "flags": 4},
- {"matrix": [2, 3], "x": 55, "y": 34, "flags": 4},
- {"matrix": [2, 4], "x": 70, "y": 34, "flags": 4},
- {"matrix": [2, 5], "x": 84, "y": 34, "flags": 4},
- {"matrix": [2, 6], "x": 99, "y": 34, "flags": 4},
- {"matrix": [2, 7], "x": 114, "y": 34, "flags": 4},
- {"matrix": [2, 8], "x": 128, "y": 34, "flags": 4},
- {"matrix": [2, 9], "x": 143, "y": 34, "flags": 4},
- {"matrix": [2, 10], "x": 158, "y": 34, "flags": 4},
- {"matrix": [2, 11], "x": 172, "y": 34, "flags": 4},
- {"matrix": [2, 13], "x": 187, "y": 34, "flags": 4},
- {"matrix": [1, 13], "x": 207, "y": 29, "flags": 1},
- {"matrix": [2, 14], "x": 224, "y": 34, "flags": 1},
- {"matrix": [3, 0], "x": 9, "y": 49, "flags": 1},
- {"matrix": [3, 2], "x": 33, "y": 49, "flags": 4},
- {"matrix": [3, 3], "x": 48, "y": 49, "flags": 4},
- {"matrix": [3, 4], "x": 62, "y": 49, "flags": 4},
- {"matrix": [3, 5], "x": 77, "y": 49, "flags": 4},
- {"matrix": [3, 6], "x": 92, "y": 49, "flags": 4},
- {"matrix": [3, 7], "x": 106, "y": 49, "flags": 4},
- {"matrix": [3, 8], "x": 121, "y": 49, "flags": 4},
- {"matrix": [3, 9], "x": 136, "y": 49, "flags": 4},
- {"matrix": [3, 10], "x": 150, "y": 49, "flags": 4},
- {"matrix": [3, 11], "x": 165, "y": 49, "flags": 4},
- {"matrix": [3, 12], "x": 179, "y": 49, "flags": 4},
- {"matrix": [3, 13], "x": 194, "y": 49, "flags": 1},
- {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 18, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 35, "y": 64, "flags": 1},
- {"matrix": [4, 3], "x": 51, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 92, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 134, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 150, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 165, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 179, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 194, "y": 64, "flags": 1},
- {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 223, "y": 64, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_jis_71": {
"layout": [
diff --git a/keyboards/keychron/v3/ansi/ansi.c b/keyboards/keychron/v3/ansi/ansi.c
index 6f35f14a9a..7c47678619 100644
--- a/keyboards/keychron/v3/ansi/ansi.c
+++ b/keyboards/keychron/v3/ansi/ansi.c
@@ -118,4 +118,37 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB6_CA16, CB4_CA16, CB5_CA16},
{1, CB3_CA15, CB1_CA15, CB2_CA15},
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14 },
+ { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 },
+ { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48 },
+ { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 49, 62, 15, 32 },
+ { 63, __, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, __, 74, 86, 75 },
+ { 76, 77, 78, __, __, __, 79, __, __, __, 80, 81, 82, 83, 84, 85 },
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {26,0}, {39,0}, {52,0}, {65,0}, {85,0}, {98,0}, {111,0}, {124,0}, {143,0}, {156,0}, {169,0}, {182,0}, {198,0}, {211,0}, {224,0},
+ {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {176,15}, {198,15}, {211,15}, {224,15},
+ {3,28}, {20,28}, {33,28}, {46,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {179,28}, {198,28}, {211,28}, {224,28},
+ {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {174,40},
+ {8,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {171,52}, {211,52},
+ {2,64}, {18,64}, {34,64}, {83,64}, {131,64}, {148,64}, {164,64}, {180,64}, {198,64}, {211,64}, {224,64},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v3/ansi/keyboard.json b/keyboards/keychron/v3/ansi/keyboard.json
index 59a94564d1..d388456227 100644
--- a/keyboards/keychron/v3/ansi/keyboard.json
+++ b/keyboards/keychron/v3/ansi/keyboard.json
@@ -18,97 +18,6 @@
},
"processor": "STM32L432",
"bootloader": "stm32-dfu",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 26, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 39, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 52, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 65, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 85, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 98, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 111, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 124, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 156, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 169, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 182, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1},
- {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 176, "y": 15, "flags": 1},
- {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1},
- {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1},
- {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1},
- {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1},
- {"matrix": [2, 1], "x": 20, "y": 28, "flags": 4},
- {"matrix": [2, 2], "x": 33, "y": 28, "flags": 4},
- {"matrix": [2, 3], "x": 46, "y": 28, "flags": 4},
- {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4},
- {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4},
- {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4},
- {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4},
- {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4},
- {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4},
- {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4},
- {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4},
- {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4},
- {"matrix": [2, 13], "x": 179, "y": 28, "flags": 4},
- {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1},
- {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1},
- {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1},
- {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8},
- {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4},
- {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4},
- {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4},
- {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4},
- {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4},
- {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4},
- {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4},
- {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4},
- {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4},
- {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4},
- {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4},
- {"matrix": [3, 13], "x": 174, "y": 40, "flags": 1},
- {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1},
- {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4},
- {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4},
- {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4},
- {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4},
- {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4},
- {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4},
- {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4},
- {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4},
- {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4},
- {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4},
- {"matrix": [4, 13], "x": 171, "y": 52, "flags": 1},
- {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1},
- {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1},
- {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1},
- {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4},
- {"matrix": [5, 10], "x": 131, "y": 64, "flags": 1},
- {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1},
- {"matrix": [5, 12], "x": 164, "y": 64, "flags": 1},
- {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_tkl_ansi": {
"layout": [
diff --git a/keyboards/keychron/v3/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v3/ansi_encoder/ansi_encoder.c
index d80b9990c4..d85708937a 100644
--- a/keyboards/keychron/v3/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/v3/ansi_encoder/ansi_encoder.c
@@ -119,4 +119,37 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB6_CA16, CB4_CA16, CB5_CA16},
{1, CB3_CA15, CB1_CA15, CB2_CA15},
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14 },
+ { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 },
+ { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48 },
+ { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 49, 62, 15, 32 },
+ { 63, __, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, __, 74, 86, 75 },
+ { 76, 77, 78, __, __, __, 79, __, __, __, 80, 81, 82, 83, 84, 85 },
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {16,0}, {29,0}, {42,0}, {55,0}, {71,0}, {84,0}, {97,0}, {110,0}, {126,0}, {139,0}, {152,0}, {165,0}, {198,0}, {211,0}, {224,0},
+ {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {176,15}, {198,15}, {211,15}, {224,15},
+ {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {179,28}, {198,28}, {211,28}, {224,28},
+ {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {174,40},
+ {8,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {171,52}, {211,52},
+ {2,64}, {18,64}, {34,64}, {83,64}, {131,64}, {148,64}, {164,64}, {180,64}, {198,64}, {211,64}, {224,64},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v3/ansi_encoder/keyboard.json b/keyboards/keychron/v3/ansi_encoder/keyboard.json
index 47f5bff0aa..5134b47d7e 100644
--- a/keyboards/keychron/v3/ansi_encoder/keyboard.json
+++ b/keyboards/keychron/v3/ansi_encoder/keyboard.json
@@ -24,97 +24,6 @@
"encoder": true,
"dip_switch": true
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 29, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 55, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 71, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 97, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 126, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 139, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 152, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 165, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1},
- {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 176, "y": 15, "flags": 1},
- {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1},
- {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1},
- {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1},
- {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1},
- {"matrix": [2, 1], "x": 19, "y": 28, "flags": 4},
- {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4},
- {"matrix": [2, 3], "x": 45, "y": 28, "flags": 4},
- {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4},
- {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4},
- {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4},
- {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4},
- {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4},
- {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4},
- {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4},
- {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4},
- {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4},
- {"matrix": [2, 13], "x": 179, "y": 28, "flags": 4},
- {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1},
- {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1},
- {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1},
- {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8},
- {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4},
- {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4},
- {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4},
- {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4},
- {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4},
- {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4},
- {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4},
- {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4},
- {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4},
- {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4},
- {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4},
- {"matrix": [3, 13], "x": 174, "y": 40, "flags": 1},
- {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1},
- {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4},
- {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4},
- {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4},
- {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4},
- {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4},
- {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4},
- {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4},
- {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4},
- {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4},
- {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4},
- {"matrix": [4, 13], "x": 171, "y": 52, "flags": 1},
- {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1},
- {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1},
- {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1},
- {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4},
- {"matrix": [5, 10], "x": 131, "y": 64, "flags": 1},
- {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1},
- {"matrix": [5, 12], "x": 164, "y": 64, "flags": 1},
- {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_tkl_f13_ansi": {
"layout": [
diff --git a/keyboards/keychron/v3/iso/iso.c b/keyboards/keychron/v3/iso/iso.c
index f8d8e22e10..83798392c6 100644
--- a/keyboards/keychron/v3/iso/iso.c
+++ b/keyboards/keychron/v3/iso/iso.c
@@ -119,4 +119,37 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB6_CA16, CB4_CA16, CB5_CA16},
{1, CB3_CA15, CB1_CA15, CB2_CA15},
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14 },
+ { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 },
+ { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 62, 46, 47 },
+ { 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 48, 61, 15, 32 },
+ { 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, __, 75, 87, 76 },
+ { 77, 78, 79, __, __, __, 80, __, __, __, 81, 82, 83, 84, 85, 86 },
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {26,0}, {39,0}, {52,0}, {65,0}, {84,0}, {97,0}, {111,0}, {124,0}, {143,0}, {156,0}, {169,0}, {182,0}, {198,0}, {211,0}, {224,0},
+ {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {176,15}, {198,15}, {211,15}, {224,15},
+ {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {198,28}, {211,28}, {224,28},
+ {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {166,40}, {183,36},
+ {2,52}, {16,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {171,52}, {211,52},
+ {2,64}, {18,64}, {34,64}, {83,64}, {131,64}, {148,64}, {164,64}, {180,64}, {198,64}, {211,64}, {224,64},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v3/iso/keyboard.json b/keyboards/keychron/v3/iso/keyboard.json
index 6bae7e1e7e..40a8139ccc 100644
--- a/keyboards/keychron/v3/iso/keyboard.json
+++ b/keyboards/keychron/v3/iso/keyboard.json
@@ -19,98 +19,6 @@
},
"processor": "STM32L432",
"bootloader": "stm32-dfu",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 26, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 39, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 52, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 65, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 84, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 97, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 111, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 124, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 156, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 169, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 182, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1},
- {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 176, "y": 15, "flags": 1},
- {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1},
- {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1},
- {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1},
- {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1},
- {"matrix": [2, 1], "x": 19, "y": 28, "flags": 4},
- {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4},
- {"matrix": [2, 3], "x": 45, "y": 28, "flags": 4},
- {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4},
- {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4},
- {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4},
- {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4},
- {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4},
- {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4},
- {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4},
- {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4},
- {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4},
- {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1},
- {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1},
- {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1},
- {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8},
- {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4},
- {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4},
- {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4},
- {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4},
- {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4},
- {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4},
- {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4},
- {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4},
- {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4},
- {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4},
- {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4},
- {"matrix": [3, 13], "x": 166, "y": 40, "flags": 4},
- {"matrix": [2, 13], "x": 183, "y": 36, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 52, "flags": 1},
- {"matrix": [4, 1], "x": 16, "y": 52, "flags": 4},
- {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4},
- {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4},
- {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4},
- {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4},
- {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4},
- {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4},
- {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4},
- {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4},
- {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4},
- {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4},
- {"matrix": [4, 13], "x": 171, "y": 52, "flags": 1},
- {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1},
- {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1},
- {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1},
- {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4},
- {"matrix": [5, 10], "x": 131, "y": 64, "flags": 1},
- {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1},
- {"matrix": [5, 12], "x": 164, "y": 64, "flags": 1},
- {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_tkl_iso": {
"layout": [
diff --git a/keyboards/keychron/v3/iso_encoder/iso_encoder.c b/keyboards/keychron/v3/iso_encoder/iso_encoder.c
index f8d8e22e10..ef0567dbe1 100644
--- a/keyboards/keychron/v3/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/v3/iso_encoder/iso_encoder.c
@@ -119,4 +119,37 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB6_CA16, CB4_CA16, CB5_CA16},
{1, CB3_CA15, CB1_CA15, CB2_CA15},
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14 },
+ { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 },
+ { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 62, 46, 47 },
+ { 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 48, 61, 15, 32 },
+ { 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, __, 75, 87, 76 },
+ { 77, 78, 79, __, __, __, 80, __, __, __, 81, 82, 83, 84, 85, 86 },
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {16,0}, {29,0}, {42,0}, {55,0}, {71,0}, {84,0}, {97,0}, {110,0}, {126,0}, {139,0}, {152,0}, {165,0}, {198,0}, {211,0}, {224,0},
+ {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {176,15}, {198,15}, {211,15}, {224,15},
+ {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {198,28}, {211,28}, {224,28},
+ {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {166,40}, {183,36},
+ {2,52}, {16,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {171,52}, {211,52},
+ {2,64}, {18,64}, {34,64}, {83,64}, {131,64}, {148,64}, {164,64}, {180,64}, {198,64}, {211,64}, {224,64},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v3/iso_encoder/keyboard.json b/keyboards/keychron/v3/iso_encoder/keyboard.json
index 6f039c0dff..8b4f0a9d00 100644
--- a/keyboards/keychron/v3/iso_encoder/keyboard.json
+++ b/keyboards/keychron/v3/iso_encoder/keyboard.json
@@ -24,98 +24,6 @@
"encoder": true,
"dip_switch": true
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 29, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 55, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 71, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 97, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 126, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 139, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 152, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 165, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1},
- {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 176, "y": 15, "flags": 1},
- {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1},
- {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1},
- {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1},
- {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1},
- {"matrix": [2, 1], "x": 19, "y": 28, "flags": 4},
- {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4},
- {"matrix": [2, 3], "x": 45, "y": 28, "flags": 4},
- {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4},
- {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4},
- {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4},
- {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4},
- {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4},
- {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4},
- {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4},
- {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4},
- {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4},
- {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1},
- {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1},
- {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1},
- {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8},
- {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4},
- {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4},
- {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4},
- {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4},
- {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4},
- {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4},
- {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4},
- {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4},
- {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4},
- {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4},
- {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4},
- {"matrix": [3, 13], "x": 166, "y": 40, "flags": 4},
- {"matrix": [2, 13], "x": 183, "y": 36, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 52, "flags": 1},
- {"matrix": [4, 1], "x": 16, "y": 52, "flags": 4},
- {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4},
- {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4},
- {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4},
- {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4},
- {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4},
- {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4},
- {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4},
- {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4},
- {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4},
- {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4},
- {"matrix": [4, 13], "x": 171, "y": 52, "flags": 1},
- {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1},
- {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1},
- {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1},
- {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4},
- {"matrix": [5, 10], "x": 131, "y": 64, "flags": 1},
- {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1},
- {"matrix": [5, 12], "x": 164, "y": 64, "flags": 1},
- {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_tkl_f13_iso": {
"layout": [
diff --git a/keyboards/keychron/v3/jis/jis.c b/keyboards/keychron/v3/jis/jis.c
index cec71b83d5..c04827dc5d 100644
--- a/keyboards/keychron/v3/jis/jis.c
+++ b/keyboards/keychron/v3/jis/jis.c
@@ -122,4 +122,37 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB6_CA16, CB4_CA16, CB5_CA16}, // Down
{1, CB3_CA15, CB1_CA15, CB2_CA15}, // Right
};
+
+# define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 30, 13, 14 },
+ { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32 },
+ { 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 63, 47, 48 },
+ { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 49, 62, 15, 33 },
+ { 64, __, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 90, 77 },
+ { 78, 79, 80, 81, __, __, 82, __, __, 83, 84, 85, 86, 87, 88, 89 },
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {26,0}, {39,0}, {52,0}, {65,0}, {84,0}, {97,0}, {111,0}, {124,0}, {143,0}, {156,0}, {169,0}, {182,0}, {198,0}, {211,0}, {224,0},
+ {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {182,15}, {169,15}, {198,15}, {211,15}, {224,15},
+ {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {198,28}, {211,28}, {224,28},
+ {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {166,40}, {183,36},
+ {8,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {159,52}, {177,52}, {211,52},
+ {2,64}, {16,64}, {31,64}, {45,64}, {81,64}, {119,64}, {135,64}, {151,64}, {166,64}, {180,64}, {198,64}, {211,64}, {224,64}
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1,
+ }
+};
+
#endif // GB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v3/jis/keyboard.json b/keyboards/keychron/v3/jis/keyboard.json
index 526a2e9e27..0bc3a43d0e 100644
--- a/keyboards/keychron/v3/jis/keyboard.json
+++ b/keyboards/keychron/v3/jis/keyboard.json
@@ -18,101 +18,6 @@
},
"processor": "STM32L432",
"bootloader": "stm32-dfu",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 26, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 39, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 52, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 65, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 84, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 97, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 111, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 124, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 156, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 169, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 182, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1},
- {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 182, "y": 15, "flags": 4},
- {"matrix": [0, 13], "x": 169, "y": 15, "flags": 1},
- {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1},
- {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1},
- {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1},
- {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1},
- {"matrix": [2, 1], "x": 19, "y": 28, "flags": 4},
- {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4},
- {"matrix": [2, 3], "x": 45, "y": 28, "flags": 4},
- {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4},
- {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4},
- {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4},
- {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4},
- {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4},
- {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4},
- {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4},
- {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4},
- {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4},
- {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1},
- {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1},
- {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1},
- {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8},
- {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4},
- {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4},
- {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4},
- {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4},
- {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4},
- {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4},
- {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4},
- {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4},
- {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4},
- {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4},
- {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4},
- {"matrix": [3, 13], "x": 166, "y": 40, "flags": 4},
- {"matrix": [2, 13], "x": 183, "y": 36, "flags": 1},
- {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1},
- {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4},
- {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4},
- {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4},
- {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4},
- {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4},
- {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4},
- {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4},
- {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4},
- {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4},
- {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4},
- {"matrix": [4, 12], "x": 159, "y": 52, "flags": 4},
- {"matrix": [4, 13], "x": 177, "y": 52, "flags": 1},
- {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1},
- {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 16, "y": 64, "flags": 1},
- {"matrix": [5, 2], "x": 31, "y": 64, "flags": 1},
- {"matrix": [5, 3], "x": 45, "y": 64, "flags": 1},
- {"matrix": [5, 6], "x": 81, "y": 64, "flags": 4},
- {"matrix": [5, 9], "x": 119, "y": 64, "flags": 1},
- {"matrix": [5, 10], "x": 135, "y": 64, "flags": 1},
- {"matrix": [5, 11], "x": 151, "y": 64, "flags": 1},
- {"matrix": [5, 12], "x": 166, "y": 64, "flags": 1},
- {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_jis_91": {
"layout": [
diff --git a/keyboards/keychron/v3/jis_encoder/jis_encoder.c b/keyboards/keychron/v3/jis_encoder/jis_encoder.c
index 6e5b99e1c7..bf2018d86f 100644
--- a/keyboards/keychron/v3/jis_encoder/jis_encoder.c
+++ b/keyboards/keychron/v3/jis_encoder/jis_encoder.c
@@ -123,4 +123,37 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB6_CA16, CB4_CA16, CB5_CA16}, // Down
{1, CB3_CA15, CB1_CA15, CB2_CA15}, // Right
};
+
+# define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
+ { 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33 },
+ { 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 64, 48, 49 },
+ { 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 50, 63, 16, 34 },
+ { 65, __, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 91, 78 },
+ { 79, 80, 81, 82, __, 31, 83, __, __, 84, 85, 86, 87, 88, 89, 90 },
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {16,0}, {29,0}, {42,0}, {55,0}, {71,0}, {84,0}, {97,0}, {110,0}, {126,0}, {139,0}, {152,0}, {165,0}, {182,0}, {198,0}, {211,0}, {224,0},
+ {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {169,15}, {182,15}, {198,15}, {211,15}, {224,15},
+ {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {198,28}, {211,28}, {224,28},
+ {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {166,40}, {183,36},
+ {8,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {159,52}, {177,52}, {211,52},
+ {2,64}, {16,64}, {31,64}, {45,64}, {81,64}, {119,64}, {135,64}, {151,64}, {166,64}, {180,64}, {198,64}, {211,64}, {224,64},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v3/jis_encoder/keyboard.json b/keyboards/keychron/v3/jis_encoder/keyboard.json
index 20613e7672..ab9d6ab2a7 100644
--- a/keyboards/keychron/v3/jis_encoder/keyboard.json
+++ b/keyboards/keychron/v3/jis_encoder/keyboard.json
@@ -24,102 +24,6 @@
"encoder": true,
"dip_switch": true
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 29, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 55, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 71, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 97, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 126, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 139, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 152, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 165, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 182, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1},
- {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 169, "y": 15, "flags": 4},
- {"matrix": [5, 5], "x": 182, "y": 15, "flags": 1},
- {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1},
- {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1},
- {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1},
- {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1},
- {"matrix": [2, 1], "x": 19, "y": 28, "flags": 4},
- {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4},
- {"matrix": [2, 3], "x": 45, "y": 28, "flags": 4},
- {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4},
- {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4},
- {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4},
- {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4},
- {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4},
- {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4},
- {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4},
- {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4},
- {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4},
- {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1},
- {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1},
- {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1},
- {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8},
- {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4},
- {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4},
- {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4},
- {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4},
- {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4},
- {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4},
- {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4},
- {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4},
- {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4},
- {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4},
- {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4},
- {"matrix": [3, 13], "x": 166, "y": 40, "flags": 4},
- {"matrix": [2, 13], "x": 183, "y": 36, "flags": 1},
- {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1},
- {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4},
- {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4},
- {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4},
- {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4},
- {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4},
- {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4},
- {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4},
- {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4},
- {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4},
- {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4},
- {"matrix": [4, 12], "x": 159, "y": 52, "flags": 4},
- {"matrix": [4, 13], "x": 177, "y": 52, "flags": 1},
- {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1},
- {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 16, "y": 64, "flags": 1},
- {"matrix": [5, 2], "x": 31, "y": 64, "flags": 1},
- {"matrix": [5, 3], "x": 45, "y": 64, "flags": 1},
- {"matrix": [5, 6], "x": 81, "y": 64, "flags": 4},
- {"matrix": [5, 9], "x": 119, "y": 64, "flags": 1},
- {"matrix": [5, 10], "x": 135, "y": 64, "flags": 1},
- {"matrix": [5, 11], "x": 151, "y": 64, "flags": 1},
- {"matrix": [5, 12], "x": 166, "y": 64, "flags": 1},
- {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_jis_92": {
"layout": [
diff --git a/keyboards/keychron/v4/ansi/ansi.c b/keyboards/keychron/v4/ansi/ansi.c
index 4f184c7dd6..7368144c8d 100644
--- a/keyboards/keychron/v4/ansi/ansi.c
+++ b/keyboards/keychron/v4/ansi/ansi.c
@@ -93,4 +93,34 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{0, CB3_CA15, CB1_CA15, CB2_CA15},
{0, CB3_CA16, CB1_CA16, CB2_CA16},
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 },
+ { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 },
+ { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, __, 40 },
+ { 41, __, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, __, 52 },
+ { 53, 54, 55, __, __, __, 56, __, __, __, 57, 58, 59, 60 },
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {16,0}, {32,0}, {48,0}, {64,0}, {81,0}, {97,0}, {113,0}, {129,0}, {145,0}, {161,0}, {177,0}, {193,0}, {218,0},
+ {4,16}, {24,16}, {40,16}, {56,16}, {73,16}, {89,16}, {105,16}, {121,16}, {137,16}, {153,16}, {169,16}, {185,16}, {202,16}, {222,16},
+ {6,32}, {28,32}, {44,32}, {60,32}, {77,32}, {93,32}, {109,32}, {125,32}, {141,32}, {157,32}, {173,32}, {189,32}, {216,32},
+ {10,48}, {36,48}, {52,48}, {69,48}, {85,48}, {101,48}, {117,48}, {133,48}, {149,48}, {165,48}, {181,48}, {212,48},
+ {2,64}, {22,64}, {42,64}, {103,64}, {164,64}, {184,64}, {204,64}, {224,64},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v4/ansi/keyboard.json b/keyboards/keychron/v4/ansi/keyboard.json
index b80d9d8e25..7184e32f27 100644
--- a/keyboards/keychron/v4/ansi/keyboard.json
+++ b/keyboards/keychron/v4/ansi/keyboard.json
@@ -23,71 +23,6 @@
"diode_direction": "ROW2COL",
"processor": "STM32L432",
"bootloader": "stm32-dfu",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 81, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 97, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 113, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 129, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 145, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 161, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 177, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 193, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 218, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 73, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 89, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 105, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 121, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 137, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 153, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 169, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 185, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 202, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 222, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 8},
- {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 77, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 93, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 109, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 125, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 141, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 157, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 173, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 189, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 216, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1},
- {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 85, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 101, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 117, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 133, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 149, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 165, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 181, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 212, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 103, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 164, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 184, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 204, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}
- ]
- },
"layout_aliases": {
"LAYOUT_ansi_61": "LAYOUT_60_ansi"
},
diff --git a/keyboards/keychron/v4/iso/iso.c b/keyboards/keychron/v4/iso/iso.c
index ccea440a47..dc6a0f44d0 100644
--- a/keyboards/keychron/v4/iso/iso.c
+++ b/keyboards/keychron/v4/iso/iso.c
@@ -94,4 +94,34 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{0, CB3_CA15, CB1_CA15, CB2_CA15},
{0, CB3_CA16, CB1_CA16, CB2_CA16},
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 },
+ { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 40 },
+ { 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, __, 39 },
+ { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, __, 53 },
+ { 54, 55, 56, __, __, __, 57, __, __, __, 58, 59, 60, 61 },
+ },
+ {
+ // LED Index to Physical Position
+ {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {81, 0}, { 97, 0}, {113, 0}, {129, 0}, {145, 0}, {161, 0}, {177, 0}, {193, 0}, {218, 0},
+ {4,16}, {24,16}, {40,16}, {56,16}, {73,16}, {89,16}, {105,16}, {121,16}, {137,16}, {153,16}, {169,16}, {185,16}, {202,16},
+ {6,32}, {28,32}, {44,32}, {60,32}, {77,32}, {93,32}, {109,32}, {125,32}, {141,32}, {157,32}, {173,32}, {189,32}, {206,32}, {224,24},
+ {2,48}, {20,48}, {36,48}, {52,48}, {69,48}, {85,48}, {101,48}, {117,48}, {133,48}, {149,48}, {165,48}, {181,48}, {212,48},
+ {2,64}, {22,64}, {42,64}, {103,64}, {164,64}, {184,64}, {204,64}, {224,64},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v4/iso/keyboard.json b/keyboards/keychron/v4/iso/keyboard.json
index 0aa111a858..8077844652 100644
--- a/keyboards/keychron/v4/iso/keyboard.json
+++ b/keyboards/keychron/v4/iso/keyboard.json
@@ -23,72 +23,6 @@
"diode_direction": "ROW2COL",
"processor": "STM32L432",
"bootloader": "stm32-dfu",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 81, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 97, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 113, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 129, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 145, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 161, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 177, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 193, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 218, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 73, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 89, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 105, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 121, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 137, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 153, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 169, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 185, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 202, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 8},
- {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 77, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 93, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 109, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 125, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 141, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 157, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 173, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 189, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 206, "y": 32, "flags": 4},
- {"matrix": [1, 13], "x": 224, "y": 24, "flags": 1},
- {"matrix": [3, 0], "x": 2, "y": 48, "flags": 1},
- {"matrix": [3, 1], "x": 20, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 85, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 101, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 117, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 133, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 149, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 165, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 181, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 212, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 103, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 164, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 184, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 204, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}
- ]
- },
"layout_aliases": {
"LAYOUT_iso_62": "LAYOUT_60_iso"
},
diff --git a/keyboards/keychron/v5/ansi/ansi.c b/keyboards/keychron/v5/ansi/ansi.c
index 9e653f36d1..b38d5f508f 100644
--- a/keyboards/keychron/v5/ansi/ansi.c
+++ b/keyboards/keychron/v5/ansi/ansi.c
@@ -133,4 +133,37 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB12_CA2, CB10_CA2, CB11_CA2},
{1, CB12_CA7, CB10_CA7, CB11_CA7}
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 },
+ { 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, __, 33, 34, 35 },
+ { 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 70, 51, 52, 53 },
+ { 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 18, 66, 36, 67, 68, 69 },
+ { 71, __, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, __, 82, 83, 84, 85, 86 },
+ { 87, 88, 89, __, __, 99, 90, __, __, __, 91, 92, 93, 94, 95, 96, 97, 98 }
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {12,0}, {24,0}, {36,0}, {48,0}, {60,0}, {72,0}, {84,0}, {97,0}, {109,0}, {121,0}, {133,0}, {145,0}, {157,0}, {169,0}, {188,0}, {200,0}, {212,0}, {224,0},
+ {0,15}, {12,15}, {24,15}, {36,15}, {48,15}, {60,15}, {72,15}, {84,15}, {97,15}, {109,15}, {121,15}, {133,15}, {145,15}, {163,15}, {188,15}, {200,15}, {212,15}, {224,15},
+ {3,26}, {18,26}, {30,26}, {42,26}, {54,26}, {66,26}, {78,26}, {91,26}, {103,26}, {115,26}, {127,26}, {139,26}, {151,26}, {166,26}, {188,26}, {200,26}, {212,26},
+ {5,38}, {21,38}, {33,38}, {45,38}, {57,38}, {69,38}, {81,38}, {94,38}, {106,38}, {118,38}, {130,38}, {142,38}, {161,38}, {188,38}, {200,38}, {212,38}, {224,32},
+ {8,49}, {27,49}, {39,49}, {51,49}, {63,49}, {75,49}, {88,49}, {100,49}, {112,49}, {124,49}, {136,49}, {152,49}, {172,52}, {188,49}, {200,49}, {212,49},
+ {1,61}, {17,61}, {32,61}, {77,61}, {121,61}, {133,61}, {145,61}, {160,64}, {172,64}, {184,64}, {200,61}, {212,61}, {224,55},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 8, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v5/ansi/keyboard.json b/keyboards/keychron/v5/ansi/keyboard.json
index 2bf3dfa745..b98302f336 100644
--- a/keyboards/keychron/v5/ansi/keyboard.json
+++ b/keyboards/keychron/v5/ansi/keyboard.json
@@ -18,110 +18,6 @@
"rgb_matrix": true,
"dip_switch": true
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 12, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 36, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 48, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 60, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 72, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 84, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 97, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 109, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 121, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 133, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 145, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 157, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 169, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 188, "y": 0, "flags": 1},
- {"matrix": [0, 16], "x": 200, "y": 0, "flags": 1},
- {"matrix": [0, 17], "x": 212, "y": 0, "flags": 1},
- {"matrix": [3, 12], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 12, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 24, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 36, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 48, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 60, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 72, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 84, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 97, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 109, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 121, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 133, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 145, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 163, "y": 15, "flags": 1},
- {"matrix": [1, 15], "x": 188, "y": 15, "flags": 8},
- {"matrix": [1, 16], "x": 200, "y": 15, "flags": 4},
- {"matrix": [1, 17], "x": 212, "y": 15, "flags": 4},
- {"matrix": [3, 14], "x": 224, "y": 15, "flags": 4},
- {"matrix": [2, 0], "x": 3, "y": 26, "flags": 1},
- {"matrix": [2, 1], "x": 18, "y": 26, "flags": 4},
- {"matrix": [2, 2], "x": 30, "y": 26, "flags": 4},
- {"matrix": [2, 3], "x": 42, "y": 26, "flags": 4},
- {"matrix": [2, 4], "x": 54, "y": 26, "flags": 4},
- {"matrix": [2, 5], "x": 66, "y": 26, "flags": 4},
- {"matrix": [2, 6], "x": 78, "y": 26, "flags": 4},
- {"matrix": [2, 7], "x": 91, "y": 26, "flags": 4},
- {"matrix": [2, 8], "x": 103, "y": 26, "flags": 4},
- {"matrix": [2, 9], "x": 115, "y": 26, "flags": 4},
- {"matrix": [2, 10], "x": 127, "y": 26, "flags": 4},
- {"matrix": [2, 11], "x": 139, "y": 26, "flags": 4},
- {"matrix": [2, 12], "x": 151, "y": 26, "flags": 4},
- {"matrix": [2, 13], "x": 166, "y": 26, "flags": 4},
- {"matrix": [2, 15], "x": 188, "y": 26, "flags": 4},
- {"matrix": [2, 16], "x": 200, "y": 26, "flags": 4},
- {"matrix": [2, 17], "x": 212, "y": 26, "flags": 4},
- {"matrix": [3, 0], "x": 5, "y": 38, "flags": 8},
- {"matrix": [3, 1], "x": 21, "y": 38, "flags": 4},
- {"matrix": [3, 2], "x": 33, "y": 38, "flags": 4},
- {"matrix": [3, 3], "x": 45, "y": 38, "flags": 4},
- {"matrix": [3, 4], "x": 57, "y": 38, "flags": 4},
- {"matrix": [3, 5], "x": 69, "y": 38, "flags": 4},
- {"matrix": [3, 6], "x": 81, "y": 38, "flags": 4},
- {"matrix": [3, 7], "x": 94, "y": 38, "flags": 4},
- {"matrix": [3, 8], "x": 106, "y": 38, "flags": 4},
- {"matrix": [3, 9], "x": 118, "y": 38, "flags": 4},
- {"matrix": [3, 10], "x": 130, "y": 38, "flags": 4},
- {"matrix": [3, 11], "x": 142, "y": 38, "flags": 4},
- {"matrix": [3, 13], "x": 161, "y": 38, "flags": 1},
- {"matrix": [3, 15], "x": 188, "y": 38, "flags": 4},
- {"matrix": [3, 16], "x": 200, "y": 38, "flags": 4},
- {"matrix": [3, 17], "x": 212, "y": 38, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4},
- {"matrix": [4, 0], "x": 8, "y": 49, "flags": 1},
- {"matrix": [4, 2], "x": 27, "y": 49, "flags": 4},
- {"matrix": [4, 3], "x": 39, "y": 49, "flags": 4},
- {"matrix": [4, 4], "x": 51, "y": 49, "flags": 4},
- {"matrix": [4, 5], "x": 63, "y": 49, "flags": 4},
- {"matrix": [4, 6], "x": 75, "y": 49, "flags": 4},
- {"matrix": [4, 7], "x": 88, "y": 49, "flags": 4},
- {"matrix": [4, 8], "x": 100, "y": 49, "flags": 4},
- {"matrix": [4, 9], "x": 112, "y": 49, "flags": 4},
- {"matrix": [4, 10], "x": 124, "y": 49, "flags": 4},
- {"matrix": [4, 11], "x": 136, "y": 49, "flags": 4},
- {"matrix": [4, 13], "x": 152, "y": 49, "flags": 1},
- {"matrix": [4, 14], "x": 172, "y": 52, "flags": 1},
- {"matrix": [4, 15], "x": 188, "y": 49, "flags": 4},
- {"matrix": [4, 16], "x": 200, "y": 49, "flags": 4},
- {"matrix": [4, 17], "x": 212, "y": 49, "flags": 4},
- {"matrix": [5, 0], "x": 1, "y": 61, "flags": 1},
- {"matrix": [5, 1], "x": 17, "y": 61, "flags": 1},
- {"matrix": [5, 2], "x": 32, "y": 61, "flags": 1},
- {"matrix": [5, 6], "x": 77, "y": 61, "flags": 1},
- {"matrix": [5, 10], "x": 121, "y": 61, "flags": 1},
- {"matrix": [5, 11], "x": 133, "y": 61, "flags": 1},
- {"matrix": [5, 12], "x": 145, "y": 61, "flags": 1},
- {"matrix": [5, 13], "x": 160, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 172, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 184, "y": 64, "flags": 1},
- {"matrix": [5, 16], "x": 200, "y": 61, "flags": 1},
- {"matrix": [5, 17], "x": 212, "y": 61, "flags": 1},
- {"matrix": [5, 5], "x": 224, "y": 55, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_ansi_100": {
"layout": [
diff --git a/keyboards/keychron/v5/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v5/ansi_encoder/ansi_encoder.c
index e359d85545..bc68731d7d 100644
--- a/keyboards/keychron/v5/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/v5/ansi_encoder/ansi_encoder.c
@@ -133,4 +133,37 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB12_CA2, CB10_CA2, CB11_CA2},
{1, CB12_CA7, CB10_CA7, CB11_CA7}
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, __, 1, 2, 3, 4, __, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
+ { 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, __, 31, 32, 33 },
+ { 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 68, 49, 50, 51 },
+ { 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 16, 64, 34, 65, 66, 67 },
+ { 69, __, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, __, 80, 81, 82, 83, 84 },
+ { 85, 86, 87, __, __, 97, 88, __, __, __, 89, 90, 91, 92, 93, 94, 95, 96 }
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {24,0}, {36,0}, {48,0}, {60,0}, {78,0}, {90,0}, {103,0}, {115,0}, {133,0}, {145,0}, {157,0}, {169,0}, {184,0}, {196,0}, {208,0}, {224,0},
+ {0,15}, {12,15}, {24,15}, {36,15}, {48,15}, {60,15}, {72,15}, {85,15}, {97,15}, {109,15}, {121,15}, {133,15}, {145,15}, {163,15}, {188,15}, {200,15}, {212,15}, {224,15},
+ {3,26}, {18,26}, {30,26}, {42,26}, {54,26}, {66,26}, {78,26}, {91,26}, {103,26}, {115,26}, {127,26}, {139,26}, {151,26}, {166,26}, {188,26}, {200,26}, {212,26},
+ {5,38}, {21,38}, {33,38}, {45,38}, {57,38}, {69,38}, {81,38}, {94,38}, {106,38}, {118,38}, {130,38}, {142,38}, {161,38}, {188,38}, {200,38}, {212,38}, {224,32},
+ {8,49}, {27,49}, {39,49}, {51,49}, {63,49}, {75,49}, {88,49}, {100,49}, {112,49}, {124,49}, {136,49}, {152,49}, {172,52}, {188,49}, {200,49}, {212,49},
+ {1,61}, {17,61}, {32,61}, {77,61}, {121,61}, {133,61}, {145,61}, {160,64}, {172,64}, {184,64}, {200,61}, {212,61}, {224,55},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 8, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 4, 4, 4, 1
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v5/ansi_encoder/keyboard.json b/keyboards/keychron/v5/ansi_encoder/keyboard.json
index 2ed77789e4..af61e4a15e 100644
--- a/keyboards/keychron/v5/ansi_encoder/keyboard.json
+++ b/keyboards/keychron/v5/ansi_encoder/keyboard.json
@@ -24,108 +24,6 @@
"encoder": true,
"dip_switch": true
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 36, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 48, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 60, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 78, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 90, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 103, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 115, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 133, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 145, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 157, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 169, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 184, "y": 0, "flags": 1},
- {"matrix": [0, 16], "x": 196, "y": 0, "flags": 1},
- {"matrix": [0, 17], "x": 208, "y": 0, "flags": 1},
- {"matrix": [3, 12], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 12, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 24, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 36, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 48, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 60, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 72, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 85, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 97, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 109, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 121, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 133, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 145, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 163, "y": 15, "flags": 1},
- {"matrix": [1, 15], "x": 188, "y": 15, "flags": 8},
- {"matrix": [1, 16], "x": 200, "y": 15, "flags": 4},
- {"matrix": [1, 17], "x": 212, "y": 15, "flags": 4},
- {"matrix": [3, 14], "x": 224, "y": 15, "flags": 4},
- {"matrix": [2, 0], "x": 3, "y": 26, "flags": 1},
- {"matrix": [2, 1], "x": 18, "y": 26, "flags": 4},
- {"matrix": [2, 2], "x": 30, "y": 26, "flags": 4},
- {"matrix": [2, 3], "x": 42, "y": 26, "flags": 4},
- {"matrix": [2, 4], "x": 54, "y": 26, "flags": 4},
- {"matrix": [2, 5], "x": 66, "y": 26, "flags": 4},
- {"matrix": [2, 6], "x": 78, "y": 26, "flags": 4},
- {"matrix": [2, 7], "x": 91, "y": 26, "flags": 4},
- {"matrix": [2, 8], "x": 103, "y": 26, "flags": 4},
- {"matrix": [2, 9], "x": 115, "y": 26, "flags": 4},
- {"matrix": [2, 10], "x": 127, "y": 26, "flags": 4},
- {"matrix": [2, 11], "x": 139, "y": 26, "flags": 4},
- {"matrix": [2, 12], "x": 151, "y": 26, "flags": 4},
- {"matrix": [2, 13], "x": 166, "y": 26, "flags": 4},
- {"matrix": [2, 15], "x": 188, "y": 26, "flags": 4},
- {"matrix": [2, 16], "x": 200, "y": 26, "flags": 4},
- {"matrix": [2, 17], "x": 212, "y": 26, "flags": 4},
- {"matrix": [3, 0], "x": 5, "y": 38, "flags": 8},
- {"matrix": [3, 1], "x": 21, "y": 38, "flags": 4},
- {"matrix": [3, 2], "x": 33, "y": 38, "flags": 4},
- {"matrix": [3, 3], "x": 45, "y": 38, "flags": 4},
- {"matrix": [3, 4], "x": 57, "y": 38, "flags": 4},
- {"matrix": [3, 5], "x": 69, "y": 38, "flags": 4},
- {"matrix": [3, 6], "x": 81, "y": 38, "flags": 4},
- {"matrix": [3, 7], "x": 94, "y": 38, "flags": 4},
- {"matrix": [3, 8], "x": 106, "y": 38, "flags": 4},
- {"matrix": [3, 9], "x": 118, "y": 38, "flags": 4},
- {"matrix": [3, 10], "x": 130, "y": 38, "flags": 4},
- {"matrix": [3, 11], "x": 142, "y": 38, "flags": 4},
- {"matrix": [3, 13], "x": 161, "y": 38, "flags": 1},
- {"matrix": [3, 15], "x": 188, "y": 38, "flags": 4},
- {"matrix": [3, 16], "x": 200, "y": 38, "flags": 4},
- {"matrix": [3, 17], "x": 212, "y": 38, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4},
- {"matrix": [4, 0], "x": 8, "y": 49, "flags": 1},
- {"matrix": [4, 2], "x": 27, "y": 49, "flags": 4},
- {"matrix": [4, 3], "x": 39, "y": 49, "flags": 4},
- {"matrix": [4, 4], "x": 51, "y": 49, "flags": 4},
- {"matrix": [4, 5], "x": 63, "y": 49, "flags": 4},
- {"matrix": [4, 6], "x": 75, "y": 49, "flags": 4},
- {"matrix": [4, 7], "x": 88, "y": 49, "flags": 4},
- {"matrix": [4, 8], "x": 100, "y": 49, "flags": 4},
- {"matrix": [4, 9], "x": 112, "y": 49, "flags": 4},
- {"matrix": [4, 10], "x": 124, "y": 49, "flags": 4},
- {"matrix": [4, 11], "x": 136, "y": 49, "flags": 4},
- {"matrix": [4, 13], "x": 152, "y": 49, "flags": 1},
- {"matrix": [4, 14], "x": 172, "y": 52, "flags": 1},
- {"matrix": [4, 15], "x": 188, "y": 49, "flags": 4},
- {"matrix": [4, 16], "x": 200, "y": 49, "flags": 4},
- {"matrix": [4, 17], "x": 212, "y": 49, "flags": 4},
- {"matrix": [5, 0], "x": 1, "y": 61, "flags": 1},
- {"matrix": [5, 1], "x": 17, "y": 61, "flags": 1},
- {"matrix": [5, 2], "x": 32, "y": 61, "flags": 1},
- {"matrix": [5, 6], "x": 77, "y": 61, "flags": 4},
- {"matrix": [5, 10], "x": 121, "y": 61, "flags": 1},
- {"matrix": [5, 11], "x": 133, "y": 61, "flags": 1},
- {"matrix": [5, 12], "x": 145, "y": 61, "flags": 1},
- {"matrix": [5, 13], "x": 160, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 172, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 184, "y": 64, "flags": 4},
- {"matrix": [5, 16], "x": 200, "y": 61, "flags": 4},
- {"matrix": [5, 17], "x": 212, "y": 61, "flags": 4},
- {"matrix": [5, 5], "x": 224, "y": 55, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_ansi_98": {
"layout": [
diff --git a/keyboards/keychron/v5/iso/iso.c b/keyboards/keychron/v5/iso/iso.c
index 7b28c70f7e..d8f5ae329c 100644
--- a/keyboards/keychron/v5/iso/iso.c
+++ b/keyboards/keychron/v5/iso/iso.c
@@ -134,4 +134,37 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB12_CA2, CB10_CA2, CB11_CA2},
{1, CB12_CA7, CB10_CA7, CB11_CA7}
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 },
+ { 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, __, 33, 34, 35 },
+ { 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 66, 70, 50, 51, 52 },
+ { 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 18, 65, 36, 67, 68, 69 },
+ { 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, __, 83, 84, 85, 86, 87 },
+ { 88, 89, 90, __, __, 100, 91, __, __, __, 92, 93, 94, 95, 96, 97, 98, 99 },
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {12,0}, {24,0}, {36,0}, {48,0}, {60,0}, {72,0}, {85,0}, {97,0}, {109,0}, {121,0}, {133,0}, {145,0}, {157,0}, {169,0}, {188,0}, {200,0}, {212,0}, {224,0},
+ {0,15}, {12,15}, {24,15}, {36,15}, {48,15}, {60,15}, {72,15}, {85,15}, {97,15}, {109,15}, {121,15}, {133,15}, {145,15}, {163,15}, {188,15}, {200,15}, {212,15}, {224,15},
+ {3,26}, {18,26}, {30,26}, {42,26}, {54,26}, {66,26}, {78,26}, {91,26}, {103,26}, {115,26}, {127,26}, {139,26}, {151,26}, {188,26}, {200,26}, {212,26},
+ {5,38}, {21,38}, {33,38}, {45,38}, {57,38}, {69,38}, {81,38}, {94,38}, {106,38}, {118,38}, {130,38}, {142,38}, {154,38}, {170,34}, {188,38}, {200,38}, {212,38}, {224,32},
+ {3,49}, {15,49}, {27,49}, {39,49}, {51,49}, {63,49}, {75,49}, {88,49}, {100,49}, {112,49}, {124,49}, {136,49}, {152,49}, {172,52}, {188,49}, {200,49}, {212,49},
+ {1,61}, {17,61}, {32,61}, {77,61}, {121,61}, {133,61}, {145,61}, {160,64}, {172,64}, {184,64}, {200,61}, {212,61}, {224,55},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 8, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 4, 4, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v5/iso/keyboard.json b/keyboards/keychron/v5/iso/keyboard.json
index c8bc9609f5..7e7280d5ac 100644
--- a/keyboards/keychron/v5/iso/keyboard.json
+++ b/keyboards/keychron/v5/iso/keyboard.json
@@ -18,111 +18,6 @@
"rgb_matrix": true,
"dip_switch": true
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 12, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 36, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 48, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 60, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 72, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 85, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 97, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 109, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 121, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 133, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 145, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 157, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 169, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 188, "y": 0, "flags": 1},
- {"matrix": [0, 16], "x": 200, "y": 0, "flags": 1},
- {"matrix": [0, 17], "x": 212, "y": 0, "flags": 1},
- {"matrix": [3, 12], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 12, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 24, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 36, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 48, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 60, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 72, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 85, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 97, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 109, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 121, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 133, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 145, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 163, "y": 15, "flags": 1},
- {"matrix": [1, 15], "x": 188, "y": 15, "flags": 8},
- {"matrix": [1, 16], "x": 200, "y": 15, "flags": 4},
- {"matrix": [1, 17], "x": 212, "y": 15, "flags": 4},
- {"matrix": [3, 14], "x": 224, "y": 15, "flags": 4},
- {"matrix": [2, 0], "x": 3, "y": 26, "flags": 1},
- {"matrix": [2, 1], "x": 18, "y": 26, "flags": 4},
- {"matrix": [2, 2], "x": 30, "y": 26, "flags": 4},
- {"matrix": [2, 3], "x": 42, "y": 26, "flags": 4},
- {"matrix": [2, 4], "x": 54, "y": 26, "flags": 4},
- {"matrix": [2, 5], "x": 66, "y": 26, "flags": 4},
- {"matrix": [2, 6], "x": 78, "y": 26, "flags": 4},
- {"matrix": [2, 7], "x": 91, "y": 26, "flags": 4},
- {"matrix": [2, 8], "x": 103, "y": 26, "flags": 4},
- {"matrix": [2, 9], "x": 115, "y": 26, "flags": 4},
- {"matrix": [2, 10], "x": 127, "y": 26, "flags": 4},
- {"matrix": [2, 11], "x": 139, "y": 26, "flags": 4},
- {"matrix": [2, 12], "x": 151, "y": 26, "flags": 4},
- {"matrix": [2, 15], "x": 188, "y": 26, "flags": 4},
- {"matrix": [2, 16], "x": 200, "y": 26, "flags": 4},
- {"matrix": [2, 17], "x": 212, "y": 26, "flags": 4},
- {"matrix": [3, 0], "x": 5, "y": 38, "flags": 8},
- {"matrix": [3, 1], "x": 21, "y": 38, "flags": 4},
- {"matrix": [3, 2], "x": 33, "y": 38, "flags": 4},
- {"matrix": [3, 3], "x": 45, "y": 38, "flags": 4},
- {"matrix": [3, 4], "x": 57, "y": 38, "flags": 4},
- {"matrix": [3, 5], "x": 69, "y": 38, "flags": 4},
- {"matrix": [3, 6], "x": 81, "y": 38, "flags": 4},
- {"matrix": [3, 7], "x": 94, "y": 38, "flags": 4},
- {"matrix": [3, 8], "x": 106, "y": 38, "flags": 4},
- {"matrix": [3, 9], "x": 118, "y": 38, "flags": 4},
- {"matrix": [3, 10], "x": 130, "y": 38, "flags": 4},
- {"matrix": [3, 11], "x": 142, "y": 38, "flags": 4},
- {"matrix": [3, 13], "x": 154, "y": 38, "flags": 4},
- {"matrix": [2, 13], "x": 170, "y": 34, "flags": 1},
- {"matrix": [3, 15], "x": 188, "y": 38, "flags": 4},
- {"matrix": [3, 16], "x": 200, "y": 38, "flags": 4},
- {"matrix": [3, 17], "x": 212, "y": 38, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4},
- {"matrix": [4, 0], "x": 3, "y": 49, "flags": 1},
- {"matrix": [4, 1], "x": 15, "y": 49, "flags": 4},
- {"matrix": [4, 2], "x": 27, "y": 49, "flags": 4},
- {"matrix": [4, 3], "x": 39, "y": 49, "flags": 4},
- {"matrix": [4, 4], "x": 51, "y": 49, "flags": 4},
- {"matrix": [4, 5], "x": 63, "y": 49, "flags": 4},
- {"matrix": [4, 6], "x": 75, "y": 49, "flags": 4},
- {"matrix": [4, 7], "x": 88, "y": 49, "flags": 4},
- {"matrix": [4, 8], "x": 100, "y": 49, "flags": 4},
- {"matrix": [4, 9], "x": 112, "y": 49, "flags": 4},
- {"matrix": [4, 10], "x": 124, "y": 49, "flags": 4},
- {"matrix": [4, 11], "x": 136, "y": 49, "flags": 4},
- {"matrix": [4, 13], "x": 152, "y": 49, "flags": 1},
- {"matrix": [4, 14], "x": 172, "y": 52, "flags": 1},
- {"matrix": [4, 15], "x": 188, "y": 49, "flags": 4},
- {"matrix": [4, 16], "x": 200, "y": 49, "flags": 4},
- {"matrix": [4, 17], "x": 212, "y": 49, "flags": 4},
- {"matrix": [5, 0], "x": 1, "y": 61, "flags": 1},
- {"matrix": [5, 1], "x": 17, "y": 61, "flags": 1},
- {"matrix": [5, 2], "x": 32, "y": 61, "flags": 1},
- {"matrix": [5, 6], "x": 77, "y": 61, "flags": 4},
- {"matrix": [5, 10], "x": 121, "y": 61, "flags": 1},
- {"matrix": [5, 11], "x": 133, "y": 61, "flags": 1},
- {"matrix": [5, 12], "x": 145, "y": 61, "flags": 1},
- {"matrix": [5, 13], "x": 160, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 172, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 184, "y": 64, "flags": 1},
- {"matrix": [5, 16], "x": 200, "y": 61, "flags": 4},
- {"matrix": [5, 17], "x": 212, "y": 61, "flags": 4},
- {"matrix": [5, 5], "x": 224, "y": 55, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_iso_101": {
"layout": [
diff --git a/keyboards/keychron/v5/iso_encoder/iso_encoder.c b/keyboards/keychron/v5/iso_encoder/iso_encoder.c
index 005a73d2f9..2d2a458577 100644
--- a/keyboards/keychron/v5/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/v5/iso_encoder/iso_encoder.c
@@ -132,4 +132,37 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB12_CA2, CB10_CA2, CB11_CA2},
{1, CB12_CA7, CB10_CA7, CB11_CA7}
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, __, 1, 2, 3, 4, __, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
+ { 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, __, 31, 32, 33 },
+ { 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 64, 68, 48, 49, 50 },
+ { 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 16, 63, 34, 65, 66, 67 },
+ { 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, __, 81, 82, 83, 84, 85 },
+ { 86, 87, 88, __, __, 98, 89, __, __, __, 90, 91, 92, 93, 94, 95, 96, 97 },
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {24,0}, {36,0}, {48,0}, {60,0}, {78,0}, {90,0}, {103,0}, {115,0}, {133,0}, {145,0}, {157,0}, {169,0}, {184,0}, {196,0}, {208,0}, {224,0},
+ {0,15}, {12,15}, {24,15}, {36,15}, {48,15}, {60,15}, {72,15}, {85,15}, {97,15}, {109,15}, {121,15}, {133,15}, {145,15}, {163,15}, {188,15}, {200,15}, {212,15}, {224,15},
+ {3,26}, {18,26}, {30,26}, {42,26}, {54,26}, {66,26}, {78,26}, {91,26}, {103,26}, {115,26}, {127,26}, {139,26}, {151,26}, {188,26}, {200,26}, {212,26},
+ {5,38}, {21,38}, {33,38}, {45,38}, {57,38}, {69,38}, {81,38}, {94,38}, {106,38}, {118,38}, {130,38}, {142,38}, {154,38}, {170,34}, {188,38}, {200,38}, {212,38}, {224,32},
+ {3,49}, {15,49}, {27,49}, {39,49}, {51,49}, {63,49}, {75,49}, {88,49}, {100,49}, {112,49}, {124,49}, {136,49}, {152,49}, {172,52}, {188,49}, {200,49}, {212,49},
+ {1,61}, {17,61}, {32,61}, {77,61}, {121,61}, {133,61}, {145,61}, {160,64}, {172,64}, {184,64}, {200,61}, {212,61}, {224,55},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 8, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 4, 4, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v5/iso_encoder/keyboard.json b/keyboards/keychron/v5/iso_encoder/keyboard.json
index d6f1b69445..dfef0a7be7 100644
--- a/keyboards/keychron/v5/iso_encoder/keyboard.json
+++ b/keyboards/keychron/v5/iso_encoder/keyboard.json
@@ -24,109 +24,6 @@
"encoder": true,
"dip_switch": true
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 36, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 48, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 60, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 78, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 90, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 103, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 115, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 133, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 145, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 157, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 169, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 184, "y": 0, "flags": 1},
- {"matrix": [0, 16], "x": 196, "y": 0, "flags": 1},
- {"matrix": [0, 17], "x": 208, "y": 0, "flags": 1},
- {"matrix": [3, 12], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 12, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 24, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 36, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 48, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 60, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 72, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 85, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 97, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 109, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 121, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 133, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 145, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 163, "y": 15, "flags": 1},
- {"matrix": [1, 15], "x": 188, "y": 15, "flags": 8},
- {"matrix": [1, 16], "x": 200, "y": 15, "flags": 4},
- {"matrix": [1, 17], "x": 212, "y": 15, "flags": 4},
- {"matrix": [3, 14], "x": 224, "y": 15, "flags": 4},
- {"matrix": [2, 0], "x": 3, "y": 26, "flags": 1},
- {"matrix": [2, 1], "x": 18, "y": 26, "flags": 4},
- {"matrix": [2, 2], "x": 30, "y": 26, "flags": 4},
- {"matrix": [2, 3], "x": 42, "y": 26, "flags": 4},
- {"matrix": [2, 4], "x": 54, "y": 26, "flags": 4},
- {"matrix": [2, 5], "x": 66, "y": 26, "flags": 4},
- {"matrix": [2, 6], "x": 78, "y": 26, "flags": 4},
- {"matrix": [2, 7], "x": 91, "y": 26, "flags": 4},
- {"matrix": [2, 8], "x": 103, "y": 26, "flags": 4},
- {"matrix": [2, 9], "x": 115, "y": 26, "flags": 4},
- {"matrix": [2, 10], "x": 127, "y": 26, "flags": 4},
- {"matrix": [2, 11], "x": 139, "y": 26, "flags": 4},
- {"matrix": [2, 12], "x": 151, "y": 26, "flags": 4},
- {"matrix": [2, 15], "x": 188, "y": 26, "flags": 4},
- {"matrix": [2, 16], "x": 200, "y": 26, "flags": 4},
- {"matrix": [2, 17], "x": 212, "y": 26, "flags": 4},
- {"matrix": [3, 0], "x": 5, "y": 38, "flags": 8},
- {"matrix": [3, 1], "x": 21, "y": 38, "flags": 4},
- {"matrix": [3, 2], "x": 33, "y": 38, "flags": 4},
- {"matrix": [3, 3], "x": 45, "y": 38, "flags": 4},
- {"matrix": [3, 4], "x": 57, "y": 38, "flags": 4},
- {"matrix": [3, 5], "x": 69, "y": 38, "flags": 4},
- {"matrix": [3, 6], "x": 81, "y": 38, "flags": 4},
- {"matrix": [3, 7], "x": 94, "y": 38, "flags": 4},
- {"matrix": [3, 8], "x": 106, "y": 38, "flags": 4},
- {"matrix": [3, 9], "x": 118, "y": 38, "flags": 4},
- {"matrix": [3, 10], "x": 130, "y": 38, "flags": 4},
- {"matrix": [3, 11], "x": 142, "y": 38, "flags": 4},
- {"matrix": [3, 13], "x": 154, "y": 38, "flags": 4},
- {"matrix": [2, 13], "x": 170, "y": 34, "flags": 1},
- {"matrix": [3, 15], "x": 188, "y": 38, "flags": 4},
- {"matrix": [3, 16], "x": 200, "y": 38, "flags": 4},
- {"matrix": [3, 17], "x": 212, "y": 38, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4},
- {"matrix": [4, 0], "x": 3, "y": 49, "flags": 1},
- {"matrix": [4, 1], "x": 15, "y": 49, "flags": 4},
- {"matrix": [4, 2], "x": 27, "y": 49, "flags": 4},
- {"matrix": [4, 3], "x": 39, "y": 49, "flags": 4},
- {"matrix": [4, 4], "x": 51, "y": 49, "flags": 4},
- {"matrix": [4, 5], "x": 63, "y": 49, "flags": 4},
- {"matrix": [4, 6], "x": 75, "y": 49, "flags": 4},
- {"matrix": [4, 7], "x": 88, "y": 49, "flags": 4},
- {"matrix": [4, 8], "x": 100, "y": 49, "flags": 4},
- {"matrix": [4, 9], "x": 112, "y": 49, "flags": 4},
- {"matrix": [4, 10], "x": 124, "y": 49, "flags": 4},
- {"matrix": [4, 11], "x": 136, "y": 49, "flags": 4},
- {"matrix": [4, 13], "x": 152, "y": 49, "flags": 1},
- {"matrix": [4, 14], "x": 172, "y": 52, "flags": 1},
- {"matrix": [4, 15], "x": 188, "y": 49, "flags": 4},
- {"matrix": [4, 16], "x": 200, "y": 49, "flags": 4},
- {"matrix": [4, 17], "x": 212, "y": 49, "flags": 4},
- {"matrix": [5, 0], "x": 1, "y": 61, "flags": 1},
- {"matrix": [5, 1], "x": 17, "y": 61, "flags": 1},
- {"matrix": [5, 2], "x": 32, "y": 61, "flags": 1},
- {"matrix": [5, 6], "x": 77, "y": 61, "flags": 4},
- {"matrix": [5, 10], "x": 121, "y": 61, "flags": 1},
- {"matrix": [5, 11], "x": 133, "y": 61, "flags": 1},
- {"matrix": [5, 12], "x": 145, "y": 61, "flags": 1},
- {"matrix": [5, 13], "x": 160, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 172, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 184, "y": 64, "flags": 1},
- {"matrix": [5, 16], "x": 200, "y": 61, "flags": 4},
- {"matrix": [5, 17], "x": 212, "y": 61, "flags": 4},
- {"matrix": [5, 5], "x": 224, "y": 55, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_iso_99": {
"layout": [
diff --git a/keyboards/keychron/v6/ansi/ansi.c b/keyboards/keychron/v6/ansi/ansi.c
index c8dc8c95c6..2e055e57af 100644
--- a/keyboards/keychron/v6/ansi/ansi.c
+++ b/keyboards/keychron/v6/ansi/ansi.c
@@ -139,4 +139,34 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB12_CA12, CB10_CA12, CB11_CA12},
{1, CB12_CA9, CB10_CA9, CB11_CA9},
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14, 15, 39, 40, 16 },
+ { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 17 },
+ { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 18 },
+ { 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, __, 73, 60, 77, 76, 74, 75, 19 },
+ { 78, __, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, __, 89, 93, 90, 107, 91, 92, __ },
+ { 94, 95, 96, __, __, __, 97, __, __, __, 98, 99, 100, 101, 102, 103, 104, 105, 106, __ },
+ },
+ {
+ {0,0}, {21,0}, {31,0}, {42,0}, {52,0}, {68,0}, {78,0}, {89,0}, {99,0}, {115,0}, {125,0}, {136,0}, {146,0}, {159,0}, {169,0}, {180,0}, {193,0}, {203,0}, {214,0}, {224,0},
+ {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15},
+ {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {143,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27},
+ {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {139,40}, {193,40}, {203,40}, {214,40}, {224,34},
+ {7,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52},
+ {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, {224,58},
+ },
+ {
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v6/ansi/keyboard.json b/keyboards/keychron/v6/ansi/keyboard.json
index 6733c196b7..e68f3cdec8 100644
--- a/keyboards/keychron/v6/ansi/keyboard.json
+++ b/keyboards/keychron/v6/ansi/keyboard.json
@@ -18,118 +18,6 @@
"rgb_matrix": true,
"dip_switch": true
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 21, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 31, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 52, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 68, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 78, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 89, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 99, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 115, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 125, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 136, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 146, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1},
- {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1},
- {"matrix": [0, 19], "x": 193, "y": 0, "flags": 1},
- {"matrix": [1, 19], "x": 203, "y": 0, "flags": 1},
- {"matrix": [2, 19], "x": 214, "y": 0, "flags": 1},
- {"matrix": [3, 19], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1},
- {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1},
- {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1},
- {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1},
- {"matrix": [1, 17], "x": 193, "y": 15, "flags": 8},
- {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4},
- {"matrix": [0, 17], "x": 214, "y": 15, "flags": 4},
- {"matrix": [0, 18], "x": 224, "y": 15, "flags": 4},
- {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1},
- {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4},
- {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4},
- {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4},
- {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4},
- {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4},
- {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4},
- {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4},
- {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4},
- {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4},
- {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4},
- {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4},
- {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4},
- {"matrix": [2, 13], "x": 143, "y": 27, "flags": 4},
- {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1},
- {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1},
- {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1},
- {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4},
- {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4},
- {"matrix": [3, 14], "x": 214, "y": 27, "flags": 4},
- {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8},
- {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4},
- {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4},
- {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4},
- {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4},
- {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4},
- {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4},
- {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4},
- {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4},
- {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4},
- {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4},
- {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4},
- {"matrix": [3, 13], "x": 139, "y": 40, "flags": 1},
- {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4},
- {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4},
- {"matrix": [3, 16], "x": 214, "y": 40, "flags": 4},
- {"matrix": [3, 15], "x": 224, "y": 34, "flags": 4},
- {"matrix": [4, 0], "x": 7, "y": 52, "flags": 1},
- {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4},
- {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4},
- {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4},
- {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4},
- {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4},
- {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4},
- {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4},
- {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4},
- {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4},
- {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4},
- {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1},
- {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1},
- {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4},
- {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4},
- {"matrix": [4, 14], "x": 214, "y": 52, "flags": 4},
- {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1},
- {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1},
- {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4},
- {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1},
- {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1},
- {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1},
- {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1},
- {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1},
- {"matrix": [5, 17], "x": 198, "y": 64, "flags": 1},
- {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4},
- {"matrix": [4, 16], "x": 224, "y": 58, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_ansi_108": {
"layout": [
diff --git a/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c
index fa08ec41aa..1ebf947912 100644
--- a/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c
@@ -141,4 +141,37 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB12_CA12, CB10_CA12, CB11_CA12},
{1, CB12_CA9, CB10_CA9, CB11_CA9},
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14, 15, 39, 40, 16 },
+ { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 17 },
+ { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 18 },
+ { 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, __, 73, 60, 77, 76, 74, 75, 19 },
+ { 78, __, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, __, 89, 93, 90, 107, 91, 92, __ },
+ { 94, 95, 96, __, __, __, 97, __, __, __, 98, 99, 100, 101, 102, 103, 104, 105, 106, __ },
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {13,0}, {24,0}, {34,0}, {45,0}, {57,0}, {68,0}, {78,0}, {89,0}, {102,0}, {112,0}, {123,0}, {133,0}, {159,0}, {169,0}, {180,0}, {193,0}, {203,0}, {214,0}, {224,0},
+ {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15},
+ {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {143,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27},
+ {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {139,40}, {193,40}, {203,40}, {214,40}, {224,34},
+ {7,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52},
+ {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, {224,58},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v6/ansi_encoder/keyboard.json b/keyboards/keychron/v6/ansi_encoder/keyboard.json
index 3427c3e633..6ccc6d415b 100644
--- a/keyboards/keychron/v6/ansi_encoder/keyboard.json
+++ b/keyboards/keychron/v6/ansi_encoder/keyboard.json
@@ -8,6 +8,9 @@
"pid": "0x0361",
"device_version": "1.0.0"
},
+ "rgb_matrix": {
+ "driver": "snled27351"
+ },
"encoder": {
"rotary": [
{"pin_a": "C14", "pin_b": "A2"}
@@ -24,119 +27,6 @@
"encoder": true,
"dip_switch": true
},
- "rgb_matrix": {
- "driver": "snled27351",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 13, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 34, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 45, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 57, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 68, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 78, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 89, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 102, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 112, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 123, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 133, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1},
- {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1},
- {"matrix": [0, 19], "x": 193, "y": 0, "flags": 1},
- {"matrix": [1, 19], "x": 203, "y": 0, "flags": 1},
- {"matrix": [2, 19], "x": 214, "y": 0, "flags": 1},
- {"matrix": [3, 19], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1},
- {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1},
- {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1},
- {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1},
- {"matrix": [1, 17], "x": 193, "y": 15, "flags": 8},
- {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4},
- {"matrix": [0, 17], "x": 214, "y": 15, "flags": 4},
- {"matrix": [0, 18], "x": 224, "y": 15, "flags": 4},
- {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1},
- {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4},
- {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4},
- {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4},
- {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4},
- {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4},
- {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4},
- {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4},
- {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4},
- {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4},
- {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4},
- {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4},
- {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4},
- {"matrix": [2, 13], "x": 143, "y": 27, "flags": 4},
- {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1},
- {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1},
- {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1},
- {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4},
- {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4},
- {"matrix": [3, 14], "x": 214, "y": 27, "flags": 4},
- {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8},
- {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4},
- {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4},
- {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4},
- {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4},
- {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4},
- {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4},
- {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4},
- {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4},
- {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4},
- {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4},
- {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4},
- {"matrix": [3, 13], "x": 139, "y": 40, "flags": 1},
- {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4},
- {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4},
- {"matrix": [3, 16], "x": 214, "y": 40, "flags": 4},
- {"matrix": [3, 15], "x": 224, "y": 34, "flags": 4},
- {"matrix": [4, 0], "x": 7, "y": 52, "flags": 1},
- {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4},
- {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4},
- {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4},
- {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4},
- {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4},
- {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4},
- {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4},
- {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4},
- {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4},
- {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4},
- {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1},
- {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1},
- {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4},
- {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4},
- {"matrix": [4, 14], "x": 214, "y": 52, "flags": 4},
- {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1},
- {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1},
- {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4},
- {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1},
- {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1},
- {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1},
- {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1},
- {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1},
- {"matrix": [5, 17], "x": 198, "y": 64, "flags": 1},
- {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4},
- {"matrix": [4, 16], "x": 224, "y": 58, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_ansi_109": {
"layout": [
diff --git a/keyboards/keychron/v6/iso/iso.c b/keyboards/keychron/v6/iso/iso.c
index 0675e47a3b..cc9dbd8c23 100644
--- a/keyboards/keychron/v6/iso/iso.c
+++ b/keyboards/keychron/v6/iso/iso.c
@@ -142,4 +142,37 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB12_CA12, CB10_CA12, CB11_CA12},
{1, CB12_CA9, CB10_CA9, CB11_CA9},
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14, 15, 39, 40, 16 },
+ { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 17 },
+ { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 73, 54, 55, 56, 57, 58, 18 },
+ { 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, __, 72, 59, 77, 76, 74, 75, 19 },
+ { 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, __, 90, 94, 91, 108, 92, 93, __ },
+ { 95, 96, 97, __, __, __, 98, __, __, __, 99, 100, 101, 102, 103, 104, 105, 106, 107, __ },
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {21,0}, {31,0}, {42,0}, {52,0}, {68,0}, {78,0}, {89,0}, {99,0}, {115,0}, {125,0}, {136,0}, {146,0}, {159,0}, {169,0}, {180,0}, {193,0}, {203,0}, {214,0}, {224,0},
+ {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15},
+ {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27},
+ {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {133,40}, {147,36}, {193,40}, {203,40}, {214,40}, {224,34},
+ {1,52}, {13,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52},
+ {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, {224,58},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v6/iso/keyboard.json b/keyboards/keychron/v6/iso/keyboard.json
index 9310919456..e2f17e4f6e 100644
--- a/keyboards/keychron/v6/iso/keyboard.json
+++ b/keyboards/keychron/v6/iso/keyboard.json
@@ -8,6 +8,9 @@
"pid": "0x0362",
"device_version": "1.0.0"
},
+ "rgb_matrix": {
+ "driver": "snled27351"
+ },
"processor": "STM32L432",
"bootloader": "stm32-dfu",
"features": {
@@ -18,120 +21,6 @@
"rgb_matrix": true,
"dip_switch": true
},
- "rgb_matrix": {
- "driver": "snled27351",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 21, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 31, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 52, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 68, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 78, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 89, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 99, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 115, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 125, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 136, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 146, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1},
- {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1},
- {"matrix": [0, 19], "x": 193, "y": 0, "flags": 1},
- {"matrix": [1, 19], "x": 203, "y": 0, "flags": 1},
- {"matrix": [2, 19], "x": 214, "y": 0, "flags": 1},
- {"matrix": [3, 19], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1},
- {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1},
- {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1},
- {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1},
- {"matrix": [1, 17], "x": 193, "y": 15, "flags": 8},
- {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4},
- {"matrix": [0, 17], "x": 214, "y": 15, "flags": 4},
- {"matrix": [0, 18], "x": 224, "y": 15, "flags": 4},
- {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1},
- {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4},
- {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4},
- {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4},
- {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4},
- {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4},
- {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4},
- {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4},
- {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4},
- {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4},
- {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4},
- {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4},
- {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4},
- {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1},
- {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1},
- {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1},
- {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4},
- {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4},
- {"matrix": [3, 14], "x": 214, "y": 27, "flags": 4},
- {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8},
- {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4},
- {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4},
- {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4},
- {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4},
- {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4},
- {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4},
- {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4},
- {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4},
- {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4},
- {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4},
- {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4},
- {"matrix": [3, 13], "x": 133, "y": 40, "flags": 4},
- {"matrix": [2, 13], "x": 147, "y": 36, "flags": 1},
- {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4},
- {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4},
- {"matrix": [3, 16], "x": 214, "y": 40, "flags": 4},
- {"matrix": [3, 15], "x": 224, "y": 34, "flags": 4},
- {"matrix": [4, 0], "x": 1, "y": 52, "flags": 1},
- {"matrix": [4, 1], "x": 13, "y": 52, "flags": 4},
- {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4},
- {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4},
- {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4},
- {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4},
- {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4},
- {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4},
- {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4},
- {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4},
- {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4},
- {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4},
- {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1},
- {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1},
- {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4},
- {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4},
- {"matrix": [4, 14], "x": 214, "y": 52, "flags": 4},
- {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1},
- {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1},
- {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4},
- {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1},
- {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1},
- {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1},
- {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1},
- {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1},
- {"matrix": [5, 17], "x": 198, "y": 64, "flags": 1},
- {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4},
- {"matrix": [4, 16], "x": 224, "y": 58, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_iso_109": {
"layout": [
diff --git a/keyboards/keychron/v6/iso_encoder/iso_encoder.c b/keyboards/keychron/v6/iso_encoder/iso_encoder.c
index 0675e47a3b..f1a8e18acf 100644
--- a/keyboards/keychron/v6/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/v6/iso_encoder/iso_encoder.c
@@ -142,4 +142,37 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB12_CA12, CB10_CA12, CB11_CA12},
{1, CB12_CA9, CB10_CA9, CB11_CA9},
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14, 15, 39, 40, 16 },
+ { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 17 },
+ { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 73, 54, 55, 56, 57, 58, 18 },
+ { 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, __, 72, 59, 77, 76, 74, 75, 19 },
+ { 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, __, 90, 94, 91, 108, 92, 93, __ },
+ { 95, 96, 97, __, __, __, 98, __, __, __, 99, 100, 101, 102, 103, 104, 105, 106, 107, __ },
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {13,0}, {24,0}, {34,0}, {45,0}, {57,0}, {68,0}, {78,0}, {89,0}, {102,0}, {112,0}, {123,0}, {133,0}, {159,0}, {169,0}, {180,0}, {193,0}, {203,0}, {214,0}, {224,0},
+ {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15},
+ {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27},
+ {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {133,40}, {147,36}, {193,40}, {203,40}, {214,40}, {224,34},
+ {1,52}, {13,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52},
+ {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, {224,58},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v6/iso_encoder/keyboard.json b/keyboards/keychron/v6/iso_encoder/keyboard.json
index 858c33a692..d7469b54e0 100644
--- a/keyboards/keychron/v6/iso_encoder/keyboard.json
+++ b/keyboards/keychron/v6/iso_encoder/keyboard.json
@@ -8,6 +8,9 @@
"pid": "0x0363",
"device_version": "1.0.0"
},
+ "rgb_matrix": {
+ "driver": "snled27351"
+ },
"encoder": {
"rotary": [
{"pin_a": "C14", "pin_b": "A2"}
@@ -24,120 +27,6 @@
"encoder": true,
"dip_switch": true
},
- "rgb_matrix": {
- "driver": "snled27351",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 13, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 34, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 45, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 57, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 68, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 78, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 89, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 102, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 112, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 123, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 133, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1},
- {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1},
- {"matrix": [0, 19], "x": 193, "y": 0, "flags": 1},
- {"matrix": [1, 19], "x": 203, "y": 0, "flags": 1},
- {"matrix": [2, 19], "x": 214, "y": 0, "flags": 1},
- {"matrix": [3, 19], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1},
- {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1},
- {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1},
- {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1},
- {"matrix": [1, 17], "x": 193, "y": 15, "flags": 8},
- {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4},
- {"matrix": [0, 17], "x": 214, "y": 15, "flags": 4},
- {"matrix": [0, 18], "x": 224, "y": 15, "flags": 4},
- {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1},
- {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4},
- {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4},
- {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4},
- {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4},
- {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4},
- {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4},
- {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4},
- {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4},
- {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4},
- {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4},
- {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4},
- {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4},
- {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1},
- {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1},
- {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1},
- {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4},
- {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4},
- {"matrix": [3, 14], "x": 214, "y": 27, "flags": 4},
- {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8},
- {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4},
- {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4},
- {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4},
- {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4},
- {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4},
- {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4},
- {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4},
- {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4},
- {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4},
- {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4},
- {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4},
- {"matrix": [3, 13], "x": 133, "y": 40, "flags": 4},
- {"matrix": [2, 13], "x": 147, "y": 36, "flags": 1},
- {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4},
- {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4},
- {"matrix": [3, 16], "x": 214, "y": 40, "flags": 4},
- {"matrix": [3, 15], "x": 224, "y": 34, "flags": 4},
- {"matrix": [4, 0], "x": 1, "y": 52, "flags": 1},
- {"matrix": [4, 1], "x": 13, "y": 52, "flags": 4},
- {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4},
- {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4},
- {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4},
- {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4},
- {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4},
- {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4},
- {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4},
- {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4},
- {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4},
- {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4},
- {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1},
- {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1},
- {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4},
- {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4},
- {"matrix": [4, 14], "x": 214, "y": 52, "flags": 4},
- {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1},
- {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1},
- {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4},
- {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1},
- {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1},
- {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1},
- {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1},
- {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1},
- {"matrix": [5, 17], "x": 198, "y": 64, "flags": 1},
- {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4},
- {"matrix": [4, 16], "x": 224, "y": 58, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_iso_110": {
"layout": [
diff --git a/keyboards/keychron/v7/ansi/ansi.c b/keyboards/keychron/v7/ansi/ansi.c
index f246a16910..4d0bedff09 100644
--- a/keyboards/keychron/v7/ansi/ansi.c
+++ b/keyboards/keychron/v7/ansi/ansi.c
@@ -104,4 +104,34 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB6_CA15, CB4_CA15, CB5_CA15},
{1, CB6_CA16, CB4_CA16, CB5_CA16},
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
+ { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 },
+ { 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, __, 44, 45, 46 },
+ { 47, __, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, __, 58, 59, 60 },
+ { 61, 62, 63, __, __, __, 64, __, __, 65, 66, 67, 68, 69, 70, 71 },
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {14,0}, {28,0}, {42,0}, {56,0}, {70,0}, {84,0}, {98,0}, {112,0}, {126,0}, {140,0}, {154,0}, {168,0}, {189,0}, {210,0}, {224,0},
+ {4,16}, {21,16}, {35,16}, {49,16}, {63,16}, {77,16}, {91,16}, {105,16}, {119,16}, {133,16}, {147,16}, {161,16}, {175,16}, {192,16}, {210,16}, {224,16},
+ {5,32}, {25,32}, {38,32}, {52,32}, {66,32}, {80,32}, {94,32}, {108,32}, {122,32}, {136,32}, {150,32}, {164,32}, {187,32}, {210,32}, {224,32},
+ {9,48}, {32,48}, {45,48}, {59,48}, {73,48}, {87,48}, {101,48}, {115,48}, {129,48}, {143,48}, {157,48}, {184,48}, {210,48}, {224,48},
+ {2,64}, {19,64}, {37,64}, {89,64}, {140,64}, {154,64}, {168,64}, {182,64}, {196,64}, {210,64}, {224,64},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v7/ansi/keyboard.json b/keyboards/keychron/v7/ansi/keyboard.json
index 0fccc7b336..503aea5ab6 100644
--- a/keyboards/keychron/v7/ansi/keyboard.json
+++ b/keyboards/keychron/v7/ansi/keyboard.json
@@ -23,82 +23,6 @@
"diode_direction": "ROW2COL",
"processor": "STM32L432",
"bootloader": "stm32-dfu",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 14, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 28, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 42, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 56, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 70, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 84, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 98, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 126, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 140, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 154, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 168, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 189, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 210, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 21, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 35, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 49, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 63, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 77, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 91, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 105, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 119, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 133, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 147, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 161, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 175, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 192, "y": 16, "flags": 4},
- {"matrix": [1, 14], "x": 210, "y": 16, "flags": 1},
- {"matrix": [1, 15], "x": 224, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 5, "y": 32, "flags": 8},
- {"matrix": [2, 1], "x": 25, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 38, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 52, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 66, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 94, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 108, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 122, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 136, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 150, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 164, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 187, "y": 32, "flags": 1},
- {"matrix": [2, 14], "x": 210, "y": 32, "flags": 1},
- {"matrix": [2, 15], "x": 224, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1},
- {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 45, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 59, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 73, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 87, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 101, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 115, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 129, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 143, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 157, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 184, "y": 48, "flags": 1},
- {"matrix": [3, 14], "x": 210, "y": 48, "flags": 1},
- {"matrix": [3, 15], "x": 224, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 19, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 37, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 89, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 140, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 154, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 168, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 182, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 196, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 210, "y": 64, "flags": 1},
- {"matrix": [4, 15], "x": 224, "y": 64, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_ansi_72": {
"layout": [
diff --git a/keyboards/keychron/v7/iso/iso.c b/keyboards/keychron/v7/iso/iso.c
index 0de3fb4894..cdd2d97209 100644
--- a/keyboards/keychron/v7/iso/iso.c
+++ b/keyboards/keychron/v7/iso/iso.c
@@ -105,4 +105,34 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB6_CA15, CB4_CA15, CB5_CA15},
{1, CB6_CA16, CB4_CA16, CB5_CA16},
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
+ { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 44, 29, 30 },
+ { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, __, 43, 45, 46 },
+ { 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, __, 59, 60, 61 },
+ { 62, 63, 64, __, __, __, 65, __, __, 66, 67, 68, 69, 70, 71, 72 },
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {14,0}, {28,0}, {42,0}, {56,0}, {70,0}, {84,0}, {98,0}, {112,0}, {126,0}, {140,0}, {154,0}, {168,0}, {189,0}, {210,0}, {224,0},
+ {4,16}, {21,16}, {35,16}, {49,16}, {63,16}, {77,16}, {91,16}, {105,16}, {119,16}, {133,16}, {147,16}, {161,16}, {175,16}, {210,16}, {224,16},
+ {5,32}, {25,32}, {38,32}, {52,32}, {66,32}, {80,32}, {94,32}, {108,32}, {122,32}, {136,32}, {150,32}, {164,32}, {178,32}, {197,27}, {210,32}, {224,32},
+ {2,48}, {18,48}, {32,48}, {45,48}, {59,48}, {73,48}, {87,48}, {101,48}, {115,48}, {129,48}, {143,48}, {157,48}, {184,48}, {210,48}, {224,48},
+ {2,64}, {19,64}, {37,64}, {89,64}, {140,64}, {154,64}, {168,64}, {182,64}, {196,64}, {210,64}, {224,64},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v7/iso/keyboard.json b/keyboards/keychron/v7/iso/keyboard.json
index 4e57beb985..ec4cd06e6b 100644
--- a/keyboards/keychron/v7/iso/keyboard.json
+++ b/keyboards/keychron/v7/iso/keyboard.json
@@ -23,83 +23,6 @@
"diode_direction": "ROW2COL",
"processor": "STM32L432",
"bootloader": "stm32-dfu",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 14, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 28, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 42, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 56, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 70, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 84, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 98, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 126, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 140, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 154, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 168, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 189, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 210, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 21, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 35, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 49, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 63, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 77, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 91, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 105, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 119, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 133, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 147, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 161, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 175, "y": 16, "flags": 4},
- {"matrix": [1, 14], "x": 210, "y": 16, "flags": 1},
- {"matrix": [1, 15], "x": 224, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 5, "y": 32, "flags": 8},
- {"matrix": [2, 1], "x": 25, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 38, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 52, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 66, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 94, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 108, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 122, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 136, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 150, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 164, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 178, "y": 32, "flags": 4},
- {"matrix": [1, 13], "x": 197, "y": 27, "flags": 1},
- {"matrix": [2, 14], "x": 210, "y": 32, "flags": 1},
- {"matrix": [2, 15], "x": 224, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 2, "y": 48, "flags": 1},
- {"matrix": [3, 1], "x": 18, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 45, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 59, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 73, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 87, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 101, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 115, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 129, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 143, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 157, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 184, "y": 48, "flags": 1},
- {"matrix": [3, 14], "x": 210, "y": 48, "flags": 1},
- {"matrix": [3, 15], "x": 224, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 19, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 37, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 89, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 140, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 154, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 168, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 182, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 196, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 210, "y": 64, "flags": 1},
- {"matrix": [4, 15], "x": 224, "y": 64, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_iso_73": {
"layout": [
diff --git a/keyboards/keychron/v8/ansi/ansi.c b/keyboards/keychron/v8/ansi/ansi.c
index 82c6e533a1..fcc232511f 100644
--- a/keyboards/keychron/v8/ansi/ansi.c
+++ b/keyboards/keychron/v8/ansi/ansi.c
@@ -102,4 +102,34 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB6_CA2, CB4_CA2, CB5_CA2},
{1, CB6_CA1, CB4_CA1, CB5_CA1}
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
+ { 30, 31, 32, 33, 34, 35, __, 36, 37, 38, 39, 40, 41, 42, 43 },
+ { 44, __, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 },
+ { 58, 59, 60, 61, __, __, 62, 63, 64, 65, __, __, 66, 67, 68 },
+ },
+ {
+ // LED Index to Physical Position
+ {7,1}, {20,1}, {33,0}, {48,3}, {61,6}, {74,8 }, {87,11}, {106,11}, {119,8}, {132,6}, {145,3}, {160,0}, {173,1}, {193,1}, {220,0},
+ {7,14}, {24,14}, {39,14}, {52,17}, {65,20}, {78,22}, {103,25}, {116,22}, {129,20}, {142,17}, {155,14}, {170,14}, {183,14}, {200,14}, {222,16},
+ {6,27}, {24,27}, {39,28}, {52,30}, {65,33}, {78,36}, {109,37}, {122,34}, {135,32}, {148,29}, {162,27}, {176,27}, {197,27}, {224,29},
+ {7,40}, {28,40}, {43,42}, {56,44}, {69,47}, {82,50}, {102,52}, {115,49}, {128,46}, {141,44}, {154,41}, {169,40}, {187,40}, {209,43},
+ {0,53}, {17,53}, {42,55}, {65,60}, {86,64}, {107,64}, {131,59}, {156,54}, {196,56}, {209,56}, {222,56},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 4, 1, 1, 4, 1, 1, 1, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v8/ansi/keyboard.json b/keyboards/keychron/v8/ansi/keyboard.json
index 9f54c60c3d..392783e024 100644
--- a/keyboards/keychron/v8/ansi/keyboard.json
+++ b/keyboards/keychron/v8/ansi/keyboard.json
@@ -23,79 +23,6 @@
"diode_direction": "ROW2COL",
"processor": "STM32L432",
"bootloader": "stm32-dfu",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 7, "y": 1, "flags": 1},
- {"matrix": [0, 1], "x": 20, "y": 1, "flags": 4},
- {"matrix": [0, 2], "x": 33, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 3, "flags": 4},
- {"matrix": [0, 4], "x": 61, "y": 6, "flags": 4},
- {"matrix": [0, 5], "x": 74, "y": 8, "flags": 4},
- {"matrix": [0, 6], "x": 87, "y": 11, "flags": 4},
- {"matrix": [0, 7], "x": 106, "y": 11, "flags": 4},
- {"matrix": [0, 8], "x": 119, "y": 8, "flags": 4},
- {"matrix": [0, 9], "x": 132, "y": 6, "flags": 4},
- {"matrix": [0, 10], "x": 145, "y": 3, "flags": 4},
- {"matrix": [0, 11], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 173, "y": 1, "flags": 4},
- {"matrix": [0, 13], "x": 193, "y": 1, "flags": 1},
- {"matrix": [0, 14], "x": 220, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 7, "y": 14, "flags": 1},
- {"matrix": [1, 1], "x": 24, "y": 14, "flags": 4},
- {"matrix": [1, 2], "x": 39, "y": 14, "flags": 4},
- {"matrix": [1, 3], "x": 52, "y": 17, "flags": 4},
- {"matrix": [1, 4], "x": 65, "y": 20, "flags": 4},
- {"matrix": [1, 5], "x": 78, "y": 22, "flags": 4},
- {"matrix": [1, 6], "x": 103, "y": 25, "flags": 4},
- {"matrix": [1, 7], "x": 116, "y": 22, "flags": 4},
- {"matrix": [1, 8], "x": 129, "y": 20, "flags": 4},
- {"matrix": [1, 9], "x": 142, "y": 17, "flags": 4},
- {"matrix": [1, 10], "x": 155, "y": 14, "flags": 4},
- {"matrix": [1, 11], "x": 170, "y": 14, "flags": 4},
- {"matrix": [1, 12], "x": 183, "y": 14, "flags": 4},
- {"matrix": [1, 13], "x": 200, "y": 14, "flags": 4},
- {"matrix": [1, 14], "x": 222, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 6, "y": 27, "flags": 8},
- {"matrix": [2, 1], "x": 24, "y": 27, "flags": 4},
- {"matrix": [2, 2], "x": 39, "y": 28, "flags": 4},
- {"matrix": [2, 3], "x": 52, "y": 30, "flags": 4},
- {"matrix": [2, 4], "x": 65, "y": 33, "flags": 4},
- {"matrix": [2, 5], "x": 78, "y": 36, "flags": 4},
- {"matrix": [2, 7], "x": 109, "y": 37, "flags": 4},
- {"matrix": [2, 8], "x": 122, "y": 34, "flags": 4},
- {"matrix": [2, 9], "x": 135, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 148, "y": 29, "flags": 4},
- {"matrix": [2, 11], "x": 162, "y": 27, "flags": 4},
- {"matrix": [2, 12], "x": 176, "y": 27, "flags": 4},
- {"matrix": [2, 13], "x": 197, "y": 27, "flags": 1},
- {"matrix": [2, 14], "x": 224, "y": 29, "flags": 1},
- {"matrix": [3, 0], "x": 7, "y": 40, "flags": 1},
- {"matrix": [3, 2], "x": 28, "y": 40, "flags": 4},
- {"matrix": [3, 3], "x": 43, "y": 42, "flags": 4},
- {"matrix": [3, 4], "x": 56, "y": 44, "flags": 4},
- {"matrix": [3, 5], "x": 69, "y": 47, "flags": 4},
- {"matrix": [3, 6], "x": 82, "y": 50, "flags": 4},
- {"matrix": [3, 7], "x": 102, "y": 52, "flags": 4},
- {"matrix": [3, 8], "x": 115, "y": 49, "flags": 4},
- {"matrix": [3, 9], "x": 128, "y": 46, "flags": 4},
- {"matrix": [3, 10], "x": 141, "y": 44, "flags": 4},
- {"matrix": [3, 11], "x": 154, "y": 41, "flags": 4},
- {"matrix": [3, 12], "x": 169, "y": 40, "flags": 4},
- {"matrix": [3, 13], "x": 187, "y": 40, "flags": 1},
- {"matrix": [3, 14], "x": 209, "y": 43, "flags": 1},
- {"matrix": [4, 0], "x": 0, "y": 53, "flags": 1},
- {"matrix": [4, 1], "x": 17, "y": 53, "flags": 1},
- {"matrix": [4, 2], "x": 42, "y": 55, "flags": 1},
- {"matrix": [4, 3], "x": 65, "y": 60, "flags": 4},
- {"matrix": [4, 6], "x": 86, "y": 64, "flags": 1},
- {"matrix": [4, 7], "x": 107, "y": 64, "flags": 1},
- {"matrix": [4, 8], "x": 131, "y": 59, "flags": 4},
- {"matrix": [4, 9], "x": 156, "y": 54, "flags": 1},
- {"matrix": [4, 12], "x": 196, "y": 56, "flags": 1},
- {"matrix": [4, 13], "x": 209, "y": 56, "flags": 1},
- {"matrix": [4, 14], "x": 222, "y": 56, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_ansi_69": {
"layout": [
diff --git a/keyboards/keychron/v8/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v8/ansi_encoder/ansi_encoder.c
index 82c6e533a1..fcc232511f 100644
--- a/keyboards/keychron/v8/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/v8/ansi_encoder/ansi_encoder.c
@@ -102,4 +102,34 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB6_CA2, CB4_CA2, CB5_CA2},
{1, CB6_CA1, CB4_CA1, CB5_CA1}
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
+ { 30, 31, 32, 33, 34, 35, __, 36, 37, 38, 39, 40, 41, 42, 43 },
+ { 44, __, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 },
+ { 58, 59, 60, 61, __, __, 62, 63, 64, 65, __, __, 66, 67, 68 },
+ },
+ {
+ // LED Index to Physical Position
+ {7,1}, {20,1}, {33,0}, {48,3}, {61,6}, {74,8 }, {87,11}, {106,11}, {119,8}, {132,6}, {145,3}, {160,0}, {173,1}, {193,1}, {220,0},
+ {7,14}, {24,14}, {39,14}, {52,17}, {65,20}, {78,22}, {103,25}, {116,22}, {129,20}, {142,17}, {155,14}, {170,14}, {183,14}, {200,14}, {222,16},
+ {6,27}, {24,27}, {39,28}, {52,30}, {65,33}, {78,36}, {109,37}, {122,34}, {135,32}, {148,29}, {162,27}, {176,27}, {197,27}, {224,29},
+ {7,40}, {28,40}, {43,42}, {56,44}, {69,47}, {82,50}, {102,52}, {115,49}, {128,46}, {141,44}, {154,41}, {169,40}, {187,40}, {209,43},
+ {0,53}, {17,53}, {42,55}, {65,60}, {86,64}, {107,64}, {131,59}, {156,54}, {196,56}, {209,56}, {222,56},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 4, 1, 1, 4, 1, 1, 1, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v8/ansi_encoder/keyboard.json b/keyboards/keychron/v8/ansi_encoder/keyboard.json
index 9ea3464084..6d3257feec 100644
--- a/keyboards/keychron/v8/ansi_encoder/keyboard.json
+++ b/keyboards/keychron/v8/ansi_encoder/keyboard.json
@@ -29,79 +29,6 @@
},
"processor": "STM32L432",
"bootloader": "stm32-dfu",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 7, "y": 1, "flags": 1},
- {"matrix": [0, 1], "x": 20, "y": 1, "flags": 4},
- {"matrix": [0, 2], "x": 33, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 3, "flags": 4},
- {"matrix": [0, 4], "x": 61, "y": 6, "flags": 4},
- {"matrix": [0, 5], "x": 74, "y": 8, "flags": 4},
- {"matrix": [0, 6], "x": 87, "y": 11, "flags": 4},
- {"matrix": [0, 7], "x": 106, "y": 11, "flags": 4},
- {"matrix": [0, 8], "x": 119, "y": 8, "flags": 4},
- {"matrix": [0, 9], "x": 132, "y": 6, "flags": 4},
- {"matrix": [0, 10], "x": 145, "y": 3, "flags": 4},
- {"matrix": [0, 11], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 173, "y": 1, "flags": 4},
- {"matrix": [0, 13], "x": 193, "y": 1, "flags": 1},
- {"matrix": [0, 14], "x": 220, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 7, "y": 14, "flags": 1},
- {"matrix": [1, 1], "x": 24, "y": 14, "flags": 4},
- {"matrix": [1, 2], "x": 39, "y": 14, "flags": 4},
- {"matrix": [1, 3], "x": 52, "y": 17, "flags": 4},
- {"matrix": [1, 4], "x": 65, "y": 20, "flags": 4},
- {"matrix": [1, 5], "x": 78, "y": 22, "flags": 4},
- {"matrix": [1, 6], "x": 103, "y": 25, "flags": 4},
- {"matrix": [1, 7], "x": 116, "y": 22, "flags": 4},
- {"matrix": [1, 8], "x": 129, "y": 20, "flags": 4},
- {"matrix": [1, 9], "x": 142, "y": 17, "flags": 4},
- {"matrix": [1, 10], "x": 155, "y": 14, "flags": 4},
- {"matrix": [1, 11], "x": 170, "y": 14, "flags": 4},
- {"matrix": [1, 12], "x": 183, "y": 14, "flags": 4},
- {"matrix": [1, 13], "x": 200, "y": 14, "flags": 4},
- {"matrix": [1, 14], "x": 222, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 6, "y": 27, "flags": 8},
- {"matrix": [2, 1], "x": 24, "y": 27, "flags": 4},
- {"matrix": [2, 2], "x": 39, "y": 28, "flags": 4},
- {"matrix": [2, 3], "x": 52, "y": 30, "flags": 4},
- {"matrix": [2, 4], "x": 65, "y": 33, "flags": 4},
- {"matrix": [2, 5], "x": 78, "y": 36, "flags": 4},
- {"matrix": [2, 7], "x": 109, "y": 37, "flags": 4},
- {"matrix": [2, 8], "x": 122, "y": 34, "flags": 4},
- {"matrix": [2, 9], "x": 135, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 148, "y": 29, "flags": 4},
- {"matrix": [2, 11], "x": 162, "y": 27, "flags": 4},
- {"matrix": [2, 12], "x": 176, "y": 27, "flags": 4},
- {"matrix": [2, 13], "x": 197, "y": 27, "flags": 1},
- {"matrix": [2, 14], "x": 224, "y": 29, "flags": 1},
- {"matrix": [3, 0], "x": 7, "y": 40, "flags": 1},
- {"matrix": [3, 2], "x": 28, "y": 40, "flags": 4},
- {"matrix": [3, 3], "x": 43, "y": 42, "flags": 4},
- {"matrix": [3, 4], "x": 56, "y": 44, "flags": 4},
- {"matrix": [3, 5], "x": 69, "y": 47, "flags": 4},
- {"matrix": [3, 6], "x": 82, "y": 50, "flags": 4},
- {"matrix": [3, 7], "x": 102, "y": 52, "flags": 4},
- {"matrix": [3, 8], "x": 115, "y": 49, "flags": 4},
- {"matrix": [3, 9], "x": 128, "y": 46, "flags": 4},
- {"matrix": [3, 10], "x": 141, "y": 44, "flags": 4},
- {"matrix": [3, 11], "x": 154, "y": 41, "flags": 4},
- {"matrix": [3, 12], "x": 169, "y": 40, "flags": 4},
- {"matrix": [3, 13], "x": 187, "y": 40, "flags": 1},
- {"matrix": [3, 14], "x": 209, "y": 43, "flags": 1},
- {"matrix": [4, 0], "x": 0, "y": 53, "flags": 1},
- {"matrix": [4, 1], "x": 17, "y": 53, "flags": 1},
- {"matrix": [4, 2], "x": 42, "y": 55, "flags": 1},
- {"matrix": [4, 3], "x": 65, "y": 60, "flags": 4},
- {"matrix": [4, 6], "x": 86, "y": 64, "flags": 1},
- {"matrix": [4, 7], "x": 107, "y": 64, "flags": 1},
- {"matrix": [4, 8], "x": 131, "y": 59, "flags": 4},
- {"matrix": [4, 9], "x": 156, "y": 54, "flags": 1},
- {"matrix": [4, 12], "x": 196, "y": 56, "flags": 1},
- {"matrix": [4, 13], "x": 209, "y": 56, "flags": 1},
- {"matrix": [4, 14], "x": 222, "y": 56, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_ansi_69": {
"layout": [
diff --git a/keyboards/keychron/v8/iso/iso.c b/keyboards/keychron/v8/iso/iso.c
index 8a84081a69..4658969a10 100644
--- a/keyboards/keychron/v8/iso/iso.c
+++ b/keyboards/keychron/v8/iso/iso.c
@@ -102,4 +102,34 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB6_CA2, CB4_CA2, CB5_CA2},
{1, CB6_CA1, CB4_CA1, CB5_CA1}
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 42, 28 },
+ { 29, 30, 31, 32, 33, 34, __, 35, 36, 37, 38, 39, 40, 41, 43 },
+ { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 },
+ { 59, 60, 61, 62, __, __, 63, 64, 65, 66, __, __, 67, 68, 69 },
+ },
+ {
+ // LED Index to Physical Position
+ {7,1}, {20,1}, {33,0}, {48,3}, {61,6}, {74,8}, {87,11}, {106,11}, {119,8}, {132,6}, {145,3}, {160,0}, {173,1}, {193,1}, {220,0},
+ {7,14}, {24,14}, {39,14}, {52,17}, {65,19}, {78,22}, {103,25}, {116,22}, {129,20}, {142,17}, {155,14}, {172,14}, {186,14}, {222,16},
+ {6,27}, {24,27}, {39,27}, {52,30}, {65,33}, {78,35}, {109,37}, {122,34}, {135,31}, {148,29}, {162,27}, {176,27}, {189,27}, {207,22}, {224,29},
+ {0,40}, {15,40}, {28,40}, {43,41}, {56,44}, {69,47}, {82,49}, {102,51}, {115,49}, {128,46}, {141,43}, {154,41}, {169,40}, {187,40}, {209,43},
+ {0,52}, {17,52}, {42,54}, {65,59}, {86,63}, {104,64}, {129,59}, {153,54}, {196,56}, {209,56}, {222,59},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v8/iso/keyboard.json b/keyboards/keychron/v8/iso/keyboard.json
index 6efda1a4d7..0d10662a00 100644
--- a/keyboards/keychron/v8/iso/keyboard.json
+++ b/keyboards/keychron/v8/iso/keyboard.json
@@ -23,80 +23,6 @@
"diode_direction": "ROW2COL",
"processor": "STM32L432",
"bootloader": "stm32-dfu",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 7, "y": 1, "flags": 1},
- {"matrix": [0, 1], "x": 20, "y": 1, "flags": 4},
- {"matrix": [0, 2], "x": 33, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 3, "flags": 4},
- {"matrix": [0, 4], "x": 61, "y": 6, "flags": 4},
- {"matrix": [0, 5], "x": 74, "y": 8, "flags": 4},
- {"matrix": [0, 6], "x": 87, "y": 11, "flags": 4},
- {"matrix": [0, 7], "x": 106, "y": 11, "flags": 4},
- {"matrix": [0, 8], "x": 119, "y": 8, "flags": 4},
- {"matrix": [0, 9], "x": 132, "y": 6, "flags": 4},
- {"matrix": [0, 10], "x": 145, "y": 3, "flags": 4},
- {"matrix": [0, 11], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 173, "y": 1, "flags": 4},
- {"matrix": [0, 13], "x": 193, "y": 1, "flags": 1},
- {"matrix": [0, 14], "x": 220, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 7, "y": 14, "flags": 1},
- {"matrix": [1, 1], "x": 24, "y": 14, "flags": 4},
- {"matrix": [1, 2], "x": 39, "y": 14, "flags": 4},
- {"matrix": [1, 3], "x": 52, "y": 17, "flags": 4},
- {"matrix": [1, 4], "x": 65, "y": 19, "flags": 4},
- {"matrix": [1, 5], "x": 78, "y": 22, "flags": 4},
- {"matrix": [1, 6], "x": 103, "y": 25, "flags": 4},
- {"matrix": [1, 7], "x": 116, "y": 22, "flags": 4},
- {"matrix": [1, 8], "x": 129, "y": 20, "flags": 4},
- {"matrix": [1, 9], "x": 142, "y": 17, "flags": 4},
- {"matrix": [1, 10], "x": 155, "y": 14, "flags": 4},
- {"matrix": [1, 11], "x": 172, "y": 14, "flags": 4},
- {"matrix": [1, 12], "x": 186, "y": 14, "flags": 4},
- {"matrix": [1, 14], "x": 222, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 6, "y": 27, "flags": 8},
- {"matrix": [2, 1], "x": 24, "y": 27, "flags": 4},
- {"matrix": [2, 2], "x": 39, "y": 27, "flags": 4},
- {"matrix": [2, 3], "x": 52, "y": 30, "flags": 4},
- {"matrix": [2, 4], "x": 65, "y": 33, "flags": 4},
- {"matrix": [2, 5], "x": 78, "y": 35, "flags": 4},
- {"matrix": [2, 7], "x": 109, "y": 37, "flags": 4},
- {"matrix": [2, 8], "x": 122, "y": 34, "flags": 4},
- {"matrix": [2, 9], "x": 135, "y": 31, "flags": 4},
- {"matrix": [2, 10], "x": 148, "y": 29, "flags": 4},
- {"matrix": [2, 11], "x": 162, "y": 27, "flags": 4},
- {"matrix": [2, 12], "x": 176, "y": 27, "flags": 4},
- {"matrix": [2, 13], "x": 189, "y": 27, "flags": 4},
- {"matrix": [1, 13], "x": 207, "y": 22, "flags": 1},
- {"matrix": [2, 14], "x": 224, "y": 29, "flags": 1},
- {"matrix": [3, 0], "x": 0, "y": 40, "flags": 1},
- {"matrix": [3, 1], "x": 15, "y": 40, "flags": 4},
- {"matrix": [3, 2], "x": 28, "y": 40, "flags": 4},
- {"matrix": [3, 3], "x": 43, "y": 41, "flags": 4},
- {"matrix": [3, 4], "x": 56, "y": 44, "flags": 4},
- {"matrix": [3, 5], "x": 69, "y": 47, "flags": 4},
- {"matrix": [3, 6], "x": 82, "y": 49, "flags": 4},
- {"matrix": [3, 7], "x": 102, "y": 51, "flags": 4},
- {"matrix": [3, 8], "x": 115, "y": 49, "flags": 4},
- {"matrix": [3, 9], "x": 128, "y": 46, "flags": 4},
- {"matrix": [3, 10], "x": 141, "y": 43, "flags": 4},
- {"matrix": [3, 11], "x": 154, "y": 41, "flags": 4},
- {"matrix": [3, 12], "x": 169, "y": 40, "flags": 4},
- {"matrix": [3, 13], "x": 187, "y": 40, "flags": 1},
- {"matrix": [3, 14], "x": 209, "y": 43, "flags": 1},
- {"matrix": [4, 0], "x": 0, "y": 52, "flags": 1},
- {"matrix": [4, 1], "x": 17, "y": 52, "flags": 1},
- {"matrix": [4, 2], "x": 42, "y": 54, "flags": 1},
- {"matrix": [4, 3], "x": 65, "y": 59, "flags": 1},
- {"matrix": [4, 6], "x": 86, "y": 63, "flags": 1},
- {"matrix": [4, 7], "x": 104, "y": 64, "flags": 1},
- {"matrix": [4, 8], "x": 129, "y": 59, "flags": 1},
- {"matrix": [4, 9], "x": 153, "y": 54, "flags": 1},
- {"matrix": [4, 12], "x": 196, "y": 56, "flags": 1},
- {"matrix": [4, 13], "x": 209, "y": 56, "flags": 1},
- {"matrix": [4, 14], "x": 222, "y": 59, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_iso_70": {
"layout": [
diff --git a/keyboards/keychron/v8/iso_encoder/iso_encoder.c b/keyboards/keychron/v8/iso_encoder/iso_encoder.c
index 8a84081a69..4658969a10 100644
--- a/keyboards/keychron/v8/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/v8/iso_encoder/iso_encoder.c
@@ -102,4 +102,34 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
{1, CB6_CA2, CB4_CA2, CB5_CA2},
{1, CB6_CA1, CB4_CA1, CB5_CA1}
};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 42, 28 },
+ { 29, 30, 31, 32, 33, 34, __, 35, 36, 37, 38, 39, 40, 41, 43 },
+ { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 },
+ { 59, 60, 61, 62, __, __, 63, 64, 65, 66, __, __, 67, 68, 69 },
+ },
+ {
+ // LED Index to Physical Position
+ {7,1}, {20,1}, {33,0}, {48,3}, {61,6}, {74,8}, {87,11}, {106,11}, {119,8}, {132,6}, {145,3}, {160,0}, {173,1}, {193,1}, {220,0},
+ {7,14}, {24,14}, {39,14}, {52,17}, {65,19}, {78,22}, {103,25}, {116,22}, {129,20}, {142,17}, {155,14}, {172,14}, {186,14}, {222,16},
+ {6,27}, {24,27}, {39,27}, {52,30}, {65,33}, {78,35}, {109,37}, {122,34}, {135,31}, {148,29}, {162,27}, {176,27}, {189,27}, {207,22}, {224,29},
+ {0,40}, {15,40}, {28,40}, {43,41}, {56,44}, {69,47}, {82,49}, {102,51}, {115,49}, {128,46}, {141,43}, {154,41}, {169,40}, {187,40}, {209,43},
+ {0,52}, {17,52}, {42,54}, {65,59}, {86,63}, {104,64}, {129,59}, {153,54}, {196,56}, {209,56}, {222,59},
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ }
+};
+
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/v8/iso_encoder/keyboard.json b/keyboards/keychron/v8/iso_encoder/keyboard.json
index d3db01d61f..d446d213d4 100644
--- a/keyboards/keychron/v8/iso_encoder/keyboard.json
+++ b/keyboards/keychron/v8/iso_encoder/keyboard.json
@@ -29,80 +29,6 @@
},
"processor": "STM32L432",
"bootloader": "stm32-dfu",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 7, "y": 1, "flags": 1},
- {"matrix": [0, 1], "x": 20, "y": 1, "flags": 4},
- {"matrix": [0, 2], "x": 33, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 3, "flags": 4},
- {"matrix": [0, 4], "x": 61, "y": 6, "flags": 4},
- {"matrix": [0, 5], "x": 74, "y": 8, "flags": 4},
- {"matrix": [0, 6], "x": 87, "y": 11, "flags": 4},
- {"matrix": [0, 7], "x": 106, "y": 11, "flags": 4},
- {"matrix": [0, 8], "x": 119, "y": 8, "flags": 4},
- {"matrix": [0, 9], "x": 132, "y": 6, "flags": 4},
- {"matrix": [0, 10], "x": 145, "y": 3, "flags": 4},
- {"matrix": [0, 11], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 173, "y": 1, "flags": 4},
- {"matrix": [0, 13], "x": 193, "y": 1, "flags": 1},
- {"matrix": [0, 14], "x": 220, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 7, "y": 14, "flags": 1},
- {"matrix": [1, 1], "x": 24, "y": 14, "flags": 4},
- {"matrix": [1, 2], "x": 39, "y": 14, "flags": 4},
- {"matrix": [1, 3], "x": 52, "y": 17, "flags": 4},
- {"matrix": [1, 4], "x": 65, "y": 19, "flags": 4},
- {"matrix": [1, 5], "x": 78, "y": 22, "flags": 4},
- {"matrix": [1, 6], "x": 103, "y": 25, "flags": 4},
- {"matrix": [1, 7], "x": 116, "y": 22, "flags": 4},
- {"matrix": [1, 8], "x": 129, "y": 20, "flags": 4},
- {"matrix": [1, 9], "x": 142, "y": 17, "flags": 4},
- {"matrix": [1, 10], "x": 155, "y": 14, "flags": 4},
- {"matrix": [1, 11], "x": 172, "y": 14, "flags": 4},
- {"matrix": [1, 12], "x": 186, "y": 14, "flags": 4},
- {"matrix": [1, 14], "x": 222, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 6, "y": 27, "flags": 8},
- {"matrix": [2, 1], "x": 24, "y": 27, "flags": 4},
- {"matrix": [2, 2], "x": 39, "y": 27, "flags": 4},
- {"matrix": [2, 3], "x": 52, "y": 30, "flags": 4},
- {"matrix": [2, 4], "x": 65, "y": 33, "flags": 4},
- {"matrix": [2, 5], "x": 78, "y": 35, "flags": 4},
- {"matrix": [2, 7], "x": 109, "y": 37, "flags": 4},
- {"matrix": [2, 8], "x": 122, "y": 34, "flags": 4},
- {"matrix": [2, 9], "x": 135, "y": 31, "flags": 4},
- {"matrix": [2, 10], "x": 148, "y": 29, "flags": 4},
- {"matrix": [2, 11], "x": 162, "y": 27, "flags": 4},
- {"matrix": [2, 12], "x": 176, "y": 27, "flags": 4},
- {"matrix": [2, 13], "x": 189, "y": 27, "flags": 4},
- {"matrix": [1, 13], "x": 207, "y": 22, "flags": 1},
- {"matrix": [2, 14], "x": 224, "y": 29, "flags": 1},
- {"matrix": [3, 0], "x": 0, "y": 40, "flags": 1},
- {"matrix": [3, 1], "x": 15, "y": 40, "flags": 4},
- {"matrix": [3, 2], "x": 28, "y": 40, "flags": 4},
- {"matrix": [3, 3], "x": 43, "y": 41, "flags": 4},
- {"matrix": [3, 4], "x": 56, "y": 44, "flags": 4},
- {"matrix": [3, 5], "x": 69, "y": 47, "flags": 4},
- {"matrix": [3, 6], "x": 82, "y": 49, "flags": 4},
- {"matrix": [3, 7], "x": 102, "y": 51, "flags": 4},
- {"matrix": [3, 8], "x": 115, "y": 49, "flags": 4},
- {"matrix": [3, 9], "x": 128, "y": 46, "flags": 4},
- {"matrix": [3, 10], "x": 141, "y": 43, "flags": 4},
- {"matrix": [3, 11], "x": 154, "y": 41, "flags": 4},
- {"matrix": [3, 12], "x": 169, "y": 40, "flags": 4},
- {"matrix": [3, 13], "x": 187, "y": 40, "flags": 1},
- {"matrix": [3, 14], "x": 209, "y": 43, "flags": 1},
- {"matrix": [4, 0], "x": 0, "y": 52, "flags": 1},
- {"matrix": [4, 1], "x": 17, "y": 52, "flags": 1},
- {"matrix": [4, 2], "x": 42, "y": 54, "flags": 1},
- {"matrix": [4, 3], "x": 65, "y": 59, "flags": 1},
- {"matrix": [4, 6], "x": 86, "y": 63, "flags": 1},
- {"matrix": [4, 7], "x": 104, "y": 64, "flags": 1},
- {"matrix": [4, 8], "x": 129, "y": 59, "flags": 1},
- {"matrix": [4, 9], "x": 153, "y": 54, "flags": 1},
- {"matrix": [4, 12], "x": 196, "y": 56, "flags": 1},
- {"matrix": [4, 13], "x": 209, "y": 56, "flags": 1},
- {"matrix": [4, 14], "x": 222, "y": 59, "flags": 1}
- ]
- },
"layouts": {
"LAYOUT_iso_70": {
"layout": [
diff --git a/keyboards/kprepublic/bm40hsrgb/rev1/keyboard.json b/keyboards/kprepublic/bm40hsrgb/rev1/keyboard.json
index 9dc347da6e..5cad0a013a 100644
--- a/keyboards/kprepublic/bm40hsrgb/rev1/keyboard.json
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/keyboard.json
@@ -57,61 +57,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 81, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 101, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 122, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 142, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 162, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 183, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 203, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1},
- {"matrix": [1, 1], "x": 20, "y": 21, "flags": 4},
- {"matrix": [1, 2], "x": 40, "y": 21, "flags": 4},
- {"matrix": [1, 3], "x": 61, "y": 21, "flags": 4},
- {"matrix": [1, 4], "x": 81, "y": 21, "flags": 4},
- {"matrix": [1, 5], "x": 101, "y": 21, "flags": 4},
- {"matrix": [1, 6], "x": 122, "y": 21, "flags": 4},
- {"matrix": [1, 7], "x": 142, "y": 21, "flags": 4},
- {"matrix": [1, 8], "x": 162, "y": 21, "flags": 4},
- {"matrix": [1, 9], "x": 183, "y": 21, "flags": 4},
- {"matrix": [1, 10], "x": 203, "y": 21, "flags": 4},
- {"matrix": [1, 11], "x": 224, "y": 21, "flags": 1},
- {"matrix": [2, 0], "x": 0, "y": 42, "flags": 1},
- {"matrix": [2, 1], "x": 20, "y": 42, "flags": 4},
- {"matrix": [2, 2], "x": 40, "y": 42, "flags": 4},
- {"matrix": [2, 3], "x": 61, "y": 42, "flags": 4},
- {"matrix": [2, 4], "x": 81, "y": 42, "flags": 4},
- {"matrix": [2, 5], "x": 101, "y": 42, "flags": 4},
- {"matrix": [2, 6], "x": 122, "y": 42, "flags": 4},
- {"matrix": [2, 7], "x": 142, "y": 42, "flags": 4},
- {"matrix": [2, 8], "x": 162, "y": 42, "flags": 4},
- {"matrix": [2, 9], "x": 183, "y": 42, "flags": 4},
- {"matrix": [2, 10], "x": 203, "y": 42, "flags": 4},
- {"matrix": [2, 11], "x": 224, "y": 42, "flags": 1},
- {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1},
- {"matrix": [3, 1], "x": 20, "y": 64, "flags": 1},
- {"matrix": [3, 2], "x": 40, "y": 64, "flags": 1},
- {"matrix": [3, 3], "x": 61, "y": 64, "flags": 1},
- {"matrix": [3, 4], "x": 81, "y": 64, "flags": 1},
- {"matrix": [3, 5], "x": 111, "y": 64, "flags": 1},
- {"matrix": [3, 7], "x": 142, "y": 64, "flags": 1},
- {"matrix": [3, 8], "x": 162, "y": 64, "flags": 1},
- {"matrix": [3, 9], "x": 183, "y": 64, "flags": 1},
- {"matrix": [3, 10], "x": 203, "y": 64, "flags": 1},
- {"matrix": [3, 11], "x": 224, "y": 64, "flags": 1},
- {"x": 220, "y": 32, "flags": 2},
- {"x": 176, "y": 32, "flags": 2},
- {"x": 132, "y": 32, "flags": 2},
- {"x": 88, "y": 32, "flags": 2},
- {"x": 44, "y": 32, "flags": 2},
- {"x": 0, "y": 32, "flags": 2}
- ]
"max_brightness": 180,
"sleep": true
},
diff --git a/keyboards/kprepublic/bm40hsrgb/rev1/rev1.c b/keyboards/kprepublic/bm40hsrgb/rev1/rev1.c
new file mode 100755
index 0000000000..f6df97ebf1
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/rev1.c
@@ -0,0 +1,43 @@
+/* Copyright 2020 tominabox1, Richard Goulter
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include "quantum.h"
+
+#if defined(RGB_MATRIX_ENABLE)
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11},
+ {12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23},
+ {24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35},
+ {36, 37, 38, 39, 40, 41, NO_LED, 42, 43, 44, 45, 46}
+ }, {
+ // LED Index to Physical Position
+ { 0, 0}, { 20, 0}, { 40, 0}, {61, 0}, {81, 0}, {101, 0}, {122, 0}, {142, 0}, {162, 0}, {183, 0}, {203, 0}, {224, 0},
+ { 0, 21}, { 20, 21}, { 40, 21}, {61, 21}, {81, 21}, {101, 21}, {122, 21}, {142, 21}, {162, 21}, {183, 21}, {203, 21}, {224, 21},
+ { 0, 42}, { 20, 42}, { 40, 42}, {61, 42}, {81, 42}, {101, 42}, {122, 42}, {142, 42}, {162, 42}, {183, 42}, {203, 42}, {224, 42},
+ { 0, 64}, { 20, 64}, { 40, 64}, {61, 64}, {81, 64}, {111, 64}, {142, 64}, {162, 64}, {183, 64}, {203, 64}, {224, 64},
+ {220, 32}, {176, 32}, {132, 32}, {88, 32}, {44, 32}, {0, 32}
+ }, {
+ // LED Index to Flag
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 2, 2, 2, 2, 2
+ }
+};
+
+#endif
diff --git a/keyboards/kprepublic/bm60hsrgb/rev1/keyboard.json b/keyboards/kprepublic/bm60hsrgb/rev1/keyboard.json
index 4dcf26964f..55ec5589d1 100644
--- a/keyboards/kprepublic/bm60hsrgb/rev1/keyboard.json
+++ b/keyboards/kprepublic/bm60hsrgb/rev1/keyboard.json
@@ -57,77 +57,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 11, "y": 32, "flags": 1},
- {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1},
- {"matrix": [3, 1], "x": 18, "y": 48, "flags": 1},
- {"matrix": [3, 2], "x": 30, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 45, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 60, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 75, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 90, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 105, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 120, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 135, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 150, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 165, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 191, "y": 48, "flags": 1},
- {"matrix": [3, 13], "x": 210, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 101, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 210, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1},
- {"x": 216, "y": 32, "flags": 2},
- {"x": 180, "y": 32, "flags": 2},
- {"x": 144, "y": 32, "flags": 2},
- {"x": 108, "y": 32, "flags": 2},
- {"x": 72, "y": 32, "flags": 2},
- {"x": 36, "y": 32, "flags": 2}
- ]
"max_brightness": 180
},
"rgblight": {
diff --git a/keyboards/kprepublic/bm60hsrgb/rev1/rev1.c b/keyboards/kprepublic/bm60hsrgb/rev1/rev1.c
new file mode 100644
index 0000000000..bec465b2e6
--- /dev/null
+++ b/keyboards/kprepublic/bm60hsrgb/rev1/rev1.c
@@ -0,0 +1,50 @@
+/* Copyright 2020 MechMerlin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include "quantum.h"
+
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 },
+ { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 },
+ { 28, NO_LED, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 },
+ { NO_LED, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 },
+ { 54, 55, 56, NO_LED, NO_LED, NO_LED, 57, NO_LED, NO_LED, 58, 59, 60, 61, 62 }
+}, {
+ // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
+ { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 },
+ // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], ,
+ { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 },
+ // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter
+ { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 },
+ // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
+ { 18, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 191, 48 }, { 210, 48 },
+ // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
+ { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 195, 64 }, { 210, 64 }, { 225, 64 },
+ // UNDERGLOW
+ { 216, 32 }, { 180, 32 }, { 144, 32 }, { 108, 32 }, { 72, 32 }, { 36, 32 }
+}, {
+ // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], ,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
+ 1, 1, 1, 4, 1, 1, 1, 1, 1,
+ // UNDERGLOW
+ 2, 2, 2, 2, 2, 2
+} };
diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/config.h b/keyboards/kprepublic/bm60hsrgb/rev2/config.h
index c3fca3563e..98858cd164 100644
--- a/keyboards/kprepublic/bm60hsrgb/rev2/config.h
+++ b/keyboards/kprepublic/bm60hsrgb/rev2/config.h
@@ -1,7 +1,29 @@
-// Copyright 2021 bdtc123
-// SPDX-License-Identifier: GPL-2.0-or-later
+/* Copyright 2021 bdtc123
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
#pragma once
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_LED_COUNT 63
-#define WS2812_LED_COUNT 6
+
+// Underglow LEDs are WS2812, but someone might want to use RGBLIGHT for them;
+// don't use those LEDs in RGB Matrix in that case.
+#ifdef RGBLIGHT_ENABLE
+# define WS2812_LED_COUNT 0
+#else
+# define WS2812_LED_COUNT 6
+#endif
+
+#define RGB_MATRIX_LED_COUNT (IS31FL3733_LED_COUNT + WS2812_LED_COUNT)
diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/keyboard.json b/keyboards/kprepublic/bm60hsrgb/rev2/keyboard.json
index 88d4c5d9ce..3783ebb8b2 100644
--- a/keyboards/kprepublic/bm60hsrgb/rev2/keyboard.json
+++ b/keyboards/kprepublic/bm60hsrgb/rev2/keyboard.json
@@ -51,80 +51,30 @@
"solid_multisplash": true
},
"driver": "custom",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 11, "y": 32, "flags": 9},
- {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 18, "y": 48, "flags": 1},
- {"matrix": [3, 1], "x": 30, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 45, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 60, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 75, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 90, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 105, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 120, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 135, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 150, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 165, "y": 48, "flags": 1},
- {"matrix": [3, 12], "x": 191, "y": 48, "flags": 1},
- {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4},
- {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 101, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 210, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1},
- {"x": 28, "y": 40, "flags": 2},
- {"x": 62, "y": 40, "flags": 2},
- {"x": 96, "y": 40, "flags": 2},
- {"x": 130, "y": 40, "flags": 2},
- {"x": 164, "y": 40, "flags": 2},
- {"x": 198, "y": 40, "flags": 2}
- ],
"max_brightness": 120,
"sleep": true
},
+ "rgblight": {
+ "saturation_steps": 8,
+ "brightness_steps": 8,
+ "led_count": 6,
+ "max_brightness": 150,
+ "animations": {
+ "breathing": true,
+ "rainbow_mood": true,
+ "rainbow_swirl": true,
+ "snake": true,
+ "knight": true,
+ "christmas": true,
+ "static_gradient": true,
+ "rgb_test": true,
+ "alternating": true,
+ "twinkle": true
+ },
+ "default": {
+ "animation": "rainbow_mood"
+ }
+ },
"matrix_pins": {
"cols": ["B2", "B3", "B7", "B0", "B1", "F7", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7"],
"rows": ["E6", "D2", "D3", "D5", "F6"]
@@ -160,6 +110,7 @@
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
@@ -174,6 +125,7 @@
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
@@ -187,6 +139,7 @@
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [3, 1], "x": 2.25, "y": 3},
{"matrix": [3, 2], "x": 3.25, "y": 3},
@@ -200,6 +153,7 @@
{"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.75},
{"matrix": [3, 12], "x": 13, "y": 3},
{"matrix": [3, 13], "x": 14, "y": 3},
+
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.c b/keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.c
new file mode 100644
index 0000000000..7b6d1ae693
--- /dev/null
+++ b/keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.c
@@ -0,0 +1,35 @@
+/* Copyright 2021 bdtc123
+ * Copyright 2022 peepeetee
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_60_ansi_arrow(
+ KC_ESC, 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_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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_60_ansi_arrow(
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT,
+ _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+
+};
diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.json b/keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.json
deleted file mode 100644
index caf08550a0..0000000000
--- a/keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "keyboard": "kprepublic/bm60hsrgb/rev2",
- "keymap": "default",
- "layout": "LAYOUT_60_ansi_arrow",
- "layers": [
- [
- "KC_ESC", "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_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_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_LSFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_RSFT", "KC_UP", "KC_SLSH",
- "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "MO(1)", "KC_LEFT", "KC_DOWN", "KC_RGHT"
- ],
- [
- "_______", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "QK_BOOT",
- "_______", "RM_TOGG", "RM_NEXT", "RM_HUEU", "RM_HUED", "RM_SATU", "RM_SATD", "RM_VALU", "RM_VALD", "_______", "_______", "_______", "_______", "_______",
- "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
- "_______", "_______", "_______", "_______", "_______", "_______", "NK_TOGG", "_______", "_______", "_______", "_______", "_______", "_______",
- "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______"
- ]
- ]
-}
diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c
index b0e68a8cd6..e7ff5a9ddc 100644
--- a/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c
+++ b/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c
@@ -1,19 +1,27 @@
-// Copyright 2021 bdtc123
-// Copyright 2021 sigprof
-// SPDX-License-Identifier: GPL-2.0-or-later
+/* Copyright 2021 bdtc123
+ * Copyright 2021 sigprof
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
#include "quantum.h"
-#if defined(RGB_MATRIX_ENABLE) && defined(RGBLIGHT_ENABLE)
-# error "RGBLight must not be enabled due to this keyboard's custom RGB Matrix driver"
-#endif
-
#ifdef RGB_MATRIX_ENABLE
# include "i2c_master.h"
# include "is31fl3733.h"
# include "ws2812.h"
-// clang-format off
const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
{ 0, SW2_CS1, SW1_CS1, SW3_CS1 },
{ 0, SW2_CS2, SW1_CS2, SW3_CS2 },
@@ -83,7 +91,44 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
{ 0, SW2_CS16, SW1_CS16, SW3_CS16 },
{ 0, SW5_CS16, SW4_CS16, SW6_CS16 }
};
-// clang-format on
+
+led_config_t g_led_config = {
+ {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 },
+ { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 },
+ { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40 },
+ { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, NO_LED, 51, 52, 53 },
+ { 54, 55, 56, NO_LED, NO_LED, 57, NO_LED, NO_LED, NO_LED, 58, 59, 60, 61, 62 }
+ }, {
+ // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
+ { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 },
+ // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], ,
+ { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 },
+ // Capslock, A, S, D, F, G, H, A, K, L, ;, ', Enter
+ { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 },
+ // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
+ { 18, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 191, 48 }, { 210, 48 },
+ // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
+ { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 195, 64 }, { 210, 64 }, { 225, 64 }
+# if WS2812_LED_COUNT > 0
+ ,{ 28, 40}, { 62, 40}, { 96, 40}, {130, 40}, {164, 40}, {198, 40}
+# endif
+}, {
+ // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ],
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ // Capslock, A, S, D, F, G, H, A, K, L, ;, ', Enter
+ 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, ?
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4,
+ // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
+ 1, 1, 1, 4, 1, 1, 1, 1, 1
+# if WS2812_LED_COUNT > 0
+ ,2, 2, 2, 2, 2, 2
+# endif
+ }
+};
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
@@ -95,6 +140,9 @@ bool rgb_matrix_indicators_kb(void) {
return true;
}
+
+// clang-format on
+
// ==========================================================================
// Custom RGB Matrix driver that combines IS31FL3733 and WS2812
// ==========================================================================
@@ -112,20 +160,26 @@ static void rgb_matrix_driver_init(void) {
static void rgb_matrix_driver_flush(void) {
is31fl3733_update_pwm_buffers(0);
+# if WS2812_LED_COUNT > 0
ws2812_flush();
+# endif
}
static void rgb_matrix_driver_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
if (index < IS31FL3733_LED_COUNT) {
is31fl3733_set_color(index, red, green, blue);
+# if WS2812_LED_COUNT > 0
} else {
ws2812_set_color(index - IS31FL3733_LED_COUNT, red, green, blue);
+# endif
}
}
static void rgb_matrix_driver_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
is31fl3733_set_color_all(red, green, blue);
- ws2812_set_color_all(red, green, blue);
+# if WS2812_LED_COUNT > 0
+ ws2812_set_color_all(red, green, blue);
+# endif
}
// clang-format off
diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev1/keyboard.json b/keyboards/kprepublic/bm60hsrgb_ec/rev1/keyboard.json
index 84e962e90c..75e8333f7a 100644
--- a/keyboards/kprepublic/bm60hsrgb_ec/rev1/keyboard.json
+++ b/keyboards/kprepublic/bm60hsrgb_ec/rev1/keyboard.json
@@ -51,77 +51,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 195, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 11, "y": 32, "flags": 1},
- {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1},
- {"matrix": [3, 1], "x": 18, "y": 48, "flags": 1},
- {"matrix": [3, 2], "x": 30, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 45, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 60, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 75, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 90, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 105, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 120, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 135, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 150, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 165, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 191, "y": 48, "flags": 1},
- {"matrix": [3, 13], "x": 210, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 101, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 210, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1},
- {"x": 216, "y": 32, "flags": 2},
- {"x": 180, "y": 32, "flags": 2},
- {"x": 144, "y": 32, "flags": 2},
- {"x": 108, "y": 32, "flags": 2},
- {"x": 72, "y": 32, "flags": 2},
- {"x": 36, "y": 32, "flags": 2}
- ]
"max_brightness": 140
},
"build": {
diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev1/rev1.c b/keyboards/kprepublic/bm60hsrgb_ec/rev1/rev1.c
index 55b6df9233..26afae87ae 100644
--- a/keyboards/kprepublic/bm60hsrgb_ec/rev1/rev1.c
+++ b/keyboards/kprepublic/bm60hsrgb_ec/rev1/rev1.c
@@ -14,6 +14,39 @@
* along with this program. If not, see .
*/
#include "quantum.h"
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 },
+ { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 },
+ { 28, NO_LED, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 },
+ { NO_LED, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 },
+ { 54, 55, 56, NO_LED, NO_LED, NO_LED, 57, NO_LED, NO_LED, 58, 59, 60, 61, 62 }
+}, {
+ // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
+ { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 195, 0 },
+ // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], ,
+ { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 },
+ // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter
+ { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 },
+ // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
+ { 18, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 191, 48 }, { 210, 48 },
+ // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
+ { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 195, 64 }, { 210, 64 }, { 225, 64 },
+ // UNDERGLOW
+ { 216, 32 }, { 180, 32 }, { 144, 32 }, { 108, 32 }, { 72, 32 }, { 36, 32 }
+}, {
+ // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], ,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
+ 1, 1, 1, 4, 1, 1, 1, 1, 1,
+ // UNDERGLOW
+ 2, 2, 2, 2, 2, 2
+} };
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/keyboard.json b/keyboards/kprepublic/bm60hsrgb_ec/rev2/keyboard.json
index bdff11563b..dd43d36d71 100644
--- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/keyboard.json
+++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/keyboard.json
@@ -36,71 +36,6 @@
"solid_multisplash": true
},
"driver": "is31fl3733",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 195, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 11, "y": 32, "flags": 1},
- {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 18, "y": 48, "flags": 1},
- {"matrix": [3, 1], "x": 30, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 45, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 60, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 75, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 90, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 105, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 120, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 135, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 150, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 165, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 191, "y": 48, "flags": 1},
- {"matrix": [3, 13], "x": 210, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 101, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 210, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}
- ]
"max_brightness": 180,
"sleep": true
},
@@ -123,7 +58,7 @@
},
"default": {
"animation": "rainbow_mood"
- }
+ }
},
"build": {
"lto": true
diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c
index e8d7f69435..eca53e9893 100644
--- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c
+++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c
@@ -85,6 +85,38 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
{ 0, SW5_CS16, SW4_CS16, SW6_CS16 }
};
+led_config_t g_led_config = {
+ {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 },
+ { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 },
+ { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40 },
+ { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, NO_LED, 51, 52, 53 },
+ { 54, 55, 56, NO_LED, NO_LED, 57, NO_LED, NO_LED, NO_LED, 58, 59, 60, 61, 62 }
+ }, {
+ // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
+ { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 195, 0 },
+ // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], ,
+ { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 },
+ // Capslock, A, S, D, F, G, H, A, K, L, ;, ', Enter
+ { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 },
+ // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
+ { 18, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 191, 48 }, { 210, 48 },
+ // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
+ { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 195, 64 }, { 210, 64 }, { 225, 64 }
+}, {
+ // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], ,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ // Capslock, A, S, D, F, G, H, A, K, L, ;, ', Enter
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
+ 1, 1, 1, 4, 1, 1, 1, 1, 1
+ }
+};
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev1/keyboard.json b/keyboards/kprepublic/bm60hsrgb_iso/rev1/keyboard.json
index 9468251899..b3bf6e44b2 100644
--- a/keyboards/kprepublic/bm60hsrgb_iso/rev1/keyboard.json
+++ b/keyboards/kprepublic/bm60hsrgb_iso/rev1/keyboard.json
@@ -57,78 +57,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 11, "y": 32, "flags": 1},
- {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 3, "y": 48, "flags": 1},
- {"matrix": [3, 1], "x": 22, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 33, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 63, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 78, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 93, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 108, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 123, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 138, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 153, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 168, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 194, "y": 48, "flags": 1},
- {"matrix": [3, 13], "x": 213, "y": 48, "flags": 4},
- {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 101, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 210, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1},
- {"x": 216, "y": 32, "flags": 2},
- {"x": 180, "y": 32, "flags": 2},
- {"x": 144, "y": 32, "flags": 2},
- {"x": 108, "y": 32, "flags": 2},
- {"x": 72, "y": 32, "flags": 2},
- {"x": 36, "y": 32, "flags": 2}
- ]
"max_brightness": 180
},
"build": {
diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev1/rev1.c b/keyboards/kprepublic/bm60hsrgb_iso/rev1/rev1.c
new file mode 100644
index 0000000000..80bc2e2283
--- /dev/null
+++ b/keyboards/kprepublic/bm60hsrgb_iso/rev1/rev1.c
@@ -0,0 +1,52 @@
+/* Copyright 2020 markva
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include "quantum.h"
+
+#if defined(RGB_MATRIX_ENABLE)
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 },
+ { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 },
+ { 28, NO_LED, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 },
+ { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54 },
+ { 55, 56, 57, NO_LED, NO_LED, NO_LED, 58, NO_LED, NO_LED, 59, 60, 61, 62, 63}
+}, {
+ // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
+ { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 },
+ // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], ,
+ { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 },
+ // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter
+ { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 },
+ // LShift, <, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
+ { 3, 48 }, { 22, 48 }, { 33, 48 }, { 48, 48 }, { 63, 48 }, { 78, 48 }, { 93, 48 }, { 108, 48 }, { 123, 48 }, { 138, 48 }, { 153, 48 }, { 168, 48 }, { 194, 48 }, { 213, 48 },
+ // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
+ { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 195, 64 }, { 210, 64 }, { 225, 64 },
+ // UNDERGLOW
+ { 216, 32 }, { 180, 32 }, { 144, 32 }, { 108, 32 }, { 72, 32 }, { 36, 32 }
+}, {
+ // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], ,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ // LShift,<, Z, X, C, V, B, N, M, ,, ., Shift, Up, /
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4,
+ // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
+ 1, 1, 1, 4, 1, 1, 1, 1, 1,
+ // UNDERGLOW
+ 2, 2, 2, 2, 2, 2
+} };
+#endif
diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h
index 1567ce3eb1..710e240aa4 100644
--- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h
+++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h
@@ -1,9 +1,31 @@
-// Copyright 2021 bdtc123
-// Copyright 2021 sigprof
-// Copyright 2021 peepeetee
-// SPDX-License-Identifier: GPL-2.0-or-later
+/* Copyright 2021 bdtc123
+ * Copyright 2021 sigprof
+ * Copyright 2021 peepeetee
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
#pragma once
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_LED_COUNT 64
-#define WS2812_LED_COUNT 6
+
+// Underglow LEDs are WS2812, but someone might want to use RGBLIGHT for them;
+// don't use those LEDs in RGB Matrix in that case.
+#ifdef RGBLIGHT_ENABLE
+# define WS2812_LED_COUNT 0
+#else
+# define WS2812_LED_COUNT 6
+#endif
+
+#define RGB_MATRIX_LED_COUNT (IS31FL3733_LED_COUNT + WS2812_LED_COUNT)
diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/keyboard.json b/keyboards/kprepublic/bm60hsrgb_iso/rev2/keyboard.json
index fec641b886..3a0df3e414 100644
--- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/keyboard.json
+++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/keyboard.json
@@ -59,81 +59,30 @@
"animation": "cycle_all"
},
"driver": "custom",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 11, "y": 32, "flags": 9},
- {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 198, "y": 32, "flags": 4},
- {"matrix": [3, 0], "x": 3, "y": 48, "flags": 1},
- {"matrix": [3, 2], "x": 22, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 33, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 48, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 63, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 78, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 93, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 108, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 123, "y": 48, "flags": 4},
- {"x": 138, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 153, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 168, "y": 48, "flags": 1},
- {"matrix": [3, 12], "x": 194, "y": 48, "flags": 1},
- {"matrix": [3, 13], "x": 213, "y": 48, "flags": 4},
- {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 101, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 210, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1},
- {"x": 28, "y": 40, "flags": 2},
- {"x": 62, "y": 40, "flags": 2},
- {"x": 96, "y": 40, "flags": 2},
- {"x": 130, "y": 40, "flags": 2},
- {"x": 164, "y": 40, "flags": 2},
- {"x": 198, "y": 40, "flags": 2}
- ],
"max_brightness": 180,
"sleep": true
},
+ "rgblight": {
+ "saturation_steps": 8,
+ "brightness_steps": 8,
+ "led_count": 6,
+ "max_brightness": 150,
+ "animations": {
+ "breathing": true,
+ "rainbow_mood": true,
+ "rainbow_swirl": true,
+ "snake": true,
+ "knight": true,
+ "christmas": true,
+ "static_gradient": true,
+ "rgb_test": true,
+ "alternating": true,
+ "twinkle": true
+ },
+ "default": {
+ "animation": "rainbow_mood"
+ }
+ },
"matrix_pins": {
"cols": ["B2", "B3", "B7", "B0", "B1", "F7", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7"],
"rows": ["E6", "D2", "D3", "D5", "F6"]
@@ -169,6 +118,7 @@
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
@@ -182,6 +132,7 @@
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
+
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
@@ -196,6 +147,7 @@
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 12], "x": 12.75, "y": 2},
{"matrix": [1, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [4, 3], "x": 1.25, "y": 3},
{"matrix": [3, 1], "x": 2.25, "y": 3},
@@ -210,6 +162,7 @@
{"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.75},
{"matrix": [3, 12], "x": 13, "y": 3},
{"matrix": [3, 13], "x": 14, "y": 3},
+
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
diff --git a/keyboards/kbdfans/d60b/keymaps/default/keymap.c b/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.c
similarity index 51%
rename from keyboards/kbdfans/d60b/keymaps/default/keymap.c
rename to keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.c
index d0a47b0d2f..f3aa8083f1 100644
--- a/keyboards/kbdfans/d60b/keymaps/default/keymap.c
+++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.c
@@ -1,4 +1,5 @@
-/* Copyright 2025 chrisgve
+/* Copyright 2020 markva
+ * Copyright 2021 bdtc123
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -13,25 +14,21 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-
#include QMK_KEYBOARD_H
-// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0]=LAYOUT_60_ansi_tsangan_split_bs_rshift(
- QK_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_GRAVE, KC_BSPC,
- 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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL
+ [0] = LAYOUT_60_iso_arrow(
+ QK_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_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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
),
-
- [1]=LAYOUT_60_ansi_tsangan_split_bs_rshift(
- KC_GRV, 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_DEL,
- RM_TOGG, RM_NEXT, RM_PREV, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_SPDU, RM_SPDD, _______, QK_BOOT,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
+ [1] = LAYOUT_60_iso_arrow(
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT,
+ _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, KC_PGUP, _______,
+ _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
)
};
-//clang-format on
diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.json b/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.json
deleted file mode 100644
index ea074ba006..0000000000
--- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "keyboard": "kprepublic/bm60hsrgb_iso/rev2",
- "keymap": "default",
- "layout": "LAYOUT_60_iso_arrow",
- "layers": [
- [
- "QK_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_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_CAPS", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_NUHS", "KC_ENT",
- "KC_LSFT", "KC_NUBS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_RSFT", "KC_UP", "KC_SLSH",
- "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "MO(1)", "KC_LEFT", "KC_DOWN", "KC_RGHT"
- ],
- [
- "_______", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "QK_BOOT",
- "_______", "RM_TOGG", "RM_NEXT", "RM_HUEU", "RM_HUED", "RM_SATU", "RM_SATD", "RM_VALU", "RM_VALD", "_______", "_______", "_______", "_______",
- "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
- "_______", "_______", "_______", "_______", "_______", "_______", "NK_TOGG", "_______", "_______", "_______", "_______", "KC_PGUP", "_______",
- "_______", "_______", "_______", "_______", "_______", "_______", "KC_HOME", "KC_PGDN", "KC_END"
- ]
- ]
-}
diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c
index 9e617bb8ef..0d52d1bacb 100644
--- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c
+++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c
@@ -1,20 +1,29 @@
-// Copyright 2021 bdtc123
-// Copyright 2021 sigprof
-// Copyright 2021 peepeetee
-// SPDX-License-Identifier: GPL-2.0-or-later
+/* Copyright 2021 bdtc123
+ * Copyright 2021 sigprof
+ * Copyright 2021 peepeetee
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
#include "quantum.h"
-#if defined(RGB_MATRIX_ENABLE) && defined(RGBLIGHT_ENABLE)
-# error "RGBLight must not be enabled due to this keyboard's custom RGB Matrix driver"
-#endif
-
#ifdef RGB_MATRIX_ENABLE
# include "i2c_master.h"
# include "is31fl3733.h"
# include "ws2812.h"
-// clang-format off
+
const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
{ 0, SW2_CS1, SW1_CS1, SW3_CS1 },
{ 0, SW2_CS2, SW1_CS2, SW3_CS2 },
@@ -85,7 +94,42 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
{ 0, SW2_CS15, SW1_CS15, SW3_CS15 },
{ 0, SW5_CS16, SW4_CS16, SW6_CS16 }
};
-// clang-format on
+
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 },
+ { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 },
+ { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,NO_LED},
+ { 41, 58, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54 },
+ { 55, 56, 57,NO_LED,NO_LED, 58,NO_LED,NO_LED,NO_LED, 59, 60, 61, 62, 63 }
+}, {
+ // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
+ { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 },
+ // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], ,
+ { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 },
+ // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter
+ { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 },
+ // LShift, <, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
+ { 3, 48 }, { 22, 48 }, { 33, 48 }, { 48, 48 }, { 63, 48 }, { 78, 48 }, { 93, 48 }, { 108, 48 }, { 123, 48 }, { 138, 48 }, { 153, 48 }, { 168, 48 }, { 194, 48 }, { 213, 48 },
+ // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
+ { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 195, 64 }, { 210, 64 }, { 225, 64 }
+# if WS2812_LED_COUNT > 0
+ ,{ 28, 40}, { 62, 40}, { 96, 40}, {130, 40}, {164, 40}, {198, 40}
+# endif
+}, {
+ // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], Enter
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ // Capslock, A, S, D, F, G, H, J, K, L, ;, ',#
+ 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ // LShift,backslash, Z, X, C, V, B, N, M, ,, ., Shift, Up, /
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4,
+ // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
+ 1, 1, 1, 4, 1, 1, 1, 1, 1
+# if WS2812_LED_COUNT > 0
+ ,2, 2, 2, 2, 2, 2
+# endif
+} };
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
@@ -97,6 +141,8 @@ bool rgb_matrix_indicators_kb(void) {
return true;
}
+// clang-format on
+
// ==========================================================================
// Custom RGB Matrix driver that combines IS31FL3733 and WS2812
// ==========================================================================
@@ -114,20 +160,26 @@ static void rgb_matrix_driver_init(void) {
static void rgb_matrix_driver_flush(void) {
is31fl3733_update_pwm_buffers(0);
+# if WS2812_LED_COUNT > 0
ws2812_flush();
+# endif
}
static void rgb_matrix_driver_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
if (index < IS31FL3733_LED_COUNT) {
is31fl3733_set_color(index, red, green, blue);
+# if WS2812_LED_COUNT > 0
} else {
ws2812_set_color(index - IS31FL3733_LED_COUNT, red, green, blue);
+# endif
}
}
static void rgb_matrix_driver_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
is31fl3733_set_color_all(red, green, blue);
+# if WS2812_LED_COUNT > 0
ws2812_set_color_all(red, green, blue);
+# endif
}
// clang-format off
diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rules.mk b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rules.mk
index bb6c11ea53..7012deda8c 100644
--- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rules.mk
+++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rules.mk
@@ -1,5 +1,7 @@
-WS2812_DRIVER_REQUIRED = yes
-
+# The custom RGB Matrix driver combines IS31FL3733 and WS2812; things that are
+# normally done by common_features.mk for both of these drivers need to be done
+# here manually.
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3733.c
I2C_DRIVER_REQUIRED = yes
+WS2812_DRIVER_REQUIRED = yes
diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keyboard.json b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keyboard.json
index 00cf89b973..9619665e6d 100644
--- a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keyboard.json
+++ b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keyboard.json
@@ -56,75 +56,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 11, "y": 32, "flags": 1},
- {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1},
- {"matrix": [3, 1], "x": 18, "y": 48, "flags": 1},
- {"matrix": [3, 2], "x": 30, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 45, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 60, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 75, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 90, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 105, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 120, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 135, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 150, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 165, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 191, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 101, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 210, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1},
- {"x": 216, "y": 32, "flags": 2},
- {"x": 180, "y": 32, "flags": 2},
- {"x": 144, "y": 32, "flags": 2},
- {"x": 108, "y": 32, "flags": 2},
- {"x": 72, "y": 32, "flags": 2},
- {"x": 36, "y": 32, "flags": 2}
- ]
"max_brightness": 180
},
"rgblight": {
diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev1/rev1.c b/keyboards/kprepublic/bm60hsrgb_poker/rev1/rev1.c
new file mode 100644
index 0000000000..d5dd1f2f97
--- /dev/null
+++ b/keyboards/kprepublic/bm60hsrgb_poker/rev1/rev1.c
@@ -0,0 +1,52 @@
+/* Copyright 2020 ipetepete
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 },
+ { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 },
+ { 28, NO_LED, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 },
+ { NO_LED, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, NO_LED, 52 },
+ { 53, 54, 55, NO_LED, NO_LED, NO_LED, 56, NO_LED, NO_LED, 57, 58, NO_LED, 59, 60 }
+}, {
+ // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
+ { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 },
+ // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], ,
+ { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 },
+ // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter
+ { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 },
+ // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
+ { 18, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 191, 48 },
+ // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
+ { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 210, 64 }, { 225, 64 },
+ // UNDERGLOW
+ { 216, 32 }, { 180, 32 }, { 144, 32 }, { 108, 32 }, { 72, 32 }, { 36, 32 }
+}, {
+ // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], ,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
+ 1, 1, 1, 4, 1, 1, 1, 1,
+ // UNDERGLOW
+ 2, 2, 2, 2, 2, 2
+} };
+#endif
diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h
index 52d273230f..843c5b2625 100644
--- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h
+++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h
@@ -1,7 +1,29 @@
-// Copyright 2021 bdtc123
-// SPDX-License-Identifier: GPL-2.0-or-later
+/* Copyright 2021 bdtc123
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
#pragma once
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_LED_COUNT 61
-#define WS2812_LED_COUNT 6
+
+// Underglow LEDs are WS2812, but someone might want to use RGBLIGHT for them;
+// don't use those LEDs in RGB Matrix in that case.
+#ifdef RGBLIGHT_ENABLE
+# define WS2812_LED_COUNT 0
+#else
+# define WS2812_LED_COUNT 6
+#endif
+
+#define RGB_MATRIX_LED_COUNT (IS31FL3733_LED_COUNT + WS2812_LED_COUNT)
diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/keyboard.json b/keyboards/kprepublic/bm60hsrgb_poker/rev2/keyboard.json
index e5bb84c8ff..f3edf59fec 100644
--- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/keyboard.json
+++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/keyboard.json
@@ -56,78 +56,29 @@
"solid_multisplash": true
},
"driver": "custom",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 11, "y": 32, "flags": 9},
- {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 18, "y": 48, "flags": 1},
- {"matrix": [3, 1], "x": 30, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 45, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 60, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 75, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 90, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 105, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 120, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 135, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 150, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 165, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 191, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 101, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 210, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1},
- {"x": 28, "y": 40, "flags": 2},
- {"x": 62, "y": 40, "flags": 2},
- {"x": 96, "y": 40, "flags": 2},
- {"x": 130, "y": 40, "flags": 2},
- {"x": 164, "y": 40, "flags": 2},
- {"x": 198, "y": 40, "flags": 2}
- ],
"max_brightness": 120,
"sleep": true
},
+ "rgblight": {
+ "saturation_steps": 8,
+ "brightness_steps": 8,
+ "led_count": 6,
+ "max_brightness": 150,
+ "animations": {
+ "breathing": true,
+ "rainbow_mood": true,
+ "rainbow_swirl": true,
+ "snake": true,
+ "knight": true,
+ "christmas": true,
+ "static_gradient": true,
+ "rgb_test": true,
+ "alternating": true
+ },
+ "default": {
+ "animation": "rainbow_mood"
+ }
+ },
"matrix_pins": {
"cols": ["B2", "B3", "B7", "B0", "B1", "F7", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7"],
"rows": ["E6", "D2", "D3", "D5", "F6"]
@@ -163,6 +114,7 @@
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
@@ -177,6 +129,7 @@
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
@@ -190,6 +143,7 @@
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [3, 1], "x": 2.25, "y": 3},
{"matrix": [3, 2], "x": 3.25, "y": 3},
@@ -202,6 +156,7 @@
{"matrix": [3, 9], "x": 10.25, "y": 3},
{"matrix": [3, 10], "x": 11.25, "y": 3},
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
+
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/keymaps/default/keymap.c b/keyboards/kprepublic/bm60hsrgb_poker/rev2/keymaps/default/keymap.c
new file mode 100644
index 0000000000..637d49d467
--- /dev/null
+++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/keymaps/default/keymap.c
@@ -0,0 +1,35 @@
+/* Copyright 2021 bdtc123
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_60_ansi(
+ QK_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_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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL
+ ),
+ [1] = LAYOUT_60_ansi(
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT,
+ _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+};
diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/keymaps/default/keymap.json b/keyboards/kprepublic/bm60hsrgb_poker/rev2/keymaps/default/keymap.json
deleted file mode 100644
index 98e6b5a609..0000000000
--- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/keymaps/default/keymap.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "keyboard": "kprepublic/bm60hsrgb_poker/rev2",
- "keymap": "default",
- "layout": "LAYOUT_60_ansi",
- "layers": [
- [
- "QK_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_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_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_LSFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT",
- "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "MO(1)", "KC_RGUI", "KC_RCTL"
- ],
- [
- "_______", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "QK_BOOT",
- "_______", "RM_TOGG", "RM_NEXT", "RM_HUEU", "RM_HUED", "RM_SATU", "RM_SATD", "RM_VALU", "RM_VALD", "_______", "_______", "_______", "_______", "_______",
- "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
- "_______", "_______", "_______", "_______", "_______", "_______", "NK_TOGG", "_______", "_______", "_______", "_______", "_______", "_______",
- "_______", "_______", "_______", "_______", "_______", "_______", "_______"
- ]
- ]
-}
diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c
index 865754b423..5766942b34 100644
--- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c
+++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c
@@ -1,18 +1,26 @@
-// Copyright 2021 bdtc123
-// SPDX-License-Identifier: GPL-2.0-or-later
+/* Copyright 2021 bdtc123
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
#include "quantum.h"
-#if defined(RGB_MATRIX_ENABLE) && defined(RGBLIGHT_ENABLE)
-# error "RGBLight must not be enabled due to this keyboard's custom RGB Matrix driver"
-#endif
-
#ifdef RGB_MATRIX_ENABLE
# include "i2c_master.h"
# include "is31fl3733.h"
# include "ws2812.h"
-// clang-format off
const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
{ 0, SW2_CS1, SW1_CS1, SW3_CS1 },
{ 0, SW2_CS2, SW1_CS2, SW3_CS2 },
@@ -80,7 +88,44 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
{ 0, SW11_CS12, SW10_CS12, SW12_CS12 },
{ 0, SW5_CS16, SW4_CS16, SW6_CS16 }
};
-// clang-format on
+
+led_config_t g_led_config = {
+ {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 },
+ { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 },
+ { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40 },
+ { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, NO_LED, NO_LED, 52 },
+ { 53, 54, 55, NO_LED, NO_LED, 56, NO_LED, NO_LED, NO_LED, 57, 58, 59, NO_LED, 60 }
+ }, {
+ // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
+ { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 },
+ // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], ,
+ { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 },
+ // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter
+ { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 },
+ // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
+ { 18, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 191, 48 },
+ // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
+ { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 210, 64 }, { 225, 64 }
+# if WS2812_LED_COUNT > 0
+ ,{ 28, 40}, { 62, 40}, { 96, 40}, {130, 40}, {164, 40}, {198, 40}
+# endif
+}, {
+ // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter
+ 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
+ 1, 1, 1, 4, 1, 1, 1, 1
+# if WS2812_LED_COUNT > 0
+ ,2, 2, 2, 2, 2, 2
+# endif
+ }
+};
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
@@ -92,6 +137,8 @@ bool rgb_matrix_indicators_kb(void) {
return true;
}
+// clang-format on
+
// ==========================================================================
// Custom RGB Matrix driver that combines IS31FL3733 and WS2812
// ==========================================================================
@@ -109,20 +156,26 @@ static void rgb_matrix_driver_init(void) {
static void rgb_matrix_driver_flush(void) {
is31fl3733_update_pwm_buffers(0);
+# if WS2812_LED_COUNT > 0
ws2812_flush();
+# endif
}
static void rgb_matrix_driver_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
if (index < IS31FL3733_LED_COUNT) {
is31fl3733_set_color(index, red, green, blue);
+# if WS2812_LED_COUNT > 0
} else {
ws2812_set_color(index - IS31FL3733_LED_COUNT, red, green, blue);
+# endif
}
}
static void rgb_matrix_driver_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
is31fl3733_set_color_all(red, green, blue);
+# if WS2812_LED_COUNT > 0
ws2812_set_color_all(red, green, blue);
+# endif
}
// clang-format off
diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rules.mk b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rules.mk
index bb6c11ea53..7012deda8c 100644
--- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rules.mk
+++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rules.mk
@@ -1,5 +1,7 @@
-WS2812_DRIVER_REQUIRED = yes
-
+# The custom RGB Matrix driver combines IS31FL3733 and WS2812; things that are
+# normally done by common_features.mk for both of these drivers need to be done
+# here manually.
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3733.c
I2C_DRIVER_REQUIRED = yes
+WS2812_DRIVER_REQUIRED = yes
diff --git a/keyboards/kprepublic/bm65hsrgb/rev1/keyboard.json b/keyboards/kprepublic/bm65hsrgb/rev1/keyboard.json
index ae88446469..d761606a5a 100644
--- a/keyboards/kprepublic/bm65hsrgb/rev1/keyboard.json
+++ b/keyboards/kprepublic/bm65hsrgb/rev1/keyboard.json
@@ -11,82 +11,7 @@
"pin": "E2"
},
"rgb_matrix": {
- "driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
- {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 201, "y": 32, "flags": 1},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
- {"matrix": [3, 1], "x": 9, "y": 48, "flags": 1},
- {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 79, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 94, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 109, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 124, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 139, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 154, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 169, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 189, "y": 48, "flags": 1},
- {"matrix": [3, 13], "x": 208, "y": 48, "flags": 1},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 94, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 148, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 163, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 193, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 208, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1},
- {"x": 185, "y": 45, "flags": 2},
- {"x": 160, "y": 45, "flags": 2},
- {"x": 125, "y": 45, "flags": 2},
- {"x": 95, "y": 45, "flags": 2},
- {"x": 60, "y": 45, "flags": 2},
- {"x": 25, "y": 45, "flags": 2}
- ]
+ "driver": "ws2812"
},
"build": {
"lto": true
diff --git a/keyboards/kprepublic/bm65hsrgb/rev1/rev1.c b/keyboards/kprepublic/bm65hsrgb/rev1/rev1.c
new file mode 100644
index 0000000000..7f416bc9ae
--- /dev/null
+++ b/keyboards/kprepublic/bm65hsrgb/rev1/rev1.c
@@ -0,0 +1,44 @@
+/* Copyright 2021 bytesapart
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
+ { 30, NO_LED, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 },
+ { NO_LED, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 },
+ { 58, 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, NO_LED, 64, 65, 66 }
+}, {
+ // LED Index to Physical Position
+ { 0, 0}, { 15, 0}, { 30, 0}, { 45, 0}, { 60, 0}, { 75, 0}, { 90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {202, 0}, {225, 0}, // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete
+ { 4, 16}, { 22, 16}, { 37, 16}, { 52, 16}, { 67, 16}, { 82, 16}, { 97, 16}, {112, 16}, {127, 16}, {142, 16}, {157, 16}, {172, 16}, {187, 16}, {206, 16}, {225, 16}, // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home
+ { 6, 32}, { 26, 32}, { 41, 32}, { 56, 32}, { 71, 32}, { 86, 32}, {101, 32}, {116, 32}, {131, 32}, {146, 32}, {161, 32}, {176, 32}, {201, 32}, {225, 32}, // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up
+ { 9, 48}, { 34, 48}, { 49, 48}, { 64, 48}, { 79, 48}, { 94, 48}, {109, 48}, {124, 48}, {139, 48}, {154, 48}, {169, 48}, {189, 48}, {208, 48}, {225, 48}, // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down
+ { 2, 64}, { 21, 64}, { 39, 64}, { 94, 64}, {148, 64}, {163, 64}, {193, 64}, {208, 64}, {225, 64}, // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
+ {185, 45}, {160, 45}, {125, 45}, { 95, 45}, { 60, 45}, { 25, 45} // UNDERGLOW
+}, {
+ // LED Index to Flag
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
+ 2, 2, 2, 2, 2, 2 // UNDERGLOW
+} };
+#endif
diff --git a/keyboards/kprepublic/bm65hsrgb_iso/rev1/keyboard.json b/keyboards/kprepublic/bm65hsrgb_iso/rev1/keyboard.json
index d8fb49fb5f..187816b660 100644
--- a/keyboards/kprepublic/bm65hsrgb_iso/rev1/keyboard.json
+++ b/keyboards/kprepublic/bm65hsrgb_iso/rev1/keyboard.json
@@ -82,82 +82,6 @@
"animation": "band_sat"
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 202, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 11, "y": 32, "flags": 1},
- {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 198, "y": 32, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 3, "y": 48, "flags": 1},
- {"matrix": [3, 1], "x": 18, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 33, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 63, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 78, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 93, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 108, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 123, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 138, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 153, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 168, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 190, "y": 48, "flags": 1},
- {"matrix": [3, 13], "x": 209, "y": 48, "flags": 1},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 33, "y": 64, "flags": 1},
- {"matrix": [4, 8], "x": 101, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 153, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 194, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 209, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1},
- {"x": 216, "y": 32, "flags": 2},
- {"x": 180, "y": 32, "flags": 2},
- {"x": 144, "y": 32, "flags": 2},
- {"x": 108, "y": 32, "flags": 2},
- {"x": 72, "y": 32, "flags": 2},
- {"x": 36, "y": 32, "flags": 2}
- ]
"max_brightness": 140
},
"build": {
diff --git a/keyboards/kprepublic/bm65hsrgb_iso/rev1/rev1.c b/keyboards/kprepublic/bm65hsrgb_iso/rev1/rev1.c
index acf2aed98b..52c661d3f4 100644
--- a/keyboards/kprepublic/bm65hsrgb_iso/rev1/rev1.c
+++ b/keyboards/kprepublic/bm65hsrgb_iso/rev1/rev1.c
@@ -16,6 +16,44 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14},
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29},
+ { 30, NO_LED, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43},
+ { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58},
+ { 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, NO_LED, 64, 65, 66, 67}
+
+}, {
+ // LED Index to Physical Position
+ // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete
+ { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 }, { 224, 0 },
+ // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], Enter, Pos1
+ { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 }, { 224, 16 },
+ // Capslock, A, S, D, F, G, H, J, K, L, ;, ', , PageUp
+ { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 }, { 224, 32 },
+ // LShift, <, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, PageDown
+ { 3, 48 }, { 18, 48 }, { 33, 48 }, { 48, 48 }, { 63, 48 }, { 78, 48 }, { 93, 48 }, { 108, 48 }, { 123, 48 }, { 138, 48 }, { 153, 48 }, { 168, 48 }, { 190, 48 }, { 209, 48 }, { 224, 48 },
+ // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
+ { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 194, 64 }, { 209, 64 },{ 224, 64 },
+ // UNDERGLOW
+ { 216, 32 }, { 180, 32 }, { 144, 32 }, { 108, 32 }, { 72, 32 }, { 36, 32 }
+}, {
+ // LED Index to Flag
+ // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], Enter, Pos1
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ // Capslock, A, S, D, F, G, H, J, K, L, ;, ', , PageUp
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ // LShift, <, Z, X, C, V, B, N, M, ,, ., /, RShift, Up, PageDown
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
+ // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
+ 1, 1, 1, 4, 1, 1, 1, 1, 1,
+ // UNDERGLOW
+ 2, 2, 2, 2, 2, 2
+} };
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/kprepublic/bm68hsrgb/rev1/keyboard.json b/keyboards/kprepublic/bm68hsrgb/rev1/keyboard.json
index 3b379437c4..b5ca4d696d 100644
--- a/keyboards/kprepublic/bm68hsrgb/rev1/keyboard.json
+++ b/keyboards/kprepublic/bm68hsrgb/rev1/keyboard.json
@@ -57,82 +57,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
- {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 201, "y": 32, "flags": 1},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
- {"matrix": [3, 1], "x": 9, "y": 48, "flags": 1},
- {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 79, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 94, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 109, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 124, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 139, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 154, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 169, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 189, "y": 48, "flags": 1},
- {"matrix": [3, 13], "x": 208, "y": 48, "flags": 1},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 94, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 148, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 163, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 178, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 193, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 208, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1},
- {"x": 185, "y": 45, "flags": 2},
- {"x": 160, "y": 45, "flags": 2},
- {"x": 125, "y": 45, "flags": 2},
- {"x": 95, "y": 45, "flags": 2},
- {"x": 60, "y": 45, "flags": 2},
- {"x": 25, "y": 45, "flags": 2}
- ]
"max_brightness": 180
},
"build": {
diff --git a/keyboards/kprepublic/bm68hsrgb/rev1/rev1.c b/keyboards/kprepublic/bm68hsrgb/rev1/rev1.c
index 5484b15353..abe2b98c20 100644
--- a/keyboards/kprepublic/bm68hsrgb/rev1/rev1.c
+++ b/keyboards/kprepublic/bm68hsrgb/rev1/rev1.c
@@ -17,6 +17,31 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
+ { 30, NO_LED, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 },
+ { NO_LED, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 },
+ { 58, 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 }
+}, {
+ // LED Index to Physical Position
+ { 0, 0}, { 15, 0}, { 30, 0}, { 45, 0}, { 60, 0}, { 75, 0}, { 90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {202, 0}, {225, 0}, // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete
+ { 4, 16}, { 22, 16}, { 37, 16}, { 52, 16}, { 67, 16}, { 82, 16}, { 97, 16}, {112, 16}, {127, 16}, {142, 16}, {157, 16}, {172, 16}, {187, 16}, {206, 16}, {225, 16}, // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home
+ { 6, 32}, { 26, 32}, { 41, 32}, { 56, 32}, { 71, 32}, { 86, 32}, {101, 32}, {116, 32}, {131, 32}, {146, 32}, {161, 32}, {176, 32}, {201, 32}, {225, 32}, // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up
+ { 9, 48}, { 34, 48}, { 49, 48}, { 64, 48}, { 79, 48}, { 94, 48}, {109, 48}, {124, 48}, {139, 48}, {154, 48}, {169, 48}, {189, 48}, {208, 48}, {225, 48}, // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down
+ { 2, 64}, { 21, 64}, { 39, 64}, { 94, 64}, {148, 64}, {163, 64}, {178, 64}, {193, 64}, {208, 64}, {225, 64}, // Ctrl, GUI, Alt, Space, RAlt, FN, Ctrl, Left, Down, Right
+ {185, 45}, {160, 45}, {125, 45}, { 95, 45}, { 60, 45}, { 25, 45} // UNDERGLOW
+}, {
+ // LED Index to Flag
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, // Ctrl, GUI, Alt, Space, RAlt, FN, Ctrl, Left, Down, Right
+ 2, 2, 2, 2, 2, 2 // UNDERGLOW
+} };
+
//CAPS backlight
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
diff --git a/keyboards/kprepublic/bm68hsrgb/rev2/keyboard.json b/keyboards/kprepublic/bm68hsrgb/rev2/keyboard.json
index 56f4df55fb..28ad31304e 100644
--- a/keyboards/kprepublic/bm68hsrgb/rev2/keyboard.json
+++ b/keyboards/kprepublic/bm68hsrgb/rev2/keyboard.json
@@ -42,76 +42,6 @@
"solid_multisplash": true
},
"driver": "is31fl3741",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
- {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1},
- {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 79, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 94, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 109, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 124, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 139, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 154, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 169, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 189, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 150, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 165, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 180, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 195, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
- ],
"max_brightness": 180,
"sleep": true
},
diff --git a/keyboards/kprepublic/bm68hsrgb/rev2/rev2.c b/keyboards/kprepublic/bm68hsrgb/rev2/rev2.c
index 43f1eb56c0..68068d7fb9 100644
--- a/keyboards/kprepublic/bm68hsrgb/rev2/rev2.c
+++ b/keyboards/kprepublic/bm68hsrgb/rev2/rev2.c
@@ -92,6 +92,26 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, SW7_CS30, SW7_CS29, SW7_CS28}
};
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 },
+ { 44,NO_LED, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 },
+ { 58, 59, 60, NO_LED, NO_LED,NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 }
+}, {
+ {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0},
+ {4,16},{23,16},{38,16},{53,16},{68,16},{83,16},{98,16},{113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16},
+ {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32},
+ {9,48},{34,48},{49,48},{64,48},{79,48},{94,48},{109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48},
+ { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 150, 64 }, { 165, 64 }, { 180, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 }
+}, {
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1
+} };
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
diff --git a/keyboards/kprepublic/bm80hsrgb/bm80hsrgb.c b/keyboards/kprepublic/bm80hsrgb/bm80hsrgb.c
new file mode 100644
index 0000000000..2ec020739a
--- /dev/null
+++ b/keyboards/kprepublic/bm80hsrgb/bm80hsrgb.c
@@ -0,0 +1,142 @@
+/* Copyright 2021 peepeetee
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 0, NO_LED, 1, 2, 3, 4, NO_LED, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15 },
+ { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 },
+ { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 },
+ { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 11, 62, NO_LED, NO_LED, NO_LED },
+ /* ^ this one is f11*/
+ { 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, NO_LED, 74, NO_LED, NO_LED, 75, NO_LED },
+ { 76, 77, 78, NO_LED, NO_LED, 79, NO_LED, NO_LED, NO_LED, 80, 81, 82, 83, 84, NO_LED, 85, 86 }
+
+// K0_0, K0_2, K0_3, K0_4, K0_5, K0_7, K0_8, K0_9, K0_A, K0_B, K0_C, K3_C, K0_D, K0_E, K0_F, K0_10,
+// K1_0, K1_1, K1_2, K1_3, K1_4, K1_5, K1_6, K1_7, K1_8, K1_9, K1_A, K1_B, K1_C, K1_D, K1_E, K1_F, K1_10,
+// K2_0, K2_1, K2_2, K2_3, K2_4, K2_5, K2_6, K2_7, K2_8, K2_9, K2_A, K2_B, K2_C, K2_D, K2_E, K2_F, K2_10,
+// K3_0, K3_1, K3_2, K3_3, K3_4, K3_5, K3_6, K3_7, K3_8, K3_9, K3_A, K3_B, K3_D,
+// K4_0, K4_1, K4_2, K4_3, K4_4, K4_5, K4_6, K4_7, K4_8, K4_9, K4_A, K4_C, K4_F,
+// K5_0, K5_1, K5_2, K5_5, K5_9, K5_A, K5_B, K5_C, K5_D, K5_F, K5_10
+
+
+// K0_0, KC_NO, K0_2, K0_3, K0_4, K0_5, KC_NO, K0_7, K0_8, K0_9, K0_A, K0_B, K0_C, K0_D, K0_E, K0_F, K0_10
+// K1_0, K1_1, K1_2, K1_3, K1_4, K1_5, K1_6, K1_7, K1_8, K1_9, K1_A, K1_B, K1_C, K1_D, K1_E, K1_F, K1_10
+// K2_0, K2_1, K2_2, K2_3, K2_4, K2_5, K2_6, K2_7, K2_8, K2_9, K2_A, K2_B, K2_C, K2_D, K2_E, K2_F, K2_10
+// K3_0, K3_1, K3_2, K3_3, K3_4, K3_5, K3_6, K3_7, K3_8, K3_9, K3_A, K3_B, K3_C, K3_D, KC_NO, KC_NO, KC_NO
+// K4_0, K4_1, K4_2, K4_3, K4_4, K4_5, K4_6, K4_7, K4_8, K4_9, K4_A, KC_NO, K4_C, KC_NO, KC_NO, K4_F, KC_NO
+// K5_0, K5_1, K5_2, KC_NO, KC_NO, K5_5, KC_NO, KC_NO, KC_NO, K5_9, K5_A, K5_B, K5_C, K5_D, KC_NO, K5_F, K5_10
+
+ /*
+ * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
+ * │ 0 │ │ 1 │ 2 │ 3 │ 4 │ │ 5 │ 6 │ 7 │ 8 │ │ 9 │ 10│ 11│ 12│ │ 13│ 14│ 15│
+ * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐
+ * │ 16│ 17│ 18│ 19│ 20│ 21│ 22│ 23│ 24│ 25│ 26│ 27│ 28│ 29 │ │ 30│ 31│ 32│
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤
+ * │ 33 │ 34│ 35│ 36│ 37│ 38│ 39│ 40│ 41│ 42│ 43│ 44│ 45│ 46 │ │ 47│ 48│ 49│
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘
+ * │ 50 │ 51│ 52│ 53│ 54│ 55│ 56│ 57│ 58│ 59│ 60│ 61│ 62 │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐
+ * │ 63 │ 64│ 65│ 66│ 67│ 68│ 69│ 70│ 71│ 72│ 73│ 74 │ │ 75│
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐
+ * │ 76 │ 77 │ 78 │ 79 │ 80 │ 81 │ 82 │ 83 │ │ 84│ 85│ 86│
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘
+ */
+
+}, {
+ // LED Index to Physical Position
+ { 7, 5 }, { 31, 5 }, { 43, 5 }, { 55, 5 }, { 67, 5 }, { 85, 5 }, { 97, 5 }, { 109, 5 }, { 121, 5 }, { 139, 5 }, { 151, 5 }, { 163, 5 }, { 175, 5 }, { 193, 5 }, { 205, 5 }, { 217, 5 },
+ /*
+ * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
+ * │ 0 │ │ 1 │ 2 │ 3 │ 4 │ │ 5 │ 6 │ 7 │ 8 │ │ 9 │ 10│ 11│ 12│ │ 13│ 14│ 15│
+ * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
+ */
+ { 7, 20 }, { 19, 20 }, { 31, 20 }, { 43, 20 }, { 55, 20 }, { 67, 20 }, { 79, 20 }, { 91, 20 }, { 103, 20 }, { 115, 20 }, { 127, 20 }, { 139, 20 }, { 151, 20 }, { 169, 20 }, { 193, 20 }, { 205, 20 }, { 217, 20 },
+ /*
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐
+ * │ 16│ 17│ 18│ 19│ 20│ 21│ 22│ 23│ 24│ 25│ 26│ 27│ 28│ 29 │ │ 30│ 31│ 32│
+ * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───────┘ └───┴───┴───┘
+ */
+ { 10, 30 }, { 25, 30 }, { 37, 30 }, { 49, 30 }, { 61, 30 }, { 73, 30 }, { 85, 30 }, { 97, 30 }, { 109, 30 }, { 121, 30 }, { 133, 30 }, { 145, 30 }, { 157, 30 }, { 172, 30 }, { 193, 30 }, { 205, 30 }, { 217, 30 },
+ /*
+ * ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ ┌───┬───┬───┐
+ * │ 33 │ 34│ 35│ 36│ 37│ 38│ 39│ 40│ 41│ 42│ 43│ 44│ 45│ 46 │ │ 47│ 48│ 49│
+ * └─────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴─────┘ └───┴───┴───┘
+ */
+ { 11, 39 }, { 28, 39 }, { 40, 39 }, { 52, 39 }, { 64, 39 }, { 76, 39 }, { 88, 39 }, { 100, 39 }, { 112, 39 }, { 124, 39 }, { 136, 39 }, { 148, 39 }, { 168, 39 },
+ /*
+ * ┌──────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────────┐
+ * │ 50 │ 51│ 52│ 53│ 54│ 55│ 56│ 57│ 58│ 59│ 60│ 61│ 62 │
+ * └──────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴────────┘
+ */
+ { 14, 49 }, { 34, 49 }, { 46, 49 }, { 58, 49 }, { 70, 49 }, { 82, 49 }, { 94, 49 }, { 106, 49 }, { 118, 49 }, { 130, 49 }, { 142, 49 }, { 165, 49 }, { 205, 49 },
+ /*
+ * ┌────────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬──────────┐ ┌───┐
+ * │ 63 │ 64│ 65│ 66│ 67│ 68│ 69│ 70│ 71│ 72│ 73│ 74 │ │ 75│
+ * └────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴──────────┘ └───┘
+ */
+ { 8, 59 }, { 23, 59 }, { 38, 59 }, { 83, 59 }, { 129, 59 }, { 144, 59 }, { 159, 59 }, { 174, 59 }, { 193, 59 }, { 205, 59 }, { 217, 59 }
+ /*
+ * ┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐ ┌───┬───┬───┐
+ * │ 76 │ 77 │ 78 │ 79 │ 80 │ 81 │ 82 │ 83 │ │ 84│ 85│ 86│
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘
+ */
+}, {
+ // LED Index to Flag
+ 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 9/*scroll lock*/, 1,
+ /*
+ * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
+ * │ 0 │ │ 1 │ 2 │ 3 │ 4 │ │ 5 │ 6 │ 7 │ 8 │ │ 9 │ 10│ 11│ 12│ │ 13│ 14│ 15│
+ * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
+ */
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
+ /*
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐
+ * │ 16│ 17│ 18│ 19│ 20│ 21│ 22│ 23│ 24│ 25│ 26│ 27│ 28│ 29 │ │ 30│ 31│ 32│
+ * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───────┘ └───┴───┴───┘
+ */
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
+ /*
+ * ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ ┌───┬───┬───┐
+ * │ 33 │ 34│ 35│ 36│ 37│ 38│ 39│ 40│ 41│ 42│ 43│ 44│ 45│ 46 │ │ 47│ 48│ 49│
+ * └─────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴─────┘ └───┴───┴───┘
+ */
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ //caps lock is 1 instead of 1+8, this board has a dedicated led
+ /*
+ * ┌──────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────────┐
+ * │ 50 │ 51│ 52│ 53│ 54│ 55│ 56│ 57│ 58│ 59│ 60│ 61│ 62 │
+ * └──────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴────────┘
+ */
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ /*
+ * ┌────────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬──────────┐ ┌───┐
+ * │ 63 │ 64│ 65│ 66│ 67│ 68│ 69│ 70│ 71│ 72│ 73│ 74 │ │ 75│
+ * └────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴──────────┘ └───┘
+ */
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1
+ /*
+ * ┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐ ┌───┬───┬───┐
+ * │ 76 │ 77 │ 78 │ 79 │ 80 │ 81 │ 82 │ 83 │ │ 84│ 85│ 86│
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘
+ */
+} };
+
+
+#endif
diff --git a/keyboards/kprepublic/bm80hsrgb/keyboard.json b/keyboards/kprepublic/bm80hsrgb/keyboard.json
index 4acf4be5e8..1a1b1a6ed3 100644
--- a/keyboards/kprepublic/bm80hsrgb/keyboard.json
+++ b/keyboards/kprepublic/bm80hsrgb/keyboard.json
@@ -55,96 +55,7 @@
"solid_splash": true,
"solid_multisplash": true
},
- "driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 7, "y": 5, "flags": 1},
- {"matrix": [0, 2], "x": 31, "y": 5, "flags": 4},
- {"matrix": [0, 3], "x": 43, "y": 5, "flags": 4},
- {"matrix": [0, 4], "x": 55, "y": 5, "flags": 4},
- {"matrix": [0, 5], "x": 67, "y": 5, "flags": 4},
- {"matrix": [0, 7], "x": 85, "y": 5, "flags": 1},
- {"matrix": [0, 8], "x": 97, "y": 5, "flags": 1},
- {"matrix": [0, 9], "x": 109, "y": 5, "flags": 1},
- {"matrix": [0, 10], "x": 121, "y": 5, "flags": 1},
- {"matrix": [0, 11], "x": 139, "y": 5, "flags": 4},
- {"matrix": [0, 12], "x": 151, "y": 5, "flags": 4},
- {"matrix": [3, 12], "x": 163, "y": 5, "flags": 4},
- {"matrix": [0, 13], "x": 175, "y": 5, "flags": 4},
- {"matrix": [0, 14], "x": 193, "y": 5, "flags": 1},
- {"matrix": [0, 15], "x": 205, "y": 5, "flags": 9},
- {"matrix": [0, 16], "x": 217, "y": 5, "flags": 1},
- {"matrix": [1, 0], "x": 7, "y": 20, "flags": 4},
- {"matrix": [1, 1], "x": 19, "y": 20, "flags": 4},
- {"matrix": [1, 2], "x": 31, "y": 20, "flags": 4},
- {"matrix": [1, 3], "x": 43, "y": 20, "flags": 4},
- {"matrix": [1, 4], "x": 55, "y": 20, "flags": 4},
- {"matrix": [1, 5], "x": 67, "y": 20, "flags": 4},
- {"matrix": [1, 6], "x": 79, "y": 20, "flags": 4},
- {"matrix": [1, 7], "x": 91, "y": 20, "flags": 4},
- {"matrix": [1, 8], "x": 103, "y": 20, "flags": 4},
- {"matrix": [1, 9], "x": 115, "y": 20, "flags": 4},
- {"matrix": [1, 10], "x": 127, "y": 20, "flags": 4},
- {"matrix": [1, 11], "x": 139, "y": 20, "flags": 4},
- {"matrix": [1, 12], "x": 151, "y": 20, "flags": 4},
- {"matrix": [1, 13], "x": 169, "y": 20, "flags": 1},
- {"matrix": [1, 14], "x": 193, "y": 20, "flags": 1},
- {"matrix": [1, 15], "x": 205, "y": 20, "flags": 1},
- {"matrix": [1, 16], "x": 217, "y": 20, "flags": 1},
- {"matrix": [2, 0], "x": 10, "y": 30, "flags": 1},
- {"matrix": [2, 1], "x": 25, "y": 30, "flags": 4},
- {"matrix": [2, 2], "x": 37, "y": 30, "flags": 4},
- {"matrix": [2, 3], "x": 49, "y": 30, "flags": 4},
- {"matrix": [2, 4], "x": 61, "y": 30, "flags": 4},
- {"matrix": [2, 5], "x": 73, "y": 30, "flags": 4},
- {"matrix": [2, 6], "x": 85, "y": 30, "flags": 4},
- {"matrix": [2, 7], "x": 97, "y": 30, "flags": 4},
- {"matrix": [2, 8], "x": 109, "y": 30, "flags": 4},
- {"matrix": [2, 9], "x": 121, "y": 30, "flags": 4},
- {"matrix": [2, 10], "x": 133, "y": 30, "flags": 4},
- {"matrix": [2, 11], "x": 145, "y": 30, "flags": 4},
- {"matrix": [2, 12], "x": 157, "y": 30, "flags": 4},
- {"matrix": [2, 13], "x": 172, "y": 30, "flags": 4},
- {"matrix": [2, 14], "x": 193, "y": 30, "flags": 1},
- {"matrix": [2, 15], "x": 205, "y": 30, "flags": 1},
- {"matrix": [2, 16], "x": 217, "y": 30, "flags": 1},
- {"matrix": [3, 0], "x": 11, "y": 39, "flags": 1},
- {"matrix": [3, 1], "x": 28, "y": 39, "flags": 4},
- {"matrix": [3, 2], "x": 40, "y": 39, "flags": 4},
- {"matrix": [3, 3], "x": 52, "y": 39, "flags": 4},
- {"matrix": [3, 4], "x": 64, "y": 39, "flags": 4},
- {"matrix": [3, 5], "x": 76, "y": 39, "flags": 4},
- {"matrix": [3, 6], "x": 88, "y": 39, "flags": 4},
- {"matrix": [3, 7], "x": 100, "y": 39, "flags": 4},
- {"matrix": [3, 8], "x": 112, "y": 39, "flags": 4},
- {"matrix": [3, 9], "x": 124, "y": 39, "flags": 4},
- {"matrix": [3, 10], "x": 136, "y": 39, "flags": 4},
- {"matrix": [3, 11], "x": 148, "y": 39, "flags": 4},
- {"matrix": [3, 13], "x": 168, "y": 39, "flags": 1},
- {"matrix": [4, 0], "x": 14, "y": 49, "flags": 1},
- {"matrix": [4, 1], "x": 34, "y": 49, "flags": 4},
- {"matrix": [4, 2], "x": 46, "y": 49, "flags": 4},
- {"matrix": [4, 3], "x": 58, "y": 49, "flags": 4},
- {"matrix": [4, 4], "x": 70, "y": 49, "flags": 4},
- {"matrix": [4, 5], "x": 82, "y": 49, "flags": 4},
- {"matrix": [4, 6], "x": 94, "y": 49, "flags": 4},
- {"matrix": [4, 7], "x": 106, "y": 49, "flags": 4},
- {"matrix": [4, 8], "x": 118, "y": 49, "flags": 4},
- {"matrix": [4, 9], "x": 130, "y": 49, "flags": 4},
- {"matrix": [4, 10], "x": 142, "y": 49, "flags": 4},
- {"matrix": [4, 12], "x": 165, "y": 49, "flags": 1},
- {"matrix": [4, 15], "x": 205, "y": 49, "flags": 1},
- {"matrix": [5, 0], "x": 8, "y": 59, "flags": 1},
- {"matrix": [5, 1], "x": 23, "y": 59, "flags": 1},
- {"matrix": [5, 2], "x": 38, "y": 59, "flags": 1},
- {"matrix": [5, 5], "x": 83, "y": 59, "flags": 4},
- {"matrix": [5, 9], "x": 129, "y": 59, "flags": 1},
- {"matrix": [5, 10], "x": 144, "y": 59, "flags": 1},
- {"matrix": [5, 11], "x": 159, "y": 59, "flags": 1},
- {"matrix": [5, 12], "x": 174, "y": 59, "flags": 1},
- {"matrix": [5, 13], "x": 193, "y": 59, "flags": 1},
- {"matrix": [5, 15], "x": 205, "y": 59, "flags": 1},
- {"matrix": [5, 16], "x": 217, "y": 59, "flags": 1}
- ]
+ "driver": "ws2812"
},
"build": {
"lto": true
diff --git a/keyboards/kprepublic/bm80v2/bm80v2.c b/keyboards/kprepublic/bm80v2/bm80v2.c
index 94a8032a17..9c1b71d057 100644
--- a/keyboards/kprepublic/bm80v2/bm80v2.c
+++ b/keyboards/kprepublic/bm80v2/bm80v2.c
@@ -112,6 +112,30 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, SW8_CS36, SW8_CS35, SW8_CS34}
};
+led_config_t g_led_config = { {
+ { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
+ { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 },
+ { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 },
+ { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, NO_LED, NO_LED, NO_LED, NO_LED },
+ { 63, NO_LED, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, NO_LED, NO_LED, 75, NO_LED },
+ { 76, 77, 78, NO_LED,NO_LED, 79, NO_LED, NO_LED, NO_LED, NO_LED, 80, 81, 82, 83, 84, 85, 86 }
+},
+{
+ { 7, 5 }, { 31, 5 }, { 43, 5 }, { 55, 5 }, { 67, 5 }, { 85, 5 }, { 97, 5 }, { 109, 5 }, { 121, 5 }, { 139, 5 }, { 151, 5 }, { 163, 5 }, { 175, 5 }, { 193, 5 }, { 205, 5 }, { 217, 5 },
+ { 7, 20 }, { 19, 20 }, { 31, 20 }, { 43, 20 }, { 55, 20 }, { 67, 20 }, { 79, 20 }, { 91, 20 }, { 103, 20 }, { 115, 20 }, { 127, 20 }, { 139, 20 }, { 151, 20 }, { 169, 20 }, { 193, 20 }, { 205, 20 }, { 217, 20 },
+ { 10, 30 }, { 25, 30 }, { 37, 30 }, { 49, 30 }, { 61, 30 }, { 73, 30 }, { 85, 30 }, { 97, 30 }, { 109, 30 }, { 121, 30 }, { 133, 30 }, { 145, 30 }, { 157, 30 }, { 172, 30 }, { 193, 30 }, { 205, 30 }, { 217, 30 },
+ { 11, 39 }, { 28, 39 }, { 40, 39 }, { 52, 39 }, { 64, 39 }, { 76, 39 }, { 88, 39 }, { 100, 39 }, { 112, 39 }, { 124, 39 }, { 136, 39 }, { 148, 39 }, { 168, 39 },
+ { 17, 49 }, { 34, 49 }, { 46, 49 }, { 58, 49 }, { 70, 49 }, { 82, 49 }, { 94, 49 }, { 106, 49 }, { 118, 49 }, { 130, 49 }, { 142, 49 }, { 165, 49 }, { 205, 49 },
+ { 8, 59 }, { 23, 59 }, { 38, 59 }, { 83, 59 }, { 129, 59 }, { 144, 59 }, { 159, 59 }, { 174, 59 }, { 193, 59 }, { 205, 59 }, { 217, 59 }
+},
+{ 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1
+} };
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
diff --git a/keyboards/kprepublic/bm80v2/keyboard.json b/keyboards/kprepublic/bm80v2/keyboard.json
index a5da2324a9..43de1e4933 100644
--- a/keyboards/kprepublic/bm80v2/keyboard.json
+++ b/keyboards/kprepublic/bm80v2/keyboard.json
@@ -45,95 +45,6 @@
"animation": "cycle_all"
},
"driver": "is31fl3741",
- "layout": [
- {"matrix": [0, 0], "x": 7, "y": 5, "flags": 1},
- {"matrix": [0, 2], "x": 31, "y": 5, "flags": 4},
- {"matrix": [0, 3], "x": 43, "y": 5, "flags": 4},
- {"matrix": [0, 4], "x": 55, "y": 5, "flags": 4},
- {"matrix": [0, 5], "x": 67, "y": 5, "flags": 4},
- {"matrix": [0, 6], "x": 85, "y": 5, "flags": 1},
- {"matrix": [0, 7], "x": 97, "y": 5, "flags": 1},
- {"matrix": [0, 8], "x": 109, "y": 5, "flags": 1},
- {"matrix": [0, 9], "x": 121, "y": 5, "flags": 1},
- {"matrix": [0, 10], "x": 139, "y": 5, "flags": 4},
- {"matrix": [0, 11], "x": 151, "y": 5, "flags": 4},
- {"matrix": [0, 12], "x": 163, "y": 5, "flags": 4},
- {"matrix": [0, 13], "x": 175, "y": 5, "flags": 4},
- {"matrix": [0, 14], "x": 193, "y": 5, "flags": 1},
- {"matrix": [0, 15], "x": 205, "y": 5, "flags": 1},
- {"matrix": [0, 16], "x": 217, "y": 5, "flags": 1},
- {"matrix": [1, 0], "x": 7, "y": 20, "flags": 4},
- {"matrix": [1, 1], "x": 19, "y": 20, "flags": 4},
- {"matrix": [1, 2], "x": 31, "y": 20, "flags": 4},
- {"matrix": [1, 3], "x": 43, "y": 20, "flags": 4},
- {"matrix": [1, 4], "x": 55, "y": 20, "flags": 4},
- {"matrix": [1, 5], "x": 67, "y": 20, "flags": 4},
- {"matrix": [1, 6], "x": 79, "y": 20, "flags": 4},
- {"matrix": [1, 7], "x": 91, "y": 20, "flags": 4},
- {"matrix": [1, 8], "x": 103, "y": 20, "flags": 4},
- {"matrix": [1, 9], "x": 115, "y": 20, "flags": 4},
- {"matrix": [1, 10], "x": 127, "y": 20, "flags": 4},
- {"matrix": [1, 11], "x": 139, "y": 20, "flags": 4},
- {"matrix": [1, 12], "x": 151, "y": 20, "flags": 4},
- {"matrix": [1, 13], "x": 169, "y": 20, "flags": 1},
- {"matrix": [1, 14], "x": 193, "y": 20, "flags": 1},
- {"matrix": [1, 15], "x": 205, "y": 20, "flags": 1},
- {"matrix": [1, 16], "x": 217, "y": 20, "flags": 1},
- {"matrix": [2, 0], "x": 10, "y": 30, "flags": 1},
- {"matrix": [2, 1], "x": 25, "y": 30, "flags": 4},
- {"matrix": [2, 2], "x": 37, "y": 30, "flags": 4},
- {"matrix": [2, 3], "x": 49, "y": 30, "flags": 4},
- {"matrix": [2, 4], "x": 61, "y": 30, "flags": 4},
- {"matrix": [2, 5], "x": 73, "y": 30, "flags": 4},
- {"matrix": [2, 6], "x": 85, "y": 30, "flags": 4},
- {"matrix": [2, 7], "x": 97, "y": 30, "flags": 4},
- {"matrix": [2, 8], "x": 109, "y": 30, "flags": 4},
- {"matrix": [2, 9], "x": 121, "y": 30, "flags": 4},
- {"matrix": [2, 10], "x": 133, "y": 30, "flags": 4},
- {"matrix": [2, 11], "x": 145, "y": 30, "flags": 4},
- {"matrix": [2, 12], "x": 157, "y": 30, "flags": 4},
- {"matrix": [2, 13], "x": 172, "y": 30, "flags": 4},
- {"matrix": [2, 14], "x": 193, "y": 30, "flags": 1},
- {"matrix": [2, 15], "x": 205, "y": 30, "flags": 1},
- {"matrix": [2, 16], "x": 217, "y": 30, "flags": 1},
- {"matrix": [3, 0], "x": 11, "y": 39, "flags": 1},
- {"matrix": [3, 1], "x": 28, "y": 39, "flags": 4},
- {"matrix": [3, 2], "x": 40, "y": 39, "flags": 4},
- {"matrix": [3, 3], "x": 52, "y": 39, "flags": 4},
- {"matrix": [3, 4], "x": 64, "y": 39, "flags": 4},
- {"matrix": [3, 5], "x": 76, "y": 39, "flags": 4},
- {"matrix": [3, 6], "x": 88, "y": 39, "flags": 4},
- {"matrix": [3, 7], "x": 100, "y": 39, "flags": 4},
- {"matrix": [3, 8], "x": 112, "y": 39, "flags": 4},
- {"matrix": [3, 9], "x": 124, "y": 39, "flags": 4},
- {"matrix": [3, 10], "x": 136, "y": 39, "flags": 4},
- {"matrix": [3, 11], "x": 148, "y": 39, "flags": 4},
- {"matrix": [3, 12], "x": 168, "y": 39, "flags": 1},
- {"matrix": [4, 0], "x": 17, "y": 49, "flags": 1},
- {"matrix": [4, 2], "x": 34, "y": 49, "flags": 4},
- {"matrix": [4, 3], "x": 46, "y": 49, "flags": 4},
- {"matrix": [4, 4], "x": 58, "y": 49, "flags": 4},
- {"matrix": [4, 5], "x": 70, "y": 49, "flags": 4},
- {"matrix": [4, 6], "x": 82, "y": 49, "flags": 4},
- {"matrix": [4, 7], "x": 94, "y": 49, "flags": 4},
- {"matrix": [4, 8], "x": 106, "y": 49, "flags": 4},
- {"matrix": [4, 9], "x": 118, "y": 49, "flags": 4},
- {"matrix": [4, 10], "x": 130, "y": 49, "flags": 4},
- {"matrix": [4, 11], "x": 142, "y": 49, "flags": 4},
- {"matrix": [4, 12], "x": 165, "y": 49, "flags": 1},
- {"matrix": [4, 15], "x": 205, "y": 49, "flags": 1},
- {"matrix": [5, 0], "x": 8, "y": 59, "flags": 1},
- {"matrix": [5, 1], "x": 23, "y": 59, "flags": 1},
- {"matrix": [5, 2], "x": 38, "y": 59, "flags": 1},
- {"matrix": [5, 5], "x": 83, "y": 59, "flags": 4},
- {"matrix": [5, 10], "x": 129, "y": 59, "flags": 1},
- {"matrix": [5, 11], "x": 144, "y": 59, "flags": 1},
- {"matrix": [5, 12], "x": 159, "y": 59, "flags": 1},
- {"matrix": [5, 13], "x": 174, "y": 59, "flags": 1},
- {"matrix": [5, 14], "x": 193, "y": 59, "flags": 1},
- {"matrix": [5, 15], "x": 205, "y": 59, "flags": 1},
- {"matrix": [5, 16], "x": 217, "y": 59, "flags": 1}
- ],
"max_brightness": 180,
"sleep": true
},
diff --git a/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c b/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c
index fbaf9e0bcf..3009359c65 100644
--- a/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c
+++ b/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c
@@ -113,6 +113,30 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, SW8_CS36, SW8_CS35, SW8_CS34}
};
+led_config_t g_led_config = { {
+ { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
+ { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 },
+ { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 },
+ { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, NO_LED, NO_LED, NO_LED, NO_LED },
+ { 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, NO_LED, NO_LED, 76, NO_LED },
+ { 77, 78, 79, NO_LED,NO_LED, 80, NO_LED, NO_LED, NO_LED, NO_LED, 81, 82, 83, 84, 85, 86, 87 }
+},
+{
+ { 7, 5 }, { 31, 5 }, { 43, 5 }, { 55, 5 }, { 67, 5 }, { 85, 5 }, { 97, 5 }, { 109, 5 }, { 121, 5 }, { 139, 5 }, { 151, 5 }, { 163, 5 }, { 175, 5 }, { 193, 5 }, { 205, 5 }, { 217, 5 },
+ { 7, 20 }, { 19, 20 }, { 31, 20 }, { 43, 20 }, { 55, 20 }, { 67, 20 }, { 79, 20 }, { 91, 20 }, { 103, 20 }, { 115, 20 }, { 127, 20 }, { 139, 20 }, { 151, 20 }, { 169, 20 }, { 193, 20 }, { 205, 20 }, { 217, 20 },
+ { 10, 30 }, { 25, 30 }, { 37, 30 }, { 49, 30 }, { 61, 30 }, { 73, 30 }, { 85, 30 }, { 97, 30 }, { 109, 30 }, { 121, 30 }, { 133, 30 }, { 145, 30 }, { 157, 30 }, { 175, 35 }, { 193, 30 }, { 205, 30 }, { 217, 30 },
+ { 11, 39 }, { 28, 39 }, { 40, 39 }, { 52, 39 }, { 64, 39 }, { 76, 39 }, { 88, 39 }, { 100, 39 }, { 112, 39 }, { 124, 39 }, { 136, 39 }, { 148, 39 }, { 168, 39 },
+ { 8, 49 }, { 22, 49 }, { 34, 49 }, { 46, 49 }, { 58, 49 }, { 70, 49 }, { 82, 49 }, { 94, 49 }, { 106, 49 }, { 118, 49 }, { 130, 49 }, { 142, 49 }, { 165, 49 }, { 205, 49 },
+ { 8, 59 }, { 23, 59 }, { 38, 59 }, { 83, 59 }, { 129, 59 }, { 144, 59 }, { 159, 59 }, { 174, 59 }, { 193, 59 }, { 205, 59 }, { 217, 59 }
+},
+{ 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1
+} };
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
diff --git a/keyboards/kprepublic/bm80v2_iso/keyboard.json b/keyboards/kprepublic/bm80v2_iso/keyboard.json
index 5cf4c9c1bc..beb90a3738 100644
--- a/keyboards/kprepublic/bm80v2_iso/keyboard.json
+++ b/keyboards/kprepublic/bm80v2_iso/keyboard.json
@@ -45,96 +45,6 @@
"animation": "cycle_all"
},
"driver": "is31fl3741",
- "layout": [
- {"matrix": [0, 0], "x": 7, "y": 5, "flags": 1},
- {"matrix": [0, 2], "x": 31, "y": 5, "flags": 4},
- {"matrix": [0, 3], "x": 43, "y": 5, "flags": 4},
- {"matrix": [0, 4], "x": 55, "y": 5, "flags": 4},
- {"matrix": [0, 5], "x": 67, "y": 5, "flags": 4},
- {"matrix": [0, 6], "x": 85, "y": 5, "flags": 1},
- {"matrix": [0, 7], "x": 97, "y": 5, "flags": 1},
- {"matrix": [0, 8], "x": 109, "y": 5, "flags": 1},
- {"matrix": [0, 9], "x": 121, "y": 5, "flags": 1},
- {"matrix": [0, 10], "x": 139, "y": 5, "flags": 4},
- {"matrix": [0, 11], "x": 151, "y": 5, "flags": 4},
- {"matrix": [0, 12], "x": 163, "y": 5, "flags": 4},
- {"matrix": [0, 13], "x": 175, "y": 5, "flags": 4},
- {"matrix": [0, 14], "x": 193, "y": 5, "flags": 1},
- {"matrix": [0, 15], "x": 205, "y": 5, "flags": 1},
- {"matrix": [0, 16], "x": 217, "y": 5, "flags": 1},
- {"matrix": [1, 0], "x": 7, "y": 20, "flags": 4},
- {"matrix": [1, 1], "x": 19, "y": 20, "flags": 4},
- {"matrix": [1, 2], "x": 31, "y": 20, "flags": 4},
- {"matrix": [1, 3], "x": 43, "y": 20, "flags": 4},
- {"matrix": [1, 4], "x": 55, "y": 20, "flags": 4},
- {"matrix": [1, 5], "x": 67, "y": 20, "flags": 4},
- {"matrix": [1, 6], "x": 79, "y": 20, "flags": 4},
- {"matrix": [1, 7], "x": 91, "y": 20, "flags": 4},
- {"matrix": [1, 8], "x": 103, "y": 20, "flags": 4},
- {"matrix": [1, 9], "x": 115, "y": 20, "flags": 4},
- {"matrix": [1, 10], "x": 127, "y": 20, "flags": 4},
- {"matrix": [1, 11], "x": 139, "y": 20, "flags": 4},
- {"matrix": [1, 12], "x": 151, "y": 20, "flags": 4},
- {"matrix": [1, 13], "x": 169, "y": 20, "flags": 1},
- {"matrix": [1, 14], "x": 193, "y": 20, "flags": 1},
- {"matrix": [1, 15], "x": 205, "y": 20, "flags": 1},
- {"matrix": [1, 16], "x": 217, "y": 20, "flags": 1},
- {"matrix": [2, 0], "x": 10, "y": 30, "flags": 1},
- {"matrix": [2, 1], "x": 25, "y": 30, "flags": 4},
- {"matrix": [2, 2], "x": 37, "y": 30, "flags": 4},
- {"matrix": [2, 3], "x": 49, "y": 30, "flags": 4},
- {"matrix": [2, 4], "x": 61, "y": 30, "flags": 4},
- {"matrix": [2, 5], "x": 73, "y": 30, "flags": 4},
- {"matrix": [2, 6], "x": 85, "y": 30, "flags": 4},
- {"matrix": [2, 7], "x": 97, "y": 30, "flags": 4},
- {"matrix": [2, 8], "x": 109, "y": 30, "flags": 4},
- {"matrix": [2, 9], "x": 121, "y": 30, "flags": 4},
- {"matrix": [2, 10], "x": 133, "y": 30, "flags": 4},
- {"matrix": [2, 11], "x": 145, "y": 30, "flags": 4},
- {"matrix": [2, 12], "x": 157, "y": 30, "flags": 4},
- {"matrix": [2, 13], "x": 175, "y": 35, "flags": 4},
- {"matrix": [2, 14], "x": 193, "y": 30, "flags": 1},
- {"matrix": [2, 15], "x": 205, "y": 30, "flags": 1},
- {"matrix": [2, 16], "x": 217, "y": 30, "flags": 1},
- {"matrix": [3, 0], "x": 11, "y": 39, "flags": 1},
- {"matrix": [3, 1], "x": 28, "y": 39, "flags": 4},
- {"matrix": [3, 2], "x": 40, "y": 39, "flags": 4},
- {"matrix": [3, 3], "x": 52, "y": 39, "flags": 4},
- {"matrix": [3, 4], "x": 64, "y": 39, "flags": 4},
- {"matrix": [3, 5], "x": 76, "y": 39, "flags": 4},
- {"matrix": [3, 6], "x": 88, "y": 39, "flags": 4},
- {"matrix": [3, 7], "x": 100, "y": 39, "flags": 4},
- {"matrix": [3, 8], "x": 112, "y": 39, "flags": 4},
- {"matrix": [3, 9], "x": 124, "y": 39, "flags": 4},
- {"matrix": [3, 10], "x": 136, "y": 39, "flags": 4},
- {"matrix": [3, 11], "x": 148, "y": 39, "flags": 4},
- {"matrix": [3, 12], "x": 168, "y": 39, "flags": 1},
- {"matrix": [4, 0], "x": 8, "y": 49, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 49, "flags": 1},
- {"matrix": [4, 2], "x": 34, "y": 49, "flags": 4},
- {"matrix": [4, 3], "x": 46, "y": 49, "flags": 4},
- {"matrix": [4, 4], "x": 58, "y": 49, "flags": 4},
- {"matrix": [4, 5], "x": 70, "y": 49, "flags": 4},
- {"matrix": [4, 6], "x": 82, "y": 49, "flags": 4},
- {"matrix": [4, 7], "x": 94, "y": 49, "flags": 4},
- {"matrix": [4, 8], "x": 106, "y": 49, "flags": 4},
- {"matrix": [4, 9], "x": 118, "y": 49, "flags": 4},
- {"matrix": [4, 10], "x": 130, "y": 49, "flags": 4},
- {"matrix": [4, 11], "x": 142, "y": 49, "flags": 4},
- {"matrix": [4, 12], "x": 165, "y": 49, "flags": 1},
- {"matrix": [4, 15], "x": 205, "y": 49, "flags": 1},
- {"matrix": [5, 0], "x": 8, "y": 59, "flags": 1},
- {"matrix": [5, 1], "x": 23, "y": 59, "flags": 1},
- {"matrix": [5, 2], "x": 38, "y": 59, "flags": 1},
- {"matrix": [5, 5], "x": 83, "y": 59, "flags": 4},
- {"matrix": [5, 10], "x": 129, "y": 59, "flags": 1},
- {"matrix": [5, 11], "x": 144, "y": 59, "flags": 1},
- {"matrix": [5, 12], "x": 159, "y": 59, "flags": 1},
- {"matrix": [5, 13], "x": 174, "y": 59, "flags": 1},
- {"matrix": [5, 14], "x": 193, "y": 59, "flags": 1},
- {"matrix": [5, 15], "x": 205, "y": 59, "flags": 1},
- {"matrix": [5, 16], "x": 217, "y": 59, "flags": 1}
- ],
"max_brightness": 180,
"sleep": true
},
diff --git a/keyboards/kprepublic/bm980hsrgb/bm980hsrgb.c b/keyboards/kprepublic/bm980hsrgb/bm980hsrgb.c
new file mode 100644
index 0000000000..12475ac36b
--- /dev/null
+++ b/keyboards/kprepublic/bm980hsrgb/bm980hsrgb.c
@@ -0,0 +1,51 @@
+/* Copyright 2021 peepeetee
+ * Copyright 2021 bdtc123
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, NO_LED, 13 },
+ { 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 },
+ { 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 },
+ { 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, NO_LED, 65, 66 },
+ { 69, NO_LED, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82 },
+ { 86, 87, 88, 96, 97, 85, 89, 84, 83, 90, 91, 92, 93, 94, 95 },
+ { NO_LED, NO_LED, 34, 50, 51, 52, 16, 68, 67, 33, 15, 32, NO_LED, 14, NO_LED }
+
+
+}, {
+ // LED Index to Physical Position
+ { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 195, 0 }, { 202, 0 }, { 212, 0 }, { 224, 0 },
+ { 0, 20 }, { 15, 20 }, { 30, 20 }, { 45, 20 }, { 60, 20 }, { 75, 20 }, { 90, 20 }, { 105, 20 }, { 120, 20 }, { 135, 20 }, { 150, 20 }, { 165, 20 }, { 180, 20 },{ 195, 20 }, { 202, 20 }, { 212, 20 },{ 220, 20 },{ 224, 20 },
+ { 8, 30 }, { 15, 30 }, { 30, 30 }, { 45, 30 }, { 60, 30 }, { 75, 30 }, { 90, 30 }, { 105, 30 }, { 120, 30 }, { 135, 30 }, { 150, 30 }, { 165, 30 }, { 180, 30 },{ 195, 30 }, { 202, 30 }, { 212, 30 },{ 220, 30 },{ 224, 30 },
+ { 9, 40 }, { 15, 40 }, { 30, 40 }, { 45, 40 }, { 60, 40 }, { 75, 40 }, { 90, 40 }, { 105, 40 }, { 120, 40 }, { 135, 40 }, { 150, 40 }, { 165, 40 }, { 180, 40 },{ 195, 40 }, { 202, 40 }, { 212, 40 },
+ { 12, 50 }, { 15, 50 }, { 30, 50 }, { 45, 50 }, { 60, 50 }, { 75, 50 }, { 90, 50 }, { 105, 50 }, { 120, 50 }, { 135, 50 }, { 150, 50 }, { 165, 50 }, { 180, 50 },{ 195, 50 }, { 202, 50 }, { 212, 50 },{ 224, 50 },
+ { 2, 60 }, { 17, 60 }, { 34, 60 }, { 77, 60 }, { 120, 60 }, { 135, 60 }, { 150, 60 }, { 165, 60 }, { 177, 60 }, { 182, 60 }, { 197, 60 }, { 212, 60 },
+
+}, {
+ // LED Index to Flag
+ 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 9/*scroll lock*/, 1,1,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 9/*caps lock*/, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 4, 4
+} };
+
+
+#endif
diff --git a/keyboards/kprepublic/bm980hsrgb/keyboard.json b/keyboards/kprepublic/bm980hsrgb/keyboard.json
index c4ffb1746a..85f8b006ae 100644
--- a/keyboards/kprepublic/bm980hsrgb/keyboard.json
+++ b/keyboards/kprepublic/bm980hsrgb/keyboard.json
@@ -8,107 +8,7 @@
"device_version": "0.0.1"
},
"rgb_matrix": {
- "driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 195, "y": 0, "flags": 1},
- {"matrix": [6, 13], "x": 202, "y": 0, "flags": 9},
- {"matrix": [6, 10], "x": 212, "y": 0, "flags": 1},
- {"matrix": [6, 6], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 20, "flags": 4},
- {"matrix": [1, 1], "x": 15, "y": 20, "flags": 4},
- {"matrix": [1, 2], "x": 30, "y": 20, "flags": 4},
- {"matrix": [1, 3], "x": 45, "y": 20, "flags": 4},
- {"matrix": [1, 4], "x": 60, "y": 20, "flags": 4},
- {"matrix": [1, 5], "x": 75, "y": 20, "flags": 4},
- {"matrix": [1, 6], "x": 90, "y": 20, "flags": 4},
- {"matrix": [1, 7], "x": 105, "y": 20, "flags": 4},
- {"matrix": [1, 8], "x": 120, "y": 20, "flags": 4},
- {"matrix": [1, 9], "x": 135, "y": 20, "flags": 4},
- {"matrix": [1, 10], "x": 150, "y": 20, "flags": 4},
- {"matrix": [1, 11], "x": 165, "y": 20, "flags": 4},
- {"matrix": [1, 12], "x": 180, "y": 20, "flags": 4},
- {"matrix": [1, 13], "x": 195, "y": 20, "flags": 1},
- {"matrix": [1, 14], "x": 202, "y": 20, "flags": 1},
- {"matrix": [6, 11], "x": 212, "y": 20, "flags": 1},
- {"matrix": [6, 9], "x": 220, "y": 20, "flags": 1},
- {"matrix": [6, 2], "x": 224, "y": 20, "flags": 1},
- {"matrix": [2, 0], "x": 8, "y": 30, "flags": 1},
- {"matrix": [2, 1], "x": 15, "y": 30, "flags": 4},
- {"matrix": [2, 2], "x": 30, "y": 30, "flags": 4},
- {"matrix": [2, 3], "x": 45, "y": 30, "flags": 4},
- {"matrix": [2, 4], "x": 60, "y": 30, "flags": 4},
- {"matrix": [2, 5], "x": 75, "y": 30, "flags": 4},
- {"matrix": [2, 6], "x": 90, "y": 30, "flags": 4},
- {"matrix": [2, 7], "x": 105, "y": 30, "flags": 4},
- {"matrix": [2, 8], "x": 120, "y": 30, "flags": 4},
- {"matrix": [2, 9], "x": 135, "y": 30, "flags": 4},
- {"matrix": [2, 10], "x": 150, "y": 30, "flags": 4},
- {"matrix": [2, 11], "x": 165, "y": 30, "flags": 4},
- {"matrix": [2, 12], "x": 180, "y": 30, "flags": 4},
- {"matrix": [2, 13], "x": 195, "y": 30, "flags": 4},
- {"matrix": [2, 14], "x": 202, "y": 30, "flags": 4},
- {"matrix": [6, 3], "x": 212, "y": 30, "flags": 4},
- {"matrix": [6, 4], "x": 220, "y": 30, "flags": 4},
- {"matrix": [6, 5], "x": 224, "y": 30, "flags": 1},
- {"matrix": [3, 0], "x": 9, "y": 40, "flags": 9},
- {"matrix": [3, 1], "x": 15, "y": 40, "flags": 4},
- {"matrix": [3, 2], "x": 30, "y": 40, "flags": 4},
- {"matrix": [3, 3], "x": 45, "y": 40, "flags": 4},
- {"matrix": [3, 4], "x": 60, "y": 40, "flags": 4},
- {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4},
- {"matrix": [3, 6], "x": 90, "y": 40, "flags": 4},
- {"matrix": [3, 7], "x": 105, "y": 40, "flags": 4},
- {"matrix": [3, 8], "x": 120, "y": 40, "flags": 4},
- {"matrix": [3, 9], "x": 135, "y": 40, "flags": 4},
- {"matrix": [3, 10], "x": 150, "y": 40, "flags": 4},
- {"matrix": [3, 11], "x": 165, "y": 40, "flags": 4},
- {"matrix": [3, 13], "x": 180, "y": 40, "flags": 1},
- {"matrix": [3, 14], "x": 195, "y": 40, "flags": 4},
- {"matrix": [6, 8], "x": 202, "y": 40, "flags": 4},
- {"matrix": [6, 7], "x": 212, "y": 40, "flags": 4},
- {"matrix": [4, 0], "x": 12, "y": 50, "flags": 1},
- {"matrix": [4, 2], "x": 15, "y": 50, "flags": 4},
- {"matrix": [4, 3], "x": 30, "y": 50, "flags": 4},
- {"matrix": [4, 4], "x": 45, "y": 50, "flags": 4},
- {"matrix": [4, 5], "x": 60, "y": 50, "flags": 4},
- {"matrix": [4, 6], "x": 75, "y": 50, "flags": 4},
- {"matrix": [4, 7], "x": 90, "y": 50, "flags": 4},
- {"matrix": [4, 8], "x": 105, "y": 50, "flags": 4},
- {"matrix": [4, 9], "x": 120, "y": 50, "flags": 4},
- {"matrix": [4, 10], "x": 135, "y": 50, "flags": 4},
- {"matrix": [4, 11], "x": 150, "y": 50, "flags": 4},
- {"matrix": [4, 12], "x": 165, "y": 50, "flags": 1},
- {"matrix": [4, 13], "x": 180, "y": 50, "flags": 1},
- {"matrix": [4, 14], "x": 195, "y": 50, "flags": 4},
- {"matrix": [5, 8], "x": 202, "y": 50, "flags": 4},
- {"matrix": [5, 7], "x": 212, "y": 50, "flags": 4},
- {"matrix": [5, 5], "x": 224, "y": 50, "flags": 1},
- {"matrix": [5, 0], "x": 2, "y": 60, "flags": 1},
- {"matrix": [5, 1], "x": 17, "y": 60, "flags": 1},
- {"matrix": [5, 2], "x": 34, "y": 60, "flags": 1},
- {"matrix": [5, 6], "x": 77, "y": 60, "flags": 4},
- {"matrix": [5, 9], "x": 120, "y": 60, "flags": 1},
- {"matrix": [5, 10], "x": 135, "y": 60, "flags": 1},
- {"matrix": [5, 11], "x": 150, "y": 60, "flags": 1},
- {"matrix": [5, 12], "x": 165, "y": 60, "flags": 1},
- {"matrix": [5, 13], "x": 177, "y": 60, "flags": 1},
- {"matrix": [5, 14], "x": 182, "y": 60, "flags": 1},
- {"matrix": [5, 3], "x": 197, "y": 60, "flags": 4},
- {"matrix": [5, 4], "x": 212, "y": 60, "flags": 4}
- ]
+ "driver": "ws2812"
},
"build": {
"lto": true
diff --git a/keyboards/labbe/labbeminiv1/keyboard.json b/keyboards/labbe/labbeminiv1/keyboard.json
index 905a180d22..e1b94dfa4e 100644
--- a/keyboards/labbe/labbeminiv1/keyboard.json
+++ b/keyboards/labbe/labbeminiv1/keyboard.json
@@ -26,15 +26,6 @@
"diode_direction": "COL2ROW",
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
- "rgb_matrix": {
- "driver": "ws2812",
- "layout": [
- {"matrix": [0, 1], "x": 112, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 64, "flags": 4},
- {"matrix": [1, 1], "x": 112, "y": 64, "flags": 4},
- {"matrix": [1, 2], "x": 224, "y": 64, "flags": 4}
- ]
- },
"layouts": {
"LAYOUT_wasd": {
"layout": [
diff --git a/keyboards/labbe/labbeminiv1/labbeminiv1.c b/keyboards/labbe/labbeminiv1/labbeminiv1.c
new file mode 100644
index 0000000000..a2ce367c5b
--- /dev/null
+++ b/keyboards/labbe/labbeminiv1/labbeminiv1.c
@@ -0,0 +1,36 @@
+/*
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ {NO_LED, 0, NO_LED},
+ {1, 2, 3}
+ },
+ {
+ // LED Index to Physical Position
+ {112, 0},
+ {0, 64}, {112, 64}, {224, 64},
+ },
+ {
+ // LED Index to Flag
+ 4,
+ 4, 4, 4
+ }
+};
+#endif
\ No newline at end of file
diff --git a/keyboards/latincompass/latin17rgb/keyboard.json b/keyboards/latincompass/latin17rgb/keyboard.json
index d6689f203a..6dab2faf68 100644
--- a/keyboards/latincompass/latin17rgb/keyboard.json
+++ b/keyboards/latincompass/latin17rgb/keyboard.json
@@ -61,25 +61,6 @@
"solid_reactive": true
},
"driver": "is31fl3731",
- "layout": [
- {"matrix": [0, 0], "x": 48, "y": 32, "flags": 4},
- {"matrix": [0, 1], "x": 48, "y": 48, "flags": 4},
- {"matrix": [0, 2], "x": 64, "y": 48, "flags": 4},
- {"matrix": [0, 3], "x": 80, "y": 48, "flags": 1},
- {"matrix": [1, 0], "x": 16, "y": 32, "flags": 1},
- {"matrix": [1, 1], "x": 16, "y": 48, "flags": 1},
- {"matrix": [1, 2], "x": 32, "y": 48, "flags": 4},
- {"matrix": [1, 3], "x": 64, "y": 64, "flags": 1},
- {"matrix": [2, 0], "x": 80, "y": 16, "flags": 1},
- {"matrix": [2, 1], "x": 64, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 80, "y": 32, "flags": 4},
- {"matrix": [3, 0], "x": 112, "y": 0, "flags": 1},
- {"matrix": [3, 1], "x": 128, "y": 0, "flags": 4},
- {"matrix": [3, 2], "x": 144, "y": 0, "flags": 4},
- {"matrix": [3, 3], "x": 160, "y": 0, "flags": 4},
- {"matrix": [4, 0], "x": 128, "y": 16, "flags": 4},
- {"matrix": [4, 1], "x": 144, "y": 16, "flags": 4}
- ],
"sleep": true
},
"features": {
diff --git a/keyboards/latincompass/latin17rgb/latin17rgb.c b/keyboards/latincompass/latin17rgb/latin17rgb.c
index c9120920eb..54705bf4f7 100644
--- a/keyboards/latincompass/latin17rgb/latin17rgb.c
+++ b/keyboards/latincompass/latin17rgb/latin17rgb.c
@@ -1,18 +1,18 @@
/* Copyright 2021 18438880
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
@@ -31,7 +31,7 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
{0, C1_12, C2_12, C3_12},// BL5
{0, C1_13, C2_13, C3_13},// BL6
{0, C1_6, C2_6, C3_6},// BL7
- {0, C1_7, C2_7, C3_7},//BL8
+ {0, C1_7, C2_7, C3_7},//BL8
{0, C1_8, C2_8, C3_8},// BL9
{0, C1_14, C2_14, C3_14},// BL10
{0, C1_15, C2_15, C3_15},// BL11
@@ -41,6 +41,30 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
{0, C9_3, C8_3, C7_3},//BL15
{0, C9_5, C8_5, C7_5},// BL16
{0, C9_6, C8_6, C7_6},// BL17
+
+};
+led_config_t g_led_config = {
+ {
+ { 0, 1, 2, 3},
+ { 4, 5, 6, 7},
+ { 8, 9, 10, NO_LED},
+ { 11, 12, 13, 14},
+ { 15, 16, NO_LED, NO_LED},
+ },
+ {
+ { 48, 32},{ 48, 48},{ 64, 48},{ 80, 48},
+ { 16, 32},{ 16, 48}, { 32, 48},{ 64, 64},
+ { 80, 16},{ 64, 32},{ 80, 32},
+ {112, 0},{128, 0},{144, 0},{160, 0},
+ {128, 16},{144, 16}
+ },
+ {
+ 4, 4, 4, 1,
+ 1, 1, 4, 1,
+ 1, 4, 4,
+ 1, 4, 4, 4,
+ 4, 4
+ }
};
#endif
diff --git a/keyboards/latincompass/latin6rgb/keyboard.json b/keyboards/latincompass/latin6rgb/keyboard.json
index 6674b58205..d2708df399 100644
--- a/keyboards/latincompass/latin6rgb/keyboard.json
+++ b/keyboards/latincompass/latin6rgb/keyboard.json
@@ -39,14 +39,6 @@
"solid_reactive": true
},
"driver": "is31fl3731",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 32, "flags": 4},
- {"matrix": [0, 1], "x": 0, "y": 64, "flags": 4},
- {"matrix": [0, 2], "x": 112, "y": 64, "flags": 4},
- {"matrix": [1, 0], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 1], "x": 112, "y": 32, "flags": 1},
- {"matrix": [1, 2], "x": 224, "y": 32, "flags": 4}
- ],
"sleep": true
},
"matrix_pins": {
diff --git a/keyboards/latincompass/latin6rgb/latin6rgb.c b/keyboards/latincompass/latin6rgb/latin6rgb.c
index 1176063c37..779373ae8f 100644
--- a/keyboards/latincompass/latin6rgb/latin6rgb.c
+++ b/keyboards/latincompass/latin6rgb/latin6rgb.c
@@ -1,18 +1,18 @@
/* Copyright 2021 18438880
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
@@ -31,4 +31,19 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
{0, C1_12, C2_12, C3_12},// BL5
{0, C1_13, C2_13, C3_13},// BL6
};
+
+led_config_t g_led_config = {
+ {
+ { 0, 1, 2},
+ { 3, 4, 5},
+ },
+ {
+ { 48, 32},{ 48, 48},{ 64, 48},
+ { 80, 16},{ 64, 32},{ 80, 32}
+ },
+ {
+ 4, 4, 4,
+ 1, 1, 4
+ }
+};
#endif
diff --git a/keyboards/latincompass/latinpad/keyboard.json b/keyboards/latincompass/latinpad/keyboard.json
index 930cdadad8..3b4563b1ca 100644
--- a/keyboards/latincompass/latinpad/keyboard.json
+++ b/keyboards/latincompass/latinpad/keyboard.json
@@ -40,27 +40,7 @@
"pixel_flow": true,
"pixel_fractal": true
},
- "driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 16, "flags": 1},
- {"matrix": [0, 1], "x": 74, "y": 16, "flags": 1},
- {"matrix": [0, 2], "x": 148, "y": 16, "flags": 1},
- {"matrix": [0, 3], "x": 224, "y": 16, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 32, "flags": 1},
- {"matrix": [1, 1], "x": 74, "y": 32, "flags": 1},
- {"matrix": [1, 2], "x": 148, "y": 32, "flags": 1},
- {"matrix": [1, 3], "x": 224, "y": 32, "flags": 1},
- {"matrix": [2, 0], "x": 0, "y": 48, "flags": 1},
- {"matrix": [2, 1], "x": 74, "y": 48, "flags": 1},
- {"matrix": [2, 2], "x": 148, "y": 48, "flags": 1},
- {"matrix": [2, 3], "x": 224, "y": 48, "flags": 1},
- {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1},
- {"matrix": [3, 1], "x": 74, "y": 64, "flags": 1},
- {"matrix": [3, 2], "x": 148, "y": 64, "flags": 1},
- {"matrix": [3, 3], "x": 224, "y": 64, "flags": 1},
- {"matrix": [4, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [4, 1], "x": 74, "y": 0, "flags": 1}
- ]
+ "driver": "ws2812"
},
"features": {
"bootmagic": true,
diff --git a/keyboards/latincompass/latinpad/latinpad.c b/keyboards/latincompass/latinpad/latinpad.c
new file mode 100644
index 0000000000..b476b4c238
--- /dev/null
+++ b/keyboards/latincompass/latinpad/latinpad.c
@@ -0,0 +1,38 @@
+/* Copyright 2020 latincompass
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3 },
+ { 4, 5, 6, 7 },
+ { 8, 9, 10, 11 },
+ { 12, 13, 14, 15 },
+ { 16, 17, NO_LED, NO_LED }
+},{
+ { 74, 21 }, { 37, 21 }, { 24, 21 }, { 18, 21 },
+ { 74, 10 }, { 37, 10 }, { 28, 10 }, { 18, 10 },
+ { 74, 7 }, { 37, 7 }, { 20, 7 }, { 18, 7 },
+ { 74, 5 }, { 37, 5 }, { 22, 5 }, { 18, 5 },
+ { 74, 5 }, { 37, 5 },
+},{
+ 1, 1, 1, 1,
+ 1, 1, 1, 1,
+ 1, 1, 1, 1,
+ 1, 1, 1, 1,
+ 1, 1
+} };
+#endif
diff --git a/keyboards/linworks/fave65h/fave65h.c b/keyboards/linworks/fave65h/fave65h.c
new file mode 100644
index 0000000000..01cf705e2a
--- /dev/null
+++ b/keyboards/linworks/fave65h/fave65h.c
@@ -0,0 +1,44 @@
+/*
+Copyright 2020
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+#include "quantum.h"
+
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52 },
+ { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
+ { 0, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, NO_LED, 17, 16 },
+ { 51, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, NO_LED, 39, 40, 41 },
+ { 50, 49, 48, NO_LED, NO_LED, NO_LED, 47, NO_LED, 46, NO_LED, 45, NO_LED, 44, 43, 42 }
+ }, {
+ // LED Index to Physical Position
+ {3, 32}, {8, 16}, {28, 16}, {44, 16}, {60, 16}, {76, 16}, {92, 16}, {108, 16}, {124, 16}, {140, 16},
+ {156, 16}, {172, 16}, {188, 16}, {204, 16}, {224, 16}, {244, 16}, {244, 32}, {218, 32}, {192, 32}, {176, 32},
+ {160, 32}, {144, 32}, {128, 32}, {112, 32}, {96, 32}, {80, 32}, {64, 32}, {48, 32}, {32, 32}, {40, 48},
+ {56, 48}, {72, 48}, {88, 48}, {104, 48}, {120, 48}, {136, 48}, {152, 48}, {168, 48}, {184, 48}, {206, 48},
+ {228, 48}, {244, 48}, {244, 64}, {228, 64}, {212, 64}, {186, 64}, {166, 64}, {96, 64}, {46, 64}, {22, 64},
+ {0, 64}, {14, 48}, {244, 0}, {220, 3}, {196, 0}, {180, 0}, {164, 0}, {148, 0}, {132, 0}, {116, 0},
+ {100, 0}, {84, 0}, {68, 0}, {52, 0}, {36, 0}, {20, 0}, {4, 0}
+ }, {
+ // LED Index to Flag
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1
+ }
+};
+#endif
diff --git a/keyboards/linworks/fave65h/keyboard.json b/keyboards/linworks/fave65h/keyboard.json
index e92bb4abca..212bd0a37b 100644
--- a/keyboards/linworks/fave65h/keyboard.json
+++ b/keyboards/linworks/fave65h/keyboard.json
@@ -53,75 +53,6 @@
"animation": "cycle_all"
},
"driver": "ws2812",
- "layout": [
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 188, "y": 16, "flags": 1},
- {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
- {"matrix": [3, 1], "x": 34, "y": 48, "flags": 1},
- {"matrix": [3, 2], "x": 49, "y": 48, "flags": 9},
- {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 189, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 195, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 171, "y": 64, "flags": 4},
- {"matrix": [4, 8], "x": 152, "y": 64, "flags": 4},
- {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 39, "y": 64, "flags": 4},
- {"matrix": [4, 1], "x": 21, "y": 64, "flags": 4},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 4},
- {"matrix": [3, 0], "x": 9, "y": 48, "flags": 4},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 1},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}
- ],
"max_brightness": 120,
"sleep": true
},
diff --git a/keyboards/linworks/fave87h/fave87h.c b/keyboards/linworks/fave87h/fave87h.c
new file mode 100644
index 0000000000..c529e439b9
--- /dev/null
+++ b/keyboards/linworks/fave87h/fave87h.c
@@ -0,0 +1,48 @@
+/*
+Copyright 2020
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 47, NO_LED, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62 },
+ { 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30 },
+ { 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
+ { 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, NO_LED, 0, NO_LED, NO_LED, NO_LED },
+ { 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, NO_LED, 85, NO_LED, NO_LED, 86, NO_LED },
+ { 73, 72, 71, NO_LED, NO_LED, 70, NO_LED, NO_LED, NO_LED, 69, 68, NO_LED, 67, 66, 65, 64, 63 }
+ }, {
+ // LED Index to Physical Position
+ { 190, 40 }, { 167, 40 }, { 153, 40 }, { 139, 40 }, { 125, 40 }, { 111, 40 }, { 97, 40 }, { 83, 40 }, { 69, 40 }, { 55, 40 },
+ { 40, 40 }, { 26, 40 }, { 0, 41 }, { 5, 27 }, { 23, 27 }, { 37, 27 }, { 51, 27 }, { 65, 27 }, { 79, 27 }, { 93, 27 },
+ { 107, 27 }, { 121, 27 }, { 135, 27 }, { 149, 27 }, { 163, 27 }, { 177, 27 }, { 195, 27 }, { 216, 27 }, { 230, 27 }, { 244, 27 },
+ { 244, 15 }, { 230, 15 }, { 216, 15 }, { 191, 17 }, { 170, 15 }, { 156, 15 }, { 142, 15 }, { 128, 15 }, { 114, 15 }, { 100, 15 },
+ { 86, 15 }, { 72, 15 }, { 58, 15 }, { 44, 15 }, { 30, 15 }, { 16, 15 }, { 2, 15 }, { 2, 0 }, { 30, 0 }, { 44, 0 },
+ { 58, 0 }, { 72, 0 }, { 93, 0 }, { 107, 0 }, { 121, 0 }, { 135, 0 }, { 156, 0 }, { 170, 0 }, { 184, 0 }, { 198, 0 },
+ { 216, 0 }, { 230, 0 }, { 244, 0 }, { 244, 64 }, { 230, 64 }, { 216, 64 }, { 197, 64 }, { 179, 64 }, { 162, 64 }, { 144, 64 },
+ { 91, 64 }, { 39, 64 }, { 21, 64 }, { 4, 64 }, { 11, 52 }, { 33, 52 }, { 47, 52 }, { 62, 52 }, { 76, 52 }, { 90, 52 },
+ { 104, 52 }, { 118, 52 }, { 132, 52 }, { 146, 52 }, { 160, 52 }, { 186, 52 }, { 230, 52 }
+ }, {
+ // LED Index to Flag
+ 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
+ 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1
+ }
+};
+#endif
diff --git a/keyboards/linworks/fave87h/keyboard.json b/keyboards/linworks/fave87h/keyboard.json
index b3d125c770..4bb6e42de4 100644
--- a/keyboards/linworks/fave87h/keyboard.json
+++ b/keyboards/linworks/fave87h/keyboard.json
@@ -56,95 +56,6 @@
"animation": "cycle_all"
},
"driver": "ws2812",
- "layout": [
- {"matrix": [3, 13], "x": 174, "y": 40, "flags": 1},
- {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4},
- {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4},
- {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4},
- {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4},
- {"matrix": [3, 7], "x": 101, "y": 40, "flags": 1},
- {"matrix": [3, 6], "x": 88, "y": 40, "flags": 1},
- {"matrix": [3, 5], "x": 75, "y": 40, "flags": 1},
- {"matrix": [3, 4], "x": 62, "y": 40, "flags": 1},
- {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4},
- {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4},
- {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4},
- {"matrix": [3, 0], "x": 5, "y": 40, "flags": 4},
- {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1},
- {"matrix": [2, 1], "x": 20, "y": 28, "flags": 1},
- {"matrix": [2, 2], "x": 33, "y": 28, "flags": 1},
- {"matrix": [2, 3], "x": 46, "y": 28, "flags": 1},
- {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4},
- {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4},
- {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4},
- {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4},
- {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4},
- {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4},
- {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4},
- {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4},
- {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4},
- {"matrix": [2, 13], "x": 179, "y": 28, "flags": 4},
- {"matrix": [2, 14], "x": 198, "y": 28, "flags": 4},
- {"matrix": [2, 15], "x": 211, "y": 28, "flags": 4},
- {"matrix": [2, 16], "x": 224, "y": 28, "flags": 1},
- {"matrix": [1, 16], "x": 224, "y": 15, "flags": 1},
- {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1},
- {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1},
- {"matrix": [1, 13], "x": 176, "y": 15, "flags": 1},
- {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4},
- {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 26, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 39, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 52, "y": 0, "flags": 9},
- {"matrix": [0, 5], "x": 65, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 85, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 98, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 111, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 124, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 143, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 156, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 169, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 182, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 198, "y": 0, "flags": 4},
- {"matrix": [0, 15], "x": 211, "y": 0, "flags": 4},
- {"matrix": [0, 16], "x": 224, "y": 0, "flags": 1},
- {"matrix": [5, 16], "x": 224, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 211, "y": 64, "flags": 4},
- {"matrix": [5, 14], "x": 198, "y": 64, "flags": 4},
- {"matrix": [5, 13], "x": 180, "y": 64, "flags": 4},
- {"matrix": [5, 12], "x": 164, "y": 64, "flags": 4},
- {"matrix": [5, 10], "x": 148, "y": 64, "flags": 4},
- {"matrix": [5, 9], "x": 131, "y": 64, "flags": 4},
- {"matrix": [5, 5], "x": 83, "y": 64, "flags": 4},
- {"matrix": [5, 2], "x": 34, "y": 64, "flags": 4},
- {"matrix": [5, 1], "x": 18, "y": 64, "flags": 4},
- {"matrix": [5, 0], "x": 2, "y": 64, "flags": 4},
- {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1},
- {"matrix": [4, 1], "x": 29, "y": 52, "flags": 4},
- {"matrix": [4, 2], "x": 42, "y": 52, "flags": 1},
- {"matrix": [4, 3], "x": 55, "y": 52, "flags": 1},
- {"matrix": [4, 4], "x": 68, "y": 52, "flags": 1},
- {"matrix": [4, 5], "x": 81, "y": 52, "flags": 4},
- {"matrix": [4, 6], "x": 94, "y": 52, "flags": 1},
- {"matrix": [4, 7], "x": 107, "y": 52, "flags": 1},
- {"matrix": [4, 8], "x": 120, "y": 52, "flags": 1},
- {"matrix": [4, 9], "x": 133, "y": 52, "flags": 1},
- {"matrix": [4, 10], "x": 146, "y": 52, "flags": 1},
- {"matrix": [4, 12], "x": 171, "y": 52, "flags": 1},
- {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}
- ],
"max_brightness": 120,
"sleep": true
},
diff --git a/keyboards/machkeyboards/mach3/mach3.c b/keyboards/machkeyboards/mach3/mach3.c
index 881528d650..948df5a066 100644
--- a/keyboards/machkeyboards/mach3/mach3.c
+++ b/keyboards/machkeyboards/mach3/mach3.c
@@ -15,9 +15,28 @@
*/
#include "quantum.h"
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 0, 1, 2 },
+ { 5, 4, 3 },
+ { 6, 7, 8 },
+}, {
+ // LED Index to Physical Position
+ { 0, 0 }, { 112, 0 }, { 224, 0 },
+ { 0, 112 }, { 112, 112 }, { 224, 112 },
+ { 0, 224 }, { 112, 224 }, { 224, 224 },
+}, {
+ // LED Index to Flag
+ 4, 4, 4,
+ 4, 4, 4,
+ 4, 4, 4
+} };
+#endif
+
void keyboard_pre_init_kb(void) {
gpio_set_pin_output(F5);
gpio_write_pin_high(F5);
-
+
keyboard_pre_init_user();
}
diff --git a/keyboards/magic_force/mf34/keyboard.json b/keyboards/magic_force/mf34/keyboard.json
index 35a652422d..9acae04b27 100644
--- a/keyboards/magic_force/mf34/keyboard.json
+++ b/keyboards/magic_force/mf34/keyboard.json
@@ -65,42 +65,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 37, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 74, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 149, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 186, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 224, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4},
- {"matrix": [1, 1], "x": 37, "y": 12, "flags": 4},
- {"matrix": [1, 2], "x": 74, "y": 12, "flags": 4},
- {"matrix": [1, 3], "x": 112, "y": 12, "flags": 4},
- {"matrix": [1, 4], "x": 149, "y": 12, "flags": 4},
- {"matrix": [1, 5], "x": 186, "y": 12, "flags": 4},
- {"matrix": [1, 6], "x": 224, "y": 12, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 24, "flags": 4},
- {"matrix": [2, 1], "x": 37, "y": 24, "flags": 4},
- {"matrix": [2, 2], "x": 74, "y": 24, "flags": 4},
- {"matrix": [2, 3], "x": 112, "y": 17, "flags": 4},
- {"matrix": [2, 4], "x": 149, "y": 17, "flags": 4},
- {"matrix": [2, 5], "x": 186, "y": 17, "flags": 4},
- {"matrix": [3, 3], "x": 112, "y": 38, "flags": 4},
- {"matrix": [3, 4], "x": 149, "y": 38, "flags": 4},
- {"matrix": [3, 5], "x": 186, "y": 38, "flags": 4},
- {"matrix": [3, 6], "x": 224, "y": 38, "flags": 4},
- {"matrix": [4, 1], "x": 37, "y": 51, "flags": 4},
- {"matrix": [4, 3], "x": 112, "y": 51, "flags": 4},
- {"matrix": [4, 4], "x": 149, "y": 51, "flags": 4},
- {"matrix": [4, 5], "x": 186, "y": 51, "flags": 4},
- {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4},
- {"matrix": [5, 1], "x": 37, "y": 64, "flags": 4},
- {"matrix": [5, 2], "x": 74, "y": 64, "flags": 4},
- {"matrix": [5, 4], "x": 149, "y": 64, "flags": 4},
- {"matrix": [5, 5], "x": 186, "y": 64, "flags": 4},
- {"matrix": [5, 6], "x": 224, "y": 64, "flags": 4}
- ],
"max_brightness": 200
},
"features": {
diff --git a/keyboards/magic_force/mf34/mf34.c b/keyboards/magic_force/mf34/mf34.c
new file mode 100644
index 0000000000..8cced36866
--- /dev/null
+++ b/keyboards/magic_force/mf34/mf34.c
@@ -0,0 +1,48 @@
+/*
+Copyright 2015 Álvaro "Gondolindrim" Volpato
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+
+// RGB Matrix
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3 , 4, 5, 6},
+ { 7, 8, 9, 10, 11, 12, 13 },
+ { 14, 15, 16, 17, 18, 19, NO_LED },
+ { NO_LED, NO_LED, NO_LED, 20, 21, 22, 23 },
+ { NO_LED, 24, NO_LED, 25, 26, 27, NO_LED },
+ { 28, 29, 30, NO_LED, 31, 32, 33 }
+ }, {
+ {0, 0}, {37, 0}, {74, 0}, {112, 0}, {149, 0}, {186, 0}, {224, 0},
+ {0, 12}, {37, 12}, {74, 12}, {112, 12}, {149, 12}, {186, 12}, {224, 12},
+ {0, 24}, {37, 24}, {74, 24}, {112, 17}, {149, 17}, {186, 17},
+ {112, 38}, {149, 38}, {186, 38}, {224, 38},
+ {37, 51}, {112, 51}, {149, 51}, {186, 51},
+ {0, 64}, {37, 64}, {74, 64}, {149, 64}, {186, 64}, {224, 64}
+ }, {
+ 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, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4
+ }
+};
+#endif
diff --git a/keyboards/marksard/rhymestone/rev1/keyboard.json b/keyboards/marksard/rhymestone/rev1/keyboard.json
index 2b9829e711..aaff1515e0 100644
--- a/keyboards/marksard/rhymestone/rev1/keyboard.json
+++ b/keyboards/marksard/rhymestone/rev1/keyboard.json
@@ -10,48 +10,6 @@
},
"rgb_matrix": {
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 4], "x": 100, "y": 0, "flags": 4},
- {"matrix": [1, 4], "x": 100, "y": 21, "flags": 4},
- {"matrix": [2, 4], "x": 100, "y": 43, "flags": 4},
- {"matrix": [3, 4], "x": 100, "y": 64, "flags": 1},
- {"matrix": [3, 3], "x": 75, "y": 64, "flags": 1},
- {"matrix": [3, 2], "x": 50, "y": 64, "flags": 1},
- {"matrix": [3, 1], "x": 25, "y": 64, "flags": 1},
- {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1},
- {"matrix": [2, 0], "x": 0, "y": 43, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 25, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 50, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 75, "y": 0, "flags": 4},
- {"matrix": [1, 3], "x": 75, "y": 21, "flags": 4},
- {"matrix": [2, 3], "x": 75, "y": 43, "flags": 4},
- {"matrix": [2, 2], "x": 50, "y": 43, "flags": 4},
- {"matrix": [2, 1], "x": 25, "y": 43, "flags": 4},
- {"matrix": [1, 1], "x": 25, "y": 21, "flags": 4},
- {"matrix": [1, 2], "x": 50, "y": 21, "flags": 4},
- {"matrix": [4, 4], "x": 125, "y": 0, "flags": 4},
- {"matrix": [5, 4], "x": 125, "y": 21, "flags": 4},
- {"matrix": [6, 4], "x": 125, "y": 43, "flags": 4},
- {"matrix": [7, 4], "x": 125, "y": 64, "flags": 1},
- {"matrix": [7, 3], "x": 150, "y": 64, "flags": 1},
- {"matrix": [7, 2], "x": 175, "y": 64, "flags": 1},
- {"matrix": [7, 1], "x": 200, "y": 64, "flags": 1},
- {"matrix": [7, 0], "x": 224, "y": 64, "flags": 1},
- {"matrix": [6, 0], "x": 224, "y": 43, "flags": 4},
- {"matrix": [5, 0], "x": 224, "y": 21, "flags": 4},
- {"matrix": [4, 0], "x": 224, "y": 0, "flags": 4},
- {"matrix": [4, 1], "x": 200, "y": 0, "flags": 4},
- {"matrix": [4, 2], "x": 175, "y": 0, "flags": 4},
- {"matrix": [4, 3], "x": 150, "y": 0, "flags": 4},
- {"matrix": [5, 3], "x": 150, "y": 21, "flags": 4},
- {"matrix": [6, 3], "x": 150, "y": 43, "flags": 4},
- {"matrix": [6, 2], "x": 175, "y": 43, "flags": 4},
- {"matrix": [6, 1], "x": 200, "y": 43, "flags": 4},
- {"matrix": [5, 1], "x": 200, "y": 21, "flags": 4},
- {"matrix": [5, 2], "x": 175, "y": 21, "flags": 4}
- ],
"sat_steps": 8,
"val_steps": 8,
"speed_steps": 10,
diff --git a/keyboards/marksard/rhymestone/rev1/rev1.c b/keyboards/marksard/rhymestone/rev1/rev1.c
new file mode 100644
index 0000000000..06ea367707
--- /dev/null
+++ b/keyboards/marksard/rhymestone/rev1/rev1.c
@@ -0,0 +1,60 @@
+/* Copyright 2020 marksard
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+// Optional override functions below.
+// You can leave any or all of these undefined.
+// These are only required if you want to perform custom actions.
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ { 10, 11, 12, 13, 0 },
+ { 9, 18, 19, 14, 1 },
+ { 8, 17, 16, 15, 2 },
+ { 7, 6, 5, 4, 3 },
+ { 30, 31, 32, 33, 20 },
+ { 29, 38, 39, 34, 21 },
+ { 28, 37, 36, 35, 22 },
+ { 27, 26, 25, 24, 23 }
+}, {
+ { 100, 0 }, { 100, 21 }, { 100, 43 }, { 100, 64 },
+ { 75, 64 }, { 50, 64 }, { 25, 64 }, { 0, 64 },
+ { 0, 43 }, { 0, 21 }, { 0, 0 },
+ { 25, 0 }, { 50, 0 }, { 75, 0 },
+ { 75, 21 }, { 75, 43 },
+ { 50, 43 }, { 25, 43 },
+ { 25, 21 }, { 50, 21 },
+ { 125, 0 }, { 125, 21 }, { 125, 43 }, { 125, 64 },
+ { 150, 64 }, { 175, 64 }, { 200, 64 }, { 225, 64 },
+ { 225, 43 }, { 225, 21 }, { 225, 0 },
+ { 200, 0 }, { 175, 0 }, { 150, 0 },
+ { 150, 21 }, { 150, 43 },
+ { 175, 43 }, { 200, 43 },
+ { 200, 21 }, { 150, 21 }
+}, {
+ 4, 4, 4, 1,
+ 1, 1, 1, 1,
+ 4, 4, 4, 4,
+ 4, 4, 4, 4,
+ 4, 4, 4, 4,
+ 4, 4, 4, 1,
+ 1, 1, 1, 1,
+ 4, 4, 4, 4,
+ 4, 4, 4, 4,
+ 4, 4, 4, 4
+} };
+#endif
diff --git a/keyboards/marksard/treadstone48/common/glcdfont.c b/keyboards/marksard/treadstone48/common/glcdfont.c
new file mode 100644
index 0000000000..003ce1a87b
--- /dev/null
+++ b/keyboards/marksard/treadstone48/common/glcdfont.c
@@ -0,0 +1,233 @@
+// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0.
+// See gfxfont.h for newer custom bitmap font info.
+
+#include "progmem.h"
+
+// Standard ASCII 5x7 font
+
+static const unsigned char font[] PROGMEM = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
+ 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
+ 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
+ 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
+ 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
+ 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
+ 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
+ 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
+ 0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
+ 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
+ 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
+ 0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
+ 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
+ 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
+ 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
+ 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
+ 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
+ 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
+ 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
+ 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
+ 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
+ 0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
+ 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
+ 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
+ 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
+ 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
+ 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
+ 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
+ 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
+ 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
+ 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
+ 0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
+ 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
+ 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
+ 0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
+ 0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
+ 0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
+ 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
+ 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
+ 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
+ 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
+ 0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
+ 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
+ 0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
+ 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
+ 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
+ 0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
+ 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
+ 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
+ 0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
+ 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
+ 0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
+ 0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
+ 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
+ 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
+ 0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
+ 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
+ 0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
+ 0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
+ 0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
+ 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
+ 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
+ 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
+ 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
+ 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
+ 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
+ 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
+ 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
+ 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
+ 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
+ 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
+ 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
+ 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
+ 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
+ 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
+ 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
+ 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
+ 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
+ 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
+ 0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
+ 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
+ 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
+ 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
+ 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
+ 0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
+ 0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
+ 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
+ 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
+ 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
+ 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
+ 0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
+ 0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
+ 0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
+ 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
+ 0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
+ 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
+ 0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
+ 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
+ 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00,
+ 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
+ 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
+ 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
+ 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
+ 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
+ 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
+ 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
+ 0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
+ 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00,
+ 0x18, 0x24, 0x24, 0x18, 0xFC, 0x00,
+ 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
+ 0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
+ 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
+ 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
+ 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
+ 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
+ 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
+ 0x4C, 0x10, 0x10, 0x10, 0x7C, 0x00,
+ 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
+ 0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
+ 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
+ 0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
+ 0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
+ 0x3C, 0x26, 0x23, 0x26, 0x3C, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0x00,
+};
diff --git a/keyboards/marksard/treadstone48/keymaps/default/config.h b/keyboards/marksard/treadstone48/keymaps/default/config.h
index ec84fb39f1..a5f68e7a2b 100644
--- a/keyboards/marksard/treadstone48/keymaps/default/config.h
+++ b/keyboards/marksard/treadstone48/keymaps/default/config.h
@@ -45,3 +45,5 @@
// If you plug in the USB on the right side, please enable MASTER_RIGHT
// #define RHYMESTONE_RIGHTHAND
+
+#define OLED_FONT_H "keyboards/marksard/treadstone48/common/glcdfont.c"
diff --git a/keyboards/marksard/treadstone48/rev1/keymaps/like_jis_rs/config.h b/keyboards/marksard/treadstone48/rev1/keymaps/like_jis_rs/config.h
index d5973a16d8..f18bcf44e7 100644
--- a/keyboards/marksard/treadstone48/rev1/keymaps/like_jis_rs/config.h
+++ b/keyboards/marksard/treadstone48/rev1/keymaps/like_jis_rs/config.h
@@ -46,3 +46,5 @@
// If you plug in the USB on the right side, please enable MASTER_RIGHT
// #define RHYMESTONE_RIGHTHAND
+
+#define OLED_FONT_H "keyboards/marksard/treadstone48/common/glcdfont.c"
diff --git a/keyboards/mawaeg/sharkropad/config.h b/keyboards/mawaeg/sharkropad/config.h
deleted file mode 100644
index 2e57c56f0f..0000000000
--- a/keyboards/mawaeg/sharkropad/config.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright 2025 @mawaeg
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#pragma once
-
-#define STM32_FLASH_SECTORS_PER_BANK 128
-
-#define I2C1_SCL_PIN A9
-#define I2C1_SDA_PIN A10
-
-#define WS2812_PWM_DRIVER PWMD2
-#define WS2812_PWM_CHANNEL 2
-#define WS2812_PWM_PAL_MODE 1
-#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2
-#define WS2812_PWM_DMA_CHANNEL 4
-
-#define RGB_MATRIX_MODE_NAME_ENABLE
diff --git a/keyboards/mawaeg/sharkropad/halconf.h b/keyboards/mawaeg/sharkropad/halconf.h
deleted file mode 100644
index 9f0b573732..0000000000
--- a/keyboards/mawaeg/sharkropad/halconf.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2025 @mawaeg
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#pragma once
-
-#define HAL_USE_I2C TRUE
-#define HAL_USE_PWM TRUE
-
-#include_next
diff --git a/keyboards/mawaeg/sharkropad/keymaps/default/keymap.c b/keyboards/mawaeg/sharkropad/keymaps/default/keymap.c
deleted file mode 100644
index 6a95257a1c..0000000000
--- a/keyboards/mawaeg/sharkropad/keymaps/default/keymap.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Copyright 2025 @mawaeg
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- // clang-format off
- /*
- * ┌────────────┐
- * │ RGB_MOD │
- * ┌───┬───┬───┼────────────┤
- * │ 7 │ 8 │ 9 │ RGB_TOGGLE │
- * ├───┼───┼───┼────────────┤
- * │ 4 │ 5 │ 6 │ NUM │
- * ├───┼───┼───┼────────────┤
- * │ 1 │ 2 │ 3 │ 0 │
- * └───┴───┴───┴────────────┘
- */
- [0] = LAYOUT(
- RM_NEXT,
- KC_P7, KC_P8, KC_P9, RM_TOGG,
- KC_P4, KC_P5, KC_P6, KC_NUM,
- KC_P1, KC_P2, KC_P3, KC_P0
- )
- // clang-format on
-};
-
-#ifdef ENCODER_MAP_ENABLE
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [0] = { ENCODER_CCW_CW(RM_SPDD, RM_SPDU)},
-};
-#endif
diff --git a/keyboards/mawaeg/sharkropad/mcuconf.h b/keyboards/mawaeg/sharkropad/mcuconf.h
deleted file mode 100644
index 2a66cc8d7b..0000000000
--- a/keyboards/mawaeg/sharkropad/mcuconf.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright 2025 @mawaeg
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#pragma once
-
-#include_next
-
-#undef STM32_I2C_USE_I2C1
-#define STM32_I2C_USE_I2C1 TRUE
-
-#undef STM32_PWM_USE_TIM2
-#define STM32_PWM_USE_TIM2 TRUE
-
-#undef STM32_ST_USE_TIMER
-#define STM32_ST_USE_TIMER 15
diff --git a/keyboards/mawaeg/sharkropad/readme.md b/keyboards/mawaeg/sharkropad/readme.md
deleted file mode 100644
index d6faf506c5..0000000000
--- a/keyboards/mawaeg/sharkropad/readme.md
+++ /dev/null
@@ -1,24 +0,0 @@
-# sharkropad
-
-
-
-**Sharkropad** is an open-source hotswappable macropad.
-
-* Keyboard Maintainer: [Marek Schmitt](https://github.com/mawaeg)
-* Hardware Supported: PCB included in the [Sharkropad repository](https://github.com/mawaeg/sharkropad).
-* Hardware Availability: PCB has to be sourced yourserlf
-
-Make example for this keyboard (after setting up your build environment):
-
- make mawaeg/sharkropad:default
-
-Flashing example for this keyboard:
-
- make mawaeg/sharkropad:default:flash
-
-See 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).
-
-## Bootloader
-
-Enter the bootloader:
-* **Bootmagic reset**: Hold down the rotary encoder knob and plug in the keyboard
diff --git a/keyboards/mawaeg/sharkropad/sharkropad.c b/keyboards/mawaeg/sharkropad/sharkropad.c
deleted file mode 100644
index 391f59800b..0000000000
--- a/keyboards/mawaeg/sharkropad/sharkropad.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/* Copyright 2025 @mawaeg
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#include "quantum.h"
-#include
-#include
-#include
-
-static uint8_t effect_name_len = 0;
-
-const char *rgb_matrix_get_effect_name(void) {
- static char buf[32] = {0};
-
- snprintf(buf, sizeof(buf), "%s", rgb_matrix_get_mode_name(rgb_matrix_get_mode()));
- for (uint8_t i = 1; i < sizeof(buf); ++i) {
- if (buf[i] == 0) {
- effect_name_len = i;
- break;
- } else if (buf[i] == '_')
- buf[i] = ' ';
- else if (buf[i - 1] == ' ')
- buf[i] = toupper(buf[i]);
- else if (buf[i - 1] != ' ')
- buf[i] = tolower(buf[i]);
- }
- return buf;
-}
-
-bool oled_task_kb(void) {
- if (!oled_task_user()) {
- return false;
- }
-
- static uint8_t last_effect = 0;
- static uint8_t last_speed = 0;
- static uint16_t key_timer = 0;
- static uint8_t start_index = 0;
-
- uint8_t speedPercentage = scale8(rgb_matrix_get_speed(), 100);
- bool is_timer_elapsed = timer_elapsed(key_timer) > 200;
-
- if (last_effect != rgb_matrix_get_mode() || last_speed != speedPercentage || is_timer_elapsed) {
- last_effect = rgb_matrix_get_mode();
- last_speed = speedPercentage;
-
- oled_write_ln_P(PSTR("Mode: "), false);
- const char *name = rgb_matrix_get_effect_name();
- if (effect_name_len > 21) {
- if (!is_timer_elapsed && start_index != 0) {
- start_index -= 1;
- } else {
- key_timer = timer_read();
- }
- if (start_index > effect_name_len) {
- start_index = 0;
- }
- for (uint8_t char_index = 0; char_index < 21; char_index++) {
- if ((start_index + char_index) % effect_name_len == 0 && char_index != 0) {
- oled_write_char(' ', false);
- } else {
- oled_write_char(name[(start_index + char_index) % (effect_name_len + 1)], false);
- }
- }
- start_index += 1;
- } else {
- oled_write_ln(name, false);
- start_index = 0;
- }
-
- oled_set_cursor(0, 2);
- oled_write_ln_P(PSTR("RGB Speed: "), false);
- oled_write(get_u8_str(speedPercentage, ' '), false);
- oled_write("%", false);
- }
-
- return true;
-}
diff --git a/keyboards/mechlovin/adelais/rgb_led/rev1/keyboard.json b/keyboards/mechlovin/adelais/rgb_led/rev1/keyboard.json
index 1de0b83552..01232b07e8 100644
--- a/keyboards/mechlovin/adelais/rgb_led/rev1/keyboard.json
+++ b/keyboards/mechlovin/adelais/rgb_led/rev1/keyboard.json
@@ -62,99 +62,6 @@
"animation": "cycle_pinwheel"
},
"driver": "ws2812",
- "layout": [
- {"matrix": [1, 14], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 0], "x": 17, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 34, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 51, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 69, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 86, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 100, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 103, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 120, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 138, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 155, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 172, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 189, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 207, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 215, "y": 0, "flags": 1},
- {"x": 223, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [2, 14], "x": 0, "y": 16, "flags": 1},
- {"matrix": [1, 0], "x": 17, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 34, "y": 16, "flags": 1},
- {"matrix": [1, 2], "x": 51, "y": 16, "flags": 1},
- {"matrix": [1, 3], "x": 69, "y": 16, "flags": 1},
- {"matrix": [1, 4], "x": 86, "y": 16, "flags": 1},
- {"matrix": [1, 5], "x": 103, "y": 16, "flags": 1},
- {"matrix": [1, 6], "x": 120, "y": 16, "flags": 1},
- {"matrix": [1, 7], "x": 138, "y": 16, "flags": 1},
- {"matrix": [1, 8], "x": 155, "y": 16, "flags": 1},
- {"matrix": [1, 9], "x": 172, "y": 16, "flags": 1},
- {"matrix": [1, 10], "x": 189, "y": 16, "flags": 1},
- {"matrix": [1, 11], "x": 207, "y": 16, "flags": 1},
- {"matrix": [1, 12], "x": 215, "y": 16, "flags": 1},
- {"matrix": [1, 13], "x": 224, "y": 16, "flags": 1},
- {"matrix": [3, 14], "x": 0, "y": 32, "flags": 1},
- {"matrix": [2, 0], "x": 17, "y": 32, "flags": 1},
- {"matrix": [2, 1], "x": 34, "y": 32, "flags": 1},
- {"matrix": [2, 2], "x": 51, "y": 32, "flags": 1},
- {"matrix": [2, 3], "x": 69, "y": 32, "flags": 1},
- {"matrix": [2, 4], "x": 86, "y": 32, "flags": 1},
- {"matrix": [2, 5], "x": 103, "y": 32, "flags": 1},
- {"matrix": [2, 6], "x": 120, "y": 32, "flags": 1},
- {"matrix": [2, 7], "x": 138, "y": 32, "flags": 1},
- {"matrix": [2, 8], "x": 155, "y": 32, "flags": 1},
- {"matrix": [2, 9], "x": 172, "y": 32, "flags": 1},
- {"matrix": [2, 10], "x": 189, "y": 32, "flags": 1},
- {"matrix": [2, 11], "x": 207, "y": 32, "flags": 1},
- {"matrix": [2, 13], "x": 224, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 17, "y": 48, "flags": 1},
- {"matrix": [3, 2], "x": 34, "y": 48, "flags": 1},
- {"matrix": [3, 3], "x": 51, "y": 48, "flags": 1},
- {"matrix": [3, 4], "x": 69, "y": 48, "flags": 1},
- {"matrix": [3, 5], "x": 86, "y": 48, "flags": 1},
- {"matrix": [3, 6], "x": 103, "y": 48, "flags": 1},
- {"matrix": [3, 7], "x": 120, "y": 48, "flags": 1},
- {"matrix": [3, 8], "x": 138, "y": 48, "flags": 1},
- {"matrix": [3, 9], "x": 155, "y": 48, "flags": 1},
- {"matrix": [3, 10], "x": 172, "y": 48, "flags": 1},
- {"matrix": [3, 11], "x": 189, "y": 48, "flags": 1},
- {"matrix": [4, 13], "x": 207, "y": 48, "flags": 1},
- {"matrix": [3, 12], "x": 215, "y": 48, "flags": 1},
- {"x": 224, "y": 48, "flags": 1},
- {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 17, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 51, "y": 64, "flags": 1},
- {"matrix": [4, 4], "x": 86, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 103, "y": 64, "flags": 1},
- {"matrix": [4, 8], "x": 138, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 172, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1},
- {"x": 100, "y": 0, "flags": 1},
- {"x": 69, "y": 0, "flags": 1},
- {"x": 24, "y": 0, "flags": 1},
- {"x": 0, "y": 3, "flags": 1},
- {"x": 0, "y": 16, "flags": 1},
- {"x": 0, "y": 32, "flags": 1},
- {"x": 0, "y": 51, "flags": 1},
- {"x": 15, "y": 64, "flags": 1},
- {"x": 34, "y": 64, "flags": 1},
- {"x": 69, "y": 64, "flags": 1},
- {"x": 103, "y": 64, "flags": 1},
- {"x": 110, "y": 64, "flags": 1},
- {"x": 120, "y": 64, "flags": 1},
- {"x": 155, "y": 64, "flags": 1},
- {"x": 189, "y": 64, "flags": 1},
- {"x": 192, "y": 64, "flags": 1},
- {"x": 224, "y": 58, "flags": 1},
- {"x": 224, "y": 32, "flags": 1},
- {"x": 224, "y": 16, "flags": 1},
- {"x": 224, "y": 0, "flags": 1},
- {"x": 207, "y": 0, "flags": 1},
- {"x": 172, "y": 0, "flags": 1},
- {"x": 138, "y": 0, "flags": 1}
- ],
"max_brightness": 220,
"react_on_keyup": true,
"sleep": true
diff --git a/keyboards/mechlovin/adelais/rgb_led/rev1/rev1.c b/keyboards/mechlovin/adelais/rgb_led/rev1/rev1.c
new file mode 100644
index 0000000000..5f01f322df
--- /dev/null
+++ b/keyboards/mechlovin/adelais/rgb_led/rev1/rev1.c
@@ -0,0 +1,42 @@
+/* Copyright 2020 Team Mechlovin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ //Key Matrix to LED Index
+ {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16},
+ {18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0},
+ {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, NO_LED, 45, 17},
+ {46, NO_LED, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 58, 60, 32},
+ {61, NO_LED, 62, NO_LED, 63, NO_LED, 64, NO_LED, 65, NO_LED, 66, NO_LED, NO_LED, 57, 67}
+}, {
+ //LED Index to Physical Positon
+ {0,0}, { 17, 0}, { 34, 0 }, { 51, 0 }, { 69, 0}, { 86, 0}, {100, 0}, {103, 0}, { 120, 0}, { 138, 0}, { 155, 0}, { 172, 0}, { 189, 0}, {207, 0}, {215, 0}, {223, 0}, {224, 0},
+ {0,16}, { 17, 16}, { 34,16 }, { 51,16 }, { 69,16}, { 86,16}, {103,16}, { 120,16}, { 138,16}, { 155,16}, { 172,16}, { 189,16}, {207, 16}, {215, 16}, {224,16},
+ {0,32}, { 17, 32}, { 34,32 }, { 51,32 }, { 69,32}, { 86,32}, {103,32}, { 120,32}, { 138,32}, { 155,32}, { 172,32}, { 189,32}, {207, 32}, {224,32},
+ { 17, 48}, { 34,48 }, { 51,48 }, { 69,48}, { 86,48}, {103,48}, { 120,48}, { 138,48}, { 155,48}, { 172,48}, { 189,48}, {207, 48}, {215, 48}, {224,48}, {224,48},
+ { 17, 64}, { 51,64 }, { 86,64}, { 103,64}, { 138,64}, { 172,64}, {224, 64},
+ {100,0}, { 69,0}, { 24, 0}, { 0,3}, { 0,16}, { 0,32}, { 0,51}, { 15,64 }, { 34,64}, { 69,64}, { 103,64}, {110,64}, { 120,64}, { 155,64}, { 189,64}, { 192,64}, { 224,58}, { 224,32}, { 224,16}, { 224,0}, { 207,0}, { 172,0}, { 138,0},
+}, {
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+} };
+#endif
diff --git a/keyboards/mechlovin/adelais/rgb_led/rev2/keyboard.json b/keyboards/mechlovin/adelais/rgb_led/rev2/keyboard.json
index e71f103635..a8633af5da 100644
--- a/keyboards/mechlovin/adelais/rgb_led/rev2/keyboard.json
+++ b/keyboards/mechlovin/adelais/rgb_led/rev2/keyboard.json
@@ -64,76 +64,6 @@
"animation": "cycle_pinwheel"
},
"driver": "is31fl3731",
- "layout": [
- {"matrix": [1, 14], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 0], "x": 17, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 34, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 51, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 69, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 86, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 100, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 103, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 120, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 138, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 155, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 172, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 189, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 207, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 215, "y": 0, "flags": 1},
- {"x": 223, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [2, 14], "x": 0, "y": 16, "flags": 1},
- {"matrix": [1, 0], "x": 17, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 34, "y": 16, "flags": 1},
- {"matrix": [1, 2], "x": 51, "y": 16, "flags": 1},
- {"matrix": [1, 3], "x": 69, "y": 16, "flags": 1},
- {"matrix": [1, 4], "x": 86, "y": 16, "flags": 1},
- {"matrix": [1, 5], "x": 103, "y": 16, "flags": 1},
- {"matrix": [1, 6], "x": 120, "y": 16, "flags": 1},
- {"matrix": [1, 7], "x": 138, "y": 16, "flags": 1},
- {"matrix": [1, 8], "x": 155, "y": 16, "flags": 1},
- {"matrix": [1, 9], "x": 172, "y": 16, "flags": 1},
- {"matrix": [1, 10], "x": 189, "y": 16, "flags": 1},
- {"matrix": [1, 11], "x": 207, "y": 16, "flags": 1},
- {"matrix": [1, 12], "x": 215, "y": 16, "flags": 1},
- {"matrix": [1, 13], "x": 224, "y": 16, "flags": 1},
- {"matrix": [3, 14], "x": 0, "y": 32, "flags": 1},
- {"matrix": [2, 0], "x": 17, "y": 32, "flags": 1},
- {"matrix": [2, 1], "x": 34, "y": 32, "flags": 1},
- {"matrix": [2, 2], "x": 51, "y": 32, "flags": 1},
- {"matrix": [2, 3], "x": 69, "y": 32, "flags": 1},
- {"matrix": [2, 4], "x": 86, "y": 32, "flags": 1},
- {"matrix": [2, 5], "x": 103, "y": 32, "flags": 1},
- {"matrix": [2, 6], "x": 120, "y": 32, "flags": 1},
- {"matrix": [2, 7], "x": 138, "y": 32, "flags": 1},
- {"matrix": [2, 8], "x": 155, "y": 32, "flags": 1},
- {"matrix": [2, 9], "x": 172, "y": 32, "flags": 1},
- {"matrix": [2, 10], "x": 189, "y": 32, "flags": 1},
- {"matrix": [2, 11], "x": 207, "y": 32, "flags": 1},
- {"matrix": [2, 13], "x": 224, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 17, "y": 48, "flags": 1},
- {"matrix": [3, 2], "x": 34, "y": 48, "flags": 1},
- {"matrix": [3, 3], "x": 51, "y": 48, "flags": 1},
- {"matrix": [3, 4], "x": 69, "y": 48, "flags": 1},
- {"matrix": [3, 5], "x": 86, "y": 48, "flags": 1},
- {"matrix": [3, 6], "x": 103, "y": 48, "flags": 1},
- {"matrix": [3, 7], "x": 120, "y": 48, "flags": 1},
- {"matrix": [3, 8], "x": 138, "y": 48, "flags": 1},
- {"matrix": [3, 9], "x": 155, "y": 48, "flags": 1},
- {"matrix": [3, 10], "x": 172, "y": 48, "flags": 1},
- {"matrix": [3, 11], "x": 189, "y": 48, "flags": 1},
- {"matrix": [4, 13], "x": 207, "y": 48, "flags": 1},
- {"x": 215, "y": 48, "flags": 1},
- {"matrix": [3, 12], "x": 224, "y": 48, "flags": 1},
- {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 17, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 51, "y": 64, "flags": 1},
- {"matrix": [4, 4], "x": 86, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 103, "y": 64, "flags": 1},
- {"matrix": [4, 8], "x": 138, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 172, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
- ],
"react_on_keyup": true,
"sleep": true
},
diff --git a/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c b/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c
index d0bd63cdb4..2dffbc24f0 100644
--- a/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c
+++ b/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c
@@ -94,6 +94,29 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
{1, C4_7, C5_7, C6_7}, //D83-D13-67
};
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16},
+ {18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0},
+ {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, NO_LED, 45, 17},
+ {46, NO_LED, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 60, 32},
+ {61, NO_LED, 62, NO_LED, 63, NO_LED, 64, NO_LED, 65, NO_LED, 66, NO_LED, NO_LED, 57, 67}
+ },
+ {
+ //LED Index to Physical Positon
+ {0,0}, { 17, 0}, { 34, 0 }, { 51, 0 }, { 69, 0}, { 86, 0}, {100, 0}, {103, 0}, { 120, 0}, { 138, 0}, { 155, 0}, { 172, 0}, { 189, 0}, {207, 0}, {215, 0}, {223, 0}, {224, 0},
+ {0,16}, { 17, 16}, { 34,16 }, { 51,16 }, { 69,16}, { 86,16}, {103,16}, { 120,16}, { 138,16}, { 155,16}, { 172,16}, { 189,16}, {207, 16}, {215, 16}, {224,16},
+ {0,32}, { 17, 32}, { 34,32 }, { 51,32 }, { 69,32}, { 86,32}, {103,32}, { 120,32}, { 138,32}, { 155,32}, { 172,32}, { 189,32}, {207, 32}, {224,32},
+ { 17, 48}, { 34,48 }, { 51,48 }, { 69,48}, { 86,48}, {103,48}, { 120,48}, { 138,48}, { 155,48}, { 172,48}, { 189,48}, {207, 48}, {215, 48}, {224,48}, {224,48},
+ { 17, 64}, { 51,64 }, { 86,64}, { 103,64}, { 138,64}, { 172,64}, {224, 64},
+}, {
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+} };
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/keyboard.json b/keyboards/mechlovin/adelais/rgb_led/rev3/keyboard.json
index fd68b62baf..a7cd8faa78 100644
--- a/keyboards/mechlovin/adelais/rgb_led/rev3/keyboard.json
+++ b/keyboards/mechlovin/adelais/rgb_led/rev3/keyboard.json
@@ -61,74 +61,6 @@
"animation": "cycle_pinwheel"
},
"driver": "is31fl3741",
- "layout": [
- {"matrix": [3, 1], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 0], "x": 17, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 34, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 51, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 69, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 86, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 100, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 103, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 120, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 138, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 155, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 172, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 189, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 207, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 215, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [4, 1], "x": 0, "y": 16, "flags": 1},
- {"matrix": [1, 0], "x": 17, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 34, "y": 16, "flags": 1},
- {"matrix": [1, 2], "x": 51, "y": 16, "flags": 1},
- {"matrix": [1, 3], "x": 69, "y": 16, "flags": 1},
- {"matrix": [1, 4], "x": 86, "y": 16, "flags": 1},
- {"matrix": [1, 5], "x": 103, "y": 16, "flags": 1},
- {"matrix": [1, 6], "x": 120, "y": 16, "flags": 1},
- {"matrix": [1, 7], "x": 138, "y": 16, "flags": 1},
- {"matrix": [1, 8], "x": 155, "y": 16, "flags": 1},
- {"matrix": [1, 9], "x": 172, "y": 16, "flags": 1},
- {"matrix": [1, 10], "x": 189, "y": 16, "flags": 1},
- {"matrix": [1, 11], "x": 207, "y": 16, "flags": 1},
- {"matrix": [1, 12], "x": 215, "y": 16, "flags": 1},
- {"matrix": [1, 13], "x": 224, "y": 16, "flags": 1},
- {"matrix": [4, 3], "x": 0, "y": 32, "flags": 1},
- {"matrix": [2, 0], "x": 17, "y": 32, "flags": 1},
- {"matrix": [2, 1], "x": 34, "y": 32, "flags": 1},
- {"matrix": [2, 2], "x": 51, "y": 32, "flags": 1},
- {"matrix": [2, 3], "x": 69, "y": 32, "flags": 1},
- {"matrix": [2, 4], "x": 86, "y": 32, "flags": 1},
- {"matrix": [2, 5], "x": 103, "y": 32, "flags": 1},
- {"matrix": [2, 6], "x": 120, "y": 32, "flags": 1},
- {"matrix": [2, 7], "x": 138, "y": 32, "flags": 1},
- {"matrix": [2, 8], "x": 155, "y": 32, "flags": 1},
- {"matrix": [2, 9], "x": 172, "y": 32, "flags": 1},
- {"matrix": [2, 10], "x": 189, "y": 32, "flags": 1},
- {"matrix": [2, 11], "x": 207, "y": 32, "flags": 1},
- {"matrix": [2, 13], "x": 224, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 17, "y": 48, "flags": 1},
- {"matrix": [3, 2], "x": 34, "y": 48, "flags": 1},
- {"matrix": [3, 3], "x": 51, "y": 48, "flags": 1},
- {"matrix": [3, 4], "x": 69, "y": 48, "flags": 1},
- {"matrix": [3, 5], "x": 86, "y": 48, "flags": 1},
- {"matrix": [3, 6], "x": 103, "y": 48, "flags": 1},
- {"matrix": [3, 7], "x": 120, "y": 48, "flags": 1},
- {"matrix": [3, 8], "x": 138, "y": 48, "flags": 1},
- {"matrix": [3, 9], "x": 155, "y": 48, "flags": 1},
- {"matrix": [3, 10], "x": 172, "y": 48, "flags": 1},
- {"matrix": [3, 11], "x": 189, "y": 48, "flags": 1},
- {"matrix": [3, 12], "x": 207, "y": 48, "flags": 1},
- {"matrix": [3, 13], "x": 215, "y": 48, "flags": 1},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 17, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 51, "y": 64, "flags": 1},
- {"matrix": [4, 4], "x": 86, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 103, "y": 64, "flags": 1},
- {"matrix": [4, 8], "x": 138, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 172, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
- ],
"react_on_keyup": true,
"sleep": true
},
diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c b/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c
index d934e6df18..33dd2157e4 100644
--- a/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c
+++ b/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c
@@ -88,6 +88,30 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, SW1_CS24, SW1_CS23, SW1_CS22}, /* D103-K4E-65 */
};
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
+ {17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, NO_LED},
+ {32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, NO_LED, 44, NO_LED},
+ {45, 0, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58},
+ {59, 16, 60, 31, 61, NO_LED, 62, NO_LED, 63, NO_LED, 64, NO_LED, NO_LED, NO_LED, 65},
+ }, {
+ //LED Index to Physical Positon
+ {0,0}, { 17, 0}, { 34, 0 }, { 51, 0 }, { 69, 0}, { 86, 0}, {100, 0}, {103, 0}, { 120, 0}, { 138, 0}, { 155, 0}, { 172, 0}, { 189, 0}, {207, 0}, {215, 0}, {224, 0},
+ {0,16}, { 17, 16}, { 34,16 }, { 51,16 }, { 69,16}, { 86,16}, {103,16}, { 120,16}, { 138,16}, { 155,16}, { 172,16}, { 189,16}, {207, 16}, {215, 16}, {224,16},
+ {0,32}, { 17, 32}, { 34,32 }, { 51,32 }, { 69,32}, { 86,32}, {103,32}, { 120,32}, { 138,32}, { 155,32}, { 172,32}, { 189,32}, {207, 32}, {224,32},
+ { 17, 48}, { 34,48 }, { 51,48 }, { 69,48}, { 86,48}, {103,48}, { 120,48}, { 138,48}, { 155,48}, { 172,48}, { 189,48}, {207, 48}, {215, 48}, {224,48},
+ { 17, 64}, { 51,64 }, { 86,64}, { 103,64}, { 138,64}, { 172,64}, {224, 64},
+ }, {
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ }
+};
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/mechlovin/delphine/rgb_led/keyboard.json b/keyboards/mechlovin/delphine/rgb_led/keyboard.json
index 5cb2c13ac1..d6e7a27f81 100644
--- a/keyboards/mechlovin/delphine/rgb_led/keyboard.json
+++ b/keyboards/mechlovin/delphine/rgb_led/keyboard.json
@@ -78,33 +78,6 @@
"animation": "cycle_pinwheel"
},
"driver": "is31fl3731",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 149, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 224, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 13, "flags": 4},
- {"matrix": [1, 1], "x": 75, "y": 13, "flags": 1},
- {"matrix": [1, 2], "x": 149, "y": 13, "flags": 1},
- {"matrix": [1, 3], "x": 224, "y": 13, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 25, "flags": 4},
- {"matrix": [2, 1], "x": 75, "y": 25, "flags": 1},
- {"matrix": [2, 2], "x": 149, "y": 25, "flags": 1},
- {"matrix": [2, 3], "x": 224, "y": 25, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4},
- {"matrix": [3, 1], "x": 75, "y": 38, "flags": 1},
- {"matrix": [3, 2], "x": 149, "y": 38, "flags": 1},
- {"matrix": [3, 3], "x": 224, "y": 38, "flags": 4},
- {"matrix": [4, 0], "x": 0, "y": 51, "flags": 4},
- {"matrix": [4, 1], "x": 75, "y": 51, "flags": 1},
- {"matrix": [4, 2], "x": 149, "y": 51, "flags": 1},
- {"matrix": [4, 3], "x": 224, "y": 51, "flags": 4},
- {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4},
- {"x": 37, "y": 64, "flags": 0},
- {"matrix": [5, 1], "x": 75, "y": 64, "flags": 1},
- {"matrix": [5, 2], "x": 149, "y": 64, "flags": 1},
- {"matrix": [5, 3], "x": 224, "y": 64, "flags": 4}
- ],
"react_on_keyup": true
}
}
diff --git a/keyboards/mechlovin/delphine/rgb_led/rgb_led.c b/keyboards/mechlovin/delphine/rgb_led/rgb_led.c
index 0f3f1c0889..feda05a071 100644
--- a/keyboards/mechlovin/delphine/rgb_led/rgb_led.c
+++ b/keyboards/mechlovin/delphine/rgb_led/rgb_led.c
@@ -49,6 +49,32 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
{0, C4_14, C5_14, C6_14}, //D51-24
};
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ {0, 1, 2, 3},
+ {4, 5, 6, 7},
+ {8, 9, 10, 11},
+ {12, 13, 14, 15},
+ {16, 17, 18, 19},
+ {20, 22, 23, 24}
+ },
+ {
+ //LED Index to Physical Positon
+ { 0, 0}, { 75, 0}, {149, 0}, {224, 0},
+ { 0, 13}, { 75, 13}, {149, 13}, {224, 13},
+ { 0, 25}, { 75, 25}, {149, 25}, {224, 25},
+ { 0, 38}, { 75, 38}, {149, 38}, {224, 38},
+ { 0, 51}, { 75, 51}, {149, 51}, {224, 51},
+ { 0, 64}, { 37, 64}, { 75, 64}, {149, 64}, {224, 64},
+}, {
+ 4, 4, 4, 4,
+ 4, 1, 1, 4,
+ 4, 1, 1, 4,
+ 4, 1, 1, 4,
+ 4, 1, 1, 4,
+ 4, 0, 1, 1, 4,
+} };
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/mechlovin/hannah60rgb/rev1/keyboard.json b/keyboards/mechlovin/hannah60rgb/rev1/keyboard.json
index 82911ddaf9..e2b0ae715e 100644
--- a/keyboards/mechlovin/hannah60rgb/rev1/keyboard.json
+++ b/keyboards/mechlovin/hannah60rgb/rev1/keyboard.json
@@ -69,80 +69,6 @@
"animation": "cycle_pinwheel"
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 208, "y": 0, "flags": 1},
- {"x": 216, "y": 0, "flags": 1},
- {"matrix": [1, 13], "x": 220, "y": 0, "flags": 1},
- {"matrix": [2, 12], "x": 211, "y": 16, "flags": 1},
- {"matrix": [1, 12], "x": 200, "y": 16, "flags": 1},
- {"matrix": [1, 11], "x": 176, "y": 16, "flags": 1},
- {"matrix": [1, 10], "x": 160, "y": 16, "flags": 1},
- {"matrix": [1, 9], "x": 144, "y": 16, "flags": 1},
- {"matrix": [1, 8], "x": 128, "y": 16, "flags": 1},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 1},
- {"matrix": [1, 6], "x": 96, "y": 16, "flags": 1},
- {"matrix": [1, 5], "x": 80, "y": 16, "flags": 1},
- {"matrix": [1, 4], "x": 64, "y": 16, "flags": 1},
- {"matrix": [1, 3], "x": 48, "y": 16, "flags": 1},
- {"matrix": [1, 2], "x": 32, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 16, "y": 16, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1},
- {"matrix": [2, 1], "x": 16, "y": 32, "flags": 1},
- {"matrix": [2, 2], "x": 32, "y": 32, "flags": 1},
- {"matrix": [2, 3], "x": 48, "y": 32, "flags": 1},
- {"matrix": [2, 4], "x": 64, "y": 32, "flags": 1},
- {"matrix": [2, 5], "x": 80, "y": 32, "flags": 1},
- {"matrix": [2, 6], "x": 96, "y": 32, "flags": 1},
- {"matrix": [2, 7], "x": 112, "y": 32, "flags": 1},
- {"matrix": [2, 8], "x": 128, "y": 32, "flags": 1},
- {"matrix": [2, 9], "x": 144, "y": 32, "flags": 1},
- {"matrix": [2, 10], "x": 160, "y": 32, "flags": 1},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 1},
- {"x": 192, "y": 32, "flags": 1},
- {"matrix": [2, 13], "x": 208, "y": 32, "flags": 1},
- {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1},
- {"x": 208, "y": 48, "flags": 1},
- {"matrix": [3, 12], "x": 192, "y": 48, "flags": 1},
- {"matrix": [3, 11], "x": 160, "y": 48, "flags": 1},
- {"matrix": [3, 10], "x": 144, "y": 48, "flags": 1},
- {"matrix": [3, 9], "x": 128, "y": 48, "flags": 1},
- {"matrix": [3, 8], "x": 112, "y": 48, "flags": 1},
- {"matrix": [3, 7], "x": 96, "y": 48, "flags": 1},
- {"matrix": [3, 6], "x": 80, "y": 48, "flags": 1},
- {"matrix": [3, 5], "x": 64, "y": 48, "flags": 1},
- {"matrix": [3, 4], "x": 48, "y": 48, "flags": 1},
- {"matrix": [3, 3], "x": 32, "y": 48, "flags": 1},
- {"matrix": [3, 2], "x": 16, "y": 48, "flags": 1},
- {"matrix": [3, 1], "x": 8, "y": 48, "flags": 1},
- {"x": 0, "y": 48, "flags": 1},
- {"matrix": [3, 0], "x": 0, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 0, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 16, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 32, "y": 64, "flags": 1},
- {"matrix": [4, 4], "x": 48, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 64, "y": 64, "flags": 1},
- {"x": 80, "y": 64, "flags": 1},
- {"x": 96, "y": 64, "flags": 1},
- {"matrix": [4, 8], "x": 112, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 144, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 160, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 192, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}
- ],
"react_on_keyup": true
},
"matrix_pins": {
diff --git a/keyboards/mechlovin/hannah60rgb/rev1/rev1.c b/keyboards/mechlovin/hannah60rgb/rev1/rev1.c
index 2918d82318..139db81bbe 100644
--- a/keyboards/mechlovin/hannah60rgb/rev1/rev1.c
+++ b/keyboards/mechlovin/hannah60rgb/rev1/rev1.c
@@ -17,6 +17,28 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ //Key Matrix to LED Index
+ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13},
+ {29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 15},
+ {30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 16, 43},
+ {59, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 44},
+ {60, 61, 62, NO_LED, 63, NO_LED, 64, NO_LED, 67, NO_LED, 68, 69, 70, 71}
+}, {
+ //LED Index to Physical Positon
+ { 0, 0}, { 16, 0}, { 32, 0 }, { 48, 0 }, { 64, 0}, { 80, 0}, { 96, 0}, { 112, 0}, { 128, 0}, { 144, 0}, { 160, 0}, { 176, 0}, {192, 0}, {208, 0}, {216, 0},
+ {220, 0}, {211, 16}, {200,16 }, {176,16 }, {160,16}, {144,16}, {128,16}, { 112,16}, { 96,16}, { 80,16}, { 64,16}, { 48,16}, {32, 16}, {16, 16}, {0,16},
+ { 0, 32}, { 16, 32}, { 32,32 }, { 48,32 }, { 64,32}, { 80,32}, { 96,32}, { 112,32}, { 128,32}, { 144,32}, { 160,32}, { 176,32}, {192, 32}, {208, 32}, {224,48},
+ {208, 48}, {192, 48}, {160,48 }, {144,48 }, {128,48}, {112,48}, {96,48}, { 80,48}, { 64,48}, { 48,48}, { 32,48}, { 16,48}, {8, 48}, {0, 48}, {0,48},
+ { 0, 64}, { 16, 64}, { 32,64 }, { 48,64 }, { 64,64}, { 80,64}, { 96,64}, { 112,64}, { 144,64}, { 160,64}, { 192,64}, { 224,64},
+}, {
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+} };
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/mechlovin/hannah60rgb/rev2/keyboard.json b/keyboards/mechlovin/hannah60rgb/rev2/keyboard.json
index 158e6907b4..066422b3e3 100644
--- a/keyboards/mechlovin/hannah60rgb/rev2/keyboard.json
+++ b/keyboards/mechlovin/hannah60rgb/rev2/keyboard.json
@@ -87,86 +87,6 @@
"animation": "cycle_pinwheel"
},
"driver": "is31fl3731",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 16, "y": 16, "flags": 1},
- {"matrix": [1, 2], "x": 32, "y": 16, "flags": 1},
- {"matrix": [1, 3], "x": 48, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1},
- {"matrix": [2, 1], "x": 16, "y": 32, "flags": 1},
- {"matrix": [2, 2], "x": 32, "y": 32, "flags": 1},
- {"matrix": [2, 3], "x": 48, "y": 32, "flags": 1},
- {"x": 0, "y": 48, "flags": 1},
- {"matrix": [3, 0], "x": 0, "y": 48, "flags": 1},
- {"matrix": [3, 1], "x": 12, "y": 48, "flags": 1},
- {"matrix": [3, 2], "x": 16, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 0, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 16, "y": 64, "flags": 1},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 1},
- {"matrix": [1, 4], "x": 64, "y": 16, "flags": 1},
- {"matrix": [1, 5], "x": 80, "y": 16, "flags": 1},
- {"matrix": [1, 6], "x": 96, "y": 16, "flags": 1},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 1},
- {"matrix": [2, 4], "x": 64, "y": 32, "flags": 1},
- {"matrix": [2, 5], "x": 80, "y": 32, "flags": 1},
- {"matrix": [2, 6], "x": 96, "y": 32, "flags": 1},
- {"matrix": [2, 7], "x": 112, "y": 32, "flags": 1},
- {"matrix": [3, 3], "x": 32, "y": 48, "flags": 1},
- {"matrix": [3, 4], "x": 48, "y": 48, "flags": 1},
- {"matrix": [3, 5], "x": 64, "y": 48, "flags": 1},
- {"matrix": [3, 6], "x": 80, "y": 48, "flags": 1},
- {"matrix": [4, 2], "x": 32, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 80, "y": 64, "flags": 1},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 220, "y": 0, "flags": 1},
- {"x": 210, "y": 0, "flags": 1},
- {"matrix": [1, 8], "x": 128, "y": 16, "flags": 1},
- {"matrix": [1, 9], "x": 144, "y": 16, "flags": 1},
- {"matrix": [1, 10], "x": 160, "y": 16, "flags": 1},
- {"matrix": [1, 11], "x": 176, "y": 16, "flags": 1},
- {"matrix": [1, 12], "x": 192, "y": 16, "flags": 1},
- {"x": 220, "y": 16, "flags": 1},
- {"x": 220, "y": 16, "flags": 1},
- {"matrix": [2, 8], "x": 128, "y": 32, "flags": 1},
- {"matrix": [2, 9], "x": 144, "y": 32, "flags": 1},
- {"matrix": [2, 10], "x": 160, "y": 32, "flags": 1},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 1},
- {"matrix": [2, 12], "x": 192, "y": 32, "flags": 1},
- {"matrix": [2, 13], "x": 220, "y": 32, "flags": 1},
- {"matrix": [3, 7], "x": 96, "y": 48, "flags": 1},
- {"matrix": [3, 8], "x": 112, "y": 48, "flags": 1},
- {"matrix": [3, 9], "x": 128, "y": 48, "flags": 1},
- {"matrix": [3, 10], "x": 144, "y": 48, "flags": 1},
- {"matrix": [3, 11], "x": 160, "y": 48, "flags": 1},
- {"x": 200, "y": 48, "flags": 1},
- {"matrix": [3, 12], "x": 220, "y": 48, "flags": 1},
- {"matrix": [3, 13], "x": 220, "y": 48, "flags": 1},
- {"x": 96, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 144, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 160, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 176, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 220, "y": 64, "flags": 1},
- {"matrix": [1, 13], "x": 220, "y": 0, "flags": 1},
- {"x": 0, "y": 0, "flags": 9},
- {"x": 0, "y": 0, "flags": 9},
- {"x": 0, "y": 0, "flags": 9},
- {"x": 0, "y": 0, "flags": 9},
- {"x": 0, "y": 0, "flags": 9},
- {"x": 0, "y": 0, "flags": 9},
- {"x": 0, "y": 0, "flags": 9},
- {"x": 0, "y": 0, "flags": 9}
- ],
"react_on_keyup": true
},
"matrix_pins": {
diff --git a/keyboards/mechlovin/hannah60rgb/rev2/rev2.c b/keyboards/mechlovin/hannah60rgb/rev2/rev2.c
index 0667e8bc78..90a42a88a2 100644
--- a/keyboards/mechlovin/hannah60rgb/rev2/rev2.c
+++ b/keyboards/mechlovin/hannah60rgb/rev2/rev2.c
@@ -110,6 +110,54 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
{0, C9_16, C9_11, C7_12},//INDICATOR LED-77
};
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 18, 19, 20, 21, 36, 37, 38, 39, 40, 41 },
+ { 4, 5, 6, 7, 22, 23, 24, 25, 43, 44, 45, 46, 47, 69 },
+ { 8, 9, 10, 11, 26, 27, 28, 29, 50, 51, 52, 53, 54, 55 },
+ { 13, 14, 15, 30, 31, 32, 33, 56, 57, 58, 59, 60, 62, 63 },
+ { 16, 17, 34, NO_LED, NO_LED, NO_LED, 35, NO_LED, NO_LED, NO_LED, 65, 66, 67, 68 }
+ }, {
+ //LED Index to Physical Positon
+ { 0, 0 }, { 16, 0 }, { 32, 0 }, { 48, 0 }, //9-59-68-76
+ { 0, 16 }, { 16, 16 }, { 32, 16 }, { 48, 16 }, //10-60-72-77
+ { 0, 32 }, { 16, 32 }, { 32, 32 }, { 48, 32 }, //46-61-73-78
+ { 0, 48 }, { 0, 48 }, { 12, 48 }, { 16, 48 }, //126-51-63-74
+ { 0, 64 }, { 16, 64 }, //56-67
+ { 64, 0 }, { 80, 0 }, { 96, 0 }, { 112, 0 }, //80-84-89-94
+ { 64, 16 }, { 80, 16 }, { 96, 16 }, { 112, 16 }, //81-85-90-95
+ { 64, 32 }, { 80, 32 }, { 96, 32 }, { 112, 32 }, //82-86-91-96
+ { 32, 48 }, { 48, 48 }, { 64, 48 }, { 80, 48 }, //79-83-87-92
+ { 32, 64 }, { 80, 64 }, //75-93
+ { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 220, 0 }, { 210, 0 }, //98-102-106-111-116-121-130
+ { 128, 16 }, { 144, 16 }, { 160, 16 }, { 176, 16 }, { 192, 16 }, { 220, 16 }, { 220, 16 }, //99-103-107-112-117-129-122
+ { 128, 32 }, { 144, 32 }, { 160, 32 }, { 176, 32 }, { 192, 32 }, { 220, 32 }, //100-104-108-113-118-123
+ { 96, 48 }, { 112, 48 }, { 128, 48 }, { 144, 48 }, { 160, 48 }, { 200, 48 }, { 220, 48 }, { 220, 48 }, //97-101-105-109-114-119-128-124
+ { 96, 64 }, { 144, 64 }, { 160, 64 }, { 176, 64 }, { 220, 64 }, //127-110-115-120-125
+ { 220, 0 }, //140
+ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }
+ }, {
+ 1, 1, 1, 1,
+ 1, 1, 1, 1,
+ 1, 1, 1, 1,
+ 1, 1, 1, 1,
+ 1, 1,
+ 1, 1, 1, 1,
+ 1, 1, 1, 1,
+ 1, 1, 1, 1,
+ 1, 1, 1, 1,
+ 1, 1,
+ 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1,
+ 1,
+ 9, 9, 9, 9, 9, 9, 9, 9
+ }
+};
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/keyboard.json b/keyboards/mechlovin/infinity87/rgb_rev1/keyboard.json
index 3709736be0..2ca5e03b36 100644
--- a/keyboards/mechlovin/infinity87/rgb_rev1/keyboard.json
+++ b/keyboards/mechlovin/infinity87/rgb_rev1/keyboard.json
@@ -66,99 +66,6 @@
"animation": "cycle_all"
},
"driver": "is31fl3741",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 14, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 28, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 56, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 70, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 98, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 112, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 126, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 140, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 154, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 168, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 182, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 196, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 210, "y": 0, "flags": 1},
- {"matrix": [0, 16], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 14, "y": 16, "flags": 1},
- {"matrix": [1, 2], "x": 28, "y": 16, "flags": 1},
- {"matrix": [1, 3], "x": 42, "y": 16, "flags": 1},
- {"matrix": [1, 4], "x": 56, "y": 16, "flags": 1},
- {"matrix": [1, 5], "x": 70, "y": 16, "flags": 1},
- {"matrix": [1, 6], "x": 84, "y": 16, "flags": 1},
- {"matrix": [1, 7], "x": 98, "y": 16, "flags": 1},
- {"matrix": [1, 8], "x": 112, "y": 16, "flags": 1},
- {"matrix": [1, 9], "x": 126, "y": 16, "flags": 1},
- {"matrix": [1, 10], "x": 140, "y": 16, "flags": 1},
- {"matrix": [1, 11], "x": 154, "y": 16, "flags": 1},
- {"matrix": [1, 12], "x": 168, "y": 16, "flags": 1},
- {"matrix": [1, 13], "x": 182, "y": 16, "flags": 1},
- {"matrix": [1, 14], "x": 196, "y": 16, "flags": 1},
- {"matrix": [1, 15], "x": 210, "y": 16, "flags": 1},
- {"matrix": [1, 16], "x": 224, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1},
- {"matrix": [2, 1], "x": 14, "y": 32, "flags": 1},
- {"matrix": [2, 2], "x": 28, "y": 32, "flags": 1},
- {"matrix": [2, 3], "x": 42, "y": 32, "flags": 1},
- {"matrix": [2, 4], "x": 56, "y": 32, "flags": 1},
- {"matrix": [2, 5], "x": 70, "y": 32, "flags": 1},
- {"matrix": [2, 6], "x": 84, "y": 32, "flags": 1},
- {"matrix": [2, 7], "x": 98, "y": 32, "flags": 1},
- {"matrix": [2, 8], "x": 112, "y": 32, "flags": 1},
- {"matrix": [2, 9], "x": 126, "y": 32, "flags": 1},
- {"matrix": [2, 10], "x": 140, "y": 32, "flags": 1},
- {"matrix": [2, 11], "x": 154, "y": 32, "flags": 1},
- {"matrix": [2, 12], "x": 168, "y": 32, "flags": 1},
- {"matrix": [2, 13], "x": 182, "y": 32, "flags": 1},
- {"matrix": [2, 14], "x": 196, "y": 32, "flags": 1},
- {"matrix": [2, 15], "x": 210, "y": 32, "flags": 1},
- {"matrix": [2, 16], "x": 224, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 0, "y": 48, "flags": 1},
- {"matrix": [3, 1], "x": 14, "y": 48, "flags": 1},
- {"matrix": [3, 2], "x": 28, "y": 48, "flags": 1},
- {"matrix": [3, 3], "x": 42, "y": 48, "flags": 1},
- {"matrix": [3, 4], "x": 56, "y": 48, "flags": 1},
- {"matrix": [3, 5], "x": 70, "y": 48, "flags": 1},
- {"matrix": [3, 6], "x": 84, "y": 48, "flags": 1},
- {"matrix": [3, 7], "x": 98, "y": 48, "flags": 1},
- {"matrix": [3, 8], "x": 112, "y": 48, "flags": 1},
- {"matrix": [3, 9], "x": 126, "y": 48, "flags": 1},
- {"matrix": [3, 10], "x": 140, "y": 48, "flags": 1},
- {"matrix": [3, 11], "x": 154, "y": 48, "flags": 1},
- {"matrix": [3, 12], "x": 168, "y": 48, "flags": 1},
- {"matrix": [3, 13], "x": 182, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 0, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 14, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 28, "y": 64, "flags": 1},
- {"matrix": [4, 3], "x": 42, "y": 64, "flags": 1},
- {"matrix": [4, 4], "x": 56, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 70, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 84, "y": 64, "flags": 1},
- {"matrix": [4, 7], "x": 98, "y": 64, "flags": 1},
- {"matrix": [4, 8], "x": 112, "y": 64, "flags": 1},
- {"matrix": [4, 9], "x": 126, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 140, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 154, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 168, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 182, "y": 64, "flags": 1},
- {"matrix": [4, 15], "x": 210, "y": 64, "flags": 1},
- {"matrix": [5, 0], "x": 0, "y": 80, "flags": 1},
- {"matrix": [5, 1], "x": 14, "y": 80, "flags": 1},
- {"matrix": [5, 2], "x": 28, "y": 80, "flags": 1},
- {"matrix": [5, 6], "x": 84, "y": 80, "flags": 1},
- {"matrix": [5, 10], "x": 140, "y": 80, "flags": 1},
- {"matrix": [5, 11], "x": 154, "y": 80, "flags": 1},
- {"matrix": [5, 12], "x": 168, "y": 80, "flags": 1},
- {"matrix": [5, 13], "x": 182, "y": 80, "flags": 1},
- {"matrix": [5, 14], "x": 196, "y": 80, "flags": 1},
- {"matrix": [5, 15], "x": 210, "y": 80, "flags": 1},
- {"matrix": [5, 16], "x": 224, "y": 80, "flags": 1}
- ],
"sleep": true
},
"matrix_pins": {
diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c b/keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c
index ae4dfef158..8df305bb1a 100644
--- a/keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c
+++ b/keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c
@@ -111,6 +111,31 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, SW9_CS19, SW9_CS20, SW9_CS21}, //D165-K2G-90
};
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16},
+ {17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33},
+ {34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50},
+ {51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, NO_LED, NO_LED, NO_LED},
+ {65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, NO_LED, 79, NO_LED},
+ {80, 81, 82, NO_LED, NO_LED, NO_LED, 83, NO_LED, NO_LED, NO_LED, 84, 85, 86, 87, 88, 89, 90}
+ }, {
+ {0, 0}, {14, 0}, {28, 0}, {42, 0}, {56, 0}, {70, 0}, {84, 0}, {98, 0}, {112, 0}, {126, 0}, {140, 0}, {154, 0}, {168, 0}, {182, 0}, {196, 0}, {210, 0}, {224, 0},
+ {0,16}, {14,16}, {28,16}, {42, 16}, {56, 16}, {70, 16}, {84, 16}, {98, 16}, {112, 16}, {126, 16}, {140, 16}, {154, 16}, {168, 16}, {182, 16}, {196, 16}, {210, 16}, {224, 16},
+ {0,32}, {14,32}, {28,32}, {42, 32}, {56, 32}, {70, 32}, {84, 32}, {98, 32}, {112, 32}, {126, 32}, {140, 32}, {154, 32}, {168, 32}, {182, 32}, {196, 32}, {210, 32}, {224, 32},
+ {0,48}, {14,48}, {28,48}, {42, 48}, {56, 48}, {70, 48}, {84, 48}, {98, 48}, {112, 48}, {126, 48}, {140, 48}, {154, 48}, {168, 48}, {182, 48},
+ {0,64}, {14,64}, {28,64}, {42, 64}, {56, 64}, {70, 64}, {84, 64}, {98, 64}, {112, 64}, {126, 64}, {140, 64}, {154, 64}, {168, 64}, {182, 64}, {210, 64},
+ {0,80}, {14,80}, {28,80}, {84, 80}, {140, 80}, {154, 80}, {168, 80}, {182, 80}, {196, 80}, {210, 80}, {224, 80}
+ }, {
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
+ } };
+
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/mechlovin/infinity875/infinity875.c b/keyboards/mechlovin/infinity875/infinity875.c
new file mode 100644
index 0000000000..09749bbc2b
--- /dev/null
+++ b/keyboards/mechlovin/infinity875/infinity875.c
@@ -0,0 +1,46 @@
+/* Copyright 2021 Mechlovin' Studio
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ //Key Matrix to LED Index
+ {0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17},
+ {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED},
+ {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED},
+ {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED},
+ {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED},
+ {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}
+}, {
+ //LED Index to Physical Positon
+ {0,0}, {14,0}, {28,0}, {42,0}, {56,0}, {67,0}, {70,0}, {84,0}, {98,0}, {112,0}, {126,0}, {140,0}, {154,0}, {168,0}, {182,0}, {196,0}, {210,0}, {224,0},
+ {224,13}, {196,13}, {182,13}, {154,13}, {112,13}, {84,13}, {56,13}, {28,13}, {0,13},
+ {0,25}, {0,38},
+ {0,51}, {0,64},
+ {28,64}, {56,64},
+ {84,64}, {112,64}, {154,64}, {182,64}, {196,64}, {224,64}, {224,51}, {224,38}, {224,25},
+//{244,64}, {196,64}, {182,64}, {154,64}, {112,64}, {84,64}, {56,64}, {28,64}, {0,64},
+}, {
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1,
+ 1, 1,
+ 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1,
+} };
+#endif
+
diff --git a/keyboards/mechlovin/infinity875/keyboard.json b/keyboards/mechlovin/infinity875/keyboard.json
index 223fce2cac..1016178caa 100644
--- a/keyboards/mechlovin/infinity875/keyboard.json
+++ b/keyboards/mechlovin/infinity875/keyboard.json
@@ -15,50 +15,6 @@
},
"rgb_matrix": {
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 14, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 28, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 56, "y": 0, "flags": 1},
- {"x": 67, "y": 0, "flags": 1},
- {"matrix": [0, 5], "x": 70, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 98, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 112, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 126, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 140, "y": 0, "flags": 1},
- {"matrix": [0, 11], "x": 154, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 168, "y": 0, "flags": 1},
- {"matrix": [0, 13], "x": 182, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 196, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 210, "y": 0, "flags": 1},
- {"matrix": [0, 16], "x": 224, "y": 0, "flags": 1},
- {"x": 224, "y": 13, "flags": 1},
- {"x": 196, "y": 13, "flags": 1},
- {"x": 182, "y": 13, "flags": 1},
- {"x": 154, "y": 13, "flags": 1},
- {"x": 112, "y": 13, "flags": 1},
- {"x": 84, "y": 13, "flags": 1},
- {"x": 56, "y": 13, "flags": 1},
- {"x": 28, "y": 13, "flags": 1},
- {"x": 0, "y": 13, "flags": 1},
- {"x": 0, "y": 25, "flags": 1},
- {"x": 0, "y": 38, "flags": 1},
- {"x": 0, "y": 51, "flags": 1},
- {"x": 0, "y": 64, "flags": 1},
- {"x": 28, "y": 64, "flags": 1},
- {"x": 56, "y": 64, "flags": 1},
- {"x": 84, "y": 64, "flags": 1},
- {"x": 112, "y": 64, "flags": 1},
- {"x": 154, "y": 64, "flags": 1},
- {"x": 182, "y": 64, "flags": 1},
- {"x": 196, "y": 64, "flags": 1},
- {"x": 224, "y": 64, "flags": 1},
- {"x": 224, "y": 51, "flags": 1},
- {"x": 224, "y": 38, "flags": 1},
- {"x": 224, "y": 25, "flags": 1}
- ],
"max_brightness": 200,
"sleep": true
},
diff --git a/keyboards/melgeek/mach80/rev1/keyboard.json b/keyboards/melgeek/mach80/rev1/keyboard.json
index 7faa507606..78a8dbf0f6 100644
--- a/keyboards/melgeek/mach80/rev1/keyboard.json
+++ b/keyboards/melgeek/mach80/rev1/keyboard.json
@@ -13,106 +13,5 @@
"cols": ["B0", "B1", "B2", "B3", "D2", "D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "D3"],
"rows": ["F0", "F1", "F4", "F5", "F6", "E6"]
},
- "diode_direction": "ROW2COL",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 12, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 24, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 36, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 72, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 84, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 108, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 132, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 156, "y": 0, "flags": 4},
- {"matrix": [0, 15], "x": 168, "y": 0, "flags": 4},
- {"matrix": [3, 13], "x": 180, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4},
- {"matrix": [1, 1], "x": 12, "y": 12, "flags": 4},
- {"matrix": [1, 2], "x": 24, "y": 12, "flags": 4},
- {"matrix": [1, 3], "x": 36, "y": 12, "flags": 4},
- {"matrix": [1, 4], "x": 48, "y": 12, "flags": 4},
- {"matrix": [1, 5], "x": 60, "y": 12, "flags": 4},
- {"matrix": [1, 6], "x": 72, "y": 12, "flags": 4},
- {"matrix": [1, 7], "x": 84, "y": 12, "flags": 4},
- {"matrix": [1, 8], "x": 96, "y": 12, "flags": 4},
- {"matrix": [1, 9], "x": 108, "y": 12, "flags": 4},
- {"matrix": [1, 10], "x": 120, "y": 12, "flags": 4},
- {"matrix": [1, 11], "x": 132, "y": 12, "flags": 4},
- {"matrix": [1, 12], "x": 144, "y": 12, "flags": 4},
- {"x": 156, "y": 12, "flags": 4},
- {"matrix": [1, 13], "x": 168, "y": 12, "flags": 4},
- {"x": 180, "y": 12, "flags": 4},
- {"matrix": [1, 14], "x": 192, "y": 12, "flags": 4},
- {"matrix": [1, 15], "x": 204, "y": 12, "flags": 4},
- {"matrix": [3, 14], "x": 216, "y": 12, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 24, "flags": 4},
- {"matrix": [2, 1], "x": 12, "y": 24, "flags": 4},
- {"matrix": [2, 2], "x": 24, "y": 24, "flags": 4},
- {"matrix": [2, 3], "x": 36, "y": 24, "flags": 4},
- {"matrix": [2, 4], "x": 48, "y": 24, "flags": 4},
- {"matrix": [2, 5], "x": 60, "y": 24, "flags": 4},
- {"matrix": [2, 6], "x": 72, "y": 24, "flags": 4},
- {"matrix": [2, 7], "x": 84, "y": 24, "flags": 4},
- {"matrix": [2, 8], "x": 96, "y": 24, "flags": 4},
- {"matrix": [2, 9], "x": 108, "y": 24, "flags": 4},
- {"matrix": [2, 10], "x": 120, "y": 24, "flags": 4},
- {"matrix": [2, 11], "x": 132, "y": 24, "flags": 4},
- {"matrix": [2, 12], "x": 144, "y": 24, "flags": 4},
- {"matrix": [2, 13], "x": 156, "y": 24, "flags": 4},
- {"matrix": [2, 14], "x": 168, "y": 24, "flags": 4},
- {"matrix": [2, 15], "x": 180, "y": 24, "flags": 4},
- {"matrix": [3, 15], "x": 192, "y": 24, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 36, "flags": 4},
- {"matrix": [3, 1], "x": 12, "y": 36, "flags": 4},
- {"matrix": [3, 2], "x": 24, "y": 36, "flags": 4},
- {"matrix": [3, 3], "x": 36, "y": 36, "flags": 4},
- {"matrix": [3, 4], "x": 48, "y": 36, "flags": 4},
- {"matrix": [3, 5], "x": 60, "y": 36, "flags": 4},
- {"matrix": [3, 6], "x": 72, "y": 36, "flags": 4},
- {"matrix": [3, 7], "x": 84, "y": 36, "flags": 4},
- {"matrix": [3, 8], "x": 96, "y": 36, "flags": 4},
- {"matrix": [3, 9], "x": 108, "y": 36, "flags": 4},
- {"matrix": [3, 10], "x": 120, "y": 36, "flags": 4},
- {"matrix": [3, 11], "x": 132, "y": 36, "flags": 4},
- {"x": 144, "y": 36, "flags": 4},
- {"matrix": [3, 12], "x": 156, "y": 36, "flags": 4},
- {"x": 168, "y": 36, "flags": 4},
- {"x": 0, "y": 48, "flags": 4},
- {"matrix": [4, 0], "x": 12, "y": 48, "flags": 4},
- {"x": 24, "y": 48, "flags": 4},
- {"matrix": [4, 1], "x": 36, "y": 48, "flags": 4},
- {"matrix": [4, 2], "x": 48, "y": 48, "flags": 4},
- {"matrix": [4, 3], "x": 60, "y": 48, "flags": 4},
- {"matrix": [4, 4], "x": 72, "y": 48, "flags": 4},
- {"matrix": [4, 5], "x": 84, "y": 48, "flags": 4},
- {"matrix": [4, 6], "x": 96, "y": 48, "flags": 4},
- {"matrix": [4, 7], "x": 108, "y": 48, "flags": 4},
- {"matrix": [4, 8], "x": 120, "y": 48, "flags": 4},
- {"matrix": [4, 9], "x": 132, "y": 48, "flags": 4},
- {"matrix": [4, 10], "x": 144, "y": 48, "flags": 4},
- {"x": 156, "y": 48, "flags": 4},
- {"matrix": [4, 11], "x": 168, "y": 48, "flags": 4},
- {"x": 180, "y": 48, "flags": 4},
- {"matrix": [4, 14], "x": 192, "y": 48, "flags": 4},
- {"matrix": [5, 0], "x": 0, "y": 60, "flags": 4},
- {"matrix": [5, 1], "x": 12, "y": 60, "flags": 4},
- {"matrix": [5, 2], "x": 24, "y": 60, "flags": 4},
- {"x": 36, "y": 60, "flags": 4},
- {"matrix": [5, 5], "x": 48, "y": 60, "flags": 4},
- {"x": 60, "y": 60, "flags": 4},
- {"matrix": [5, 9], "x": 72, "y": 60, "flags": 4},
- {"matrix": [5, 10], "x": 84, "y": 60, "flags": 4},
- {"matrix": [5, 11], "x": 96, "y": 60, "flags": 4},
- {"matrix": [5, 12], "x": 108, "y": 60, "flags": 4},
- {"matrix": [5, 13], "x": 120, "y": 60, "flags": 4},
- {"matrix": [5, 14], "x": 132, "y": 60, "flags": 4},
- {"matrix": [5, 15], "x": 144, "y": 60, "flags": 4}
- ],
- }
+ "diode_direction": "ROW2COL"
}
diff --git a/keyboards/melgeek/mach80/rev1/rev1.c b/keyboards/melgeek/mach80/rev1/rev1.c
index aad1b71833..a4b49610cc 100755
--- a/keyboards/melgeek/mach80/rev1/rev1.c
+++ b/keyboards/melgeek/mach80/rev1/rev1.c
@@ -118,6 +118,31 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, SW6_CS39, SW6_CS38, SW6_CS37}, /* RGB111 */
{0, SW7_CS39, SW7_CS38, SW7_CS37}, /* RGB112 */
};
+led_config_t g_led_config = {
+ {
+ /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 */
+ { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, /* R0 */
+ { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 33 }, /* R1 */
+ { 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50 }, /* R2 */
+ { 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 15, 34, 51 }, /* R3 */
+ { 68, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 81, NO_LED, NO_LED, 83, NO_LED }, /* R4 */
+ { 84, 85, 86, NO_LED, NO_LED, 88, NO_LED, NO_LED, NO_LED, 90, 91, 92, 93, 94, 95, 96 } /* R5 */
+ }, {
+ {0, 0}, {12, 0}, {24, 0}, {36, 0}, {48, 0}, {60, 0}, {72, 0}, {84, 0}, {96, 0}, {108, 0}, {120, 0}, {132, 0}, {144, 0}, {156, 0}, {168, 0}, {180, 0}, //16
+ {0, 12}, {12, 12}, {24, 12}, {36, 12}, {48, 12}, {60, 12}, {72, 12}, {84, 12}, {96, 12}, {108, 12}, {120, 12}, {132, 12}, {144, 12}, {156, 12}, {168, 12}, {180, 12}, {192, 12}, {204, 12}, {216, 12}, //19
+ {0, 24}, {12, 24}, {24, 24}, {36, 24}, {48, 24}, {60, 24}, {72, 24}, {84, 24}, {96, 24}, {108, 24}, {120, 24}, {132, 24}, {144, 24}, {156, 24}, {168, 24}, {180, 24}, {192, 24}, //17
+ {0, 36}, {12, 36}, {24, 36}, {36, 36}, {48, 36}, {60, 36}, {72, 36}, {84, 36}, {96, 36}, {108, 36}, {120, 36}, {132, 36}, {144, 36}, {156, 36}, {168, 36}, //15
+ {0, 48}, {12, 48}, {24, 48}, {36, 48}, {48, 48}, {60, 48}, {72, 48}, {84, 48}, {96, 48}, {108, 48}, {120, 48}, {132, 48}, {144, 48}, {156, 48}, {168, 48}, {180, 48}, {192, 48}, //17
+ {0, 60}, {12, 60}, {24, 60}, {36, 60}, {48, 60}, {60, 60}, {72, 60}, {84, 60}, {96, 60}, {108, 60}, {120, 60}, {132, 60}, {144, 60} //13
+ }, {
+ 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, 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, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ }
+};
const is31fl3741_led_t g_is31_indicator_leds[3] = {
{0, SW1_CS6, SW1_CS5, SW1_CS4}, /* RGB107 */
diff --git a/keyboards/melgeek/mach80/rev2/keyboard.json b/keyboards/melgeek/mach80/rev2/keyboard.json
index 039e1711fd..78a8dbf0f6 100644
--- a/keyboards/melgeek/mach80/rev2/keyboard.json
+++ b/keyboards/melgeek/mach80/rev2/keyboard.json
@@ -13,103 +13,5 @@
"cols": ["B0", "B1", "B2", "B3", "D2", "D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "D3"],
"rows": ["F0", "F1", "F4", "F5", "F6", "E6"]
},
- "diode_direction": "ROW2COL",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 12, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 24, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 36, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 72, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 84, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 108, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 132, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 156, "y": 0, "flags": 4},
- {"matrix": [0, 15], "x": 168, "y": 0, "flags": 4},
- {"matrix": [3, 13], "x": 180, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4},
- {"matrix": [1, 1], "x": 12, "y": 12, "flags": 4},
- {"matrix": [1, 2], "x": 24, "y": 12, "flags": 4},
- {"matrix": [1, 3], "x": 36, "y": 12, "flags": 4},
- {"matrix": [1, 4], "x": 48, "y": 12, "flags": 4},
- {"matrix": [1, 5], "x": 60, "y": 12, "flags": 4},
- {"matrix": [1, 6], "x": 72, "y": 12, "flags": 4},
- {"matrix": [1, 7], "x": 84, "y": 12, "flags": 4},
- {"matrix": [1, 8], "x": 96, "y": 12, "flags": 4},
- {"matrix": [1, 9], "x": 108, "y": 12, "flags": 4},
- {"matrix": [1, 10], "x": 120, "y": 12, "flags": 4},
- {"matrix": [1, 11], "x": 132, "y": 12, "flags": 4},
- {"matrix": [1, 12], "x": 144, "y": 12, "flags": 4},
- {"x": 156, "y": 12, "flags": 4},
- {"matrix": [1, 13], "x": 168, "y": 12, "flags": 4},
- {"x": 180, "y": 12, "flags": 4},
- {"matrix": [1, 14], "x": 192, "y": 12, "flags": 4},
- {"matrix": [1, 15], "x": 204, "y": 12, "flags": 4},
- {"matrix": [3, 14], "x": 216, "y": 12, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 24, "flags": 4},
- {"matrix": [2, 1], "x": 12, "y": 24, "flags": 4},
- {"matrix": [2, 2], "x": 24, "y": 24, "flags": 4},
- {"matrix": [2, 3], "x": 36, "y": 24, "flags": 4},
- {"matrix": [2, 4], "x": 48, "y": 24, "flags": 4},
- {"matrix": [2, 5], "x": 60, "y": 24, "flags": 4},
- {"matrix": [2, 6], "x": 72, "y": 24, "flags": 4},
- {"matrix": [2, 7], "x": 84, "y": 24, "flags": 4},
- {"matrix": [2, 8], "x": 96, "y": 24, "flags": 4},
- {"matrix": [2, 9], "x": 108, "y": 24, "flags": 4},
- {"matrix": [2, 10], "x": 120, "y": 24, "flags": 4},
- {"matrix": [2, 11], "x": 132, "y": 24, "flags": 4},
- {"matrix": [2, 12], "x": 144, "y": 24, "flags": 4},
- {"matrix": [2, 13], "x": 156, "y": 24, "flags": 4},
- {"matrix": [2, 14], "x": 168, "y": 24, "flags": 4},
- {"matrix": [2, 15], "x": 180, "y": 24, "flags": 4},
- {"matrix": [3, 15], "x": 192, "y": 24, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 36, "flags": 4},
- {"matrix": [3, 1], "x": 12, "y": 36, "flags": 4},
- {"matrix": [3, 2], "x": 24, "y": 36, "flags": 4},
- {"matrix": [3, 3], "x": 36, "y": 36, "flags": 4},
- {"matrix": [3, 4], "x": 48, "y": 36, "flags": 4},
- {"matrix": [3, 5], "x": 60, "y": 36, "flags": 4},
- {"matrix": [3, 6], "x": 72, "y": 36, "flags": 4},
- {"matrix": [3, 7], "x": 84, "y": 36, "flags": 4},
- {"matrix": [3, 8], "x": 96, "y": 36, "flags": 4},
- {"matrix": [3, 9], "x": 108, "y": 36, "flags": 4},
- {"matrix": [3, 10], "x": 120, "y": 36, "flags": 4},
- {"matrix": [3, 11], "x": 132, "y": 36, "flags": 4},
- {"x": 144, "y": 36, "flags": 4},
- {"matrix": [3, 12], "x": 156, "y": 36, "flags": 4},
- {"x": 168, "y": 36, "flags": 4},
- {"x": 0, "y": 48, "flags": 4},
- {"matrix": [4, 0], "x": 12, "y": 48, "flags": 4},
- {"x": 24, "y": 48, "flags": 4},
- {"matrix": [4, 1], "x": 36, "y": 48, "flags": 4},
- {"matrix": [4, 2], "x": 48, "y": 48, "flags": 4},
- {"matrix": [4, 3], "x": 60, "y": 48, "flags": 4},
- {"matrix": [4, 4], "x": 72, "y": 48, "flags": 4},
- {"matrix": [4, 5], "x": 84, "y": 48, "flags": 4},
- {"matrix": [4, 6], "x": 96, "y": 48, "flags": 4},
- {"matrix": [4, 7], "x": 108, "y": 48, "flags": 4},
- {"matrix": [4, 8], "x": 120, "y": 48, "flags": 4},
- {"matrix": [4, 9], "x": 132, "y": 48, "flags": 4},
- {"matrix": [4, 10], "x": 144, "y": 48, "flags": 4},
- {"x": 156, "y": 48, "flags": 4},
- {"matrix": [4, 11], "x": 168, "y": 48, "flags": 4},
- {"x": 180, "y": 48, "flags": 4},
- {"matrix": [4, 14], "x": 192, "y": 48, "flags": 4},
- {"matrix": [5, 0], "x": 0, "y": 60, "flags": 4},
- {"matrix": [5, 2], "x": 12, "y": 60, "flags": 4},
- {"x": 24, "y": 60, "flags": 4},
- {"matrix": [5, 5], "x": 36, "y": 60, "flags": 4},
- {"x": 48, "y": 60, "flags": 4},
- {"matrix": [5, 9], "x": 60, "y": 60, "flags": 4},
- {"matrix": [5, 12], "x": 72, "y": 60, "flags": 4},
- {"matrix": [5, 13], "x": 84, "y": 60, "flags": 4},
- {"matrix": [5, 14], "x": 96, "y": 60, "flags": 4},
- {"matrix": [5, 15], "x": 108, "y": 60, "flags": 4}
- ],
- }
+ "diode_direction": "ROW2COL"
}
diff --git a/keyboards/melgeek/mach80/rev2/rev2.c b/keyboards/melgeek/mach80/rev2/rev2.c
index 63fbbbedfc..1a759f38c6 100755
--- a/keyboards/melgeek/mach80/rev2/rev2.c
+++ b/keyboards/melgeek/mach80/rev2/rev2.c
@@ -115,6 +115,32 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, SW9_CS24, SW9_CS23, SW9_CS22}, /* RGB54 */
{0, SW4_CS39, SW4_CS38, SW4_CS37}, /* RGB101 */
};
+led_config_t g_led_config = {
+ {
+ /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 */
+ { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, /* R0 */
+ { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 33 }, /* R1 */
+ { 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50 }, /* R2 */
+ { 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 15, 34, 51 }, /* R3 */
+ { 68, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 81, NO_LED, NO_LED, 83, NO_LED }, /* R4 */
+ { 84, NO_LED, 85, NO_LED, NO_LED, 87, NO_LED, NO_LED, NO_LED, 89, NO_LED, NO_LED, 90, 91, 92, 93 } /* R5 */
+ }, {
+ {0, 0}, {12, 0}, {24, 0}, {36, 0}, {48, 0}, {60, 0}, {72, 0}, {84, 0}, {96, 0}, {108, 0}, {120, 0}, {132, 0}, {144, 0}, {156, 0}, {168, 0}, {180, 0}, //16
+ {0, 12}, {12, 12}, {24, 12}, {36, 12}, {48, 12}, {60, 12}, {72, 12}, {84, 12}, {96, 12}, {108, 12}, {120, 12}, {132, 12}, {144, 12}, {156, 12}, {168, 12}, {180, 12}, {192, 12}, {204, 12}, {216, 12}, //19
+ {0, 24}, {12, 24}, {24, 24}, {36, 24}, {48, 24}, {60, 24}, {72, 24}, {84, 24}, {96, 24}, {108, 24}, {120, 24}, {132, 24}, {144, 24}, {156, 24}, {168, 24}, {180, 24}, {192, 24}, //17
+ {0, 36}, {12, 36}, {24, 36}, {36, 36}, {48, 36}, {60, 36}, {72, 36}, {84, 36}, {96, 36}, {108, 36}, {120, 36}, {132, 36}, {144, 36}, {156, 36}, {168, 36}, //15
+ {0, 48}, {12, 48}, {24, 48}, {36, 48}, {48, 48}, {60, 48}, {72, 48}, {84, 48}, {96, 48}, {108, 48}, {120, 48}, {132, 48}, {144, 48}, {156, 48}, {168, 48}, {180, 48}, {192, 48}, //17
+ {0, 60}, {12, 60}, {24, 60}, {36, 60}, {48, 60}, {60, 60}, {72, 60}, {84, 60}, {96, 60}, {108, 60}
+ //10
+ }, {
+ 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, 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, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ }
+};
const is31fl3741_led_t g_is31_indicator_leds[3] = {
{0, SW1_CS6, SW1_CS5, SW1_CS4}, /* RGB107 */
diff --git a/keyboards/melgeek/mj61/rev1/keyboard.json b/keyboards/melgeek/mj61/rev1/keyboard.json
index e8dedb8ea5..b388908579 100644
--- a/keyboards/melgeek/mj61/rev1/keyboard.json
+++ b/keyboards/melgeek/mj61/rev1/keyboard.json
@@ -10,72 +10,5 @@
"cols": ["B15", "A8", "A10", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"],
"rows": ["B12", "B11", "B10", "B1", "A3"]
},
- "diode_direction": "COL2ROW",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4},
- {"matrix": [1, 13], "x": 0, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 16, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 32, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 48, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 64, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 80, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 96, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 144, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 160, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 176, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 192, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 208, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4},
- {"matrix": [3, 12], "x": 0, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 16, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 32, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 48, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 80, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 112, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 128, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 144, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 160, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 176, "y": 48, "flags": 4},
- {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4},
- {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4},
- {"matrix": [4, 3], "x": 32, "y": 64, "flags": 4},
- {"matrix": [4, 5], "x": 48, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 64, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 80, "y": 64, "flags": 4},
- {"matrix": [4, 11], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 12], "x": 112, "y": 64, "flags": 4},
- {"matrix": [4, 4], "x": 128, "y": 64, "flags": 4},
- {"matrix": [4, 6], "x": 144, "y": 64, "flags": 4}
- ],
- }
+ "diode_direction": "COL2ROW"
}
diff --git a/keyboards/melgeek/mj61/rev1/rev1.c b/keyboards/melgeek/mj61/rev1/rev1.c
index d543ad60c0..8e0be62127 100644
--- a/keyboards/melgeek/mj61/rev1/rev1.c
+++ b/keyboards/melgeek/mj61/rev1/rev1.c
@@ -82,4 +82,28 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, SW8_CS30, SW8_CS29, SW8_CS28}, /* RGB62 */
{0, SW9_CS30, SW9_CS29, SW9_CS28}, /* RGB63 */
};
+
+led_config_t g_led_config = {
+ {
+ /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 */
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, /* R0 */
+ { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 }, /* R1 */
+ { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, NO_LED,}, /* R2 */
+ { 52, NO_LED, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, NO_LED }, /* R3 */
+ { 53, 54, NO_LED, 55, 61, 56, 62, NO_LED, NO_LED, 57, 58, 59, 60, NO_LED }, /* R4 */
+ }, {
+ {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0},
+ {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16},
+ {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32},
+ {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48},
+ {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64},
+ }, {
+ 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, 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, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ }
+};
+
#endif
diff --git a/keyboards/melgeek/mj61/rev2/keyboard.json b/keyboards/melgeek/mj61/rev2/keyboard.json
index da6c60d7ed..fcff9e10a5 100644
--- a/keyboards/melgeek/mj61/rev2/keyboard.json
+++ b/keyboards/melgeek/mj61/rev2/keyboard.json
@@ -10,80 +10,5 @@
"cols": ["B15", "A8", "B13", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"],
"rows": ["B12", "B11", "B10", "B1", "A3"]
},
- "diode_direction": "COL2ROW",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
- {"x": 208, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 224, "y": 0, "flags": 4},
- {"x": 240, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"x": 192, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 208, "y": 32, "flags": 4},
- {"x": 224, "y": 32, "flags": 4},
- {"x": 0, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 16, "y": 48, "flags": 4},
- {"x": 32, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 48, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 80, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 96, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 112, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 128, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 144, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 160, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 176, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 192, "y": 48, "flags": 4},
- {"x": 208, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 224, "y": 48, "flags": 4},
- {"x": 240, "y": 48, "flags": 4},
- {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4},
- {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4},
- {"matrix": [4, 3], "x": 32, "y": 64, "flags": 4},
- {"x": 48, "y": 64, "flags": 4},
- {"matrix": [4, 5], "x": 64, "y": 64, "flags": 4},
- {"x": 80, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 112, "y": 64, "flags": 4},
- {"matrix": [4, 11], "x": 128, "y": 64, "flags": 4},
- {"matrix": [4, 13], "x": 144, "y": 64, "flags": 4}
- ]
- }
+ "diode_direction": "COL2ROW"
}
diff --git a/keyboards/melgeek/mj61/rev2/rev2.c b/keyboards/melgeek/mj61/rev2/rev2.c
index e936998ace..7b27fa44c3 100644
--- a/keyboards/melgeek/mj61/rev2/rev2.c
+++ b/keyboards/melgeek/mj61/rev2/rev2.c
@@ -92,4 +92,28 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, SW9_CS21, SW9_CS20, SW9_CS19}, /* RGB42 */
{0, SW8_CS30, SW8_CS29, SW8_CS28}, /* RGB71 */
};
+
+led_config_t g_led_config = {
+ {
+ /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 */
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 }, /* R0 */
+ { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, /* R1 */
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, NO_LED }, /* R2 */
+ { 46, NO_LED, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, NO_LED }, /* R3 */
+ { 61, 62, NO_LED, 63, NO_LED, 65, NO_LED, NO_LED, NO_LED, 67, 68, 69, NO_LED, 70 }, /* R4 */
+ }, {
+ {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, {224, 0}, {240, 0},
+ {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16},
+ {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, {208, 32}, {224, 32},
+ {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, {224, 48}, {240, 48},
+ {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64},
+ }, {
+ 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, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ }
+};
+
#endif
diff --git a/keyboards/melgeek/mj63/rev1/keyboard.json b/keyboards/melgeek/mj63/rev1/keyboard.json
index 0d0759910e..b388908579 100644
--- a/keyboards/melgeek/mj63/rev1/keyboard.json
+++ b/keyboards/melgeek/mj63/rev1/keyboard.json
@@ -10,74 +10,5 @@
"cols": ["B15", "A8", "A10", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"],
"rows": ["B12", "B11", "B10", "B1", "A3"]
},
- "diode_direction": "COL2ROW",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4},
- {"matrix": [1, 13], "x": 0, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 16, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 32, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 48, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 64, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 80, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 96, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 144, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 160, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 176, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 192, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 208, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4},
- {"matrix": [3, 13], "x": 0, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 16, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 32, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 48, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 80, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 112, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 128, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 144, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 160, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 176, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 192, "y": 48, "flags": 4},
- {"matrix": [4, 13], "x": 0, "y": 64, "flags": 4},
- {"matrix": [4, 12], "x": 16, "y": 64, "flags": 4},
- {"matrix": [4, 11], "x": 32, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 48, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 64, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 80, "y": 64, "flags": 4},
- {"matrix": [4, 1], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 0], "x": 112, "y": 64, "flags": 4},
- {"matrix": [4, 5], "x": 128, "y": 64, "flags": 4},
- {"matrix": [4, 6], "x": 144, "y": 64, "flags": 4},
- {"matrix": [4, 4], "x": 160, "y": 64, "flags": 4}
- ]
- }
+ "diode_direction": "COL2ROW"
}
diff --git a/keyboards/melgeek/mj63/rev1/rev1.c b/keyboards/melgeek/mj63/rev1/rev1.c
index bdd7f34352..d6caeac0c1 100644
--- a/keyboards/melgeek/mj63/rev1/rev1.c
+++ b/keyboards/melgeek/mj63/rev1/rev1.c
@@ -86,4 +86,28 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, SW1_CS27, SW1_CS26, SW1_CS25}, /* RGB65 */
{0, SW5_CS30, SW5_CS29, SW5_CS28}, /* RGB66 */
};
+
+led_config_t g_led_config = {
+ {
+ /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 */
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, /* R0 */
+ { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 }, /* R1 */
+ { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, NO_LED }, /* R2 */
+ { 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, NO_LED, 43, 42, 41 }, /* R3 */
+ { 61, 60, 59, NO_LED, 64, 62, 63, NO_LED, NO_LED, 58, 57, 56, 55, 54 }, /* R4 */
+ }, {
+ {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0},
+ {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16},
+ {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32},
+ {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48},
+ {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, {160, 64},
+ }, {
+ 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, 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, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ }
+};
+
#endif
diff --git a/keyboards/melgeek/mj63/rev2/keyboard.json b/keyboards/melgeek/mj63/rev2/keyboard.json
index 8140afe4b8..fcff9e10a5 100644
--- a/keyboards/melgeek/mj63/rev2/keyboard.json
+++ b/keyboards/melgeek/mj63/rev2/keyboard.json
@@ -10,80 +10,5 @@
"cols": ["B15", "A8", "B13", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"],
"rows": ["B12", "B11", "B10", "B1", "A3"]
},
- "diode_direction": "COL2ROW",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
- {"x": 208, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 224, "y": 0, "flags": 4},
- {"x": 240, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"x": 192, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 208, "y": 32, "flags": 4},
- {"x": 224, "y": 32, "flags": 4},
- {"x": 0, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 16, "y": 48, "flags": 4},
- {"x": 32, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 48, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 80, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 96, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 112, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 128, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 144, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 160, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 176, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 192, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 208, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 224, "y": 48, "flags": 4},
- {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4},
- {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4},
- {"x": 48, "y": 64, "flags": 4},
- {"matrix": [4, 5], "x": 64, "y": 64, "flags": 4},
- {"x": 80, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 112, "y": 64, "flags": 4},
- {"matrix": [4, 11], "x": 128, "y": 64, "flags": 4},
- {"matrix": [4, 12], "x": 144, "y": 64, "flags": 4},
- {"matrix": [4, 13], "x": 160, "y": 64, "flags": 4}
- ],
- }
+ "diode_direction": "COL2ROW"
}
diff --git a/keyboards/melgeek/mj63/rev2/rev2.c b/keyboards/melgeek/mj63/rev2/rev2.c
index 20dfaaf684..95f0b28f5d 100644
--- a/keyboards/melgeek/mj63/rev2/rev2.c
+++ b/keyboards/melgeek/mj63/rev2/rev2.c
@@ -92,4 +92,28 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, SW8_CS30, SW8_CS29, SW8_CS28}, /* RGB71 */
{0, SW9_CS30, SW9_CS29, SW9_CS28}, /* RGB72 */
};
+
+led_config_t g_led_config = {
+ {
+ /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 */
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 }, /* R0 */
+ { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, /* R1 */
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, NO_LED }, /* R2 */
+ { 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, NO_LED, 57, 58, 59 }, /* R3 */
+ { 60, 61, 62, NO_LED, NO_LED, 64, NO_LED, NO_LED, NO_LED, 66, 67, 68, 69, 70 }, /* R4 */
+ }, {
+ {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, {224, 0}, {240, 0},
+ {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16},
+ {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, {208, 32}, {224, 32},
+ {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, {224, 48},
+ {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, {160, 64},
+ }, {
+ 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, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ }
+};
+
#endif
diff --git a/keyboards/melgeek/mj64/rev1/keyboard.json b/keyboards/melgeek/mj64/rev1/keyboard.json
index bddfc0bef5..b388908579 100644
--- a/keyboards/melgeek/mj64/rev1/keyboard.json
+++ b/keyboards/melgeek/mj64/rev1/keyboard.json
@@ -10,73 +10,5 @@
"cols": ["B15", "A8", "A10", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"],
"rows": ["B12", "B11", "B10", "B1", "A3"]
},
- "diode_direction": "COL2ROW",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4},
- {"matrix": [1, 13], "x": 0, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 16, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 32, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 48, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 64, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 80, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 96, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 144, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 160, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 176, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 192, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 208, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4},
- {"matrix": [3, 13], "x": 0, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 16, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 32, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 48, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 80, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 96, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 112, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 128, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 144, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 160, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 176, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 192, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 208, "y": 48, "flags": 4},
- {"matrix": [4, 13], "x": 0, "y": 64, "flags": 4},
- {"matrix": [4, 12], "x": 16, "y": 64, "flags": 4},
- {"matrix": [4, 11], "x": 32, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 48, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 64, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 1], "x": 112, "y": 64, "flags": 4},
- {"matrix": [4, 0], "x": 128, "y": 64, "flags": 4},
- {"matrix": [4, 5], "x": 144, "y": 64, "flags": 4}
- ]
- }
+ "diode_direction": "COL2ROW"
}
diff --git a/keyboards/melgeek/mj64/rev1/rev1.c b/keyboards/melgeek/mj64/rev1/rev1.c
index d5859cf5e4..ea3376a8c7 100644
--- a/keyboards/melgeek/mj64/rev1/rev1.c
+++ b/keyboards/melgeek/mj64/rev1/rev1.c
@@ -84,4 +84,27 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, SW9_CS27, SW9_CS26, SW9_CS25}, /* RGB63 */
{0, SW1_CS30, SW1_CS29, SW1_CS28}, /* RGB64 */
};
+
+led_config_t g_led_config = {
+ {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 },
+ { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 },
+ { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, NO_LED },
+ { 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41 },
+ { 62, 61, 60, NO_LED, NO_LED, 63, NO_LED, NO_LED, NO_LED, 59, 58, 57, 56, 55 }
+ }, {
+ { 0, 0 }, { 16, 0 }, { 32, 0 }, { 48, 0 }, { 64, 0 }, { 80, 0 }, { 96, 0 }, { 112, 0 }, { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 208, 0 },
+ { 0, 16 }, { 16, 16 }, { 32, 16 }, { 48, 16 }, { 64, 16 }, { 80, 16 }, { 96, 16 }, { 112, 16 }, { 128, 16 }, { 144, 16 }, { 160, 16 }, { 176, 16 }, { 192, 16 }, { 208, 16 },
+ { 0, 32 }, { 16, 32 }, { 32, 32 }, { 48, 32 }, { 64, 32 }, { 80, 32 }, { 96, 32 }, { 112, 32 }, { 128, 32 }, { 144, 32 }, { 160, 32 }, { 176, 32 }, { 192, 32 },
+ { 0, 48 }, { 16, 48 }, { 32, 48 }, { 48, 48 }, { 64, 48 }, { 80, 48 }, { 96, 48 }, { 112, 48 }, { 128, 48 }, { 144, 48 }, { 160, 48 }, { 176, 48 }, { 192, 48 }, { 208, 48 },
+ { 0, 64 }, { 16, 64 }, { 32, 64 }, { 48, 64 }, { 64, 64 }, { 96, 64 }, { 112, 64 }, { 128, 64 }, { 144, 64 }
+ }, {
+ 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, 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, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4
+ }
+};
+
#endif
diff --git a/keyboards/melgeek/mj64/rev2/keyboard.json b/keyboards/melgeek/mj64/rev2/keyboard.json
index 0a48604710..b388908579 100644
--- a/keyboards/melgeek/mj64/rev2/keyboard.json
+++ b/keyboards/melgeek/mj64/rev2/keyboard.json
@@ -10,75 +10,5 @@
"cols": ["B15", "A8", "A10", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"],
"rows": ["B12", "B11", "B10", "B1", "A3"]
},
- "diode_direction": "COL2ROW",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4},
- {"matrix": [1, 13], "x": 0, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 16, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 32, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 48, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 64, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 80, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 96, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 144, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 160, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 176, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 192, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 208, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4},
- {"matrix": [3, 13], "x": 0, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 16, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 32, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 48, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 80, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 96, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 112, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 128, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 144, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 160, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 176, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 192, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 208, "y": 48, "flags": 4},
- {"matrix": [4, 13], "x": 0, "y": 64, "flags": 4},
- {"matrix": [4, 12], "x": 16, "y": 64, "flags": 4},
- {"matrix": [4, 11], "x": 32, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 48, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 64, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 80, "y": 64, "flags": 4},
- {"matrix": [4, 1], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 0], "x": 112, "y": 64, "flags": 4},
- {"matrix": [4, 5], "x": 128, "y": 64, "flags": 4},
- {"matrix": [4, 4], "x": 144, "y": 64, "flags": 4},
- {"matrix": [4, 6], "x": 160, "y": 64, "flags": 4}
- ]
- }
+ "diode_direction": "COL2ROW"
}
diff --git a/keyboards/melgeek/mj64/rev2/rev2.c b/keyboards/melgeek/mj64/rev2/rev2.c
index 0a236374c7..17947282ce 100644
--- a/keyboards/melgeek/mj64/rev2/rev2.c
+++ b/keyboards/melgeek/mj64/rev2/rev2.c
@@ -86,4 +86,28 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, SW1_CS27, SW1_CS26, SW1_CS25}, /* RGB65 */
{0, SW5_CS30, SW5_CS29, SW5_CS28}, /* RGB66 */
};
+
+led_config_t g_led_config = {
+ {
+ /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 */
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, /* R0 */
+ { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 }, /* R1 */
+ { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, NO_LED }, /* R2 */
+ { 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41 }, /* R3 */
+ { 62, 61, 60, NO_LED, 64, 63, 65, NO_LED, NO_LED, 59, 58, 57, 56, 55 }, /* R4 */
+ }, {
+ {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0},
+ {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16},
+ {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32},
+ {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48},
+ {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, {160, 64},
+ }, {
+ 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, 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, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ }
+};
+
#endif
diff --git a/keyboards/melgeek/mj64/rev3/keyboard.json b/keyboards/melgeek/mj64/rev3/keyboard.json
index fdc0371c25..fcff9e10a5 100644
--- a/keyboards/melgeek/mj64/rev3/keyboard.json
+++ b/keyboards/melgeek/mj64/rev3/keyboard.json
@@ -10,81 +10,5 @@
"cols": ["B15", "A8", "B13", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"],
"rows": ["B12", "B11", "B10", "B1", "A3"]
},
- "diode_direction": "COL2ROW",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
- {"x": 208, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 224, "y": 0, "flags": 4},
- {"x": 240, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"x": 192, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 208, "y": 32, "flags": 4},
- {"x": 224, "y": 32, "flags": 4},
- {"x": 0, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 16, "y": 48, "flags": 4},
- {"x": 32, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 48, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 80, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 96, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 112, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 128, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 144, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 160, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 176, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 192, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 208, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 224, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 240, "y": 48, "flags": 4},
- {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4},
- {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4},
- {"x": 48, "y": 64, "flags": 4},
- {"matrix": [4, 5], "x": 64, "y": 64, "flags": 4},
- {"x": 80, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 112, "y": 64, "flags": 4},
- {"matrix": [4, 11], "x": 128, "y": 64, "flags": 4},
- {"matrix": [4, 12], "x": 144, "y": 64, "flags": 4},
- {"matrix": [4, 13], "x": 160, "y": 64, "flags": 4}
- ]
- }
+ "diode_direction": "COL2ROW"
}
diff --git a/keyboards/melgeek/mj64/rev3/rev3.c b/keyboards/melgeek/mj64/rev3/rev3.c
index 9bd58016b3..8555082e7d 100644
--- a/keyboards/melgeek/mj64/rev3/rev3.c
+++ b/keyboards/melgeek/mj64/rev3/rev3.c
@@ -92,4 +92,28 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, SW8_CS30, SW8_CS29, SW8_CS28}, /* RGB71 */
{0, SW9_CS30, SW9_CS29, SW9_CS28}, /* RGB72 */
};
+
+led_config_t g_led_config = {
+ {
+ /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 */
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 }, /* R0 */
+ { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, /* R1 */
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, NO_LED }, /* R2 */
+ { 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60 }, /* R3 */
+ { 61, 62, 63, NO_LED, NO_LED, 65, NO_LED, NO_LED, NO_LED, 67, 68, 69, 70, 71 }, /* R4 */
+ }, {
+ {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, {224, 0}, {240, 0},
+ {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16},
+ {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, {208, 32}, {224, 32},
+ {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, {224, 48}, {240, 48},
+ {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, {160, 64},
+ }, {
+ 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, 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, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ }
+};
+
#endif
diff --git a/keyboards/melgeek/mj65/rev3/keyboard.json b/keyboards/melgeek/mj65/rev3/keyboard.json
index 446e440d33..a4513b45e7 100644
--- a/keyboards/melgeek/mj65/rev3/keyboard.json
+++ b/keyboards/melgeek/mj65/rev3/keyboard.json
@@ -61,84 +61,6 @@
"animation": "cycle_all"
},
"driver": "is31fl3741",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
- {"x": 208, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 224, "y": 0, "flags": 4},
- {"x": 240, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 255, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 240, "y": 16, "flags": 4},
- {"matrix": [2, 1], "x": 255, "y": 16, "flags": 4},
- {"matrix": [2, 2], "x": 0, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 16, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 32, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 48, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 64, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 80, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 96, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 112, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 128, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 144, "y": 32, "flags": 4},
- {"x": 160, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4},
- {"x": 192, "y": 32, "flags": 4},
- {"matrix": [2, 14], "x": 208, "y": 32, "flags": 4},
- {"x": 0, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 16, "y": 48, "flags": 4},
- {"x": 32, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 48, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 80, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 96, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 112, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 128, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 144, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 160, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 176, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 192, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 208, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 0, "y": 64, "flags": 4},
- {"matrix": [3, 14], "x": 16, "y": 64, "flags": 4},
- {"matrix": [4, 0], "x": 32, "y": 64, "flags": 4},
- {"matrix": [4, 1], "x": 48, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 64, "y": 64, "flags": 4},
- {"x": 80, "y": 64, "flags": 4},
- {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4},
- {"x": 112, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 144, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 160, "y": 64, "flags": 4},
- {"matrix": [4, 11], "x": 176, "y": 64, "flags": 4},
- {"matrix": [4, 12], "x": 192, "y": 64, "flags": 4},
- {"matrix": [4, 13], "x": 208, "y": 64, "flags": 4},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4}
- ],
"led_flush_limit": 26,
"led_process_limit": 4,
"sleep": true
diff --git a/keyboards/melgeek/mj65/rev3/rev3.c b/keyboards/melgeek/mj65/rev3/rev3.c
index a6ef6359c0..0a020fad74 100644
--- a/keyboards/melgeek/mj65/rev3/rev3.c
+++ b/keyboards/melgeek/mj65/rev3/rev3.c
@@ -96,4 +96,28 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, SW3_CS33, SW3_CS32, SW3_CS31}, /* RGB75 */
{0, SW4_CS33, SW4_CS32, SW4_CS31}, /* RGB76 */
};
-#endif
+
+led_config_t g_led_config = {
+ {
+ /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 */
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16 }, /* R0 */
+ { 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 }, /* R1 */
+ { 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, NO_LED, 47 }, /* R2 */
+ { 49, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, NO_LED, 63 }, /* R3 */
+ { 64, 65, 66, NO_LED, NO_LED, 68, NO_LED, NO_LED, NO_LED, 70, 71, 72, 73, 74, 75 }, /* R4 */
+ }, {
+ {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, {224, 0}, {240, 0}, {255, 0},
+ {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, {224, 16}, {240, 16}, {255, 16},
+ {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, {208, 32},
+ {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48},
+ {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {144, 64}, {160, 64}, {176, 64}, {192, 64}, {208, 64}, {224, 64},
+ }, {
+ 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, 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, 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, 4,
+ }
+};
+
+#endif
diff --git a/keyboards/melgeek/mojo68/rev1/keyboard.json b/keyboards/melgeek/mojo68/rev1/keyboard.json
index db868c485a..88f17665b4 100755
--- a/keyboards/melgeek/mojo68/rev1/keyboard.json
+++ b/keyboards/melgeek/mojo68/rev1/keyboard.json
@@ -56,76 +56,6 @@
"animation": "cycle_all"
},
"driver": "is31fl3741",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4},
- {"matrix": [2, 14], "x": 208, "y": 32, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 192, "y": 48, "flags": 4},
- {"matrix": [3, 14], "x": 208, "y": 48, "flags": 4},
- {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4},
- {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4},
- {"matrix": [4, 5], "x": 48, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 64, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 80, "y": 64, "flags": 4},
- {"matrix": [4, 11], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 12], "x": 112, "y": 64, "flags": 4},
- {"matrix": [4, 13], "x": 128, "y": 64, "flags": 4},
- {"matrix": [4, 14], "x": 144, "y": 64, "flags": 4}
- ],
"led_flush_limit": 26,
"led_process_limit": 4,
"sleep": true
diff --git a/keyboards/melgeek/mojo68/rev1/rev1.c b/keyboards/melgeek/mojo68/rev1/rev1.c
index d30a5817a8..af17d96c6d 100755
--- a/keyboards/melgeek/mojo68/rev1/rev1.c
+++ b/keyboards/melgeek/mojo68/rev1/rev1.c
@@ -89,6 +89,29 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, SW5_CS30, SW5_CS29, SW5_CS28}, /* RGB68 */
};
+led_config_t g_led_config = {
+ {
+ /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14*/
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, /* R0 */
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, /* R1 */
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, NO_LED, 43 }, /* R2 */
+ { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, NO_LED, 57 }, /* R3 */
+ { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 }, /* R4 */
+ }, {
+ {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, {224, 0},
+ {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, {224, 16},
+ {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, {208, 32},
+ {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48},
+ {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64},
+ }, {
+ 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, 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, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ }
+};
+
const is31fl3741_led_t g_is31_indicator_leds[3] = {
{0, SW1_CS6, SW1_CS5, SW1_CS4}, /* RGB124 */
{0, SW2_CS6, SW2_CS5, SW2_CS4}, /* RGB125 */
diff --git a/keyboards/melgeek/mojo75/rev1/keyboard.json b/keyboards/melgeek/mojo75/rev1/keyboard.json
index 339609c8f0..0b0a722c90 100644
--- a/keyboards/melgeek/mojo75/rev1/keyboard.json
+++ b/keyboards/melgeek/mojo75/rev1/keyboard.json
@@ -61,100 +61,6 @@
"animation": "cycle_all"
},
"driver": "is31fl3741",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4},
- {"matrix": [0, 15], "x": 240, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4},
- {"x": 208, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 224, "y": 16, "flags": 4},
- {"x": 240, "y": 16, "flags": 4},
- {"matrix": [1, 15], "x": 255, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 208, "y": 32, "flags": 4},
- {"matrix": [2, 15], "x": 224, "y": 32, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4},
- {"x": 192, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 208, "y": 48, "flags": 4},
- {"x": 224, "y": 48, "flags": 4},
- {"matrix": [3, 15], "x": 240, "y": 48, "flags": 4},
- {"x": 0, "y": 64, "flags": 4},
- {"matrix": [4, 0], "x": 16, "y": 64, "flags": 4},
- {"x": 32, "y": 64, "flags": 4},
- {"matrix": [4, 1], "x": 48, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 64, "y": 64, "flags": 4},
- {"matrix": [4, 3], "x": 80, "y": 64, "flags": 4},
- {"matrix": [4, 4], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 5], "x": 112, "y": 64, "flags": 4},
- {"matrix": [4, 6], "x": 128, "y": 64, "flags": 4},
- {"matrix": [4, 7], "x": 144, "y": 64, "flags": 4},
- {"matrix": [4, 8], "x": 160, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 176, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 192, "y": 64, "flags": 4},
- {"matrix": [4, 12], "x": 208, "y": 64, "flags": 4},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4},
- {"matrix": [4, 15], "x": 240, "y": 64, "flags": 4},
- {"matrix": [5, 0], "x": 0, "y": 80, "flags": 4},
- {"matrix": [5, 1], "x": 16, "y": 80, "flags": 4},
- {"matrix": [5, 2], "x": 32, "y": 80, "flags": 4},
- {"x": 48, "y": 80, "flags": 4},
- {"matrix": [5, 5], "x": 64, "y": 80, "flags": 4},
- {"x": 80, "y": 80, "flags": 4},
- {"matrix": [5, 9], "x": 96, "y": 80, "flags": 4},
- {"matrix": [5, 10], "x": 112, "y": 80, "flags": 4},
- {"matrix": [5, 12], "x": 128, "y": 80, "flags": 4},
- {"matrix": [5, 13], "x": 144, "y": 80, "flags": 4},
- {"matrix": [5, 14], "x": 160, "y": 80, "flags": 4},
- {"matrix": [5, 15], "x": 176, "y": 80, "flags": 4}
- ],
"led_flush_limit": 26,
"led_process_limit": 4,
"sleep": true
diff --git a/keyboards/melgeek/mojo75/rev1/rev1.c b/keyboards/melgeek/mojo75/rev1/rev1.c
index 93f8345604..60bb6eb850 100644
--- a/keyboards/melgeek/mojo75/rev1/rev1.c
+++ b/keyboards/melgeek/mojo75/rev1/rev1.c
@@ -112,4 +112,31 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, SW5_CS39, SW5_CS38, SW5_CS37}, /* RGB92 */
{0, SW6_CS39, SW6_CS38, SW6_CS37}, /* RGB90 */
};
+
+led_config_t g_led_config = {
+ {
+ /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 */
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, /* R0 */
+ { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, NO_LED, 32 }, /* R1 */
+ { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, NO_LED, 47 }, /* R2 */
+ { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, NO_LED, 61, NO_LED, 63 }, /* R3 */
+ { 65, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, NO_LED, 77, NO_LED, 78, 79 }, /* R4 */
+ { 80, 81, 82, NO_LED, NO_LED, 84, NO_LED, NO_LED, NO_LED, 86, 87, NO_LED, 88, 89, 90, 91 }, /* R5 */
+ }, {
+ {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, {224, 0}, {240, 0},
+ {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, {224, 16}, {240, 16}, {255, 16},
+ {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, {208, 32}, {224, 32},
+ {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, {224, 48}, {240, 48},
+ {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, {160, 64}, {176, 64}, {192, 64}, {208, 64}, {224, 64}, {240, 64},
+ {0, 80}, {16, 80}, {32, 80}, {48, 80}, {64, 80}, {80, 80}, {96, 80}, {112, 80}, {128, 80}, {144, 80}, {160, 80}, {176, 80},
+ }, {
+ 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, 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, 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, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ }
+};
+
#endif
diff --git a/keyboards/melgeek/tegic/rev1/keyboard.json b/keyboards/melgeek/tegic/rev1/keyboard.json
index 532792d27e..5a1ca4f350 100644
--- a/keyboards/melgeek/tegic/rev1/keyboard.json
+++ b/keyboards/melgeek/tegic/rev1/keyboard.json
@@ -67,99 +67,6 @@
"animation": "cycle_all"
},
"driver": "is31fl3741",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 12, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 24, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 36, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 72, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 84, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 108, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 132, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 156, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 168, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4},
- {"matrix": [1, 1], "x": 12, "y": 12, "flags": 4},
- {"matrix": [1, 2], "x": 24, "y": 12, "flags": 4},
- {"matrix": [1, 3], "x": 36, "y": 12, "flags": 4},
- {"matrix": [1, 4], "x": 48, "y": 12, "flags": 4},
- {"matrix": [1, 5], "x": 60, "y": 12, "flags": 4},
- {"matrix": [1, 6], "x": 72, "y": 12, "flags": 4},
- {"matrix": [1, 7], "x": 84, "y": 12, "flags": 4},
- {"matrix": [1, 8], "x": 96, "y": 12, "flags": 4},
- {"matrix": [1, 9], "x": 108, "y": 12, "flags": 4},
- {"matrix": [1, 10], "x": 120, "y": 12, "flags": 4},
- {"matrix": [1, 11], "x": 132, "y": 12, "flags": 4},
- {"matrix": [1, 12], "x": 144, "y": 12, "flags": 4},
- {"x": 156, "y": 12, "flags": 4},
- {"matrix": [1, 13], "x": 168, "y": 12, "flags": 4},
- {"x": 180, "y": 12, "flags": 4},
- {"matrix": [1, 14], "x": 192, "y": 12, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 24, "flags": 4},
- {"matrix": [2, 1], "x": 12, "y": 24, "flags": 4},
- {"matrix": [2, 2], "x": 24, "y": 24, "flags": 4},
- {"matrix": [2, 3], "x": 36, "y": 24, "flags": 4},
- {"matrix": [2, 4], "x": 48, "y": 24, "flags": 4},
- {"matrix": [2, 5], "x": 60, "y": 24, "flags": 4},
- {"matrix": [2, 6], "x": 72, "y": 24, "flags": 4},
- {"matrix": [2, 7], "x": 84, "y": 24, "flags": 4},
- {"matrix": [2, 8], "x": 96, "y": 24, "flags": 4},
- {"matrix": [2, 9], "x": 108, "y": 24, "flags": 4},
- {"matrix": [2, 10], "x": 120, "y": 24, "flags": 4},
- {"matrix": [2, 11], "x": 132, "y": 24, "flags": 4},
- {"matrix": [2, 12], "x": 144, "y": 24, "flags": 4},
- {"matrix": [2, 13], "x": 156, "y": 24, "flags": 4},
- {"matrix": [2, 14], "x": 168, "y": 24, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 36, "flags": 4},
- {"matrix": [3, 1], "x": 12, "y": 36, "flags": 4},
- {"matrix": [3, 2], "x": 24, "y": 36, "flags": 4},
- {"matrix": [3, 3], "x": 36, "y": 36, "flags": 4},
- {"matrix": [3, 4], "x": 48, "y": 36, "flags": 4},
- {"matrix": [3, 5], "x": 60, "y": 36, "flags": 4},
- {"matrix": [3, 6], "x": 72, "y": 36, "flags": 4},
- {"matrix": [3, 7], "x": 84, "y": 36, "flags": 4},
- {"matrix": [3, 8], "x": 96, "y": 36, "flags": 4},
- {"matrix": [3, 9], "x": 108, "y": 36, "flags": 4},
- {"matrix": [3, 10], "x": 120, "y": 36, "flags": 4},
- {"matrix": [3, 11], "x": 132, "y": 36, "flags": 4},
- {"x": 144, "y": 36, "flags": 4},
- {"matrix": [3, 12], "x": 156, "y": 36, "flags": 4},
- {"x": 168, "y": 36, "flags": 4},
- {"x": 0, "y": 48, "flags": 4},
- {"matrix": [4, 0], "x": 12, "y": 48, "flags": 4},
- {"x": 24, "y": 48, "flags": 4},
- {"matrix": [4, 1], "x": 36, "y": 48, "flags": 4},
- {"matrix": [4, 2], "x": 48, "y": 48, "flags": 4},
- {"matrix": [4, 3], "x": 60, "y": 48, "flags": 4},
- {"matrix": [4, 4], "x": 72, "y": 48, "flags": 4},
- {"matrix": [4, 5], "x": 84, "y": 48, "flags": 4},
- {"matrix": [4, 6], "x": 96, "y": 48, "flags": 4},
- {"matrix": [4, 7], "x": 108, "y": 48, "flags": 4},
- {"matrix": [4, 8], "x": 120, "y": 48, "flags": 4},
- {"matrix": [4, 9], "x": 132, "y": 48, "flags": 4},
- {"matrix": [4, 10], "x": 144, "y": 48, "flags": 4},
- {"x": 156, "y": 48, "flags": 4},
- {"matrix": [4, 11], "x": 168, "y": 48, "flags": 4},
- {"x": 180, "y": 48, "flags": 4},
- {"matrix": [4, 13], "x": 192, "y": 48, "flags": 4},
- {"matrix": [5, 0], "x": 0, "y": 60, "flags": 4},
- {"matrix": [5, 1], "x": 12, "y": 60, "flags": 4},
- {"matrix": [5, 2], "x": 24, "y": 60, "flags": 4},
- {"x": 36, "y": 60, "flags": 4},
- {"matrix": [5, 5], "x": 48, "y": 60, "flags": 4},
- {"x": 60, "y": 60, "flags": 4},
- {"matrix": [5, 9], "x": 72, "y": 60, "flags": 4},
- {"matrix": [5, 10], "x": 84, "y": 60, "flags": 4},
- {"matrix": [5, 11], "x": 96, "y": 60, "flags": 4},
- {"matrix": [5, 12], "x": 108, "y": 60, "flags": 4},
- {"matrix": [5, 13], "x": 120, "y": 60, "flags": 4},
- {"matrix": [5, 14], "x": 132, "y": 60, "flags": 4}
- ],
"led_flush_limit": 26,
"led_process_limit": 4,
"sleep": true
diff --git a/keyboards/melgeek/tegic/rev1/rev1.c b/keyboards/melgeek/tegic/rev1/rev1.c
index 3b4e335c05..b087264919 100755
--- a/keyboards/melgeek/tegic/rev1/rev1.c
+++ b/keyboards/melgeek/tegic/rev1/rev1.c
@@ -117,4 +117,29 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, SW9_CS36, SW9_CS35, SW9_CS34}, /* RGB143 */
{0, SW1_CS39, SW1_CS38, SW1_CS37}, /* RGB149 */
};
+led_config_t g_led_config = {
+ {
+ /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 */
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, /* R0 */
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 31 }, /* R1 */
+ { 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46 }, /* R2 */
+ { 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, NO_LED, NO_LED }, /* R3 */
+ { 63, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, NO_LED, 78, NO_LED }, /* R4 */
+ { 79, 80, 81, NO_LED, NO_LED, 83, NO_LED, NO_LED, NO_LED, 85, 86, 87, 88, 89, 90 }, /* R5 */
+ }, {
+ {0, 0}, {12, 0}, {24, 0}, {36, 0}, {48, 0}, {60, 0}, {72, 0}, {84, 0}, {96, 0}, {108, 0}, {120, 0}, {132, 0}, {144, 0}, {156, 0}, {168, 0}, //15
+ {0, 12}, {12, 12}, {24, 12}, {36, 12}, {48, 12}, {60, 12}, {72, 12}, {84, 12}, {96, 12}, {108, 12}, {120, 12}, {132, 12}, {144, 12}, {156, 12}, {168, 12}, {180, 12}, {192, 12}, //17
+ {0, 24}, {12, 24}, {24, 24}, {36, 24}, {48, 24}, {60, 24}, {72, 24}, {84, 24}, {96, 24}, {108, 24}, {120, 24}, {132, 24}, {144, 24}, {156, 24}, {168, 24}, //15
+ {0, 36}, {12, 36}, {24, 36}, {36, 36}, {48, 36}, {60, 36}, {72, 36}, {84, 36}, {96, 36}, {108, 36}, {120, 36}, {132, 36}, {144, 36}, {156, 36}, {168, 36}, //15
+ {0, 48}, {12, 48}, {24, 48}, {36, 48}, {48, 48}, {60, 48}, {72, 48}, {84, 48}, {96, 48}, {108, 48}, {120, 48}, {132, 48}, {144, 48}, {156, 48}, {168, 48}, {180, 48}, {192, 48}, //17
+ {0, 60}, {12, 60}, {24, 60}, {36, 60}, {48, 60}, {60, 60}, {72, 60}, {84, 60}, {96, 60}, {108, 60}, {120, 60}, {132, 60}, //12
+ }, {
+ 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, 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, 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, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ }
+};
#endif
diff --git a/keyboards/melgeek/z70ultra/rev1/keyboard.json b/keyboards/melgeek/z70ultra/rev1/keyboard.json
index 145f5dffdf..5a8868265b 100644
--- a/keyboards/melgeek/z70ultra/rev1/keyboard.json
+++ b/keyboards/melgeek/z70ultra/rev1/keyboard.json
@@ -61,77 +61,6 @@
"animation": "cycle_all"
},
"driver": "is31fl3741",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4},
- {"matrix": [5, 6], "x": 0, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 16, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 32, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 48, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 64, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 80, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 96, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 144, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 160, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 176, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 192, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 208, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 0, "y": 32, "flags": 4},
- {"matrix": [5, 7], "x": 16, "y": 32, "flags": 4},
- {"matrix": [2, 0], "x": 32, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 48, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 64, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 80, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 96, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 112, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 128, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 144, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 160, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 192, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 0, "y": 48, "flags": 4},
- {"matrix": [2, 13], "x": 16, "y": 48, "flags": 4},
- {"matrix": [5, 9], "x": 32, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 48, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 80, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 96, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 112, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 128, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 144, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 160, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 176, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 0, "y": 64, "flags": 4},
- {"matrix": [3, 11], "x": 16, "y": 64, "flags": 4},
- {"matrix": [3, 12], "x": 32, "y": 64, "flags": 4},
- {"matrix": [5, 8], "x": 48, "y": 64, "flags": 4},
- {"matrix": [5, 10], "x": 64, "y": 64, "flags": 4},
- {"matrix": [4, 0], "x": 80, "y": 64, "flags": 4},
- {"matrix": [4, 1], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 112, "y": 64, "flags": 4},
- {"matrix": [4, 4], "x": 0, "y": 80, "flags": 4},
- {"matrix": [4, 5], "x": 16, "y": 80, "flags": 4},
- {"matrix": [4, 6], "x": 32, "y": 80, "flags": 4},
- {"matrix": [4, 9], "x": 48, "y": 80, "flags": 4},
- {"matrix": [4, 10], "x": 64, "y": 80, "flags": 4},
- {"matrix": [5, 11], "x": 80, "y": 80, "flags": 4},
- {"matrix": [5, 12], "x": 96, "y": 80, "flags": 4},
- {"matrix": [5, 13], "x": 112, "y": 80, "flags": 4}
- ],
"led_flush_limit": 26,
"led_process_limit": 4,
"sleep": true
diff --git a/keyboards/melgeek/z70ultra/rev1/rev1.c b/keyboards/melgeek/z70ultra/rev1/rev1.c
index 7eaf839763..1cb46df643 100644
--- a/keyboards/melgeek/z70ultra/rev1/rev1.c
+++ b/keyboards/melgeek/z70ultra/rev1/rev1.c
@@ -91,6 +91,31 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, SW4_CS37, SW4_CS39, SW4_CS38}, /* RGB22 */
{0, SW9_CS37, SW9_CS39, SW9_CS38}, /* RGB27 */
};
+led_config_t g_led_config = {
+ {
+ /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 */
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, }, /* R0 */
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, }, /* R1 */
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, }, /* R2 */
+ { 44, NO_LED, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, }, /* R3 */
+ { 58, 59, 60, NO_LED, 61, 62, 63, NO_LED, NO_LED, 64, 65, NO_LED, NO_LED, NO_LED, }, /* R4 */
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 14, 29, 56, 43, 57, 66, 67, 68, }, /* R5 */
+ }, {
+ {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0},
+ {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16},
+ {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32},
+ {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48},
+ {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64},
+ {0, 80}, {16, 80}, {32, 80}, {48, 80}, {64, 80}, {80, 80}, {96, 80}, {112, 80},
+ }, {
+ 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, 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, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4,
+ }
+};
const is31fl3741_led_t g_is31_indicator_leds[6] = {
{0, SW1_CS5, SW1_CS3, SW1_CS4}, /* RGB71 */
diff --git a/keyboards/merge/um70/keyboard.json b/keyboards/merge/um70/keyboard.json
index 0499ef5060..7ebb61f7fe 100644
--- a/keyboards/merge/um70/keyboard.json
+++ b/keyboards/merge/um70/keyboard.json
@@ -38,91 +38,6 @@
},
"rgb_matrix": {
"driver": "ws2812",
- "layout": [
- {"x": 224, "y": 0, "flags": 2},
- {"x": 224, "y": 13, "flags": 2},
- {"x": 224, "y": 26, "flags": 2},
- {"x": 148, "y": 39, "flags": 2},
- {"x": 185, "y": 52, "flags": 2},
- {"x": 224, "y": 64, "flags": 2},
- {"matrix": [0, 0], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 192, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 224, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 32, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 64, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 96, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 160, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 192, "y": 16, "flags": 4},
- {"matrix": [4, 5], "x": 0, "y": 32, "flags": 4},
- {"matrix": [2, 0], "x": 32, "y": 32, "flags": 1},
- {"matrix": [2, 1], "x": 64, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 96, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 128, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 160, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 192, "y": 32, "flags": 4},
- {"matrix": [4, 6], "x": 0, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 32, "y": 48, "flags": 1},
- {"matrix": [3, 1], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 96, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 128, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 160, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 192, "y": 48, "flags": 4},
- {"matrix": [4, 7], "x": 0, "y": 64, "flags": 4},
- {"matrix": [4, 0], "x": 32, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 64, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 96, "y": 64, "flags": 1},
- {"matrix": [4, 3], "x": 128, "y": 64, "flags": 1},
- {"matrix": [4, 4], "x": 160, "y": 64, "flags": 1},
- {"x": 224, "y": 0, "flags": 2},
- {"x": 224, "y": 13, "flags": 2},
- {"x": 224, "y": 26, "flags": 2},
- {"x": 148, "y": 39, "flags": 2},
- {"x": 185, "y": 52, "flags": 2},
- {"x": 224, "y": 64, "flags": 2},
- {"matrix": [5, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [5, 1], "x": 32, "y": 0, "flags": 4},
- {"matrix": [5, 2], "x": 64, "y": 0, "flags": 4},
- {"matrix": [5, 3], "x": 96, "y": 0, "flags": 4},
- {"matrix": [5, 4], "x": 128, "y": 0, "flags": 4},
- {"matrix": [5, 5], "x": 160, "y": 0, "flags": 4},
- {"matrix": [5, 6], "x": 192, "y": 0, "flags": 4},
- {"matrix": [5, 7], "x": 224, "y": 0, "flags": 1},
- {"matrix": [6, 0], "x": 0, "y": 16, "flags": 4},
- {"matrix": [6, 1], "x": 32, "y": 16, "flags": 4},
- {"matrix": [6, 2], "x": 64, "y": 16, "flags": 4},
- {"matrix": [6, 3], "x": 96, "y": 16, "flags": 4},
- {"matrix": [6, 4], "x": 128, "y": 16, "flags": 4},
- {"matrix": [6, 5], "x": 160, "y": 16, "flags": 4},
- {"matrix": [6, 6], "x": 192, "y": 16, "flags": 4},
- {"matrix": [6, 7], "x": 223, "y": 16, "flags": 1},
- {"matrix": [8, 7], "x": 224, "y": 16, "flags": 4},
- {"matrix": [7, 0], "x": 0, "y": 32, "flags": 4},
- {"matrix": [7, 1], "x": 32, "y": 32, "flags": 4},
- {"matrix": [7, 2], "x": 64, "y": 32, "flags": 4},
- {"matrix": [7, 3], "x": 96, "y": 32, "flags": 4},
- {"matrix": [7, 4], "x": 128, "y": 32, "flags": 4},
- {"matrix": [7, 5], "x": 160, "y": 32, "flags": 4},
- {"matrix": [7, 6], "x": 192, "y": 32, "flags": 1},
- {"matrix": [9, 7], "x": 223, "y": 32, "flags": 4},
- {"matrix": [8, 0], "x": 0, "y": 48, "flags": 4},
- {"matrix": [8, 1], "x": 32, "y": 48, "flags": 4},
- {"matrix": [8, 2], "x": 64, "y": 48, "flags": 4},
- {"matrix": [8, 3], "x": 96, "y": 48, "flags": 4},
- {"matrix": [8, 4], "x": 128, "y": 48, "flags": 4},
- {"matrix": [8, 5], "x": 160, "y": 48, "flags": 1},
- {"matrix": [8, 6], "x": 192, "y": 48, "flags": 4},
- {"matrix": [9, 0], "x": 0, "y": 46, "flags": 1},
- {"matrix": [9, 1], "x": 32, "y": 46, "flags": 1},
- {"matrix": [9, 2], "x": 64, "y": 64, "flags": 1},
- {"matrix": [9, 3], "x": 96, "y": 64, "flags": 4},
- {"matrix": [9, 4], "x": 128, "y": 64, "flags": 4},
- {"matrix": [9, 5], "x": 160, "y": 64, "flags": 4}
- ],
"split_count": [39, 44]
},
"rgblight": {
diff --git a/keyboards/merge/um70/um70.c b/keyboards/merge/um70/um70.c
new file mode 100644
index 0000000000..b63fcdbedd
--- /dev/null
+++ b/keyboards/merge/um70/um70.c
@@ -0,0 +1,77 @@
+/* Copyright 2021 duoshock
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+/*
+ Underglow Underglow 13,14 = split bksp, 14 = 2u bksp
+ 07 08 09 10 11 12 13 01 01 07 08 09 10 11 12 13 14
+ 14 15 16 17 18 19 02 02 15 16 17 18 19 20 21 22 23
+20 21 22 23 24 25 26 03 03 24 25 26 27 28 29 30 31
+27 28 29 30 31 32 33 04 04 32 33 34 35 36 37 38
+34 35 36 37 38 39 05 05 39 40 41 42 43 44
+ 06 06
+*/
+
+#define XX NO_LED
+
+led_config_t g_led_config = { {
+ { 6, 7, 8, 9, 10, 11, 12, XX },
+ { 13, 14, 15, 16, 17, 18, XX, XX },
+ { 20, 21, 22, 23, 24, 25, XX, XX },
+ { 27, 28, 29, 30, 31, 32, XX, XX },
+ { 34, 35, 36, 37, 38, 19, 26, 33 },
+
+ { 45, 46, 47, 48, 49, 50, 51, 52 },
+ { 53, 54, 55, 56, 57, 58, 59, 60 },
+ { 62, 63, 64, 65, 66, 67, 68, XX },
+ { 70, 71, 72, 73, 74, 75, 76, 61 },
+ { 77, 78, 79, 80, 81, 82, XX, 69 },
+}, {
+ { 224, 0 }, { 224, 13 }, { 224, 26 }, { 148, 39 }, { 185, 52 }, { 224, 64 },
+
+ { 32, 0 }, { 64, 0 }, { 96, 0 }, { 128, 0 }, { 160, 0 }, { 192, 0 }, { 224, 0 },
+ { 32, 16 }, { 64, 16 }, { 96, 16 }, { 128, 16 }, { 160, 16 }, { 192, 16 },
+ { 0, 32 }, { 32, 32 }, { 64, 32 }, { 96, 32 }, { 128, 32 }, { 160, 32 }, { 192, 32 },
+ { 0, 48 }, { 32, 48 }, { 64, 48 }, { 96, 48 }, { 128, 48 }, { 160, 48 }, { 192, 48 },
+ { 0, 64 }, { 32, 64 }, { 64, 64 }, { 96, 64 }, { 128, 64 }, { 160, 64 },
+
+ { 224, 0 }, { 224, 13 }, { 224, 26 }, { 148, 39 }, { 185, 52 }, { 224, 64 },
+
+ { 0, 0 }, { 32, 0 }, { 64, 0 }, { 96, 0 }, { 128, 0 }, { 160, 0 }, { 192, 0 }, { 224, 0 },
+ { 0, 16 }, { 32, 16 }, { 64, 16 }, { 96, 16 }, { 128, 16 }, { 160, 16 }, { 192, 16 }, { 223, 16 }, { 224, 16 },
+ { 0, 32 }, { 32, 32 }, { 64, 32 }, { 96, 32 }, { 128, 32 }, { 160, 32 }, { 192, 32 }, { 223, 32 },
+ { 0, 48 }, { 32, 48 }, { 64, 48 }, { 96, 48 }, { 128, 48 }, { 160, 48 }, { 192, 48 },
+ { 0, 46 }, { 32, 46 }, { 64, 64 }, { 96, 64 }, { 128, 64 }, { 160, 64 }
+
+}, {
+ 2, 2, 2, 2, 2, 2,
+ 4, 4, 4, 4, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4,
+ 4, 1, 4, 4, 4, 4, 4,
+ 4, 1, 4, 4, 4, 4, 4,
+ 4, 1, 1, 1, 1, 1,
+
+ 2, 2, 2, 2, 2, 2,
+ 4, 4, 4, 4, 4, 4, 4, 1,
+ 4, 4, 4, 4, 4, 4, 4, 1, 4,
+ 4, 4, 4, 4, 4, 4, 1, 4,
+ 4, 4, 4, 4, 4, 1, 4,
+ 1, 1, 1, 4, 4, 4
+} };
+
+#endif
\ No newline at end of file
diff --git a/keyboards/miller/gm862/gm862.c b/keyboards/miller/gm862/gm862.c
index ae275479ba..534ef6cdc6 100644
--- a/keyboards/miller/gm862/gm862.c
+++ b/keyboards/miller/gm862/gm862.c
@@ -64,6 +64,26 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
{0, SW11_CS13, SW10_CS13, SW12_CS13},
{0, SW8_CS14, SW7_CS14, SW9_CS14},
};
+
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 },
+ { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 },
+ { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40 },
+ { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, NO_LED,NO_LED, 52 },
+ { 53, 54, 55, NO_LED, NO_LED, 56, NO_LED, NO_LED, NO_LED, 57, 58, NO_LED,59, 60 }
+}, {
+ { 0, 0 }, { 16, 0 }, { 32, 0 }, { 48, 0 }, { 64, 0 }, { 80, 0 }, { 96, 0 }, { 112, 0 }, { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 216, 0 },
+ { 4, 16 }, { 24, 16 }, { 40, 16 }, { 56, 16 }, { 72, 16 }, { 88, 16 }, { 104, 16 }, { 120, 16 }, { 136, 16 }, { 152, 16 }, { 168, 16 }, { 184, 16 }, { 200, 16 }, { 220, 16 },
+ { 6, 32 }, { 28, 32 }, { 44, 32 }, { 60, 32 }, { 76, 32 }, { 92, 32 }, { 108, 32 }, { 124, 32 }, { 140, 32 }, { 156, 32 }, { 172, 32 }, { 188, 32 }, { 204, 32 },
+ { 10, 48 }, { 20, 48 }, { 52, 48 }, { 68, 48 }, { 84, 48 }, { 100, 48 }, { 116, 48 }, { 132, 48 }, { 148, 48 }, { 164, 48 }, { 180, 48 }, { 210, 48 },
+ { 2, 64 }, { 22, 64 }, { 42, 64 }, { 102, 64 }, { 162, 64 }, { 182, 64 }, { 202, 64 }, { 222, 64 },
+}, {
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 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, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1
+} };
#endif
bool rgb_matrix_indicators_kb(void) {
diff --git a/keyboards/miller/gm862/keyboard.json b/keyboards/miller/gm862/keyboard.json
index 15c6eb46ae..db08a580a9 100644
--- a/keyboards/miller/gm862/keyboard.json
+++ b/keyboards/miller/gm862/keyboard.json
@@ -39,69 +39,6 @@
"solid_reactive": true
},
"driver": "is31fl3733",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 204, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1},
- {"matrix": [3, 1], "x": 20, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 68, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 84, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 100, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 116, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 132, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 148, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 164, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 180, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 210, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 162, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 182, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 202, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 222, "y": 64, "flags": 1}
- ],
"sleep": true
},
"features": {
diff --git a/keyboards/mkbd65/README.md b/keyboards/mkbd65/README.md
new file mode 100644
index 0000000000..817bde28b3
--- /dev/null
+++ b/keyboards/mkbd65/README.md
@@ -0,0 +1,41 @@
+
+
+# mkbd65
+
+A mobile keyboard addon for modern smartphones.
+
+- Keyboard Maintainer: [XenGi](https://xengi.de)
+- Hardware Supported: [mkbd65 PCB](https://gitlab.com/mkbd65/pcb)
+- Hardware Availability: -
+
+Flashing this keyboard with `en-us-intl` layout (after setting up your build environment):
+
+```
+qmk flash -kb mkbd65:rev1 -km en-us-intl
+```
+
+Available layouts:
+
+ - en-us-intl (ansi)
+ - de (iso)
+
+You can find community provided layouts here: https://gitlab.com/mkbd65/community
+
+See 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).
+
+---
+
+Copyright 2023 XenGi mkbd65@xengi.de @XenGi
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
diff --git a/keyboards/mkbd65/config.h b/keyboards/mkbd65/config.h
new file mode 100644
index 0000000000..4b3907c132
--- /dev/null
+++ b/keyboards/mkbd65/config.h
@@ -0,0 +1,12 @@
+// Copyright 2023 XenGi
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+// optimize firmware
+#undef LOCKING_SUPPORT_ENABLE
+#undef LOCKING_RESYNC_ENABLE
+#define LAYER_STATE_8BIT
+
+// disable features to save on code size
+#define NO_ACTION_TAPPING
+#define NO_ACTION_ONESHOT
+
diff --git a/keyboards/mkbd65/keymaps/ansi/README.md b/keyboards/mkbd65/keymaps/ansi/README.md
new file mode 100644
index 0000000000..f68aaf41fc
--- /dev/null
+++ b/keyboards/mkbd65/keymaps/ansi/README.md
@@ -0,0 +1,59 @@
+# The English US International keymap for mkbd65 rev0 by XenGi
+
+This is the default layout for the mkbd65 keyboard. You can use it as a reference for other layouts.
+
+It is based on the "English (intl., with AltGr dead keys)" layout.
+
+This is the key matrix (no label means the key from layer 0 will be used):
+
+```
+0: no mod
+╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗
+║ Esc║ 1 ║ 2 ║ 3 ║ 4 ║ 5 ║ 6 ║ 7 ║ 8 ║ 9 ║ 0 ║Backspace║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣
+║ q ║ w ║ e ║ r ║ t ║ y ║ u ║ i ║ o ║ p ║ [ ║ ] ║ \ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣
+║ a ║ s ║ d ║ f ║ g ║ h ║ j ║ k ║ l ║ ; ║ ' ║ Return ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣
+║ z ║ x ║ c ║ v ║ b ║ n ║ m ║ , ║ . ║ / ║ ▲ ║ Shift ║
+╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣
+║Ctrl║ Fn ║Shft║AltG║ Space ║ - ║ = ║ ◀ ║ ▼ ║ ▶ ║Ctrl║
+╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝
+1: mod shift
+╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗
+║ ~ ║ ! ║ @ ║ # ║ $ ║ % ║ ^ ║ & ║ * ║ ( ║ ) ║ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣
+║ Q ║ W ║ E ║ R ║ T ║ Y ║ U ║ I ║ O ║ P ║ { ║ } ║ | ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣
+║ A ║ S ║ D ║ F ║ G ║ H ║ J ║ K ║ L ║ : ║ " ║ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣
+║ Z ║ X ║ C ║ V ║ B ║ N ║ M ║ < ║ > ║ ? ║ ║░░░░░░░░░║
+╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣
+║ ║ ║░░░░║ ║ ║ _ ║ + ║ ║ ║ ║ ║
+╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝
+2: mod altgr
+╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗
+║ ║ ¹ ║ ² ║ ³ ║ ║ € ║ ║ ║ ║ ║ ║ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣
+║ ä ║ ║ ║ ║ ║ ü ║ ║ ║ ║ ö ║ « ║ » ║ ¬ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣
+║ ║ ß ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣
+║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ¿ ║ ║ ║
+╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣
+║ ║ ║ ║░░░░║ ║ ║ ║ ║ ║ ║ ║
+╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝
+3: mod fn
+╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗
+║ Esc║ F1 ║ F2 ║ F3 ║ F4 ║ F5 ║ F6 ║ F7 ║ F8 ║ F9 ║ F10║ Delete ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣
+║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ F11║ F12║ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣
+║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ` ║ Super ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣
+║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║PgUp║ ║
+╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣
+║ ║░░░░║ ║ ║ Tab ║ ║ ║Pos1║PgDn║ End║ ║
+╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝
+```
+
diff --git a/keyboards/mkbd65/keymaps/ansi/keymap.c b/keyboards/mkbd65/keymaps/ansi/keymap.c
new file mode 100644
index 0000000000..b023feab91
--- /dev/null
+++ b/keyboards/mkbd65/keymaps/ansi/keymap.c
@@ -0,0 +1,23 @@
+// Copyright 2023 XenGi (@XenGi)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+#include "quantum.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_ansi( /* Base layer */
+ QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ 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_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT,
+ KC_LCTL, MO(1), KC_LSFT, OSM(MOD_RALT), KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL
+ ),
+
+ [1] = LAYOUT_ansi( /* Function layer */
+ QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, KC_APP,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_GRV, KC_LGUI,
+ _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PGUP, _______,
+ _______, _______, _______, _______, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______
+ )
+};
diff --git a/keyboards/mkbd65/keymaps/de/README.md b/keyboards/mkbd65/keymaps/de/README.md
new file mode 100644
index 0000000000..c37325f914
--- /dev/null
+++ b/keyboards/mkbd65/keymaps/de/README.md
@@ -0,0 +1,57 @@
+# The German keymap for mkbd65 rev1 by XenGi
+
+This is the german layout for the mkbd65 keyboard. You can use it as a reference for other ISO based layouts.
+
+This is the key matrix (no label means the key from layer 0 will be used):
+
+```
+0: no mod
+╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗
+║ Esc║ 1 ║ 2 ║ 3 ║ 4 ║ 5 ║ 6 ║ 7 ║ 8 ║ 9 ║ 0 ║Backspace║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣
+║ q ║ w ║ e ║ r ║ t ║ z ║ u ║ i ║ o ║ p ║ ü ║ + ║ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ Ret║
+║ a ║ s ║ d ║ f ║ g ║ h ║ j ║ k ║ l ║ ö ║ ä ║ # ║ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣
+║ y ║ x ║ c ║ v ║ b ║ n ║ m ║ , ║ . ║ - ║ ▲ ║ < ║Shft║
+╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╬════╣
+║Ctrl║ Fn ║Shft║AltG║ Space ║ ß ║ ´ ║ ◀ ║ ▼ ║ ▶ ║Ctrl║
+╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝
+1: mod shift
+╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗
+║ ° ║ ! ║ " ║ § ║ $ ║ % ║ & ║ / ║ ( ║ ) ║ = ║ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣
+║ Q ║ W ║ E ║ R ║ T ║ Y ║ U ║ I ║ O ║ P ║ Ü ║ * ║ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ ║
+║ A ║ S ║ D ║ F ║ G ║ H ║ J ║ K ║ L ║ Ö ║ Ä ║ ' ║ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣
+║ Z ║ X ║ C ║ V ║ B ║ N ║ M ║ ; ║ : ║ _ ║ ║ > ║░░░░║
+╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╬════╣
+║ ║ ║░░░░║ ║ ║ ? ║ ` ║ ║ ║ ║ ║
+╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝
+2: mod altgr
+╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗
+║ ║ ¹ ║ ² ║ ³ ║ ║ ║ ║ { ║ [ ║ ] ║ } ║ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣
+║ @ ║ ║ € ║ ║ ║ ║ ║ ║ ║ ║ ║ ~ ║ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ ║
+║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣
+║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ║ ║ | ║ ║
+╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╬════╣
+║ ║ ║ ║░░░░║ ║ \ ║ ║ ║ ║ ║ ║
+╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝
+3: mod fn
+╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗
+║ Esc║ F1 ║ F2 ║ F3 ║ F4 ║ F5 ║ F6 ║ F7 ║ F8 ║ F9 ║ F10║ Delete ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣
+║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ F11║ F12║ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣Supr║
+║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ^ ║ ║ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣
+║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║PgUp║ ║ ║
+╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╬════╣
+║ ║░░░░║ ║ ║ Tab ║ ║ ║Pos1║PgDn║ End║ ║
+╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝
+```
+
diff --git a/keyboards/mkbd65/keymaps/de/keymap.c b/keyboards/mkbd65/keymaps/de/keymap.c
new file mode 100644
index 0000000000..6ba90e876f
--- /dev/null
+++ b/keyboards/mkbd65/keymaps/de/keymap.c
@@ -0,0 +1,23 @@
+// Copyright 2023 XenGi (@XenGi)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+#include "keymap_german.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT( /* Base layer */
+ QK_GESC, DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, DE_7, DE_8, DE_9, DE_0, KC_BSPC, KC_BSPC,
+ DE_Q, DE_W, DE_E, DE_R, DE_T, DE_Z, DE_U, DE_I, DE_O, DE_P, DE_UDIA, DE_PLUS, KC_ENT,
+ DE_A, DE_S, DE_D, DE_F, DE_G, DE_H, DE_J, DE_K, DE_L, DE_ODIA, DE_ADIA, DE_HASH, KC_ENT,
+ DE_Y, DE_X, DE_C, DE_V, DE_B, DE_N, DE_M, DE_COMM, DE_DOT, DE_MINS, KC_UP, DE_LABK, KC_RSFT,
+ KC_LCTL, MO(1), KC_LSFT, OSM(MOD_RALT), KC_SPC, KC_SPC, KC_SPC, DE_SS, DE_ACUT, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL
+ ),
+
+ [1] = LAYOUT( /* Function layer */
+ QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, KC_DEL,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, KC_APP,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_GRV, KC_LGUI, KC_LGUI,
+ _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PGUP, _______, _______,
+ _______, _______, _______, _______, KC_TAB, KC_TAB, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______
+ )
+};
diff --git a/keyboards/mkbd65/keymaps/en_us_intl/README.md b/keyboards/mkbd65/keymaps/en_us_intl/README.md
new file mode 100644
index 0000000000..f68aaf41fc
--- /dev/null
+++ b/keyboards/mkbd65/keymaps/en_us_intl/README.md
@@ -0,0 +1,59 @@
+# The English US International keymap for mkbd65 rev0 by XenGi
+
+This is the default layout for the mkbd65 keyboard. You can use it as a reference for other layouts.
+
+It is based on the "English (intl., with AltGr dead keys)" layout.
+
+This is the key matrix (no label means the key from layer 0 will be used):
+
+```
+0: no mod
+╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗
+║ Esc║ 1 ║ 2 ║ 3 ║ 4 ║ 5 ║ 6 ║ 7 ║ 8 ║ 9 ║ 0 ║Backspace║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣
+║ q ║ w ║ e ║ r ║ t ║ y ║ u ║ i ║ o ║ p ║ [ ║ ] ║ \ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣
+║ a ║ s ║ d ║ f ║ g ║ h ║ j ║ k ║ l ║ ; ║ ' ║ Return ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣
+║ z ║ x ║ c ║ v ║ b ║ n ║ m ║ , ║ . ║ / ║ ▲ ║ Shift ║
+╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣
+║Ctrl║ Fn ║Shft║AltG║ Space ║ - ║ = ║ ◀ ║ ▼ ║ ▶ ║Ctrl║
+╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝
+1: mod shift
+╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗
+║ ~ ║ ! ║ @ ║ # ║ $ ║ % ║ ^ ║ & ║ * ║ ( ║ ) ║ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣
+║ Q ║ W ║ E ║ R ║ T ║ Y ║ U ║ I ║ O ║ P ║ { ║ } ║ | ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣
+║ A ║ S ║ D ║ F ║ G ║ H ║ J ║ K ║ L ║ : ║ " ║ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣
+║ Z ║ X ║ C ║ V ║ B ║ N ║ M ║ < ║ > ║ ? ║ ║░░░░░░░░░║
+╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣
+║ ║ ║░░░░║ ║ ║ _ ║ + ║ ║ ║ ║ ║
+╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝
+2: mod altgr
+╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗
+║ ║ ¹ ║ ² ║ ³ ║ ║ € ║ ║ ║ ║ ║ ║ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣
+║ ä ║ ║ ║ ║ ║ ü ║ ║ ║ ║ ö ║ « ║ » ║ ¬ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣
+║ ║ ß ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣
+║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ¿ ║ ║ ║
+╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣
+║ ║ ║ ║░░░░║ ║ ║ ║ ║ ║ ║ ║
+╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝
+3: mod fn
+╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗
+║ Esc║ F1 ║ F2 ║ F3 ║ F4 ║ F5 ║ F6 ║ F7 ║ F8 ║ F9 ║ F10║ Delete ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣
+║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ F11║ F12║ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣
+║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ` ║ Super ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣
+║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║PgUp║ ║
+╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣
+║ ║░░░░║ ║ ║ Tab ║ ║ ║Pos1║PgDn║ End║ ║
+╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝
+```
+
diff --git a/keyboards/mkbd65/keymaps/en_us_intl/keymap.c b/keyboards/mkbd65/keymaps/en_us_intl/keymap.c
new file mode 100644
index 0000000000..96d7855ff8
--- /dev/null
+++ b/keyboards/mkbd65/keymaps/en_us_intl/keymap.c
@@ -0,0 +1,22 @@
+// Copyright 2023 XenGi (@XenGi)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_all( /* Base layer */
+ QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_BSPC,
+ 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_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT,
+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, KC_RSFT,
+ KC_LCTL, MO(1), KC_LSFT, OSM(MOD_RALT), KC_SPC, KC_SPC, KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL
+ ),
+
+ [1] = LAYOUT_all( /* Function layer */
+ QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, KC_DEL,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, KC_APP,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_GRV, KC_LGUI, KC_LGUI,
+ _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PGUP, _______, _______,
+ _______, _______, _______, _______, KC_TAB, KC_TAB, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______
+ )
+};
diff --git a/keyboards/mkbd65/keymaps/iso/README.md b/keyboards/mkbd65/keymaps/iso/README.md
new file mode 100644
index 0000000000..9a5f9b176f
--- /dev/null
+++ b/keyboards/mkbd65/keymaps/iso/README.md
@@ -0,0 +1,55 @@
+# The iso-like keymap for mkbd65 rev0
+
+It's actually just ANSI but with an upright `Enter` key.
+
+```
+0: no mod
+╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗
+║ Esc║ 1 ║ 2 ║ 3 ║ 4 ║ 5 ║ 6 ║ 7 ║ 8 ║ 9 ║ 0 ║Backspace║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣
+║ q ║ w ║ e ║ r ║ t ║ y ║ u ║ i ║ o ║ p ║ [ ║ ] ║ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ Ret║
+║ a ║ s ║ d ║ f ║ g ║ h ║ j ║ k ║ l ║ ; ║ ' ║ \ ║ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣
+║ z ║ x ║ c ║ v ║ b ║ n ║ m ║ , ║ . ║ / ║ ▲ ║ Shift ║
+╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣
+║Ctrl║ Fn ║Shft║AltG║ SPACE ║ - ║ = ║ ◀ ║ ▼ ║ ▶ ║Ctrl║
+╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝
+1: mod shift
+╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗
+║ ~ ║ ! ║ @ ║ # ║ $ ║ % ║ ^ ║ & ║ * ║ ( ║ ) ║Backspace║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣
+║ Q ║ W ║ E ║ R ║ T ║ Y ║ U ║ I ║ O ║ P ║ { ║ } ║ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ Ret║
+║ A ║ S ║ D ║ F ║ G ║ H ║ J ║ K ║ L ║ : ║ " ║ | ║ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣
+║ Z ║ X ║ C ║ V ║ B ║ N ║ M ║ < ║ > ║ ? ║ ▲ ║░░░░░░░░░║
+╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣
+║Ctrl║ Fn ║░░░░║AltG║ SPACE ║ _ ║ + ║ ◀ ║ ▼ ║ ▶ ║Ctrl║
+╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝
+2: mod alt
+╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗
+║ ║ ¹ ║ ² ║ ³ ║ ║ € ║ ║ ║ ║ ║ ║Backspace║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣
+║ ä ║ ║ ║ ║ ║ ü ║ ║ ║ ║ ö ║ « ║ » ║ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ Ret║
+║ ║ ß ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ¬ ║ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣
+║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ¿ ║ ▲ ║ Shift ║
+╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣
+║Ctrl║ Fn ║Shft║░░░░║ SPACE ║ ║ ║ ◀ ║ ▼ ║ ▶ ║Ctrl║
+╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝
+3: mod fn
+╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗
+║ Esc║ F1 ║ F2 ║ F3 ║ F4 ║ F5 ║ F6 ║ F7 ║ F8 ║ F9 ║ F10║ Delete ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣
+║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ F11║ F12║ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣Supr║
+║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║
+╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣
+║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║PgUp║ Shift ║
+╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣
+║Ctrl║░░░░║Shft║AltG║ Tab ║ ║ ` ║Pos1║PgDn║ End║Ctrl║
+╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝
+```
+
diff --git a/keyboards/mkbd65/keymaps/iso/keymap.c b/keyboards/mkbd65/keymaps/iso/keymap.c
new file mode 100644
index 0000000000..a7dd99463e
--- /dev/null
+++ b/keyboards/mkbd65/keymaps/iso/keymap.c
@@ -0,0 +1,22 @@
+// Copyright 2023 XenGi (@XenGi)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_iso( /* Base layer */
+ QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ 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_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT,
+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT,
+ KC_LCTL, MO(1), KC_LSFT, OSM(MOD_RALT), KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL
+ ),
+
+ [1] = LAYOUT_iso( /* Function layer */
+ QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_GRV, KC_APP, KC_LGUI,
+ _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PGUP, _______,
+ _______, _______, _______, _______, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______
+ ),
+};
diff --git a/keyboards/mkbd65/mkbd65.png b/keyboards/mkbd65/mkbd65.png
new file mode 100644
index 0000000000..b873771c74
Binary files /dev/null and b/keyboards/mkbd65/mkbd65.png differ
diff --git a/keyboards/mkbd65/rev0/keyboard.json b/keyboards/mkbd65/rev0/keyboard.json
new file mode 100644
index 0000000000..35269aaa5c
--- /dev/null
+++ b/keyboards/mkbd65/rev0/keyboard.json
@@ -0,0 +1,174 @@
+{
+ "manufacturer": "XenGi",
+ "keyboard_name": "mkbd65",
+ "maintainer": "XenGi",
+ "bootloader": "atmel-dfu",
+ "bootloader_instructions": "Press the button marked RESET on the back of the PCB",
+ "bootmagic": {
+ "enabled": true,
+ "matrix": [0, 0]
+ },
+ "build": {
+ "lto": true
+ },
+ "debounce": 5,
+ "diode_direction": "ROW2COL",
+ "encoder": {
+ "enabled": false
+ },
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgb_matrix": false,
+ "rgblight": false
+ },
+ "matrix_pins": {
+ "cols": ["D4", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0"],
+ "rows": ["D5", "D3", "D2", "D1", "D0"]
+ },
+ "processor": "atmega32u4",
+ "split": {
+ "enabled": false
+ },
+ "tags": ["mobile", "65%"],
+ "url": "https://mkbd65.xengi.de",
+ "usb": {
+ "device_version": "0.0.1",
+ "pid": "0x4803",
+ "vid": "0x1209"
+ },
+ "layouts": {
+ "LAYOUT_ansi": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "Backspace", "matrix": [0, 11], "x": 11, "y": 0, "w": 2},
+ {"label": "Q", "matrix": [1, 0], "x": 1, "y": 0},
+ {"label": "W", "matrix": [1, 1], "x": 1, "y": 1},
+ {"label": "E", "matrix": [1, 2], "x": 1, "y": 2},
+ {"label": "R", "matrix": [1, 3], "x": 1, "y": 3},
+ {"label": "T", "matrix": [1, 4], "x": 1, "y": 4},
+ {"label": "Y", "matrix": [1, 5], "x": 1, "y": 5},
+ {"label": "U", "matrix": [1, 6], "x": 1, "y": 6},
+ {"label": "I", "matrix": [1, 7], "x": 1, "y": 7},
+ {"label": "O", "matrix": [1, 8], "x": 1, "y": 8},
+ {"label": "P", "matrix": [1, 9], "x": 1, "y": 9},
+ {"label": "[", "matrix": [1, 10], "x": 1, "y": 10},
+ {"label": "]", "matrix": [1, 11], "x": 1, "y": 11},
+ {"label": "\\", "matrix": [1, 12], "x": 1, "y": 12},
+ {"label": "A", "matrix": [2, 0], "x": 2, "y": 0},
+ {"label": "S", "matrix": [2, 1], "x": 2, "y": 1},
+ {"label": "D", "matrix": [2, 2], "x": 2, "y": 2},
+ {"label": "F", "matrix": [2, 3], "x": 2, "y": 3},
+ {"label": "G", "matrix": [2, 4], "x": 2, "y": 4},
+ {"label": "H", "matrix": [2, 5], "x": 2, "y": 5},
+ {"label": "J", "matrix": [2, 6], "x": 2, "y": 6},
+ {"label": "K", "matrix": [2, 7], "x": 2, "y": 7},
+ {"label": "L", "matrix": [2, 8], "x": 2, "y": 8},
+ {"label": ";", "matrix": [2, 9], "x": 2, "y": 9},
+ {"label": "'", "matrix": [2, 10], "x": 2, "y": 10},
+ {"label": "Enter", "matrix": [2, 11], "x": 2, "y": 11, "w": 2},
+ {"label": "Z", "matrix": [3, 0], "x": 3, "y": 0},
+ {"label": "X", "matrix": [3, 1], "x": 3, "y": 1},
+ {"label": "C", "matrix": [3, 2], "x": 3, "y": 2},
+ {"label": "V", "matrix": [3, 3], "x": 3, "y": 3},
+ {"label": "B", "matrix": [3, 4], "x": 3, "y": 4},
+ {"label": "N", "matrix": [3, 5], "x": 3, "y": 5},
+ {"label": "M", "matrix": [3, 6], "x": 3, "y": 6},
+ {"label": ",", "matrix": [3, 7], "x": 3, "y": 7},
+ {"label": ".", "matrix": [3, 8], "x": 3, "y": 8},
+ {"label": "/", "matrix": [3, 9], "x": 3, "y": 9},
+ {"label": "Up", "matrix": [3, 10], "x": 3, "y": 10},
+ {"label": "ShiftR", "matrix": [3, 11], "x": 3, "y": 11, "w": 2},
+ {"label": "CtrlL", "matrix": [4, 0], "x": 4, "y": 0},
+ {"label": "Fn", "matrix": [4, 1], "x": 4, "y": 1},
+ {"label": "ShiftL", "matrix": [4, 2], "x": 4, "y": 2},
+ {"label": "Alt", "matrix": [4, 3], "x": 4, "y": 3},
+ {"label": "Space", "matrix": [4, 4], "x": 4, "y": 4, "w": 3},
+ {"label": "-", "matrix": [4, 7], "x": 4, "y": 7},
+ {"label": "=", "matrix": [4, 8], "x": 4, "y": 8},
+ {"label": "Left", "matrix": [4, 9], "x": 4, "y": 9},
+ {"label": "Down", "matrix": [4, 10], "x": 4, "y": 10},
+ {"label": "Right", "matrix": [4, 11], "x": 4, "y": 11},
+ {"label": "CtrlR", "matrix": [4, 12], "x": 4, "y": 12}
+ ]
+ },
+ "LAYOUT_iso": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "Backspace", "matrix": [0, 11], "x": 11, "y": 0, "w": 2},
+ {"label": "Q", "matrix": [1, 0], "x": 1, "y": 0},
+ {"label": "W", "matrix": [1, 1], "x": 1, "y": 1},
+ {"label": "E", "matrix": [1, 2], "x": 1, "y": 2},
+ {"label": "R", "matrix": [1, 3], "x": 1, "y": 3},
+ {"label": "T", "matrix": [1, 4], "x": 1, "y": 4},
+ {"label": "Y", "matrix": [1, 5], "x": 1, "y": 5},
+ {"label": "U", "matrix": [1, 6], "x": 1, "y": 6},
+ {"label": "I", "matrix": [1, 7], "x": 1, "y": 7},
+ {"label": "O", "matrix": [1, 8], "x": 1, "y": 8},
+ {"label": "P", "matrix": [1, 9], "x": 1, "y": 9},
+ {"label": "[", "matrix": [1, 10], "x": 1, "y": 10},
+ {"label": "]", "matrix": [1, 11], "x": 1, "y": 11},
+ {"label": "A", "matrix": [2, 0], "x": 2, "y": 0},
+ {"label": "S", "matrix": [2, 1], "x": 2, "y": 1},
+ {"label": "D", "matrix": [2, 2], "x": 2, "y": 2},
+ {"label": "F", "matrix": [2, 3], "x": 2, "y": 3},
+ {"label": "G", "matrix": [2, 4], "x": 2, "y": 4},
+ {"label": "H", "matrix": [2, 5], "x": 2, "y": 5},
+ {"label": "J", "matrix": [2, 6], "x": 2, "y": 6},
+ {"label": "K", "matrix": [2, 7], "x": 2, "y": 7},
+ {"label": "L", "matrix": [2, 8], "x": 2, "y": 8},
+ {"label": ";", "matrix": [2, 9], "x": 2, "y": 9},
+ {"label": "'", "matrix": [2, 10], "x": 2, "y": 10},
+ {"label": "\\", "matrix": [2, 11], "x": 2, "y": 11},
+ {"label": "Enter", "matrix": [1, 12], "x": 1, "y": 12, "h": 2},
+ {"label": "Z", "matrix": [3, 0], "x": 3, "y": 0},
+ {"label": "X", "matrix": [3, 1], "x": 3, "y": 1},
+ {"label": "C", "matrix": [3, 2], "x": 3, "y": 2},
+ {"label": "V", "matrix": [3, 3], "x": 3, "y": 3},
+ {"label": "B", "matrix": [3, 4], "x": 3, "y": 4},
+ {"label": "N", "matrix": [3, 5], "x": 3, "y": 5},
+ {"label": "M", "matrix": [3, 6], "x": 3, "y": 6},
+ {"label": ",", "matrix": [3, 7], "x": 3, "y": 7},
+ {"label": ".", "matrix": [3, 8], "x": 3, "y": 8},
+ {"label": "/", "matrix": [3, 9], "x": 3, "y": 9},
+ {"label": "Up", "matrix": [3, 10], "x": 3, "y": 10},
+ {"label": "ShiftR", "matrix": [3, 11], "x": 3, "y": 11, "w": 2},
+ {"label": "CtrlL", "matrix": [4, 0], "x": 4, "y": 0},
+ {"label": "Fn", "matrix": [4, 1], "x": 4, "y": 1},
+ {"label": "ShiftL", "matrix": [4, 2], "x": 4, "y": 2},
+ {"label": "Alt", "matrix": [4, 3], "x": 4, "y": 3},
+ {"label": "Space", "matrix": [4, 4], "x": 4, "y": 4, "w": 3},
+ {"label": "-", "matrix": [4, 7], "x": 4, "y": 7},
+ {"label": "=", "matrix": [4, 8], "x": 4, "y": 8},
+ {"label": "Left", "matrix": [4, 9], "x": 4, "y": 9},
+ {"label": "Down", "matrix": [4, 10], "x": 4, "y": 10},
+ {"label": "Right", "matrix": [4, 11], "x": 4, "y": 11},
+ {"label": "CtrlR", "matrix": [4, 12], "x": 4, "y": 12}
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/keyboards/mkbd65/rev0/mkbd65.c b/keyboards/mkbd65/rev0/mkbd65.c
new file mode 100644
index 0000000000..2cde260fa0
--- /dev/null
+++ b/keyboards/mkbd65/rev0/mkbd65.c
@@ -0,0 +1,6 @@
+// Copyright 2023 XenGi (@XenGi)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "mkbd65.h"
+#include "quantum.h"
+
diff --git a/keyboards/mkbd65/rev0/mkbd65.h b/keyboards/mkbd65/rev0/mkbd65.h
new file mode 100644
index 0000000000..798a87ce44
--- /dev/null
+++ b/keyboards/mkbd65/rev0/mkbd65.h
@@ -0,0 +1,70 @@
+// Copyright 2023 XenGi (@XenGi)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#ifndef MKBD65_H
+#define MKBD65_H
+
+/* LAYOUT_ansi
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
+ * │ │ │ │ │ │ │ │ │ │ │ │ 2.0U │
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┬───┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ 2.0U │
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───────┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ 2.0U │
+ * ├───┼───┼───┼───┼───┴───┴───┼───┼───┼───┼───┼───┬───┤
+ * │ │ │ │ │ 3.0U │ │ │ │ │ │ │
+ * └───┴───┴───┴───┴───────────┴───┴───┴───┴───┴───┴───┘
+ * This is a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+#define LAYOUT_ansi( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, \
+ K40, K41, K42, K43, K44, K47, K48, K49, K410, K411, K412 \
+) \
+{ \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, KC_NO }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112 }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, KC_NO }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, KC_NO }, \
+ { K40, K41, K42, K43, K44, KC_NO, KC_NO, K47, K48, K49, K410, K411, K412 } \
+}
+
+/* LAYOUT_iso
+ * ╔═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══════╗
+ * ║ │ │ │ │ │ │ │ │ │ │ │ 2.0U ║
+ * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┬───╢
+ * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║
+ * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ ║
+ * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║
+ * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───╢
+ * ║ │ │ │ │ │ │ │ │ │ │ │ 2.0U ║
+ * ╟───┼───┼───┼───┼───┴───┴───┼───┼───┼───┼───┼───┬───╢
+ * ║ │ │ │ │ 3.0U │ │ │ │ │ │ ║
+ * ╚═══╧═══╧═══╧═══╧═══════════╧═══╧═══╧═══╧═══╧═══╧═══╝
+ */
+#define LAYOUT_iso( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, \
+ K40, K41, K42, K43, K44, K47, K48, K49, K410, K411, K412 \
+) \
+{ \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, KC_NO }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, KC_NO }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212 }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, KC_NO }, \
+ { K40, K41, K42, K43, K44, KC_NO, KC_NO, K47, K48, K49, K410, K411, K412 } \
+}
+
+#endif
diff --git a/keyboards/mkbd65/rev0/rules.mk b/keyboards/mkbd65/rev0/rules.mk
new file mode 100644
index 0000000000..de2da8afe1
--- /dev/null
+++ b/keyboards/mkbd65/rev0/rules.mk
@@ -0,0 +1,4 @@
+F_CPU = 16000000
+ARCH = AVR8
+F_USB = $(F_CPU)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
diff --git a/keyboards/mkbd65/rev1/keyboard.json b/keyboards/mkbd65/rev1/keyboard.json
new file mode 100644
index 0000000000..2329e8bc52
--- /dev/null
+++ b/keyboards/mkbd65/rev1/keyboard.json
@@ -0,0 +1,187 @@
+{
+ "manufacturer": "XenGi",
+ "keyboard_name": "mkbd65",
+ "maintainer": "XenGi",
+ "bootloader": "atmel-dfu",
+ "diode_direction": "ROW2COL",
+ "debounce": 5,
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgb_matrix": false,
+ "rgblight": false
+ },
+ "bootmagic": {
+ "enabled": true,
+ "matrix": [0, 0]
+ },
+ "matrix_pins": {
+ "cols": ["A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "B2", "B10", "B11"],
+ "rows": ["B12", "B13", "B14", "B15", "A8"]
+ },
+ "processor": "atmega32u4",
+ "url": "https://mkbd65.xengi.de",
+ "bootloader_instructions": "Press the button marked RESET on the back of the PCB",
+ "tags": ["mobile", "65%"],
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x4803",
+ "vid": "0x1209"
+ },
+ "build": {
+ "lto": true
+ },
+ "layouts": {
+ "LAYOUT_ansi": {
+ "layout": [
+ { "matrix": [0, 0], "x": 0, "y": 0, "label": "Esc" },
+ { "matrix": [0, 1], "x": 1, "y": 0, "label": "1" },
+ { "matrix": [0, 2], "x": 2, "y": 0, "label": "2" },
+ { "matrix": [0, 3], "x": 3, "y": 0, "label": "3" },
+ { "matrix": [0, 4], "x": 4, "y": 0, "label": "4" },
+ { "matrix": [0, 5], "x": 5, "y": 0, "label": "5" },
+ { "matrix": [0, 6], "x": 6, "y": 0, "label": "6" },
+ { "matrix": [0, 7], "x": 7, "y": 0, "label": "7" },
+ { "matrix": [0, 8], "x": 8, "y": 0, "label": "8" },
+ { "matrix": [0, 9], "x": 9, "y": 0, "label": "9" },
+ { "matrix": [0, 10], "x": 10, "y": 0, "label": "0" },
+ { "matrix": [0, 11], "x": 11, "y": 0, "label": "Backspace" },
+ { "matrix": [0, 12], "x": 12, "y": 0, "label": "Backspace" },
+
+ { "matrix": [1, 0], "x": 1, "y": 0, "label": "Q" },
+ { "matrix": [1, 1], "x": 1, "y": 1, "label": "W" },
+ { "matrix": [1, 2], "x": 1, "y": 2, "label": "E" },
+ { "matrix": [1, 3], "x": 1, "y": 3, "label": "R" },
+ { "matrix": [1, 4], "x": 1, "y": 4, "label": "T" },
+ { "matrix": [1, 5], "x": 1, "y": 5, "label": "Y" },
+ { "matrix": [1, 6], "x": 1, "y": 6, "label": "U" },
+ { "matrix": [1, 7], "x": 1, "y": 7, "label": "I" },
+ { "matrix": [1, 8], "x": 1, "y": 8, "label": "O" },
+ { "matrix": [1, 9], "x": 1, "y": 9, "label": "P" },
+ { "matrix": [1, 10], "x": 1, "y": 10, "label": "[" },
+ { "matrix": [1, 11], "x": 1, "y": 11, "label": "]" },
+ { "matrix": [1, 12], "x": 1, "y": 12, "label": "\\" },
+
+ { "matrix": [2, 0], "x": 2, "y": 0, "label": "A" },
+ { "matrix": [2, 1], "x": 2, "y": 1, "label": "S" },
+ { "matrix": [2, 2], "x": 2, "y": 2, "label": "D" },
+ { "matrix": [2, 3], "x": 2, "y": 3, "label": "F" },
+ { "matrix": [2, 4], "x": 2, "y": 4, "label": "G" },
+ { "matrix": [2, 5], "x": 2, "y": 5, "label": "H" },
+ { "matrix": [2, 6], "x": 2, "y": 6, "label": "J" },
+ { "matrix": [2, 7], "x": 2, "y": 7, "label": "K" },
+ { "matrix": [2, 8], "x": 2, "y": 8, "label": "L" },
+ { "matrix": [2, 9], "x": 2, "y": 9, "label": ";" },
+ { "matrix": [2, 10], "x": 2, "y": 10, "label": "'" },
+ { "matrix": [2, 11], "x": 2, "y": 11, "label": "Enter" },
+ { "matrix": [2, 12], "x": 2, "y": 12, "label": "Enter" },
+
+ { "matrix": [3, 0], "x": 3, "y": 0, "label": "Z" },
+ { "matrix": [3, 1], "x": 3, "y": 1, "label": "X" },
+ { "matrix": [3, 2], "x": 3, "y": 2, "label": "C" },
+ { "matrix": [3, 3], "x": 3, "y": 3, "label": "V" },
+ { "matrix": [3, 4], "x": 3, "y": 4, "label": "B" },
+ { "matrix": [3, 5], "x": 3, "y": 5, "label": "N" },
+ { "matrix": [3, 6], "x": 3, "y": 6, "label": "M" },
+ { "matrix": [3, 7], "x": 3, "y": 7, "label": "," },
+ { "matrix": [3, 8], "x": 3, "y": 8, "label": "." },
+ { "matrix": [3, 9], "x": 3, "y": 9, "label": "/" },
+ { "matrix": [3, 10], "x": 3, "y": 10, "label": "Up" },
+ { "matrix": [3, 11], "x": 3, "y": 11, "w": 2, "label": "RShift" },
+ { "matrix": [3, 12], "x": 3, "y": 11, "w": 2, "label": "RShift" },
+
+ { "matrix": [4, 0], "x": 4, "y": 0, "label": "LCtrl" },
+ { "matrix": [4, 1], "x": 4, "y": 1, "label": "Fn" },
+ { "matrix": [4, 2], "x": 4, "y": 2, "label": "LShift" },
+ { "matrix": [4, 3], "x": 4, "y": 3, "label": "Alt" },
+ { "matrix": [4, 4], "x": 4, "y": 4, "label": "Space" },
+ { "matrix": [4, 5], "x": 4, "y": 5, "label": "Space" },
+ { "matrix": [4, 6], "x": 4, "y": 6, "label": "Space" },
+ { "matrix": [4, 7], "x": 4, "y": 7, "label": "-" },
+ { "matrix": [4, 8], "x": 4, "y": 8, "label": "=" },
+ { "matrix": [4, 9], "x": 4, "y": 9, "label": "Left" },
+ { "matrix": [4, 10], "x": 4, "y": 10, "label": "Down" },
+ { "matrix": [4, 11], "x": 4, "y": 11, "label": "Right" },
+ { "matrix": [4, 12], "x": 4, "y": 12, "label": "RCtrl" }
+ ]
+ },
+ "LAYOUT_iso": {
+ "layout": [
+ { "matrix": [0, 0], "x": 0, "y": 0, "label": "Esc" },
+ { "matrix": [0, 1], "x": 1, "y": 0, "label": "1" },
+ { "matrix": [0, 2], "x": 2, "y": 0, "label": "2" },
+ { "matrix": [0, 3], "x": 3, "y": 0, "label": "3" },
+ { "matrix": [0, 4], "x": 4, "y": 0, "label": "4" },
+ { "matrix": [0, 5], "x": 5, "y": 0, "label": "5" },
+ { "matrix": [0, 6], "x": 6, "y": 0, "label": "6" },
+ { "matrix": [0, 7], "x": 7, "y": 0, "label": "7" },
+ { "matrix": [0, 8], "x": 8, "y": 0, "label": "8" },
+ { "matrix": [0, 9], "x": 9, "y": 0, "label": "9" },
+ { "matrix": [0, 10], "x": 10, "y": 0, "label": "0" },
+ { "matrix": [0, 11], "x": 11, "y": 0, "label": "Backspace" },
+ { "matrix": [0, 12], "x": 12, "y": 0, "label": "Backspace" },
+
+ { "matrix": [1, 0], "x": 1, "y": 0, "label": "Q" },
+ { "matrix": [1, 1], "x": 1, "y": 1, "label": "W" },
+ { "matrix": [1, 2], "x": 1, "y": 2, "label": "E" },
+ { "matrix": [1, 3], "x": 1, "y": 3, "label": "R" },
+ { "matrix": [1, 4], "x": 1, "y": 4, "label": "T" },
+ { "matrix": [1, 5], "x": 1, "y": 5, "label": "Y" },
+ { "matrix": [1, 6], "x": 1, "y": 6, "label": "U" },
+ { "matrix": [1, 7], "x": 1, "y": 7, "label": "I" },
+ { "matrix": [1, 8], "x": 1, "y": 8, "label": "O" },
+ { "matrix": [1, 9], "x": 1, "y": 9, "label": "P" },
+ { "matrix": [1, 10], "x": 1, "y": 10, "label": "[" },
+ { "matrix": [1, 11], "x": 1, "y": 11, "label": "]" },
+ { "matrix": [1, 12], "x": 1, "y": 12, "label": "Enter" },
+
+ { "matrix": [2, 0], "x": 2, "y": 0, "label": "A" },
+ { "matrix": [2, 1], "x": 2, "y": 1, "label": "S" },
+ { "matrix": [2, 2], "x": 2, "y": 2, "label": "D" },
+ { "matrix": [2, 3], "x": 2, "y": 3, "label": "F" },
+ { "matrix": [2, 4], "x": 2, "y": 4, "label": "G" },
+ { "matrix": [2, 5], "x": 2, "y": 5, "label": "H" },
+ { "matrix": [2, 6], "x": 2, "y": 6, "label": "J" },
+ { "matrix": [2, 7], "x": 2, "y": 7, "label": "K" },
+ { "matrix": [2, 8], "x": 2, "y": 8, "label": "L" },
+ { "matrix": [2, 9], "x": 2, "y": 9, "label": ";" },
+ { "matrix": [2, 10], "x": 2, "y": 10, "label": "'" },
+ { "matrix": [2, 11], "x": 2, "y": 11, "label": "\\" },
+ { "matrix": [2, 12], "x": 2, "y": 12, "label": "Enter" },
+
+ { "matrix": [3, 0], "x": 3, "y": 0, "label": "Z" },
+ { "matrix": [3, 1], "x": 3, "y": 1, "label": "X" },
+ { "matrix": [3, 2], "x": 3, "y": 2, "label": "C" },
+ { "matrix": [3, 3], "x": 3, "y": 3, "label": "V" },
+ { "matrix": [3, 4], "x": 3, "y": 4, "label": "B" },
+ { "matrix": [3, 5], "x": 3, "y": 5, "label": "N" },
+ { "matrix": [3, 6], "x": 3, "y": 6, "label": "M" },
+ { "matrix": [3, 7], "x": 3, "y": 7, "label": "," },
+ { "matrix": [3, 8], "x": 3, "y": 8, "label": "." },
+ { "matrix": [3, 9], "x": 3, "y": 9, "label": "/" },
+ { "matrix": [3, 10], "x": 3, "y": 10, "label": "Up" },
+ { "matrix": [3, 11], "x": 3, "y": 11, "label": "RShift" },
+ { "matrix": [3, 12], "x": 3, "y": 12, "label": "RShift" },
+
+ { "matrix": [4, 0], "x": 4, "y": 0, "label": "LCtrl" },
+ { "matrix": [4, 1], "x": 4, "y": 1, "label": "Fn" },
+ { "matrix": [4, 2], "x": 4, "y": 2, "label": "LShift" },
+ { "matrix": [4, 3], "x": 4, "y": 3, "label": "Alt" },
+ { "matrix": [4, 4], "x": 4, "y": 4, "label": "Space" },
+ { "matrix": [4, 5], "x": 4, "y": 5, "label": "Space" },
+ { "matrix": [4, 6], "x": 4, "y": 6, "label": "Space" },
+ { "matrix": [4, 7], "x": 4, "y": 7, "label": "-" },
+ { "matrix": [4, 8], "x": 4, "y": 8, "label": "=" },
+ { "matrix": [4, 9], "x": 4, "y": 9, "label": "Left" },
+ { "matrix": [4, 10], "x": 4, "y": 10, "label": "Down" },
+ { "matrix": [4, 11], "x": 4, "y": 11, "label": "Right" },
+ { "matrix": [4, 12], "x": 4, "y": 12, "label": "RCtrl" }
+ ]
+ }
+ }
+}
+
diff --git a/keyboards/mkbd65/rev1/mkbd65.c b/keyboards/mkbd65/rev1/mkbd65.c
new file mode 100644
index 0000000000..baca6508d4
--- /dev/null
+++ b/keyboards/mkbd65/rev1/mkbd65.c
@@ -0,0 +1,4 @@
+// Copyright 2023 XenGi (@XenGi)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "mkbd65.h"
diff --git a/keyboards/mkbd65/rev1/mkbd65.h b/keyboards/mkbd65/rev1/mkbd65.h
new file mode 100644
index 0000000000..759166bbcf
--- /dev/null
+++ b/keyboards/mkbd65/rev1/mkbd65.h
@@ -0,0 +1,44 @@
+// Copyright 2023 XenGi (@XenGi)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#ifndef MKBD65_H
+#define MKBD65_H
+
+#include "quantum.h"
+
+/* LAYOUT
+ * ╔═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╗
+ * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║
+ * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢
+ * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║
+ * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢
+ * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║
+ * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢
+ * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║
+ * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢
+ * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║
+ * ╚═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╝
+ * This is a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+#define LAYOUT_all( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, K312, \
+ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K410, K411, K412 \
+) \
+{ \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012 }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112 }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212 }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, K312 }, \
+ { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K410, K411, K412 } \
+}
+
+#endif
diff --git a/keyboards/mkbd65/rev1/rules.mk b/keyboards/mkbd65/rev1/rules.mk
new file mode 100644
index 0000000000..e5116166cc
--- /dev/null
+++ b/keyboards/mkbd65/rev1/rules.mk
@@ -0,0 +1,2 @@
+MCU = STM32F072
+BOOTLOADER = stm32-dfu
diff --git a/keyboards/mkbd65/rules.mk b/keyboards/mkbd65/rules.mk
new file mode 100644
index 0000000000..3287da9fbd
--- /dev/null
+++ b/keyboards/mkbd65/rules.mk
@@ -0,0 +1,19 @@
+# AVR MCU Options
+F_CPU = 16000000
+ARCH = AVR8
+F_USB = $(F_CPU)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+# Feature Options
+MAGIC_ENABLE = no
+AUDIO_ENABLE = no
+KEY_OVERRIDE_ENABLE = no
+LEADER_ENABLE = no
+MIDI_ENABLE = no
+UNICODE_ENABLE = no
+BLUETOOTH_ENABLE = no
+MUSIC_ENABLE = no
+SPACE_CADET_ENABLE = no
+GRAVE_ESC_ENABLE = yes
+AVR_USE_MINIMAL_PRINTF = yes
+
diff --git a/keyboards/ml/gas75/gas75.c b/keyboards/ml/gas75/gas75.c
new file mode 100644
index 0000000000..0744dd8092
--- /dev/null
+++ b/keyboards/ml/gas75/gas75.c
@@ -0,0 +1,34 @@
+/* Copyright 2022 ML
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }
+}, {
+ //Key matrix (0 -> 2)
+ {224, 0}, {0 , 0}, {6 , 38},
+}, {
+ //Key matrix (0 -> 2)
+ 4, 1, 8,
+} };
+#endif
diff --git a/keyboards/ml/gas75/keyboard.json b/keyboards/ml/gas75/keyboard.json
index ac04365b6b..280735eb14 100644
--- a/keyboards/ml/gas75/keyboard.json
+++ b/keyboards/ml/gas75/keyboard.json
@@ -58,11 +58,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"x": 224, "y": 0, "flags": 4},
- {"x": 0, "y": 0, "flags": 1},
- {"x": 6, "y": 38, "flags": 8}
- ],
"max_brightness": 200
},
"features": {
diff --git a/keyboards/momokai/tap_duo/keyboard.json b/keyboards/momokai/tap_duo/keyboard.json
index 82f8925594..1d5302985c 100644
--- a/keyboards/momokai/tap_duo/keyboard.json
+++ b/keyboards/momokai/tap_duo/keyboard.json
@@ -42,12 +42,6 @@
"solid_splash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 168, "y": 0, "flags": 4},
- {"x": 0, "y": 64, "flags": 2},
- {"x": 224, "y": 64, "flags": 2}
- ],
"max_brightness": 200,
"sleep": true
},
diff --git a/keyboards/momokai/tap_duo/tap_duo.c b/keyboards/momokai/tap_duo/tap_duo.c
new file mode 100644
index 0000000000..4e0bc9f42c
--- /dev/null
+++ b/keyboards/momokai/tap_duo/tap_duo.c
@@ -0,0 +1,31 @@
+/* Copyright 2022 Momokai
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 0, 1, NO_LED, NO_LED, NO_LED}
+}, {
+ // LED Index to Physical Position
+ { 112, 0}, { 168, 0}, { 0, 64}, { 224, 64}
+}, {
+ // LED Index to Flag
+ 4,4,2,2
+} };
+
+#endif
diff --git a/keyboards/momokai/tap_trio/keyboard.json b/keyboards/momokai/tap_trio/keyboard.json
index 536ea91a30..41da5585f6 100644
--- a/keyboards/momokai/tap_trio/keyboard.json
+++ b/keyboards/momokai/tap_trio/keyboard.json
@@ -42,13 +42,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 56, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 168, "y": 0, "flags": 4},
- {"x": 0, "y": 64, "flags": 2},
- {"x": 224, "y": 64, "flags": 2}
- ],
"max_brightness": 200,
"sleep": true
},
diff --git a/keyboards/momokai/tap_trio/tap_trio.c b/keyboards/momokai/tap_trio/tap_trio.c
new file mode 100644
index 0000000000..73957745a9
--- /dev/null
+++ b/keyboards/momokai/tap_trio/tap_trio.c
@@ -0,0 +1,31 @@
+/* Copyright 2022 Momokai
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 0, 1, 2, NO_LED, NO_LED, NO_LED}
+}, {
+ // LED Index to Physical Position
+ { 56, 0}, { 112, 0}, { 168, 0}, { 0, 64}, { 224, 64}
+}, {
+ // LED Index to Flag
+ 4,4,4,2,2
+} };
+
+#endif
diff --git a/keyboards/monstargear/xo87/rgb/keyboard.json b/keyboards/monstargear/xo87/rgb/keyboard.json
index dc4015a266..9ee83deb00 100644
--- a/keyboards/monstargear/xo87/rgb/keyboard.json
+++ b/keyboards/monstargear/xo87/rgb/keyboard.json
@@ -58,118 +58,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"x": 224, "y": 63, "flags": 2},
- {"x": 224, "y": 63, "flags": 2},
- {"x": 224, "y": 63, "flags": 2},
- {"x": 224, "y": 63, "flags": 2},
- {"x": 224, "y": 63, "flags": 2},
- {"x": 224, "y": 63, "flags": 2},
- {"x": 224, "y": 63, "flags": 2},
- {"x": 224, "y": 63, "flags": 2},
- {"x": 224, "y": 63, "flags": 2},
- {"x": 224, "y": 63, "flags": 2},
- {"x": 224, "y": 63, "flags": 2},
- {"x": 224, "y": 63, "flags": 2},
- {"x": 224, "y": 63, "flags": 2},
- {"x": 224, "y": 63, "flags": 2},
- {"x": 224, "y": 63, "flags": 2},
- {"x": 224, "y": 63, "flags": 2},
- {"x": 224, "y": 63, "flags": 2},
- {"x": 224, "y": 63, "flags": 2},
- {"x": 224, "y": 63, "flags": 2},
- {"x": 224, "y": 63, "flags": 2},
- {"matrix": [5, 15], "x": 224, "y": 63, "flags": 1},
- {"matrix": [5, 14], "x": 215, "y": 63, "flags": 1},
- {"matrix": [5, 13], "x": 206, "y": 63, "flags": 1},
- {"matrix": [4, 15], "x": 180, "y": 63, "flags": 1},
- {"matrix": [5, 12], "x": 168, "y": 63, "flags": 1},
- {"matrix": [5, 11], "x": 153, "y": 63, "flags": 1},
- {"matrix": [5, 10], "x": 135, "y": 63, "flags": 1},
- {"matrix": [5, 6], "x": 101, "y": 63, "flags": 4},
- {"matrix": [5, 2], "x": 33, "y": 63, "flags": 1},
- {"matrix": [5, 1], "x": 22, "y": 63, "flags": 1},
- {"matrix": [5, 0], "x": 0, "y": 63, "flags": 1},
- {"matrix": [4, 0], "x": 0, "y": 48, "flags": 1},
- {"matrix": [4, 2], "x": 30, "y": 48, "flags": 4},
- {"matrix": [4, 3], "x": 45, "y": 48, "flags": 4},
- {"matrix": [4, 4], "x": 60, "y": 48, "flags": 4},
- {"matrix": [4, 5], "x": 75, "y": 48, "flags": 4},
- {"matrix": [4, 6], "x": 90, "y": 48, "flags": 4},
- {"matrix": [4, 7], "x": 105, "y": 48, "flags": 4},
- {"matrix": [4, 8], "x": 120, "y": 48, "flags": 4},
- {"matrix": [4, 9], "x": 135, "y": 48, "flags": 4},
- {"matrix": [4, 10], "x": 150, "y": 48, "flags": 4},
- {"matrix": [4, 11], "x": 165, "y": 48, "flags": 4},
- {"matrix": [4, 12], "x": 198, "y": 48, "flags": 1},
- {"matrix": [4, 14], "x": 215, "y": 48, "flags": 1},
- {"matrix": [3, 12], "x": 198, "y": 36, "flags": 1},
- {"matrix": [3, 11], "x": 180, "y": 36, "flags": 4},
- {"matrix": [3, 10], "x": 176, "y": 36, "flags": 4},
- {"matrix": [3, 9], "x": 161, "y": 36, "flags": 4},
- {"matrix": [3, 8], "x": 146, "y": 36, "flags": 4},
- {"matrix": [3, 7], "x": 131, "y": 36, "flags": 4},
- {"matrix": [3, 6], "x": 116, "y": 36, "flags": 4},
- {"matrix": [3, 5], "x": 101, "y": 36, "flags": 4},
- {"matrix": [3, 4], "x": 86, "y": 36, "flags": 4},
- {"matrix": [3, 3], "x": 71, "y": 36, "flags": 4},
- {"matrix": [3, 2], "x": 56, "y": 36, "flags": 4},
- {"matrix": [3, 1], "x": 41, "y": 36, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 36, "flags": 1},
- {"matrix": [2, 0], "x": 0, "y": 24, "flags": 1},
- {"matrix": [2, 1], "x": 22, "y": 24, "flags": 4},
- {"matrix": [2, 2], "x": 37, "y": 24, "flags": 4},
- {"matrix": [2, 3], "x": 52, "y": 24, "flags": 4},
- {"matrix": [2, 4], "x": 67, "y": 24, "flags": 4},
- {"matrix": [2, 5], "x": 82, "y": 24, "flags": 4},
- {"matrix": [2, 6], "x": 97, "y": 24, "flags": 4},
- {"matrix": [2, 7], "x": 112, "y": 24, "flags": 4},
- {"matrix": [2, 8], "x": 127, "y": 24, "flags": 4},
- {"matrix": [2, 9], "x": 142, "y": 24, "flags": 4},
- {"matrix": [2, 10], "x": 157, "y": 24, "flags": 4},
- {"matrix": [2, 11], "x": 172, "y": 24, "flags": 4},
- {"matrix": [2, 12], "x": 187, "y": 24, "flags": 4},
- {"matrix": [4, 13], "x": 202, "y": 24, "flags": 1},
- {"matrix": [2, 13], "x": 206, "y": 24, "flags": 1},
- {"matrix": [2, 14], "x": 215, "y": 24, "flags": 1},
- {"matrix": [2, 15], "x": 224, "y": 24, "flags": 1},
- {"matrix": [1, 15], "x": 224, "y": 12, "flags": 1},
- {"matrix": [1, 14], "x": 215, "y": 12, "flags": 1},
- {"matrix": [1, 13], "x": 206, "y": 12, "flags": 1},
- {"matrix": [3, 13], "x": 202, "y": 12, "flags": 1},
- {"matrix": [1, 12], "x": 187, "y": 12, "flags": 4},
- {"matrix": [1, 11], "x": 172, "y": 12, "flags": 4},
- {"matrix": [1, 10], "x": 157, "y": 12, "flags": 4},
- {"matrix": [1, 9], "x": 142, "y": 12, "flags": 4},
- {"matrix": [1, 8], "x": 127, "y": 12, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 12, "flags": 4},
- {"matrix": [1, 6], "x": 97, "y": 12, "flags": 4},
- {"matrix": [1, 5], "x": 82, "y": 12, "flags": 4},
- {"matrix": [1, 4], "x": 67, "y": 12, "flags": 4},
- {"matrix": [1, 3], "x": 52, "y": 12, "flags": 4},
- {"matrix": [1, 2], "x": 37, "y": 12, "flags": 4},
- {"matrix": [1, 1], "x": 22, "y": 12, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"x": 0, "y": 0, "flags": 8},
- {"x": 0, "y": 0, "flags": 8},
- {"x": 0, "y": 0, "flags": 8},
- {"matrix": [0, 1], "x": 25, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 55, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 82, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 108, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 120, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 130, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 148, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 172, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 187, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 190, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 195, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 206, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 215, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1}
- ],
"max_brightness": 100,
"sleep": true
},
diff --git a/keyboards/monstargear/xo87/rgb/rgb.c b/keyboards/monstargear/xo87/rgb/rgb.c
index 1e29c8b70b..c064953444 100644
--- a/keyboards/monstargear/xo87/rgb/rgb.c
+++ b/keyboards/monstargear/xo87/rgb/rgb.c
@@ -15,6 +15,56 @@
*/
#include "quantum.h"
+led_config_t g_led_config = { {
+ // esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 prtscr scrl brk
+ { 91, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109 },
+ //tilde 1 2 3 4 5 6 7 8 9 0 - = ins home pgup
+ { 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 76, 75, 74 },
+ //tab q w e r t y u i o p [ ] del end pgdn
+ { 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 71, 72, 73 },
+ //caps a s d f g h j k l ; ' return bspc
+ { 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 77, NO_LED, NO_LED },
+ //lshift z x c v b n m , . / rshift bsls up rctl
+ { 31, NO_LED, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 70, 43, 23 },
+ //ctrl win alt space alt win mod left down right
+ { 30, 29, 28, NO_LED, NO_LED, NO_LED, 27, NO_LED, NO_LED, NO_LED, 26, 25, 24, 22, 21, 20 },
+ //underglow lights
+ //{ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 },
+ //{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
+
+}, {
+ // Underglow lights
+ { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 },
+ // right down left rctl mod rwin ralt space lalt lwin lctl
+ { 225, 63 }, { 215, 63 }, { 206, 63 }, { 180, 63 }, { 168, 63}, { 153, 63 }, { 135, 63 }, { 101, 63 }, { 33, 63 }, { 22, 63 }, { 0, 63 },
+ // lshift z x c v b n m comma period question rshift up
+ { 0, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 198, 48 }, { 215, 48},
+ // return ' ; l k j h g f d s a capslock
+ { 198, 36 }, { 180, 36 }, { 176, 36 }, { 161, 36 }, { 146, 36 }, { 131, 36 }, { 116, 36 }, { 101, 36 }, { 86, 36 }, { 71, 36 }, { 56, 36 }, { 41, 36 }, { 0, 36 },
+ // tab q w e r t y u i o p [ ] backslash del end pgdn
+ { 0, 24 }, { 22, 24}, { 37, 24 }, { 52, 24 }, { 67, 24 }, { 82, 24 }, { 97, 24 }, { 112, 24 }, { 127, 24 }, { 142, 24 }, { 157, 24 }, { 172, 24 }, { 187, 24 }, { 202, 24}, { 206, 24 }, {215, 24}, { 225, 24 },
+ // pgup home ins backspace = - 0 9 8 7 6 5 4 3 2 1 tilde
+ { 225, 12 }, {215, 12}, { 206, 12 }, { 202, 12}, { 187, 12 }, { 172, 12 }, { 157, 12 }, { 142, 12 }, { 127, 12 }, { 112, 12 }, { 97, 12 }, { 82, 12 }, { 67, 12 }, { 52, 12 }, { 37, 12 }, { 22, 12}, { 0, 12 },
+ // esc ind1 ind2 ind3 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 prtscr scrlck pause
+ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 25, 0 }, { 40, 0 }, { 55, 0 }, { 82, 0 }, { 108, 0 }, { 120, 0 }, { 130, 0 }, { 148, 0 }, { 172, 0 }, { 187, 0 }, { 190, 0 }, { 195, 0 }, { 206, 0 }, { 215, 0}, { 225, 0 }
+}, {
+ // underglow
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ // bottom row
+ 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1,
+ // 2nd row up
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ // 3rd row up
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ // 4th row up
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
+ // 5th row up
+ 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ // top row
+ 1, 8, 8, 8, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1
+} };
+
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/mss_studio/m63_rgb/keyboard.json b/keyboards/mss_studio/m63_rgb/keyboard.json
index 5aa3a753e2..b798df21dd 100644
--- a/keyboards/mss_studio/m63_rgb/keyboard.json
+++ b/keyboards/mss_studio/m63_rgb/keyboard.json
@@ -61,83 +61,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 8},
- {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 214, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1},
- {"matrix": [3, 1], "x": 36, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 68, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 84, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 100, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 116, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 132, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 148, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 164, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 186, "y": 48, "flags": 1},
- {"matrix": [3, 12], "x": 208, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 224, "y": 48, "flags": 4},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 160, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 176, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 192, "y": 64, "flags": 4},
- {"matrix": [4, 12], "x": 208, "y": 64, "flags": 4},
- {"matrix": [4, 13], "x": 224, "y": 64, "flags": 4},
- {"x": 216, "y": 56, "flags": 2},
- {"x": 181, "y": 57, "flags": 2},
- {"x": 138, "y": 59, "flags": 2},
- {"x": 105, "y": 58, "flags": 2},
- {"x": 52, "y": 60, "flags": 2},
- {"x": 10, "y": 60, "flags": 2},
- {"x": 20, "y": 12, "flags": 2},
- {"x": 54, "y": 12, "flags": 2},
- {"x": 102, "y": 10, "flags": 2},
- {"x": 145, "y": 13, "flags": 2},
- {"x": 182, "y": 9, "flags": 2},
- {"x": 211, "y": 10, "flags": 2}
- ],
"max_brightness": 200
},
"features": {
diff --git a/keyboards/mss_studio/m63_rgb/m63_rgb.c b/keyboards/mss_studio/m63_rgb/m63_rgb.c
new file mode 100644
index 0000000000..71a43720cc
--- /dev/null
+++ b/keyboards/mss_studio/m63_rgb/m63_rgb.c
@@ -0,0 +1,50 @@
+/* Copyright 2021 Mss Studio
+ * Copyright 2022 HorrorTroll
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 },
+ { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 },
+ { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40 },
+ { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, NO_LED, 52, 53 },
+ { 54, 55, 56, NO_LED, NO_LED, 57, NO_LED, NO_LED, NO_LED, 58, 59, 60, 61, 62 }
+}, {
+ // Key matrix (0 -> 62)
+ {0 , 0}, {16 , 0}, {32 , 0}, {48 , 0}, {64 , 0}, {80 , 0}, {96 , 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {216, 0},
+ {4 , 16}, {24 , 16}, {40 , 16}, {56 , 16}, {72 , 16}, {88 , 16}, {104, 16}, {120, 16}, {136, 16}, {152, 16}, {168, 16}, {184, 16}, {200, 16}, {220, 16},
+ {6 , 32}, {28 , 32}, {44 , 32}, {60 , 32}, {76 , 32}, {92 , 32}, {108, 32}, {124, 32}, {140, 32}, {156, 32}, {172, 32}, {188, 32}, {214, 32},
+ {10 , 48}, {36 , 48}, {52 , 48}, {68 , 48}, {84 , 48}, {100, 48}, {116, 48}, {132, 48}, {148, 48}, {164, 48}, {186, 48}, {208, 48}, {224, 48},
+ {2 , 64}, {22 , 64}, {42 , 64}, {102, 64}, {160, 64}, {176, 64}, {192, 64}, {208, 64}, {224, 64},
+
+ // Underglow (63 -> 74)
+ {216, 56}, {181, 57}, {138, 59}, {105, 58}, {52 , 60}, {10 , 60},
+ {20 , 12}, {54 , 12}, {102, 10}, {145, 13}, {182, 9}, {211, 10},
+}, {
+ // Key matrix (0 -> 62)
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4,
+ 1, 1, 1, 4, 1, 1, 4, 4, 4,
+
+ // Underglow (63 -> 74)
+ 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2
+} };
+#endif
diff --git a/keyboards/mss_studio/m64_rgb/keyboard.json b/keyboards/mss_studio/m64_rgb/keyboard.json
index b2aa92d8f2..083afec8c7 100644
--- a/keyboards/mss_studio/m64_rgb/keyboard.json
+++ b/keyboards/mss_studio/m64_rgb/keyboard.json
@@ -61,84 +61,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 8},
- {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 214, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 8, "y": 48, "flags": 1},
- {"matrix": [3, 1], "x": 32, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 48, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 80, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 96, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 112, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 128, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 144, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 160, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 176, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 192, "y": 48, "flags": 1},
- {"matrix": [3, 12], "x": 208, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 224, "y": 48, "flags": 4},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 160, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 176, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 192, "y": 64, "flags": 4},
- {"matrix": [4, 12], "x": 208, "y": 64, "flags": 4},
- {"matrix": [4, 13], "x": 224, "y": 64, "flags": 4},
- {"x": 216, "y": 56, "flags": 2},
- {"x": 181, "y": 57, "flags": 2},
- {"x": 138, "y": 59, "flags": 2},
- {"x": 105, "y": 58, "flags": 2},
- {"x": 52, "y": 60, "flags": 2},
- {"x": 10, "y": 60, "flags": 2},
- {"x": 20, "y": 12, "flags": 2},
- {"x": 54, "y": 12, "flags": 2},
- {"x": 102, "y": 10, "flags": 2},
- {"x": 145, "y": 13, "flags": 2},
- {"x": 182, "y": 9, "flags": 2},
- {"x": 211, "y": 10, "flags": 2}
- ],
"max_brightness": 200
},
"features": {
diff --git a/keyboards/mss_studio/m64_rgb/m64_rgb.c b/keyboards/mss_studio/m64_rgb/m64_rgb.c
new file mode 100644
index 0000000000..f9b2778371
--- /dev/null
+++ b/keyboards/mss_studio/m64_rgb/m64_rgb.c
@@ -0,0 +1,50 @@
+/* Copyright 2021 Mss Studio
+ * Copyright 2022 HorrorTroll
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 },
+ { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 },
+ { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40 },
+ { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54 },
+ { 55, 56, 57, NO_LED, NO_LED, 58, NO_LED, NO_LED, NO_LED, 59, 60, 61, 62, 63 }
+}, {
+ // Key matrix (0 -> 63)
+ {0 , 0}, {16 , 0}, {32 , 0}, {48 , 0}, {64 , 0}, {80 , 0}, {96 , 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {216, 0},
+ {4 , 16}, {24 , 16}, {40 , 16}, {56 , 16}, {72 , 16}, {88 , 16}, {104, 16}, {120, 16}, {136, 16}, {152, 16}, {168, 16}, {184, 16}, {200, 16}, {220, 16},
+ {6 , 32}, {28 , 32}, {44 , 32}, {60 , 32}, {76 , 32}, {92 , 32}, {108, 32}, {124, 32}, {140, 32}, {156, 32}, {172, 32}, {188, 32}, {214, 32},
+ {8 , 48}, {32 , 48}, {48 , 48}, {64 , 48}, {80 , 48}, {96 , 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, {224, 48},
+ {2 , 64}, {22 , 64}, {42 , 64}, {102, 64}, {160, 64}, {176, 64}, {192, 64}, {208, 64}, {224, 64},
+
+ // Underglow (64 -> 75)
+ {216, 56}, {181, 57}, {138, 59}, {105, 58}, {52 , 60}, {10 , 60},
+ {20 , 12}, {54 , 12}, {102, 10}, {145, 13}, {182, 9}, {211, 10},
+}, {
+ // Key matrix (0 -> 63)
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4,
+ 1, 1, 1, 4, 1, 1, 4, 4, 4,
+
+ // Underglow (64 -> 75)
+ 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2
+} };
+#endif
diff --git a/keyboards/mwstudio/mw65_rgb/keyboard.json b/keyboards/mwstudio/mw65_rgb/keyboard.json
index 5508e3b663..ce8e3f978c 100644
--- a/keyboards/mwstudio/mw65_rgb/keyboard.json
+++ b/keyboards/mwstudio/mw65_rgb/keyboard.json
@@ -54,91 +54,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"x": 180, "y": 52, "flags": 2},
- {"x": 146, "y": 52, "flags": 2},
- {"x": 86, "y": 52, "flags": 2},
- {"x": 45, "y": 52, "flags": 2},
- {"x": 7, "y": 52, "flags": 2},
- {"x": 7, "y": 36, "flags": 2},
- {"x": 7, "y": 20, "flags": 2},
- {"x": 7, "y": 4, "flags": 2},
- {"x": 45, "y": 4, "flags": 2},
- {"x": 86, "y": 4, "flags": 2},
- {"x": 146, "y": 4, "flags": 2},
- {"x": 180, "y": 4, "flags": 2},
- {"x": 217, "y": 4, "flags": 2},
- {"x": 217, "y": 20, "flags": 2},
- {"x": 217, "y": 36, "flags": 2},
- {"x": 217, "y": 52, "flags": 2},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4},
- {"matrix": [4, 13], "x": 209, "y": 64, "flags": 4},
- {"matrix": [4, 12], "x": 194, "y": 64, "flags": 4},
- {"matrix": [4, 11], "x": 173, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 156, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 36, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 19, "y": 64, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [3, 0], "x": 8, "y": 48, "flags": 1},
- {"matrix": [3, 2], "x": 31, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 46, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 61, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 76, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 91, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 106, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 121, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 136, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 151, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 166, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 188, "y": 48, "flags": 1},
- {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 200, "y": 32, "flags": 1},
- {"matrix": [2, 11], "x": 175, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 145, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 130, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 115, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 100, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 85, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 70, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 55, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 40, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 25, "y": 32, "flags": 4},
- {"matrix": [2, 0], "x": 5, "y": 32, "flags": 8},
- {"matrix": [1, 0], "x": 3, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 21, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 36, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 51, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 66, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 81, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 111, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 126, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 141, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 156, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 171, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 186, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 205, "y": 16, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}
- ],
"max_brightness": 200
},
"features": {
diff --git a/keyboards/mwstudio/mw65_rgb/mw65_rgb.c b/keyboards/mwstudio/mw65_rgb/mw65_rgb.c
new file mode 100644
index 0000000000..0cd8fdaa75
--- /dev/null
+++ b/keyboards/mwstudio/mw65_rgb/mw65_rgb.c
@@ -0,0 +1,47 @@
+/* Copyright 2021 TW59420
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ { 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68 },
+ { 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67 },
+ { 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, NO_LED, 40, 39 },
+ { 25, NO_LED, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38 },
+ { 24, 23, 22, NO_LED, NO_LED, NO_LED, 21, NO_LED, NO_LED, NO_LED, 20, 19, 18, 17, 16 }
+}, {
+ //Underglow (0 -> 15)
+ {180, 52}, {146, 52}, {86 , 52}, {45 , 52}, {7 , 52}, {7 , 36}, {7 , 20}, {7 , 4}, {45 , 4}, {86 , 4}, {146, 4}, {180, 4}, {217, 4}, {217, 20}, {217, 36}, {217, 52},
+
+ //Key matrix (16 -> 83)
+ {224, 64}, {209, 64}, {194, 64}, {173, 64}, {156, 64}, {96 , 64}, {36 , 64}, {19 , 64}, {2 , 64},
+ {8 , 48}, {31 , 48}, {46 , 48}, {61 , 48}, {76 , 48}, {91 , 48}, {106, 48}, {121, 48}, {136, 48}, {151, 48}, {166, 48}, {188, 48}, {210, 48}, {224, 48},
+ {224, 32}, {200, 32}, {175, 32}, {160, 32}, {145, 32}, {130, 32}, {115, 32}, {100, 32}, {85 , 32}, {70 , 32}, {55 , 32}, {40 , 32}, {25 , 32}, {5 , 32},
+ {3 , 16}, {21 , 16}, {36 , 16}, {51 , 16}, {66 , 16}, {81 , 16}, {96 , 16}, {111, 16}, {126, 16}, {141, 16}, {156, 16}, {171, 16}, {186, 16}, {205, 16}, {224, 16},
+ {224, 0}, {202, 0}, {180, 0}, {165, 0}, {150, 0}, {135, 0}, {120, 0}, {105, 0}, {90 , 0}, {75 , 0}, {60 , 0}, {45 , 0}, {30 , 0}, {15 , 0}, {0 , 0},
+}, {
+ //Underglow (0 -> 15)
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+
+ //Key matrix (16 -> 82)
+ 4, 4, 4, 1, 1, 4, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4,
+ 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+} };
+#endif
diff --git a/keyboards/mwstudio/mw75/keyboard.json b/keyboards/mwstudio/mw75/keyboard.json
index 4096bd943a..489e711c5b 100644
--- a/keyboards/mwstudio/mw75/keyboard.json
+++ b/keyboards/mwstudio/mw75/keyboard.json
@@ -51,105 +51,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [5, 14], "x": 217, "y": 60, "flags": 1},
- {"matrix": [5, 13], "x": 203, "y": 60, "flags": 1},
- {"matrix": [5, 12], "x": 189, "y": 60, "flags": 1},
- {"matrix": [5, 11], "x": 166, "y": 60, "flags": 1},
- {"matrix": [5, 10], "x": 150, "y": 60, "flags": 1},
- {"matrix": [5, 6], "x": 95, "y": 60, "flags": 1},
- {"matrix": [5, 2], "x": 40, "y": 60, "flags": 1},
- {"matrix": [5, 1], "x": 24, "y": 60, "flags": 1},
- {"matrix": [5, 0], "x": 8, "y": 60, "flags": 1},
- {"matrix": [4, 14], "x": 217, "y": 50, "flags": 1},
- {"matrix": [4, 13], "x": 203, "y": 50, "flags": 1},
- {"matrix": [4, 12], "x": 184, "y": 50, "flags": 1},
- {"matrix": [4, 11], "x": 165, "y": 50, "flags": 1},
- {"matrix": [4, 10], "x": 151, "y": 50, "flags": 1},
- {"matrix": [4, 9], "x": 137, "y": 50, "flags": 1},
- {"matrix": [4, 8], "x": 123, "y": 50, "flags": 1},
- {"matrix": [4, 7], "x": 109, "y": 50, "flags": 1},
- {"matrix": [4, 6], "x": 95, "y": 50, "flags": 1},
- {"matrix": [4, 5], "x": 81, "y": 50, "flags": 1},
- {"matrix": [4, 4], "x": 67, "y": 50, "flags": 1},
- {"matrix": [4, 3], "x": 53, "y": 50, "flags": 1},
- {"matrix": [4, 2], "x": 39, "y": 50, "flags": 1},
- {"matrix": [4, 0], "x": 17, "y": 50, "flags": 1},
- {"matrix": [3, 14], "x": 217, "y": 40, "flags": 1},
- {"matrix": [3, 13], "x": 195, "y": 40, "flags": 1},
- {"matrix": [3, 11], "x": 172, "y": 40, "flags": 1},
- {"matrix": [3, 10], "x": 158, "y": 40, "flags": 1},
- {"matrix": [3, 9], "x": 144, "y": 40, "flags": 1},
- {"matrix": [3, 8], "x": 130, "y": 40, "flags": 1},
- {"matrix": [3, 7], "x": 116, "y": 40, "flags": 1},
- {"matrix": [3, 6], "x": 102, "y": 40, "flags": 1},
- {"matrix": [3, 5], "x": 88, "y": 40, "flags": 1},
- {"matrix": [3, 4], "x": 74, "y": 40, "flags": 1},
- {"matrix": [3, 3], "x": 60, "y": 40, "flags": 1},
- {"matrix": [3, 2], "x": 46, "y": 40, "flags": 1},
- {"matrix": [3, 1], "x": 32, "y": 40, "flags": 1},
- {"matrix": [3, 0], "x": 13, "y": 40, "flags": 1},
- {"matrix": [2, 14], "x": 217, "y": 30, "flags": 1},
- {"matrix": [2, 13], "x": 199, "y": 30, "flags": 1},
- {"matrix": [2, 12], "x": 181, "y": 30, "flags": 1},
- {"matrix": [2, 11], "x": 165, "y": 30, "flags": 1},
- {"matrix": [2, 10], "x": 151, "y": 30, "flags": 1},
- {"matrix": [2, 9], "x": 137, "y": 30, "flags": 1},
- {"matrix": [2, 8], "x": 123, "y": 30, "flags": 1},
- {"matrix": [2, 7], "x": 109, "y": 30, "flags": 1},
- {"matrix": [2, 6], "x": 95, "y": 30, "flags": 1},
- {"matrix": [2, 5], "x": 81, "y": 30, "flags": 1},
- {"matrix": [2, 4], "x": 67, "y": 30, "flags": 1},
- {"matrix": [2, 3], "x": 53, "y": 30, "flags": 1},
- {"matrix": [2, 2], "x": 39, "y": 30, "flags": 1},
- {"matrix": [2, 1], "x": 25, "y": 30, "flags": 1},
- {"matrix": [2, 0], "x": 9, "y": 30, "flags": 1},
- {"matrix": [1, 14], "x": 217, "y": 20, "flags": 1},
- {"matrix": [1, 13], "x": 196, "y": 20, "flags": 1},
- {"matrix": [1, 12], "x": 175, "y": 20, "flags": 1},
- {"matrix": [1, 11], "x": 161, "y": 20, "flags": 1},
- {"matrix": [1, 10], "x": 147, "y": 20, "flags": 1},
- {"matrix": [1, 9], "x": 133, "y": 20, "flags": 1},
- {"matrix": [1, 8], "x": 119, "y": 20, "flags": 1},
- {"matrix": [1, 7], "x": 105, "y": 20, "flags": 1},
- {"matrix": [1, 6], "x": 91, "y": 20, "flags": 1},
- {"matrix": [1, 5], "x": 77, "y": 20, "flags": 1},
- {"matrix": [1, 4], "x": 63, "y": 20, "flags": 1},
- {"matrix": [1, 3], "x": 49, "y": 20, "flags": 1},
- {"matrix": [1, 2], "x": 35, "y": 20, "flags": 1},
- {"matrix": [1, 1], "x": 21, "y": 20, "flags": 1},
- {"matrix": [1, 0], "x": 7, "y": 20, "flags": 1},
- {"matrix": [0, 14], "x": 217, "y": 5, "flags": 1},
- {"matrix": [0, 13], "x": 196, "y": 5, "flags": 1},
- {"matrix": [0, 12], "x": 182, "y": 5, "flags": 1},
- {"matrix": [0, 11], "x": 168, "y": 5, "flags": 1},
- {"matrix": [0, 10], "x": 154, "y": 5, "flags": 1},
- {"matrix": [0, 9], "x": 133, "y": 5, "flags": 1},
- {"matrix": [0, 8], "x": 119, "y": 5, "flags": 1},
- {"matrix": [0, 7], "x": 105, "y": 5, "flags": 1},
- {"matrix": [0, 6], "x": 91, "y": 5, "flags": 1},
- {"matrix": [0, 5], "x": 70, "y": 5, "flags": 1},
- {"matrix": [0, 4], "x": 56, "y": 5, "flags": 1},
- {"matrix": [0, 3], "x": 42, "y": 5, "flags": 1},
- {"matrix": [0, 2], "x": 28, "y": 5, "flags": 1},
- {"matrix": [0, 1], "x": 7, "y": 5, "flags": 1},
- {"matrix": [0, 0], "x": 14, "y": 14, "flags": 1},
- {"matrix": [6, 0], "x": 42, "y": 14, "flags": 1},
- {"matrix": [6, 1], "x": 98, "y": 14, "flags": 1},
- {"matrix": [6, 2], "x": 154, "y": 14, "flags": 1},
- {"matrix": [6, 3], "x": 182, "y": 14, "flags": 1},
- {"matrix": [6, 4], "x": 210, "y": 14, "flags": 1},
- {"matrix": [6, 5], "x": 210, "y": 25, "flags": 1},
- {"matrix": [6, 6], "x": 210, "y": 40, "flags": 1},
- {"matrix": [6, 7], "x": 210, "y": 55, "flags": 1},
- {"matrix": [6, 8], "x": 182, "y": 55, "flags": 1},
- {"matrix": [6, 9], "x": 126, "y": 55, "flags": 1},
- {"matrix": [6, 10], "x": 98, "y": 55, "flags": 1},
- {"matrix": [6, 11], "x": 42, "y": 55, "flags": 1},
- {"matrix": [6, 12], "x": 14, "y": 55, "flags": 1},
- {"matrix": [6, 13], "x": 14, "y": 40, "flags": 1},
- {"matrix": [6, 14], "x": 14, "y": 25, "flags": 1}
- ],
"max_brightness": 200
},
"features": {
diff --git a/keyboards/mwstudio/mw75/mw75.c b/keyboards/mwstudio/mw75/mw75.c
new file mode 100644
index 0000000000..dda51cb971
--- /dev/null
+++ b/keyboards/mwstudio/mw75/mw75.c
@@ -0,0 +1,47 @@
+/* Copyright 2021 TW59420
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ { 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67 },
+ { 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52 },
+ { 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37 },
+ { 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, NO_LED, 24, 23 },
+ { 22, NO_LED, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9 },
+ { 8, 7, 6, NO_LED, NO_LED, NO_LED, 5, NO_LED, NO_LED, NO_LED, 4, 3, 2, 1, 0 },
+ { 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96 }
+}, {
+ { 217, 60 }, { 203, 60 }, { 189, 60 }, { 166, 60 }, { 150, 60 }, { 95, 60 }, { 40, 60 }, { 24, 60 }, { 8, 60 },
+ { 217, 50 }, { 203, 50 }, { 184, 50 }, { 165, 50 }, { 151, 50 }, { 137, 50 }, { 123, 50 }, { 109, 50 }, { 95, 50 }, { 81, 50 }, { 67, 50 }, { 53, 50 }, { 39, 50 }, { 17, 50 },
+ { 217, 40 }, { 195, 40 }, { 172, 40 }, { 158, 40 }, { 144, 40 }, { 130, 40 }, { 116, 40 }, { 102, 40 }, { 88, 40 }, { 74, 40 }, { 60, 40 }, { 46, 40 }, { 32, 40 }, { 13, 40 },
+ { 217, 30 }, { 199, 30 }, { 181, 30 }, { 165, 30 }, { 151, 30 }, { 137, 30 }, { 123, 30 }, { 109, 30 }, { 95, 30 }, { 81, 30 }, { 67, 30 }, { 53, 30 }, { 39, 30 }, { 25, 30 }, { 9, 30 },
+ { 217, 20 }, { 196, 20 }, { 175, 20 }, { 161, 20 }, { 147, 20 }, { 133, 20 }, { 119, 20 }, { 105, 20 }, { 91, 20 }, { 77, 20 }, { 63, 20 }, { 49, 20 }, { 35, 20 }, { 21, 20 }, { 7, 20 },
+ { 217, 5 }, { 196, 5 }, { 182, 5 }, { 168, 5 }, { 154, 5 }, { 133, 5 }, { 119, 5 }, { 105, 5 }, { 91, 5 }, { 70, 5 }, { 56, 5 }, { 42, 5 }, { 28, 5 }, { 7, 5 },
+
+ { 14, 14 }, { 42, 14 }, { 98, 14 }, { 154, 14 }, { 182, 14 }, { 210, 14 }, { 210, 25 }, { 210, 40 },
+ { 210, 55 },{ 182, 55 },{ 126, 55 },{ 98, 55 }, { 42, 55 }, { 14, 55 }, { 14, 40 }, { 14, 25 }
+}, {
+ 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
+} };
+#endif
diff --git a/keyboards/mwstudio/mw75r2/keyboard.json b/keyboards/mwstudio/mw75r2/keyboard.json
index 6cb4269400..10c6a226ca 100644
--- a/keyboards/mwstudio/mw75r2/keyboard.json
+++ b/keyboards/mwstudio/mw75r2/keyboard.json
@@ -39,30 +39,7 @@
"pixel_fractal": true,
"pixel_rain": true
},
- "driver": "ws2812",
- "layout": [
- {"x": 105, "y": 60, "flags": 1},
- {"x": 70, "y": 60, "flags": 1},
- {"x": 35, "y": 60, "flags": 1},
- {"x": 0, "y": 60, "flags": 1},
- {"x": 0, "y": 40, "flags": 1},
- {"x": 0, "y": 20, "flags": 1},
- {"x": 0, "y": 0, "flags": 1},
- {"x": 42, "y": 0, "flags": 1},
- {"x": 84, "y": 0, "flags": 1},
- {"x": 126, "y": 0, "flags": 1},
- {"x": 168, "y": 0, "flags": 1},
- {"x": 210, "y": 0, "flags": 1},
- {"x": 210, "y": 20, "flags": 1},
- {"x": 210, "y": 40, "flags": 1},
- {"x": 40, "y": 20, "flags": 1},
- {"x": 120, "y": 20, "flags": 1},
- {"x": 40, "y": 40, "flags": 1},
- {"x": 120, "y": 40, "flags": 1},
- {"x": 210, "y": 60, "flags": 1},
- {"x": 175, "y": 60, "flags": 1},
- {"x": 140, "y": 60, "flags": 1}
- ]
+ "driver": "ws2812"
},
"features": {
"bootmagic": true,
diff --git a/keyboards/mwstudio/mw75r2/mw75r2.c b/keyboards/mwstudio/mw75r2/mw75r2.c
new file mode 100644
index 0000000000..ca058e9d8d
--- /dev/null
+++ b/keyboards/mwstudio/mw75r2/mw75r2.c
@@ -0,0 +1,31 @@
+/* Copyright 2021 TW59420
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }
+}, {
+ { 105, 60 }, { 70, 60 }, { 35, 60 }, { 0, 60 }, { 0, 40 }, { 0, 20 }, { 0, 0 }, { 42, 0 }, { 84, 0 }, { 126, 0 }, { 168, 0 }, { 210, 0 }, { 210, 20 }, { 210, 40 }, { 40, 20 }, { 120, 20 }, { 40, 40 }, { 120, 40 }, { 210, 60 }, { 175, 60 },{ 140, 60 }
+}, {
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
+} };
+#endif
diff --git a/keyboards/nack/keyboard.json b/keyboards/nack/keyboard.json
index 2368786530..cd08aac0af 100644
--- a/keyboards/nack/keyboard.json
+++ b/keyboards/nack/keyboard.json
@@ -73,60 +73,6 @@
"val": 64
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 19, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 38, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 57, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 76, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 95, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 114, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 133, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 152, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 171, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 190, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 209, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 223, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4},
- {"matrix": [1, 1], "x": 19, "y": 21, "flags": 4},
- {"matrix": [1, 2], "x": 38, "y": 21, "flags": 4},
- {"matrix": [1, 3], "x": 57, "y": 21, "flags": 4},
- {"matrix": [1, 4], "x": 76, "y": 21, "flags": 4},
- {"matrix": [1, 5], "x": 95, "y": 21, "flags": 4},
- {"matrix": [1, 6], "x": 114, "y": 21, "flags": 4},
- {"matrix": [1, 7], "x": 133, "y": 21, "flags": 4},
- {"matrix": [1, 8], "x": 152, "y": 21, "flags": 4},
- {"matrix": [1, 9], "x": 171, "y": 21, "flags": 4},
- {"matrix": [1, 10], "x": 190, "y": 21, "flags": 4},
- {"matrix": [1, 11], "x": 209, "y": 21, "flags": 4},
- {"matrix": [1, 12], "x": 223, "y": 21, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 42, "flags": 4},
- {"matrix": [2, 1], "x": 19, "y": 42, "flags": 4},
- {"matrix": [2, 2], "x": 38, "y": 42, "flags": 4},
- {"matrix": [2, 3], "x": 57, "y": 42, "flags": 4},
- {"matrix": [2, 4], "x": 76, "y": 42, "flags": 4},
- {"matrix": [2, 5], "x": 95, "y": 42, "flags": 4},
- {"matrix": [2, 6], "x": 114, "y": 42, "flags": 4},
- {"matrix": [2, 7], "x": 133, "y": 42, "flags": 4},
- {"matrix": [2, 8], "x": 152, "y": 42, "flags": 4},
- {"matrix": [2, 9], "x": 171, "y": 42, "flags": 4},
- {"matrix": [2, 10], "x": 190, "y": 42, "flags": 4},
- {"matrix": [2, 11], "x": 209, "y": 42, "flags": 4},
- {"matrix": [2, 12], "x": 223, "y": 42, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 63, "flags": 4},
- {"matrix": [3, 1], "x": 19, "y": 63, "flags": 4},
- {"matrix": [3, 2], "x": 38, "y": 63, "flags": 4},
- {"matrix": [3, 3], "x": 57, "y": 63, "flags": 4},
- {"matrix": [3, 4], "x": 76, "y": 63, "flags": 4},
- {"matrix": [3, 5], "x": 95, "y": 63, "flags": 4},
- {"matrix": [3, 6], "x": 114, "y": 63, "flags": 4},
- {"matrix": [3, 7], "x": 133, "y": 63, "flags": 4},
- {"matrix": [3, 8], "x": 152, "y": 63, "flags": 4},
- {"matrix": [3, 9], "x": 171, "y": 63, "flags": 4},
- {"matrix": [3, 10], "x": 190, "y": 63, "flags": 4},
- {"matrix": [3, 11], "x": 209, "y": 63, "flags": 4},
- {"matrix": [3, 12], "x": 223, "y": 63, "flags": 4}
- ],
"hue_steps": 10,
"sat_steps": 10,
"val_steps": 10,
diff --git a/keyboards/nack/nack.c b/keyboards/nack/nack.c
new file mode 100644
index 0000000000..27e029a9fd
--- /dev/null
+++ b/keyboards/nack/nack.c
@@ -0,0 +1,39 @@
+/* Copyright 2020 farfalleflickan
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+ led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 },
+ { 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 },
+ { 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38 },
+ { 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51 }
+ }, {
+ // LED Index to Physical Position
+ { 0, 0 }, { 19, 0 }, { 38, 0 }, { 57, 0 }, { 76, 0 }, { 95, 0 }, { 114, 0 }, { 133, 0 }, { 152, 0 }, { 171, 0 }, { 190, 0 }, { 209, 0 }, { 223, 0 },
+ { 0, 21 }, { 19, 21 }, { 38, 21 }, { 57, 21 }, { 76, 21 }, { 95, 21 }, { 114, 21 }, { 133, 21 }, { 152, 21 }, { 171, 21 }, { 190, 21 }, { 209, 21 }, { 223, 21 },
+ { 0, 42 }, { 19, 42 }, { 38, 42 }, { 57, 42 }, { 76, 42 }, { 95, 42 }, { 114, 42 }, { 133, 42 }, { 152, 42 }, { 171, 42 }, { 190, 42 }, { 209, 42 }, { 223, 42 },
+ { 0, 63 }, { 19, 63 }, { 38, 63 }, { 57, 63 }, { 76, 63 }, { 95, 63 }, { 114, 63 }, { 133, 63 }, { 152, 63 }, { 171, 63 }, { 190, 63 }, { 209, 63 }, { 223, 63 }
+ }, {
+ // LED Index to Flag
+ 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, 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, 4, 4
+ } };
+#endif
diff --git a/keyboards/ning/tiny_board/tb16_rgb/keyboard.json b/keyboards/ning/tiny_board/tb16_rgb/keyboard.json
index 104a4a84a6..9e99ef879a 100644
--- a/keyboards/ning/tiny_board/tb16_rgb/keyboard.json
+++ b/keyboards/ning/tiny_board/tb16_rgb/keyboard.json
@@ -20,25 +20,7 @@
"default": {
"animation": "typing_heatmap"
},
- "driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 224, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4},
- {"matrix": [1, 1], "x": 75, "y": 21, "flags": 4},
- {"matrix": [1, 2], "x": 150, "y": 21, "flags": 4},
- {"matrix": [1, 3], "x": 224, "y": 21, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 42, "flags": 4},
- {"matrix": [2, 1], "x": 75, "y": 42, "flags": 4},
- {"matrix": [2, 2], "x": 150, "y": 42, "flags": 4},
- {"matrix": [2, 3], "x": 224, "y": 42, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 64, "flags": 4},
- {"matrix": [3, 1], "x": 75, "y": 64, "flags": 4},
- {"matrix": [3, 2], "x": 150, "y": 64, "flags": 4},
- {"matrix": [3, 3], "x": 224, "y": 64, "flags": 4}
- ]
+ "driver": "ws2812"
},
"matrix_pins": {
"cols": ["B6", "B1", "B3", "B2"],
diff --git a/keyboards/ning/tiny_board/tb16_rgb/tb16_rgb.c b/keyboards/ning/tiny_board/tb16_rgb/tb16_rgb.c
new file mode 100644
index 0000000000..e7807be5e8
--- /dev/null
+++ b/keyboards/ning/tiny_board/tb16_rgb/tb16_rgb.c
@@ -0,0 +1,31 @@
+/* Copyright 2023 Ning (@ningjx)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3 },
+ { 4, 5, 6, 7 },
+ { 8, 9, 10, 11 },
+ { 12, 13, 14, 15 }
+}, {
+ {0,0},{75,0},{150,0},{224,0},
+ {0,21},{75,21},{150,21},{224,21},
+ {0,42},{75,42},{150,42},{224,42},
+ {0,64},{75,64},{150,64},{224,64}
+}, {
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
+} };
diff --git a/keyboards/novelkeys/nk20/keyboard.json b/keyboards/novelkeys/nk20/keyboard.json
index e2560e0c30..f2728967b4 100644
--- a/keyboards/novelkeys/nk20/keyboard.json
+++ b/keyboards/novelkeys/nk20/keyboard.json
@@ -66,28 +66,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 75, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 149, "y": 0, "flags": 1},
- {"matrix": [1, 3], "x": 224, "y": 15, "flags": 1},
- {"matrix": [1, 2], "x": 149, "y": 15, "flags": 1},
- {"matrix": [1, 1], "x": 75, "y": 15, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
- {"matrix": [2, 0], "x": 0, "y": 27, "flags": 4},
- {"matrix": [2, 1], "x": 75, "y": 27, "flags": 4},
- {"matrix": [2, 2], "x": 149, "y": 27, "flags": 4},
- {"matrix": [2, 3], "x": 224, "y": 34, "flags": 1},
- {"matrix": [3, 2], "x": 149, "y": 40, "flags": 4},
- {"matrix": [3, 1], "x": 75, "y": 40, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 40, "flags": 4},
- {"matrix": [4, 0], "x": 0, "y": 52, "flags": 4},
- {"matrix": [4, 1], "x": 75, "y": 52, "flags": 4},
- {"matrix": [4, 2], "x": 149, "y": 52, "flags": 4},
- {"matrix": [4, 3], "x": 224, "y": 58, "flags": 1},
- {"matrix": [5, 2], "x": 149, "y": 64, "flags": 4},
- {"matrix": [5, 0], "x": 37, "y": 64, "flags": 4}
- ],
"max_brightness": 210,
"sleep": true
},
diff --git a/keyboards/novelkeys/nk20/nk20.c b/keyboards/novelkeys/nk20/nk20.c
new file mode 100644
index 0000000000..23350e1037
--- /dev/null
+++ b/keyboards/novelkeys/nk20/nk20.c
@@ -0,0 +1,40 @@
+/* Copyright 2022 Yiancar
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+// clang-format off
+led_config_t g_led_config = { {
+ { 0, 1, 2, NO_LED },
+ { 6, 5, 4, 3 },
+ { 7, 8, 9, 10 },
+ { 13, 12, 11, NO_LED },
+ { 14, 15, 16, 17 },
+ { 19, NO_LED, 18, NO_LED },
+}, {
+ { 0,0 }, { 75,0 }, {149,0 }, {224,15 }, {149,15 }, { 75,15 }, { 0,15 }, { 0,27 }, { 75,27 }, {149,27 },
+ {224,34 }, {149,40 }, { 75,40 }, { 0,40 }, { 0,52 }, { 75,52 }, {149,52 }, {224,58 }, {149,64 }, { 37,64 }
+}, {
+ 1, 1, 1,
+ 1, 1, 1, 1,
+ 4, 4, 4, 1,
+ 4, 4, 4,
+ 4, 4, 4, 1,
+ 4, 4
+} };
+// clang-format on
+#endif
diff --git a/keyboards/novelkeys/nk65b/keyboard.json b/keyboards/novelkeys/nk65b/keyboard.json
index 74204a4413..0c2794c120 100755
--- a/keyboards/novelkeys/nk65b/keyboard.json
+++ b/keyboards/novelkeys/nk65b/keyboard.json
@@ -66,76 +66,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 203, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 225, "y": 0, "flags": 1},
- {"matrix": [1, 14], "x": 225, "y": 16, "flags": 1},
- {"matrix": [2, 13], "x": 206, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
- {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 201, "y": 32, "flags": 1},
- {"matrix": [2, 14], "x": 225, "y": 32, "flags": 1},
- {"matrix": [3, 14], "x": 225, "y": 48, "flags": 1},
- {"matrix": [3, 13], "x": 210, "y": 48, "flags": 1},
- {"matrix": [3, 12], "x": 189, "y": 48, "flags": 1},
- {"matrix": [3, 11], "x": 169, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 154, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 139, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 124, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 109, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 94, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 79, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1},
- {"matrix": [4, 9], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 150, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 165, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 180, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 195, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 210, "y": 64, "flags": 1},
- {"x": 225, "y": 64, "flags": 1}
- ],
"max_brightness": 130,
"sleep": true
},
diff --git a/keyboards/novelkeys/nk65b/nk65b.c b/keyboards/novelkeys/nk65b/nk65b.c
index 400ab35ef3..369bab262f 100755
--- a/keyboards/novelkeys/nk65b/nk65b.c
+++ b/keyboards/novelkeys/nk65b/nk65b.c
@@ -28,3 +28,27 @@ layer_state_t layer_state_set_kb(layer_state_t state) {
gpio_write_pin(B3, !layer_state_cmp(state, 2));
return layer_state_set_user(state);
}
+
+#ifdef RGB_MATRIX_ENABLE
+// clang-format off
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, NO_LED, 15 },
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 16, 43 },
+ { 57, NO_LED, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44 },
+ { 58, 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, 61, 62, 63, 64, 65, 66 }
+}, {
+ { 0,0 }, { 15,0 }, { 30,0 }, { 45,0 }, { 60,0 }, { 75,0 }, { 90,0 }, {105,0 }, {120,0 }, {135,0 }, {150,0 }, {165,0 }, {180,0 }, {203,0 },
+ {225,0 }, {225,16 }, {206,16 }, {188,16 }, {173,16 }, {158,16 }, {143,16 }, {128,16 }, {113,16 }, { 98,16 }, { 83,16 }, { 68,16 }, { 53,16 }, { 38,16 },
+ { 23,16 }, { 4,16 }, { 6,32 }, { 26,32 }, { 41,32 }, { 56,32 }, { 71,32 }, { 86,32 }, {101,32 }, {116,32 }, {131,32 }, {146,32 }, {161,32 }, {176,32 },
+ {201,32 }, {225,32 }, {225,48 }, {210,48 }, {189,48 }, {169,48 }, {154,48 }, {139,48 }, {124,48 }, {109,48 }, { 94,48 }, { 79,48 }, { 64,48 }, { 49,48 },
+ { 34,48 }, { 9,48 }, { 2,64 }, { 21,64 }, { 39,64 }, { 96,64 }, {150,64 }, {165,64 }, {180,64 }, {195,64 }, {210,64 }, {225,64 }
+}, {
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1
+} };
+// clang-format on
+#endif
diff --git a/keyboards/novelkeys/nk87b/keyboard.json b/keyboards/novelkeys/nk87b/keyboard.json
index 2213dfa86d..563f502aae 100755
--- a/keyboards/novelkeys/nk87b/keyboard.json
+++ b/keyboards/novelkeys/nk87b/keyboard.json
@@ -66,95 +66,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 29, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 42, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 55, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 71, "y": 0, "flags": 1},
- {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 97, "y": 0, "flags": 1},
- {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1},
- {"matrix": [0, 9], "x": 127, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 140, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 153, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 166, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 182, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1},
- {"matrix": [0, 16], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 16], "x": 224, "y": 15, "flags": 1},
- {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1},
- {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1},
- {"matrix": [1, 13], "x": 175, "y": 15, "flags": 1},
- {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4},
- {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 4},
- {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1},
- {"matrix": [2, 1], "x": 19, "y": 27, "flags": 4},
- {"matrix": [2, 2], "x": 32, "y": 27, "flags": 4},
- {"matrix": [2, 3], "x": 45, "y": 27, "flags": 4},
- {"matrix": [2, 4], "x": 58, "y": 27, "flags": 4},
- {"matrix": [2, 5], "x": 71, "y": 27, "flags": 4},
- {"matrix": [2, 6], "x": 84, "y": 27, "flags": 4},
- {"matrix": [2, 7], "x": 97, "y": 27, "flags": 4},
- {"matrix": [2, 8], "x": 110, "y": 27, "flags": 4},
- {"matrix": [2, 9], "x": 123, "y": 27, "flags": 4},
- {"matrix": [2, 10], "x": 136, "y": 27, "flags": 4},
- {"matrix": [2, 11], "x": 149, "y": 27, "flags": 4},
- {"matrix": [2, 12], "x": 162, "y": 27, "flags": 4},
- {"matrix": [3, 12], "x": 179, "y": 27, "flags": 4},
- {"matrix": [2, 14], "x": 198, "y": 27, "flags": 1},
- {"matrix": [2, 15], "x": 211, "y": 27, "flags": 1},
- {"matrix": [2, 16], "x": 224, "y": 27, "flags": 1},
- {"matrix": [3, 13], "x": 174, "y": 40, "flags": 1},
- {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4},
- {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4},
- {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4},
- {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4},
- {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4},
- {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4},
- {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4},
- {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4},
- {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4},
- {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4},
- {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4},
- {"matrix": [3, 0], "x": 5, "y": 40, "flags": 1},
- {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1},
- {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4},
- {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4},
- {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4},
- {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4},
- {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4},
- {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4},
- {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4},
- {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4},
- {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4},
- {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4},
- {"matrix": [4, 12], "x": 170, "y": 52, "flags": 1},
- {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1},
- {"matrix": [5, 16], "x": 224, "y": 64, "flags": 1},
- {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1},
- {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1},
- {"matrix": [5, 13], "x": 179, "y": 64, "flags": 1},
- {"matrix": [5, 12], "x": 162, "y": 64, "flags": 1},
- {"matrix": [5, 11], "x": 146, "y": 64, "flags": 1},
- {"matrix": [5, 6], "x": 91, "y": 64, "flags": 4},
- {"matrix": [5, 2], "x": 36, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 19, "y": 64, "flags": 1},
- {"matrix": [5, 0], "x": 3, "y": 64, "flags": 1}
- ],
"max_brightness": 114,
"sleep": true
},
diff --git a/keyboards/novelkeys/nk87b/nk87b.c b/keyboards/novelkeys/nk87b/nk87b.c
index 9cd36e745f..125b5d7404 100644
--- a/keyboards/novelkeys/nk87b/nk87b.c
+++ b/keyboards/novelkeys/nk87b/nk87b.c
@@ -29,3 +29,30 @@ layer_state_t layer_state_set_kb(layer_state_t state) {
gpio_write_pin(A4, !layer_state_cmp(state, 2));
return layer_state_set_user(state);
}
+
+#ifdef RGB_MATRIX_ENABLE
+// clang-format off
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 },
+ { 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17 },
+ { 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, NO_LED, 48, 49, 50 },
+ { 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 47, 51, NO_LED, NO_LED, NO_LED },
+ { 64, NO_LED, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, NO_LED, NO_LED, 76, NO_LED },
+ { 86, 85, 84, NO_LED, NO_LED, NO_LED, 83, NO_LED, NO_LED, NO_LED, NO_LED, 82, 81, 80, 79, 78, 77 },
+}, {
+ { 0,0 }, { 16,0 }, { 29,0 }, { 42,0 }, { 55,0 }, { 71,0 }, { 84,0 }, { 97,0 }, {110,0 }, {127,0 }, {140,0 }, {153,0 }, {166,0 }, {182,0 }, {198,0 }, {211,0 }, {224,0 },
+ {224,15 }, {211,15 }, {198,15 }, {175,15 }, {156,15 }, {143,15 }, {130,15 }, {117,15 }, {104,15 }, { 91,15 }, { 78,15 }, { 65,15 }, { 52,15 }, { 39,15 }, { 26,15 }, { 13,15 }, { 0,15 },
+ { 3,27 }, { 19,27 }, { 32,27 }, { 45,27 }, { 58,27 }, { 71,27 }, { 84,27 }, { 97,27 }, {110,27 }, {123,27 }, {136,27 }, {149,27 }, {162,27 }, {179,27 }, {198,27 }, {211,27 }, {224,27 },
+ {174,40 }, {153,40 }, {140,40 }, {127,40 }, {114,40 }, {101,40 }, { 88,40 }, { 75,40 }, { 62,40 }, { 49,40 }, { 36,40 }, { 23,40 }, { 5,40 }, { 8,52 }, { 29,52 }, { 42,52 }, { 55,52 },
+ { 68,52 }, { 81,52 }, { 94,52 }, {107,52 }, {120,52 }, {133,52 }, {146,52 }, {170,52 }, {211,52 }, {224,64 }, {211,64 }, {198,64 }, {179,64 }, {162,64 }, {146,64 }, { 91,64 }, { 36,64 },
+ { 19,64 }, { 3,64 }
+}, {
+ 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1, 1,
+ 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 1, 1, 1, 4, 1, 1, 1
+} };
+// clang-format on
+#endif
diff --git a/keyboards/omkbd/runner3680/5x6_5x8/5x6_5x8.c b/keyboards/omkbd/runner3680/5x6_5x8/5x6_5x8.c
new file mode 100644
index 0000000000..3fda310364
--- /dev/null
+++ b/keyboards/omkbd/runner3680/5x6_5x8/5x6_5x8.c
@@ -0,0 +1,52 @@
+/* Copyright 2021 omkbd
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { NO_LED, NO_LED, 5, 4, 3, 2, 1, 0 },
+ { NO_LED, NO_LED, 6, 7, 8, 9, 10, 11 },
+ { NO_LED, NO_LED, 17, 16, 15, 14, 13, 12 },
+ { NO_LED, NO_LED, 18, 19, 20, 21, 22, 23 },
+ { NO_LED, NO_LED, 29, 28, 27, 26, 25, 24 },
+ { 37, 36, 35, 34, 33, 32, 31, 30 },
+ { 38, 39, 40, 41, 42, 43, 44, 45 },
+ { 53, 52, 51, 50, 49, 48, 47, 46 },
+ { 54, 55, 56, 57, 58, 59, 60, 61 },
+ { 69, 68, 67, 66, 65, 64, 63, 62 }
+}, {
+ // LED Index to Physical Position
+ { 86, 0 }, { 69, 0 }, { 52, 0 }, { 34, 0 }, { 17, 0 }, { 0, 0 },
+ { 0, 16 }, { 17, 16 }, { 34, 16 }, { 52, 16 }, { 69, 16 }, { 86, 16 },
+ { 86, 32 }, { 69, 32 }, { 52, 32 }, { 34, 32 }, { 17, 32 }, { 0, 32 },
+ { 0, 48 }, { 17, 48 }, { 34, 48 }, { 52, 48 }, { 69, 48 }, { 86, 48 },
+ { 86, 64 }, { 69, 64 }, { 52, 64 }, { 34, 64 }, { 17, 64 }, { 0, 64 },
+ { 103, 0 }, { 121, 0 }, { 138, 0 }, { 155, 0 }, { 172, 0 }, { 190, 0 }, { 207, 0 }, { 224, 0 },
+ { 224, 16 }, { 207, 16 }, { 190, 16 }, { 172, 16 }, { 155, 16 }, { 138, 16 }, { 121, 16 }, { 103, 16 },
+ { 103, 32 }, { 121, 32 }, { 138, 32 }, { 155, 32 }, { 172, 32 }, { 190, 32 }, { 207, 32 }, { 224, 32 },
+ { 224, 48 }, { 207, 48 }, { 190, 48 }, { 172, 48 }, { 155, 48 }, { 138, 48 }, { 121, 48 }, { 103, 48 },
+ { 103, 64 }, { 121, 64 }, { 138, 64 }, { 155, 64 }, { 172, 64 }, { 190, 64 }, { 207, 64 }, { 224, 64 }
+}, {
+ // LED Index to Flag
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL
+} };
+#endif
diff --git a/keyboards/omkbd/runner3680/5x6_5x8/keyboard.json b/keyboards/omkbd/runner3680/5x6_5x8/keyboard.json
index 2033b0330d..2d912a1445 100644
--- a/keyboards/omkbd/runner3680/5x6_5x8/keyboard.json
+++ b/keyboards/omkbd/runner3680/5x6_5x8/keyboard.json
@@ -15,78 +15,6 @@
},
"rgb_matrix": {
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 7], "x": 86, "y": 0, "flags": 255},
- {"matrix": [0, 6], "x": 69, "y": 0, "flags": 255},
- {"matrix": [0, 5], "x": 52, "y": 0, "flags": 255},
- {"matrix": [0, 4], "x": 34, "y": 0, "flags": 255},
- {"matrix": [0, 3], "x": 17, "y": 0, "flags": 255},
- {"matrix": [0, 2], "x": 0, "y": 0, "flags": 255},
- {"matrix": [1, 2], "x": 0, "y": 16, "flags": 255},
- {"matrix": [1, 3], "x": 17, "y": 16, "flags": 255},
- {"matrix": [1, 4], "x": 34, "y": 16, "flags": 255},
- {"matrix": [1, 5], "x": 52, "y": 16, "flags": 255},
- {"matrix": [1, 6], "x": 69, "y": 16, "flags": 255},
- {"matrix": [1, 7], "x": 86, "y": 16, "flags": 255},
- {"matrix": [2, 7], "x": 86, "y": 32, "flags": 255},
- {"matrix": [2, 6], "x": 69, "y": 32, "flags": 255},
- {"matrix": [2, 5], "x": 52, "y": 32, "flags": 255},
- {"matrix": [2, 4], "x": 34, "y": 32, "flags": 255},
- {"matrix": [2, 3], "x": 17, "y": 32, "flags": 255},
- {"matrix": [2, 2], "x": 0, "y": 32, "flags": 255},
- {"matrix": [3, 2], "x": 0, "y": 48, "flags": 255},
- {"matrix": [3, 3], "x": 17, "y": 48, "flags": 255},
- {"matrix": [3, 4], "x": 34, "y": 48, "flags": 255},
- {"matrix": [3, 5], "x": 52, "y": 48, "flags": 255},
- {"matrix": [3, 6], "x": 69, "y": 48, "flags": 255},
- {"matrix": [3, 7], "x": 86, "y": 48, "flags": 255},
- {"matrix": [4, 7], "x": 86, "y": 64, "flags": 255},
- {"matrix": [4, 6], "x": 69, "y": 64, "flags": 255},
- {"matrix": [4, 5], "x": 52, "y": 64, "flags": 255},
- {"matrix": [4, 4], "x": 34, "y": 64, "flags": 255},
- {"matrix": [4, 3], "x": 17, "y": 64, "flags": 255},
- {"matrix": [4, 2], "x": 0, "y": 64, "flags": 255},
- {"matrix": [5, 7], "x": 103, "y": 0, "flags": 255},
- {"matrix": [5, 6], "x": 121, "y": 0, "flags": 255},
- {"matrix": [5, 5], "x": 138, "y": 0, "flags": 255},
- {"matrix": [5, 4], "x": 155, "y": 0, "flags": 255},
- {"matrix": [5, 3], "x": 172, "y": 0, "flags": 255},
- {"matrix": [5, 2], "x": 190, "y": 0, "flags": 255},
- {"matrix": [5, 1], "x": 207, "y": 0, "flags": 255},
- {"matrix": [5, 0], "x": 224, "y": 0, "flags": 255},
- {"matrix": [6, 0], "x": 224, "y": 16, "flags": 255},
- {"matrix": [6, 1], "x": 207, "y": 16, "flags": 255},
- {"matrix": [6, 2], "x": 190, "y": 16, "flags": 255},
- {"matrix": [6, 3], "x": 172, "y": 16, "flags": 255},
- {"matrix": [6, 4], "x": 155, "y": 16, "flags": 255},
- {"matrix": [6, 5], "x": 138, "y": 16, "flags": 255},
- {"matrix": [6, 6], "x": 121, "y": 16, "flags": 255},
- {"matrix": [6, 7], "x": 103, "y": 16, "flags": 255},
- {"matrix": [7, 7], "x": 103, "y": 32, "flags": 255},
- {"matrix": [7, 6], "x": 121, "y": 32, "flags": 255},
- {"matrix": [7, 5], "x": 138, "y": 32, "flags": 255},
- {"matrix": [7, 4], "x": 155, "y": 32, "flags": 255},
- {"matrix": [7, 3], "x": 172, "y": 32, "flags": 255},
- {"matrix": [7, 2], "x": 190, "y": 32, "flags": 255},
- {"matrix": [7, 1], "x": 207, "y": 32, "flags": 255},
- {"matrix": [7, 0], "x": 224, "y": 32, "flags": 255},
- {"matrix": [8, 0], "x": 224, "y": 48, "flags": 255},
- {"matrix": [8, 1], "x": 207, "y": 48, "flags": 255},
- {"matrix": [8, 2], "x": 190, "y": 48, "flags": 255},
- {"matrix": [8, 3], "x": 172, "y": 48, "flags": 255},
- {"matrix": [8, 4], "x": 155, "y": 48, "flags": 255},
- {"matrix": [8, 5], "x": 138, "y": 48, "flags": 255},
- {"matrix": [8, 6], "x": 121, "y": 48, "flags": 255},
- {"matrix": [8, 7], "x": 103, "y": 48, "flags": 255},
- {"matrix": [9, 7], "x": 103, "y": 64, "flags": 255},
- {"matrix": [9, 6], "x": 121, "y": 64, "flags": 255},
- {"matrix": [9, 5], "x": 138, "y": 64, "flags": 255},
- {"matrix": [9, 4], "x": 155, "y": 64, "flags": 255},
- {"matrix": [9, 3], "x": 172, "y": 64, "flags": 255},
- {"matrix": [9, 2], "x": 190, "y": 64, "flags": 255},
- {"matrix": [9, 1], "x": 207, "y": 64, "flags": 255},
- {"matrix": [9, 0], "x": 224, "y": 64, "flags": 255}
- ],
"split_count": [30, 40]
},
"matrix_pins": {
diff --git a/keyboards/orthodox/common/glcdfont.c b/keyboards/orthodox/common/glcdfont.c
new file mode 100644
index 0000000000..d607d34b77
--- /dev/null
+++ b/keyboards/orthodox/common/glcdfont.c
@@ -0,0 +1,265 @@
+// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0.
+// See gfxfont.h for newer custom bitmap font info.
+
+#include "progmem.h"
+
+// Standard ASCII 5x7 font
+
+static const unsigned char font[] PROGMEM = {
+ 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x3E, 0x5B, 0x4F, 0x5B, 0x3E,
+ 0x3E, 0x6B, 0x4F, 0x6B, 0x3E,
+ 0x1C, 0x3E, 0x7C, 0x3E, 0x1C,
+ 0x18, 0x3C, 0x7E, 0x3C, 0x18,
+ 0x1C, 0x57, 0x7D, 0x57, 0x1C,
+ 0x1C, 0x5E, 0x7F, 0x5E, 0x1C,
+ 0x00, 0x18, 0x3C, 0x18, 0x00,
+ 0xFF, 0xE7, 0xC3, 0xE7, 0xFF,
+ 0x00, 0x18, 0x24, 0x18, 0x00,
+ 0xFF, 0xE7, 0xDB, 0xE7, 0xFF,
+ 0x30, 0x48, 0x3A, 0x06, 0x0E,
+ 0x26, 0x29, 0x79, 0x29, 0x26,
+ 0x40, 0x7F, 0x05, 0x05, 0x07,
+ 0x40, 0x7F, 0x05, 0x25, 0x3F,
+ 0x5A, 0x3C, 0xE7, 0x3C, 0x5A,
+ 0x7F, 0x3E, 0x1C, 0x1C, 0x08,
+ 0x08, 0x1C, 0x1C, 0x3E, 0x7F,
+ 0x14, 0x22, 0x7F, 0x22, 0x14,
+ 0x5F, 0x5F, 0x00, 0x5F, 0x5F,
+ 0x06, 0x09, 0x7F, 0x01, 0x7F,
+ 0x00, 0x66, 0x89, 0x95, 0x6A,
+ 0x60, 0x60, 0x60, 0x60, 0x60,
+ 0x94, 0xA2, 0xFF, 0xA2, 0x94,
+ 0x08, 0x04, 0x7E, 0x04, 0x08,
+ 0x10, 0x20, 0x7E, 0x20, 0x10,
+ 0x08, 0x08, 0x2A, 0x1C, 0x08,
+ 0x08, 0x1C, 0x2A, 0x08, 0x08,
+ 0x1E, 0x10, 0x10, 0x10, 0x10,
+ 0x0C, 0x1E, 0x0C, 0x1E, 0x0C,
+ 0x30, 0x38, 0x3E, 0x38, 0x30,
+ 0x06, 0x0E, 0x3E, 0x0E, 0x06,
+ 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x5F, 0x00, 0x00,
+ 0x00, 0x07, 0x00, 0x07, 0x00,
+ 0x14, 0x7F, 0x14, 0x7F, 0x14,
+ 0x24, 0x2A, 0x7F, 0x2A, 0x12,
+ 0x23, 0x13, 0x08, 0x64, 0x62,
+ 0x36, 0x49, 0x56, 0x20, 0x50,
+ 0x00, 0x08, 0x07, 0x03, 0x00,
+ 0x00, 0x1C, 0x22, 0x41, 0x00,
+ 0x00, 0x41, 0x22, 0x1C, 0x00,
+ 0x2A, 0x1C, 0x7F, 0x1C, 0x2A,
+ 0x08, 0x08, 0x3E, 0x08, 0x08,
+ 0x00, 0x80, 0x70, 0x30, 0x00,
+ 0x08, 0x08, 0x08, 0x08, 0x08,
+ 0x00, 0x00, 0x60, 0x60, 0x00,
+ 0x20, 0x10, 0x08, 0x04, 0x02,
+ 0x3E, 0x51, 0x49, 0x45, 0x3E,
+ 0x00, 0x42, 0x7F, 0x40, 0x00,
+ 0x72, 0x49, 0x49, 0x49, 0x46,
+ 0x21, 0x41, 0x49, 0x4D, 0x33,
+ 0x18, 0x14, 0x12, 0x7F, 0x10,
+ 0x27, 0x45, 0x45, 0x45, 0x39,
+ 0x3C, 0x4A, 0x49, 0x49, 0x31,
+ 0x41, 0x21, 0x11, 0x09, 0x07,
+ 0x36, 0x49, 0x49, 0x49, 0x36,
+ 0x46, 0x49, 0x49, 0x29, 0x1E,
+ 0x00, 0x00, 0x14, 0x00, 0x00,
+ 0x00, 0x40, 0x34, 0x00, 0x00,
+ 0x00, 0x08, 0x14, 0x22, 0x41,
+ 0x14, 0x14, 0x14, 0x14, 0x14,
+ 0x00, 0x41, 0x22, 0x14, 0x08,
+ 0x02, 0x01, 0x59, 0x09, 0x06,
+ 0x3E, 0x41, 0x5D, 0x59, 0x4E,
+ 0x7C, 0x12, 0x11, 0x12, 0x7C,
+ 0x7F, 0x49, 0x49, 0x49, 0x36,
+ 0x3E, 0x41, 0x41, 0x41, 0x22,
+ 0x7F, 0x41, 0x41, 0x41, 0x3E,
+ 0x7F, 0x49, 0x49, 0x49, 0x41,
+ 0x7F, 0x09, 0x09, 0x09, 0x01,
+ 0x3E, 0x41, 0x41, 0x51, 0x73,
+ 0x7F, 0x08, 0x08, 0x08, 0x7F,
+ 0x00, 0x41, 0x7F, 0x41, 0x00,
+ 0x20, 0x40, 0x41, 0x3F, 0x01,
+ 0x7F, 0x08, 0x14, 0x22, 0x41,
+ 0x7F, 0x40, 0x40, 0x40, 0x40,
+ 0x7F, 0x02, 0x1C, 0x02, 0x7F,
+ 0x7F, 0x04, 0x08, 0x10, 0x7F,
+ 0x3E, 0x41, 0x41, 0x41, 0x3E,
+ 0x7F, 0x09, 0x09, 0x09, 0x06,
+ 0x3E, 0x41, 0x51, 0x21, 0x5E,
+ 0x7F, 0x09, 0x19, 0x29, 0x46,
+ 0x26, 0x49, 0x49, 0x49, 0x32,
+ 0x03, 0x01, 0x7F, 0x01, 0x03,
+ 0x3F, 0x40, 0x40, 0x40, 0x3F,
+ 0x1F, 0x20, 0x40, 0x20, 0x1F,
+ 0x3F, 0x40, 0x38, 0x40, 0x3F,
+ 0x63, 0x14, 0x08, 0x14, 0x63,
+ 0x03, 0x04, 0x78, 0x04, 0x03,
+ 0x61, 0x59, 0x49, 0x4D, 0x43,
+ 0x00, 0x7F, 0x41, 0x41, 0x41,
+ 0x02, 0x04, 0x08, 0x10, 0x20,
+ 0x00, 0x41, 0x41, 0x41, 0x7F,
+ 0x04, 0x02, 0x01, 0x02, 0x04,
+ 0x40, 0x40, 0x40, 0x40, 0x40,
+ 0x00, 0x03, 0x07, 0x08, 0x00,
+ 0x20, 0x54, 0x54, 0x78, 0x40,
+ 0x7F, 0x28, 0x44, 0x44, 0x38,
+ 0x38, 0x44, 0x44, 0x44, 0x28,
+ 0x38, 0x44, 0x44, 0x28, 0x7F,
+ 0x38, 0x54, 0x54, 0x54, 0x18,
+ 0x00, 0x08, 0x7E, 0x09, 0x02,
+ 0x18, 0xA4, 0xA4, 0x9C, 0x78,
+ 0x7F, 0x08, 0x04, 0x04, 0x78,
+ 0x00, 0x44, 0x7D, 0x40, 0x00,
+ 0x20, 0x40, 0x40, 0x3D, 0x00,
+ 0x7F, 0x10, 0x28, 0x44, 0x00,
+ 0x00, 0x41, 0x7F, 0x40, 0x00,
+ 0x7C, 0x04, 0x78, 0x04, 0x78,
+ 0x7C, 0x08, 0x04, 0x04, 0x78,
+ 0x38, 0x44, 0x44, 0x44, 0x38,
+ 0xFC, 0x18, 0x24, 0x24, 0x18,
+ 0x18, 0x24, 0x24, 0x18, 0xFC,
+ 0x7C, 0x08, 0x04, 0x04, 0x08,
+ 0x48, 0x54, 0x54, 0x54, 0x24,
+ 0x04, 0x04, 0x3F, 0x44, 0x24,
+ 0x3C, 0x40, 0x40, 0x20, 0x7C,
+ 0x1C, 0x20, 0x40, 0x20, 0x1C,
+ 0x3C, 0x40, 0x30, 0x40, 0x3C,
+ 0x44, 0x28, 0x10, 0x28, 0x44,
+ 0x4C, 0x90, 0x90, 0x90, 0x7C,
+ 0x44, 0x64, 0x54, 0x4C, 0x44,
+ 0x00, 0x08, 0x36, 0x41, 0x00,
+ 0x00, 0x00, 0x77, 0x00, 0x00,
+ 0x00, 0x41, 0x36, 0x08, 0x00,
+ 0x02, 0x01, 0x02, 0x04, 0x02,
+ 0x3C, 0x26, 0x23, 0x26, 0x3C,
+ 0x1E, 0xA1, 0xA1, 0x61, 0x12,
+ 0x3A, 0x40, 0x40, 0x20, 0x7A,
+ 0x38, 0x54, 0x54, 0x55, 0x59,
+ 0x21, 0x55, 0x55, 0x79, 0x41,
+ 0x22, 0x54, 0x54, 0x78, 0x42, // a-umlaut
+ 0x21, 0x55, 0x54, 0x78, 0x40,
+ 0x20, 0x54, 0x55, 0x79, 0x40,
+ 0x0C, 0x1E, 0x52, 0x72, 0x12,
+ 0x39, 0x55, 0x55, 0x55, 0x59,
+ 0x39, 0x54, 0x54, 0x54, 0x59,
+ 0x39, 0x55, 0x54, 0x54, 0x58,
+ 0x00, 0x00, 0x45, 0x7C, 0x41,
+ 0x00, 0x02, 0x45, 0x7D, 0x42,
+ 0x00, 0x01, 0x45, 0x7C, 0x40,
+ 0x7D, 0x12, 0x11, 0x12, 0x7D, // A-umlaut
+ 0xF0, 0x28, 0x25, 0x28, 0xF0,
+ 0x7C, 0x54, 0x55, 0x45, 0x00,
+ 0x20, 0x54, 0x54, 0x7C, 0x54,
+ 0x7C, 0x0A, 0x09, 0x7F, 0x49,
+ 0x32, 0x49, 0x49, 0x49, 0x32,
+ 0x3A, 0x44, 0x44, 0x44, 0x3A, // o-umlaut
+ 0x32, 0x4A, 0x48, 0x48, 0x30,
+ 0x3A, 0x41, 0x41, 0x21, 0x7A,
+ 0x3A, 0x42, 0x40, 0x20, 0x78,
+ 0x00, 0x9D, 0xA0, 0xA0, 0x7D,
+ 0x3D, 0x42, 0x42, 0x42, 0x3D, // O-umlaut
+ 0x3D, 0x40, 0x40, 0x40, 0x3D,
+ 0x3C, 0x24, 0xFF, 0x24, 0x24,
+ 0x48, 0x7E, 0x49, 0x43, 0x66,
+ 0x2B, 0x2F, 0xFC, 0x2F, 0x2B,
+ 0xFF, 0x09, 0x29, 0xF6, 0x20,
+ 0xC0, 0x88, 0x7E, 0x09, 0x03,
+ 0x20, 0x54, 0x54, 0x79, 0x41,
+ 0x00, 0x00, 0x44, 0x7D, 0x41,
+ 0x30, 0x48, 0x48, 0x4A, 0x32,
+ 0x38, 0x40, 0x40, 0x22, 0x7A,
+ 0x00, 0x7A, 0x0A, 0x0A, 0x72,
+ 0x7D, 0x0D, 0x19, 0x31, 0x7D,
+ 0x26, 0x29, 0x29, 0x2F, 0x28,
+ 0x26, 0x29, 0x29, 0x29, 0x26,
+ 0x30, 0x48, 0x4D, 0x40, 0x20,
+ 0x38, 0x08, 0x08, 0x08, 0x08,
+ 0x08, 0x08, 0x08, 0x08, 0x38,
+ 0x2F, 0x10, 0xC8, 0xAC, 0xBA,
+ 0x2F, 0x10, 0x28, 0x34, 0xFA,
+ 0x00, 0x00, 0x7B, 0x00, 0x00,
+ 0x08, 0x14, 0x2A, 0x14, 0x22,
+ 0x22, 0x14, 0x2A, 0x14, 0x08,
+ 0x55, 0x00, 0x55, 0x00, 0x55, // #176 (25% block) missing in old code
+ 0xAA, 0x55, 0xAA, 0x55, 0xAA, // 50% block
+ 0xFF, 0x55, 0xFF, 0x55, 0xFF, // 75% block
+ 0x00, 0x00, 0x00, 0xFF, 0x00,
+ 0x10, 0x10, 0x10, 0xFF, 0x00,
+ 0x14, 0x14, 0x14, 0xFF, 0x00,
+ 0x10, 0x10, 0xFF, 0x00, 0xFF,
+ 0x10, 0x10, 0xF0, 0x10, 0xF0,
+ 0x14, 0x14, 0x14, 0xFC, 0x00,
+ 0x14, 0x14, 0xF7, 0x00, 0xFF,
+ 0x00, 0x00, 0xFF, 0x00, 0xFF,
+ 0x14, 0x14, 0xF4, 0x04, 0xFC,
+ 0x14, 0x14, 0x17, 0x10, 0x1F,
+ 0x10, 0x10, 0x1F, 0x10, 0x1F,
+ 0x14, 0x14, 0x14, 0x1F, 0x00,
+ 0x10, 0x10, 0x10, 0xF0, 0x00,
+ 0x00, 0x00, 0x00, 0x1F, 0x10,
+ 0x10, 0x10, 0x10, 0x1F, 0x10,
+ 0x10, 0x10, 0x10, 0xF0, 0x10,
+ 0x00, 0x00, 0x00, 0xFF, 0x10,
+ 0x10, 0x10, 0x10, 0x10, 0x10,
+ 0x10, 0x10, 0x10, 0xFF, 0x10,
+ 0x00, 0x00, 0x00, 0xFF, 0x14,
+ 0x00, 0x00, 0xFF, 0x00, 0xFF,
+ 0x00, 0x00, 0x1F, 0x10, 0x17,
+ 0x00, 0x00, 0xFC, 0x04, 0xF4,
+ 0x14, 0x14, 0x17, 0x10, 0x17,
+ 0x14, 0x14, 0xF4, 0x04, 0xF4,
+ 0x00, 0x00, 0xFF, 0x00, 0xF7,
+ 0x14, 0x14, 0x14, 0x14, 0x14,
+ 0x14, 0x14, 0xF7, 0x00, 0xF7,
+ 0x14, 0x14, 0x14, 0x17, 0x14,
+ 0x10, 0x10, 0x1F, 0x10, 0x1F,
+ 0x14, 0x14, 0x14, 0xF4, 0x14,
+ 0x10, 0x10, 0xF0, 0x10, 0xF0,
+ 0x00, 0x00, 0x1F, 0x10, 0x1F,
+ 0x00, 0x00, 0x00, 0x1F, 0x14,
+ 0x00, 0x00, 0x00, 0xFC, 0x14,
+ 0x00, 0x00, 0xF0, 0x10, 0xF0,
+ 0x10, 0x10, 0xFF, 0x10, 0xFF,
+ 0x14, 0x14, 0x14, 0xFF, 0x14,
+ 0x10, 0x10, 0x10, 0x1F, 0x00,
+ 0x00, 0x00, 0x00, 0xF0, 0x10,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
+ 0xFF, 0xFF, 0xFF, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xFF, 0xFF,
+ 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
+ 0x38, 0x44, 0x44, 0x38, 0x44,
+ 0xFC, 0x4A, 0x4A, 0x4A, 0x34, // sharp-s or beta
+ 0x7E, 0x02, 0x02, 0x06, 0x06,
+ 0x02, 0x7E, 0x02, 0x7E, 0x02,
+ 0x63, 0x55, 0x49, 0x41, 0x63,
+ 0x38, 0x44, 0x44, 0x3C, 0x04,
+ 0x40, 0x7E, 0x20, 0x1E, 0x20,
+ 0x06, 0x02, 0x7E, 0x02, 0x02,
+ 0x99, 0xA5, 0xE7, 0xA5, 0x99,
+ 0x1C, 0x2A, 0x49, 0x2A, 0x1C,
+ 0x4C, 0x72, 0x01, 0x72, 0x4C,
+ 0x30, 0x4A, 0x4D, 0x4D, 0x30,
+ 0x30, 0x48, 0x78, 0x48, 0x30,
+ 0xBC, 0x62, 0x5A, 0x46, 0x3D,
+ 0x3E, 0x49, 0x49, 0x49, 0x00,
+ 0x7E, 0x01, 0x01, 0x01, 0x7E,
+ 0x2A, 0x2A, 0x2A, 0x2A, 0x2A,
+ 0x44, 0x44, 0x5F, 0x44, 0x44,
+ 0x40, 0x51, 0x4A, 0x44, 0x40,
+ 0x40, 0x44, 0x4A, 0x51, 0x40,
+ 0x00, 0x00, 0xFF, 0x01, 0x03,
+ 0xE0, 0x80, 0xFF, 0x00, 0x00,
+ 0x08, 0x08, 0x6B, 0x6B, 0x08,
+ 0x36, 0x12, 0x36, 0x24, 0x36,
+ 0x06, 0x0F, 0x09, 0x0F, 0x06,
+ 0x00, 0x00, 0x18, 0x18, 0x00,
+ 0x00, 0x00, 0x10, 0x10, 0x00,
+ 0x30, 0x40, 0xFF, 0x01, 0x01,
+ 0x00, 0x1F, 0x01, 0x01, 0x1E,
+ 0x00, 0x19, 0x1D, 0x17, 0x12,
+ 0x00, 0x3C, 0x3C, 0x3C, 0x3C,
+ 0x00, 0x00, 0x00, 0x00, 0x00 // #255 NBSP
+};
diff --git a/keyboards/owlab/voice65/hotswap/hotswap.c b/keyboards/owlab/voice65/hotswap/hotswap.c
index ec27cf9b75..79179d1661 100644
--- a/keyboards/owlab/voice65/hotswap/hotswap.c
+++ b/keyboards/owlab/voice65/hotswap/hotswap.c
@@ -86,6 +86,29 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, SW5_CS39, SW5_CS38, SW5_CS37}, /* RGB65-dn- */
{0, SW7_CS39, SW7_CS38, SW7_CS37}, /* RGB66-right- */
};
+
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, NO_LED, 43 },
+ { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, 57 },
+ { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, NO_LED, 65, 66 }
+}, {
+ { 0, 0 }, { 16, 0 }, { 32, 0 }, { 48, 0 }, { 64, 0 }, { 80, 0 }, { 96, 0 }, { 112, 0 }, { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 208, 0 }, { 224, 0 },
+ { 2, 16 }, { 18, 16 }, { 34, 16 }, { 50, 16 }, { 66, 16 }, { 82, 16 }, { 98, 16 }, { 114, 16 }, { 130, 16 }, { 146, 16 }, { 162, 16 }, { 178, 16 }, { 194, 16 }, { 210, 16 }, { 224, 16 },
+ { 4, 32 }, { 20, 32 }, { 36, 32 }, { 52, 32 }, { 68, 32 }, { 84, 32 }, { 100, 32 }, { 116, 32 }, { 132, 32 }, { 148, 32 }, { 164, 32 }, { 180, 32 }, { 196, 32 }, { 224, 32 },
+ { 8, 48 }, { 24, 48 }, { 40, 48 }, { 56, 48 }, { 72, 48 }, { 88, 48 }, { 104, 48 }, { 120, 48 }, { 136, 48 }, { 152, 48 }, { 168, 48 }, { 184, 48 }, { 208, 48 }, { 224, 48 },
+ { 2, 64 }, { 18, 64 }, { 34, 64 }, { 82, 64 }, { 146, 64 }, { 162, 64 }, { 178, 64 }, { 210, 64 }, { 224, 64 }
+}, {
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ }
+};
+
+
#endif
bool rgb_matrix_indicators_kb(void) {
diff --git a/keyboards/owlab/voice65/hotswap/keyboard.json b/keyboards/owlab/voice65/hotswap/keyboard.json
index e31a7b5e65..79ca2a57ed 100644
--- a/keyboards/owlab/voice65/hotswap/keyboard.json
+++ b/keyboards/owlab/voice65/hotswap/keyboard.json
@@ -63,75 +63,6 @@
"val": 128
},
"driver": "is31fl3741",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 208, "y": 0, "flags": 1},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 2, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 18, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 34, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 50, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 66, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 114, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 130, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 146, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 162, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 178, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 194, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 210, "y": 16, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 4, "y": 32, "flags": 0},
- {"matrix": [2, 1], "x": 20, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 36, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 52, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 68, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 84, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 100, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 132, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 148, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 164, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 180, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 196, "y": 32, "flags": 1},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 8, "y": 48, "flags": 1},
- {"matrix": [3, 1], "x": 24, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 40, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 56, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 72, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 88, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 104, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 120, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 136, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 152, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 168, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 184, "y": 48, "flags": 1},
- {"matrix": [3, 13], "x": 208, "y": 48, "flags": 1},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 18, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 34, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 82, "y": 64, "flags": 1},
- {"matrix": [4, 9], "x": 146, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 162, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 178, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
- ],
"led_flush_limit": 26,
"led_process_limit": 4,
"max_brightness": 200,
diff --git a/keyboards/owlab/voice65/soldered/keyboard.json b/keyboards/owlab/voice65/soldered/keyboard.json
index 312b612561..edd79a064f 100644
--- a/keyboards/owlab/voice65/soldered/keyboard.json
+++ b/keyboards/owlab/voice65/soldered/keyboard.json
@@ -63,79 +63,6 @@
"val": 128
},
"driver": "is31fl3741",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 195, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 209, "y": 0, "flags": 4},
- {"matrix": [2, 13], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 2, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 18, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 34, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 50, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 66, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 114, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 130, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 146, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 162, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 178, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 194, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 2, "y": 32, "flags": 0},
- {"matrix": [2, 1], "x": 20, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 36, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 52, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 68, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 84, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 100, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 132, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 148, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 164, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 180, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 202, "y": 32, "flags": 1},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 0, "y": 48, "flags": 1},
- {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 192, "y": 48, "flags": 1},
- {"matrix": [3, 13], "x": 208, "y": 48, "flags": 1},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 0, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 20, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 40, "y": 64, "flags": 1},
- {"matrix": [4, 3], "x": 60, "y": 64, "flags": 1},
- {"matrix": [4, 4], "x": 95, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 132, "y": 64, "flags": 1},
- {"matrix": [4, 9], "x": 152, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 172, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 192, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 208, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
- ],
"led_flush_limit": 26,
"led_process_limit": 4,
"max_brightness": 200,
diff --git a/keyboards/owlab/voice65/soldered/soldered.c b/keyboards/owlab/voice65/soldered/soldered.c
index 5a47de96e8..23144914fe 100644
--- a/keyboards/owlab/voice65/soldered/soldered.c
+++ b/keyboards/owlab/voice65/soldered/soldered.c
@@ -90,6 +90,29 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, SW5_CS39, SW5_CS38, SW5_CS37}, /* RGB69-dn- */
{0, SW5_CS27, SW5_CS26, SW5_CS25}, /* RGB70-right- */
};
+
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 },
+ { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 15, 44 },
+ { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59 },
+ { 60, 61, 62, 63, 64, NO_LED, 65, NO_LED, NO_LED, 66, 67, 68, 69, NO_LED, 70 }
+}, {
+ { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0}, { 180, 0}, { 195, 0 }, { 209, 0 }, { 224, 0 },
+ { 2, 16 }, { 18, 16 }, { 34, 16 }, { 50, 16 }, { 66, 16 }, { 82, 16 }, { 98, 16 }, { 114, 16 }, { 130, 16 }, { 146, 16 }, { 162, 16 }, { 178, 16 }, { 194, 16 }, { 208, 16 }, { 224, 16 },
+ { 2, 32 }, { 20, 32 }, { 36, 32 }, { 52, 32 }, { 68, 32 }, { 84, 32 }, { 100, 32 }, { 116, 32 }, { 132, 32 }, { 148, 32 }, { 164, 32 }, { 180, 32 }, { 202, 32 }, { 224, 32 },
+ { 0, 48 }, { 16, 48 }, { 32, 48 }, { 48, 48 }, { 64, 48 }, { 80, 48 }, { 96, 48 }, { 112, 48 }, { 128, 48 }, { 144, 48 }, { 160, 48 }, { 176, 48 }, { 192, 48 }, { 208, 48 }, { 224, 48 },
+ { 0, 64 }, { 20, 64 }, { 40, 64 }, { 60, 64 }, { 95, 64 }, { 132, 64 }, { 152, 64 }, { 172, 64 }, { 192, 64 }, { 208, 64 }, { 224, 64 }
+}, {
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
+ }
+};
+
+
#endif
bool rgb_matrix_indicators_kb(void) {
diff --git a/keyboards/mawaeg/sharkropad/chconf.h b/keyboards/paprikman/albacore/albacore.c
similarity index 61%
rename from keyboards/mawaeg/sharkropad/chconf.h
rename to keyboards/paprikman/albacore/albacore.c
index c0a2323234..b6cf742a11 100644
--- a/keyboards/mawaeg/sharkropad/chconf.h
+++ b/keyboards/paprikman/albacore/albacore.c
@@ -1,8 +1,8 @@
-/* Copyright 2025 @mawaeg
+/* Copyright 2021 paprikman
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
+ * the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
@@ -14,9 +14,17 @@
* along with this program. If not, see .
*/
-#pragma once
+#include "quantum.h"
-#define CH_CFG_ST_RESOLUTION 16
-#define CH_CFG_ST_FREQUENCY 10000
-
-#include_next
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3 },
+ { 7, 6, 5, 4 }
+}, {
+ { 56, 16 }, { 112, 16 }, { 168, 16 }, { 224, 16 },
+ { 56, 24 }, { 112, 24 }, { 168, 24 }, { 224, 24 }
+}, {
+ 1, 1, 1, 1,
+ 1, 1, 1, 1
+} };
+#endif
diff --git a/keyboards/paprikman/albacore/keyboard.json b/keyboards/paprikman/albacore/keyboard.json
index a2005221c3..8706c67bcd 100644
--- a/keyboards/paprikman/albacore/keyboard.json
+++ b/keyboards/paprikman/albacore/keyboard.json
@@ -10,16 +10,6 @@
},
"rgb_matrix": {
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 75, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 150, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 3], "x": 0, "y": 64, "flags": 1},
- {"matrix": [1, 2], "x": 75, "y": 64, "flags": 1},
- {"matrix": [1, 1], "x": 150, "y": 64, "flags": 1},
- {"matrix": [1, 0], "x": 224, "y": 64, "flags": 1}
- ],
"max_brightness": 220,
"sleep": true
},
diff --git a/keyboards/percent/canoe_gen2/canoe_gen2.c b/keyboards/percent/canoe_gen2/canoe_gen2.c
new file mode 100644
index 0000000000..6cbbed412d
--- /dev/null
+++ b/keyboards/percent/canoe_gen2/canoe_gen2.c
@@ -0,0 +1,119 @@
+/*
+Copyright 2020 Evy Dekkers
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ // 15, 44, 46, 48,
+ // 74, 75, 76
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16 },
+ { 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 13, 31 },
+ { 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 30, 45, 47 },
+ { 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63 },
+ { 64, 65, 66, NO_LED, NO_LED, NO_LED, 67, NO_LED, NO_LED, 69, 70, NO_LED, 71, 72, 73 }
+}, {
+ // LED Index to Physical Position
+ { 7, 8 }, // Esc
+ { 22, 8 }, // 1
+ { 37, 8 }, // 2
+ { 52, 8 }, // 3
+ { 67, 8 }, // 4
+ { 82, 8 }, // 5
+ { 97, 8 }, // 6
+ { 112, 8 }, // 7
+ { 127, 8 }, // 8
+ { 142, 8 }, // 9
+ { 157, 8 }, // 0
+ { 172, 8 }, // -
+ { 187, 8 }, // =
+ { 202, 8 }, // split bs
+ { 209, 8 }, // bs
+ { 217, 8 }, // split bs
+ { 231, 8 }, // ins
+ { 11, 24 }, // tab
+ { 30, 24 }, // q
+ { 45, 24 }, // w
+ { 60, 24 }, // e
+ { 75, 24 }, // r
+ { 90, 24 }, // t
+ { 104, 24 }, // y
+ { 119, 24 }, // u
+ { 134, 24 }, // i
+ { 149, 24 }, // o
+ { 164, 24 }, // p
+ { 179, 24 }, // [
+ { 194, 24 }, // ]
+ { 212, 24 }, // backslash
+ { 231, 24 }, // del
+ { 11, 40 }, // caps
+ { 34, 40 }, // a
+ { 49, 40 }, // s
+ { 64, 40 }, // d
+ { 79, 40 }, // f
+ { 94, 40 }, // g
+ { 108, 40 }, // h
+ { 123, 40 }, // j
+ { 138, 40 }, // k
+ { 153, 40 }, // l
+ { 168, 40 }, // ;
+ { 183, 40 }, // '
+ { 198, 40 }, // iso hash
+ { 200, 40 }, // ansi enter
+ { 215, 32 }, // iso enter
+ { 231, 40 }, // pgup
+ { 9, 56 }, // iso shift
+ { 17, 56 }, // ansi shift
+ { 26, 56 }, // iso nubs
+ { 41, 56 }, // z
+ { 56, 56 }, // x
+ { 71, 56 }, // c
+ { 86, 56 }, // v
+ { 101, 56 }, // b
+ { 116, 56 }, // n
+ { 131, 56 }, // m
+ { 146, 56 }, // ,
+ { 161, 56 }, // .
+ { 175, 56 }, // ?
+ { 196, 56 }, // shift
+ { 217, 56 }, // up
+ { 231, 56 }, // pgdn
+ { 10, 72 }, // ctrl
+ { 29, 72 }, // win
+ { 48, 72 }, // alt
+ { 103, 72 }, // space
+ { 112, 72 }, // space
+ { 161, 72 }, // alt
+ { 176, 72 }, // fn
+ { 202, 72 }, // left
+ { 217, 72 }, // down
+ { 231, 72 }, // right
+ { 7, 40 }, // top 1
+ { 119, 40 }, // top 2
+ { 231, 40 } // top 3
+}, {
+ // LED Index to Flag
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
+ 1, 1, 1, 4, 4, 1, 1, 1, 1, 1,
+ 2, 2, 2
+} };
+#endif
diff --git a/keyboards/percent/canoe_gen2/keyboard.json b/keyboards/percent/canoe_gen2/keyboard.json
index 45e1817ad5..b6a8a47a5f 100644
--- a/keyboards/percent/canoe_gen2/keyboard.json
+++ b/keyboards/percent/canoe_gen2/keyboard.json
@@ -61,85 +61,6 @@
"pixel_fractal": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 16, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 16, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 16, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 16, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 16, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 16, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 16, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 16, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 16, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 16, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 16, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 16, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 195, "y": 16, "flags": 4},
- {"matrix": [0, 13], "x": 210, "y": 16, "flags": 1},
- {"x": 217, "y": 16, "flags": 1},
- {"matrix": [0, 14], "x": 224, "y": 16, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 28, "flags": 1},
- {"matrix": [1, 1], "x": 23, "y": 28, "flags": 4},
- {"matrix": [1, 2], "x": 38, "y": 28, "flags": 4},
- {"matrix": [1, 3], "x": 53, "y": 28, "flags": 4},
- {"matrix": [1, 4], "x": 68, "y": 28, "flags": 4},
- {"matrix": [1, 5], "x": 83, "y": 28, "flags": 4},
- {"matrix": [1, 6], "x": 98, "y": 28, "flags": 4},
- {"matrix": [1, 7], "x": 113, "y": 28, "flags": 4},
- {"matrix": [1, 8], "x": 128, "y": 28, "flags": 4},
- {"matrix": [1, 9], "x": 143, "y": 28, "flags": 4},
- {"matrix": [1, 10], "x": 158, "y": 28, "flags": 4},
- {"matrix": [1, 11], "x": 173, "y": 28, "flags": 4},
- {"matrix": [1, 12], "x": 188, "y": 28, "flags": 4},
- {"matrix": [2, 12], "x": 206, "y": 28, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 28, "flags": 1},
- {"matrix": [2, 0], "x": 6, "y": 40, "flags": 1},
- {"matrix": [2, 1], "x": 26, "y": 40, "flags": 4},
- {"matrix": [2, 2], "x": 41, "y": 40, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 40, "flags": 4},
- {"matrix": [2, 4], "x": 71, "y": 40, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 40, "flags": 4},
- {"matrix": [2, 6], "x": 101, "y": 40, "flags": 4},
- {"matrix": [2, 7], "x": 116, "y": 40, "flags": 4},
- {"matrix": [2, 8], "x": 131, "y": 40, "flags": 4},
- {"matrix": [2, 9], "x": 146, "y": 40, "flags": 4},
- {"matrix": [2, 10], "x": 161, "y": 40, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 40, "flags": 4},
- {"x": 192, "y": 40, "flags": 4},
- {"matrix": [2, 13], "x": 201, "y": 40, "flags": 1},
- {"x": 209, "y": 40, "flags": 1},
- {"matrix": [2, 14], "x": 224, "y": 40, "flags": 1},
- {"x": 5, "y": 52, "flags": 1},
- {"matrix": [3, 0], "x": 9, "y": 52, "flags": 1},
- {"matrix": [3, 1], "x": 15, "y": 52, "flags": 4},
- {"matrix": [3, 2], "x": 34, "y": 52, "flags": 4},
- {"matrix": [3, 3], "x": 49, "y": 52, "flags": 4},
- {"matrix": [3, 4], "x": 64, "y": 52, "flags": 4},
- {"matrix": [3, 5], "x": 79, "y": 52, "flags": 4},
- {"matrix": [3, 6], "x": 94, "y": 52, "flags": 4},
- {"matrix": [3, 7], "x": 109, "y": 52, "flags": 4},
- {"matrix": [3, 8], "x": 124, "y": 52, "flags": 4},
- {"matrix": [3, 9], "x": 139, "y": 52, "flags": 4},
- {"matrix": [3, 10], "x": 154, "y": 52, "flags": 4},
- {"matrix": [3, 11], "x": 169, "y": 52, "flags": 4},
- {"matrix": [3, 12], "x": 189, "y": 52, "flags": 1},
- {"matrix": [3, 13], "x": 210, "y": 52, "flags": 1},
- {"matrix": [3, 14], "x": 224, "y": 52, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4},
- {"x": 112, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 133, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 152, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 195, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1},
- {"x": 220, "y": 0, "flags": 2},
- {"x": 222, "y": 0, "flags": 2},
- {"x": 224, "y": 0, "flags": 2}
- ],
"max_brightness": 150,
"sleep": true
},
diff --git a/keyboards/phage_studio/pila87/keyboard.json b/keyboards/phage_studio/pila87/keyboard.json
index 135a4f0a81..fbdf5f637a 100644
--- a/keyboards/phage_studio/pila87/keyboard.json
+++ b/keyboards/phage_studio/pila87/keyboard.json
@@ -62,99 +62,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [5, 16], "x": 224, "y": 64, "flags": 4},
- {"matrix": [5, 15], "x": 211, "y": 64, "flags": 4},
- {"matrix": [5, 14], "x": 198, "y": 64, "flags": 4},
- {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1},
- {"matrix": [5, 12], "x": 164, "y": 64, "flags": 1},
- {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1},
- {"matrix": [5, 10], "x": 131, "y": 64, "flags": 1},
- {"matrix": [5, 7], "x": 110, "y": 61, "flags": 4},
- {"matrix": [5, 6], "x": 104, "y": 61, "flags": 4},
- {"matrix": [5, 5], "x": 83, "y": 64, "flags": 4},
- {"matrix": [5, 4], "x": 65, "y": 61, "flags": 4},
- {"matrix": [5, 3], "x": 58, "y": 61, "flags": 4},
- {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1},
- {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1},
- {"matrix": [4, 1], "x": 29, "y": 52, "flags": 4},
- {"matrix": [4, 2], "x": 42, "y": 52, "flags": 4},
- {"matrix": [4, 3], "x": 55, "y": 52, "flags": 4},
- {"matrix": [4, 4], "x": 68, "y": 52, "flags": 4},
- {"matrix": [4, 5], "x": 81, "y": 52, "flags": 4},
- {"matrix": [4, 6], "x": 94, "y": 52, "flags": 4},
- {"matrix": [4, 7], "x": 107, "y": 52, "flags": 4},
- {"matrix": [4, 8], "x": 120, "y": 52, "flags": 4},
- {"matrix": [4, 9], "x": 133, "y": 52, "flags": 4},
- {"matrix": [4, 10], "x": 146, "y": 52, "flags": 4},
- {"matrix": [4, 13], "x": 170, "y": 52, "flags": 1},
- {"matrix": [4, 15], "x": 211, "y": 52, "flags": 4},
- {"matrix": [3, 13], "x": 174, "y": 41, "flags": 1},
- {"matrix": [3, 11], "x": 153, "y": 41, "flags": 4},
- {"matrix": [3, 10], "x": 140, "y": 41, "flags": 4},
- {"matrix": [3, 9], "x": 127, "y": 41, "flags": 4},
- {"matrix": [3, 8], "x": 114, "y": 41, "flags": 4},
- {"matrix": [3, 7], "x": 101, "y": 41, "flags": 4},
- {"matrix": [3, 6], "x": 88, "y": 41, "flags": 4},
- {"matrix": [3, 5], "x": 75, "y": 41, "flags": 4},
- {"matrix": [3, 4], "x": 62, "y": 41, "flags": 4},
- {"matrix": [3, 3], "x": 49, "y": 41, "flags": 4},
- {"matrix": [3, 2], "x": 36, "y": 41, "flags": 4},
- {"matrix": [3, 1], "x": 23, "y": 41, "flags": 4},
- {"matrix": [3, 0], "x": 5, "y": 41, "flags": 8},
- {"matrix": [2, 0], "x": 3, "y": 29, "flags": 1},
- {"matrix": [2, 1], "x": 19, "y": 29, "flags": 4},
- {"matrix": [2, 2], "x": 32, "y": 29, "flags": 4},
- {"matrix": [2, 3], "x": 45, "y": 29, "flags": 4},
- {"matrix": [2, 4], "x": 58, "y": 29, "flags": 4},
- {"matrix": [2, 5], "x": 71, "y": 29, "flags": 4},
- {"matrix": [2, 6], "x": 84, "y": 29, "flags": 4},
- {"matrix": [2, 7], "x": 97, "y": 29, "flags": 4},
- {"matrix": [2, 8], "x": 110, "y": 29, "flags": 4},
- {"matrix": [2, 9], "x": 123, "y": 29, "flags": 4},
- {"matrix": [2, 10], "x": 136, "y": 29, "flags": 4},
- {"matrix": [2, 11], "x": 149, "y": 29, "flags": 4},
- {"matrix": [2, 12], "x": 162, "y": 29, "flags": 4},
- {"matrix": [2, 13], "x": 179, "y": 29, "flags": 4},
- {"matrix": [2, 14], "x": 198, "y": 29, "flags": 4},
- {"matrix": [2, 15], "x": 211, "y": 29, "flags": 4},
- {"matrix": [2, 16], "x": 224, "y": 29, "flags": 4},
- {"matrix": [1, 16], "x": 224, "y": 17, "flags": 4},
- {"matrix": [1, 15], "x": 211, "y": 17, "flags": 4},
- {"matrix": [1, 14], "x": 198, "y": 17, "flags": 4},
- {"matrix": [1, 13], "x": 175, "y": 17, "flags": 1},
- {"matrix": [1, 12], "x": 156, "y": 17, "flags": 4},
- {"matrix": [1, 11], "x": 143, "y": 17, "flags": 4},
- {"matrix": [1, 10], "x": 130, "y": 17, "flags": 4},
- {"matrix": [1, 9], "x": 117, "y": 17, "flags": 4},
- {"matrix": [1, 8], "x": 104, "y": 17, "flags": 4},
- {"matrix": [1, 7], "x": 91, "y": 17, "flags": 4},
- {"matrix": [1, 6], "x": 78, "y": 17, "flags": 4},
- {"matrix": [1, 5], "x": 65, "y": 17, "flags": 4},
- {"matrix": [1, 4], "x": 52, "y": 17, "flags": 4},
- {"matrix": [1, 3], "x": 39, "y": 17, "flags": 4},
- {"matrix": [1, 2], "x": 26, "y": 17, "flags": 4},
- {"matrix": [1, 1], "x": 13, "y": 17, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 17, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 26, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 39, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 52, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 65, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 84, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 97, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 110, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 123, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 143, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 156, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 169, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 182, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 198, "y": 0, "flags": 4},
- {"matrix": [0, 15], "x": 211, "y": 0, "flags": 8},
- {"matrix": [0, 16], "x": 224, "y": 0, "flags": 4}
- ],
"max_brightness": 200
},
"processor": "STM32F103",
diff --git a/keyboards/phage_studio/pila87/pila87.c b/keyboards/phage_studio/pila87/pila87.c
index 927f349cf3..619623cc09 100644
--- a/keyboards/phage_studio/pila87/pila87.c
+++ b/keyboards/phage_studio/pila87/pila87.c
@@ -23,6 +23,29 @@
#include
#include
+led_config_t g_led_config = { {
+ { 75, NO_LED, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90 },
+ { 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58 },
+ { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 },
+ { 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, NO_LED, 28, NO_LED, NO_LED, NO_LED },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, NO_LED, NO_LED, 26, NO_LED, 27, NO_LED },
+ { 14, 13, 12, 11, 10, 9, 8, 7, NO_LED, NO_LED, 6, 5, 4, 3, 2, 1, 0 }
+}, {
+ {224, 64}, {211, 64}, {198, 64}, {180, 64}, {164, 64}, {148, 64}, {131, 64}, {110, 61}, {104, 61}, {83 , 64}, {65 , 61}, {58 , 61}, {34 , 64}, {18 , 64}, {2 , 64},
+ {8 , 52}, {29 , 52}, {42 , 52}, {55 , 52}, {68 , 52}, {81 , 52}, {94 , 52}, {107, 52}, {120, 52}, {133, 52}, {146, 52}, {170, 52}, {211, 52},
+ {174, 41}, {153, 41}, {140, 41}, {127, 41}, {114, 41}, {101, 41}, {88 , 41}, {75 , 41}, {62 , 41}, {49 , 41}, {36 , 41}, {23 , 41}, {5 , 41},
+ {3 , 29}, {19 , 29}, {32 , 29}, {45 , 29}, {58 , 29}, {71 , 29}, {84 , 29}, {97 , 29}, {110, 29}, {123, 29}, {136, 29}, {149, 29}, {162, 29}, {179, 29}, {198, 29}, {211, 29}, {224, 29},
+ {224, 17}, {211, 17}, {198, 17}, {175, 17}, {156, 17}, {143, 17}, {130, 17}, {117, 17}, {104, 17}, {91 , 17}, {78 , 17}, {65 , 17}, {52 , 17}, {39 , 17}, {26 , 17}, {13 , 17}, {0 , 17},
+ {0 , 0}, {26 , 0}, {39 , 0}, {52 , 0}, {65 , 0}, {84 , 0}, {97 , 0}, {110, 0}, {123, 0}, {143, 0}, {156, 0}, {169, 0}, {182, 0}, {198, 0}, {211, 0}, {224, 0},
+}, {
+ 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 4, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 4,
+} };
+
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QK_RGB_MATRIX_TOGGLE:
diff --git a/keyboards/phase_studio/titan65/hotswap/hotswap.c b/keyboards/phase_studio/titan65/hotswap/hotswap.c
new file mode 100644
index 0000000000..1bcd581785
--- /dev/null
+++ b/keyboards/phase_studio/titan65/hotswap/hotswap.c
@@ -0,0 +1,42 @@
+/* Copyright 2021 Christopher Courtney, aka Drashna Jael're (@drashna)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = {
+ {
+ { 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, NO_LED, 65, 66 },
+ { 51, NO_LED, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37 },
+ { 23, NO_LED, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, NO_LED, 36 },
+ { NO_LED, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, NO_LED, 11, 10, 9 },
+ { 0, 1, NO_LED, 2, NO_LED, NO_LED, 3, NO_LED, NO_LED, NO_LED, 4, 5, NO_LED, 6, 7, 8 }
+ }, {
+ { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 150, 64 }, { 165, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 },
+ { 224, 48 }, { 210, 48 }, { 189, 48 }, { 154, 48 }, { 139, 48 }, { 124, 48 }, { 109, 48 }, { 94, 48 }, { 79, 48 }, { 64, 48 }, { 49, 48 }, { 34, 48 }, { 22, 48 }, { 5, 48 },
+ { 6, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 181, 32 }, { 201, 32 }, { 224, 32 },
+ { 224, 16 }, { 206, 16 },{ 188, 16 }, { 173, 16 }, { 158, 16 }, { 143, 16 }, { 128, 16 }, { 113, 16 }, { 98, 16 }, { 83, 16 }, { 68, 16 }, { 53, 16 }, { 38, 16 }, { 22, 16 }, { 4, 16 },
+ { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 203, 0 }, { 224, 0 }
+ }, {
+ 1, 1, 1, 4, 1, 1, 1, 1, 1,
+ 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1
+ }
+};
+
+#endif
diff --git a/keyboards/phase_studio/titan65/hotswap/keyboard.json b/keyboards/phase_studio/titan65/hotswap/keyboard.json
index 599684322a..c9d1b0f726 100644
--- a/keyboards/phase_studio/titan65/hotswap/keyboard.json
+++ b/keyboards/phase_studio/titan65/hotswap/keyboard.json
@@ -19,75 +19,6 @@
},
"rgb_matrix": {
"driver": "ws2812",
- "layout": [
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1},
- {"matrix": [4, 3], "x": 39, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 150, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 165, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 195, "y": 64, "flags": 1},
- {"matrix": [4, 14], "x": 210, "y": 64, "flags": 1},
- {"matrix": [4, 15], "x": 224, "y": 64, "flags": 1},
- {"matrix": [3, 15], "x": 224, "y": 48, "flags": 1},
- {"matrix": [3, 14], "x": 210, "y": 48, "flags": 1},
- {"matrix": [3, 13], "x": 189, "y": 48, "flags": 1},
- {"matrix": [3, 11], "x": 154, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 139, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 124, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 109, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 94, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 79, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 49, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 34, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 22, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 5, "y": 48, "flags": 1},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
- {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 181, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 201, "y": 32, "flags": 1},
- {"matrix": [2, 15], "x": 224, "y": 32, "flags": 1},
- {"matrix": [1, 15], "x": 224, "y": 16, "flags": 1},
- {"matrix": [1, 14], "x": 206, "y": 16, "flags": 1},
- {"matrix": [1, 13], "x": 188, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 173, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 158, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 143, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 113, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 98, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 83, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 68, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 53, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 38, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 22, "y": 16, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 203, "y": 0, "flags": 1},
- {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1}
- ],
"max_brightness": 150,
"sleep": true
},
diff --git a/keyboards/planck/light/keyboard.json b/keyboards/planck/light/keyboard.json
index f445cca931..413c753f92 100644
--- a/keyboards/planck/light/keyboard.json
+++ b/keyboards/planck/light/keyboard.json
@@ -55,57 +55,6 @@
"solid_multisplash": true
},
"driver": "is31fl3731",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 81, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 101, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 122, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 142, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 162, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 183, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 203, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 223, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1},
- {"matrix": [1, 1], "x": 20, "y": 21, "flags": 4},
- {"matrix": [1, 2], "x": 40, "y": 21, "flags": 4},
- {"matrix": [1, 3], "x": 61, "y": 21, "flags": 4},
- {"matrix": [1, 4], "x": 81, "y": 21, "flags": 4},
- {"matrix": [1, 5], "x": 101, "y": 21, "flags": 4},
- {"matrix": [1, 6], "x": 122, "y": 21, "flags": 4},
- {"matrix": [1, 7], "x": 142, "y": 21, "flags": 4},
- {"matrix": [1, 8], "x": 162, "y": 21, "flags": 4},
- {"matrix": [1, 9], "x": 183, "y": 21, "flags": 4},
- {"matrix": [1, 10], "x": 203, "y": 21, "flags": 4},
- {"matrix": [1, 11], "x": 223, "y": 21, "flags": 1},
- {"matrix": [2, 0], "x": 0, "y": 42, "flags": 1},
- {"matrix": [2, 1], "x": 20, "y": 42, "flags": 4},
- {"matrix": [2, 2], "x": 40, "y": 42, "flags": 4},
- {"matrix": [2, 3], "x": 61, "y": 42, "flags": 4},
- {"matrix": [2, 4], "x": 81, "y": 42, "flags": 4},
- {"matrix": [2, 5], "x": 101, "y": 42, "flags": 4},
- {"matrix": [2, 6], "x": 122, "y": 42, "flags": 4},
- {"matrix": [2, 7], "x": 142, "y": 42, "flags": 4},
- {"matrix": [2, 8], "x": 162, "y": 42, "flags": 4},
- {"matrix": [2, 9], "x": 183, "y": 42, "flags": 4},
- {"matrix": [2, 10], "x": 203, "y": 42, "flags": 4},
- {"matrix": [2, 11], "x": 223, "y": 42, "flags": 1},
- {"matrix": [3, 0], "x": 0, "y": 63, "flags": 1},
- {"matrix": [3, 1], "x": 20, "y": 63, "flags": 1},
- {"matrix": [3, 2], "x": 40, "y": 63, "flags": 1},
- {"matrix": [3, 3], "x": 61, "y": 63, "flags": 1},
- {"matrix": [3, 4], "x": 81, "y": 63, "flags": 1},
- {"matrix": [3, 5], "x": 101, "y": 63, "flags": 4},
- {"x": 111, "y": 63, "flags": 4},
- {"matrix": [3, 6], "x": 122, "y": 63, "flags": 4},
- {"matrix": [3, 7], "x": 142, "y": 63, "flags": 1},
- {"matrix": [3, 8], "x": 162, "y": 63, "flags": 1},
- {"matrix": [3, 9], "x": 183, "y": 63, "flags": 1},
- {"matrix": [3, 10], "x": 203, "y": 63, "flags": 1},
- {"matrix": [3, 11], "x": 223, "y": 63, "flags": 1}
- ],
"sleep": true
},
"features": {
diff --git a/keyboards/planck/light/light.c b/keyboards/planck/light/light.c
index 97ea06c467..43487e2e21 100644
--- a/keyboards/planck/light/light.c
+++ b/keyboards/planck/light/light.c
@@ -77,6 +77,25 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
{1, C9_14, C8_14, C7_14}
};
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 },
+ { 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 },
+ { 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35 },
+ { 36, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 48 }
+}, {
+ { 0, 0 }, { 20, 0 }, { 40, 0 }, { 61, 0 }, { 81, 0 }, { 101, 0 }, { 122, 0 }, { 142, 0 }, { 162, 0 }, { 183, 0 }, { 203, 0 }, { 223, 0 },
+ { 0, 21 }, { 20, 21 }, { 40, 21 }, { 61, 21 }, { 81, 21 }, { 101, 21 }, { 122, 21 }, { 142, 21 }, { 162, 21 }, { 183, 21 }, { 203, 21 }, { 223, 21 },
+ { 0, 42 }, { 20, 42 }, { 40, 42 }, { 61, 42 }, { 81, 42 }, { 101, 42 }, { 122, 42 }, { 142, 42 }, { 162, 42 }, { 183, 42 }, { 203, 42 }, { 223, 42 },
+ { 0, 63 }, { 20, 63 }, { 40, 63 }, { 61, 63 }, { 81, 63 }, { 101, 63 }, { 111, 63 }, { 122, 63 }, { 142, 63 }, { 162, 63 }, { 183, 63 }, { 203, 63 },
+ { 223, 63 }
+}, {
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 1, 1, 4, 4, 4, 1, 1, 1, 1,
+ 1
+} };
+
void matrix_init_kb(void) {
// Turn status LED on
diff --git a/keyboards/planck/rev6/keyboard.json b/keyboards/planck/rev6/keyboard.json
index aee39c8b3a..b0028795fe 100644
--- a/keyboards/planck/rev6/keyboard.json
+++ b/keyboards/planck/rev6/keyboard.json
@@ -17,17 +17,6 @@
},
"rgb_matrix": {
"driver": "ws2812",
- "layout": [
- {"matrix": [2, 5], "x": 112, "y": 39, "flags": 255},
- {"matrix": [7, 1], "x": 148, "y": 60, "flags": 255},
- {"matrix": [3, 4], "x": 206, "y": 53, "flags": 255},
- {"matrix": [4, 4], "x": 206, "y": 3, "flags": 255},
- {"matrix": [4, 1], "x": 150, "y": 3, "flags": 255},
- {"matrix": [0, 4], "x": 74, "y": 3, "flags": 255},
- {"matrix": [0, 1], "x": 18, "y": 3, "flags": 255},
- {"matrix": [3, 1], "x": 18, "y": 54, "flags": 255},
- {"matrix": [7, 4], "x": 77, "y": 60, "flags": 255}
- ],
"sleep": true
},
"features": {
diff --git a/keyboards/planck/rev6/rev6.c b/keyboards/planck/rev6/rev6.c
index e8439b1705..49f7d83123 100644
--- a/keyboards/planck/rev6/rev6.c
+++ b/keyboards/planck/rev6/rev6.c
@@ -15,6 +15,33 @@
*/
#include "quantum.h"
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { NO_LED, 6, NO_LED, NO_LED, 5, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 0 },
+ { NO_LED, 7, NO_LED, NO_LED, 2, NO_LED },
+ { NO_LED, 4, NO_LED, NO_LED, 3, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, 1, NO_LED, NO_LED, 8, NO_LED },
+}, {
+ // LED Index to Physical Position
+ {112, 39}, {148, 60}, {206, 53}, {206, 3}, {150, 3}, {74, 3}, {18, 3}, {18, 54}, {77, 60}
+}, {
+ // LED Index to Flag
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL
+} };
+
+// LED physical location index
+// 6 5 4 3
+// 0
+// 7 8 1 2
+
+#endif
+
#ifdef SWAP_HANDS_ENABLE
__attribute__ ((weak))
const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
@@ -22,7 +49,7 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
{{5, 5}, {4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5}},
{{5, 6}, {4, 6}, {3, 6}, {2, 6}, {1, 6}, {0, 6}},
{{5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}},
-
+
{{5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}},
{{5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}},
{{5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}},
diff --git a/keyboards/planck/rev6_drop/keyboard.json b/keyboards/planck/rev6_drop/keyboard.json
index 4f089f83f3..ff301f8c86 100644
--- a/keyboards/planck/rev6_drop/keyboard.json
+++ b/keyboards/planck/rev6_drop/keyboard.json
@@ -29,17 +29,6 @@
},
"rgb_matrix": {
"driver": "ws2812",
- "layout": [
- {"matrix": [2, 5], "x": 112, "y": 39, "flags": 255},
- {"matrix": [7, 1], "x": 148, "y": 60, "flags": 255},
- {"matrix": [3, 4], "x": 206, "y": 53, "flags": 255},
- {"matrix": [4, 4], "x": 206, "y": 3, "flags": 255},
- {"matrix": [4, 1], "x": 150, "y": 3, "flags": 255},
- {"matrix": [0, 4], "x": 74, "y": 3, "flags": 255},
- {"matrix": [0, 1], "x": 18, "y": 3, "flags": 255},
- {"matrix": [3, 1], "x": 18, "y": 54, "flags": 255},
- {"matrix": [7, 4], "x": 77, "y": 60, "flags": 255}
- ],
"sleep": true
},
"matrix_pins": {
diff --git a/keyboards/planck/rev6_drop/rev6_drop.c b/keyboards/planck/rev6_drop/rev6_drop.c
index e8439b1705..8f613851dc 100644
--- a/keyboards/planck/rev6_drop/rev6_drop.c
+++ b/keyboards/planck/rev6_drop/rev6_drop.c
@@ -15,6 +15,34 @@
*/
#include "quantum.h"
+#ifdef RGB_MATRIX_ENABLE
+// clang-format off
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { NO_LED, 6, NO_LED, NO_LED, 5, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 0 },
+ { NO_LED, 7, NO_LED, NO_LED, 2, NO_LED },
+ { NO_LED, 4, NO_LED, NO_LED, 3, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, 1, NO_LED, NO_LED, 8, NO_LED },
+}, {
+ // LED Index to Physical Position
+ {112, 39}, {148, 60}, {206, 53}, {206, 3}, {150, 3}, {74, 3}, {18, 3}, {18, 54}, {77, 60}
+}, {
+ // LED Index to Flag
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL
+} };
+
+// LED physical location index
+// 6 5 4 3
+// 0
+// 7 8 1 2
+
+#endif
+
#ifdef SWAP_HANDS_ENABLE
__attribute__ ((weak))
const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
@@ -22,7 +50,7 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
{{5, 5}, {4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5}},
{{5, 6}, {4, 6}, {3, 6}, {2, 6}, {1, 6}, {0, 6}},
{{5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}},
-
+
{{5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}},
{{5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}},
{{5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}},
diff --git a/keyboards/planck/rev7/keyboard.json b/keyboards/planck/rev7/keyboard.json
index 3bc274b1fa..691394d5d5 100644
--- a/keyboards/planck/rev7/keyboard.json
+++ b/keyboards/planck/rev7/keyboard.json
@@ -14,17 +14,6 @@
},
"rgb_matrix": {
"driver": "ws2812",
- "layout": [
- {"matrix": [2, 5], "x": 112, "y": 39, "flags": 255},
- {"matrix": [7, 1], "x": 148, "y": 60, "flags": 255},
- {"matrix": [3, 4], "x": 206, "y": 53, "flags": 255},
- {"matrix": [4, 4], "x": 206, "y": 3, "flags": 255},
- {"matrix": [4, 1], "x": 150, "y": 3, "flags": 255},
- {"matrix": [0, 4], "x": 74, "y": 3, "flags": 255},
- {"matrix": [0, 1], "x": 18, "y": 3, "flags": 255},
- {"matrix": [3, 1], "x": 18, "y": 54, "flags": 255},
- {"matrix": [7, 4], "x": 77, "y": 60, "flags": 255}
- ],
"sleep": true
},
"matrix_pins": {
diff --git a/keyboards/planck/rev7/rev7.c b/keyboards/planck/rev7/rev7.c
index 09fd5901c2..bb9d0ee1e8 100644
--- a/keyboards/planck/rev7/rev7.c
+++ b/keyboards/planck/rev7/rev7.c
@@ -15,6 +15,34 @@
*/
#include "quantum.h"
+#ifdef RGB_MATRIX_ENABLE
+// clang-format off
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { NO_LED, 6, NO_LED, NO_LED, 5, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 0 },
+ { NO_LED, 7, NO_LED, NO_LED, 2, NO_LED },
+ { NO_LED, 4, NO_LED, NO_LED, 3, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, 1, NO_LED, NO_LED, 8, NO_LED },
+}, {
+ // LED Index to Physical Position
+ {112, 39}, {148, 60}, {206, 53}, {206, 3}, {150, 3}, {74, 3}, {18, 3}, {18, 54}, {77, 60}
+}, {
+ // LED Index to Flag
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL
+} };
+
+// LED physical location index
+// 6 5 4 3
+// 0
+// 7 8 1 2
+
+#endif
+
#ifdef SWAP_HANDS_ENABLE
__attribute__ ((weak))
const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
@@ -22,7 +50,7 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
{{5, 5}, {4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5}},
{{5, 6}, {4, 6}, {3, 6}, {2, 6}, {1, 6}, {0, 6}},
{{5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}},
-
+
{{5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}},
{{5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}},
{{5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}},
diff --git a/keyboards/preonic/rev3/keyboard.json b/keyboards/preonic/rev3/keyboard.json
index 9babc119b0..96cebf9ea0 100644
--- a/keyboards/preonic/rev3/keyboard.json
+++ b/keyboards/preonic/rev3/keyboard.json
@@ -26,18 +26,7 @@
"driver": "pwm"
},
"rgb_matrix": {
- "driver": "ws2812",
- "layout": [
- {"matrix": [2, 5], "x": 112, "y": 39, "flags": 255},
- {"matrix": [9, 1], "x": 148, "y": 60, "flags": 255},
- {"matrix": [8, 4], "x": 206, "y": 53, "flags": 255},
- {"matrix": [4, 4], "x": 206, "y": 3, "flags": 255},
- {"matrix": [4, 1], "x": 150, "y": 3, "flags": 255},
- {"matrix": [0, 4], "x": 74, "y": 3, "flags": 255},
- {"matrix": [0, 1], "x": 18, "y": 3, "flags": 255},
- {"matrix": [8, 1], "x": 18, "y": 54, "flags": 255},
- {"matrix": [9, 4], "x": 77, "y": 60, "flags": 255}
- ]
+ "driver": "ws2812"
},
"features": {
"audio": true,
diff --git a/keyboards/preonic/rev3/rev3.c b/keyboards/preonic/rev3/rev3.c
index 12a11c98eb..5a751cbba5 100644
--- a/keyboards/preonic/rev3/rev3.c
+++ b/keyboards/preonic/rev3/rev3.c
@@ -15,6 +15,35 @@
*/
#include "quantum.h"
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { NO_LED, 6, NO_LED, NO_LED, 5, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 0 },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, 4, NO_LED, NO_LED, 3, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, 7, NO_LED, NO_LED, 2, NO_LED },
+ { NO_LED, 1, NO_LED, NO_LED, 8, NO_LED },
+}, {
+ // LED Index to Physical Position
+ {112, 39}, {148, 60}, {206, 53}, {206, 3}, {150, 3}, {74, 3}, {18, 3}, {18, 54}, {77, 60}
+}, {
+ // LED Index to Flag
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL
+} };
+
+// LED physical location index
+// 6 5 4 3
+// 0
+// 7 8 1 2
+#endif
+
+
#ifdef SWAP_HANDS_ENABLE
__attribute__ ((weak))
const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
diff --git a/keyboards/preonic/rev3_drop/keyboard.json b/keyboards/preonic/rev3_drop/keyboard.json
index ece6bf32f9..22374fa5f7 100644
--- a/keyboards/preonic/rev3_drop/keyboard.json
+++ b/keyboards/preonic/rev3_drop/keyboard.json
@@ -44,18 +44,7 @@
"driver": "pwm"
},
"rgb_matrix": {
- "driver": "ws2812",
- "layout": [
- {"matrix": [2, 5], "x": 112, "y": 39, "flags": 255},
- {"matrix": [9, 1], "x": 148, "y": 60, "flags": 255},
- {"matrix": [8, 4], "x": 206, "y": 53, "flags": 255},
- {"matrix": [4, 4], "x": 206, "y": 3, "flags": 255},
- {"matrix": [4, 1], "x": 150, "y": 3, "flags": 255},
- {"matrix": [0, 4], "x": 74, "y": 3, "flags": 255},
- {"matrix": [0, 1], "x": 18, "y": 3, "flags": 255},
- {"matrix": [8, 1], "x": 18, "y": 54, "flags": 255},
- {"matrix": [9, 4], "x": 77, "y": 60, "flags": 255}
- ]
+ "driver": "ws2812"
},
"matrix_pins": {
"cols": ["B11", "B10", "B2", "B1", "A7", "B0"],
diff --git a/keyboards/preonic/rev3_drop/rev3_drop.c b/keyboards/preonic/rev3_drop/rev3_drop.c
index 12a11c98eb..5a751cbba5 100644
--- a/keyboards/preonic/rev3_drop/rev3_drop.c
+++ b/keyboards/preonic/rev3_drop/rev3_drop.c
@@ -15,6 +15,35 @@
*/
#include "quantum.h"
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { NO_LED, 6, NO_LED, NO_LED, 5, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 0 },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, 4, NO_LED, NO_LED, 3, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, 7, NO_LED, NO_LED, 2, NO_LED },
+ { NO_LED, 1, NO_LED, NO_LED, 8, NO_LED },
+}, {
+ // LED Index to Physical Position
+ {112, 39}, {148, 60}, {206, 53}, {206, 3}, {150, 3}, {74, 3}, {18, 3}, {18, 54}, {77, 60}
+}, {
+ // LED Index to Flag
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL
+} };
+
+// LED physical location index
+// 6 5 4 3
+// 0
+// 7 8 1 2
+#endif
+
+
#ifdef SWAP_HANDS_ENABLE
__attribute__ ((weak))
const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
diff --git a/keyboards/quarkeys/z40/keyboard.json b/keyboards/quarkeys/z40/keyboard.json
index 0f13d8aefd..05d81e5b6f 100644
--- a/keyboards/quarkeys/z40/keyboard.json
+++ b/keyboards/quarkeys/z40/keyboard.json
@@ -29,55 +29,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [3, 11], "x": 225, "y": 64, "flags": 1},
- {"matrix": [3, 10], "x": 200, "y": 64, "flags": 1},
- {"matrix": [3, 9], "x": 180, "y": 64, "flags": 1},
- {"matrix": [3, 8], "x": 160, "y": 64, "flags": 1},
- {"matrix": [3, 7], "x": 140, "y": 64, "flags": 1},
- {"matrix": [3, 5], "x": 110, "y": 64, "flags": 1},
- {"matrix": [3, 4], "x": 80, "y": 64, "flags": 1},
- {"matrix": [3, 3], "x": 60, "y": 64, "flags": 1},
- {"matrix": [3, 2], "x": 40, "y": 64, "flags": 1},
- {"matrix": [3, 1], "x": 20, "y": 64, "flags": 1},
- {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1},
- {"matrix": [2, 11], "x": 225, "y": 42, "flags": 1},
- {"matrix": [2, 10], "x": 200, "y": 42, "flags": 2},
- {"matrix": [2, 9], "x": 180, "y": 42, "flags": 2},
- {"matrix": [2, 8], "x": 160, "y": 42, "flags": 2},
- {"matrix": [2, 7], "x": 140, "y": 42, "flags": 2},
- {"matrix": [2, 6], "x": 120, "y": 42, "flags": 2},
- {"matrix": [2, 5], "x": 100, "y": 42, "flags": 2},
- {"matrix": [2, 4], "x": 80, "y": 42, "flags": 2},
- {"x": 60, "y": 42, "flags": 2},
- {"matrix": [2, 2], "x": 40, "y": 42, "flags": 2},
- {"matrix": [2, 1], "x": 20, "y": 42, "flags": 2},
- {"matrix": [2, 0], "x": 0, "y": 42, "flags": 1},
- {"matrix": [1, 11], "x": 225, "y": 21, "flags": 1},
- {"matrix": [1, 10], "x": 200, "y": 21, "flags": 2},
- {"matrix": [1, 9], "x": 180, "y": 21, "flags": 2},
- {"matrix": [1, 8], "x": 160, "y": 21, "flags": 2},
- {"matrix": [1, 7], "x": 140, "y": 21, "flags": 2},
- {"matrix": [1, 6], "x": 120, "y": 21, "flags": 2},
- {"matrix": [2, 3], "x": 100, "y": 21, "flags": 2},
- {"matrix": [1, 4], "x": 80, "y": 21, "flags": 2},
- {"matrix": [1, 3], "x": 60, "y": 21, "flags": 2},
- {"matrix": [1, 2], "x": 40, "y": 21, "flags": 2},
- {"matrix": [1, 1], "x": 20, "y": 21, "flags": 2},
- {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1},
- {"matrix": [0, 11], "x": 225, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 200, "y": 0, "flags": 2},
- {"matrix": [0, 9], "x": 180, "y": 0, "flags": 2},
- {"matrix": [0, 8], "x": 160, "y": 0, "flags": 2},
- {"matrix": [0, 7], "x": 140, "y": 0, "flags": 2},
- {"matrix": [0, 6], "x": 120, "y": 0, "flags": 2},
- {"matrix": [0, 5], "x": 100, "y": 0, "flags": 2},
- {"matrix": [0, 4], "x": 80, "y": 0, "flags": 2},
- {"matrix": [0, 3], "x": 60, "y": 0, "flags": 2},
- {"matrix": [0, 2], "x": 40, "y": 0, "flags": 2},
- {"matrix": [0, 1], "x": 20, "y": 0, "flags": 2},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}
- ],
"sat_steps": 8,
"val_steps": 8,
"speed_steps": 10,
diff --git a/keyboards/quarkeys/z40/z40.c b/keyboards/quarkeys/z40/z40.c
new file mode 100644
index 0000000000..edd8946c11
--- /dev/null
+++ b/keyboards/quarkeys/z40/z40.c
@@ -0,0 +1,44 @@
+/*
+/ Copyright 2022 quarkeys
+/ This program is free software: you can redistribute it and/or modify
+/ it under the terms of the GNU General Public License as published by
+/ the Free Software Foundation, either version 2 of the License, or
+/ (at your option) any later version.
+/ This program is distributed in the hope that it will be useful,
+/ but WITHOUT ANY WARRANTY; without even the implied warranty of
+/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+/ GNU General Public License for more details.
+/ You should have received a copy of the GNU General Public License
+/ along with this program. If not, see .
+*/
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ /*
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \
+ { k30, k31, k32, k33, k34, k35, XXX, k36, k37, k38, k39, k3A }\
+ */
+ { 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35 },
+ { 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23 },
+ { 22, 21, 20, 29, 18, 17, 16, 15, 14, 13, 12, 11 },
+ { 10, 9, 8, 7, 6, 5, NO_LED, 4, 3, 2, 1, 0 }
+ },
+ { // Index to Physical Position
+ {225, 64}, {200, 64}, {180, 64}, {160, 64}, {140, 64}, {110, 64}, { 80, 64}, { 60, 64}, { 40, 64}, { 20, 64}, { 0, 64},
+ {225, 42}, {200, 42}, {180, 42}, {160, 42}, {140, 42}, {120, 42}, {100, 42}, { 80, 42}, { 60, 42}, { 40, 42}, { 20, 42}, { 0, 42},
+ {225, 21}, {200, 21}, {180, 21}, {160, 21}, {140, 21}, {120, 21}, {100, 21}, { 80, 21}, { 60, 21}, { 40, 21}, { 20, 21}, { 0, 21},
+ {225, 0}, {200, 0}, {180, 0}, {160, 0}, {140, 0}, {120, 0}, {100, 0}, { 80, 0}, { 60, 0}, { 40, 0}, { 20, 0}, { 0, 0}
+ },
+ {
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1
+ }
+};
+#endif
diff --git a/keyboards/rate/pistachio_pro/config.h b/keyboards/rate/pistachio_pro/config.h
index d0b1ddcae8..309d51f79c 100644
--- a/keyboards/rate/pistachio_pro/config.h
+++ b/keyboards/rate/pistachio_pro/config.h
@@ -42,6 +42,7 @@ along with this program. If not, see .
/* OLED */
#define OLED_DISPLAY_128X64
+#define OLED_FONT_H "keyboards/rate/pistachio_pro/lib/glcdfont.c"
#define OLED_FONT_WIDTH 6
#define OLED_FONT_HEIGHT 6
diff --git a/keyboards/rate/pistachio_pro/lib/glcdfont.c b/keyboards/rate/pistachio_pro/lib/glcdfont.c
new file mode 100644
index 0000000000..41041f12bb
--- /dev/null
+++ b/keyboards/rate/pistachio_pro/lib/glcdfont.c
@@ -0,0 +1,232 @@
+// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0.
+// See gfxfont.h for newer custom bitmap font info.
+
+#include "progmem.h"
+
+// Standard ASCII 5x7 font
+const unsigned char font[] PROGMEM = {
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
+0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
+0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
+0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
+0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
+0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
+0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
+0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
+0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
+0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
+0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
+0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
+0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
+0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
+0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
+0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
+0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
+0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
+0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
+0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
+0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
+0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
+0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
+0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
+0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
+0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
+0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
+0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
+0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
+0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
+0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
+0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
+0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
+0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
+0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
+0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
+0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
+0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
+0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
+0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
+0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
+0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
+0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
+0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
+0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
+0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
+0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
+0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
+0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
+0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
+0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
+0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
+0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
+0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
+0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
+0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
+0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
+0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
+0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
+0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
+0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
+0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
+0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
+0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
+0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
+0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
+0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
+0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
+0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
+0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
+0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
+0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
+0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
+0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
+0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
+0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
+0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
+0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
+0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
+0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
+0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
+0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
+0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
+0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
+0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
+0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
+0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
+0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
+0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
+0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
+0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
+0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
+0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
+0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
+0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
+0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
+0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
+0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
+0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
+0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
+0x18, 0x24, 0x24, 0x1C, 0x78, 0x00,
+0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
+0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
+0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
+0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
+0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
+0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
+0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
+0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
+0x7C, 0x18, 0x24, 0x24, 0x18, 0x00,
+0x18, 0x24, 0x24, 0x18, 0x7C, 0x00,
+0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
+0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
+0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
+0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
+0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
+0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
+0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
+0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
+0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
+0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
+0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
+0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
+0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
+0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0,
+0xF0, 0xF8, 0xF8, 0x18, 0x00, 0xC0,
+0xF0, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF,
+0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x80, 0xC0, 0xE0, 0xE0,
+0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+0xC0, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x80, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0,
+0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80,
+0x00, 0x00, 0x00, 0xE0, 0xE0, 0xC0,
+0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00,
+0x00, 0xE0, 0xE0, 0xC0, 0xC0, 0xE0,
+0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80,
+0x00, 0x00, 0x00, 0x00, 0x80, 0xC0,
+0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
+0xE0, 0xE0, 0xC0, 0x80, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC,
+0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00,
+0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E,
+0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00,
+0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B,
+0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00,
+0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE,
+0xDE, 0xD7, 0xDC, 0x00, 0xC0, 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, 0xF8, 0xFC, 0xFE,
+0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0xFF,
+0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF,
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFF, 0x1F, 0x07, 0x01, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0xFF, 0xFF, 0xFF, 0x81, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x81,
+0xC3, 0xC3, 0xC3, 0x00, 0x00, 0xFF,
+0xFF, 0xFF, 0x81, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x81, 0xFF, 0xFF,
+0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
+0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0xFF, 0xFF, 0xFF, 0x01, 0x00,
+0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF,
+0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
+0x9D, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
+0x1C, 0x9D, 0xDF, 0xDF, 0xDF, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
+0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00,
+0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F,
+0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00,
+0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20,
+0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00,
+0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F,
+0x0F, 0x7F, 0x0F, 0x00, 0x03, 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, 0x03, 0x0F, 0x1F,
+0x3F, 0x3F, 0x3F, 0x3F, 0x1F, 0x1F,
+0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x3F,
+0x3F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
+0x7F, 0x7C, 0x78, 0x78, 0x38, 0x1C,
+0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x01, 0x03, 0x07, 0x07,
+0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+0x03, 0x01, 0x00, 0x00, 0x00, 0x00,
+0x01, 0x03, 0x07, 0x07, 0x07, 0x07,
+0x07, 0x07, 0x07, 0x07, 0x03, 0x01,
+0x00, 0x00, 0x00, 0x07, 0x07, 0x07,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x07, 0x07, 0x07, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x07, 0x07,
+0x07, 0x00, 0x00, 0x00, 0x01, 0x03,
+0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
+0x07, 0x07, 0x03, 0x01, 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,
+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, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
diff --git a/keyboards/rgbkb/mun/rev1/keyboard.json b/keyboards/rgbkb/mun/rev1/keyboard.json
index 96cbf887f7..ec02a2f2dd 100644
--- a/keyboards/rgbkb/mun/rev1/keyboard.json
+++ b/keyboards/rgbkb/mun/rev1/keyboard.json
@@ -88,106 +88,6 @@
},
"center_point": [128, 34],
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 16, "y": 16, "flags": 1},
- {"matrix": [0, 1], "x": 34, "y": 16, "flags": 4},
- {"matrix": [0, 2], "x": 49, "y": 16, "flags": 4},
- {"matrix": [0, 3], "x": 64, "y": 16, "flags": 4},
- {"matrix": [0, 4], "x": 79, "y": 16, "flags": 4},
- {"matrix": [0, 5], "x": 94, "y": 16, "flags": 4},
- {"matrix": [0, 6], "x": 109, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 109, "y": 31, "flags": 4},
- {"matrix": [1, 5], "x": 94, "y": 31, "flags": 4},
- {"matrix": [1, 4], "x": 79, "y": 31, "flags": 4},
- {"matrix": [1, 3], "x": 64, "y": 31, "flags": 4},
- {"matrix": [1, 2], "x": 49, "y": 31, "flags": 4},
- {"matrix": [1, 1], "x": 34, "y": 31, "flags": 4},
- {"matrix": [1, 0], "x": 16, "y": 31, "flags": 1},
- {"matrix": [2, 0], "x": 16, "y": 46, "flags": 1},
- {"matrix": [2, 1], "x": 34, "y": 46, "flags": 4},
- {"matrix": [2, 2], "x": 49, "y": 46, "flags": 4},
- {"matrix": [2, 3], "x": 64, "y": 46, "flags": 4},
- {"matrix": [2, 4], "x": 79, "y": 46, "flags": 4},
- {"matrix": [2, 5], "x": 94, "y": 46, "flags": 4},
- {"matrix": [2, 6], "x": 109, "y": 46, "flags": 4},
- {"matrix": [3, 6], "x": 109, "y": 61, "flags": 4},
- {"matrix": [3, 5], "x": 94, "y": 61, "flags": 4},
- {"matrix": [3, 4], "x": 79, "y": 61, "flags": 4},
- {"matrix": [3, 3], "x": 64, "y": 61, "flags": 4},
- {"matrix": [3, 2], "x": 49, "y": 61, "flags": 4},
- {"matrix": [3, 1], "x": 34, "y": 61, "flags": 4},
- {"matrix": [3, 0], "x": 16, "y": 61, "flags": 1},
- {"matrix": [4, 0], "x": 16, "y": 76, "flags": 1},
- {"matrix": [4, 1], "x": 34, "y": 76, "flags": 1},
- {"matrix": [4, 2], "x": 49, "y": 76, "flags": 1},
- {"matrix": [4, 3], "x": 64, "y": 76, "flags": 1},
- {"matrix": [4, 4], "x": 83, "y": 72, "flags": 1},
- {"matrix": [4, 5], "x": 98, "y": 72, "flags": 1},
- {"matrix": [4, 6], "x": 113, "y": 72, "flags": 1},
- {"x": 97, "y": 5, "flags": 2},
- {"x": 91, "y": 5, "flags": 2},
- {"x": 86, "y": 5, "flags": 2},
- {"x": 80, "y": 5, "flags": 2},
- {"x": 75, "y": 5, "flags": 2},
- {"x": 69, "y": 5, "flags": 2},
- {"x": 63, "y": 5, "flags": 2},
- {"x": 58, "y": 5, "flags": 2},
- {"x": 52, "y": 5, "flags": 2},
- {"x": 46, "y": 5, "flags": 2},
- {"x": 41, "y": 5, "flags": 2},
- {"x": 35, "y": 5, "flags": 2},
- {"x": 30, "y": 5, "flags": 2},
- {"x": 24, "y": 5, "flags": 2},
- {"matrix": [7, 0], "x": 240, "y": 16, "flags": 1},
- {"matrix": [7, 1], "x": 222, "y": 16, "flags": 4},
- {"matrix": [7, 2], "x": 207, "y": 16, "flags": 4},
- {"matrix": [7, 3], "x": 192, "y": 16, "flags": 4},
- {"matrix": [7, 4], "x": 177, "y": 16, "flags": 4},
- {"matrix": [7, 5], "x": 162, "y": 16, "flags": 4},
- {"matrix": [7, 6], "x": 147, "y": 16, "flags": 4},
- {"matrix": [8, 6], "x": 147, "y": 31, "flags": 4},
- {"matrix": [8, 5], "x": 162, "y": 31, "flags": 4},
- {"matrix": [8, 4], "x": 177, "y": 31, "flags": 4},
- {"matrix": [8, 3], "x": 192, "y": 31, "flags": 4},
- {"matrix": [8, 2], "x": 207, "y": 31, "flags": 4},
- {"matrix": [8, 1], "x": 222, "y": 31, "flags": 4},
- {"matrix": [8, 0], "x": 240, "y": 31, "flags": 1},
- {"matrix": [9, 0], "x": 240, "y": 46, "flags": 1},
- {"matrix": [9, 1], "x": 222, "y": 46, "flags": 4},
- {"matrix": [9, 2], "x": 207, "y": 46, "flags": 4},
- {"matrix": [9, 3], "x": 192, "y": 46, "flags": 4},
- {"matrix": [9, 4], "x": 177, "y": 46, "flags": 4},
- {"matrix": [9, 5], "x": 162, "y": 46, "flags": 4},
- {"matrix": [9, 6], "x": 147, "y": 46, "flags": 4},
- {"matrix": [10, 6], "x": 147, "y": 61, "flags": 4},
- {"matrix": [10, 5], "x": 162, "y": 61, "flags": 4},
- {"matrix": [10, 4], "x": 177, "y": 61, "flags": 4},
- {"matrix": [10, 3], "x": 192, "y": 61, "flags": 4},
- {"matrix": [10, 2], "x": 207, "y": 61, "flags": 4},
- {"matrix": [10, 1], "x": 222, "y": 61, "flags": 4},
- {"matrix": [10, 0], "x": 240, "y": 61, "flags": 1},
- {"matrix": [11, 0], "x": 240, "y": 76, "flags": 1},
- {"matrix": [11, 1], "x": 222, "y": 76, "flags": 1},
- {"matrix": [11, 2], "x": 207, "y": 76, "flags": 1},
- {"matrix": [11, 3], "x": 192, "y": 76, "flags": 1},
- {"matrix": [11, 4], "x": 180, "y": 72, "flags": 1},
- {"matrix": [11, 5], "x": 165, "y": 72, "flags": 1},
- {"matrix": [11, 6], "x": 150, "y": 72, "flags": 1},
- {"x": 159, "y": 5, "flags": 2},
- {"x": 164, "y": 5, "flags": 2},
- {"x": 170, "y": 5, "flags": 2},
- {"x": 176, "y": 5, "flags": 2},
- {"x": 181, "y": 5, "flags": 2},
- {"x": 187, "y": 5, "flags": 2},
- {"x": 192, "y": 5, "flags": 2},
- {"x": 198, "y": 5, "flags": 2},
- {"x": 204, "y": 5, "flags": 2},
- {"x": 209, "y": 5, "flags": 2},
- {"x": 215, "y": 5, "flags": 2},
- {"x": 221, "y": 5, "flags": 2},
- {"x": 226, "y": 5, "flags": 2},
- {"x": 232, "y": 5, "flags": 2}
- ],
"led_flush_limit": 33,
"led_process_limit": 10,
"sleep": true,
diff --git a/keyboards/rgbkb/mun/rev1/rev1.c b/keyboards/rgbkb/mun/rev1/rev1.c
index 7a16d7cb86..206a30d654 100644
--- a/keyboards/rgbkb/mun/rev1/rev1.c
+++ b/keyboards/rgbkb/mun/rev1/rev1.c
@@ -42,6 +42,53 @@ bool touch_encoder_tapped_kb(uint8_t index, uint8_t section) {
return false;
}
+#ifdef RGB_MATRIX_ENABLE
+// clang-format off
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6 },
+ { 13, 12, 11, 10, 9, 8, 7 },
+ { 14, 15, 16, 17, 18, 19, 20 },
+ { 27, 26, 25, 24, 23, 22, 21 },
+ { 28, 29, 30, 31, 32, 33, 34 },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { 49, 50, 51, 52, 53, 54, 55 },
+ { 62, 61, 60, 59, 58, 57, 56 },
+ { 63, 64, 65, 66, 67, 68, 69 },
+ { 76, 75, 74, 73, 72, 71, 70 },
+ { 77, 78, 79, 80, 81, 82, 83 },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }
+}, {
+ { 16, 16},{ 34, 16},{ 49, 16},{ 64, 16},{ 79, 16},{ 94, 16},{ 109, 16},
+ { 109, 31},{ 94, 31},{ 79, 31},{ 64, 31},{ 49, 31},{ 34, 31},{ 16, 31},
+ { 16, 46},{ 34, 46},{ 49, 46},{ 64, 46},{ 79, 46},{ 94, 46},{ 109, 46},
+ { 109, 61},{ 94, 61},{ 79, 61},{ 64, 61},{ 49, 61},{ 34, 61},{ 16, 61},
+ { 16, 76},{ 34, 76},{ 49, 76},{ 64, 76},{ 83, 72},{ 98, 72},{ 113, 72},
+ { 97, 5},{ 91, 5},{ 86, 5},{ 80, 5},{ 75, 5},{ 69, 5},{ 63, 5},{ 58, 5},{ 52, 5},{ 46, 5},{ 41, 5},{ 35, 5},{ 30, 5},{ 24, 5},
+ { 240, 16},{ 222, 16},{ 207, 16},{ 192, 16},{ 177, 16},{ 162, 16},{ 147, 16},
+ { 147, 31},{ 162, 31},{ 177, 31},{ 192, 31},{ 207, 31},{ 222, 31},{ 240, 31},
+ { 240, 46},{ 222, 46},{ 207, 46},{ 192, 46},{ 177, 46},{ 162, 46},{ 147, 46},
+ { 147, 61},{ 162, 61},{ 177, 61},{ 192, 61},{ 207, 61},{ 222, 61},{ 240, 61},
+ { 240, 76},{ 222, 76},{ 207, 76},{ 192, 76},{ 180, 72},{ 165, 72},{ 150, 72},
+ { 159, 5},{ 164, 5},{ 170, 5},{ 176, 5},{ 181, 5},{ 187, 5},{ 192, 5},{ 198, 5},{ 204, 5},{ 209, 5},{ 215, 5},{ 221, 5},{ 226, 5},{ 232, 5},
+}, {
+ 1, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 1, 1, 1, 1,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 1, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 1, 1, 1, 1,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
+} };
+// clang-format on
+#endif
+
void keyboard_post_init_kb(void) {
touch_encoder_init();
transaction_register_rpc(TOUCH_ENCODER_SYNC, touch_encoder_slave_sync);
diff --git a/keyboards/rgbkb/pan/config.h b/keyboards/rgbkb/pan/config.h
index 29b60e739c..be719c1437 100644
--- a/keyboards/rgbkb/pan/config.h
+++ b/keyboards/rgbkb/pan/config.h
@@ -1,5 +1,20 @@
-// Copyright 2020 RGBKB
-// SPDX-License-Identifier: GPL-2.0-or-later
+/*Copyright 2020 RGBKB
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
#pragma once
+#define RGB_MATRIX_LED_COUNT 64
#define WS2812_LED_COUNT 64
diff --git a/keyboards/rgbkb/pan/info.json b/keyboards/rgbkb/pan/info.json
index 4358881075..ad56ba5e4b 100644
--- a/keyboards/rgbkb/pan/info.json
+++ b/keyboards/rgbkb/pan/info.json
@@ -66,71 +66,23 @@
"solid_splash": true,
"solid_multisplash": true
},
- "driver": "custom",
- "layout": [
- {"x": 0, "y": 0, "flags": 1},
- {"x": 224, "y": 0, "flags": 1},
- {"matrix": [0, 0], "x": 9, "y": 13, "flags": 1},
- {"matrix": [0, 1], "x": 28, "y": 13, "flags": 4},
- {"matrix": [0, 2], "x": 47, "y": 13, "flags": 4},
- {"matrix": [0, 3], "x": 66, "y": 13, "flags": 4},
- {"matrix": [0, 4], "x": 84, "y": 13, "flags": 4},
- {"matrix": [0, 5], "x": 104, "y": 13, "flags": 4},
- {"matrix": [0, 6], "x": 123, "y": 13, "flags": 4},
- {"matrix": [0, 7], "x": 142, "y": 13, "flags": 4},
- {"matrix": [0, 8], "x": 161, "y": 13, "flags": 4},
- {"matrix": [0, 9], "x": 180, "y": 13, "flags": 4},
- {"matrix": [0, 10], "x": 199, "y": 13, "flags": 4},
- {"matrix": [0, 12], "x": 215, "y": 13, "flags": 1},
- {"matrix": [1, 11], "x": 215, "y": 26, "flags": 1},
- {"matrix": [1, 10], "x": 199, "y": 26, "flags": 4},
- {"matrix": [1, 9], "x": 180, "y": 26, "flags": 4},
- {"matrix": [1, 8], "x": 161, "y": 26, "flags": 4},
- {"matrix": [1, 7], "x": 142, "y": 26, "flags": 4},
- {"matrix": [1, 6], "x": 123, "y": 26, "flags": 4},
- {"matrix": [1, 5], "x": 104, "y": 26, "flags": 4},
- {"matrix": [1, 4], "x": 84, "y": 26, "flags": 4},
- {"matrix": [1, 3], "x": 66, "y": 26, "flags": 4},
- {"matrix": [1, 2], "x": 47, "y": 26, "flags": 4},
- {"matrix": [1, 1], "x": 28, "y": 26, "flags": 4},
- {"matrix": [1, 0], "x": 9, "y": 26, "flags": 1},
- {"matrix": [2, 0], "x": 9, "y": 38, "flags": 1},
- {"matrix": [2, 1], "x": 28, "y": 38, "flags": 4},
- {"matrix": [2, 2], "x": 47, "y": 38, "flags": 4},
- {"matrix": [2, 3], "x": 66, "y": 38, "flags": 4},
- {"matrix": [2, 4], "x": 84, "y": 38, "flags": 4},
- {"matrix": [2, 5], "x": 104, "y": 38, "flags": 4},
- {"matrix": [2, 6], "x": 123, "y": 38, "flags": 4},
- {"matrix": [2, 7], "x": 142, "y": 38, "flags": 4},
- {"matrix": [2, 8], "x": 161, "y": 38, "flags": 4},
- {"matrix": [2, 9], "x": 180, "y": 38, "flags": 4},
- {"matrix": [2, 10], "x": 199, "y": 38, "flags": 4},
- {"matrix": [2, 11], "x": 215, "y": 38, "flags": 1},
- {"matrix": [3, 12], "x": 215, "y": 51, "flags": 1},
- {"matrix": [3, 10], "x": 199, "y": 51, "flags": 4},
- {"matrix": [3, 9], "x": 180, "y": 51, "flags": 4},
- {"matrix": [3, 8], "x": 161, "y": 51, "flags": 4},
- {"matrix": [3, 7], "x": 142, "y": 51, "flags": 4},
- {"matrix": [3, 6], "x": 123, "y": 51, "flags": 4},
- {"matrix": [3, 5], "x": 104, "y": 51, "flags": 4},
- {"matrix": [3, 4], "x": 84, "y": 51, "flags": 4},
- {"matrix": [3, 3], "x": 66, "y": 51, "flags": 4},
- {"matrix": [3, 2], "x": 47, "y": 51, "flags": 4},
- {"matrix": [3, 1], "x": 28, "y": 51, "flags": 4},
- {"matrix": [3, 0], "x": 9, "y": 51, "flags": 1},
- {"matrix": [4, 0], "x": 9, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 28, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 47, "y": 64, "flags": 1},
- {"matrix": [4, 3], "x": 66, "y": 64, "flags": 1},
- {"matrix": [4, 4], "x": 84, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 104, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 123, "y": 64, "flags": 1},
- {"matrix": [4, 7], "x": 142, "y": 64, "flags": 1},
- {"matrix": [4, 8], "x": 161, "y": 64, "flags": 1},
- {"matrix": [4, 9], "x": 180, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 199, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 215, "y": 64, "flags": 1}
- ]
+ "driver": "custom"
+ },
+ "rgblight": {
+ "led_count": 64,
+ "max_brightness": 120,
+ "animations": {
+ "breathing": true,
+ "rainbow_mood": true,
+ "rainbow_swirl": true,
+ "snake": true,
+ "knight": true,
+ "christmas": true,
+ "static_gradient": true,
+ "rgb_test": true,
+ "alternating": true,
+ "twinkle": true
+ }
},
"layouts": {
"LAYOUT_all": {
diff --git a/keyboards/rgbkb/pan/keymaps/default/keymap.c b/keyboards/rgbkb/pan/keymaps/default/keymap.c
new file mode 100644
index 0000000000..3647ae2ad6
--- /dev/null
+++ b/keyboards/rgbkb/pan/keymaps/default/keymap.c
@@ -0,0 +1,116 @@
+ /* Copyright 2020 RGBKB
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#include QMK_KEYBOARD_H
+
+enum layer_number {
+ _QWERTY,
+ _COLEMAK,
+ _FN,
+ _ADJ
+};
+
+#define FN_ESC LT(_FN, KC_ESC)
+#define FN_CAPS LT(_FN, KC_CAPS)
+#define QWERTY DF(_QWERTY)
+#define COLEMAK DF(_COLEMAK)
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QWERTY] = LAYOUT_all(
+ QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_DEL,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
+ FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
+ KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC,
+ KC_LCTL, KC_LGUI, KC_LALT, RM_TOGG, MO(_ADJ),KC_SPC, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
+ ),
+
+ [_COLEMAK] = LAYOUT_all(
+ QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_DEL,
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
+ FN_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, KC_ENT,
+ KC_LCTL, KC_LGUI, KC_LALT, RM_TOGG, MO(_ADJ),KC_SPC, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
+ ),
+
+ [_FN] = LAYOUT_all(
+ 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_PGDN, KC_UP, KC_PGUP, _______, _______, _______, KC_PGDN, KC_UP, KC_PGUP, KC_PSCR, KC_HOME,
+ _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_END,
+ _______, _______, _______, _______, _______, _______, _______, KC_LBRC, _______, KC_RBRC, _______, _______, _______,
+ _______, _______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ [_ADJ] = LAYOUT_all(
+ 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,
+ _______, RM_SATD, RM_VALU, RM_SATU, QK_BOOT, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______,
+ _______, RM_HUED, RM_VALD, RM_HUEU, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______,
+ _______, RM_SPDD, _______, RM_SPDU, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______,
+ _______, _______, _______, RM_NEXT, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, _QWERTY, _COLEMAK
+ )
+};
+
+#ifdef OLED_ENABLE
+bool oled_task_user(void) {
+ // Host Keyboard Layer Status
+ oled_write_P(PSTR("RGBKB Pan\n"), false);
+ oled_write_P(PSTR("Layer: "), false);
+ uint8_t layer = get_highest_layer(layer_state|default_layer_state);
+ switch (layer) {
+ case _QWERTY:
+ oled_write_P(PSTR("Default\n"), false);
+ break;
+ case _COLEMAK:
+ oled_write_P(PSTR("Colemak\n"), false);
+ break;
+ case _FN:
+ oled_write_P(PSTR("Function\n"), false);
+ break;
+ case _ADJ:
+ oled_write_P(PSTR("Adjust\n"), false);
+ break;
+ default:
+ oled_write_P(PSTR("Undefined\n"), false);
+ // Or use the write_ln shortcut over adding '\n' to the end of your string
+ //oled_write_ln_P(PSTR("Undefined"), false);
+ }
+ led_t led_state = host_keyboard_led_state();
+ oled_write_P(led_state.num_lock ? PSTR("Numlock On\n") : PSTR(" \n"), false);
+ oled_write_P(led_state.caps_lock ? PSTR("Capslock On \n") : PSTR(" \n"), false);
+
+ return false;
+}
+#endif
+
+bool encoder_update_user(uint8_t index, bool clockwise) {
+ if (index == 0) { // First encoder - right
+ if (clockwise) {
+ tap_code(KC_VOLU);
+ } else {
+ tap_code(KC_VOLD);
+ }
+ } else if (index == 1) { // Second encoder - left
+ if (clockwise) {
+ tap_code(KC_VOLU);
+ } else {
+ tap_code(KC_VOLD);
+ }
+ }
+ return true;
+}
diff --git a/keyboards/rgbkb/pan/keymaps/default/keymap.json b/keyboards/rgbkb/pan/keymaps/default/keymap.json
deleted file mode 100644
index e2f50556f0..0000000000
--- a/keyboards/rgbkb/pan/keymaps/default/keymap.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "keyboard": "rgbkb/pan/rev1/32a",
- "keymap": "default",
- "layout": "LAYOUT_all",
- "layers": [
- [
- "QK_GESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_BSPC", "KC_DEL",
- "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSLS",
- "LT(2, KC_CAPS)", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_ENT",
- "KC_LSFT", "KC_BSLS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "SC_RSPC",
- "KC_LCTL", "KC_LGUI", "KC_LALT", "RM_TOGG", "MO(3)", "KC_SPC", "KC_SPC", "MO(2)", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RIGHT"
- ],
- [
- "QK_GESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_BSPC", "KC_DEL",
- "KC_TAB", "KC_Q", "KC_W", "KC_F", "KC_P", "KC_G", "KC_J", "KC_L", "KC_U", "KC_Y", "KC_SCLN", "KC_BSLS",
- "LT(2, KC_CAPS)", "KC_A", "KC_R", "KC_S", "KC_T", "KC_D", "KC_H", "KC_N", "KC_E", "KC_I", "KC_O", "KC_ENT",
- "KC_LSFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "SC_RSPC", "KC_ENT",
- "KC_LCTL", "KC_LGUI", "KC_LALT", "RM_TOGG", "MO(3)", "KC_SPC", "KC_SPC", "MO(2)", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RIGHT"
- ],
- [
- "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_PGDN", "KC_UP", "KC_PGUP", "_______", "_______", "_______", "KC_PGDN", "KC_UP", "KC_PGUP", "KC_PSCR", "KC_HOME",
- "_______", "KC_LEFT", "KC_DOWN", "KC_RGHT", "_______", "_______", "_______", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_INS", "KC_END",
- "_______", "_______", "_______", "_______", "_______", "_______", "_______", "KC_LBRC", "_______", "KC_RBRC", "_______", "_______", "_______",
- "_______", "_______", "_______", "RM_NEXT", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______"
- ],
- [
- "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",
- "_______", "RM_SATD", "RM_VALU", "RM_SATU", "QK_BOOT", "_______", "_______", "KC_P7", "KC_P8", "KC_P9", "_______", "_______",
- "_______", "RM_HUED", "RM_VALD", "RM_HUEU", "_______", "_______", "_______", "KC_P4", "KC_P5", "KC_P6", "_______", "_______",
- "_______", "RM_SPDD", "_______", "RM_SPDU", "_______", "_______", "_______", "KC_P1", "KC_P2", "KC_P3", "_______", "_______", "_______",
- "_______", "_______", "_______", "RM_NEXT", "_______", "_______", "_______", "KC_P0", "KC_PDOT", "KC_NUM", "DF(0)", "DF(1)"
- ]
- ]
-}
diff --git a/keyboards/rgbkb/pan/keymaps/default/rules.mk b/keyboards/rgbkb/pan/keymaps/default/rules.mk
new file mode 100644
index 0000000000..c4f4ee04da
--- /dev/null
+++ b/keyboards/rgbkb/pan/keymaps/default/rules.mk
@@ -0,0 +1,3 @@
+# RGB layout selection
+RGB_ENCODERS = yes # For RGB encoders, solder on both WS2811 chips
+STAGGERED_LAYOUT = no # If you soldered R1-A12 and R4-A12, enable this.
diff --git a/keyboards/rgbkb/pan/keymaps/default_eee/keymap.c b/keyboards/rgbkb/pan/keymaps/default_eee/keymap.c
new file mode 100644
index 0000000000..2de45d88e6
--- /dev/null
+++ b/keyboards/rgbkb/pan/keymaps/default_eee/keymap.c
@@ -0,0 +1,116 @@
+ /* Copyright 2020 RGBKB
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#include QMK_KEYBOARD_H
+
+enum layer_number {
+ _QWERTY,
+ _COLEMAK,
+ _FN,
+ _ADJ
+};
+
+#define FN_ESC LT(_FN, KC_ESC)
+#define FN_CAPS LT(_FN, KC_CAPS)
+#define QWERTY DF(_QWERTY)
+#define COLEMAK DF(_COLEMAK)
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QWERTY] = LAYOUT_eee(
+ QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
+ FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
+ KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SC_RSPC,
+ KC_LCTL, KC_LGUI, KC_LALT, RM_TOGG, MO(_ADJ),KC_SPC, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+ ),
+
+ [_COLEMAK] = LAYOUT_eee(
+ QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
+ FN_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
+ KC_LCTL, KC_LGUI, KC_LALT, RM_TOGG, MO(_ADJ),KC_SPC, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+ ),
+
+ [_FN] = LAYOUT_eee(
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_PSCR,
+ _______, KC_PGDN, KC_UP, KC_PGUP, _______, _______, _______, KC_PGDN, KC_UP, KC_PGUP, KC_PSCR, KC_HOME,
+ _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_END,
+ _______, _______, _______, _______, _______, _______, _______, KC_LBRC, _______, KC_RBRC, _______, _______,
+ _______, _______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ [_ADJ] = LAYOUT_eee(
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_PSCR,
+ _______, RM_SATD, RM_VALU, RM_SATU, QK_BOOT, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______,
+ _______, RM_HUED, RM_VALD, RM_HUEU, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______,
+ _______, RM_SPDD, _______, RM_SPDU, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______,
+ _______, _______, _______, RM_NEXT, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, QWERTY, COLEMAK
+ )
+};
+
+#ifdef OLED_ENABLE
+bool oled_task_user(void) {
+ // Host Keyboard Layer Status
+ oled_write_P(PSTR("RGBKB Pan\n"), false);
+ oled_write_P(PSTR("Layer: "), false);
+ uint8_t layer = get_highest_layer(layer_state|default_layer_state);
+ switch (layer) {
+ case _QWERTY:
+ oled_write_P(PSTR("Default\n"), false);
+ break;
+ case _COLEMAK:
+ oled_write_P(PSTR("Colemak\n"), false);
+ break;
+ case _FN:
+ oled_write_P(PSTR("Function\n"), false);
+ break;
+ case _ADJ:
+ oled_write_P(PSTR("Adjust\n"), false);
+ break;
+ default:
+ oled_write_P(PSTR("Undefined\n"), false);
+ // Or use the write_ln shortcut over adding '\n' to the end of your string
+ //oled_write_ln_P(PSTR("Undefined"), false);
+ }
+ led_t led_state = host_keyboard_led_state();
+ oled_write_P(led_state.num_lock ? PSTR("Numlock On\n") : PSTR(" \n"), false);
+ oled_write_P(led_state.caps_lock ? PSTR("Capslock On \n") : PSTR(" \n"), false);
+
+ return false;
+}
+#endif
+
+bool encoder_update_user(uint8_t index, bool clockwise) {
+ if (index == 0) { // First encoder - right
+ if (clockwise) {
+ tap_code(KC_VOLU);
+ } else {
+ tap_code(KC_VOLD);
+ }
+ } else if (index == 1) { // Second encoder - left
+ if (clockwise) {
+ tap_code(KC_VOLU);
+ } else {
+ tap_code(KC_VOLD);
+ }
+ }
+ return true;
+}
diff --git a/keyboards/rgbkb/pan/keymaps/default_eee/keymap.json b/keyboards/rgbkb/pan/keymaps/default_eee/keymap.json
deleted file mode 100644
index c46fc40a3d..0000000000
--- a/keyboards/rgbkb/pan/keymaps/default_eee/keymap.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "keyboard": "rgbkb/pan/rev1/32a",
- "keymap": "default_eee",
- "layout": "LAYOUT_eee",
- "layers": [
- [
- "QK_GESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_DEL",
- "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSLS",
- "LT(2, KC_CAPS)", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_ENT",
- "KC_LSFT", "KC_BSLS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "SC_RSPC",
- "KC_LCTL", "KC_LGUI", "KC_LALT", "RM_TOGG", "MO(3)", "KC_SPC", "KC_SPC", "MO(2)", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RGHT"
- ],
- [
- "QK_GESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_DEL",
- "KC_TAB", "KC_Q", "KC_W", "KC_F", "KC_P", "KC_G", "KC_J", "KC_L", "KC_U", "KC_Y", "KC_SCLN", "KC_BSLS",
- "LT(2, KC_CAPS)", "KC_A", "KC_R", "KC_S", "KC_T", "KC_D", "KC_H", "KC_N", "KC_E", "KC_I", "KC_O", "KC_ENT",
- "KC_LSFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_ENT",
- "KC_LCTL", "KC_LGUI", "KC_LALT", "RM_TOGG", "MO(3)", "KC_SPC", "KC_SPC", "MO(2)", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RGHT"
- ],
- [
- "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_PSCR",
- "_______", "KC_PGDN", "KC_UP", "KC_PGUP", "_______", "_______", "_______", "KC_PGDN", "KC_UP", "KC_PGUP", "KC_PSCR", "KC_HOME",
- "_______", "KC_LEFT", "KC_DOWN", "KC_RGHT", "_______", "_______", "_______", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_INS", "KC_END",
- "_______", "_______", "_______", "_______", "_______", "_______", "_______", "KC_LBRC", "_______", "KC_RBRC", "_______", "_______",
- "_______", "_______", "_______", "RM_NEXT", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______"
- ],
- [
- "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_PSCR",
- "_______", "RM_SATD", "RM_VALU", "RM_SATU", "QK_BOOT", "_______", "_______", "KC_P7", "KC_P8", "KC_P9", "_______", "_______",
- "_______", "RM_HUED", "RM_VALD", "RM_HUEU", "_______", "_______", "_______", "KC_P4", "KC_P5", "KC_P6", "_______", "_______",
- "_______", "RM_SPDD", "_______", "RM_SPDU", "_______", "_______", "_______", "KC_P1", "KC_P2", "KC_P3", "_______", "_______",
- "_______", "_______", "_______", "RM_NEXT", "_______", "_______", "_______", "KC_P0", "KC_PDOT", "KC_NUM", "DF(0)", "DF(1)"
- ]
- ]
-}
diff --git a/keyboards/rgbkb/pan/keymaps/default_eee/rules.mk b/keyboards/rgbkb/pan/keymaps/default_eee/rules.mk
new file mode 100644
index 0000000000..c4f4ee04da
--- /dev/null
+++ b/keyboards/rgbkb/pan/keymaps/default_eee/rules.mk
@@ -0,0 +1,3 @@
+# RGB layout selection
+RGB_ENCODERS = yes # For RGB encoders, solder on both WS2811 chips
+STAGGERED_LAYOUT = no # If you soldered R1-A12 and R4-A12, enable this.
diff --git a/keyboards/rgbkb/pan/keymaps/default_sss/keymap.c b/keyboards/rgbkb/pan/keymaps/default_sss/keymap.c
new file mode 100644
index 0000000000..b0b8bd1898
--- /dev/null
+++ b/keyboards/rgbkb/pan/keymaps/default_sss/keymap.c
@@ -0,0 +1,116 @@
+ /* Copyright 2020 RGBKB
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#include QMK_KEYBOARD_H
+
+enum layer_number {
+ _QWERTY,
+ _COLEMAK,
+ _FN,
+ _ADJ
+};
+
+#define FN_ESC LT(_FN, KC_ESC)
+#define FN_CAPS LT(_FN, KC_CAPS)
+#define QWERTY DF(_QWERTY)
+#define COLEMAK DF(_COLEMAK)
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QWERTY] = LAYOUT_sss(
+ QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_DEL,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
+ FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
+ KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_ADJ),KC_RCTL
+ ),
+
+ [_COLEMAK] = LAYOUT_sss(
+ QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_DEL,
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
+ FN_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT,
+ KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_ADJ),KC_RCTL
+ ),
+
+ [_FN] = LAYOUT_sss(
+ 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_PGDN, KC_UP, KC_PGUP, _______, _______, _______, KC_PGDN, KC_UP, KC_PGUP, KC_PSCR, KC_HOME,
+ _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_END,
+ _______, _______, _______, _______, _______, _______, _______, KC_LBRC, _______, KC_RBRC, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ [_ADJ] = LAYOUT_sss(
+ 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,
+ _______, RM_SATD, RM_VALU, RM_SATU, QK_BOOT, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______,
+ _______, RM_HUED, RM_VALD, RM_HUEU, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______,
+ _______, RM_SPDD, _______, RM_SPDU, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______,
+ _______, _______, _______, _______, QWERTY, _______, COLEMAK
+ )
+};
+
+#ifdef OLED_ENABLE
+bool oled_task_user(void) {
+ // Host Keyboard Layer Status
+ oled_write_P(PSTR("RGBKB Pan\n"), false);
+ oled_write_P(PSTR("Layer: "), false);
+ uint8_t layer = get_highest_layer(layer_state|default_layer_state);
+ switch (layer) {
+ case _QWERTY:
+ oled_write_P(PSTR("Default\n"), false);
+ break;
+ case _COLEMAK:
+ oled_write_P(PSTR("Colemak\n"), false);
+ break;
+ case _FN:
+ oled_write_P(PSTR("Function\n"), false);
+ break;
+ case _ADJ:
+ oled_write_P(PSTR("Adjust\n"), false);
+ break;
+ default:
+ oled_write_P(PSTR("Undefined\n"), false);
+ // Or use the write_ln shortcut over adding '\n' to the end of your string
+ //oled_write_ln_P(PSTR("Undefined"), false);
+ }
+ led_t led_state = host_keyboard_led_state();
+ oled_write_P(led_state.num_lock ? PSTR("Numlock On\n") : PSTR(" \n"), false);
+ oled_write_P(led_state.caps_lock ? PSTR("Capslock On \n") : PSTR(" \n"), false);
+
+ return false;
+}
+#endif
+
+bool encoder_update_user(uint8_t index, bool clockwise) {
+ if (index == 0) { // First encoder - right
+ if (clockwise) {
+ tap_code(KC_VOLU);
+ } else {
+ tap_code(KC_VOLD);
+ }
+ } else if (index == 1) { // Second encoder - left
+ if (clockwise) {
+ tap_code(KC_VOLU);
+ } else {
+ tap_code(KC_VOLD);
+ }
+ }
+ return true;
+}
diff --git a/keyboards/rgbkb/pan/keymaps/default_sss/keymap.json b/keyboards/rgbkb/pan/keymaps/default_sss/keymap.json
deleted file mode 100644
index ab216429f0..0000000000
--- a/keyboards/rgbkb/pan/keymaps/default_sss/keymap.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "keyboard": "rgbkb/pan/rev1/32a",
- "keymap": "default_sss",
- "layout": "LAYOUT_sss",
- "layers": [
- [
- "QK_GESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_BSPC", "KC_DEL",
- "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSLS",
- "LT(2, KC_CAPS)", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_ENT",
- "KC_LSFT", "KC_BSLS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT",
- "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "MO(3)", "KC_RCTL"
- ],
- [
- "QK_GESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_BSPC", "KC_DEL",
- "KC_TAB", "KC_Q", "KC_W", "KC_F", "KC_P", "KC_G", "KC_J", "KC_L", "KC_U", "KC_Y", "KC_SCLN", "KC_BSLS",
- "LT(2, KC_CAPS)", "KC_A", "KC_R", "KC_S", "KC_T", "KC_D", "KC_H", "KC_N", "KC_E", "KC_I", "KC_O", "KC_ENT",
- "KC_LSFT", "KC_BSLS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT",
- "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "MO(3)", "KC_RCTL"
- ],
- [
- "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_PGDN", "KC_UP", "KC_PGUP", "_______", "_______", "_______", "KC_PGDN", "KC_UP", "KC_PGUP", "KC_PSCR", "KC_HOME",
- "_______", "KC_LEFT", "KC_DOWN", "KC_RGHT", "_______", "_______", "_______", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_INS", "KC_END",
- "_______", "_______", "_______", "_______", "_______", "_______", "_______", "KC_LBRC", "_______", "KC_RBRC", "_______", "_______", "_______",
- "_______", "_______", "_______", "_______", "_______", "_______", "_______"
- ],
- [
- "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",
- "_______", "RM_SATD", "RM_VALU", "RM_SATU", "QK_BOOT", "_______", "_______", "KC_P7", "KC_P8", "KC_P9", "_______", "_______",
- "_______", "RM_HUED", "RM_VALD", "RM_HUEU", "_______", "_______", "_______", "KC_P4", "KC_P5", "KC_P6", "_______", "_______",
- "_______", "RM_SPDD", "_______", "RM_SPDU", "_______", "_______", "_______", "KC_P1", "KC_P2", "KC_P3", "_______", "_______",
- "_______", "_______", "_______", "_______", "_______", "DF(0)", "_______", "DF(1)"
- ]
- ]
-}
diff --git a/keyboards/rgbkb/pan/keymaps/default_sss/rules.mk b/keyboards/rgbkb/pan/keymaps/default_sss/rules.mk
new file mode 100644
index 0000000000..c4f4ee04da
--- /dev/null
+++ b/keyboards/rgbkb/pan/keymaps/default_sss/rules.mk
@@ -0,0 +1,3 @@
+# RGB layout selection
+RGB_ENCODERS = yes # For RGB encoders, solder on both WS2811 chips
+STAGGERED_LAYOUT = no # If you soldered R1-A12 and R4-A12, enable this.
diff --git a/keyboards/rgbkb/pan/pan.c b/keyboards/rgbkb/pan/pan.c
index ce5c2ae249..20cc4dd248 100644
--- a/keyboards/rgbkb/pan/pan.c
+++ b/keyboards/rgbkb/pan/pan.c
@@ -1,15 +1,34 @@
-// Copyright 2020 RGBKB
-// SPDX-License-Identifier: GPL-2.0-or-later
+/* Copyright 2020 RGBKB
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
#include "quantum.h"
+#include "rgb_matrix_types.h"
-#ifdef RGB_MATRIX_ENABLE
-# include "ws2812.h"
+#if defined RGB_MATRIX_ENABLE
+# if defined(KEYBOARD_rgbkb_pan_rev1)
+# include "ws2812.h"
+// Set an led in the buffer to a color
static inline void setled(int i, uint8_t r, uint8_t g, uint8_t b) {
- if (i == 0 || i == 1) { // Encoder LEDs require GBR sequence
+# if defined(RGB_ENCODERS) || defined(STAGGERED_RGB_ENCODERS)
+ if (i == 0 || i == 1) { // if encoder LEDs, change LEDs
ws2812_set_color(i, g, b, r);
- } else {
+ } else
+# endif
+ {
ws2812_set_color(i, r, g, b);
}
}
@@ -20,35 +39,74 @@ const rgb_matrix_driver_t rgb_matrix_driver = {
.set_color = setled,
.set_color_all = ws2812_set_color_all,
};
-#endif
+# endif
-#ifdef OLED_ENABLE
-bool oled_task_kb(void) {
- if (!oled_task_user()) {
- return false;
- }
- oled_write_P(PSTR("RGBKB Pan\n"), false);
- oled_write_P(PSTR("Layer: "), false);
- uint8_t layer = get_highest_layer(layer_state | default_layer_state);
- switch (layer) {
- case 0:
- oled_write_P(PSTR("Default\n"), false);
- break;
- case 1:
- oled_write_P(PSTR("Colemak\n"), false);
- break;
- case 2:
- oled_write_P(PSTR("Function\n"), false);
- break;
- case 3:
- oled_write_P(PSTR("Adjust\n"), false);
- break;
- default:
- oled_write_P(PSTR("Undefined\n"), false);
- }
- led_t led_state = host_keyboard_led_state();
- oled_write_P(led_state.num_lock ? PSTR("Numlock On\n") : PSTR(" \n"), false);
- oled_write_P(led_state.caps_lock ? PSTR("Capslock On \n") : PSTR(" \n"), false);
- return false;
-}
+// clang-format off
+ led_config_t g_led_config = { {
+ { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 0, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15 },
+ { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 1 },
+ { 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40 },
+ { 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, NO_LED }
+ }, {
+# ifdef STAGGERED_RGB_ENCODERS
+ {0, -19},{228, -19},
+ {0, 0}, {14, 0}, {33, 0}, {52, 0}, {71, 0}, {90, 0}, {109, 0}, {128, 0}, {147, 0}, {166, 0}, {185, 0}, {204, 0}, {223, 0},
+ {209, 19}, {190, 19}, {171, 19}, {152, 19}, {133, 19}, {114, 19}, {95, 19}, {76, 19}, {57, 19}, {38, 19}, {19, 19}, {0, 19},
+ {0, 38}, {19, 38}, {38, 38}, {57, 38}, {76, 38}, {95, 38}, {114, 38}, {133, 38}, {152, 38}, {171, 38}, {190, 38}, {209, 38},
+ {223, 57}, {204, 57}, {185, 57}, {171, 57}, {147, 57}, {128, 57}, {109, 57}, {90, 57}, {71, 57}, {52, 57}, {33, 57}, {14, 57}, {0, 57},
+ {0, 76}, {19, 76}, {38, 76}, {57, 76}, {76, 76}, {95, 76}, {114, 76}, {133, 76}, {152, 76}, {171, 76}, {190, 76}, {209, 76},
+# elif defined RGB_ENCODERS
+ {0, -19},{228, -19},
+ {0, 0}, {19, 0}, {38, 0}, {57, 0}, {76, 0}, {95, 0}, {114, 0}, {133, 0}, {152, 0}, {171, 0}, {190, 0}, {209, 0},
+ {209, 19}, {190, 19}, {171, 19}, {152, 19}, {133, 19}, {114, 19}, {95, 19}, {76, 19}, {57, 19}, {38, 19}, {19, 19}, {0, 19},
+ {0, 38}, {19, 38}, {38, 38}, {57, 38}, {76, 38}, {95, 38}, {114, 38}, {133, 38}, {152, 38}, {171, 38}, {190, 38}, {209, 38},
+ {209, 57}, {190, 57}, {171, 57}, {152, 57}, {133, 57}, {114, 57}, {95, 57}, {76, 57}, {57, 57}, {38, 57}, {19, 57}, {0, 57},
+ {0, 76}, {19, 76}, {38, 76}, {57, 76}, {76, 76}, {95, 76}, {114, 76}, {133, 76}, {152, 76}, {171, 76}, {190, 76}, {209, 76},
+ {0, 95},{19, 95}, //not used
+# elif defined STAGGERED_LAYOUT
+ {0, 0}, {19, 0}, {38, 0}, {57, 0}, {76, 0}, {95, 0}, {114, 0}, {133, 0}, {152, 0}, {171, 0}, {190, 0}, {209, 0}, {0, 0},
+ {209, 19}, {190, 19}, {171, 19}, {152, 19}, {133, 19}, {114, 19}, {95, 19}, {76, 19}, {57, 19}, {38, 19}, {19, 19}, {0, 19},
+ {0, 38}, {19, 38}, {38, 38}, {57, 38}, {76, 38}, {95, 38}, {114, 38}, {133, 38}, {152, 38}, {171, 38}, {190, 38}, {209, 38},
+ {209, 57}, {190, 57}, {171, 57}, {152, 57}, {133, 57}, {114, 57}, {95, 57}, {76, 57}, {57, 57}, {38, 57}, {19, 57}, {0, 57}, {0, 0},
+ {0, 76}, {19, 76}, {38, 76}, {57, 76}, {76, 76}, {95, 76}, {114, 76}, {133, 76}, {152, 76}, {171, 76}, {190, 76}, {209, 76},
+ {0, 95},{19, 95},//not used
+# else
+ {0, 0}, {19, 0}, {38, 0}, {57, 0}, {76, 0}, {95, 0}, {114, 0}, {133, 0}, {152, 0}, {171, 0}, {190, 0}, {209, 0},
+ {209, 19}, {190, 19}, {171, 19}, {152, 19}, {133, 19}, {114, 19}, {95, 19}, {76, 19}, {57, 19}, {38, 19}, {19, 19}, {0, 19},
+ {0, 38}, {19, 38}, {38, 38}, {57, 38}, {76, 38}, {95, 38}, {114, 38}, {133, 38}, {152, 38}, {171, 38}, {190, 38}, {209, 38},
+ {209, 57}, {190, 57}, {171, 57}, {152, 57}, {133, 57}, {114, 57}, {95, 57}, {76, 57}, {57, 57}, {38, 57}, {19, 57}, {0, 57},
+ {0, 76}, {19, 76}, {38, 76}, {57, 76}, {76, 76}, {95, 76}, {114, 76}, {133, 76}, {152, 76}, {171, 76}, {190, 76}, {209, 76},
+ {0, 0},{0, 0}, {0, 0},{0, 0},//not used
+# endif
+ }, {
+# ifdef STAGGERED_RGB_ENCODERS
+ 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
+# elif defined RGB_ENCODERS
+ 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
+# elif defined STAGGERED_LAYOUT
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
+# else
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
+# endif
+ } };
+// clang-format on
#endif
diff --git a/keyboards/rgbkb/pan/post_rules.mk b/keyboards/rgbkb/pan/post_rules.mk
new file mode 100644
index 0000000000..afa3b555b2
--- /dev/null
+++ b/keyboards/rgbkb/pan/post_rules.mk
@@ -0,0 +1,28 @@
+RGB_MATRIX_KEYPRESSES ?= no # Enable reactive per-key effects.
+RGB_MATRIX_FRAMEBUFFER_EFFECTS ?= no # Enable frame buffer effects like the typing heatmap.
+
+# RGB layout selection
+STAGGERED_LAYOUT ?= no # If you soldered R1-A12 and R4-A12, enable this.
+RGB_ENCODERS ?= yes # For RGB encoders, solder on both WS2811 chips
+
+ifeq ($(strip $(RGB_MATRIX_KEYPRESSES)), yes)
+ OPT_DEFS += -DRGB_MATRIX_KEYPRESSES
+endif
+
+ifeq ($(strip $(RGB_MATRIX_FRAMEBUFFER)), yes)
+ OPT_DEFS += -DRGB_MATRIX_FRAMEBUFFER_EFFECTS
+endif
+
+ifeq ($(strip $(STAGGERED_LAYOUT)), yes)
+ OPT_DEFS += -DSTAGGERED_LAYOUT
+endif
+
+ifeq ($(strip $(RGB_ENCODERS)), yes)
+ OPT_DEFS += -DRGB_ENCODERS
+endif
+
+ifeq ($(strip $(RGB_ENCODERS)), yes)
+ ifeq ($(strip $(STAGGERED_LAYOUT)), yes)
+ OPT_DEFS += -DSTAGGERED_RGB_ENCODERS=$(strip $(STAGGERED_RGB_ENCODERS))
+ endif
+endif
diff --git a/keyboards/rgbkb/sol/rev1/keyboard.json b/keyboards/rgbkb/sol/rev1/keyboard.json
index 6bb41e1c37..9a4c538e55 100644
--- a/keyboards/rgbkb/sol/rev1/keyboard.json
+++ b/keyboards/rgbkb/sol/rev1/keyboard.json
@@ -63,79 +63,7 @@
"solid_multisplash": true
},
"center_point": [112, 35],
- "driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 21, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 38, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 56, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 73, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 91, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 112, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 18, "flags": 1},
- {"matrix": [1, 1], "x": 21, "y": 18, "flags": 4},
- {"matrix": [1, 2], "x": 38, "y": 18, "flags": 4},
- {"matrix": [1, 3], "x": 56, "y": 18, "flags": 4},
- {"matrix": [1, 4], "x": 73, "y": 18, "flags": 4},
- {"matrix": [1, 5], "x": 91, "y": 18, "flags": 4},
- {"matrix": [1, 6], "x": 108, "y": 13, "flags": 1},
- {"matrix": [2, 0], "x": 0, "y": 35, "flags": 1},
- {"matrix": [2, 1], "x": 21, "y": 35, "flags": 4},
- {"matrix": [2, 2], "x": 38, "y": 35, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 35, "flags": 4},
- {"matrix": [2, 4], "x": 73, "y": 35, "flags": 4},
- {"matrix": [2, 5], "x": 91, "y": 35, "flags": 4},
- {"matrix": [2, 6], "x": 108, "y": 31, "flags": 1},
- {"matrix": [3, 0], "x": 0, "y": 52, "flags": 1},
- {"matrix": [3, 1], "x": 21, "y": 52, "flags": 4},
- {"matrix": [3, 2], "x": 38, "y": 52, "flags": 4},
- {"matrix": [3, 3], "x": 56, "y": 52, "flags": 4},
- {"matrix": [3, 4], "x": 73, "y": 52, "flags": 4},
- {"matrix": [3, 5], "x": 91, "y": 52, "flags": 4},
- {"matrix": [3, 6], "x": 108, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 0, "y": 70, "flags": 1},
- {"matrix": [4, 1], "x": 21, "y": 70, "flags": 1},
- {"matrix": [4, 2], "x": 38, "y": 70, "flags": 1},
- {"matrix": [4, 3], "x": 56, "y": 70, "flags": 1},
- {"matrix": [4, 4], "x": 73, "y": 70, "flags": 1},
- {"matrix": [5, 5], "x": 89, "y": 91, "flags": 1},
- {"matrix": [5, 6], "x": 101, "y": 103, "flags": 1},
- {"matrix": [6, 0], "x": 224, "y": 0, "flags": 1},
- {"matrix": [6, 1], "x": 203, "y": 0, "flags": 4},
- {"matrix": [6, 2], "x": 186, "y": 0, "flags": 4},
- {"matrix": [6, 3], "x": 168, "y": 0, "flags": 4},
- {"matrix": [6, 4], "x": 151, "y": 0, "flags": 4},
- {"matrix": [6, 5], "x": 133, "y": 0, "flags": 4},
- {"matrix": [6, 6], "x": 112, "y": 0, "flags": 1},
- {"matrix": [7, 0], "x": 224, "y": 18, "flags": 1},
- {"matrix": [7, 1], "x": 203, "y": 18, "flags": 4},
- {"matrix": [7, 2], "x": 186, "y": 18, "flags": 4},
- {"matrix": [7, 3], "x": 168, "y": 18, "flags": 4},
- {"matrix": [7, 4], "x": 151, "y": 18, "flags": 4},
- {"matrix": [7, 5], "x": 133, "y": 18, "flags": 4},
- {"matrix": [7, 6], "x": 116, "y": 13, "flags": 1},
- {"matrix": [8, 0], "x": 224, "y": 35, "flags": 1},
- {"matrix": [8, 1], "x": 203, "y": 35, "flags": 4},
- {"matrix": [8, 2], "x": 186, "y": 35, "flags": 4},
- {"matrix": [8, 3], "x": 168, "y": 35, "flags": 4},
- {"matrix": [8, 4], "x": 151, "y": 35, "flags": 4},
- {"matrix": [8, 5], "x": 133, "y": 35, "flags": 4},
- {"matrix": [8, 6], "x": 116, "y": 31, "flags": 1},
- {"matrix": [9, 0], "x": 224, "y": 52, "flags": 1},
- {"matrix": [9, 1], "x": 203, "y": 52, "flags": 4},
- {"matrix": [9, 2], "x": 186, "y": 52, "flags": 4},
- {"matrix": [9, 3], "x": 168, "y": 52, "flags": 4},
- {"matrix": [9, 4], "x": 151, "y": 52, "flags": 4},
- {"matrix": [9, 5], "x": 133, "y": 52, "flags": 4},
- {"matrix": [9, 6], "x": 116, "y": 48, "flags": 1},
- {"matrix": [10, 0], "x": 224, "y": 70, "flags": 1},
- {"matrix": [10, 1], "x": 203, "y": 70, "flags": 1},
- {"matrix": [10, 2], "x": 186, "y": 70, "flags": 1},
- {"matrix": [10, 3], "x": 168, "y": 70, "flags": 1},
- {"matrix": [10, 4], "x": 151, "y": 70, "flags": 1},
- {"matrix": [11, 6], "x": 135, "y": 91, "flags": 1},
- {"x": 123, "y": 103, "flags": 1}
- ]
+ "driver": "ws2812"
},
"rgblight": {
"animations": {
diff --git a/keyboards/rgbkb/sol/rev1/rev1.c b/keyboards/rgbkb/sol/rev1/rev1.c
new file mode 100644
index 0000000000..f5997bac00
--- /dev/null
+++ b/keyboards/rgbkb/sol/rev1/rev1.c
@@ -0,0 +1,46 @@
+#include "sol.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6 },
+ { 7, 8, 9, 10, 11, 12, 13 },
+ { 14, 15, 16, 17, 18, 19, 20 },
+ { 21, 22, 23, 24, 25, 26, 27 },
+ { 28, 29, 30, 31, 32, 33, 34 },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 33, 34 },
+ { 35, 36, 37, 38, 39, 40, 41 },
+ { 42, 43, 44, 45, 46, 47, 48 },
+ { 49, 50, 51, 52, 53, 54, 55 },
+ { 56, 57, 58, 59, 60, 61, 62 },
+ { 63, 64, 65, 66, 67, 68, 68 },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 68, 68 }
+}, {
+ // Left Hand Mapped Left to Right
+ { 0, 0 }, { 21, 0 }, { 38, 0 }, { 56, 0 }, { 73, 0 }, { 91, 0 }, { 112, 0 },
+ { 0, 18 }, { 21, 18 }, { 38, 18 }, { 56, 18 }, { 73, 18 }, { 91, 18 }, { 108, 13 },
+ { 0, 35 }, { 21, 35 }, { 38, 35 }, { 56, 35 }, { 73, 35 }, { 91, 35 }, { 108, 31 },
+ { 0, 52 }, { 21, 52 }, { 38, 52 }, { 56, 52 }, { 73, 52 }, { 91, 52 }, { 108, 48 },
+ { 0, 70 }, { 21, 70 }, { 38, 70 }, { 56, 70 }, { 73, 70 }, { 89, 91 }, { 101, 103 },
+ // Left Hand Mapped Right to Left
+ { 224, 0 }, { 203, 0 }, { 186, 0 }, { 168, 0 }, { 151, 0 }, { 133, 0 }, { 112, 0 },
+ { 224, 18 }, { 203, 18 }, { 186, 18 }, { 168, 18 }, { 151, 18 }, { 133, 18 }, { 116, 13 },
+ { 224, 35 }, { 203, 35 }, { 186, 35 }, { 168, 35 }, { 151, 35 }, { 133, 35 }, { 116, 31 },
+ { 224, 52 }, { 203, 52 }, { 186, 52 }, { 168, 52 }, { 151, 52 }, { 133, 52 }, { 116, 48 },
+ { 224, 70 }, { 203, 70 }, { 186, 70 }, { 168, 70 }, { 151, 70 }, { 135, 91 }, { 123, 103 },
+}, {
+ // Left Hand Mapped Left to Right
+ 1, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 1, 1, 1, 1,
+ // Left Hand Mapped Right to Left
+ 1, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 1, 1, 1, 1
+} };
+
+#endif
+
diff --git a/keyboards/rgbkb/sol3/rev1/keyboard.json b/keyboards/rgbkb/sol3/rev1/keyboard.json
index f7780ae37a..dc9e6d4035 100644
--- a/keyboards/rgbkb/sol3/rev1/keyboard.json
+++ b/keyboards/rgbkb/sol3/rev1/keyboard.json
@@ -96,164 +96,6 @@
},
"center_point": [81, 28],
"driver": "ws2812",
- "layout": [
- {"x": 1, "y": 6, "flags": 2},
- {"x": 1, "y": 13, "flags": 2},
- {"x": 1, "y": 19, "flags": 2},
- {"x": 1, "y": 25, "flags": 2},
- {"x": 1, "y": 31, "flags": 2},
- {"x": 1, "y": 37, "flags": 2},
- {"x": 1, "y": 43, "flags": 2},
- {"x": 1, "y": 49, "flags": 2},
- {"x": 4, "y": 52, "flags": 2},
- {"x": 11, "y": 52, "flags": 2},
- {"x": 17, "y": 52, "flags": 2},
- {"x": 23, "y": 52, "flags": 2},
- {"x": 29, "y": 52, "flags": 2},
- {"x": 35, "y": 52, "flags": 2},
- {"x": 41, "y": 54, "flags": 2},
- {"x": 46, "y": 57, "flags": 2},
- {"x": 52, "y": 60, "flags": 2},
- {"x": 57, "y": 63, "flags": 2},
- {"x": 62, "y": 66, "flags": 2},
- {"x": 68, "y": 69, "flags": 2},
- {"x": 73, "y": 67, "flags": 2},
- {"x": 76, "y": 62, "flags": 2},
- {"x": 79, "y": 57, "flags": 2},
- {"x": 78, "y": 51, "flags": 2},
- {"x": 77, "y": 45, "flags": 2},
- {"x": 76, "y": 39, "flags": 2},
- {"x": 76, "y": 33, "flags": 2},
- {"x": 76, "y": 27, "flags": 2},
- {"x": 76, "y": 21, "flags": 2},
- {"x": 76, "y": 14, "flags": 2},
- {"x": 76, "y": 8, "flags": 2},
- {"x": 72, "y": 3, "flags": 2},
- {"x": 59, "y": 3, "flags": 2},
- {"x": 53, "y": 3, "flags": 2},
- {"x": 46, "y": 3, "flags": 2},
- {"x": 40, "y": 3, "flags": 2},
- {"x": 34, "y": 3, "flags": 2},
- {"x": 28, "y": 3, "flags": 2},
- {"x": 22, "y": 3, "flags": 2},
- {"x": 10, "y": 3, "flags": 2},
- {"x": 3, "y": 3, "flags": 2},
- {"matrix": [0, 0], "x": 9, "y": 6, "flags": 1},
- {"matrix": [0, 1], "x": 21, "y": 6, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 6, "flags": 4},
- {"matrix": [0, 3], "x": 40, "y": 6, "flags": 4},
- {"matrix": [0, 4], "x": 49, "y": 6, "flags": 4},
- {"matrix": [0, 5], "x": 59, "y": 6, "flags": 4},
- {"matrix": [0, 6], "x": 71, "y": 6, "flags": 1},
- {"matrix": [1, 6], "x": 71, "y": 16, "flags": 1},
- {"matrix": [1, 5], "x": 59, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 49, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 40, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 30, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 21, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 9, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 9, "y": 25, "flags": 1},
- {"matrix": [2, 1], "x": 21, "y": 25, "flags": 4},
- {"matrix": [2, 2], "x": 30, "y": 25, "flags": 4},
- {"matrix": [2, 3], "x": 40, "y": 25, "flags": 4},
- {"matrix": [2, 4], "x": 49, "y": 25, "flags": 4},
- {"matrix": [2, 5], "x": 59, "y": 25, "flags": 4},
- {"matrix": [2, 6], "x": 71, "y": 25, "flags": 1},
- {"matrix": [3, 6], "x": 71, "y": 35, "flags": 1},
- {"matrix": [3, 5], "x": 59, "y": 35, "flags": 4},
- {"matrix": [3, 4], "x": 49, "y": 35, "flags": 4},
- {"matrix": [3, 3], "x": 40, "y": 35, "flags": 4},
- {"matrix": [3, 2], "x": 30, "y": 35, "flags": 4},
- {"matrix": [3, 1], "x": 21, "y": 35, "flags": 4},
- {"matrix": [3, 0], "x": 9, "y": 35, "flags": 1},
- {"matrix": [4, 0], "x": 9, "y": 44, "flags": 1},
- {"matrix": [4, 1], "x": 21, "y": 44, "flags": 1},
- {"matrix": [4, 2], "x": 30, "y": 44, "flags": 1},
- {"matrix": [4, 3], "x": 40, "y": 44, "flags": 1},
- {"matrix": [4, 4], "x": 49, "y": 44, "flags": 1},
- {"matrix": [4, 5], "x": 66, "y": 50, "flags": 1},
- {"matrix": [4, 6], "x": 75, "y": 54, "flags": 1},
- {"matrix": [4, 7], "x": 70, "y": 62, "flags": 1},
- {"x": 60, "y": 60, "flags": 1},
- {"x": 160, "y": 6, "flags": 2},
- {"x": 160, "y": 13, "flags": 2},
- {"x": 160, "y": 19, "flags": 2},
- {"x": 160, "y": 25, "flags": 2},
- {"x": 160, "y": 31, "flags": 2},
- {"x": 160, "y": 37, "flags": 2},
- {"x": 160, "y": 43, "flags": 2},
- {"x": 160, "y": 49, "flags": 2},
- {"x": 157, "y": 52, "flags": 2},
- {"x": 151, "y": 52, "flags": 2},
- {"x": 145, "y": 52, "flags": 2},
- {"x": 138, "y": 52, "flags": 2},
- {"x": 132, "y": 52, "flags": 2},
- {"x": 126, "y": 52, "flags": 2},
- {"x": 120, "y": 54, "flags": 2},
- {"x": 115, "y": 57, "flags": 2},
- {"x": 110, "y": 60, "flags": 2},
- {"x": 105, "y": 63, "flags": 2},
- {"x": 99, "y": 66, "flags": 2},
- {"x": 94, "y": 69, "flags": 2},
- {"x": 89, "y": 67, "flags": 2},
- {"x": 86, "y": 62, "flags": 2},
- {"x": 83, "y": 57, "flags": 2},
- {"x": 83, "y": 51, "flags": 2},
- {"x": 85, "y": 45, "flags": 2},
- {"x": 86, "y": 39, "flags": 2},
- {"x": 86, "y": 33, "flags": 2},
- {"x": 86, "y": 27, "flags": 2},
- {"x": 86, "y": 21, "flags": 2},
- {"x": 86, "y": 14, "flags": 2},
- {"x": 86, "y": 8, "flags": 2},
- {"x": 90, "y": 3, "flags": 2},
- {"x": 103, "y": 3, "flags": 2},
- {"x": 109, "y": 3, "flags": 2},
- {"x": 115, "y": 3, "flags": 2},
- {"x": 121, "y": 3, "flags": 2},
- {"x": 127, "y": 3, "flags": 2},
- {"x": 133, "y": 3, "flags": 2},
- {"x": 140, "y": 3, "flags": 2},
- {"x": 152, "y": 3, "flags": 2},
- {"x": 158, "y": 3, "flags": 2},
- {"matrix": [6, 0], "x": 153, "y": 6, "flags": 1},
- {"matrix": [6, 1], "x": 141, "y": 6, "flags": 4},
- {"matrix": [6, 2], "x": 131, "y": 6, "flags": 4},
- {"matrix": [6, 3], "x": 122, "y": 6, "flags": 4},
- {"matrix": [6, 4], "x": 112, "y": 6, "flags": 4},
- {"matrix": [6, 5], "x": 103, "y": 6, "flags": 4},
- {"matrix": [6, 6], "x": 91, "y": 6, "flags": 1},
- {"matrix": [7, 6], "x": 91, "y": 16, "flags": 1},
- {"matrix": [7, 5], "x": 103, "y": 16, "flags": 4},
- {"matrix": [7, 4], "x": 112, "y": 16, "flags": 4},
- {"matrix": [7, 3], "x": 122, "y": 16, "flags": 4},
- {"matrix": [7, 2], "x": 131, "y": 16, "flags": 4},
- {"matrix": [7, 1], "x": 141, "y": 16, "flags": 4},
- {"matrix": [7, 0], "x": 153, "y": 16, "flags": 1},
- {"matrix": [8, 0], "x": 153, "y": 25, "flags": 1},
- {"matrix": [8, 1], "x": 141, "y": 25, "flags": 4},
- {"matrix": [8, 2], "x": 131, "y": 25, "flags": 4},
- {"matrix": [8, 3], "x": 122, "y": 25, "flags": 4},
- {"matrix": [8, 4], "x": 112, "y": 25, "flags": 4},
- {"matrix": [8, 5], "x": 103, "y": 25, "flags": 4},
- {"matrix": [8, 6], "x": 91, "y": 25, "flags": 1},
- {"matrix": [9, 6], "x": 91, "y": 35, "flags": 1},
- {"matrix": [9, 5], "x": 103, "y": 35, "flags": 4},
- {"matrix": [9, 4], "x": 112, "y": 35, "flags": 4},
- {"matrix": [9, 3], "x": 122, "y": 35, "flags": 4},
- {"matrix": [9, 2], "x": 131, "y": 35, "flags": 4},
- {"matrix": [9, 1], "x": 141, "y": 35, "flags": 4},
- {"matrix": [9, 0], "x": 153, "y": 35, "flags": 1},
- {"matrix": [10, 0], "x": 153, "y": 44, "flags": 1},
- {"matrix": [10, 1], "x": 141, "y": 44, "flags": 1},
- {"matrix": [10, 2], "x": 131, "y": 44, "flags": 1},
- {"matrix": [10, 3], "x": 122, "y": 44, "flags": 1},
- {"matrix": [10, 4], "x": 112, "y": 44, "flags": 1},
- {"matrix": [10, 5], "x": 96, "y": 50, "flags": 1},
- {"matrix": [10, 6], "x": 87, "y": 54, "flags": 1},
- {"matrix": [10, 7], "x": 92, "y": 62, "flags": 1},
- {"x": 102, "y": 60, "flags": 1}
- ],
"led_flush_limit": 33,
"led_process_limit": 10,
"sleep": true,
diff --git a/keyboards/rgbkb/sol3/rev1/rev1.c b/keyboards/rgbkb/sol3/rev1/rev1.c
index 96402f851c..086ce0af01 100644
--- a/keyboards/rgbkb/sol3/rev1/rev1.c
+++ b/keyboards/rgbkb/sol3/rev1/rev1.c
@@ -81,6 +81,63 @@ void matrix_slave_scan_kb(void) {
}
#ifdef RGB_MATRIX_ENABLE
+// clang-format off
+led_config_t g_led_config = { {
+ { 41, 42, 43, 44, 45, 46, 47, NO_LED },
+ { 54, 53, 52, 51, 50, 49, 48, NO_LED },
+ { 55, 56, 57, 58, 59, 60, 61, NO_LED },
+ { 68, 67, 66, 65, 64, 63, 62, NO_LED },
+ { 69, 70, 71, 72, 73, 74, 75, 76 },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { 119, 120, 121, 122, 123, 124, 125, NO_LED },
+ { 132, 131, 130, 129, 128, 127, 126, NO_LED },
+ { 133, 134, 135, 136, 137, 138, 139, NO_LED },
+ { 146, 145, 144, 143, 142, 141, 140, NO_LED },
+ { 147, 148, 149, 150, 151, 152, 153, 154 },
+ { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }
+}, { // ALL XY VALUES DIVIDE BY 2, THEN ADD 5
+ { 1, 6 }, { 1, 13 }, { 1, 19 }, { 1, 25 }, { 1, 31 }, { 1, 37 }, { 1, 43 }, { 1, 49 }, { 4, 52 }, { 11, 52 },
+ { 17, 52 }, { 23, 52 }, { 29, 52 }, { 35, 52 }, { 41, 54 }, { 46, 57 }, { 52, 60 }, { 57, 63 }, { 62, 66 }, { 68, 69 },
+ { 73, 67 }, { 76, 62 }, { 79, 57 }, { 78, 51 }, { 77, 45 }, { 76, 39 }, { 76, 33 }, { 76, 27 }, { 76, 21 }, { 76, 14 },
+ { 76, 8 }, { 72, 3 }, { 59, 3 }, { 53, 3 }, { 46, 3 }, { 40, 3 }, { 34, 3 }, { 28, 3 }, { 22, 3 }, { 10, 3 }, { 3, 3 },
+ { 9, 6 }, { 21, 6 }, { 30, 6 }, { 40, 6 }, { 49, 6 }, { 59, 6 }, { 71, 6 },
+ { 71, 16 }, { 59, 16 }, { 49, 16 }, { 40, 16 }, { 30, 16 }, { 21, 16 }, { 9, 16 },
+ { 9, 25 }, { 21, 25 }, { 30, 25 }, { 40, 25 }, { 49, 25 }, { 59, 25 }, { 71, 25 },
+ { 71, 35 }, { 59, 35 }, { 49, 35 }, { 40, 35 }, { 30, 35 }, { 21, 35 }, { 9, 35 },
+ { 9, 44 }, { 21, 44 }, { 30, 44 }, { 40, 44 }, { 49, 44 }, { 66, 50 }, { 75, 54 }, { 70, 62 }, { 60, 60 },
+
+ { 160, 6 }, { 160, 13 }, { 160, 19 }, { 160, 25 }, { 160, 31 }, { 160, 37 }, { 160, 43 }, { 160, 49 }, { 157, 52 }, { 151, 52 },
+ { 145, 52 }, { 138, 52 }, { 132, 52 }, { 126, 52 }, { 120, 54 }, { 115, 57 }, { 110, 60 }, { 105, 63 }, { 99, 66 }, { 94, 69 },
+ { 89, 67 }, { 86, 62 }, { 83, 57 }, { 83, 51 }, { 85, 45 }, { 86, 39 }, { 86, 33 }, { 86, 27 }, { 86, 21 }, { 86, 14 },
+ { 86, 8 }, { 90, 3 }, { 103, 3 }, { 109, 3 }, { 115, 3 }, { 121, 3 }, { 127, 3 }, { 133, 3 }, { 140, 3 }, { 152, 3 }, { 158, 3 },
+ { 153, 6 }, { 141, 6 }, { 131, 6 }, { 122, 6 }, { 112, 6 }, { 103, 6 }, { 91, 6 },
+ { 91, 16 }, { 103, 16 }, { 112, 16 }, { 122, 16 }, { 131, 16 }, { 141, 16 }, { 153, 16 },
+ { 153, 25 }, { 141, 25 }, { 131, 25 }, { 122, 25 }, { 112, 25 }, { 103, 25 }, { 91, 25 },
+ { 91, 35 }, { 103, 35 }, { 112, 35 }, { 122, 35 }, { 131, 35 }, { 141, 35 }, { 153, 35 },
+ { 153, 44 }, { 141, 44 }, { 131, 44 }, { 122, 44 }, { 112, 44 }, { 96, 50 }, { 87, 54 }, { 92, 62 }, { 102, 60 },
+}, {
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 1, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1,
+
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 1, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1
+} };
+// clang-format on
+
void rgb_matrix_increase_flags(void)
{
switch (rgb_matrix_get_flags()) {
diff --git a/keyboards/rgbkb/zygomorph/common/glcdfont.c b/keyboards/rgbkb/zygomorph/common/glcdfont.c
new file mode 100644
index 0000000000..697d58886e
--- /dev/null
+++ b/keyboards/rgbkb/zygomorph/common/glcdfont.c
@@ -0,0 +1,233 @@
+// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0.
+// See gfxfont.h for newer custom bitmap font info.
+
+#include "progmem.h"
+
+// Standard ASCII 5x7 font
+
+static const unsigned char font[] PROGMEM = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
+ 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
+ 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
+ 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
+ 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
+ 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
+ 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
+ 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
+ 0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
+ 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
+ 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
+ 0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
+ 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
+ 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
+ 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
+ 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
+ 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
+ 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
+ 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
+ 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
+ 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
+ 0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
+ 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
+ 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
+ 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
+ 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
+ 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
+ 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
+ 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
+ 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
+ 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
+ 0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
+ 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
+ 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
+ 0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
+ 0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
+ 0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
+ 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
+ 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
+ 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
+ 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
+ 0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
+ 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
+ 0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
+ 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
+ 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
+ 0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
+ 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
+ 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
+ 0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
+ 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
+ 0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
+ 0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
+ 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
+ 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
+ 0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
+ 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
+ 0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
+ 0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
+ 0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
+ 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
+ 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
+ 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
+ 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
+ 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
+ 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
+ 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
+ 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
+ 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
+ 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
+ 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
+ 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
+ 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
+ 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
+ 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
+ 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
+ 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
+ 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
+ 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
+ 0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
+ 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
+ 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
+ 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
+ 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
+ 0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
+ 0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
+ 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
+ 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
+ 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
+ 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
+ 0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
+ 0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
+ 0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
+ 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
+ 0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
+ 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
+ 0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
+ 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
+ 0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x00,
+ 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
+ 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
+ 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
+ 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
+ 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
+ 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
+ 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
+ 0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
+ 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00,
+ 0x18, 0x24, 0x24, 0x18, 0xFC, 0x00,
+ 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
+ 0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
+ 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
+ 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
+ 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
+ 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
+ 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
+ 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
+ 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
+ 0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
+ 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
+ 0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
+ 0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
+ 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
+ 0x03, 0x07, 0x1F, 0x7F, 0xFF, 0xFF,
+ 0xFE, 0xF8, 0xF0, 0xC0, 0x20, 0xF8,
+ 0xFE, 0xFF, 0xFE, 0x79, 0x27, 0x1F,
+ 0x7F, 0xFF, 0xFF, 0xFE, 0xF8, 0xF0,
+ 0xC0, 0x20, 0xF8, 0xFE, 0xFF, 0xFF,
+ 0x7F, 0x3F, 0x3F, 0x7F, 0xFF, 0xFE,
+ 0xF8, 0xF0, 0xC0, 0x00, 0x00, 0x00,
+ 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xFF, 0x7F, 0x7F, 0x7F,
+ 0xBF, 0xBF, 0xC0, 0xC0, 0xC0, 0xE0,
+ 0xE0, 0xE0, 0xE0, 0xF0, 0xF0, 0xF0,
+ 0xF8, 0x78, 0x78, 0x7C, 0x3C, 0x3C,
+ 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x80, 0x80,
+ 0xBF, 0xBF, 0xDF, 0xDF, 0xEF, 0xEF,
+ 0x00, 0x03, 0x07, 0x1F, 0x7F, 0xFF,
+ 0xFF, 0xFF, 0xFE, 0xF8, 0xE0, 0xC0,
+ 0xE0, 0xF8, 0xFE, 0xFF, 0xFF, 0xFF,
+ 0x7F, 0x1F, 0x07, 0x03, 0x00, 0x00,
+ 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC,
+ 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00,
+ 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E,
+ 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00,
+ 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B,
+ 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00,
+ 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE,
+ 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xC1, 0xF3,
+ 0xCF, 0xBF, 0x7F, 0xFF, 0xFF, 0xFC,
+ 0xFB, 0xE7, 0x81, 0x00, 0x00, 0x00,
+ 0x00, 0x80, 0xE3, 0xCF, 0x3F, 0xFF,
+ 0xFF, 0xFF, 0xFC, 0xFB, 0xE7, 0x81,
+ 0x00, 0x00, 0x00, 0x00, 0x81, 0xE7,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0x3C, 0x00,
+ 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xF8, 0xF8, 0xFC, 0x7C, 0x7E,
+ 0x7E, 0x3E, 0xFE, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xF7, 0xF7, 0xF7, 0xFB,
+ 0xFB, 0x7D, 0x7D, 0x7D, 0xBE, 0xBE,
+ 0xBE, 0xDF, 0xDF, 0xE0, 0xE0, 0x00,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0x00, 0xFC, 0xFC, 0x7C, 0x7E, 0x7E,
+ 0x3E, 0x3E, 0x1F, 0x1F, 0x1F, 0x0F,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x81,
+ 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0x81,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
+ 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00,
+ 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F,
+ 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00,
+ 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20,
+ 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00,
+ 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F,
+ 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x60, 0x70, 0x7C, 0x7F, 0x7F, 0x7F,
+ 0x7F, 0x1F, 0x06, 0x01, 0x03, 0x0F,
+ 0x3F, 0x7F, 0x7F, 0x7E, 0x7C, 0x7C,
+ 0x7E, 0x7F, 0x7F, 0x7F, 0x1F, 0x06,
+ 0x01, 0x07, 0x0F, 0x3F, 0x7F, 0x7F,
+ 0x7E, 0x7C, 0x7C, 0x7E, 0x7F, 0x7F,
+ 0x3F, 0x0F, 0x03, 0x00, 0x00, 0x00,
+ 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F,
+ 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x7F, 0x7F, 0x7F, 0x7F,
+ 0x7F, 0x7F, 0x7D, 0x7D, 0x3D, 0x3E,
+ 0x1E, 0x1F, 0x1F, 0x1F, 0x0F, 0x0F,
+ 0x07, 0x07, 0x07, 0x03, 0x03, 0x00,
+ 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F,
+ 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C,
+ 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x00,
+ 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F,
+ 0x00, 0x40, 0x70, 0x78, 0x7E, 0x7F,
+ 0x7F, 0x7F, 0x3F, 0x0F, 0x03, 0x01,
+ 0x03, 0x0F, 0x3F, 0x7F, 0x7F, 0x7F,
+ 0x7E, 0x78, 0x70, 0x40, 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,
+ 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, 0x00, 0x00, 0x00, 0x00
+};
diff --git a/keyboards/royal_kludge/rk61/keyboard.json b/keyboards/royal_kludge/rk61/keyboard.json
deleted file mode 100644
index d98ce4765b..0000000000
--- a/keyboards/royal_kludge/rk61/keyboard.json
+++ /dev/null
@@ -1,223 +0,0 @@
-{
- "manufacturer": "Royal Kludge",
- "keyboard_name": "RK61",
- "maintainer": "DEREFERENC3D",
- "bootloader": "stm32-dfu",
- "diode_direction": "COL2ROW",
- "dynamic_keymap": {
- "layer_count": 16
- },
- "features": {
- "bootmagic": true,
- "extrakey": true,
- "mousekey": false,
- "nkro": true,
- "rgb_matrix": true
- },
- "matrix_pins": {
- "cols": ["A10", "A9", "B2", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"],
- "rows": ["A6", "A5", "A4", "A3", "A2"]
- },
- "processor": "STM32F072",
- "rgb_matrix": {
- "animations": {
- "alphas_mods": true,
- "band_pinwheel_sat": true,
- "band_pinwheel_val": true,
- "band_sat": true,
- "band_spiral_sat": true,
- "band_spiral_val": true,
- "band_val": true,
- "breathing": true,
- "cycle_all": true,
- "cycle_left_right": true,
- "cycle_out_in": true,
- "cycle_out_in_dual": true,
- "cycle_pinwheel": true,
- "cycle_spiral": true,
- "cycle_up_down": true,
- "digital_rain": true,
- "dual_beacon": true,
- "flower_blooming": true,
- "gradient_left_right": true,
- "gradient_up_down": true,
- "hue_breathing": true,
- "hue_pendulum": true,
- "hue_wave": true,
- "jellybean_raindrops": true,
- "multisplash": true,
- "pixel_flow": true,
- "pixel_fractal": true,
- "pixel_rain": true,
- "rainbow_beacon": true,
- "rainbow_moving_chevron": true,
- "rainbow_pinwheels": true,
- "raindrops": true,
- "riverflow": true,
- "solid_multisplash": true,
- "solid_reactive": true,
- "solid_reactive_cross": true,
- "solid_reactive_multicross": true,
- "solid_reactive_multinexus": true,
- "solid_reactive_multiwide": true,
- "solid_reactive_nexus": true,
- "solid_reactive_simple": true,
- "solid_reactive_wide": true,
- "solid_splash": true,
- "splash": true,
- "starlight": true,
- "starlight_dual_hue": true,
- "starlight_dual_sat": true,
- "starlight_smooth": true,
- "typing_heatmap": true
- },
- "default": {
- "hue": 170,
- "val": 150
- },
- "driver": "ws2812",
- "layout": [
- {"matrix": [0, 13], "x": 218, "y": 0, "flags": 1},
- {"matrix": [0, 12], "x": 193, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 177, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 161, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 145, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 129, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 113, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 97, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 81, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
- {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 73, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 89, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 105, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 121, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 137, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 153, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 169, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 185, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 202, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 222, "y": 16, "flags": 1},
- {"matrix": [2, 12], "x": 216, "y": 32, "flags": 1},
- {"matrix": [2, 11], "x": 189, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 173, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 157, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 141, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 125, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 109, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 93, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 77, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
- {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1},
- {"matrix": [3, 1], "x": 36, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 69, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 85, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 101, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 117, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 133, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 149, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 165, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 181, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 212, "y": 48, "flags": 1},
- {"matrix": [4, 12], "x": 224, "y": 64, "flags": 1},
- {"matrix": [4, 10], "x": 204, "y": 64, "flags": 1},
- {"matrix": [4, 9], "x": 184, "y": 64, "flags": 1},
- {"matrix": [4, 8], "x": 164, "y": 64, "flags": 1},
- {"matrix": [4, 5], "x": 103, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}
- ],
- "max_brightness": 200,
- "sleep": true
- },
- "url": "http://en.rkgaming.com/",
- "usb": {
- "device_version": "1.0.1",
- "pid": "0x6461",
- "vid": "0x1480"
- },
- "ws2812": {
- "pin": "B15",
- "driver": "spi"
- },
- "community_layouts": ["60_ansi"],
- "layouts": {
- "LAYOUT_60_ansi": {
- "layout": [
- {"label": "ESC", "matrix": [0, 0], "x": 0, "y": 0},
- {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
- {"label": "\"", "matrix": [0, 2], "x": 2, "y": 0},
- {"label": "\u00a3", "matrix": [0, 3], "x": 3, "y": 0},
- {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
- {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
- {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
- {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
- {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
- {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
- {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
- {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
- {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
- {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
- {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
- {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
- {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
- {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
- {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
- {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
- {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
- {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
- {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
- {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
- {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
- {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
- {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
- {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
- {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
- {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
- {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
- {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
- {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
- {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
- {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
- {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
- {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
- {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
- {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
- {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
- {"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
- {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
- {"label": "Z", "matrix": [3, 1], "x": 2.25, "y": 3},
- {"label": "X", "matrix": [3, 2], "x": 3.25, "y": 3},
- {"label": "C", "matrix": [3, 3], "x": 4.25, "y": 3},
- {"label": "V", "matrix": [3, 4], "x": 5.25, "y": 3},
- {"label": "B", "matrix": [3, 5], "x": 6.25, "y": 3},
- {"label": "N", "matrix": [3, 6], "x": 7.25, "y": 3},
- {"label": "M", "matrix": [3, 7], "x": 8.25, "y": 3},
- {"label": "<", "matrix": [3, 8], "x": 9.25, "y": 3},
- {"label": ">", "matrix": [3, 9], "x": 10.25, "y": 3},
- {"label": "?", "matrix": [3, 10], "x": 11.25, "y": 3},
- {"label": "Shift", "matrix": [3, 11], "x": 12.25, "y": 3, "w": 2.75},
- {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
- {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
- {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
- {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
- {"label": "AltGr", "matrix": [4, 8], "x": 10, "y": 4, "w": 1.25},
- {"label": "Menu", "matrix": [4, 9], "x": 11.25, "y": 4, "w": 1.25},
- {"label": "Ctrl", "matrix": [4, 10], "x": 12.5, "y": 4, "w": 1.25},
- {"label": "Fn", "matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25}
- ]
- }
- }
-}
diff --git a/keyboards/royal_kludge/rk61/keymaps/default/keymap.c b/keyboards/royal_kludge/rk61/keymaps/default/keymap.c
deleted file mode 100644
index 2efc47913b..0000000000
--- a/keyboards/royal_kludge/rk61/keymaps/default/keymap.c
+++ /dev/null
@@ -1,111 +0,0 @@
-// Copyright 2025 QMK
-// SPDX-License-Identifier: GPL-2.0-or-later
-#include QMK_KEYBOARD_H
-
-enum layers {
- WIN_BASE,
- WIN_T,
- WIN_ALT,
- ARROW_FN,
- LWIN_DIS,
- WIN_FN,
- WIN_T_FN,
- WIN_ALT_FN,
- MAC_BASE,
- MAC_FN,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [WIN_BASE] = LAYOUT_60_ansi(
- KC_ESC, 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_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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT,
- KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_LEFT, KC_DOWN, KC_RIGHT, MO(WIN_FN)
- ),
- [WIN_FN] = LAYOUT_60_ansi(
- KC_GRV, 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_DEL,
- _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, RM_VALD, RM_VALU, RM_NEXT,
- _______, _______, DF(MAC_BASE), _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _______, RM_SPDD, RM_SPDU, TG(ARROW_FN),
- _______, _______, _______, _______, _______, _______, KC_DEL, KC_END, KC_PGDN, RM_HUEU, _______, _______,
- DF(WIN_ALT), TG(LWIN_DIS), _______, _______, _______, _______, _______, _______
- ),
- [WIN_T] = LAYOUT_60_ansi(
- KC_GRV, 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_DEL,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, MO(WIN_T_FN)
- ),
- [WIN_T_FN] = LAYOUT_60_ansi(
- KC_ESC, KC_MYCM, KC_WHOM, KC_MAIL, KC_CALC, KC_MSEL, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_BSPC,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, DF(MAC_BASE), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TG(ARROW_FN),
- DF(WIN_BASE), TG(LWIN_DIS), _______, _______, _______, _______, _______, _______
- ),
- [WIN_ALT] = LAYOUT_60_ansi(
- KC_GRV, 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_DEL,
- _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, KC_DEL, KC_END, KC_PGDN, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, MO(WIN_ALT_FN)
- ),
- [WIN_ALT_FN] = LAYOUT_60_ansi(
- KC_ESC, KC_MYCM, KC_WHOM, KC_MAIL, KC_CALC, KC_MSEL, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_BSPC,
- _______, _______, _______, _______, _______, _______, KC_Y, KC_U, KC_I, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, KC_H, KC_J, KC_K, _______, _______, _______, TG(ARROW_FN),
- _______, _______, _______, _______, _______, _______, KC_N, KC_M, KC_COMM, _______, _______, _______,
- DF(WIN_T), TG(LWIN_DIS), _______, _______, _______, _______, _______, _______
- ),
- [MAC_BASE] = LAYOUT_60_ansi(
- KC_ESC, 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_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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_APP, KC_RCTL, MO(MAC_FN)
- ),
- [MAC_FN] = LAYOUT_60_ansi(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, DF(WIN_BASE), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH, _______,
- _______, _______, _______, _______, _______, KC_F1, KC_RCTL, KC_F2
- ),
- [ARROW_FN] = LAYOUT_60_ansi(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH, _______,
- _______, _______, _______, _______, KC_RALT, KC_APP, KC_RCTL, _______
- ),
- [LWIN_DIS] = LAYOUT_60_ansi(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_NO, _______, _______, _______, _______, _______, _______
- ),
-};
-
-#ifdef CAPS_LOCK_LED_INDEX
-bool rgb_matrix_indicators_user(void) {
- if (host_keyboard_led_state().caps_lock) {
- rgb_matrix_set_color(CAPS_LOCK_LED_INDEX, 255, 255, 255);
- } else {
- if (!rgb_matrix_get_flags()) {
- rgb_matrix_set_color(CAPS_LOCK_LED_INDEX, 0, 0, 0);
- }
- }
-
- if (layer_state_is(LWIN_DIS)) {
- rgb_matrix_set_color(59, 255, 255, 255);
- } else {
- if (!rgb_matrix_get_flags()) {
- rgb_matrix_set_color(59, 0, 0, 0);
- }
- }
-
- return false;
-}
-#endif
diff --git a/keyboards/royal_kludge/rk61/readme.md b/keyboards/royal_kludge/rk61/readme.md
deleted file mode 100644
index d8ba3a3a4f..0000000000
--- a/keyboards/royal_kludge/rk61/readme.md
+++ /dev/null
@@ -1,25 +0,0 @@
-# Royal Kludge RK61
-
-
-
-* Keyboard Maintainer: [DEREFERENC3D](https://github.com/DEREFERENC3D)
-* Hardware Supported: Royal Kludge RK61 - wired-only QMK version
-* Hardware Availability: [RKGaming.com](https://en.rkgaming.com/product/43/), [Amazon.com](https://www.amazon.com/RK-ROYAL-KLUDGE-Mechanical-Ultra-Compact/dp/B0832LSV8N)
-
-Make example for this keyboard (after setting up your build environment):
-
- make royal_kludge/rk61:default
-
-Flashing example for this keyboard:
-
- make royal_kludge/rk61:default:flash
-
-See 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).
-
-## Bootloader
-
-Enter the bootloader in 3 ways:
-
-* **Bootmagic reset**: Hold down the Escape key and plug in the keyboard (this one might be disabled on the stock firmware)
-* **Physical reset button**: Briefly press the button on the PCB, located under the space bar keycap, to the right of the space bar's switch
-* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. On the stock firmware, VIA should allow it to be mapped.
diff --git a/keyboards/royal_kludge/rk61/rules.mk b/keyboards/royal_kludge/rk61/rules.mk
deleted file mode 100644
index fb3dcdbf7a..0000000000
--- a/keyboards/royal_kludge/rk61/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DFU_SUFFIX_ARGS = -p FFFF -v FFFF
diff --git a/keyboards/s_ol/0xc_pad/0xc_pad.c b/keyboards/s_ol/0xc_pad/0xc_pad.c
new file mode 100644
index 0000000000..ba8cd96aec
--- /dev/null
+++ b/keyboards/s_ol/0xc_pad/0xc_pad.c
@@ -0,0 +1,34 @@
+/* Copyright 2021 s-ol
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // indices
+ { 0, 6, KC_NO, KC_NO },
+ { 1, 5, 7, KC_NO },
+ { 2, 4, 8, 11 },
+ { KC_NO, 3, 9, 10 }
+}, {
+ // phys position
+ { 96, 110}, { 80, 83}, { 64, 55}, { 80, 28},
+ { 96, 55}, {112, 83}, {128, 110}, {144, 83},
+ {128, 55}, {112, 28}, {144, 28}, {160, 55}
+}, {
+ // flags
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
+} };
+#endif
diff --git a/keyboards/s_ol/0xc_pad/keyboard.json b/keyboards/s_ol/0xc_pad/keyboard.json
index 3ad4e986d7..1df5a5131e 100644
--- a/keyboards/s_ol/0xc_pad/keyboard.json
+++ b/keyboards/s_ol/0xc_pad/keyboard.json
@@ -39,21 +39,8 @@
"solid_reactive": true,
"splash": true
},
- "driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 74, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 148, "y": 0, "flags": 4},
- {"matrix": [2, 0], "x": 37, "y": 21, "flags": 4},
- {"matrix": [3, 1], "x": 111, "y": 21, "flags": 4},
- {"matrix": [2, 1], "x": 185, "y": 21, "flags": 4},
- {"matrix": [1, 1], "x": 0, "y": 42, "flags": 4},
- {"matrix": [0, 1], "x": 74, "y": 42, "flags": 4},
- {"matrix": [1, 2], "x": 148, "y": 42, "flags": 4},
- {"matrix": [2, 2], "x": 224, "y": 42, "flags": 4},
- {"matrix": [3, 2], "x": 37, "y": 64, "flags": 4},
- {"matrix": [3, 3], "x": 111, "y": 64, "flags": 4},
- {"matrix": [2, 3], "x": 185, "y": 64, "flags": 4}
- ]
+ "center_point": [112, 63],
+ "driver": "ws2812"
},
"layouts": {
"LAYOUT": {
diff --git a/keyboards/salicylic_acid3/naked48/rev1/keyboard.json b/keyboards/salicylic_acid3/naked48/rev1/keyboard.json
index fd37a9e7cc..2cf2dbc45b 100644
--- a/keyboards/salicylic_acid3/naked48/rev1/keyboard.json
+++ b/keyboards/salicylic_acid3/naked48/rev1/keyboard.json
@@ -22,57 +22,7 @@
}
},
"rgb_matrix": {
- "driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 43, "flags": 4},
- {"matrix": [3, 0], "x": 17, "y": 64, "flags": 4},
- {"matrix": [3, 1], "x": 34, "y": 64, "flags": 4},
- {"matrix": [3, 2], "x": 52, "y": 64, "flags": 4},
- {"matrix": [3, 3], "x": 69, "y": 64, "flags": 4},
- {"matrix": [3, 4], "x": 86, "y": 64, "flags": 4},
- {"matrix": [3, 5], "x": 103, "y": 64, "flags": 4},
- {"matrix": [3, 6], "x": 121, "y": 64, "flags": 4},
- {"matrix": [3, 7], "x": 138, "y": 64, "flags": 4},
- {"matrix": [3, 8], "x": 155, "y": 64, "flags": 4},
- {"matrix": [3, 9], "x": 172, "y": 64, "flags": 4},
- {"matrix": [3, 10], "x": 190, "y": 64, "flags": 4},
- {"matrix": [3, 11], "x": 207, "y": 64, "flags": 4},
- {"matrix": [2, 11], "x": 224, "y": 43, "flags": 4},
- {"matrix": [1, 11], "x": 224, "y": 21, "flags": 4},
- {"matrix": [0, 11], "x": 224, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 207, "y": 0, "flags": 4},
- {"matrix": [1, 10], "x": 207, "y": 21, "flags": 4},
- {"matrix": [2, 10], "x": 207, "y": 43, "flags": 4},
- {"matrix": [2, 9], "x": 190, "y": 43, "flags": 4},
- {"matrix": [1, 9], "x": 190, "y": 21, "flags": 4},
- {"matrix": [0, 9], "x": 190, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 172, "y": 0, "flags": 4},
- {"matrix": [1, 8], "x": 172, "y": 21, "flags": 4},
- {"matrix": [2, 8], "x": 172, "y": 43, "flags": 4},
- {"matrix": [2, 7], "x": 155, "y": 43, "flags": 4},
- {"matrix": [1, 7], "x": 155, "y": 21, "flags": 4},
- {"matrix": [0, 7], "x": 155, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 138, "y": 0, "flags": 4},
- {"matrix": [1, 6], "x": 138, "y": 21, "flags": 4},
- {"matrix": [2, 6], "x": 138, "y": 43, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 43, "flags": 4},
- {"matrix": [1, 5], "x": 86, "y": 21, "flags": 4},
- {"matrix": [0, 5], "x": 86, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 69, "y": 0, "flags": 4},
- {"matrix": [1, 4], "x": 69, "y": 21, "flags": 4},
- {"matrix": [2, 4], "x": 69, "y": 43, "flags": 4},
- {"matrix": [2, 3], "x": 52, "y": 43, "flags": 4},
- {"matrix": [1, 3], "x": 52, "y": 21, "flags": 4},
- {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 34, "y": 0, "flags": 4},
- {"matrix": [1, 2], "x": 34, "y": 21, "flags": 4},
- {"matrix": [2, 2], "x": 34, "y": 43, "flags": 4},
- {"matrix": [2, 1], "x": 17, "y": 43, "flags": 4},
- {"matrix": [1, 1], "x": 17, "y": 21, "flags": 4},
- {"matrix": [0, 1], "x": 17, "y": 0, "flags": 4}
- ]
+ "driver": "ws2812"
},
"matrix_pins": {
"cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6", "D7", "E6", "B4", "B5"],
diff --git a/keyboards/salicylic_acid3/naked48/rev1/rev1.c b/keyboards/salicylic_acid3/naked48/rev1/rev1.c
new file mode 100644
index 0000000000..d4da157a56
--- /dev/null
+++ b/keyboards/salicylic_acid3/naked48/rev1/rev1.c
@@ -0,0 +1,42 @@
+/*
+Copyright 2021 Salicylic_Acid
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+ led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 0,47,42,41,36,35,30,29,24,23,18,17 },
+ { 1,46,43,40,37,34,31,28,25,22,19,16 },
+ { 2,45,44,39,38,33,32,27,26,21,20,15 },
+ { 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14 }
+ }, {
+ // LED Index to Physical Position
+ { 0, 0 }, { 0, 21 }, { 0, 43 }, { 17, 64 }, { 34, 64 },{ 52, 64 }, { 69, 64 }, { 86, 64 }, { 103, 64 }, { 121, 64 },
+ { 138, 64 }, { 155, 64 }, { 172, 64 }, { 190, 64 }, { 207, 64 },{ 224, 43 }, { 224, 21 }, { 224, 0 }, { 207, 0 }, { 207, 21 },
+ { 207, 43 }, { 190, 43 }, { 190, 21 }, { 190, 0 }, { 172, 0 },{ 172, 21 }, { 172, 43 }, { 155, 43 }, { 155, 21 }, { 155, 0 },
+ { 138, 0 }, { 138, 21 }, { 138, 43 }, { 86, 43 }, { 86, 21 },{ 86, 0 }, { 69, 0 }, { 69, 21 }, { 69, 43 }, { 52, 43 },
+ { 52, 21 }, { 52, 0 }, { 34, 0 }, { 34, 21 }, { 34, 43 },{ 17, 43 }, { 17, 21 }, { 17, 0 }
+ }, {
+ // LED Index to Flag
+ 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, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4
+} };
+#endif
diff --git a/keyboards/sawnsprojects/satxri6key/keyboard.json b/keyboards/sawnsprojects/satxri6key/keyboard.json
index 30f1ec3fd1..92a798e4b2 100644
--- a/keyboards/sawnsprojects/satxri6key/keyboard.json
+++ b/keyboards/sawnsprojects/satxri6key/keyboard.json
@@ -56,14 +56,6 @@
"animation": "solid_reactive_simple"
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 112, "y": 0, "flags": 1},
- {"matrix": [0, 2], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 2], "x": 224, "y": 64, "flags": 1},
- {"matrix": [1, 1], "x": 112, "y": 64, "flags": 1},
- {"matrix": [1, 0], "x": 0, "y": 64, "flags": 1}
- ],
"max_brightness": 200,
"react_on_keyup": true
},
diff --git a/keyboards/sawnsprojects/satxri6key/satxri6key.c b/keyboards/sawnsprojects/satxri6key/satxri6key.c
new file mode 100644
index 0000000000..c335e0d3ef
--- /dev/null
+++ b/keyboards/sawnsprojects/satxri6key/satxri6key.c
@@ -0,0 +1,32 @@
+/* Copyright 2021 SawnsProjects
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ //Key Matrix to LED Indexccxxz
+ {0, 1, 2},
+ {5, 4, 3}
+}, {
+ //LED Index to Physical Positon
+ {0, 0}, {112, 0}, {224, 0},
+ {224, 64}, {112, 64}, {0, 64},
+}, {
+ 1, 1, 1,
+ 1, 1, 1,
+} };
+#endif
\ No newline at end of file
diff --git a/keyboards/sendyyeah/pix/config.h b/keyboards/sendyyeah/pix/config.h
index 7557991a58..3a6cb6297f 100644
--- a/keyboards/sendyyeah/pix/config.h
+++ b/keyboards/sendyyeah/pix/config.h
@@ -19,7 +19,5 @@
#define OLED_FONT_H "keymaps/default/glcdfont.c"
#define OLED_TIMEOUT 600000 // Turn of after 10 minutes
-#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 5)
-
#define RGBLIGHT_LAYERS
#define RGBLIGHT_LAYER_BLINK
diff --git a/keyboards/sendyyeah/pix/pix.c b/keyboards/sendyyeah/pix/pix.c
new file mode 100644
index 0000000000..1bd8627e16
--- /dev/null
+++ b/keyboards/sendyyeah/pix/pix.c
@@ -0,0 +1,30 @@
+ /* Copyright 2020 sendyyeah
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+void eeconfig_init_kb(void) {
+#ifdef RGBLIGHT_ENABLE
+ rgblight_enable(); // Enable RGB underglow by default
+ rgblight_sethsv(0, 255, 255);
+#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
+ rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 5); // Set to RGB_RAINBOW_SWIRL animation by default
+#endif
+#endif
+
+ eeconfig_update_kb(0);
+ eeconfig_init_user();
+}
diff --git a/keyboards/senselessclay/ck60/ck60.c b/keyboards/senselessclay/ck60/ck60.c
new file mode 100644
index 0000000000..3f8aea611a
--- /dev/null
+++ b/keyboards/senselessclay/ck60/ck60.c
@@ -0,0 +1,43 @@
+/* Copyright 2022 kb-elmo
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#define __ NO_LED
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ //Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 },
+ { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 },
+ { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, __ },
+ { 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, __ },
+ { 54, 55, 56, __, __, __, 57, __, __, __, 58, 59, 60, 61 }
+}, {
+ //LED Index to Physical Positon
+ { 0, 0 }, { 17, 0 }, { 34, 0 }, { 52, 0 }, { 69, 0 }, { 86, 0 }, { 103, 0 }, { 121, 0 }, { 138, 0 }, { 155, 0 }, { 172, 0 }, { 190, 0 }, { 207, 0 }, { 215, 0 },
+ { 224, 24 }, { 215, 16 }, { 198, 16 }, { 180, 16 }, { 164, 16 }, { 146, 16 }, { 129, 16 }, { 112, 16 }, { 95, 16 }, { 78, 16 }, { 60, 16 }, { 43, 16 }, { 26 , 16 }, { 0, 16 },
+ { 0, 32 }, { 30, 32 }, { 47, 32 }, { 65, 32 }, { 81, 32 }, { 99, 32 }, { 116, 32 }, { 133, 32 }, { 150, 32 }, { 168, 32 }, { 185, 32 }, { 202, 32 }, { 220, 32 },
+ { 207, 48 }, { 190, 48 }, { 172, 48 }, { 155, 48 }, { 138, 48 }, { 121, 48 }, { 103, 48 }, { 86, 48 }, { 69, 48 }, { 52, 48 }, { 34, 48 }, { 17, 48 }, { 0, 48 },
+ { 0, 64 }, { 17, 64 }, { 34, 64 }, { 103, 64 }, { 172, 64 }, { 190, 64 }, { 207, 64 }, { 224, 64 }
+}, {
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1
+} };
+#endif
diff --git a/keyboards/senselessclay/ck60/keyboard.json b/keyboards/senselessclay/ck60/keyboard.json
index 4b1937513e..d4fa5336e6 100644
--- a/keyboards/senselessclay/ck60/keyboard.json
+++ b/keyboards/senselessclay/ck60/keyboard.json
@@ -36,70 +36,6 @@
"animation": "cycle_all"
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 1], "x": 17, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 34, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 69, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 86, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 103, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 121, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 138, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 155, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 172, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 190, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 207, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 215, "y": 0, "flags": 1},
- {"matrix": [1, 13], "x": 224, "y": 24, "flags": 1},
- {"matrix": [1, 12], "x": 215, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 198, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 180, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 164, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 146, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 129, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 95, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 78, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 60, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 43, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 26, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1},
- {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1},
- {"matrix": [2, 1], "x": 30, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 47, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 65, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 81, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 99, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 133, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 150, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 168, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 185, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 202, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 220, "y": 32, "flags": 4},
- {"matrix": [3, 12], "x": 207, "y": 48, "flags": 1},
- {"matrix": [3, 11], "x": 190, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 172, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 155, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 138, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 121, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 103, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 86, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 17, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 0, "y": 64, "flags": 1},
- {"matrix": [4, 1], "x": 17, "y": 64, "flags": 1},
- {"matrix": [4, 2], "x": 34, "y": 64, "flags": 1},
- {"matrix": [4, 6], "x": 103, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 172, "y": 64, "flags": 1},
- {"matrix": [4, 11], "x": 190, "y": 64, "flags": 1},
- {"matrix": [4, 12], "x": 207, "y": 64, "flags": 1},
- {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}
- ],
"max_brightness": 160,
"sleep": true
},
diff --git a/keyboards/silakka54/config.h b/keyboards/silakka54/config.h
index b3d1742042..220b85cd08 100644
--- a/keyboards/silakka54/config.h
+++ b/keyboards/silakka54/config.h
@@ -21,4 +21,5 @@
#define SERIAL_USART_RX_PIN GP1
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17
diff --git a/keyboards/silverbullet44/keyboard.json b/keyboards/silverbullet44/keyboard.json
index a724314212..26e2bcce3a 100644
--- a/keyboards/silverbullet44/keyboard.json
+++ b/keyboards/silverbullet44/keyboard.json
@@ -30,60 +30,6 @@
"animation": "typing_heatmap"
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 3], "x": 139, "y": 16, "flags": 2},
- {"matrix": [0, 4], "x": 174, "y": 13, "flags": 2},
- {"matrix": [0, 5], "x": 208, "y": 20, "flags": 2},
- {"matrix": [1, 5], "x": 208, "y": 38, "flags": 2},
- {"matrix": [1, 4], "x": 174, "y": 48, "flags": 2},
- {"matrix": [1, 3], "x": 139, "y": 52, "flags": 2},
- {"matrix": [0, 2], "x": 129, "y": 63, "flags": 1},
- {"matrix": [0, 1], "x": 139, "y": 39, "flags": 4},
- {"matrix": [1, 2], "x": 139, "y": 21, "flags": 4},
- {"matrix": [2, 3], "x": 139, "y": 4, "flags": 4},
- {"matrix": [2, 4], "x": 156, "y": 2, "flags": 4},
- {"matrix": [2, 5], "x": 156, "y": 19, "flags": 4},
- {"matrix": [3, 5], "x": 156, "y": 37, "flags": 4},
- {"matrix": [3, 4], "x": 144, "y": 58, "flags": 1},
- {"matrix": [3, 3], "x": 164, "y": 55, "flags": 1},
- {"matrix": [3, 2], "x": 174, "y": 35, "flags": 4},
- {"matrix": [2, 2], "x": 174, "y": 13, "flags": 4},
- {"matrix": [1, 1], "x": 174, "y": 0, "flags": 4},
- {"matrix": [0, 0], "x": 191, "y": 3, "flags": 4},
- {"matrix": [1, 0], "x": 191, "y": 20, "flags": 4},
- {"matrix": [2, 1], "x": 191, "y": 37, "flags": 4},
- {"matrix": [2, 0], "x": 208, "y": 42, "flags": 4},
- {"x": 208, "y": 24, "flags": 4},
- {"x": 208, "y": 7, "flags": 4},
- {"x": 224, "y": 7, "flags": 1},
- {"x": 224, "y": 24, "flags": 1},
- {"x": 224, "y": 41, "flags": 1},
- {"x": 85, "y": 16, "flags": 2},
- {"x": 50, "y": 13, "flags": 2},
- {"x": 16, "y": 20, "flags": 2},
- {"x": 16, "y": 38, "flags": 2},
- {"x": 50, "y": 48, "flags": 2},
- {"x": 85, "y": 52, "flags": 2},
- {"x": 95, "y": 63, "flags": 1},
- {"x": 85, "y": 39, "flags": 4},
- {"x": 85, "y": 21, "flags": 4},
- {"x": 85, "y": 4, "flags": 4},
- {"x": 68, "y": 2, "flags": 4},
- {"x": 68, "y": 19, "flags": 4},
- {"x": 68, "y": 37, "flags": 4},
- {"x": 80, "y": 58, "flags": 1},
- {"x": 60, "y": 55, "flags": 1},
- {"x": 50, "y": 35, "flags": 4},
- {"x": 50, "y": 13, "flags": 4},
- {"x": 50, "y": 0, "flags": 4},
- {"x": 33, "y": 3, "flags": 4},
- {"x": 33, "y": 20, "flags": 4},
- {"x": 33, "y": 37, "flags": 4},
- {"x": 16, "y": 42, "flags": 4},
- {"x": 16, "y": 24, "flags": 4},
- {"x": 16, "y": 7, "flags": 4},
- {"x": 0, "y": 7, "flags": 1}
- ],
"max_brightness": 150,
"sat_steps": 8,
"val_steps": 8,
diff --git a/keyboards/silverbullet44/silverbullet44.c b/keyboards/silverbullet44/silverbullet44.c
new file mode 100644
index 0000000000..00bd6153c9
--- /dev/null
+++ b/keyboards/silverbullet44/silverbullet44.c
@@ -0,0 +1,45 @@
+/* Copyright 2019 SwanMatch
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 18, 7, 6, 0, 1, 2},
+ { 19, 17, 8, 5, 4, 3},
+ { 21, 20, 16, 9, 10, 11},
+ { NO_LED, NO_LED, 15, 14, 13, 12},
+}, {
+ { 139, 16 }, { 174, 13 }, { 208, 20 }, { 208, 38 }, { 174, 48 }, { 139, 52 }, { 129, 63 },
+ { 139, 39 }, { 139, 21 }, { 139, 4 }, { 156, 2 }, { 156, 19 }, { 156, 37 }, { 144, 58 },
+ { 164, 55 }, { 174, 35 }, { 174, 13 }, { 174, 0 }, { 191, 3 }, { 191, 20 }, { 191, 37 },
+ { 208, 42 }, { 208, 24 }, { 208, 7 }, { 224, 7 }, { 224, 24 }, { 224, 41 }, { 85, 16 },
+ { 50, 13 }, { 16, 20 }, { 16, 38 }, { 50, 48 }, { 85, 52 }, { 95, 63 }, { 85, 39 },
+ { 85, 21 }, { 85, 4 }, { 68, 2 }, { 68, 19 }, { 68, 37 }, { 80, 58 }, { 60, 55 },
+ { 50, 35 }, { 50, 13 }, { 50, 0 }, { 33, 3 }, { 33, 20 }, { 33, 37 }, { 16, 42 },
+ { 16, 24 }, { 16, 7 }, { 0, 7 }
+}, {
+ 2, 2, 2, 2, 2, 2, 1,
+ 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 1, 1, 1, 2,
+ 2, 2, 2, 2, 2, 1, 4,
+ 4, 4, 4, 4, 4, 1, 1,
+ 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 1
+} };
+
+#endif
diff --git a/keyboards/smallkeyboard/keyboard.json b/keyboards/smallkeyboard/keyboard.json
index da08cf66c2..dfbdee1cdd 100644
--- a/keyboards/smallkeyboard/keyboard.json
+++ b/keyboards/smallkeyboard/keyboard.json
@@ -44,14 +44,6 @@
"solid_reactive": true
},
"driver": "is31fl3731",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 224, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 64, "flags": 1},
- {"matrix": [1, 1], "x": 112, "y": 64, "flags": 1},
- {"matrix": [1, 2], "x": 224, "y": 64, "flags": 4}
- ],
"sleep": true
},
"matrix_pins": {
diff --git a/keyboards/smallkeyboard/smallkeyboard.c b/keyboards/smallkeyboard/smallkeyboard.c
index c3b4a35f84..7442444b00 100644
--- a/keyboards/smallkeyboard/smallkeyboard.c
+++ b/keyboards/smallkeyboard/smallkeyboard.c
@@ -31,4 +31,19 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
{0, C1_12, C2_12, C3_12}, // BL5
{0, C1_13, C2_13, C3_13}, // BL6
};
+
+led_config_t g_led_config = {
+ {
+ { 0, 1, 2},
+ { 3, 4, 5},
+ },
+ {
+ { 48, 32},{ 48, 48},{ 64, 48},
+ { 80, 16},{ 64, 32},{ 80, 32}
+ },
+ {
+ 4, 4, 4,
+ 1, 1, 4
+ }
+};
#endif
diff --git a/keyboards/sneakbox/m4m5/keyboard.json b/keyboards/sneakbox/m4m5/keyboard.json
new file mode 100644
index 0000000000..ba56a6c85d
--- /dev/null
+++ b/keyboards/sneakbox/m4m5/keyboard.json
@@ -0,0 +1,203 @@
+{
+ "manufacturer": "Sneakbox",
+ "keyboard_name": "M4 & M5",
+ "maintainer": "mujimanic",
+ "bootloader": "atmel-dfu",
+ "bootmagic": {
+ "matrix": [2, 0]
+ },
+ "build": {
+ "lto": true
+ },
+ "diode_direction": "COL2ROW",
+ "encoder": {
+ "rotary": [
+ {"pin_a": "D3", "pin_b": "D2"}
+ ]
+ },
+ "features": {
+ "bootmagic": true,
+ "encoder": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgblight": true
+ },
+ "indicators": {
+ "caps_lock": "D6",
+ "num_lock": "D4",
+ "scroll_lock": "D7"
+ },
+ "matrix_pins": {
+ "cols": ["F0", "D0", "C7", "C6", "B6", "B5", "B4", "D1"],
+ "rows": ["F1", "E6", "F4", "B1", "F5", "B2", "F6", "B3", "F7", "B7"]
+ },
+ "processor": "atmega32u4",
+ "rgblight": {
+ "animations": {
+ "alternating": true,
+ "breathing": true,
+ "christmas": true,
+ "knight": true,
+ "rainbow_mood": true,
+ "rainbow_swirl": true,
+ "rgb_test": true,
+ "snake": true,
+ "static_gradient": true,
+ "twinkle": true
+ },
+ "led_count": 16
+ },
+ "url": "https://sneakbox.design",
+ "usb": {
+ "device_version": "0.0.1",
+ "pid": "0x0005",
+ "vid": "0x5342"
+ },
+ "ws2812": {
+ "pin": "D5"
+ },
+ "layouts": {
+ "LAYOUT_alice": {
+ "layout": [
+ {"matrix": [2, 0], "x": 0, "y": 0},
+ {"matrix": [0, 0], "x": 1.25, "y": 0},
+ {"matrix": [0, 1], "x": 2.25, "y": 0},
+ {"matrix": [0, 2], "x": 3.25, "y": 0},
+ {"matrix": [0, 3], "x": 4.25, "y": 0},
+ {"matrix": [0, 4], "x": 5.25, "y": 0},
+ {"matrix": [0, 5], "x": 6.25, "y": 0},
+ {"matrix": [0, 6], "x": 7.25, "y": 0},
+ {"matrix": [1, 0], "x": 10.25, "y": 0},
+ {"matrix": [1, 1], "x": 11.25, "y": 0},
+ {"matrix": [1, 2], "x": 12.25, "y": 0},
+ {"matrix": [1, 3], "x": 13.25, "y": 0},
+ {"matrix": [1, 4], "x": 14.25, "y": 0},
+ {"matrix": [1, 5], "x": 15.25, "y": 0},
+ {"matrix": [1, 6], "x": 16.25, "y": 0, "w": 2},
+ {"matrix": [4, 0], "x": 0, "y": 1},
+ {"matrix": [2, 1], "x": 1.25, "y": 1, "w": 1.5},
+ {"matrix": [2, 2], "x": 2.75, "y": 1},
+ {"matrix": [2, 3], "x": 3.75, "y": 1},
+ {"matrix": [2, 4], "x": 4.75, "y": 1},
+ {"matrix": [2, 5], "x": 5.75, "y": 1},
+ {"matrix": [2, 6], "x": 6.75, "y": 1},
+ {"matrix": [3, 0], "x": 9.75, "y": 1},
+ {"matrix": [3, 1], "x": 10.75, "y": 1},
+ {"matrix": [3, 2], "x": 11.75, "y": 1},
+ {"matrix": [3, 3], "x": 12.75, "y": 1},
+ {"matrix": [3, 4], "x": 13.75, "y": 1},
+ {"matrix": [3, 5], "x": 14.75, "y": 1},
+ {"matrix": [3, 6], "x": 15.75, "y": 1},
+ {"matrix": [3, 7], "x": 16.75, "y": 1, "w": 1.5},
+ {"matrix": [6, 0], "x": 0, "y": 2},
+ {"matrix": [4, 1], "x": 1.25, "y": 2, "w": 1.75},
+ {"matrix": [4, 2], "x": 3, "y": 2},
+ {"matrix": [4, 3], "x": 4, "y": 2},
+ {"matrix": [4, 4], "x": 5, "y": 2},
+ {"matrix": [4, 5], "x": 6, "y": 2},
+ {"matrix": [4, 6], "x": 7, "y": 2},
+ {"matrix": [5, 0], "x": 10, "y": 2},
+ {"matrix": [5, 1], "x": 11, "y": 2},
+ {"matrix": [5, 2], "x": 12, "y": 2},
+ {"matrix": [5, 3], "x": 13, "y": 2},
+ {"matrix": [5, 4], "x": 14, "y": 2},
+ {"matrix": [5, 5], "x": 15, "y": 2},
+ {"matrix": [5, 6], "x": 16, "y": 2, "w": 2.25},
+ {"matrix": [6, 1], "x": 1.25, "y": 3, "w": 2.25},
+ {"matrix": [6, 2], "x": 3.5, "y": 3},
+ {"matrix": [6, 3], "x": 4.5, "y": 3},
+ {"matrix": [6, 4], "x": 5.5, "y": 3},
+ {"matrix": [6, 5], "x": 6.5, "y": 3},
+ {"matrix": [6, 6], "x": 7.5, "y": 3},
+ {"matrix": [7, 0], "x": 9.5, "y": 3},
+ {"matrix": [7, 1], "x": 10.5, "y": 3},
+ {"matrix": [7, 2], "x": 11.5, "y": 3},
+ {"matrix": [7, 3], "x": 12.5, "y": 3},
+ {"matrix": [7, 4], "x": 13.5, "y": 3},
+ {"matrix": [7, 5], "x": 14.5, "y": 3},
+ {"matrix": [7, 6], "x": 15.5, "y": 3, "w": 1.75},
+ {"matrix": [7, 7], "x": 17.25, "y": 3},
+ {"matrix": [8, 1], "x": 1.25, "y": 4, "w": 1.5},
+ {"matrix": [8, 3], "x": 4, "y": 4, "w": 1.5},
+ {"matrix": [8, 5], "x": 5.5, "y": 4, "w": 2.25},
+ {"matrix": [8, 6], "x": 7.75, "y": 4},
+ {"matrix": [9, 1], "x": 9.75, "y": 4, "w": 1.25},
+ {"matrix": [9, 2], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [9, 3], "x": 12.5, "y": 4, "w": 1.5},
+ {"matrix": [9, 7], "x": 16.75, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_alice_split_bs": {
+ "layout": [
+ {"matrix": [2, 0], "x": 0, "y": 0},
+ {"matrix": [0, 0], "x": 1.25, "y": 0},
+ {"matrix": [0, 1], "x": 2.25, "y": 0},
+ {"matrix": [0, 2], "x": 3.25, "y": 0},
+ {"matrix": [0, 3], "x": 4.25, "y": 0},
+ {"matrix": [0, 4], "x": 5.25, "y": 0},
+ {"matrix": [0, 5], "x": 6.25, "y": 0},
+ {"matrix": [0, 6], "x": 7.25, "y": 0},
+ {"matrix": [1, 0], "x": 10.25, "y": 0},
+ {"matrix": [1, 1], "x": 11.25, "y": 0},
+ {"matrix": [1, 2], "x": 12.25, "y": 0},
+ {"matrix": [1, 3], "x": 13.25, "y": 0},
+ {"matrix": [1, 4], "x": 14.25, "y": 0},
+ {"matrix": [1, 5], "x": 15.25, "y": 0},
+ {"matrix": [1, 6], "x": 16.25, "y": 0},
+ {"matrix": [1, 7], "x": 17.25, "y": 0},
+ {"matrix": [4, 0], "x": 0, "y": 1},
+ {"matrix": [2, 1], "x": 1.25, "y": 1, "w": 1.5},
+ {"matrix": [2, 2], "x": 2.75, "y": 1},
+ {"matrix": [2, 3], "x": 3.75, "y": 1},
+ {"matrix": [2, 4], "x": 4.75, "y": 1},
+ {"matrix": [2, 5], "x": 5.75, "y": 1},
+ {"matrix": [2, 6], "x": 6.75, "y": 1},
+ {"matrix": [3, 0], "x": 9.75, "y": 1},
+ {"matrix": [3, 1], "x": 10.75, "y": 1},
+ {"matrix": [3, 2], "x": 11.75, "y": 1},
+ {"matrix": [3, 3], "x": 12.75, "y": 1},
+ {"matrix": [3, 4], "x": 13.75, "y": 1},
+ {"matrix": [3, 5], "x": 14.75, "y": 1},
+ {"matrix": [3, 6], "x": 15.75, "y": 1},
+ {"matrix": [3, 7], "x": 16.75, "y": 1, "w": 1.5},
+ {"matrix": [6, 0], "x": 0, "y": 2},
+ {"matrix": [4, 1], "x": 1.25, "y": 2, "w": 1.75},
+ {"matrix": [4, 2], "x": 3, "y": 2},
+ {"matrix": [4, 3], "x": 4, "y": 2},
+ {"matrix": [4, 4], "x": 5, "y": 2},
+ {"matrix": [4, 5], "x": 6, "y": 2},
+ {"matrix": [4, 6], "x": 7, "y": 2},
+ {"matrix": [5, 0], "x": 10, "y": 2},
+ {"matrix": [5, 1], "x": 11, "y": 2},
+ {"matrix": [5, 2], "x": 12, "y": 2},
+ {"matrix": [5, 3], "x": 13, "y": 2},
+ {"matrix": [5, 4], "x": 14, "y": 2},
+ {"matrix": [5, 5], "x": 15, "y": 2},
+ {"matrix": [5, 6], "x": 16, "y": 2, "w": 2.25},
+ {"matrix": [6, 1], "x": 1.25, "y": 3, "w": 2.25},
+ {"matrix": [6, 2], "x": 3.5, "y": 3},
+ {"matrix": [6, 3], "x": 4.5, "y": 3},
+ {"matrix": [6, 4], "x": 5.5, "y": 3},
+ {"matrix": [6, 5], "x": 6.5, "y": 3},
+ {"matrix": [6, 6], "x": 7.5, "y": 3},
+ {"matrix": [7, 0], "x": 9.5, "y": 3},
+ {"matrix": [7, 1], "x": 10.5, "y": 3},
+ {"matrix": [7, 2], "x": 11.5, "y": 3},
+ {"matrix": [7, 3], "x": 12.5, "y": 3},
+ {"matrix": [7, 4], "x": 13.5, "y": 3},
+ {"matrix": [7, 5], "x": 14.5, "y": 3},
+ {"matrix": [7, 6], "x": 15.5, "y": 3, "w": 1.75},
+ {"matrix": [7, 7], "x": 17.25, "y": 3},
+ {"matrix": [8, 1], "x": 1.25, "y": 4, "w": 1.5},
+ {"matrix": [8, 3], "x": 4, "y": 4, "w": 1.5},
+ {"matrix": [8, 5], "x": 5.5, "y": 4, "w": 2.25},
+ {"matrix": [8, 6], "x": 7.75, "y": 4},
+ {"matrix": [9, 1], "x": 9.75, "y": 4, "w": 1.25},
+ {"matrix": [9, 2], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [9, 3], "x": 12.5, "y": 4, "w": 1.5},
+ {"matrix": [9, 7], "x": 16.75, "y": 4, "w": 1.5}
+ ]
+ }
+ }
+}
diff --git a/keyboards/sneakbox/m4m5/keymaps/alice/keymap.c b/keyboards/sneakbox/m4m5/keymaps/alice/keymap.c
new file mode 100644
index 0000000000..113ebfd8b6
--- /dev/null
+++ b/keyboards/sneakbox/m4m5/keymaps/alice/keymap.c
@@ -0,0 +1,32 @@
+// Copyright 2023 Bryan Ong
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _BASE,
+ _FN
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BASE] = LAYOUT_alice(
+ KC_ESC, 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_PGUP, 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_PGDN, 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LGUI,
+ KC_LCTL, KC_LALT, KC_SPC, LT(_FN, KC_SPC), KC_SPC, KC_SPC, KC_RALT, KC_RCTL),
+ [_FN] = LAYOUT_alice(
+ KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_PREV, UG_NEXT, UG_TOGG,
+ QK_BOOT, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_VALD, UG_VALU, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_SATD, UG_SATU, KC_TRNS, UG_HUEU,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+};
+
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
+ [_FN] = { ENCODER_CCW_CW(_______, _______)}
+};
+#endif
diff --git a/keyboards/sneakbox/m4m5/keymaps/default/keymap.c b/keyboards/sneakbox/m4m5/keymaps/default/keymap.c
new file mode 100644
index 0000000000..938f073837
--- /dev/null
+++ b/keyboards/sneakbox/m4m5/keymaps/default/keymap.c
@@ -0,0 +1,32 @@
+// Copyright 2023 Bryan Ong
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _BASE,
+ _FN
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BASE] = LAYOUT_alice_split_bs(
+ KC_ESC, 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_PGUP, 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_PGDN, 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LGUI,
+ KC_LCTL, KC_LALT, KC_SPC, LT(_FN, KC_SPC), KC_SPC, KC_SPC, KC_RALT, KC_RCTL),
+ [_FN] = LAYOUT_alice_split_bs(
+ KC_TRNS, 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,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_PREV, UG_NEXT, UG_TOGG,
+ QK_BOOT, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_VALD, UG_VALU, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_SATD, UG_SATU, KC_TRNS, UG_HUEU,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+};
+
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
+ [_FN] = { ENCODER_CCW_CW(_______, _______)}
+};
+#endif
diff --git a/keyboards/sneakbox/m4m5/readme.md b/keyboards/sneakbox/m4m5/readme.md
new file mode 100644
index 0000000000..4be06dbf98
--- /dev/null
+++ b/keyboards/sneakbox/m4m5/readme.md
@@ -0,0 +1,27 @@
+# Sneakbox M4 & M5 PCB
+
+
+
+An Alice-compatible PCB with hotswap with pushbutton rotary encoder socket placed at the top left key position. This PCB is the successor to the AliceCloneRGB PCB and features RGB underglow lighting along with revised hardware components such as an additional spacebar key in the right spacebar cluster. M4M5 firmware covers two physical PCBs for the MGA project (M4 PCB and M5 PCB) namely for the MGA V3 keyboard (which uses either PCB).
+
+* Keyboard Maintainer: [mujimanic](https://github.com/mujimanic)
+* Hardware Supported: Any Alice-layout case.
+* Hardware Availability: [sneakbox.design](https://sneakbox.com/products/m4-alice-pcbs-for-mga-cases)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make sneakbox/m4m5:default
+
+Flashing example for this keyboard:
+
+ make sneakbox/m4m5:default:flash
+
+See 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).
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+* **Bootmagic reset**: Hold down the top left key in the nevigation cluster (Escape key) and plug in the keyboard
+* **Physical reset button**: Briefly press the small metal button on the back of the PCB
+* **Keycode in layout**: Press and hold the key next to the right split spacebar (to the right of the spacebar) and then press the End key (located on the bottom of the three-key navigation cluster)
diff --git a/keyboards/sofle_pico/config.h b/keyboards/sofle_pico/config.h
new file mode 100644
index 0000000000..f4f34171fa
--- /dev/null
+++ b/keyboards/sofle_pico/config.h
@@ -0,0 +1,23 @@
+// Copyright 2024 Ryan Neff (@JellyTitan)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+/* Use full duplex communication (TRRS) */
+#define SERIAL_USART_FULL_DUPLEX
+#define SERIAL_USART_TX_PIN GP16
+#define SERIAL_USART_RX_PIN GP17
+/* Swap TX and RX pins if keyboard is master half. Only available on some MCU's. This _is_ available on the RP2040 */
+#define SERIAL_USART_PIN_SWAP
+
+/* I2C for OLEDs */
+#define I2C_DRIVER I2CD1
+#define I2C1_SDA_PIN GP6
+#define I2C1_SCL_PIN GP7
+
+#define OLED_DISPLAY_128X64
+#define OLED_TIMEOUT 30000
+
+#define ENCODER_MAP_KEY_DELAY 10
+
+#define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 50
diff --git a/keyboards/sofle_pico/halconf.h b/keyboards/sofle_pico/halconf.h
new file mode 100644
index 0000000000..ed969d9afc
--- /dev/null
+++ b/keyboards/sofle_pico/halconf.h
@@ -0,0 +1,7 @@
+// Copyright 2024 Ryan Neff (@JellyTitan)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#define HAL_USE_I2C TRUE
+#include_next
diff --git a/keyboards/sofle_pico/keyboard.json b/keyboards/sofle_pico/keyboard.json
new file mode 100644
index 0000000000..c57c4e8f9e
--- /dev/null
+++ b/keyboards/sofle_pico/keyboard.json
@@ -0,0 +1,239 @@
+{
+ "manufacturer": "Ryan Neff",
+ "keyboard_name": "Sofle Pico",
+ "maintainer": "Ryan Neff ",
+ "bootloader": "rp2040",
+ "bootloader_instructions": "Hold the BOOT button while plugging in the usb cable",
+ "diode_direction": "COL2ROW",
+ "encoder": {
+ "rotary": [
+ {"pin_a": "GP14", "pin_b": "GP15"}
+ ]
+ },
+ "features": {
+ "bootmagic": true,
+ "encoder": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "oled": true,
+ "rgb_matrix": true
+ },
+ "matrix_pins": {
+ "cols": ["GP1", "GP2", "GP3", "GP4", "GP5", "GP8"],
+ "rows": ["GP9", "GP10", "GP11", "GP12", "GP13"]
+ },
+ "processor": "RP2040",
+ "rgb_matrix": {
+ "animations": {
+ "band_pinwheel_sat": true,
+ "band_pinwheel_val": true,
+ "band_sat": true,
+ "band_spiral_sat": true,
+ "band_spiral_val": true,
+ "band_val": true,
+ "breathing": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "cycle_up_down": true,
+ "digital_rain": true,
+ "dual_beacon": true,
+ "gradient_left_right": true,
+ "gradient_up_down": true,
+ "hue_breathing": true,
+ "hue_pendulum": true,
+ "hue_wave": true,
+ "jellybean_raindrops": true,
+ "multisplash": true,
+ "pixel_flow": true,
+ "pixel_rain": true,
+ "rainbow_beacon": true,
+ "rainbow_moving_chevron": true,
+ "rainbow_pinwheels": true,
+ "raindrops": true,
+ "solid_multisplash": true,
+ "solid_reactive": true,
+ "solid_reactive_cross": true,
+ "solid_reactive_multicross": true,
+ "solid_reactive_multinexus": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_nexus": true,
+ "solid_reactive_simple": true,
+ "solid_reactive_wide": true,
+ "solid_splash": true,
+ "splash": true,
+ "typing_heatmap": true
+ },
+ "default": {
+ "animation": "cycle_out_in_dual",
+ "speed": 16
+ },
+ "driver": "ws2812",
+ "layout": [
+ {"matrix": [0, 5], "x": 95, "y": 7, "flags": 4},
+ {"matrix": [1, 5], "x": 95, "y": 21, "flags": 4},
+ {"matrix": [2, 5], "x": 95, "y": 36, "flags": 4},
+ {"matrix": [3, 5], "x": 95, "y": 50, "flags": 4},
+ {"matrix": [4, 4], "x": 115, "y": 64, "flags": 4},
+ {"matrix": [4, 3], "x": 95, "y": 64, "flags": 4},
+ {"matrix": [4, 2], "x": 76, "y": 62, "flags": 4},
+ {"matrix": [3, 4], "x": 76, "y": 48, "flags": 4},
+ {"matrix": [2, 4], "x": 76, "y": 33, "flags": 4},
+ {"matrix": [1, 4], "x": 76, "y": 19, "flags": 4},
+ {"matrix": [0, 4], "x": 76, "y": 5, "flags": 4},
+ {"matrix": [0, 3], "x": 57, "y": 3, "flags": 4},
+ {"matrix": [1, 3], "x": 57, "y": 17, "flags": 4},
+ {"matrix": [2, 3], "x": 57, "y": 31, "flags": 4},
+ {"matrix": [3, 3], "x": 57, "y": 46, "flags": 4},
+ {"matrix": [4, 1], "x": 57, "y": 62, "flags": 4},
+ {"matrix": [4, 0], "x": 38, "y": 64, "flags": 4},
+ {"matrix": [3, 2], "x": 38, "y": 48, "flags": 4},
+ {"matrix": [2, 2], "x": 38, "y": 33, "flags": 4},
+ {"matrix": [1, 2], "x": 38, "y": 19, "flags": 4},
+ {"matrix": [0, 2], "x": 38, "y": 5, "flags": 4},
+ {"matrix": [0, 1], "x": 19, "y": 7, "flags": 4},
+ {"matrix": [1, 1], "x": 19, "y": 21, "flags": 4},
+ {"matrix": [2, 1], "x": 19, "y": 36, "flags": 4},
+ {"matrix": [3, 1], "x": 19, "y": 50, "flags": 4},
+ {"matrix": [3, 0], "x": 0, "y": 50, "flags": 4},
+ {"matrix": [2, 0], "x": 0, "y": 36, "flags": 4},
+ {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4},
+ {"matrix": [0, 0], "x": 0, "y": 7, "flags": 4},
+ {"matrix": [5, 5], "x": 129, "y": 7, "flags": 4},
+ {"matrix": [6, 5], "x": 129, "y": 21, "flags": 4},
+ {"matrix": [7, 5], "x": 129, "y": 36, "flags": 4},
+ {"matrix": [8, 5], "x": 129, "y": 50, "flags": 4},
+ {"matrix": [9, 4], "x": 119, "y": 64, "flags": 4},
+ {"matrix": [9, 3], "x": 129, "y": 64, "flags": 4},
+ {"matrix": [9, 2], "x": 148, "y": 62, "flags": 4},
+ {"matrix": [8, 4], "x": 148, "y": 48, "flags": 4},
+ {"matrix": [7, 4], "x": 148, "y": 33, "flags": 4},
+ {"matrix": [6, 4], "x": 148, "y": 19, "flags": 4},
+ {"matrix": [5, 4], "x": 148, "y": 5, "flags": 4},
+ {"matrix": [5, 3], "x": 167, "y": 3, "flags": 4},
+ {"matrix": [6, 3], "x": 167, "y": 17, "flags": 4},
+ {"matrix": [7, 3], "x": 167, "y": 31, "flags": 4},
+ {"matrix": [8, 3], "x": 167, "y": 46, "flags": 4},
+ {"matrix": [9, 1], "x": 167, "y": 62, "flags": 4},
+ {"matrix": [9, 0], "x": 186, "y": 64, "flags": 4},
+ {"matrix": [8, 2], "x": 186, "y": 48, "flags": 4},
+ {"matrix": [7, 2], "x": 186, "y": 33, "flags": 4},
+ {"matrix": [6, 2], "x": 186, "y": 19, "flags": 4},
+ {"matrix": [5, 2], "x": 186, "y": 5, "flags": 4},
+ {"matrix": [5, 1], "x": 209, "y": 7, "flags": 4},
+ {"matrix": [6, 1], "x": 209, "y": 21, "flags": 4},
+ {"matrix": [7, 1], "x": 209, "y": 36, "flags": 4},
+ {"matrix": [8, 1], "x": 209, "y": 50, "flags": 4},
+ {"matrix": [8, 0], "x": 224, "y": 50, "flags": 4},
+ {"matrix": [7, 0], "x": 224, "y": 36, "flags": 4},
+ {"matrix": [6, 0], "x": 224, "y": 21, "flags": 4},
+ {"matrix": [5, 0], "x": 224, "y": 7, "flags": 4}
+ ],
+ "max_brightness": 127,
+ "sleep": true,
+ "split_count": [29, 29]
+ },
+ "split": {
+ "bootmagic": {
+ "matrix": [5, 0]
+ },
+ "enabled": true,
+ "encoder": {
+ "right": {
+ "rotary": [
+ {"pin_a": "GP14", "pin_b": "GP15"}
+ ]
+ }
+ },
+ "serial": {
+ "driver": "vendor"
+ },
+ "transport": {
+ "sync": {
+ "layer_state": true,
+ "matrix_state": true
+ }
+ }
+ },
+ "tags": ["ortho", "split", "rgb", "encoder", "OLED", "128x64", "tenting_puck"],
+ "url": "https://github.com/JellyTitan/Sofle-Pico",
+ "usb": {
+ "device_version": "3.5.4",
+ "pid": "0x5350",
+ "vid": "0x4A54"
+ },
+ "ws2812": {
+ "driver": "vendor",
+ "pin": "GP0"
+ },
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"label": "`", "matrix": [0, 0], "x": 0, "y": 0.7},
+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 0.7},
+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 0.3},
+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 0.3},
+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 0.45},
+ {"label": "6", "matrix": [5, 5], "x": 9, "y": 0.45},
+ {"label": "7", "matrix": [5, 4], "x": 10, "y": 0.3},
+ {"label": "8", "matrix": [5, 3], "x": 11, "y": 0},
+ {"label": "9", "matrix": [5, 2], "x": 12, "y": 0.3},
+ {"label": "0", "matrix": [5, 1], "x": 13, "y": 0.7},
+ {"label": "`", "matrix": [5, 0], "x": 14, "y": 0.7},
+ {"label": "Esc", "matrix": [1, 0], "x": 0, "y": 1.7},
+ {"label": "Q", "matrix": [1, 1], "x": 1, "y": 1.7},
+ {"label": "W", "matrix": [1, 2], "x": 2, "y": 1.3},
+ {"label": "E", "matrix": [1, 3], "x": 3, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4, "y": 1.3},
+ {"label": "T", "matrix": [1, 5], "x": 5, "y": 1.45},
+ {"label": "Y", "matrix": [6, 5], "x": 9, "y": 1.45},
+ {"label": "U", "matrix": [6, 4], "x": 10, "y": 1.3},
+ {"label": "I", "matrix": [6, 3], "x": 11, "y": 1},
+ {"label": "O", "matrix": [6, 2], "x": 12, "y": 1.3},
+ {"label": "P", "matrix": [6, 1], "x": 13, "y": 1.7},
+ {"label": "Bspc", "matrix": [6, 0], "x": 14, "y": 1.7},
+ {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.7},
+ {"label": "A", "matrix": [2, 1], "x": 1, "y": 2.7},
+ {"label": "S", "matrix": [2, 2], "x": 2, "y": 2.3},
+ {"label": "D", "matrix": [2, 3], "x": 3, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4, "y": 2.3},
+ {"label": "G", "matrix": [2, 5], "x": 5, "y": 2.45},
+ {"label": "H", "matrix": [7, 5], "x": 9, "y": 2.45},
+ {"label": "J", "matrix": [7, 4], "x": 10, "y": 2.3},
+ {"label": "K", "matrix": [7, 3], "x": 11, "y": 2},
+ {"label": "L", "matrix": [7, 2], "x": 12, "y": 2.3},
+ {"label": ";", "matrix": [7, 1], "x": 13, "y": 2.7},
+ {"label": "'", "matrix": [7, 0], "x": 14, "y": 2.7},
+ {"label": "LShift", "matrix": [3, 0], "x": 0, "y": 3.7},
+ {"label": "Z", "matrix": [3, 1], "x": 1, "y": 3.7},
+ {"label": "X", "matrix": [3, 2], "x": 2, "y": 3.3},
+ {"label": "C", "matrix": [3, 3], "x": 3, "y": 3},
+ {"label": "V", "matrix": [3, 4], "x": 4, "y": 3.3},
+ {"label": "B", "matrix": [3, 5], "x": 5, "y": 3.45},
+ {"label": "Mute", "matrix": [4, 5], "x": 6.2, "y": 3.45},
+ {"label": "Pause", "matrix": [9, 5], "x": 7.8, "y": 3.45},
+ {"label": "N", "matrix": [8, 5], "x": 9, "y": 3.45},
+ {"label": "M", "matrix": [8, 4], "x": 10, "y": 3.3},
+ {"label": ",", "matrix": [8, 3], "x": 11, "y": 3},
+ {"label": ".", "matrix": [8, 2], "x": 12, "y": 3.3},
+ {"label": "/", "matrix": [8, 1], "x": 13, "y": 3.7},
+ {"label": "RShift", "matrix": [8, 0], "x": 14, "y": 3.7},
+ {"label": "LCtrl", "matrix": [4, 0], "x": 2, "y": 4.3},
+ {"label": "LGUI", "matrix": [4, 1], "x": 3, "y": 4},
+ {"label": "LCmnd", "matrix": [4, 2], "x": 4, "y": 4.3},
+ {"label": "LAlt", "matrix": [4, 3], "x": 5.1, "y": 4.5, "h": 1.5},
+ {"label": "Enter", "matrix": [4, 4], "x": 6.1, "y": 4.5, "h": 1.5},
+ {"label": "Space", "matrix": [9, 4], "x": 7.9, "y": 4.5, "h": 1.5},
+ {"label": "RAlt", "matrix": [9, 3], "x": 8.9, "y": 4.5, "h": 1.5},
+ {"label": "RCmnd", "matrix": [9, 2], "x": 10, "y": 4.3},
+ {"label": "RGui", "matrix": [9, 1], "x": 11, "y": 4},
+ {"label": "RCtrl", "matrix": [9, 0], "x": 12, "y": 4.3}
+ ]
+ }
+ }
+}
diff --git a/keyboards/sofle_pico/keymaps/default/keymap.c b/keyboards/sofle_pico/keymaps/default/keymap.c
new file mode 100644
index 0000000000..a09f32fc37
--- /dev/null
+++ b/keyboards/sofle_pico/keymaps/default/keymap.c
@@ -0,0 +1,53 @@
+// Copyright 2024 Ryan Neff (@JellyTitan)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+enum sofle_layers {
+ _QWERTY,
+ _LOWER,
+ _RAISE,
+ _ADJUST,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ // clang-format off
+ [_QWERTY] = LAYOUT(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV,
+ KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, XXXXXXX, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LGUI, KC_LALT, KC_LCTL, TL_LOWR, KC_ENT, KC_SPC , TL_UPPR, KC_RCTL, KC_RALT, KC_RGUI
+ ),
+ [_LOWER] = LAYOUT(
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F12,
+ _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE,
+ _______, KC_EQL, KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, KC_LBRC, KC_RBRC, KC_SCLN, KC_COLN, KC_BSLS, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [_RAISE] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, KC_INS, KC_PSCR, KC_APP, XXXXXXX, XXXXXXX, KC_PGUP, XXXXXXX, KC_UP , XXXXXXX, XXXXXXX, KC_BSPC,
+ _______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , KC_BSPC,
+ _______, C(KC_Z), C(KC_X), C(KC_C), C(KC_V), XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [_ADJUST] = LAYOUT(
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RM_TOGG, RM_VALU, RM_VALD, XXXXXXX, XXXXXXX, XXXXXXX,
+ QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, CG_TOGG, XXXXXXX, RM_NEXT, RM_PREV, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, CG_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+ // clang-format on
+};
+
+#ifdef ENCODER_MAP_ENABLE
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
+ [1] = {ENCODER_CCW_CW(KC_PGUP, KC_PGDN)},
+ [2] = {ENCODER_CCW_CW(_______, _______)},
+ [3] = {ENCODER_CCW_CW(_______, _______)},
+};
+#endif
diff --git a/keyboards/sofle_pico/keymaps/default/readme.md b/keyboards/sofle_pico/keymaps/default/readme.md
new file mode 100644
index 0000000000..a15159d07c
--- /dev/null
+++ b/keyboards/sofle_pico/keymaps/default/readme.md
@@ -0,0 +1,10 @@
+
+
+
+
+# Default keymap for Sofle Pico Keyboard
+
+Adapted from the classic Sofle Keyboard by Josef Adamcik.
+Simplified to serve as a starting point for further customizations.
+Layout in [Keyboard Layout Editor](http://www.keyboard-layout-editor.com/#/gists/76efb423a46cbbea75465cb468eef7ff)
+Left encoder controls volume up/down/mute. Right encoder PGUP/PGDOWN.
diff --git a/keyboards/sofle_pico/keymaps/default/rules.mk b/keyboards/sofle_pico/keymaps/default/rules.mk
new file mode 100644
index 0000000000..7c9bf212a6
--- /dev/null
+++ b/keyboards/sofle_pico/keymaps/default/rules.mk
@@ -0,0 +1 @@
+TRI_LAYER_ENABLE = yes
diff --git a/keyboards/sofle_pico/readme.md b/keyboards/sofle_pico/readme.md
new file mode 100644
index 0000000000..34498d0c1b
--- /dev/null
+++ b/keyboards/sofle_pico/readme.md
@@ -0,0 +1,31 @@
+# Sofle Pico Keyboard
+
+
+
+Sofle Pico is a 60% Raspberry Pi Pico powered split keyboard boasting a 4x6 layout with an aggressive columnar stagger. It has 5 "thumb" keys on either side, support for 2-4 rotary encoders, per-key RGB lighting, 128x64 OLEDs and a tenting puck mount.
+
+- Keyboard Maintainer: [Ryan Neff](https://github.com/JellyTitan)
+- Hardware Supported: Sofle Pico PCB v3.5.x, Raspberry Pi Pico
+- Hardware Availability: [PCB, Case, Parts List](https://github.com/JellyTitan/Sofle-Pico)
+
+Remember you have to flash both halves of the keyboard for it to work!
+
+Make example for this keyboard (after setting up your build environment):
+
+ make sofle_pico:default
+
+Flashing example for this keyboard:
+
+ make sofle_pico:default:flash
+
+See 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).
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+- **Bootmagic reset** (works after you have flashed once): Hold down the top far corner key while plugging in the keyboard (`~` left half, `-` right half). This will also clear the EEPROM.
+- **Physical reset button**: Hold the `BOOT` button on the Pico and press the `RST` button on the Pico, release the the `RST` button before the `BOOT` button.
+- **Keycode in layout**: In the default layout, the `Bootloader` keycode is above home row pinky on the right side's adjust layer.
+
+Once you enter the bootloader, the keyboard will show up as a USB device on your computer, you could drag and drop a `.uf2` firmware file to flash it.
diff --git a/keyboards/sofle_pico/sofle_pico.c b/keyboards/sofle_pico/sofle_pico.c
new file mode 100644
index 0000000000..b237dfc599
--- /dev/null
+++ b/keyboards/sofle_pico/sofle_pico.c
@@ -0,0 +1,32 @@
+// Copyright 2024 Ryan Neff (@JellyTitan)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "quantum.h"
+
+#ifdef OLED_ENABLE
+
+oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
+ return OLED_ROTATION_90;
+}
+
+static void render_logo(void) {
+ static const char PROGMEM sofle_pico_logo[] = {
+ 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf0, 0x70, 0xf0, 0xf0, 0xe0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf8, 0xfc, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xf0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7c, 0x78, 0xf8, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1e, 0x1e, 0x3c, 0xfc, 0xf8, 0xf0, 0xc0, 0x00, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0xfc, 0xce, 0xce, 0xce, 0xdc, 0xfc, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1e, 0x1e, 0x1e, 0x3c, 0x3c, 0x3c, 0x3e, 0x1f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x01, 0x07,
+ 0x0f, 0x1f, 0x1e, 0x3c, 0x3c, 0x3c, 0x1e, 0x1f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x1f, 0x1f, 0x3c, 0x38, 0x38, 0x3c, 0x1c, 0x1c, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x06, 0x06, 0x06, 0x0e, 0x9e, 0xfc, 0xf8, 0x00, 0x00, 0x8e, 0x8e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 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, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x7c, 0xfe, 0xff, 0x83, 0x01, 0x01, 0x01, 0x83, 0x83, 0x00, 0x00, 0x7e, 0xff, 0xc7, 0x83, 0x01, 0x01, 0x01,
+ 0x83, 0xff, 0xff, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc3, 0xe3, 0xe0, 0xe0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x30, 0x33, 0x73, 0xe0, 0x60, 0xe0, 0xe0, 0xc0, 0xc1, 0x83, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x70, 0x30, 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0xff, 0xf8, 0xd0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x20, 0x40, 0xc0, 0x80, 0x00, 0x01, 0x87, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xff, 0xff, 0x03, 0x01, 0x00, 0x80, 0xc0, 0x40, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
+ 0xf0, 0xf8, 0x7f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x1c, 0x1c, 0x38, 0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x39, 0xdf, 0xef, 0xf7, 0x7b, 0x39, 0x1c, 0x1c, 0x0e, 0x0e, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0e, 0x0e, 0x1e, 0x1c, 0x3c, 0x79, 0xfb, 0xf7, 0xef, 0x9f, 0x38, 0x30, 0x70, 0x60, 0x60, 0x60, 0x60, 0x70, 0x38, 0x3c, 0x1c, 0x0f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfc, 0x7e, 0x7f, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xff, 0x7f, 0x7f, 0x3f, 0x7c, 0xf8, 0xf0, 0xc0, 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, 0x7f, 0xff, 0x81, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcf, 0xff, 0xfe, 0x7c, 0x78, 0x78, 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x38, 0x78, 0x78, 0x7c, 0xfe, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 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, 0x01, 0x03, 0x07, 0x0f, 0x0e, 0x1e, 0x3f, 0x7f, 0xf1, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe1, 0xf3, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x07, 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03,
+ 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x01, 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, 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, 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, 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, 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, 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, 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, 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, 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};
+ oled_write_raw_P(sofle_pico_logo, sizeof(sofle_pico_logo));
+}
+
+bool oled_task_kb(void) {
+ if (!oled_task_user()) {
+ return false;
+ }
+ render_logo();
+ return false;
+}
+
+#endif
diff --git a/keyboards/sowbug/68keys/68keys.c b/keyboards/sowbug/68keys/68keys.c
new file mode 100644
index 0000000000..df9681481f
--- /dev/null
+++ b/keyboards/sowbug/68keys/68keys.c
@@ -0,0 +1,36 @@
+/* Copyright 2021 Mike Tsao
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
+ { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 },
+ { 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, NO_LED, NO_LED, NO_LED },
+ { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, NO_LED, NO_LED, NO_LED },
+ { 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }
+}, {
+ // LED Index to Physical Position
+ {0, 0}, {12, 0}, {25, 0}, {38, 0}, {51, 0}, {64, 0}, {77, 0}, {90, 0}, {103, 0}, {116, 0}, {129, 0}, {142, 0}, {155, 0}, {175, 0}, {198, 0}, {211, 0}, {3, 12}, {19, 12}, {32, 12}, {45, 12}, {58, 12}, {71, 12}, {84, 12}, {97, 12}, {110, 12}, {123, 12}, {136, 12}, {149, 12}, {162, 12}, {178, 12}, {198, 12}, {211, 12}, {4, 25}, {22, 25}, {35, 25}, {48, 25}, {61, 25}, {74, 25}, {87, 25}, {100, 25}, {113, 25}, {126, 25}, {139, 25}, {152, 25}, {173, 25}, {8, 38}, {29, 38}, {42, 38}, {55, 38}, {68, 38}, {81, 38}, {94, 38}, {107, 38}, {120, 38}, {133, 38}, {146, 38}, {170, 38}, {198, 38}, {1, 51}, {17, 51}, {34, 51}, {82, 51}, {131, 51}, {147, 51}, {163, 51}, {185, 51}, {198, 51}, {211, 51}
+}, {
+ // LED Index to Flag
+ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT
+}
+};
+
+#endif // #ifdef RGB_MATRIX_ENABLE
diff --git a/keyboards/sowbug/68keys/keyboard.json b/keyboards/sowbug/68keys/keyboard.json
index 38ed02706d..be4ffbf9a9 100644
--- a/keyboards/sowbug/68keys/keyboard.json
+++ b/keyboards/sowbug/68keys/keyboard.json
@@ -58,76 +58,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 12, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 25, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 38, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 51, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 77, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 103, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 116, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 129, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 142, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 155, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 175, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 198, "y": 0, "flags": 4},
- {"matrix": [0, 15], "x": 211, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 3, "y": 12, "flags": 4},
- {"matrix": [1, 1], "x": 19, "y": 12, "flags": 4},
- {"matrix": [1, 2], "x": 32, "y": 12, "flags": 4},
- {"matrix": [1, 3], "x": 45, "y": 12, "flags": 4},
- {"matrix": [1, 4], "x": 58, "y": 12, "flags": 4},
- {"matrix": [1, 5], "x": 71, "y": 12, "flags": 4},
- {"matrix": [1, 6], "x": 84, "y": 12, "flags": 4},
- {"matrix": [1, 7], "x": 97, "y": 12, "flags": 4},
- {"matrix": [1, 8], "x": 110, "y": 12, "flags": 4},
- {"matrix": [1, 9], "x": 123, "y": 12, "flags": 4},
- {"matrix": [1, 10], "x": 136, "y": 12, "flags": 4},
- {"matrix": [1, 11], "x": 149, "y": 12, "flags": 4},
- {"matrix": [1, 12], "x": 162, "y": 12, "flags": 4},
- {"matrix": [1, 13], "x": 178, "y": 12, "flags": 4},
- {"matrix": [1, 14], "x": 198, "y": 12, "flags": 4},
- {"matrix": [1, 15], "x": 211, "y": 12, "flags": 4},
- {"matrix": [2, 0], "x": 4, "y": 25, "flags": 4},
- {"matrix": [2, 1], "x": 22, "y": 25, "flags": 4},
- {"matrix": [2, 2], "x": 35, "y": 25, "flags": 4},
- {"matrix": [2, 3], "x": 48, "y": 25, "flags": 4},
- {"matrix": [2, 4], "x": 61, "y": 25, "flags": 4},
- {"matrix": [2, 5], "x": 74, "y": 25, "flags": 4},
- {"matrix": [2, 6], "x": 87, "y": 25, "flags": 4},
- {"matrix": [2, 7], "x": 100, "y": 25, "flags": 4},
- {"matrix": [2, 8], "x": 113, "y": 25, "flags": 4},
- {"matrix": [2, 9], "x": 126, "y": 25, "flags": 4},
- {"matrix": [2, 10], "x": 139, "y": 25, "flags": 4},
- {"matrix": [2, 11], "x": 152, "y": 25, "flags": 4},
- {"matrix": [2, 12], "x": 173, "y": 25, "flags": 4},
- {"matrix": [3, 0], "x": 8, "y": 38, "flags": 4},
- {"matrix": [3, 1], "x": 29, "y": 38, "flags": 4},
- {"matrix": [3, 2], "x": 42, "y": 38, "flags": 4},
- {"matrix": [3, 3], "x": 55, "y": 38, "flags": 4},
- {"matrix": [3, 4], "x": 68, "y": 38, "flags": 4},
- {"matrix": [3, 5], "x": 81, "y": 38, "flags": 4},
- {"matrix": [3, 6], "x": 94, "y": 38, "flags": 4},
- {"matrix": [3, 7], "x": 107, "y": 38, "flags": 4},
- {"matrix": [3, 8], "x": 120, "y": 38, "flags": 4},
- {"matrix": [3, 9], "x": 133, "y": 38, "flags": 4},
- {"matrix": [3, 10], "x": 146, "y": 38, "flags": 4},
- {"matrix": [3, 11], "x": 170, "y": 38, "flags": 4},
- {"matrix": [3, 12], "x": 198, "y": 38, "flags": 4},
- {"matrix": [4, 0], "x": 1, "y": 51, "flags": 4},
- {"matrix": [4, 1], "x": 17, "y": 51, "flags": 4},
- {"matrix": [4, 2], "x": 34, "y": 51, "flags": 4},
- {"matrix": [4, 3], "x": 82, "y": 51, "flags": 4},
- {"matrix": [4, 4], "x": 131, "y": 51, "flags": 4},
- {"matrix": [4, 5], "x": 147, "y": 51, "flags": 4},
- {"matrix": [4, 6], "x": 163, "y": 51, "flags": 4},
- {"matrix": [4, 7], "x": 185, "y": 51, "flags": 4},
- {"matrix": [4, 8], "x": 198, "y": 51, "flags": 4},
- {"matrix": [4, 9], "x": 211, "y": 51, "flags": 4}
- ],
"max_brightness": 128,
"sleep": true
},
diff --git a/keyboards/sowbug/ansi_tkl/ansi_tkl.c b/keyboards/sowbug/ansi_tkl/ansi_tkl.c
new file mode 100644
index 0000000000..508bf62fe1
--- /dev/null
+++ b/keyboards/sowbug/ansi_tkl/ansi_tkl.c
@@ -0,0 +1,50 @@
+/* Copyright 2021 Mike Tsao
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = {{
+ // Key Matrix to LED Index
+ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, NO_LED},
+ {16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32},
+ {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49},
+ {50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, NO_LED, NO_LED, NO_LED, NO_LED},
+ {63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, NO_LED, NO_LED, NO_LED, NO_LED},
+ {76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}
+ },
+ {// LED Index to Physical Position
+ {0, 0}, {24, 0}, {36, 0}, {49, 0}, {61, 0}, {79, 0}, {92, 0}, {104, 0}, {116, 0}, {135, 0}, {147, 0}, {159, 0}, {171, 0}, {187, 0}, {199, 0}, {211, 0},
+ {0, 14}, {12, 14}, {24, 14}, {36, 14}, {49, 14}, {61, 14}, {73, 14}, {85, 14}, {98, 14}, {110, 14}, {122, 14}, {135, 14}, {147, 14}, {165, 14}, {187, 14}, {199, 14}, {211, 14},
+ {3, 24}, {18, 24}, {30, 24}, {42, 24}, {55, 24}, {67, 24}, {79, 24}, {92, 24}, {104, 24}, {116, 24}, {128, 24}, {141, 24}, {153, 24}, {168, 24}, {187, 24}, {199, 24}, {211, 24},
+ {4, 34}, {21, 34}, {33, 34}, {46, 34}, {58, 34}, {70, 34}, {82, 34}, {95, 34}, {107, 34}, {119, 34}, {131, 34}, {144, 34}, {164, 34},
+ {7, 44}, {27, 44}, {39, 44}, {52, 44}, {64, 44}, {76, 44}, {88, 44}, {101, 44}, {113, 44}, {125, 44}, {138, 44}, {161, 44}, {199, 44},
+ {1, 54}, {16, 54}, {32, 54}, {78, 54}, {124, 54}, {139, 54}, {154, 54}, {170, 54}, {187, 54}, {199, 54}, {211, 54}},
+ {// LED Index to Flag
+ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
+ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
+ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
+ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
+ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
+ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
+ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
+ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
+ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
+ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT
+ }
+};
+
+#endif // #ifdef RGB_MATRIX_ENABLE
diff --git a/keyboards/sowbug/ansi_tkl/keyboard.json b/keyboards/sowbug/ansi_tkl/keyboard.json
index 95f3925ff6..50b9d8095a 100644
--- a/keyboards/sowbug/ansi_tkl/keyboard.json
+++ b/keyboards/sowbug/ansi_tkl/keyboard.json
@@ -58,95 +58,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 24, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 36, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 49, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 61, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 79, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 92, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 104, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 116, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 147, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 159, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 171, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 187, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 199, "y": 0, "flags": 4},
- {"matrix": [0, 15], "x": 211, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 14, "flags": 4},
- {"matrix": [1, 1], "x": 12, "y": 14, "flags": 4},
- {"matrix": [1, 2], "x": 24, "y": 14, "flags": 4},
- {"matrix": [1, 3], "x": 36, "y": 14, "flags": 4},
- {"matrix": [1, 4], "x": 49, "y": 14, "flags": 4},
- {"matrix": [1, 5], "x": 61, "y": 14, "flags": 4},
- {"matrix": [1, 6], "x": 73, "y": 14, "flags": 4},
- {"matrix": [1, 7], "x": 85, "y": 14, "flags": 4},
- {"matrix": [1, 8], "x": 98, "y": 14, "flags": 4},
- {"matrix": [1, 9], "x": 110, "y": 14, "flags": 4},
- {"matrix": [1, 10], "x": 122, "y": 14, "flags": 4},
- {"matrix": [1, 11], "x": 135, "y": 14, "flags": 4},
- {"matrix": [1, 12], "x": 147, "y": 14, "flags": 4},
- {"matrix": [1, 13], "x": 165, "y": 14, "flags": 4},
- {"matrix": [1, 14], "x": 187, "y": 14, "flags": 4},
- {"matrix": [1, 15], "x": 199, "y": 14, "flags": 4},
- {"matrix": [1, 16], "x": 211, "y": 14, "flags": 4},
- {"matrix": [2, 0], "x": 3, "y": 24, "flags": 4},
- {"matrix": [2, 1], "x": 18, "y": 24, "flags": 4},
- {"matrix": [2, 2], "x": 30, "y": 24, "flags": 4},
- {"matrix": [2, 3], "x": 42, "y": 24, "flags": 4},
- {"matrix": [2, 4], "x": 55, "y": 24, "flags": 4},
- {"matrix": [2, 5], "x": 67, "y": 24, "flags": 4},
- {"matrix": [2, 6], "x": 79, "y": 24, "flags": 4},
- {"matrix": [2, 7], "x": 92, "y": 24, "flags": 4},
- {"matrix": [2, 8], "x": 104, "y": 24, "flags": 4},
- {"matrix": [2, 9], "x": 116, "y": 24, "flags": 4},
- {"matrix": [2, 10], "x": 128, "y": 24, "flags": 4},
- {"matrix": [2, 11], "x": 141, "y": 24, "flags": 4},
- {"matrix": [2, 12], "x": 153, "y": 24, "flags": 4},
- {"matrix": [2, 13], "x": 168, "y": 24, "flags": 4},
- {"matrix": [2, 14], "x": 187, "y": 24, "flags": 4},
- {"matrix": [2, 15], "x": 199, "y": 24, "flags": 4},
- {"matrix": [2, 16], "x": 211, "y": 24, "flags": 4},
- {"matrix": [3, 0], "x": 4, "y": 34, "flags": 4},
- {"matrix": [3, 1], "x": 21, "y": 34, "flags": 4},
- {"matrix": [3, 2], "x": 33, "y": 34, "flags": 4},
- {"matrix": [3, 3], "x": 46, "y": 34, "flags": 4},
- {"matrix": [3, 4], "x": 58, "y": 34, "flags": 4},
- {"matrix": [3, 5], "x": 70, "y": 34, "flags": 4},
- {"matrix": [3, 6], "x": 82, "y": 34, "flags": 4},
- {"matrix": [3, 7], "x": 95, "y": 34, "flags": 4},
- {"matrix": [3, 8], "x": 107, "y": 34, "flags": 4},
- {"matrix": [3, 9], "x": 119, "y": 34, "flags": 4},
- {"matrix": [3, 10], "x": 131, "y": 34, "flags": 4},
- {"matrix": [3, 11], "x": 144, "y": 34, "flags": 4},
- {"matrix": [3, 12], "x": 164, "y": 34, "flags": 4},
- {"matrix": [4, 0], "x": 7, "y": 44, "flags": 4},
- {"matrix": [4, 1], "x": 27, "y": 44, "flags": 4},
- {"matrix": [4, 2], "x": 39, "y": 44, "flags": 4},
- {"matrix": [4, 3], "x": 52, "y": 44, "flags": 4},
- {"matrix": [4, 4], "x": 64, "y": 44, "flags": 4},
- {"matrix": [4, 5], "x": 76, "y": 44, "flags": 4},
- {"matrix": [4, 6], "x": 88, "y": 44, "flags": 4},
- {"matrix": [4, 7], "x": 101, "y": 44, "flags": 4},
- {"matrix": [4, 8], "x": 113, "y": 44, "flags": 4},
- {"matrix": [4, 9], "x": 125, "y": 44, "flags": 4},
- {"matrix": [4, 10], "x": 138, "y": 44, "flags": 4},
- {"matrix": [4, 11], "x": 161, "y": 44, "flags": 4},
- {"matrix": [4, 12], "x": 199, "y": 44, "flags": 4},
- {"matrix": [5, 0], "x": 1, "y": 54, "flags": 4},
- {"matrix": [5, 1], "x": 16, "y": 54, "flags": 4},
- {"matrix": [5, 2], "x": 32, "y": 54, "flags": 4},
- {"matrix": [5, 3], "x": 78, "y": 54, "flags": 4},
- {"matrix": [5, 4], "x": 124, "y": 54, "flags": 4},
- {"matrix": [5, 5], "x": 139, "y": 54, "flags": 4},
- {"matrix": [5, 6], "x": 154, "y": 54, "flags": 4},
- {"matrix": [5, 7], "x": 170, "y": 54, "flags": 4},
- {"matrix": [5, 8], "x": 187, "y": 54, "flags": 4},
- {"matrix": [5, 9], "x": 199, "y": 54, "flags": 4},
- {"matrix": [5, 10], "x": 211, "y": 54, "flags": 4}
- ],
"max_brightness": 128,
"sleep": true
},
diff --git a/keyboards/spaceholdings/nebula12b/keyboard.json b/keyboards/spaceholdings/nebula12b/keyboard.json
index c1092a75db..6990da485b 100755
--- a/keyboards/spaceholdings/nebula12b/keyboard.json
+++ b/keyboards/spaceholdings/nebula12b/keyboard.json
@@ -57,24 +57,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"x": 224, "y": 0, "flags": 2},
- {"matrix": [0, 2], "x": 224, "y": 9, "flags": 4},
- {"matrix": [1, 2], "x": 224, "y": 27, "flags": 4},
- {"matrix": [1, 1], "x": 112, "y": 27, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 27, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 46, "flags": 4},
- {"matrix": [2, 1], "x": 112, "y": 46, "flags": 4},
- {"matrix": [2, 2], "x": 224, "y": 46, "flags": 4},
- {"x": 224, "y": 55, "flags": 2},
- {"matrix": [3, 2], "x": 224, "y": 64, "flags": 4},
- {"matrix": [3, 1], "x": 112, "y": 64, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 64, "flags": 4},
- {"x": 0, "y": 55, "flags": 2},
- {"matrix": [0, 0], "x": 0, "y": 9, "flags": 4},
- {"x": 0, "y": 0, "flags": 2},
- {"matrix": [0, 1], "x": 112, "y": 9, "flags": 4}
- ],
"sleep": true
},
"build": {
diff --git a/keyboards/spaceholdings/nebula12b/nebula12b.c b/keyboards/spaceholdings/nebula12b/nebula12b.c
new file mode 100755
index 0000000000..6bca6c331b
--- /dev/null
+++ b/keyboards/spaceholdings/nebula12b/nebula12b.c
@@ -0,0 +1,42 @@
+/* Copyright 2022 Yiancar
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+// clang-format off
+led_config_t g_led_config = { {
+ { 13, 15, 1 },
+ { 4, 3, 2 },
+ { 5, 6, 7 },
+ { 11, 10, 9 },
+}, {
+ {224, 0 }, {224, 9 }, {224, 27 }, {112, 27 }, { 0,27 },
+ { 0, 46 }, {112, 46 }, {224, 46 }, {224, 55 }, {224,64 },
+ {112, 64 }, { 0, 64 }, { 0, 55 }, { 0, 9 }, { 0, 0 }, {112, 9 }
+}, {
+ 2,
+ 4, 4, 4, 4, 4, 4, 4,
+ 2,
+ 4, 4, 4,
+ 2,
+ 4,
+ 2,
+ 4
+} };
+// clang-format on
+#endif
+
diff --git a/keyboards/spaceholdings/nebula68b/hs/hs.c b/keyboards/spaceholdings/nebula68b/hs/hs.c
new file mode 100755
index 0000000000..7ac8da2e0d
--- /dev/null
+++ b/keyboards/spaceholdings/nebula68b/hs/hs.c
@@ -0,0 +1,41 @@
+/* Copyright 2021 Yiancar
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+// clang-format off
+led_config_t g_led_config = { {
+ { 0, 1, 2, 4, 5, 6, 7, 9, 10, 11, 13, 14, 15, 17, 18 },
+ { 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, NO_LED, 21 },
+ { 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 22, 49, 19 },
+ { 63, NO_LED, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 20 },
+ { 64, 65, 67, NO_LED, NO_LED, NO_LED, 69, NO_LED, NO_LED, 71, 72, 73, 75, 76, 77 }
+}, {
+ { 6, 10}, { 19, 10}, { 32, 10}, { 39, 11}, { 45, 10}, { 58, 10}, { 71, 10}, { 84, 10}, { 90, 11}, { 97, 10}, {110, 10}, {123, 10}, {130, 11}, {136, 10}, {149, 10}, {162, 10},
+ {178, 13}, {182, 10}, {205, 10}, {218, 10}, {218, 23}, {205, 23}, {185, 23}, {169, 23}, {156, 23}, {143, 23}, {130, 23}, {117, 23}, {104, 23}, { 91, 23}, { 78, 23},
+ { 65, 23}, { 52, 23}, { 39, 23}, { 26, 23}, { 10, 23}, { 4, 26}, { 17, 29}, { 29, 35}, { 42, 35}, { 55, 35}, { 68, 35}, { 81, 35}, { 94, 35}, {107, 35}, {120, 35}, {133, 35},
+ {146, 35}, {159, 35}, {180, 35}, {220, 32}, {205, 48}, {177, 48}, {153, 48}, {140, 48}, {127, 48}, {114, 48}, {101, 48}, { 88, 48}, { 75, 48}, { 62, 48}, { 49, 48}, { 36, 48},
+ { 15, 48}, { 8, 61}, { 24, 61}, { 32, 52}, { 41, 61}, { 81, 56}, { 89, 61}, {132, 53}, {138, 61}, {154, 61}, {170, 61}, {179, 53}, {192, 61}, {205, 61}, {218, 61}
+}, {
+ 1, 4, 4, 2, 4, 4, 4, 4, 2, 4, 4, 4, 2, 4, 4, 4, 2, 1, 1, 1,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 2,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 2,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 2, 1, 2, 4, 2, 1, 1, 1, 2, 1, 1, 1
+} };
+// clang-format on
+#endif
diff --git a/keyboards/spaceholdings/nebula68b/hs/keyboard.json b/keyboards/spaceholdings/nebula68b/hs/keyboard.json
index f99fd95bc4..ca41cff8e6 100755
--- a/keyboards/spaceholdings/nebula68b/hs/keyboard.json
+++ b/keyboards/spaceholdings/nebula68b/hs/keyboard.json
@@ -1,87 +1,5 @@
{
"keyboard_name": "NEBULA68B HOTSWAP",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 6, "y": 10, "flags": 1},
- {"matrix": [0, 1], "x": 19, "y": 10, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 10, "flags": 4},
- {"x": 39, "y": 11, "flags": 2},
- {"matrix": [0, 3], "x": 45, "y": 10, "flags": 4},
- {"matrix": [0, 4], "x": 58, "y": 10, "flags": 4},
- {"matrix": [0, 5], "x": 71, "y": 10, "flags": 4},
- {"matrix": [0, 6], "x": 84, "y": 10, "flags": 4},
- {"x": 90, "y": 11, "flags": 2},
- {"matrix": [0, 7], "x": 97, "y": 10, "flags": 4},
- {"matrix": [0, 8], "x": 110, "y": 10, "flags": 4},
- {"matrix": [0, 9], "x": 123, "y": 10, "flags": 4},
- {"x": 130, "y": 11, "flags": 2},
- {"matrix": [0, 10], "x": 136, "y": 10, "flags": 4},
- {"matrix": [0, 11], "x": 149, "y": 10, "flags": 4},
- {"matrix": [0, 12], "x": 162, "y": 10, "flags": 4},
- {"x": 178, "y": 13, "flags": 2},
- {"matrix": [0, 13], "x": 182, "y": 10, "flags": 1},
- {"matrix": [0, 14], "x": 205, "y": 10, "flags": 1},
- {"matrix": [2, 14], "x": 218, "y": 10, "flags": 1},
- {"matrix": [3, 14], "x": 218, "y": 23, "flags": 1},
- {"matrix": [1, 14], "x": 205, "y": 23, "flags": 1},
- {"matrix": [2, 12], "x": 185, "y": 23, "flags": 4},
- {"matrix": [1, 12], "x": 169, "y": 23, "flags": 4},
- {"matrix": [1, 11], "x": 156, "y": 23, "flags": 4},
- {"matrix": [1, 10], "x": 143, "y": 23, "flags": 4},
- {"matrix": [1, 9], "x": 130, "y": 23, "flags": 4},
- {"matrix": [1, 8], "x": 117, "y": 23, "flags": 4},
- {"matrix": [1, 7], "x": 104, "y": 23, "flags": 4},
- {"matrix": [1, 6], "x": 91, "y": 23, "flags": 4},
- {"matrix": [1, 5], "x": 78, "y": 23, "flags": 4},
- {"matrix": [1, 4], "x": 65, "y": 23, "flags": 4},
- {"matrix": [1, 3], "x": 52, "y": 23, "flags": 4},
- {"matrix": [1, 2], "x": 39, "y": 23, "flags": 4},
- {"matrix": [1, 1], "x": 26, "y": 23, "flags": 4},
- {"matrix": [1, 0], "x": 10, "y": 23, "flags": 1},
- {"x": 4, "y": 26, "flags": 2},
- {"matrix": [2, 0], "x": 17, "y": 29, "flags": 1},
- {"matrix": [2, 1], "x": 29, "y": 35, "flags": 4},
- {"matrix": [2, 2], "x": 42, "y": 35, "flags": 4},
- {"matrix": [2, 3], "x": 55, "y": 35, "flags": 4},
- {"matrix": [2, 4], "x": 68, "y": 35, "flags": 4},
- {"matrix": [2, 5], "x": 81, "y": 35, "flags": 4},
- {"matrix": [2, 6], "x": 94, "y": 35, "flags": 4},
- {"matrix": [2, 7], "x": 107, "y": 35, "flags": 4},
- {"matrix": [2, 8], "x": 120, "y": 35, "flags": 4},
- {"matrix": [2, 9], "x": 133, "y": 35, "flags": 4},
- {"matrix": [2, 10], "x": 146, "y": 35, "flags": 4},
- {"matrix": [2, 11], "x": 159, "y": 35, "flags": 4},
- {"matrix": [2, 13], "x": 180, "y": 35, "flags": 1},
- {"x": 220, "y": 32, "flags": 2},
- {"matrix": [3, 13], "x": 205, "y": 48, "flags": 1},
- {"matrix": [3, 12], "x": 177, "y": 48, "flags": 1},
- {"matrix": [3, 11], "x": 153, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 140, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 127, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 114, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 101, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 88, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 75, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 62, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 15, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 8, "y": 61, "flags": 1},
- {"matrix": [4, 1], "x": 24, "y": 61, "flags": 1},
- {"x": 32, "y": 52, "flags": 2},
- {"matrix": [4, 2], "x": 41, "y": 61, "flags": 1},
- {"x": 81, "y": 56, "flags": 2},
- {"matrix": [4, 6], "x": 89, "y": 61, "flags": 4},
- {"x": 132, "y": 53, "flags": 2},
- {"matrix": [4, 9], "x": 138, "y": 61, "flags": 1},
- {"matrix": [4, 10], "x": 154, "y": 61, "flags": 1},
- {"matrix": [4, 11], "x": 170, "y": 61, "flags": 1},
- {"x": 179, "y": 53, "flags": 2},
- {"matrix": [4, 12], "x": 192, "y": 61, "flags": 1},
- {"matrix": [4, 13], "x": 205, "y": 61, "flags": 1},
- {"matrix": [4, 14], "x": 218, "y": 61, "flags": 1}
- ]
- },
"community_layouts": ["68_ansi"],
"layouts": {
"LAYOUT_68_ansi": {
diff --git a/keyboards/spaceholdings/nebula68b/solder/keyboard.json b/keyboards/spaceholdings/nebula68b/solder/keyboard.json
index ea002840e2..3a50385fe3 100755
--- a/keyboards/spaceholdings/nebula68b/solder/keyboard.json
+++ b/keyboards/spaceholdings/nebula68b/solder/keyboard.json
@@ -1,88 +1,5 @@
{
"keyboard_name": "NEBULA68B SOLDER",
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 6, "y": 10, "flags": 1},
- {"matrix": [0, 1], "x": 19, "y": 10, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 10, "flags": 4},
- {"x": 44, "y": 13, "flags": 2},
- {"matrix": [0, 3], "x": 45, "y": 10, "flags": 4},
- {"matrix": [0, 4], "x": 58, "y": 10, "flags": 4},
- {"matrix": [0, 5], "x": 71, "y": 10, "flags": 4},
- {"matrix": [0, 6], "x": 84, "y": 10, "flags": 4},
- {"x": 88, "y": 13, "flags": 2},
- {"matrix": [0, 7], "x": 97, "y": 10, "flags": 4},
- {"matrix": [0, 8], "x": 110, "y": 10, "flags": 4},
- {"matrix": [0, 9], "x": 123, "y": 10, "flags": 4},
- {"x": 132, "y": 13, "flags": 2},
- {"matrix": [0, 10], "x": 136, "y": 10, "flags": 4},
- {"matrix": [0, 11], "x": 149, "y": 10, "flags": 4},
- {"matrix": [0, 12], "x": 162, "y": 10, "flags": 4},
- {"matrix": [1, 13], "x": 175, "y": 10, "flags": 4},
- {"x": 179, "y": 13, "flags": 2},
- {"matrix": [0, 13], "x": 188, "y": 10, "flags": 1},
- {"matrix": [0, 14], "x": 205, "y": 10, "flags": 1},
- {"matrix": [2, 14], "x": 218, "y": 10, "flags": 1},
- {"matrix": [3, 14], "x": 218, "y": 23, "flags": 1},
- {"matrix": [1, 14], "x": 205, "y": 23, "flags": 1},
- {"matrix": [2, 12], "x": 185, "y": 23, "flags": 4},
- {"matrix": [1, 12], "x": 169, "y": 23, "flags": 4},
- {"matrix": [1, 11], "x": 156, "y": 23, "flags": 4},
- {"matrix": [1, 10], "x": 143, "y": 23, "flags": 4},
- {"matrix": [1, 9], "x": 130, "y": 23, "flags": 4},
- {"matrix": [1, 8], "x": 117, "y": 23, "flags": 4},
- {"matrix": [1, 7], "x": 104, "y": 23, "flags": 4},
- {"matrix": [1, 6], "x": 91, "y": 23, "flags": 4},
- {"matrix": [1, 5], "x": 78, "y": 23, "flags": 4},
- {"matrix": [1, 4], "x": 65, "y": 23, "flags": 4},
- {"matrix": [1, 3], "x": 52, "y": 23, "flags": 4},
- {"matrix": [1, 2], "x": 39, "y": 23, "flags": 4},
- {"matrix": [1, 1], "x": 26, "y": 23, "flags": 4},
- {"matrix": [1, 0], "x": 10, "y": 23, "flags": 1},
- {"x": 4, "y": 26, "flags": 2},
- {"matrix": [2, 0], "x": 11, "y": 35, "flags": 1},
- {"matrix": [2, 1], "x": 29, "y": 35, "flags": 4},
- {"matrix": [2, 2], "x": 42, "y": 35, "flags": 4},
- {"matrix": [2, 3], "x": 55, "y": 35, "flags": 4},
- {"matrix": [2, 4], "x": 68, "y": 35, "flags": 4},
- {"matrix": [2, 5], "x": 81, "y": 35, "flags": 4},
- {"matrix": [2, 6], "x": 94, "y": 35, "flags": 4},
- {"matrix": [2, 7], "x": 107, "y": 35, "flags": 4},
- {"matrix": [2, 8], "x": 120, "y": 35, "flags": 4},
- {"matrix": [2, 9], "x": 133, "y": 35, "flags": 4},
- {"matrix": [2, 10], "x": 146, "y": 35, "flags": 4},
- {"matrix": [2, 11], "x": 159, "y": 35, "flags": 4},
- {"matrix": [2, 13], "x": 180, "y": 35, "flags": 1},
- {"x": 220, "y": 32, "flags": 2},
- {"matrix": [3, 13], "x": 205, "y": 48, "flags": 1},
- {"matrix": [3, 12], "x": 177, "y": 48, "flags": 1},
- {"matrix": [3, 11], "x": 153, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 140, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 127, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 114, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 101, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 88, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 75, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 62, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 15, "y": 48, "flags": 1},
- {"matrix": [4, 0], "x": 8, "y": 61, "flags": 1},
- {"matrix": [4, 1], "x": 24, "y": 61, "flags": 1},
- {"x": 32, "y": 52, "flags": 2},
- {"matrix": [4, 2], "x": 41, "y": 61, "flags": 1},
- {"x": 82, "y": 56, "flags": 2},
- {"matrix": [4, 6], "x": 89, "y": 61, "flags": 4},
- {"x": 132, "y": 53, "flags": 2},
- {"matrix": [4, 9], "x": 138, "y": 61, "flags": 1},
- {"matrix": [4, 10], "x": 154, "y": 61, "flags": 1},
- {"matrix": [4, 11], "x": 170, "y": 61, "flags": 1},
- {"x": 179, "y": 53, "flags": 2},
- {"matrix": [4, 12], "x": 192, "y": 61, "flags": 1},
- {"matrix": [4, 13], "x": 205, "y": 61, "flags": 1},
- {"matrix": [4, 14], "x": 218, "y": 61, "flags": 1}
- ]
- },
"community_layouts": ["68_ansi"],
"layouts": {
"LAYOUT_68_ansi": {
diff --git a/keyboards/spaceholdings/nebula68b/solder/solder.c b/keyboards/spaceholdings/nebula68b/solder/solder.c
new file mode 100755
index 0000000000..352cee1d52
--- /dev/null
+++ b/keyboards/spaceholdings/nebula68b/solder/solder.c
@@ -0,0 +1,41 @@
+/* Copyright 2021 Yiancar
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+// clang-format off
+led_config_t g_led_config = { {
+ { 0, 1, 2, 4, 5, 6, 7, 9, 10, 11, 13, 14, 15, 18, 19 },
+ { 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 16, 22 },
+ { 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 23, 50, 20 },
+ { 64, NO_LED, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 21 },
+ { 65, 66, 68, NO_LED, NO_LED, NO_LED, 70, NO_LED, NO_LED, 72, 73, 74, 76, 77, 78 }
+}, {
+ { 6, 10}, { 19, 10}, { 32, 10}, { 44, 13}, { 45, 10}, { 58, 10}, { 71, 10}, { 84, 10}, { 88, 13}, { 97, 10}, {110, 10}, {123, 10}, {132, 13}, {136, 10}, {149, 10}, {162, 10},
+ {175, 10}, {179, 13}, {188, 10}, {205, 10}, {218, 10}, {218, 23}, {205, 23}, {185, 23}, {169, 23}, {156, 23}, {143, 23}, {130, 23}, {117, 23}, {104, 23}, { 91, 23}, { 78, 23},
+ { 65, 23}, { 52, 23}, { 39, 23}, { 26, 23}, { 10, 23}, { 4, 26}, { 11, 35}, { 29, 35}, { 42, 35}, { 55, 35}, { 68, 35}, { 81, 35}, { 94, 35}, {107, 35}, {120, 35}, {133, 35},
+ {146, 35}, {159, 35}, {180, 35}, {220, 32}, {205, 48}, {177, 48}, {153, 48}, {140, 48}, {127, 48}, {114, 48}, {101, 48}, { 88, 48}, { 75, 48}, { 62, 48}, { 49, 48}, { 36, 48},
+ { 15, 48}, { 8, 61}, { 24, 61}, { 32, 52}, { 41, 61}, { 82, 56}, { 89, 61}, {132, 53}, {138, 61}, {154, 61}, {170, 61}, {179, 53}, {192, 61}, {205, 61}, {218, 61}
+}, {
+ 1, 4, 4, 2, 4, 4, 4, 4, 2, 4, 4, 4, 2, 4, 4, 4, 4, 2, 1, 1, 1,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 2,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 2,
+ 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 2, 1, 2, 4, 2, 1, 1, 1, 2, 1, 1, 1
+} };
+// clang-format on
+#endif
diff --git a/keyboards/splitkb/kyria/rev1/info.json b/keyboards/splitkb/kyria/rev1/info.json
index 54758180fa..1e21c60978 100644
--- a/keyboards/splitkb/kyria/rev1/info.json
+++ b/keyboards/splitkb/kyria/rev1/info.json
@@ -19,28 +19,6 @@
},
"rgb_matrix": {
"driver": "ws2812",
- "layout": [
- {"matrix": [2, 1], "x": 91, "y": 40, "flags": 255},
- {"matrix": [3, 2], "x": 77, "y": 56, "flags": 255},
- {"matrix": [3, 3], "x": 63, "y": 56, "flags": 255},
- {"matrix": [1, 2], "x": 77, "y": 24, "flags": 255},
- {"matrix": [0, 3], "x": 63, "y": 8, "flags": 255},
- {"matrix": [0, 6], "x": 21, "y": 8, "flags": 255},
- {"matrix": [2, 6], "x": 21, "y": 40, "flags": 255},
- {"matrix": [2, 5], "x": 35, "y": 40, "flags": 255},
- {"matrix": [2, 7], "x": 7, "y": 40, "flags": 255},
- {"matrix": [0, 7], "x": 7, "y": 8, "flags": 255},
- {"matrix": [6, 1], "x": 133, "y": 40, "flags": 255},
- {"matrix": [7, 2], "x": 147, "y": 56, "flags": 255},
- {"matrix": [7, 3], "x": 161, "y": 56, "flags": 255},
- {"matrix": [5, 2], "x": 147, "y": 24, "flags": 255},
- {"matrix": [4, 3], "x": 161, "y": 8, "flags": 255},
- {"matrix": [4, 6], "x": 203, "y": 8, "flags": 255},
- {"matrix": [6, 6], "x": 203, "y": 40, "flags": 255},
- {"matrix": [6, 5], "x": 189, "y": 40, "flags": 255},
- {"matrix": [6, 7], "x": 217, "y": 40, "flags": 255},
- {"matrix": [4, 7], "x": 217, "y": 8, "flags": 255}
- ],
"max_brightness": 170,
"sleep": true,
"split_count": [10, 10]
diff --git a/keyboards/splitkb/kyria/rev1/rev1.c b/keyboards/splitkb/kyria/rev1/rev1.c
index 2b64504cc3..db14411933 100644
--- a/keyboards/splitkb/kyria/rev1/rev1.c
+++ b/keyboards/splitkb/kyria/rev1/rev1.c
@@ -32,3 +32,34 @@ __attribute__ ((weak)) const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATR
const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {1, 0};
# endif
#endif
+
+#ifdef RGB_MATRIX_ENABLE
+/* Map physical under glow LEDs for RGB matrix support
+ *
+ * 09, 05, xx, xx, 04, xx, xx, 14, xx, xx, 15, 19,
+ * xx, xx, xx, xx, xx, 03, 13, xx, xx, xx, xx, xx,
+ * 08, 06, 07, xx, xx, xx, 00, xx, xx, 10, xx, xx, xx, 17, 16, 18,
+ * xx, 02, 01, xx, xx, xx, xx, 11, 12, xx
+ */
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { NO_LED, NO_LED, NO_LED, 4, NO_LED, NO_LED, 5, 9 },
+ { NO_LED, NO_LED, 3, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, 0, NO_LED, NO_LED, NO_LED, 7, 6, 8 },
+ { NO_LED, NO_LED, 1, 2, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, 14, NO_LED, NO_LED, 15, 19 },
+ { NO_LED, NO_LED, 13, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, 10, NO_LED, NO_LED, NO_LED, 17, 16, 18 },
+ { NO_LED, NO_LED, 11, 12, NO_LED, NO_LED, NO_LED, NO_LED },
+}, {
+ // LED Index to Physical Position
+ {91,40}, {77,56}, {63,56}, {77,24}, {63,8}, {21,8}, {21,40}, {35,40}, {7,40}, {7,8},
+ {133,40}, {147,56}, {161,56}, {147,24}, {161,8}, {203,8}, {203,40}, {189,40}, {217,40}, {217,8}
+}, {
+ // LED Index to Flag
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL
+} };
+#endif
diff --git a/keyboards/splitkb/kyria/rev2/info.json b/keyboards/splitkb/kyria/rev2/info.json
index 41c55cc025..d1507a26b0 100644
--- a/keyboards/splitkb/kyria/rev2/info.json
+++ b/keyboards/splitkb/kyria/rev2/info.json
@@ -19,28 +19,6 @@
},
"rgb_matrix": {
"driver": "ws2812",
- "layout": [
- {"matrix": [1, 2], "x": 77, "y": 24, "flags": 255},
- {"matrix": [0, 3], "x": 63, "y": 8, "flags": 255},
- {"matrix": [0, 6], "x": 21, "y": 8, "flags": 255},
- {"matrix": [2, 6], "x": 21, "y": 40, "flags": 255},
- {"matrix": [2, 5], "x": 35, "y": 40, "flags": 255},
- {"matrix": [3, 3], "x": 63, "y": 56, "flags": 255},
- {"matrix": [3, 2], "x": 77, "y": 56, "flags": 255},
- {"matrix": [2, 1], "x": 91, "y": 40, "flags": 255},
- {"matrix": [2, 7], "x": 7, "y": 40, "flags": 255},
- {"matrix": [0, 7], "x": 7, "y": 8, "flags": 255},
- {"matrix": [5, 2], "x": 147, "y": 24, "flags": 255},
- {"matrix": [4, 3], "x": 161, "y": 8, "flags": 255},
- {"matrix": [4, 6], "x": 203, "y": 8, "flags": 255},
- {"matrix": [6, 6], "x": 203, "y": 40, "flags": 255},
- {"matrix": [6, 5], "x": 189, "y": 40, "flags": 255},
- {"matrix": [7, 3], "x": 161, "y": 56, "flags": 255},
- {"matrix": [7, 2], "x": 147, "y": 56, "flags": 255},
- {"matrix": [6, 1], "x": 133, "y": 40, "flags": 255},
- {"matrix": [6, 7], "x": 217, "y": 40, "flags": 255},
- {"matrix": [4, 7], "x": 217, "y": 8, "flags": 255}
- ],
"max_brightness": 170,
"sleep": true,
"split_count": [10, 10]
diff --git a/keyboards/splitkb/kyria/rev2/rev2.c b/keyboards/splitkb/kyria/rev2/rev2.c
index 70f894b64d..37300c8188 100644
--- a/keyboards/splitkb/kyria/rev2/rev2.c
+++ b/keyboards/splitkb/kyria/rev2/rev2.c
@@ -47,3 +47,33 @@ __attribute__ ((weak)) const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATR
const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {1, 0};
# endif
#endif
+
+#ifdef RGB_MATRIX_ENABLE
+/* Map physical under glow LEDs for RGB matrix support
+ * 09, 02, xx, xx, 01, xx, xx, 11, xx, xx, 12, 19,
+ * xx, xx, xx, xx, xx, 00, 10, xx, xx, xx, xx, xx,
+ * 08, 03, 04, xx, xx, xx, 07, xx, xx, 17, xx, xx, xx, 14, 13, 18,
+ * xx, 05, 06, xx, xx, xx, xx, 16, 15, xx
+ */
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { NO_LED, NO_LED, NO_LED, 1, NO_LED, NO_LED, 2, 9 },
+ { NO_LED, NO_LED, 0, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, 7, NO_LED, NO_LED, NO_LED, 4, 3, 8 },
+ { NO_LED, NO_LED, 6, 5, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, NO_LED, NO_LED, 11, NO_LED, NO_LED, 12, 19 },
+ { NO_LED, NO_LED, 10, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
+ { NO_LED, 17, NO_LED, NO_LED, NO_LED, 14, 13, 18 },
+ { NO_LED, NO_LED, 16, 15, NO_LED, NO_LED, NO_LED, NO_LED },
+}, {
+ // LED Index to Physical Position
+ {77,24}, {63,8}, {21,8}, {21,40}, {35,40}, {63,56}, {77,56}, {91,40}, {7,40}, {7,8},
+ {147,24}, {161,8}, {203,8}, {203,40}, {189,40}, {161,56}, {147,56}, {133,40}, {217,40}, {217,8}
+}, {
+ // LED Index to Flag
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL
+} };
+#endif
diff --git a/keyboards/system76/launch_1/keyboard.json b/keyboards/system76/launch_1/keyboard.json
index 3a7ecc928e..b5317dd9bc 100644
--- a/keyboards/system76/launch_1/keyboard.json
+++ b/keyboards/system76/launch_1/keyboard.json
@@ -47,92 +47,6 @@
"hue": 142
},
"driver": "ws2812",
- "layout": [
- {"matrix": [4, 12], "x": 209, "y": 51, "flags": 4},
- {"matrix": [4, 11], "x": 190, "y": 51, "flags": 4},
- {"matrix": [4, 10], "x": 171, "y": 51, "flags": 4},
- {"matrix": [4, 9], "x": 156, "y": 51, "flags": 4},
- {"matrix": [4, 8], "x": 140, "y": 51, "flags": 4},
- {"matrix": [4, 7], "x": 125, "y": 51, "flags": 4},
- {"matrix": [4, 6], "x": 110, "y": 51, "flags": 4},
- {"matrix": [4, 5], "x": 95, "y": 51, "flags": 4},
- {"matrix": [4, 4], "x": 80, "y": 51, "flags": 4},
- {"matrix": [4, 3], "x": 65, "y": 51, "flags": 4},
- {"matrix": [4, 2], "x": 49, "y": 51, "flags": 4},
- {"matrix": [4, 1], "x": 34, "y": 51, "flags": 4},
- {"matrix": [4, 0], "x": 11, "y": 51, "flags": 4},
- {"matrix": [5, 0], "x": 8, "y": 64, "flags": 4},
- {"matrix": [5, 1], "x": 27, "y": 64, "flags": 4},
- {"matrix": [5, 2], "x": 42, "y": 64, "flags": 4},
- {"matrix": [5, 3], "x": 57, "y": 64, "flags": 4},
- {"matrix": [5, 4], "x": 80, "y": 64, "flags": 4},
- {"matrix": [5, 6], "x": 110, "y": 64, "flags": 4},
- {"matrix": [5, 7], "x": 133, "y": 64, "flags": 4},
- {"matrix": [5, 8], "x": 148, "y": 64, "flags": 4},
- {"matrix": [5, 9], "x": 167, "y": 64, "flags": 4},
- {"matrix": [5, 10], "x": 194, "y": 64, "flags": 4},
- {"matrix": [5, 11], "x": 209, "y": 64, "flags": 4},
- {"matrix": [5, 12], "x": 224, "y": 64, "flags": 4},
- {"matrix": [5, 5], "x": 224, "y": 38, "flags": 4},
- {"matrix": [3, 12], "x": 197, "y": 38, "flags": 4},
- {"matrix": [3, 11], "x": 178, "y": 38, "flags": 4},
- {"matrix": [3, 10], "x": 163, "y": 38, "flags": 4},
- {"matrix": [3, 9], "x": 148, "y": 38, "flags": 4},
- {"matrix": [3, 8], "x": 133, "y": 38, "flags": 4},
- {"matrix": [3, 7], "x": 118, "y": 38, "flags": 4},
- {"matrix": [3, 6], "x": 103, "y": 38, "flags": 4},
- {"matrix": [3, 5], "x": 87, "y": 38, "flags": 4},
- {"matrix": [3, 4], "x": 72, "y": 38, "flags": 4},
- {"matrix": [3, 3], "x": 57, "y": 38, "flags": 4},
- {"matrix": [3, 2], "x": 42, "y": 38, "flags": 4},
- {"matrix": [3, 1], "x": 27, "y": 38, "flags": 4},
- {"matrix": [3, 0], "x": 8, "y": 38, "flags": 4},
- {"matrix": [2, 0], "x": 4, "y": 26, "flags": 4},
- {"matrix": [2, 1], "x": 23, "y": 26, "flags": 4},
- {"matrix": [2, 2], "x": 38, "y": 26, "flags": 4},
- {"matrix": [2, 3], "x": 53, "y": 26, "flags": 4},
- {"matrix": [2, 4], "x": 68, "y": 26, "flags": 4},
- {"matrix": [2, 5], "x": 84, "y": 26, "flags": 4},
- {"matrix": [2, 6], "x": 99, "y": 26, "flags": 4},
- {"matrix": [2, 7], "x": 114, "y": 26, "flags": 4},
- {"matrix": [2, 8], "x": 129, "y": 26, "flags": 4},
- {"matrix": [2, 9], "x": 144, "y": 26, "flags": 4},
- {"matrix": [2, 10], "x": 159, "y": 26, "flags": 4},
- {"matrix": [2, 11], "x": 175, "y": 26, "flags": 4},
- {"matrix": [2, 12], "x": 190, "y": 26, "flags": 4},
- {"matrix": [2, 13], "x": 205, "y": 26, "flags": 4},
- {"matrix": [5, 13], "x": 224, "y": 26, "flags": 4},
- {"matrix": [4, 13], "x": 224, "y": 13, "flags": 4},
- {"matrix": [1, 13], "x": 201, "y": 13, "flags": 4},
- {"matrix": [1, 12], "x": 182, "y": 13, "flags": 4},
- {"matrix": [1, 11], "x": 167, "y": 13, "flags": 4},
- {"matrix": [1, 10], "x": 152, "y": 13, "flags": 4},
- {"matrix": [1, 9], "x": 137, "y": 13, "flags": 4},
- {"matrix": [1, 8], "x": 121, "y": 13, "flags": 4},
- {"matrix": [1, 7], "x": 106, "y": 13, "flags": 4},
- {"matrix": [1, 6], "x": 91, "y": 13, "flags": 4},
- {"matrix": [1, 5], "x": 76, "y": 13, "flags": 4},
- {"matrix": [1, 4], "x": 61, "y": 13, "flags": 4},
- {"matrix": [1, 3], "x": 46, "y": 13, "flags": 4},
- {"matrix": [1, 2], "x": 30, "y": 13, "flags": 4},
- {"matrix": [1, 1], "x": 15, "y": 13, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 13, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 46, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 61, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 76, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 91, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 106, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 121, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 137, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 152, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 167, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 182, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 201, "y": 0, "flags": 4},
- {"matrix": [3, 13], "x": 224, "y": 0, "flags": 4}
- ],
"max_brightness": 176,
"sleep": true
},
diff --git a/keyboards/system76/launch_1/launch_1.c b/keyboards/system76/launch_1/launch_1.c
index 3a4c4749c6..2cff70076e 100644
--- a/keyboards/system76/launch_1/launch_1.c
+++ b/keyboards/system76/launch_1/launch_1.c
@@ -21,6 +21,59 @@
#include "usb_mux.h"
// clang-format off
+#ifdef RGB_MATRIX_ENABLE
+// LEDs by index
+// 0 1 2 3 4 5 6 7 8 9
+// 00 LM4 LL4 LK4 LJ4 LI4 LH4 LG4 LF4 LE4 LD4
+// 10 LC4 LB4 LA4 LA5 LB5 LC5 LD5 LE5 LG5 LH5
+// 20 LI5 LJ5 LK5 LL5 LM5 LO3 LM3 LL3 LK3 LJ3
+// 30 LI3 LH3 LG3 LF3 LE3 LD3 LC3 LB3 LA3 LA2
+// 40 LB2 LC2 LD2 LE2 LF2 LG2 LH2 LI2 LJ2 LK2
+// 50 LL2 LM2 LN2 LO2 LO1 LN1 LM1 LL1 LK1 LJ1
+// 60 LI1 LH1 LG1 LF1 LE1 LD1 LC1 LB1 LA1 LA0
+// 70 LB0 LC0 LD0 LE0 LF0 LG0 LH0 LI0 LJ0 LK0
+// 80 LL0 LM0 LN0 LO0
+led_config_t g_led_config = { {
+ // Key matrix to LED index
+/* A B C D E F G H I J K L M N O */
+/* 0 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, */
+/* 1 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, */
+/* 2 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, */
+/* 3 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, */
+/* 4 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, */
+/* 5 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24 */
+ { 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82 },
+ { 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55 },
+ { 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52 },
+ { 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 83 },
+ { 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 54 },
+ { 13, 14, 15, 16, 17, 25, 18, 19, 20, 21, 22, 23, 24, 53 },
+}, {
+ // LED index to physical position (see leds.sh in `launch' repo)
+/* 00 */ {209, 51}, {190, 51}, {171, 51}, {156, 51}, {140, 51}, {125, 51}, {110, 51}, {95, 51}, {80, 51}, {65, 51},
+/* 10 */ {49, 51}, {34, 51}, {11, 51}, {8, 64}, {27, 64}, {42, 64}, {57, 64}, {80, 64}, {110, 64}, {133, 64},
+/* 20 */ {148, 64}, {167, 64}, {194, 64}, {209, 64}, {224, 64}, {224, 38}, {197, 38}, {178, 38}, {163, 38}, {148, 38},
+/* 30 */ {133, 38}, {118, 38}, {103, 38}, {87, 38}, {72, 38}, {57, 38}, {42, 38}, {27, 38}, {8, 38}, {4, 26},
+/* 40 */ {23, 26}, {38, 26}, {53, 26}, {68, 26}, {84, 26}, {99, 26}, {114, 26}, {129, 26}, {144, 26}, {159, 26},
+/* 50 */ {175, 26}, {190, 26}, {205, 26}, {224, 26}, {224, 13}, {201, 13}, {182, 13}, {167, 13}, {152, 13}, {137, 13},
+/* 60 */ {121, 13}, {106, 13}, {91, 13}, {76, 13}, {61, 13}, {46, 13}, {30, 13}, {15, 13}, {0, 13}, {0, 0},
+/* 70 */ {15, 0}, {30, 0}, {46, 0}, {61, 0}, {76, 0}, {91, 0}, {106, 0}, {121, 0}, {137, 0}, {152, 0},
+/* 80 */ {167, 0}, {182, 0}, {201, 0}, {224, 0}
+}, {
+ // LED index to flags (set all to LED_FLAG_KEYLIGHT)
+ /* 0 1 2 3 4 5 6 7 8 9 */
+/* 00 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+/* 10 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+/* 20 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+/* 30 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+/* 40 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+/* 50 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+/* 60 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+/* 70 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+/* 80 */ 4, 4, 4, 4
+} };
+#endif // RGB_MATRIX_ENABLE
+
bool eeprom_is_valid(void) {
return (
eeprom_read_word(((void *)EEPROM_MAGIC_ADDR)) == EEPROM_MAGIC &&
diff --git a/keyboards/teleport/native/ansi/ansi.c b/keyboards/teleport/native/ansi/ansi.c
new file mode 100644
index 0000000000..9c4ea99f40
--- /dev/null
+++ b/keyboards/teleport/native/ansi/ansi.c
@@ -0,0 +1,51 @@
+/* Copyright 2021 Moritz Plattner
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index, LED 61 omitted on ANSI
+ { 0, 2, 4, 6, 8, 10, 12, 14 },
+ { 1, 3, 5, 7, 9, 11, 13, 15 },
+ { 16, 18, 20, 22, 24, 26, 28, NO_LED },
+ { 17, 19, 21, 23, 25, 27, 29, 30 },
+ { 31, 32, 34, 36, 38, 40, 42, 44 },
+ { NO_LED, 33, 35, 37, 39, 41, 43, 45 },
+ { 46, 48, 50, 52, 54, 56, NO_LED, 58 },
+ { 47, 49, 51, 53, 55, 57, NO_LED, 59 },
+ { 60, 62, 64, 66, 68, 70, NO_LED, 73 },
+ { NO_LED, 63, 65, 67, 69, 71, 72, 74 },
+ { 75, 78, NO_LED, NO_LED, NO_LED, 79, 81, 83 },
+ { 76, 77, NO_LED, NO_LED, NO_LED, 80, 82, 84 }
+}, {
+ // LED Index to Physical Position, the LED at { 0,0 } in row 5 is there to catch a non-existing LED on ANSI
+ { 0,0 }, { 15,0 }, { 30,0 }, { 45,0 }, { 60,0 }, { 75,0 }, { 90,0 }, {105,0 }, {119,0 }, {134,0 }, {149,0 }, {164,0 }, {179,0 }, {194,0 }, {209,0 }, {224,0 },
+ { 0,13 }, { 15,13 }, { 30,13 }, { 45,13 }, { 60,13 }, { 75,13 }, { 90,13 }, {105,13 }, {119,13 }, {134,13 }, {149,13 }, {164,13 }, {179,13 }, {202,13 }, {224,13 },
+ { 4,26 }, { 22,26 }, { 37,26 }, { 52,26 }, { 67,26 }, { 82,26 }, { 97,26 }, {112,26 }, {127,26 }, {142,26 }, {157,26 }, {172,26 }, {187,26 }, {205,26 }, {224,26 },
+ { 6,38 }, { 26,38 }, { 41,38 }, { 56,38 }, { 71,38 }, { 86,38 }, {101,38 }, {116,38 }, {131,38 }, {146,38 }, {161,38 }, {175,38 }, {200,38 }, {224,38 },
+ { 9,51 }, { 0,0 }, { 34,51 }, { 49,51 }, { 63,51 }, { 78,51 }, { 93,51 }, {108,51 }, {123,51 }, {138,51 }, {153,51 }, {168,51 }, {189,51 }, {209,51 }, {224,51 },
+ { 2,64 }, { 21,64 }, { 39,64 }, { 95,64 }, {149,64 }, {164,64 }, {179,64 }, {194,64 }, {209,64 }, {224,64 }
+}, {
+ // LED Index to Flag, the 0 flag in row 5 is there to catch a non-existing LED on ANSI
+ 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4,12, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 9, 12,12,12, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 1,
+ 1, 9, 1, 4, 1, 1, 1, 4, 4, 4,
+} };
+#endif
diff --git a/keyboards/teleport/native/ansi/keyboard.json b/keyboards/teleport/native/ansi/keyboard.json
index 68dddfad55..30a420517e 100644
--- a/keyboards/teleport/native/ansi/keyboard.json
+++ b/keyboards/teleport/native/ansi/keyboard.json
@@ -2,95 +2,6 @@
"usb": {
"pid": "0x0003"
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 30, "y": 0, "flags": 4},
- {"matrix": [1, 1], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 60, "y": 0, "flags": 4},
- {"matrix": [1, 2], "x": 75, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 90, "y": 0, "flags": 1},
- {"matrix": [1, 3], "x": 105, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 119, "y": 0, "flags": 1},
- {"matrix": [1, 4], "x": 134, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 149, "y": 0, "flags": 4},
- {"matrix": [1, 5], "x": 164, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 179, "y": 0, "flags": 4},
- {"matrix": [1, 6], "x": 194, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 209, "y": 0, "flags": 1},
- {"matrix": [1, 7], "x": 224, "y": 0, "flags": 1},
- {"matrix": [2, 0], "x": 0, "y": 13, "flags": 4},
- {"matrix": [3, 0], "x": 15, "y": 13, "flags": 4},
- {"matrix": [2, 1], "x": 30, "y": 13, "flags": 4},
- {"matrix": [3, 1], "x": 45, "y": 13, "flags": 4},
- {"matrix": [2, 2], "x": 60, "y": 13, "flags": 4},
- {"matrix": [3, 2], "x": 75, "y": 13, "flags": 4},
- {"matrix": [2, 3], "x": 90, "y": 13, "flags": 4},
- {"matrix": [3, 3], "x": 105, "y": 13, "flags": 4},
- {"matrix": [2, 4], "x": 119, "y": 13, "flags": 4},
- {"matrix": [3, 4], "x": 134, "y": 13, "flags": 4},
- {"matrix": [2, 5], "x": 149, "y": 13, "flags": 4},
- {"matrix": [3, 5], "x": 164, "y": 13, "flags": 4},
- {"matrix": [2, 6], "x": 179, "y": 13, "flags": 4},
- {"matrix": [3, 6], "x": 202, "y": 13, "flags": 1},
- {"matrix": [3, 7], "x": 224, "y": 13, "flags": 1},
- {"matrix": [4, 0], "x": 4, "y": 26, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 26, "flags": 4},
- {"matrix": [5, 1], "x": 37, "y": 26, "flags": 12},
- {"matrix": [4, 2], "x": 52, "y": 26, "flags": 4},
- {"matrix": [5, 2], "x": 67, "y": 26, "flags": 4},
- {"matrix": [4, 3], "x": 82, "y": 26, "flags": 4},
- {"matrix": [5, 3], "x": 97, "y": 26, "flags": 4},
- {"matrix": [4, 4], "x": 112, "y": 26, "flags": 4},
- {"matrix": [5, 4], "x": 127, "y": 26, "flags": 4},
- {"matrix": [4, 5], "x": 142, "y": 26, "flags": 4},
- {"matrix": [5, 5], "x": 157, "y": 26, "flags": 4},
- {"matrix": [4, 6], "x": 172, "y": 26, "flags": 4},
- {"matrix": [5, 6], "x": 187, "y": 26, "flags": 4},
- {"matrix": [4, 7], "x": 205, "y": 26, "flags": 1},
- {"matrix": [5, 7], "x": 224, "y": 26, "flags": 1},
- {"matrix": [6, 0], "x": 6, "y": 38, "flags": 9},
- {"matrix": [7, 0], "x": 26, "y": 38, "flags": 12},
- {"matrix": [6, 1], "x": 41, "y": 38, "flags": 12},
- {"matrix": [7, 1], "x": 56, "y": 38, "flags": 12},
- {"matrix": [6, 2], "x": 71, "y": 38, "flags": 4},
- {"matrix": [7, 2], "x": 86, "y": 38, "flags": 4},
- {"matrix": [6, 3], "x": 101, "y": 38, "flags": 4},
- {"matrix": [7, 3], "x": 116, "y": 38, "flags": 4},
- {"matrix": [6, 4], "x": 131, "y": 38, "flags": 4},
- {"matrix": [7, 4], "x": 146, "y": 38, "flags": 4},
- {"matrix": [6, 5], "x": 161, "y": 38, "flags": 4},
- {"matrix": [7, 5], "x": 175, "y": 38, "flags": 4},
- {"matrix": [6, 7], "x": 200, "y": 38, "flags": 1},
- {"matrix": [7, 7], "x": 224, "y": 38, "flags": 1},
- {"matrix": [8, 0], "x": 9, "y": 51, "flags": 1},
- {"x": 0, "y": 0, "flags": 0},
- {"matrix": [8, 1], "x": 34, "y": 51, "flags": 4},
- {"matrix": [9, 1], "x": 49, "y": 51, "flags": 4},
- {"matrix": [8, 2], "x": 63, "y": 51, "flags": 4},
- {"matrix": [9, 2], "x": 78, "y": 51, "flags": 4},
- {"matrix": [8, 3], "x": 93, "y": 51, "flags": 4},
- {"matrix": [9, 3], "x": 108, "y": 51, "flags": 4},
- {"matrix": [8, 4], "x": 123, "y": 51, "flags": 4},
- {"matrix": [9, 4], "x": 138, "y": 51, "flags": 4},
- {"matrix": [8, 5], "x": 153, "y": 51, "flags": 4},
- {"matrix": [9, 5], "x": 168, "y": 51, "flags": 4},
- {"matrix": [9, 6], "x": 189, "y": 51, "flags": 1},
- {"matrix": [8, 7], "x": 209, "y": 51, "flags": 4},
- {"matrix": [9, 7], "x": 224, "y": 51, "flags": 1},
- {"matrix": [10, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [11, 0], "x": 21, "y": 64, "flags": 9},
- {"matrix": [11, 1], "x": 39, "y": 64, "flags": 1},
- {"matrix": [10, 1], "x": 95, "y": 64, "flags": 4},
- {"matrix": [10, 5], "x": 149, "y": 64, "flags": 1},
- {"matrix": [11, 5], "x": 164, "y": 64, "flags": 1},
- {"matrix": [10, 6], "x": 179, "y": 64, "flags": 1},
- {"matrix": [11, 6], "x": 194, "y": 64, "flags": 4},
- {"matrix": [10, 7], "x": 209, "y": 64, "flags": 4},
- {"matrix": [11, 7], "x": 224, "y": 64, "flags": 4}
- ]
- },
"community_layouts": ["75_ansi"],
"layouts": {
"LAYOUT_75_ansi": {
diff --git a/keyboards/teleport/native/iso/iso.c b/keyboards/teleport/native/iso/iso.c
new file mode 100644
index 0000000000..5acbffe8f9
--- /dev/null
+++ b/keyboards/teleport/native/iso/iso.c
@@ -0,0 +1,51 @@
+/* Copyright 2021 Moritz Plattner
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 0, 2, 4, 6, 8, 10, 12, 14 },
+ { 1, 3, 5, 7, 9, 11, 13, 15 },
+ { 16, 18, 20, 22, 24, 26, 28, NO_LED },
+ { 17, 19, 21, 23, 25, 27, 29, 30 },
+ { 31, 32, 34, 36, 38, 40, 42, 44 },
+ { NO_LED, 33, 35, 37, 39, 41, 43, 45 },
+ { 46, 48, 50, 52, 54, 56, NO_LED, 58 },
+ { 47, 49, 51, 53, 55, 57, NO_LED, 59 },
+ { 60, 62, 64, 66, 68, 70, NO_LED, 73 },
+ { 61, 63, 65, 67, 69, 71, 72, 74 },
+ { 75, 78, NO_LED, NO_LED, NO_LED, 79, 81, 83 },
+ { 76, 77, NO_LED, NO_LED, NO_LED, 80, 82, 84 }
+}, {
+ // LED Index to Physical Position
+ { 0,0 }, { 15,0 }, { 30,0 }, { 45,0 }, { 60,0 }, { 75,0 }, { 90,0 }, {105,0 }, {119,0 }, {134,0 }, {149,0 }, {164,0 }, {179,0 }, {194,0 }, {209,0 }, {224,0 },
+ { 0,13 }, { 15,13 }, { 30,13 }, { 45,13 }, { 60,13 }, { 75,13 }, { 90,13 }, {105,13 }, {119,13 }, {134,13 }, {149,13 }, {164,13 }, {179,13 }, {202,13 }, {224,13 },
+ { 4,26 }, { 22,26 }, { 37,26 }, { 52,26 }, { 67,26 }, { 82,26 }, { 97,26 }, {112,26 }, {127,26 }, {142,26 }, {157,26 }, {172,26 }, {187,26 }, {207,32 }, {224,26 },
+ { 6,38 }, { 26,38 }, { 41,38 }, { 56,38 }, { 71,38 }, { 86,38 }, {101,38 }, {116,38 }, {131,38 }, {146,38 }, {161,38 }, {175,38 }, {190,38 }, {224,38 },
+ { 2,51 }, { 19,51 }, { 34,51 }, { 49,51 }, { 63,51 }, { 78,51 }, { 93,51 }, {108,51 }, {123,51 }, {138,51 }, {153,51 }, {168,51 }, {189,51 }, {209,51 }, {224,51 },
+ { 2,64 }, { 21,64 }, { 39,64 }, { 95,64 }, {149,64 }, {164,64 }, {179,64 }, {194,64 }, {209,64 }, {224,64 }
+}, {
+ // LED Index to Flag
+ 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4,12, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 9, 12,12,12, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 1,
+ 1, 9, 1, 4, 1, 1, 1, 4, 4, 4,
+} };
+#endif
diff --git a/keyboards/teleport/native/iso/keyboard.json b/keyboards/teleport/native/iso/keyboard.json
index 03a0d811b0..57c5cdb308 100644
--- a/keyboards/teleport/native/iso/keyboard.json
+++ b/keyboards/teleport/native/iso/keyboard.json
@@ -2,95 +2,6 @@
"usb": {
"pid": "0x0002"
},
- "rgb_matrix": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
- {"matrix": [1, 0], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 30, "y": 0, "flags": 4},
- {"matrix": [1, 1], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 60, "y": 0, "flags": 4},
- {"matrix": [1, 2], "x": 75, "y": 0, "flags": 1},
- {"matrix": [0, 3], "x": 90, "y": 0, "flags": 1},
- {"matrix": [1, 3], "x": 105, "y": 0, "flags": 1},
- {"matrix": [0, 4], "x": 119, "y": 0, "flags": 1},
- {"matrix": [1, 4], "x": 134, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 149, "y": 0, "flags": 4},
- {"matrix": [1, 5], "x": 164, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 179, "y": 0, "flags": 4},
- {"matrix": [1, 6], "x": 194, "y": 0, "flags": 1},
- {"matrix": [0, 7], "x": 209, "y": 0, "flags": 1},
- {"matrix": [1, 7], "x": 224, "y": 0, "flags": 1},
- {"matrix": [2, 0], "x": 0, "y": 13, "flags": 4},
- {"matrix": [3, 0], "x": 15, "y": 13, "flags": 4},
- {"matrix": [2, 1], "x": 30, "y": 13, "flags": 4},
- {"matrix": [3, 1], "x": 45, "y": 13, "flags": 4},
- {"matrix": [2, 2], "x": 60, "y": 13, "flags": 4},
- {"matrix": [3, 2], "x": 75, "y": 13, "flags": 4},
- {"matrix": [2, 3], "x": 90, "y": 13, "flags": 4},
- {"matrix": [3, 3], "x": 105, "y": 13, "flags": 4},
- {"matrix": [2, 4], "x": 119, "y": 13, "flags": 4},
- {"matrix": [3, 4], "x": 134, "y": 13, "flags": 4},
- {"matrix": [2, 5], "x": 149, "y": 13, "flags": 4},
- {"matrix": [3, 5], "x": 164, "y": 13, "flags": 4},
- {"matrix": [2, 6], "x": 179, "y": 13, "flags": 4},
- {"matrix": [3, 6], "x": 202, "y": 13, "flags": 1},
- {"matrix": [3, 7], "x": 224, "y": 13, "flags": 1},
- {"matrix": [4, 0], "x": 4, "y": 26, "flags": 1},
- {"matrix": [4, 1], "x": 22, "y": 26, "flags": 4},
- {"matrix": [5, 1], "x": 37, "y": 26, "flags": 12},
- {"matrix": [4, 2], "x": 52, "y": 26, "flags": 4},
- {"matrix": [5, 2], "x": 67, "y": 26, "flags": 4},
- {"matrix": [4, 3], "x": 82, "y": 26, "flags": 4},
- {"matrix": [5, 3], "x": 97, "y": 26, "flags": 4},
- {"matrix": [4, 4], "x": 112, "y": 26, "flags": 4},
- {"matrix": [5, 4], "x": 127, "y": 26, "flags": 4},
- {"matrix": [4, 5], "x": 142, "y": 26, "flags": 4},
- {"matrix": [5, 5], "x": 157, "y": 26, "flags": 4},
- {"matrix": [4, 6], "x": 172, "y": 26, "flags": 4},
- {"matrix": [5, 6], "x": 187, "y": 26, "flags": 4},
- {"matrix": [4, 7], "x": 207, "y": 32, "flags": 1},
- {"matrix": [5, 7], "x": 224, "y": 26, "flags": 1},
- {"matrix": [6, 0], "x": 6, "y": 38, "flags": 9},
- {"matrix": [7, 0], "x": 26, "y": 38, "flags": 12},
- {"matrix": [6, 1], "x": 41, "y": 38, "flags": 12},
- {"matrix": [7, 1], "x": 56, "y": 38, "flags": 12},
- {"matrix": [6, 2], "x": 71, "y": 38, "flags": 4},
- {"matrix": [7, 2], "x": 86, "y": 38, "flags": 4},
- {"matrix": [6, 3], "x": 101, "y": 38, "flags": 4},
- {"matrix": [7, 3], "x": 116, "y": 38, "flags": 4},
- {"matrix": [6, 4], "x": 131, "y": 38, "flags": 4},
- {"matrix": [7, 4], "x": 146, "y": 38, "flags": 4},
- {"matrix": [6, 5], "x": 161, "y": 38, "flags": 4},
- {"matrix": [7, 5], "x": 175, "y": 38, "flags": 4},
- {"matrix": [6, 7], "x": 190, "y": 38, "flags": 4},
- {"matrix": [7, 7], "x": 224, "y": 38, "flags": 1},
- {"matrix": [8, 0], "x": 2, "y": 51, "flags": 1},
- {"matrix": [9, 0], "x": 19, "y": 51, "flags": 4},
- {"matrix": [8, 1], "x": 34, "y": 51, "flags": 4},
- {"matrix": [9, 1], "x": 49, "y": 51, "flags": 4},
- {"matrix": [8, 2], "x": 63, "y": 51, "flags": 4},
- {"matrix": [9, 2], "x": 78, "y": 51, "flags": 4},
- {"matrix": [8, 3], "x": 93, "y": 51, "flags": 4},
- {"matrix": [9, 3], "x": 108, "y": 51, "flags": 4},
- {"matrix": [8, 4], "x": 123, "y": 51, "flags": 4},
- {"matrix": [9, 4], "x": 138, "y": 51, "flags": 4},
- {"matrix": [8, 5], "x": 153, "y": 51, "flags": 4},
- {"matrix": [9, 5], "x": 168, "y": 51, "flags": 4},
- {"matrix": [9, 6], "x": 189, "y": 51, "flags": 1},
- {"matrix": [8, 7], "x": 209, "y": 51, "flags": 4},
- {"matrix": [9, 7], "x": 224, "y": 51, "flags": 1},
- {"matrix": [10, 0], "x": 2, "y": 64, "flags": 1},
- {"matrix": [11, 0], "x": 21, "y": 64, "flags": 9},
- {"matrix": [11, 1], "x": 39, "y": 64, "flags": 1},
- {"matrix": [10, 1], "x": 95, "y": 64, "flags": 4},
- {"matrix": [10, 5], "x": 149, "y": 64, "flags": 1},
- {"matrix": [11, 5], "x": 164, "y": 64, "flags": 1},
- {"matrix": [10, 6], "x": 179, "y": 64, "flags": 1},
- {"matrix": [11, 6], "x": 194, "y": 64, "flags": 4},
- {"matrix": [10, 7], "x": 209, "y": 64, "flags": 4},
- {"matrix": [11, 7], "x": 224, "y": 64, "flags": 4}
- ]
- },
"community_layouts": ["75_iso"],
"layouts": {
"LAYOUT_75_iso": {
diff --git a/keyboards/tkc/portico/keyboard.json b/keyboards/tkc/portico/keyboard.json
index 52ad417a02..49efe0a942 100644
--- a/keyboards/tkc/portico/keyboard.json
+++ b/keyboards/tkc/portico/keyboard.json
@@ -44,75 +44,6 @@
"typing_heatmap": true
},
"driver": "is31fl3731",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 201, "y": 32, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4},
- {"matrix": [3, 0], "x": 9, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 79, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 94, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 109, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 124, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 139, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 154, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 169, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 189, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 4},
- {"matrix": [4, 1], "x": 21, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 39, "y": 64, "flags": 4},
- {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 152, "y": 64, "flags": 4},
- {"matrix": [4, 11], "x": 171, "y": 64, "flags": 4},
- {"matrix": [4, 12], "x": 195, "y": 64, "flags": 4},
- {"matrix": [4, 13], "x": 210, "y": 64, "flags": 4},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4}
- ],
"led_flush_limit": 26,
"led_process_limit": 4,
"max_brightness": 200,
diff --git a/keyboards/tkc/portico/portico.c b/keyboards/tkc/portico/portico.c
index e3283e1571..bd60df13e2 100644
--- a/keyboards/tkc/portico/portico.c
+++ b/keyboards/tkc/portico/portico.c
@@ -99,6 +99,28 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
#endif
#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = {
+ {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, NO_LED, 43 },
+ { 44, NO_LED, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 },
+ { 58, 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66 }
+ }, {
+ { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 203, 0 }, { 224, 0 },
+ { 4, 16 }, { 23, 16 }, { 38, 16 }, { 53, 16 }, { 68, 16 }, { 83, 16 }, { 98, 16 }, { 113, 16 }, { 128, 16 }, { 143, 16 }, { 158, 16 }, { 173, 16 }, { 188, 16 }, { 206, 16 }, { 224, 16 },
+ { 6, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 201, 32 }, { 224, 32 },
+ { 9, 48 }, { 34, 48 }, { 49, 48 }, { 64, 48 }, { 79, 48 }, { 94, 48 }, { 109, 48 }, { 124, 48 }, { 139, 48 }, { 154, 48 }, { 169, 48 }, { 189, 48 }, { 210, 48 }, { 224, 48 },
+ { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 152, 64 }, { 171, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 }
+ }, {
+ 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, 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, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4
+ }
+};
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/tkc/portico68v2/keyboard.json b/keyboards/tkc/portico68v2/keyboard.json
index 0e7ccac963..087713f3a2 100644
--- a/keyboards/tkc/portico68v2/keyboard.json
+++ b/keyboards/tkc/portico68v2/keyboard.json
@@ -53,90 +53,6 @@
},
"center_point": [116, 32],
"driver": "is31fl3741",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 6, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 12], "x": 201, "y": 32, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4},
- {"matrix": [3, 0], "x": 9, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 79, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 94, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 109, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 124, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 139, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 154, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 169, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 189, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4},
- {"matrix": [4, 0], "x": 2, "y": 64, "flags": 4},
- {"matrix": [4, 1], "x": 21, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 39, "y": 64, "flags": 4},
- {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 152, "y": 64, "flags": 4},
- {"matrix": [4, 11], "x": 171, "y": 64, "flags": 4},
- {"matrix": [4, 12], "x": 195, "y": 64, "flags": 4},
- {"matrix": [4, 13], "x": 210, "y": 64, "flags": 4},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4},
- {"x": 0, "y": 0, "flags": 2},
- {"x": 180, "y": 0, "flags": 2},
- {"x": 224, "y": 0, "flags": 2},
- {"x": 200, "y": 64, "flags": 2},
- {"x": 224, "y": 64, "flags": 2},
- {"x": 224, "y": 32, "flags": 2},
- {"x": 44, "y": 0, "flags": 2},
- {"x": 88, "y": 0, "flags": 2},
- {"x": 136, "y": 0, "flags": 2},
- {"x": 0, "y": 32, "flags": 2},
- {"x": 0, "y": 64, "flags": 2},
- {"x": 24, "y": 64, "flags": 2},
- {"x": 78, "y": 64, "flags": 2},
- {"x": 112, "y": 64, "flags": 2},
- {"x": 146, "y": 64, "flags": 2}
- ],
"max_brightness": 175,
"sleep": true
},
diff --git a/keyboards/tkc/portico68v2/portico68v2.c b/keyboards/tkc/portico68v2/portico68v2.c
index e746bda7e6..0f3c557b2c 100644
--- a/keyboards/tkc/portico68v2/portico68v2.c
+++ b/keyboards/tkc/portico68v2/portico68v2.c
@@ -104,6 +104,30 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0,SW6_CS39,SW6_CS38,SW6_CS37}, /* RGB82 */
};
+led_config_t g_led_config = {
+ {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, NO_LED, 43 },
+ { 44, NO_LED, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 },
+ { 58, 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66 }
+ }, {
+ { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 203, 0 }, { 224, 0 },
+ { 4, 16 }, { 23, 16 }, { 38, 16 }, { 53, 16 }, { 68, 16 }, { 83, 16 }, { 98, 16 }, { 113, 16 }, { 128, 16 }, { 143, 16 }, { 158, 16 }, { 173, 16 }, { 188, 16 }, { 206, 16 }, { 224, 16 },
+ { 6, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 201, 32 }, { 224, 32 },
+ { 9, 48 }, { 34, 48 }, { 49, 48 }, { 64, 48 }, { 79, 48 }, { 94, 48 }, { 109, 48 }, { 124, 48 }, { 139, 48 }, { 154, 48 }, { 169, 48 }, { 189, 48 }, { 210, 48 }, { 224, 48 },
+ { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 152, 64 }, { 171, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 },
+ {0,0},{180,0},{224,0},{200,64},{224,64},{224,32},{44,0},{88,0},{136,0},{0,32},{0,64},{24,64},{78,64},{112,64},{146,64}
+}, {
+ 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, 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, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
+ }
+};
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/tkc/portico75/keyboard.json b/keyboards/tkc/portico75/keyboard.json
index 63f5b59f43..1e84f25ebe 100644
--- a/keyboards/tkc/portico75/keyboard.json
+++ b/keyboards/tkc/portico75/keyboard.json
@@ -42,106 +42,6 @@
"hue_wave": true
},
"driver": "is31fl3741",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 18, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 33, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 62, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 81, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 110, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 125, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 143, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 158, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 173, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 187, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 205, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 4},
- {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4},
- {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4},
- {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4},
- {"matrix": [1, 5], "x": 74, "y": 15, "flags": 4},
- {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4},
- {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4},
- {"matrix": [1, 8], "x": 118, "y": 15, "flags": 4},
- {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4},
- {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4},
- {"matrix": [1, 11], "x": 162, "y": 15, "flags": 4},
- {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4},
- {"matrix": [1, 13], "x": 198, "y": 15, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 15, "flags": 4},
- {"matrix": [2, 0], "x": 4, "y": 26, "flags": 4},
- {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4},
- {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4},
- {"matrix": [2, 3], "x": 51, "y": 26, "flags": 4},
- {"matrix": [2, 4], "x": 66, "y": 26, "flags": 4},
- {"matrix": [2, 5], "x": 81, "y": 26, "flags": 4},
- {"matrix": [2, 6], "x": 96, "y": 26, "flags": 4},
- {"matrix": [2, 7], "x": 110, "y": 26, "flags": 4},
- {"matrix": [2, 8], "x": 125, "y": 26, "flags": 4},
- {"matrix": [2, 9], "x": 140, "y": 26, "flags": 4},
- {"matrix": [2, 10], "x": 154, "y": 26, "flags": 4},
- {"matrix": [2, 11], "x": 169, "y": 26, "flags": 4},
- {"matrix": [2, 12], "x": 183, "y": 26, "flags": 4},
- {"matrix": [2, 13], "x": 202, "y": 26, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 26, "flags": 4},
- {"matrix": [3, 0], "x": 5, "y": 38, "flags": 4},
- {"matrix": [3, 1], "x": 25, "y": 38, "flags": 4},
- {"matrix": [3, 2], "x": 40, "y": 38, "flags": 4},
- {"matrix": [3, 3], "x": 54, "y": 38, "flags": 4},
- {"matrix": [3, 4], "x": 69, "y": 38, "flags": 4},
- {"matrix": [3, 5], "x": 84, "y": 38, "flags": 4},
- {"matrix": [3, 6], "x": 98, "y": 38, "flags": 4},
- {"matrix": [3, 7], "x": 113, "y": 38, "flags": 4},
- {"matrix": [3, 8], "x": 128, "y": 38, "flags": 4},
- {"matrix": [3, 9], "x": 143, "y": 38, "flags": 4},
- {"matrix": [3, 10], "x": 157, "y": 38, "flags": 4},
- {"matrix": [3, 11], "x": 172, "y": 38, "flags": 4},
- {"matrix": [3, 12], "x": 197, "y": 38, "flags": 4},
- {"matrix": [4, 0], "x": 9, "y": 49, "flags": 4},
- {"matrix": [4, 1], "x": 33, "y": 49, "flags": 4},
- {"matrix": [4, 2], "x": 48, "y": 49, "flags": 4},
- {"matrix": [4, 3], "x": 62, "y": 49, "flags": 4},
- {"matrix": [4, 4], "x": 77, "y": 49, "flags": 4},
- {"matrix": [4, 5], "x": 92, "y": 49, "flags": 4},
- {"matrix": [4, 6], "x": 107, "y": 49, "flags": 4},
- {"matrix": [4, 7], "x": 121, "y": 49, "flags": 4},
- {"matrix": [4, 8], "x": 136, "y": 49, "flags": 4},
- {"matrix": [4, 9], "x": 151, "y": 49, "flags": 4},
- {"matrix": [4, 10], "x": 165, "y": 49, "flags": 4},
- {"matrix": [4, 11], "x": 186, "y": 49, "flags": 4},
- {"matrix": [4, 12], "x": 209, "y": 52, "flags": 4},
- {"matrix": [5, 0], "x": 2, "y": 61, "flags": 4},
- {"matrix": [5, 1], "x": 20, "y": 61, "flags": 4},
- {"matrix": [5, 2], "x": 39, "y": 61, "flags": 4},
- {"matrix": [5, 5], "x": 94, "y": 61, "flags": 4},
- {"matrix": [5, 9], "x": 151, "y": 61, "flags": 4},
- {"matrix": [5, 10], "x": 173, "y": 61, "flags": 4},
- {"matrix": [5, 11], "x": 195, "y": 64, "flags": 4},
- {"matrix": [5, 12], "x": 209, "y": 64, "flags": 4},
- {"matrix": [5, 13], "x": 224, "y": 64, "flags": 4},
- {"x": 2, "y": 0, "flags": 2},
- {"x": 46, "y": 0, "flags": 2},
- {"x": 90, "y": 0, "flags": 2},
- {"x": 134, "y": 0, "flags": 2},
- {"x": 178, "y": 0, "flags": 2},
- {"x": 222, "y": 0, "flags": 2},
- {"x": 224, "y": 2, "flags": 2},
- {"x": 224, "y": 32, "flags": 2},
- {"x": 224, "y": 62, "flags": 2},
- {"x": 2, "y": 64, "flags": 2},
- {"x": 46, "y": 64, "flags": 2},
- {"x": 90, "y": 64, "flags": 2},
- {"x": 134, "y": 64, "flags": 2},
- {"x": 178, "y": 64, "flags": 2},
- {"x": 222, "y": 64, "flags": 2},
- {"x": 0, "y": 2, "flags": 2},
- {"x": 0, "y": 32, "flags": 2},
- {"x": 0, "y": 62, "flags": 2}
- ],
"led_flush_limit": 26,
"led_process_limit": 4,
"max_brightness": 200,
diff --git a/keyboards/tkc/portico75/portico75.c b/keyboards/tkc/portico75/portico75.c
index 9552b853c5..cd6dafe31a 100644
--- a/keyboards/tkc/portico75/portico75.c
+++ b/keyboards/tkc/portico75/portico75.c
@@ -142,6 +142,31 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
#endif
#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14},
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29},
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44},
+ { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, NO_LED, NO_LED},
+ { 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, NO_LED, NO_LED},
+ { 71, 72, 73, NO_LED, NO_LED, 74, NO_LED, NO_LED, NO_LED, 75, 76, 77, 78, 79, NO_LED},
+}, {
+ {0,0},{18,0},{33,0},{48,0},{62,0},{81,0},{96,0},{110,0},{125,0},{143,0},{158,0},{173,0},{187,0},{205,0},{224,0},
+ {0,15},{15,15},{29,15},{44,15},{59,15},{74,15},{88,15},{103,15},{118,15},{132,15},{147,15},{162,15},{176,15},{198,15},{224,15},
+ {4,26},{22,26},{37,26},{51,26},{66,26},{81,26},{96,26},{110,26},{125,26},{140,26},{154,26},{169,26},{183,26},{202,26},{224,26},
+ {5,38},{25,38},{40,38},{54,38},{69,38},{84,38},{98,38},{113,38},{128,38},{143,38},{157,38},{172,38},{197,38},
+ {9,49},{33,49},{48,49},{62,49},{77,49},{92,49},{107,49},{121,49},{136,49},{151,49},{165,49},{186,49},{209,52},
+ {2,61},{20,61},{39,61},{94,61},{151,61},{173,61},{195,64},{209,64},{224,64},
+ {2,0},{46,0},{90,0},{134,0},{178,0},{222,0},{224,2},{224,32},{224,62},{2,64},{46,64},{90,64},{134,64},{178,64},{222,64},{0,2},{0,32},{0,62},
+}, {
+ 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, 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, 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, 4, 4, 4, 4, 4,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+} };
+
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
diff --git a/keyboards/royal_kludge/rk61/config.h b/keyboards/trnthsn/tyson60/config.h
similarity index 78%
rename from keyboards/royal_kludge/rk61/config.h
rename to keyboards/trnthsn/tyson60/config.h
index 22c9d1d3e9..8ab8c1a85f 100644
--- a/keyboards/royal_kludge/rk61/config.h
+++ b/keyboards/trnthsn/tyson60/config.h
@@ -1,4 +1,4 @@
-// Copyright 2025 QMK
+// Copyright 2025 Tyson.Keebs
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
@@ -7,5 +7,3 @@
#define WS2812_SPI_MOSI_PAL_MODE 0
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
-
-#define CAPS_LOCK_LED_INDEX 40
diff --git a/keyboards/royal_kludge/rk61/halconf.h b/keyboards/trnthsn/tyson60/halconf.h
similarity index 78%
rename from keyboards/royal_kludge/rk61/halconf.h
rename to keyboards/trnthsn/tyson60/halconf.h
index b7fd8398a2..7056539285 100644
--- a/keyboards/royal_kludge/rk61/halconf.h
+++ b/keyboards/trnthsn/tyson60/halconf.h
@@ -1,9 +1,7 @@
-// Copyright 2025 QMK
+// Copyright 2025 Tyson.Keebs
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define HAL_USE_SPI TRUE
-
#include_next
-
diff --git a/keyboards/trnthsn/tyson60/info.json b/keyboards/trnthsn/tyson60/info.json
new file mode 100644
index 0000000000..6f4df15d99
--- /dev/null
+++ b/keyboards/trnthsn/tyson60/info.json
@@ -0,0 +1,114 @@
+{
+ "manufacturer": "Tyson.Keebs",
+ "keyboard_name": "Tyson60",
+ "maintainer": "trnthsn",
+ "diode_direction": "COL2ROW",
+ "features": {
+ "bootmagic": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgblight": true
+ },
+ "indicators": {
+ "caps_lock": "B4"
+ },
+ "matrix_pins": {
+ "cols": ["A10", "A9", "A8", "B14", "B12", "B10", "B1", "B0", "A15", "B5", "C15", "C14", "C13", "B9"],
+ "rows": ["B8", "B7", "B6", "B11", "A6"]
+ },
+ "rgblight": {
+ "animations": {
+ "alternating": true,
+ "breathing": true,
+ "christmas": true,
+ "knight": true,
+ "rainbow_mood": true,
+ "rainbow_swirl": true,
+ "snake": true,
+ "static_gradient": true,
+ "twinkle": true
+ },
+ "led_count": 30,
+ "sleep": true
+ },
+ "usb": {
+ "device_version": "0.0.1",
+ "pid": "0x5336",
+ "vid": "0x5453"
+ },
+ "ws2812": {
+ "driver": "spi",
+ "pin": "B15"
+ },
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1, "y": 0},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0},
+ {"matrix": [0, 5], "x": 5, "y": 0},
+ {"matrix": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [2, 12], "x": 13, "y": 0},
+ {"matrix": [0, 13], "x": 14, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [3, 1], "x": 1.25, "y": 3},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 12], "x": 13, "y": 3},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [4, 1], "x": 1.5, "y": 4, "w": 1},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 7], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 10], "x": 11, "y": 4},
+ {"matrix": [4, 11], "x": 12, "y": 4},
+ {"matrix": [4, 12], "x": 13, "y": 4},
+ {"matrix": [4, 13], "x": 14, "y": 4}
+ ]
+ }
+ }
+}
diff --git a/keyboards/trnthsn/tyson60/keymaps/default/keymap.c b/keyboards/trnthsn/tyson60/keymaps/default/keymap.c
new file mode 100644
index 0000000000..30786c4b60
--- /dev/null
+++ b/keyboards/trnthsn/tyson60/keymaps/default/keymap.c
@@ -0,0 +1,40 @@
+// Copyright 2025 Tyson.Keebs
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ // ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ // │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Bsp│
+ // ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
+ // │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │
+ // ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
+ // │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │
+ // ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤
+ // │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │Shift │↑ │/ │
+ // ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴──┬───┼───┼───┤
+ // │Ctrl │GUI│ Alt │ │Fn │← │↓ │→ │
+ // └─────┴───┴─────┴───────────────────────────┴───┴───┴───┴───┘
+
+ [0] = LAYOUT(
+ KC_ESC, 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_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_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_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT(
+ KC_GRV, 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_INS, KC_DEL,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ MO(2) , _______, _______, _______, _______, _______, _______, UG_TOGG, UG_NEXT, UG_VALD, UG_VALU, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [2] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______
+ )
+};
diff --git a/keyboards/royal_kludge/rk61/mcuconf.h b/keyboards/trnthsn/tyson60/mcuconf.h
similarity index 82%
rename from keyboards/royal_kludge/rk61/mcuconf.h
rename to keyboards/trnthsn/tyson60/mcuconf.h
index f459d17ee9..d131af9fdf 100644
--- a/keyboards/royal_kludge/rk61/mcuconf.h
+++ b/keyboards/trnthsn/tyson60/mcuconf.h
@@ -1,4 +1,4 @@
-// Copyright 2025 QMK
+// Copyright 2025 Tyson.Keebs
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
diff --git a/keyboards/exclusive/e7v2/readme.md b/keyboards/trnthsn/tyson60/readme.md
similarity index 65%
rename from keyboards/exclusive/e7v2/readme.md
rename to keyboards/trnthsn/tyson60/readme.md
index 77345ede70..d38c012aad 100644
--- a/keyboards/exclusive/e7v2/readme.md
+++ b/keyboards/trnthsn/tyson60/readme.md
@@ -1,20 +1,20 @@
-# E7-V2
+# Tyson60
-
+
-The second revision of a 75% keyboard made by Exclusive and run in a Geekhack group buy.
+Tyson60 PCB, 60% keyboard PCB.
-* Keyboard Maintainer: [AidanSmith.dev](https://github.com/Aidan-OS)
-* Hardware Supported: E7-V2 QMK Solder PCB
-* Hardware Availability: [Exclusive's Website](https://exclusive.run/collections/e7-v2)
+* Keyboard Maintainer: [Trnthsn](https://github.com/trnthsn)
+* Hardware Supported: STM32, Tyson60
+* Hardware Availability: [ThanhSon.Mech](https://www.facebook.com/ThanhSon.mech)
Make example for this keyboard (after setting up your build environment):
- make exclusive/e7v2:default
+ make trnthsn/tyson60/stm32f103:default
Flashing example for this keyboard:
- make exclusive/e7v2:default:flash
+ make trnthsn/tyson60/stm32f103:default:flash
See 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/trnthsn/tyson60/stm32f072/keyboard.json b/keyboards/trnthsn/tyson60/stm32f072/keyboard.json
new file mode 100644
index 0000000000..b5d728b1cd
--- /dev/null
+++ b/keyboards/trnthsn/tyson60/stm32f072/keyboard.json
@@ -0,0 +1,4 @@
+{
+ "processor": "STM32F072",
+ "bootloader": "stm32-dfu",
+}
diff --git a/keyboards/trnthsn/tyson60/stm32f103/keyboard.json b/keyboards/trnthsn/tyson60/stm32f103/keyboard.json
new file mode 100644
index 0000000000..5b2b6bc7d9
--- /dev/null
+++ b/keyboards/trnthsn/tyson60/stm32f103/keyboard.json
@@ -0,0 +1,4 @@
+{
+ "processor": "STM32F103",
+ "bootloader": "uf2boot",
+}
diff --git a/keyboards/ungodly/launch_pad/keyboard.json b/keyboards/ungodly/launch_pad/keyboard.json
index 2f5bc95aa6..50b6c2bcbf 100644
--- a/keyboards/ungodly/launch_pad/keyboard.json
+++ b/keyboards/ungodly/launch_pad/keyboard.json
@@ -33,30 +33,6 @@
"animation": "cycle_pinwheel"
},
"driver": "ws2812",
- "layout": [
- {"matrix": [4, 1], "x": 37, "y": 60, "flags": 4},
- {"matrix": [4, 2], "x": 148, "y": 60, "flags": 4},
- {"matrix": [3, 3], "x": 222, "y": 54, "flags": 4},
- {"matrix": [3, 2], "x": 148, "y": 45, "flags": 4},
- {"matrix": [3, 1], "x": 74, "y": 45, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 45, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 30, "flags": 4},
- {"matrix": [2, 1], "x": 74, "y": 30, "flags": 4},
- {"matrix": [2, 2], "x": 148, "y": 30, "flags": 4},
- {"matrix": [2, 3], "x": 222, "y": 30, "flags": 4},
- {"matrix": [1, 3], "x": 222, "y": 15, "flags": 4},
- {"matrix": [1, 2], "x": 148, "y": 15, "flags": 4},
- {"matrix": [1, 1], "x": 74, "y": 15, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 15, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 74, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 148, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 222, "y": 0, "flags": 4},
- {"x": 185, "y": 7, "flags": 2},
- {"x": 37, "y": 7, "flags": 2},
- {"x": 37, "y": 52, "flags": 2},
- {"x": 185, "y": 52, "flags": 2}
- ],
"max_brightness": 150,
"sat_steps": 8,
"val_steps": 8,
diff --git a/keyboards/ungodly/launch_pad/launch_pad.c b/keyboards/ungodly/launch_pad/launch_pad.c
new file mode 100644
index 0000000000..9803d8674f
--- /dev/null
+++ b/keyboards/ungodly/launch_pad/launch_pad.c
@@ -0,0 +1,44 @@
+/* Copyright 2020 Ungodly Design
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = { {
+ // Key Matrix to LED Index
+ { 14, 15, 16, 17 },
+ { 13, 12, 11, 10 },
+ { 6, 7, 8, 9 },
+ { 5, 4, 3, 2 },
+ {NO_LED, 0, 1, NO_LED }
+}, { // LED Index to Physical Position
+ { 37, 60 }, { 148, 60 }, // row 5
+ { 222, 54 }, { 148, 45 }, { 74, 45 }, { 0, 45 }, // row 4
+ { 0, 30 }, { 74, 30 }, { 148, 30 }, { 222, 30 }, // row 3
+ { 222, 15 }, { 148, 15 }, { 74, 15 }, { 0, 15 }, // row 2
+ { 0, 0 }, { 74, 0 }, { 148, 0 }, { 222, 0 }, // row 1
+ { 185, 7 }, { 37, 7 }, // top underglow
+ { 37, 52 }, { 185, 52 }, // bottom underglow
+}, {
+ // LED Index to Flag
+ 4, 4, // row 5
+ 4, 4, 4, 4, // row 4
+ 4, 4, 4, 4, // row 3
+ 4, 4, 4, 4, // row 2
+ 4, 4, 4, 4, // row 1
+ 2, 2,
+ 2, 2
+} };
+#endif
diff --git a/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/mcuconf.h b/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/mcuconf.h
deleted file mode 100644
index 0e89bead66..0000000000
--- a/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/mcuconf.h
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright 2025 QMK
-// SPDX-License-Identifier: GPL-2.0-or-later
-#pragma once
-
-#include_next
-
-#undef STM32_PLLM_VALUE
-#define STM32_PLLM_VALUE 8
-
-#undef STM32_PLLSAIM_VALUE
-#define STM32_PLLSAIM_VALUE 8
diff --git a/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/mcuconf.h b/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/mcuconf.h
deleted file mode 100644
index 0e89bead66..0000000000
--- a/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/mcuconf.h
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright 2025 QMK
-// SPDX-License-Identifier: GPL-2.0-or-later
-#pragma once
-
-#include_next
-
-#undef STM32_PLLM_VALUE
-#define STM32_PLLM_VALUE 8
-
-#undef STM32_PLLSAIM_VALUE
-#define STM32_PLLSAIM_VALUE 8
diff --git a/keyboards/unicomp/pc122/overnumpad_1xb/mcuconf.h b/keyboards/unicomp/pc122/overnumpad_1xb/mcuconf.h
deleted file mode 100644
index 0e89bead66..0000000000
--- a/keyboards/unicomp/pc122/overnumpad_1xb/mcuconf.h
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright 2025 QMK
-// SPDX-License-Identifier: GPL-2.0-or-later
-#pragma once
-
-#include_next
-
-#undef STM32_PLLM_VALUE
-#define STM32_PLLM_VALUE 8
-
-#undef STM32_PLLSAIM_VALUE
-#define STM32_PLLSAIM_VALUE 8
diff --git a/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/mcuconf.h b/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/mcuconf.h
deleted file mode 100644
index 0e89bead66..0000000000
--- a/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/mcuconf.h
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright 2025 QMK
-// SPDX-License-Identifier: GPL-2.0-or-later
-#pragma once
-
-#include_next
-
-#undef STM32_PLLM_VALUE
-#define STM32_PLLM_VALUE 8
-
-#undef STM32_PLLSAIM_VALUE
-#define STM32_PLLSAIM_VALUE 8
diff --git a/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/mcuconf.h b/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/mcuconf.h
deleted file mode 100644
index 0e89bead66..0000000000
--- a/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/mcuconf.h
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright 2025 QMK
-// SPDX-License-Identifier: GPL-2.0-or-later
-#pragma once
-
-#include_next
-
-#undef STM32_PLLM_VALUE
-#define STM32_PLLM_VALUE 8
-
-#undef STM32_PLLSAIM_VALUE
-#define STM32_PLLSAIM_VALUE 8
diff --git a/keyboards/vertex/t75/keyboard.json b/keyboards/vertex/t75/keyboard.json
index f67326afb8..824659e827 100644
--- a/keyboards/vertex/t75/keyboard.json
+++ b/keyboards/vertex/t75/keyboard.json
@@ -103,15 +103,15 @@
{"matrix": [4, 11], "x": 12.25, "y": 4, "w": 1.75},
{"matrix": [4, 12], "x": 14, "y": 4},
{"matrix": [4, 13], "x": 15, "y": 4},
- {"matrix": [5, 0], "x": 0, "y": 4, "w": 1.25},
- {"matrix": [5, 1], "x": 1.25, "y": 4, "w": 1.25},
- {"matrix": [5, 2], "x": 2.5, "y": 4, "w": 1.25},
- {"matrix": [5, 5], "x": 3.75, "y": 4, "w": 6.25},
- {"matrix": [5, 9], "x": 10, "y": 4, "w": 1.25},
- {"matrix": [5, 10], "x": 11.25, "y": 4, "w": 1.25},
- {"matrix": [5, 11], "x": 13, "y": 4},
- {"matrix": [5, 12], "x": 14, "y": 4},
- {"matrix": [5, 13], "x": 15, "y": 4}
+ {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25},
+ {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25},
+ {"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25},
+ {"matrix": [5, 9], "x": 10, "y": 5, "w": 1.25},
+ {"matrix": [5, 10], "x": 11.25, "y": 5, "w": 1.25},
+ {"matrix": [5, 11], "x": 13, "y": 5},
+ {"matrix": [5, 12], "x": 14, "y": 5},
+ {"matrix": [5, 13], "x": 15, "y": 5}
]
}
}
diff --git a/keyboards/wekey/we27/keyboard.json b/keyboards/wekey/we27/keyboard.json
index 50c6de9e10..91731cdc39 100644
--- a/keyboards/wekey/we27/keyboard.json
+++ b/keyboards/wekey/we27/keyboard.json
@@ -29,35 +29,6 @@
"hue": 108
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 1, "flags": 1},
- {"matrix": [0, 1], "x": 56, "y": 1, "flags": 1},
- {"matrix": [0, 2], "x": 112, "y": 1, "flags": 1},
- {"matrix": [0, 3], "x": 168, "y": 1, "flags": 1},
- {"matrix": [0, 4], "x": 224, "y": 1, "flags": 1},
- {"matrix": [1, 4], "x": 0, "y": 16, "flags": 1},
- {"matrix": [1, 3], "x": 56, "y": 16, "flags": 1},
- {"matrix": [1, 2], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 168, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 224, "y": 16, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 28, "flags": 1},
- {"matrix": [2, 1], "x": 56, "y": 28, "flags": 4},
- {"matrix": [2, 2], "x": 112, "y": 28, "flags": 4},
- {"matrix": [2, 3], "x": 168, "y": 28, "flags": 4},
- {"matrix": [2, 4], "x": 224, "y": 28, "flags": 4},
- {"matrix": [3, 3], "x": 0, "y": 40, "flags": 1},
- {"matrix": [3, 2], "x": 56, "y": 40, "flags": 4},
- {"matrix": [3, 1], "x": 112, "y": 40, "flags": 4},
- {"matrix": [3, 0], "x": 168, "y": 40, "flags": 4},
- {"matrix": [4, 0], "x": 0, "y": 52, "flags": 1},
- {"matrix": [4, 1], "x": 56, "y": 52, "flags": 4},
- {"matrix": [4, 2], "x": 112, "y": 52, "flags": 4},
- {"matrix": [4, 3], "x": 168, "y": 52, "flags": 4},
- {"matrix": [4, 4], "x": 224, "y": 52, "flags": 4},
- {"matrix": [5, 3], "x": 0, "y": 64, "flags": 1},
- {"matrix": [5, 1], "x": 56, "y": 64, "flags": 4},
- {"matrix": [5, 0], "x": 168, "y": 64, "flags": 4}
- ],
"react_on_keyup": true
},
"matrix_pins": {
diff --git a/keyboards/wekey/we27/we27.c b/keyboards/wekey/we27/we27.c
new file mode 100644
index 0000000000..03ec6f5512
--- /dev/null
+++ b/keyboards/wekey/we27/we27.c
@@ -0,0 +1,46 @@
+/* Copyright 2021 @wekey
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+
+#define __ NO_LED
+
+led_config_t g_led_config = { {
+ { 0, 1, 2, 3, 4 },
+ { 9, 8, 7, 6, 5 },
+ { 10, 11, 12, 13, 14 },
+ { 18, 17, 16, 15, __ },
+ { 19, 20, 21, 22, 23 },
+ { 26, 25, __, 24, __ }
+}, {
+ {0,1},{56,1},{112,1},{168,1},{224,1},
+ {0,16},{56,16},{112,16},{168,16},{224,16},
+ {0,28},{56,28},{112,28},{168,28},{224,28},
+ {0,40},{56,40},{112,40},{168,40},
+ {0,52},{56,52},{112,52},{168,52},{224,52},
+ {0,64},{56,64},{168,64}
+}, {
+ 1, 1, 1, 1, 1,
+ 1, 1, 4, 4, 4,
+ 1, 4, 4, 4, 4,
+ 1, 4, 4, 4,
+ 1, 4, 4, 4, 4,
+ 1, 4, 4
+} };
+
+#endif
diff --git a/keyboards/whirlwind_fx_element/config.h b/keyboards/whirlwind_fx_element/config.h
new file mode 100644
index 0000000000..606163cf10
--- /dev/null
+++ b/keyboards/whirlwind_fx_element/config.h
@@ -0,0 +1,7 @@
+// Copyright 2023 WhirlwindFX
+// Copyright 2023 aedanmills
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
diff --git a/keyboards/whirlwind_fx_element/halconf.h b/keyboards/whirlwind_fx_element/halconf.h
new file mode 100644
index 0000000000..75e92dea90
--- /dev/null
+++ b/keyboards/whirlwind_fx_element/halconf.h
@@ -0,0 +1,9 @@
+// Copyright 2023 WhirlwindFX
+// Copyright 2023 aedanmills
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#define HAL_USE_I2C TRUE
+
+#include_next
diff --git a/keyboards/whirlwind_fx_element/keyboard.json b/keyboards/whirlwind_fx_element/keyboard.json
new file mode 100644
index 0000000000..f01c5859da
--- /dev/null
+++ b/keyboards/whirlwind_fx_element/keyboard.json
@@ -0,0 +1,302 @@
+{
+ "manufacturer": "WhirlwindFX",
+ "keyboard_name": "Element",
+ "maintainer": "aedanmills",
+ "bootloader": "stm32-dfu",
+ "diode_direction": "ROW2COL",
+ "features": {
+ "bootmagic": true,
+ "extrakey": true,
+ "nkro": true,
+ "rgb_matrix": true
+ },
+ "matrix_pins": {
+ "rows": [ "B0", "B1", "B2", "B3", "B12", "B13", "B14", "B15" ],
+ "cols": [ "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "A13", "A14" ]
+ },
+ "processor": "STM32F303",
+ "url": "https://www.whirlwindfx.com/products/element",
+ "usb": {
+ "vid": "0x0483",
+ "pid": "0xA33E",
+ "device_version": "1.0.6"
+ },
+ "indicators": {
+ "caps_lock": "B9",
+ "num_lock": "B8",
+ "scroll_lock": "B10",
+ "on_state": 0
+ },
+ "community_layouts": ["fullsize_ansi"],
+ "layouts": {
+ "LAYOUT_fullsize_ansi": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 2, "y": 0},
+ {"matrix": [0, 2], "x": 3, "y": 0},
+ {"matrix": [0, 3], "x": 4, "y": 0},
+ {"matrix": [0, 4], "x": 5, "y": 0},
+ {"matrix": [0, 5], "x": 6.5, "y": 0},
+ {"matrix": [0, 6], "x": 7.5, "y": 0},
+ {"matrix": [0, 7], "x": 8.5, "y": 0},
+ {"matrix": [0, 8], "x": 9.5, "y": 0},
+ {"matrix": [0, 9], "x": 11, "y": 0},
+ {"matrix": [0, 10], "x": 12, "y": 0},
+ {"matrix": [0, 11], "x": 13, "y": 0},
+ {"matrix": [0, 12], "x": 14, "y": 0},
+ {"matrix": [1, 0], "x": 15.25, "y": 0},
+ {"matrix": [1, 1], "x": 16.25, "y": 0},
+ {"matrix": [1, 2], "x": 17.25, "y": 0},
+ {"matrix": [1, 3], "x": 0, "y": 1.25},
+ {"matrix": [1, 4], "x": 1, "y": 1.25},
+ {"matrix": [1, 5], "x": 2, "y": 1.25},
+ {"matrix": [1, 6], "x": 3, "y": 1.25},
+ {"matrix": [1, 7], "x": 4, "y": 1.25},
+ {"matrix": [1, 8], "x": 5, "y": 1.25},
+ {"matrix": [1, 9], "x": 6, "y": 1.25},
+ {"matrix": [1, 10], "x": 7, "y": 1.25},
+ {"matrix": [1, 11], "x": 8, "y": 1.25},
+ {"matrix": [1, 12], "x": 9, "y": 1.25},
+ {"matrix": [2, 0], "x": 10, "y": 1.25},
+ {"matrix": [2, 1], "x": 11, "y": 1.25},
+ {"matrix": [2, 2], "x": 12, "y": 1.25},
+ {"matrix": [2, 3], "x": 13, "y": 1.25, "w": 2},
+ {"matrix": [2, 4], "x": 15.25, "y": 1.25},
+ {"matrix": [2, 5], "x": 16.25, "y": 1.25},
+ {"matrix": [2, 6], "x": 17.25, "y": 1.25},
+ {"matrix": [2, 7], "x": 18.5, "y": 1.25},
+ {"matrix": [2, 8], "x": 19.5, "y": 1.25},
+ {"matrix": [2, 9], "x": 20.5, "y": 1.25},
+ {"matrix": [2, 10], "x": 21.5, "y": 1.25},
+ {"matrix": [2, 11], "x": 0, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 12], "x": 1.5, "y": 2.25},
+ {"matrix": [3, 0], "x": 2.5, "y": 2.25},
+ {"matrix": [3, 1], "x": 3.5, "y": 2.25},
+ {"matrix": [3, 2], "x": 4.5, "y": 2.25},
+ {"matrix": [3, 3], "x": 5.5, "y": 2.25},
+ {"matrix": [3, 4], "x": 6.5, "y": 2.25},
+ {"matrix": [3, 5], "x": 7.5, "y": 2.25},
+ {"matrix": [3, 6], "x": 8.5, "y": 2.25},
+ {"matrix": [3, 7], "x": 9.5, "y": 2.25},
+ {"matrix": [3, 8], "x": 10.5, "y": 2.25},
+ {"matrix": [3, 9], "x": 11.5, "y": 2.25},
+ {"matrix": [3, 10], "x": 12.5, "y": 2.25},
+ {"matrix": [3, 11], "x": 13.5, "y": 2.25, "w": 1.5},
+ {"matrix": [3, 12], "x": 15.25, "y": 2.25},
+ {"matrix": [4, 0], "x": 16.25, "y": 2.25},
+ {"matrix": [4, 1], "x": 17.25, "y": 2.25},
+ {"matrix": [4, 2], "x": 18.5, "y": 2.25},
+ {"matrix": [4, 3], "x": 19.5, "y": 2.25},
+ {"matrix": [4, 4], "x": 20.5, "y": 2.25},
+ {"matrix": [5, 8], "x": 21.5, "y": 2.25, "h": 2},
+ {"matrix": [4, 5], "x": 0, "y": 3.25, "w": 1.75},
+ {"matrix": [4, 6], "x": 1.75, "y": 3.25},
+ {"matrix": [4, 7], "x": 2.75, "y": 3.25},
+ {"matrix": [4, 8], "x": 3.75, "y": 3.25},
+ {"matrix": [4, 9], "x": 4.75, "y": 3.25},
+ {"matrix": [4, 10], "x": 5.75, "y": 3.25},
+ {"matrix": [4, 11], "x": 6.75, "y": 3.25},
+ {"matrix": [4, 12], "x": 7.75, "y": 3.25},
+ {"matrix": [5, 0], "x": 8.75, "y": 3.25},
+ {"matrix": [5, 1], "x": 9.75, "y": 3.25},
+ {"matrix": [5, 2], "x": 10.75, "y": 3.25},
+ {"matrix": [5, 3], "x": 11.75, "y": 3.25},
+ {"matrix": [5, 4], "x": 12.75, "y": 3.25, "w": 2.25},
+ {"matrix": [5, 5], "x": 18.5, "y": 3.25},
+ {"matrix": [5, 6], "x": 19.5, "y": 3.25},
+ {"matrix": [5, 7], "x": 20.5, "y": 3.25},
+ {"matrix": [5, 9], "x": 0, "y": 4.25, "w": 2.25},
+ {"matrix": [5, 10], "x": 2.25, "y": 4.25},
+ {"matrix": [5, 11], "x": 3.25, "y": 4.25},
+ {"matrix": [5, 12], "x": 4.25, "y": 4.25},
+ {"matrix": [6, 0], "x": 5.25, "y": 4.25},
+ {"matrix": [6, 1], "x": 6.25, "y": 4.25},
+ {"matrix": [6, 2], "x": 7.25, "y": 4.25},
+ {"matrix": [6, 3], "x": 8.25, "y": 4.25},
+ {"matrix": [6, 4], "x": 9.25, "y": 4.25},
+ {"matrix": [6, 5], "x": 10.25, "y": 4.25},
+ {"matrix": [6, 6], "x": 11.25, "y": 4.25},
+ {"matrix": [6, 7], "x": 12.25, "y": 4.25, "w": 2.75},
+ {"matrix": [6, 8], "x": 16.25, "y": 4.25},
+ {"matrix": [6, 9], "x": 18.5, "y": 4.25},
+ {"matrix": [6, 10], "x": 19.5, "y": 4.25},
+ {"matrix": [6, 11], "x": 20.5, "y": 4.25},
+ {"matrix": [6, 12], "x": 21.5, "y": 4.25, "h": 2},
+ {"matrix": [7, 0], "x": 0, "y": 5.25, "w": 1.25},
+ {"matrix": [7, 1], "x": 1.25, "y": 5.25, "w": 1.25},
+ {"matrix": [7, 2], "x": 2.5, "y": 5.25, "w": 1.25},
+ {"matrix": [7, 3], "x": 3.75, "y": 5.25, "w": 6.25},
+ {"matrix": [7, 4], "x": 10, "y": 5.25, "w": 1.25},
+ {"matrix": [7, 5], "x": 11.25, "y": 5.25, "w": 1.25},
+ {"matrix": [7, 6], "x": 12.5, "y": 5.25, "w": 1.25},
+ {"matrix": [7, 7], "x": 13.75, "y": 5.25, "w": 1.25},
+ {"matrix": [7, 8], "x": 15.25, "y": 5.25},
+ {"matrix": [7, 9], "x": 16.25, "y": 5.25},
+ {"matrix": [7, 10], "x": 17.25, "y": 5.25},
+ {"matrix": [7, 11], "x": 18.5, "y": 5.25, "w": 2},
+ {"matrix": [7, 12], "x": 20.5, "y": 5.25}
+ ]
+ }
+ },
+ "rgb_matrix": {
+ "driver": "is31fl3741",
+ "max_brightness": 200,
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+ {"matrix": [0, 1], "x": 21, "y": 0, "flags": 4},
+ {"matrix": [0, 2], "x": 31, "y": 0, "flags": 4},
+ {"matrix": [0, 3], "x": 42, "y": 0, "flags": 4},
+ {"matrix": [0, 4], "x": 52, "y": 0, "flags": 4},
+ {"matrix": [0, 5], "x": 68, "y": 0, "flags": 4},
+ {"matrix": [0, 6], "x": 78, "y": 0, "flags": 4},
+ {"matrix": [0, 7], "x": 89, "y": 0, "flags": 4},
+ {"matrix": [0, 8], "x": 99, "y": 0, "flags": 4},
+ {"matrix": [0, 9], "x": 115, "y": 0, "flags": 4},
+ {"matrix": [0, 10], "x": 125, "y": 0, "flags": 4},
+ {"matrix": [0, 11], "x": 136, "y": 0, "flags": 4},
+ {"matrix": [0, 12], "x": 146, "y": 0, "flags": 4},
+ {"matrix": [1, 0], "x": 159, "y": 0, "flags": 4},
+ {"matrix": [1, 1], "x": 169, "y": 0, "flags": 4},
+ {"matrix": [1, 2], "x": 180, "y": 0, "flags": 4},
+
+ {"matrix": [1, 3], "x": 0, "y": 15, "flags": 4},
+ {"matrix": [1, 4], "x": 10, "y": 15, "flags": 4},
+ {"matrix": [1, 5], "x": 21, "y": 15, "flags": 4},
+ {"matrix": [1, 6], "x": 31, "y": 15, "flags": 4},
+ {"matrix": [1, 7], "x": 42, "y": 15, "flags": 4},
+ {"matrix": [1, 8], "x": 52, "y": 15, "flags": 4},
+ {"matrix": [1, 9], "x": 63, "y": 15, "flags": 4},
+ {"matrix": [1, 10], "x": 73, "y": 15, "flags": 4},
+ {"matrix": [1, 11], "x": 83, "y": 15, "flags": 4},
+ {"matrix": [1, 12], "x": 94, "y": 15, "flags": 4},
+ {"matrix": [2, 0], "x": 104, "y": 15, "flags": 4},
+ {"matrix": [2, 1], "x": 115, "y": 15, "flags": 4},
+ {"matrix": [2, 2], "x": 125, "y": 15, "flags": 4},
+ {"matrix": [2, 3], "x": 141, "y": 15, "flags": 4},
+ {"matrix": [2, 4], "x": 159, "y": 15, "flags": 4},
+ {"matrix": [2, 5], "x": 169, "y": 15, "flags": 4},
+ {"matrix": [2, 6], "x": 180, "y": 15, "flags": 4},
+ {"matrix": [2, 7], "x": 193, "y": 15, "flags": 4},
+ {"matrix": [2, 8], "x": 203, "y": 15, "flags": 4},
+ {"matrix": [2, 9], "x": 214, "y": 15, "flags": 4},
+ {"matrix": [2, 10], "x": 224, "y": 15, "flags": 4},
+
+ {"matrix": [2, 11], "x": 3, "y": 27, "flags": 4},
+ {"matrix": [2, 12], "x": 16, "y": 27, "flags": 4},
+ {"matrix": [3, 0], "x": 26, "y": 27, "flags": 4},
+ {"matrix": [3, 1], "x": 36, "y": 27, "flags": 4},
+ {"matrix": [3, 2], "x": 47, "y": 27, "flags": 4},
+ {"matrix": [3, 3], "x": 57, "y": 27, "flags": 4},
+ {"matrix": [3, 4], "x": 68, "y": 27, "flags": 4},
+ {"matrix": [3, 5], "x": 78, "y": 27, "flags": 4},
+ {"matrix": [3, 6], "x": 89, "y": 27, "flags": 4},
+ {"matrix": [3, 7], "x": 99, "y": 27, "flags": 4},
+ {"matrix": [3, 8], "x": 109, "y": 27, "flags": 4},
+ {"matrix": [3, 9], "x": 120, "y": 27, "flags": 4},
+ {"matrix": [3, 10], "x": 130, "y": 27, "flags": 4},
+ {"matrix": [3, 11], "x": 143, "y": 27, "flags": 4},
+ {"matrix": [3, 12], "x": 159, "y": 27, "flags": 4},
+ {"matrix": [4, 0], "x": 169, "y": 27, "flags": 4},
+ {"matrix": [4, 1], "x": 180, "y": 27, "flags": 4},
+ {"matrix": [4, 2], "x": 193, "y": 27, "flags": 4},
+ {"matrix": [4, 3], "x": 203, "y": 27, "flags": 4},
+ {"matrix": [4, 4], "x": 214, "y": 27, "flags": 4},
+
+ {"matrix": [4, 5], "x": 4, "y": 40, "flags": 4},
+ {"matrix": [4, 6], "x": 18, "y": 40, "flags": 4},
+ {"matrix": [4, 7], "x": 29, "y": 40, "flags": 4},
+ {"matrix": [4, 8], "x": 39, "y": 40, "flags": 4},
+ {"matrix": [4, 9], "x": 50, "y": 40, "flags": 4},
+ {"matrix": [4, 10], "x": 60, "y": 40, "flags": 4},
+ {"matrix": [4, 11], "x": 70, "y": 40, "flags": 4},
+ {"matrix": [4, 12], "x": 81, "y": 40, "flags": 4},
+ {"matrix": [5, 0], "x": 91, "y": 40, "flags": 4},
+ {"matrix": [5, 1], "x": 102, "y": 40, "flags": 4},
+ {"matrix": [5, 2], "x": 112, "y": 40, "flags": 4},
+ {"matrix": [5, 3], "x": 123, "y": 40, "flags": 4},
+ {"matrix": [5, 4], "x": 139, "y": 40, "flags": 4},
+ {"matrix": [5, 5], "x": 193, "y": 40, "flags": 4},
+ {"matrix": [5, 6], "x": 203, "y": 40, "flags": 4},
+ {"matrix": [5, 7], "x": 214, "y": 40, "flags": 4},
+ {"matrix": [5, 8], "x": 224, "y": 34, "flags": 4},
+
+ {"matrix": [5, 9], "x": 7, "y": 52, "flags": 4},
+ {"matrix": [5, 10], "x": 23, "y": 52, "flags": 4},
+ {"matrix": [5, 11], "x": 34, "y": 52, "flags": 4},
+ {"matrix": [5, 12], "x": 44, "y": 52, "flags": 4},
+ {"matrix": [6, 0], "x": 55, "y": 52, "flags": 4},
+ {"matrix": [6, 1], "x": 65, "y": 52, "flags": 4},
+ {"matrix": [6, 2], "x": 76, "y": 52, "flags": 4},
+ {"matrix": [6, 3], "x": 86, "y": 52, "flags": 4},
+ {"matrix": [6, 4], "x": 96, "y": 52, "flags": 4},
+ {"matrix": [6, 5], "x": 107, "y": 52, "flags": 4},
+ {"matrix": [6, 6], "x": 117, "y": 52, "flags": 4},
+ {"matrix": [6, 7], "x": 137, "y": 52, "flags": 4},
+ {"matrix": [6, 8], "x": 169, "y": 52, "flags": 4},
+ {"matrix": [6, 9], "x": 193, "y": 52, "flags": 4},
+ {"matrix": [6, 10], "x": 203, "y": 52, "flags": 4},
+ {"matrix": [6, 11], "x": 214, "y": 52, "flags": 4},
+ {"matrix": [6, 12], "x": 224, "y": 58, "flags": 4},
+
+ {"matrix": [7, 0], "x": 1, "y": 64, "flags": 4},
+ {"matrix": [7, 1], "x": 14, "y": 64, "flags": 4},
+ {"matrix": [7, 2], "x": 27, "y": 64, "flags": 4},
+ {"matrix": [7, 3], "x": 66, "y": 64, "flags": 4},
+ {"matrix": [7, 4], "x": 105, "y": 64, "flags": 4},
+ {"matrix": [7, 5], "x": 118, "y": 64, "flags": 4},
+ {"matrix": [7, 6], "x": 131, "y": 64, "flags": 4},
+ {"matrix": [7, 7], "x": 145, "y": 64, "flags": 4},
+ {"matrix": [7, 8], "x": 159, "y": 64, "flags": 4},
+ {"matrix": [7, 9], "x": 169, "y": 64, "flags": 4},
+ {"matrix": [7, 10], "x": 180, "y": 64, "flags": 4},
+ {"matrix": [7, 11], "x": 198, "y": 64, "flags": 4},
+ {"matrix": [7, 12], "x": 214, "y": 64, "flags": 4}
+ ],
+ "animations": {
+ "alphas_mods": true,
+ "gradient_up_down": true,
+ "gradient_left_right": true,
+ "breathing": true,
+ "band_sat": true,
+ "band_val": true,
+ "band_pinwheel_sat": true,
+ "band_pinwheel_val": true,
+ "band_spiral_sat": true,
+ "band_spiral_val": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "rainbow_moving_chevron": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "dual_beacon": true,
+ "rainbow_beacon": true,
+ "rainbow_pinwheels": true,
+ "raindrops": true,
+ "jellybean_raindrops": true,
+ "hue_breathing": true,
+ "hue_pendulum": true,
+ "hue_wave": true,
+ "pixel_flow": true,
+ "pixel_rain": true,
+ "typing_heatmap": true,
+ "digital_rain": true,
+ "solid_reactive_simple": true,
+ "solid_reactive": true,
+ "solid_reactive_wide": true,
+ "solid_reactive_cross": true,
+ "solid_reactive_nexus": true,
+ "splash": true,
+ "multisplash": true,
+ "solid_splash": true
+ },
+ "default": {
+ "val": 128
+ },
+ "led_process_limit": 4,
+ "led_flush_limit": 26,
+ "sleep": true
+ }
+}
diff --git a/keyboards/whirlwind_fx_element/keymaps/default/keymap.c b/keyboards/whirlwind_fx_element/keymaps/default/keymap.c
new file mode 100644
index 0000000000..36690aca28
--- /dev/null
+++ b/keyboards/whirlwind_fx_element/keymaps/default/keymap.c
@@ -0,0 +1,42 @@
+// Copyright 2023 WhirlwindFX
+// Copyright 2023 aedanmills
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /*
+ * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
+ * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│
+ * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
+ * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
+ * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ │ 7 │ 8 │ 9 │ │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ├───┼───┼───┤ + │
+ * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ │ 4 │ 5 │ 6 │ │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ ├───┼───┼───┼───┤
+ * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ │ 1 │ 2 │ 3 │ │
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│
+ * │Ctrl│GUI │Alt │ │ Alt│ FN │Menu│Ctrl│ │ ← │ ↓ │ → │ │ 0 │ . │ │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
+ */
+ [0] = LAYOUT_fullsize_ansi(
+ 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_SCRL, KC_PAUS,
+
+ 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, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
+ 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, KC_P7, KC_P8, KC_P9, KC_PPLS,
+ 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_P4, KC_P5, KC_P6,
+ 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_P1, KC_P2, KC_P3, KC_PENT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
+ ),
+ [1] = LAYOUT_fullsize_ansi(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BRID, KC_BRIU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_CALC,
+
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_VALD, RM_VALU, 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, 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, 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, KC_TRNS, KC_TRNS, KC_TRNS, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, RM_SPDD, RM_NEXT, KC_TRNS, KC_TRNS
+ )
+};
diff --git a/keyboards/whirlwind_fx_element/mcuconf.h b/keyboards/whirlwind_fx_element/mcuconf.h
new file mode 100644
index 0000000000..c89f7275d4
--- /dev/null
+++ b/keyboards/whirlwind_fx_element/mcuconf.h
@@ -0,0 +1,10 @@
+// Copyright 2023 WhirlwindFX
+// Copyright 2023 aedanmills
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include_next
+
+#undef STM32_I2C_USE_I2C1
+#define STM32_I2C_USE_I2C1 TRUE
diff --git a/keyboards/whirlwind_fx_element/readme.md b/keyboards/whirlwind_fx_element/readme.md
new file mode 100644
index 0000000000..362b984772
--- /dev/null
+++ b/keyboards/whirlwind_fx_element/readme.md
@@ -0,0 +1,31 @@
+# WhirlwindFX ElementV2
+
+
+
+A full-size (100%) mechanical keyboard with RGB lighting.
+
+* Keyboard Maintainer: [Aedan Mills](https://github.com/aedanmills)
+* Hardware Supported: WhirlwindFX ElementV2
+* Hardware Availability: [WhirlwindFX](https://www.whirlwindfx.com/products/element)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make whirlwind_fx_element:default
+
+Flashing example for this keyboard:
+
+ make whirlwind_fx_element:default:flash
+
+## Bootloader
+
+Enter the bootloader by pressing and holding the reset button on the back of the PCB while plugging in the keyboard. You will have to remove the key caps to access the screws to disassemble the keyboard and access the button.
+
+Don't forget to backup the original firmware before proceeding by using the following dfu-util command with the keyboard in bootloader mode:
+
+ dfu-util --list # Check that the keyboard is listed in DFU mode
+ dfu-util -a 0 -U backup.bin -s 0x08000000 # Save backup as backup.bin
+
+After flashing with QMK, BootMagic can be used to enter the bootloader by holding ESC while plugging in the keyboard.
+
+
+See 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/whirlwind_fx_element/whirlwind_fx_element.c b/keyboards/whirlwind_fx_element/whirlwind_fx_element.c
new file mode 100644
index 0000000000..6f17dbda2f
--- /dev/null
+++ b/keyboards/whirlwind_fx_element/whirlwind_fx_element.c
@@ -0,0 +1,119 @@
+// Copyright 2023 WhirlwindFX
+// Copyright 2023 aedanmills
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+#ifdef RGB_MATRIX_ENABLE
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
+ {0, SW1_CS2, SW1_CS3, SW1_CS1},
+ {0, SW1_CS5, SW1_CS6, SW1_CS4},
+ {0, SW1_CS8, SW1_CS9, SW1_CS7},
+ {0, SW1_CS11, SW1_CS12, SW1_CS10},
+ {0, SW1_CS14, SW1_CS15, SW1_CS13},
+ {0, SW1_CS17, SW1_CS18, SW1_CS16},
+ {0, SW1_CS20, SW1_CS21, SW1_CS19},
+ {0, SW1_CS23, SW1_CS24, SW1_CS22},
+ {0, SW1_CS26, SW1_CS27, SW1_CS25},
+ {0, SW1_CS29, SW1_CS30, SW1_CS28},
+ {0, SW1_CS32, SW1_CS33, SW1_CS31},
+ {0, SW1_CS35, SW1_CS36, SW1_CS34},
+ {0, SW1_CS38, SW1_CS39, SW1_CS37},
+ {0, SW2_CS2, SW2_CS3, SW2_CS1},
+ {0, SW2_CS5, SW2_CS6, SW2_CS4},
+ {0, SW2_CS8, SW2_CS9, SW2_CS7},
+ {0, SW2_CS11, SW2_CS12, SW2_CS10},
+ {0, SW2_CS14, SW2_CS15, SW2_CS13},
+ {0, SW2_CS17, SW2_CS18, SW2_CS16},
+ {0, SW2_CS20, SW2_CS21, SW2_CS19},
+ {0, SW2_CS23, SW2_CS24, SW2_CS22},
+ {0, SW2_CS26, SW2_CS27, SW2_CS25},
+ {0, SW2_CS29, SW2_CS30, SW2_CS28},
+ {0, SW2_CS32, SW2_CS33, SW2_CS31},
+ {0, SW2_CS35, SW2_CS36, SW2_CS34},
+ {0, SW2_CS38, SW2_CS39, SW2_CS37},
+ {0, SW3_CS2, SW3_CS3, SW3_CS1},
+ {0, SW3_CS5, SW3_CS6, SW3_CS4},
+ {0, SW3_CS8, SW3_CS9, SW3_CS7},
+ {0, SW3_CS11, SW3_CS12, SW3_CS10},
+ {0, SW3_CS14, SW3_CS15, SW3_CS13},
+ {0, SW3_CS17, SW3_CS18, SW3_CS16},
+ {0, SW3_CS20, SW3_CS21, SW3_CS19},
+ {0, SW3_CS23, SW3_CS24, SW3_CS22},
+ {0, SW3_CS26, SW3_CS27, SW3_CS25},
+ {0, SW3_CS29, SW3_CS30, SW3_CS28},
+ {0, SW3_CS32, SW3_CS33, SW3_CS31},
+ {0, SW3_CS35, SW3_CS36, SW3_CS34},
+ {0, SW3_CS38, SW3_CS39, SW3_CS37},
+ {0, SW4_CS2, SW4_CS3, SW4_CS1},
+ {0, SW4_CS5, SW4_CS6, SW4_CS4},
+ {0, SW4_CS8, SW4_CS9, SW4_CS7},
+ {0, SW4_CS11, SW4_CS12, SW4_CS10},
+ {0, SW4_CS14, SW4_CS15, SW4_CS13},
+ {0, SW4_CS17, SW4_CS18, SW4_CS16},
+ {0, SW4_CS20, SW4_CS21, SW4_CS19},
+ {0, SW4_CS23, SW4_CS24, SW4_CS22},
+ {0, SW4_CS26, SW4_CS27, SW4_CS25},
+ {0, SW4_CS29, SW4_CS30, SW4_CS28},
+ {0, SW4_CS32, SW4_CS33, SW4_CS31},
+ {0, SW4_CS35, SW4_CS36, SW4_CS34},
+ {0, SW4_CS38, SW4_CS39, SW4_CS37},
+ {0, SW5_CS2, SW5_CS3, SW5_CS1},
+ {0, SW5_CS5, SW5_CS6, SW5_CS4},
+ {0, SW5_CS8, SW5_CS9, SW5_CS7},
+ {0, SW5_CS11, SW5_CS12, SW5_CS10},
+ {0, SW5_CS14, SW5_CS15, SW5_CS13},
+ {0, SW5_CS17, SW5_CS18, SW5_CS16},
+ {0, SW5_CS20, SW5_CS21, SW5_CS19},
+ {0, SW5_CS23, SW5_CS24, SW5_CS22},
+ {0, SW5_CS26, SW5_CS27, SW5_CS25},
+ {0, SW5_CS29, SW5_CS30, SW5_CS28},
+ {0, SW5_CS32, SW5_CS33, SW5_CS31},
+ {0, SW5_CS35, SW5_CS36, SW5_CS34},
+ {0, SW5_CS38, SW5_CS39, SW5_CS37},
+ {0, SW6_CS2, SW6_CS3, SW6_CS1},
+ {0, SW6_CS5, SW6_CS6, SW6_CS4},
+ {0, SW6_CS8, SW6_CS9, SW6_CS7},
+ {0, SW6_CS11, SW6_CS12, SW6_CS10},
+ {0, SW6_CS14, SW6_CS15, SW6_CS13},
+ {0, SW6_CS17, SW6_CS18, SW6_CS16},
+ {0, SW6_CS20, SW6_CS21, SW6_CS19},
+ {0, SW6_CS23, SW6_CS24, SW6_CS22},
+ {0, SW6_CS26, SW6_CS27, SW6_CS25},
+ {0, SW6_CS29, SW6_CS30, SW6_CS28},
+ {0, SW6_CS32, SW6_CS33, SW6_CS31},
+ {0, SW6_CS35, SW6_CS36, SW6_CS34},
+ {0, SW6_CS38, SW6_CS39, SW6_CS37},
+ {0, SW7_CS2, SW7_CS3, SW7_CS1},
+ {0, SW7_CS5, SW7_CS6, SW7_CS4},
+ {0, SW7_CS8, SW7_CS9, SW7_CS7},
+ {0, SW7_CS11, SW7_CS12, SW7_CS10},
+ {0, SW7_CS14, SW7_CS15, SW7_CS13},
+ {0, SW7_CS17, SW7_CS18, SW7_CS16},
+ {0, SW7_CS20, SW7_CS21, SW7_CS19},
+ {0, SW7_CS23, SW7_CS24, SW7_CS22},
+ {0, SW7_CS26, SW7_CS27, SW7_CS25},
+ {0, SW7_CS29, SW7_CS30, SW7_CS28},
+ {0, SW7_CS32, SW7_CS33, SW7_CS31},
+ {0, SW7_CS35, SW7_CS36, SW7_CS34},
+ {0, SW7_CS38, SW7_CS39, SW7_CS37},
+ {0, SW8_CS2, SW8_CS3, SW8_CS1},
+ {0, SW8_CS5, SW8_CS6, SW8_CS4},
+ {0, SW8_CS8, SW8_CS9, SW8_CS7},
+ {0, SW8_CS11, SW8_CS12, SW8_CS10},
+ {0, SW8_CS14, SW8_CS15, SW8_CS13},
+ {0, SW8_CS17, SW8_CS18, SW8_CS16},
+ {0, SW8_CS20, SW8_CS21, SW8_CS19},
+ {0, SW8_CS23, SW8_CS24, SW8_CS22},
+ {0, SW8_CS26, SW8_CS27, SW8_CS25},
+ {0, SW8_CS29, SW8_CS30, SW8_CS28},
+ {0, SW8_CS32, SW8_CS33, SW8_CS31},
+ {0, SW8_CS35, SW8_CS36, SW8_CS34},
+ {0, SW8_CS38, SW8_CS39, SW8_CS37}
+};
+#endif
+void keyboard_pre_init_kb(void) {
+ gpio_set_pin_output(B11); // Required for indicators to work correctly
+
+ keyboard_pre_init_user();
+}
diff --git a/keyboards/work_louder/loop/info.json b/keyboards/work_louder/loop/info.json
index d029f73117..70dc6cc13a 100644
--- a/keyboards/work_louder/loop/info.json
+++ b/keyboards/work_louder/loop/info.json
@@ -54,17 +54,6 @@
"typing_heatmap": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 11], "x": 188, "y": 32, "flags": 4},
- {"matrix": [0, 10], "x": 169, "y": 32, "flags": 4},
- {"matrix": [0, 9], "x": 150, "y": 32, "flags": 4},
- {"matrix": [0, 8], "x": 131, "y": 32, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 32, "flags": 4},
- {"matrix": [0, 6], "x": 93, "y": 32, "flags": 4},
- {"matrix": [0, 5], "x": 74, "y": 32, "flags": 4},
- {"matrix": [0, 4], "x": 55, "y": 32, "flags": 4},
- {"matrix": [0, 3], "x": 36, "y": 32, "flags": 4}
- ],
"max_brightness": 120,
"sleep": true
},
diff --git a/keyboards/work_louder/loop/loop.c b/keyboards/work_louder/loop/loop.c
index 138be4e75a..7880584d09 100644
--- a/keyboards/work_louder/loop/loop.c
+++ b/keyboards/work_louder/loop/loop.c
@@ -41,3 +41,17 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
return true;
}
#endif
+
+#ifdef RGB_MATRIX_ENABLE
+// clang-format off
+led_config_t g_led_config = {
+ {
+ { NO_LED, NO_LED, NO_LED, 8, 7, 6, 5, 4, 3, 2, 1, 0 }
+ }, {
+ {188, 32}, {169, 32}, {150, 32}, {131, 32}, {112, 32}, {93, 32}, {74, 32}, {55, 32}, {36, 32}
+ }, {
+ 4, 4, 4, 4, 4, 4, 4, 4, 4
+ }
+};
+// clang-format on
+#endif
diff --git a/keyboards/work_louder/micro/keyboard.json b/keyboards/work_louder/micro/keyboard.json
index 677facf995..b8da74dd92 100644
--- a/keyboards/work_louder/micro/keyboard.json
+++ b/keyboards/work_louder/micro/keyboard.json
@@ -79,20 +79,6 @@
"digital_rain": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [3, 2], "x": 122, "y": 64, "flags": 4},
- {"matrix": [3, 1], "x": 103, "y": 64, "flags": 4},
- {"matrix": [2, 0], "x": 84, "y": 45, "flags": 4},
- {"matrix": [2, 1], "x": 103, "y": 45, "flags": 4},
- {"matrix": [2, 2], "x": 133, "y": 45, "flags": 4},
- {"matrix": [2, 3], "x": 152, "y": 45, "flags": 4},
- {"matrix": [1, 3], "x": 152, "y": 26, "flags": 4},
- {"matrix": [1, 2], "x": 122, "y": 26, "flags": 4},
- {"matrix": [1, 1], "x": 103, "y": 26, "flags": 4},
- {"matrix": [1, 0], "x": 84, "y": 26, "flags": 4},
- {"matrix": [0, 1], "x": 103, "y": 7, "flags": 4},
- {"matrix": [0, 2], "x": 122, "y": 7, "flags": 4}
- ],
"max_brightness": 150,
"sleep": true
},
diff --git a/keyboards/work_louder/micro/micro.c b/keyboards/work_louder/micro/micro.c
index 80af68ad8d..f88ac8bb45 100644
--- a/keyboards/work_louder/micro/micro.c
+++ b/keyboards/work_louder/micro/micro.c
@@ -3,6 +3,29 @@
#include "micro.h"
+#if defined(RGB_MATRIX_ENABLE)
+// clang-format off
+led_config_t g_led_config = { {
+ { NO_LED, 10, 11, NO_LED },
+ { 9 , 8, 7, 6 },
+ { 2, 3, 4, 5 },
+ { NO_LED, 1, 0, NO_LED }
+ }, {
+ { 122, 64 }, { 103, 64 },
+ { 84, 45 }, { 103, 45 }, { 133, 45 }, { 152, 45 },
+ { 152, 26 }, { 122, 26 }, { 103, 26 }, { 84, 26 },
+ { 103, 7 }, { 122, 7 }
+ },
+ {
+ 4, 4,
+ 4, 4, 4, 4,
+ 4, 4, 4, 4,
+ 4, 4
+ }
+};
+// clang-format on
+#endif
+
#if defined(ENCODER_ENABLE)
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) {
diff --git a/keyboards/work_louder/nano/keyboard.json b/keyboards/work_louder/nano/keyboard.json
index c870803b1a..e15d095de0 100644
--- a/keyboards/work_louder/nano/keyboard.json
+++ b/keyboards/work_louder/nano/keyboard.json
@@ -56,10 +56,6 @@
"digital_rain": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 2], "x": 103, "y": 32, "flags": 4},
- {"matrix": [0, 1], "x": 122, "y": 32, "flags": 4}
- ],
"max_brightness": 120,
"sleep": true
},
diff --git a/keyboards/work_louder/nano/nano.c b/keyboards/work_louder/nano/nano.c
index a02b09d90c..28db78e46d 100644
--- a/keyboards/work_louder/nano/nano.c
+++ b/keyboards/work_louder/nano/nano.c
@@ -27,3 +27,16 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
return true;
}
#endif
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = {
+ {
+ { NO_LED, 1, 0 }
+ }, {
+ { 103, 32 }, { 122, 32 }
+ }, {
+ 4, 4
+ }
+};
+
+#endif
diff --git a/keyboards/xelus/valor/rev2/keyboard.json b/keyboards/xelus/valor/rev2/keyboard.json
index 6356f69646..451eeb99ff 100644
--- a/keyboards/xelus/valor/rev2/keyboard.json
+++ b/keyboards/xelus/valor/rev2/keyboard.json
@@ -67,9 +67,6 @@
"solid_splash": true,
"solid_multisplash": true
},
- "default": {
- "flags": 7
- },
"driver": "ws2812",
"max_brightness": 200,
"sleep": true
diff --git a/keyboards/xelus/valor/rev2/rev2.c b/keyboards/xelus/valor/rev2/rev2.c
index 99db45e08d..34a32cfc61 100644
--- a/keyboards/xelus/valor/rev2/rev2.c
+++ b/keyboards/xelus/valor/rev2/rev2.c
@@ -64,4 +64,9 @@ led_config_t g_led_config = { {
8, 8, 8, 8
} };
+
+void keyboard_pre_init_kb(void) {
+ rgb_matrix_set_flags(LED_FLAG_MODIFIER|LED_FLAG_UNDERGLOW|LED_FLAG_KEYLIGHT);
+ keyboard_pre_init_user();
+}
#endif
diff --git a/keyboards/yandrstudio/nz64/keyboard.json b/keyboards/yandrstudio/nz64/keyboard.json
index e7c879ca36..8c36b73c1e 100644
--- a/keyboards/yandrstudio/nz64/keyboard.json
+++ b/keyboards/yandrstudio/nz64/keyboard.json
@@ -59,90 +59,6 @@
},
"center_point": [96, 32],
"driver": "ws2812",
- "layout": [
- {"matrix": [4, 13], "x": 224, "y": 64, "flags": 4},
- {"matrix": [4, 12], "x": 207, "y": 64, "flags": 4},
- {"matrix": [4, 11], "x": 190, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 172, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 155, "y": 64, "flags": 4},
- {"x": 121, "y": 64, "flags": 4},
- {"matrix": [4, 5], "x": 86, "y": 64, "flags": 4},
- {"x": 52, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 34, "y": 64, "flags": 4},
- {"matrix": [4, 1], "x": 17, "y": 64, "flags": 4},
- {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4},
- {"matrix": [3, 13], "x": 224, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 207, "y": 48, "flags": 4},
- {"matrix": [3, 11], "x": 190, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 172, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 155, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 138, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 121, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 103, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 86, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 17, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4},
- {"matrix": [2, 13], "x": 224, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 190, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 155, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 138, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 121, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 103, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 69, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 52, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 34, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 17, "y": 32, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
- {"matrix": [1, 13], "x": 224, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 207, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 190, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 172, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 155, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 138, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 121, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 103, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 86, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 69, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 34, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 17, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4},
- {"matrix": [0, 13], "x": 224, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 207, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 190, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 172, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 155, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 138, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 121, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 103, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 86, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 69, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 34, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 17, "y": 0, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"x": 0, "y": 0, "flags": 2},
- {"x": 37, "y": 0, "flags": 2},
- {"x": 75, "y": 0, "flags": 2},
- {"x": 112, "y": 0, "flags": 2},
- {"x": 149, "y": 0, "flags": 2},
- {"x": 187, "y": 0, "flags": 2},
- {"x": 224, "y": 0, "flags": 2},
- {"x": 0, "y": 32, "flags": 2},
- {"x": 224, "y": 64, "flags": 2},
- {"x": 187, "y": 64, "flags": 2},
- {"x": 149, "y": 64, "flags": 2},
- {"x": 112, "y": 64, "flags": 2},
- {"x": 75, "y": 64, "flags": 2},
- {"x": 37, "y": 64, "flags": 2},
- {"x": 0, "y": 64, "flags": 2},
- {"x": 224, "y": 32, "flags": 2}
- ],
"max_brightness": 180,
"sleep": true
},
diff --git a/keyboards/yandrstudio/nz64/nz64.c b/keyboards/yandrstudio/nz64/nz64.c
index 6bd3e08fbf..928b0b5114 100644
--- a/keyboards/yandrstudio/nz64/nz64.c
+++ b/keyboards/yandrstudio/nz64/nz64.c
@@ -23,6 +23,40 @@ typedef union {
} kb_cums_t;
kb_cums_t kb_cums;
+led_config_t g_led_config = {
+ {
+ { 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52 },
+ { 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38 },
+ { 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, NO_LED, 25 },
+ { 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11 },
+ { 10, 9, 8, NO_LED, NO_LED, 6, NO_LED, NO_LED, NO_LED, 4, 3, 2, 1, 0 }
+ },
+ {
+ /* LED Index to Physical Position */
+ {224,64},{207,64},{190,64},{172,64},{155,64}, {121,64}, {86,64}, {52,64}, {34,64},{17,64},{0,64},
+ {224,48},{207,48},{190,48},{172,48},{155,48},{138,48},{121,48},{103,48},{86,48},{69,48},{52,48},{34,48},{17,48},{0,48},
+ {224,32},{190,32},{172,32},{155,32},{138,32},{121,32},{103,32},{86,32},{69,32},{52,32},{34,32},{17,32},{0,32},
+ {224,16},{207,16},{190,16},{172,16},{155,16},{138,16},{121,16},{103,16},{86,16},{69,16},{52,16},{34,16},{17,16},{0,16},
+ {224,0},{207,0},{190,0},{172,0},{155,0},{138,0},{121,0},{103,0},{86,0},{69,0},{52,0},{34,0},{17,0},{0,0},
+ {0,0},{37,0},{75,0},{112,0},{149,0},{187,0},{224,0},
+ {0,32},
+ {224,64},{187,64},{149,64},{112,64},{75,64},{37,64},{0,64},
+ {224,32}
+ },
+ {
+ /* LED Index to Flag */
+ 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, 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,
+ 4,4,4,4,4, 4,4,4,4,4,
+ 4,4,4,4,4, 4,
+ 2,2,2,2,2, 2,2,2,2,2,
+ 2,2,2,2,2, 2
+ }
+};
+
bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) {
return false;
diff --git a/keyboards/yandrstudio/nz67v2/keyboard.json b/keyboards/yandrstudio/nz67v2/keyboard.json
index 56de8d8b87..fc931f3427 100644
--- a/keyboards/yandrstudio/nz67v2/keyboard.json
+++ b/keyboards/yandrstudio/nz67v2/keyboard.json
@@ -65,94 +65,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4},
- {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4},
- {"matrix": [4, 3], "x": 48, "y": 64, "flags": 4},
- {"matrix": [4, 5], "x": 80, "y": 64, "flags": 4},
- {"matrix": [4, 7], "x": 112, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 144, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 160, "y": 64, "flags": 4},
- {"matrix": [4, 12], "x": 192, "y": 64, "flags": 4},
- {"matrix": [4, 13], "x": 208, "y": 64, "flags": 4},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 208, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 192, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 208, "y": 32, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4},
- {"x": 224, "y": 0, "flags": 2},
- {"x": 196, "y": 0, "flags": 2},
- {"x": 168, "y": 0, "flags": 2},
- {"x": 140, "y": 0, "flags": 2},
- {"x": 112, "y": 0, "flags": 2},
- {"x": 84, "y": 0, "flags": 2},
- {"x": 56, "y": 0, "flags": 2},
- {"x": 28, "y": 0, "flags": 2},
- {"x": 0, "y": 0, "flags": 2},
- {"x": 224, "y": 64, "flags": 2},
- {"x": 196, "y": 64, "flags": 2},
- {"x": 168, "y": 64, "flags": 2},
- {"x": 140, "y": 64, "flags": 2},
- {"x": 112, "y": 64, "flags": 2},
- {"x": 84, "y": 64, "flags": 2},
- {"x": 56, "y": 64, "flags": 2},
- {"x": 28, "y": 64, "flags": 2}
- ],
"max_brightness": 180,
"sleep": true
},
diff --git a/keyboards/yandrstudio/nz67v2/nz67v2.c b/keyboards/yandrstudio/nz67v2/nz67v2.c
index 22f3570607..c3162dd961 100644
--- a/keyboards/yandrstudio/nz67v2/nz67v2.c
+++ b/keyboards/yandrstudio/nz67v2/nz67v2.c
@@ -24,6 +24,36 @@ typedef union {
} kb_cums_t;
kb_cums_t kb_cums;
+led_config_t g_led_config = {
+ {
+ {54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68},
+ {53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39},
+ {25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, NO_LED, 37, 38},
+ {24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, NO_LED, 13, 12, 11},
+ {0, 1, 2, 3, NO_LED, 4, NO_LED, 5, NO_LED, 6, 7, NO_LED, 8, 9, 10}
+ },
+ {
+ {0,64},{16,64},{32,64},{48,64}, {80,64}, {112,64}, {144,64},{160,64}, {192,64},{208,64},{224,64},
+ {224,48},{208,48},{192,48}, {160,48},{144,48},{128,48},{112,48},{96,48},{80,48},{64,48},{48,48},{32,48},{16,48},{0,48},
+ {0,32},{16,32},{32,32},{48,32},{64,32},{80,32},{96,32},{112,32},{128,32},{144,32},{160,32},{176,32}, {208,32},{224,32},
+ {224,16},{208,16},{192,16},{176,16},{160,16},{144,16},{128,16},{112,16},{96,16},{80,16},{64,16},{48,16},{32,16},{16,16},{0,16},
+ {0,0},{16,0},{32,0},{48,0},{64,0},{80,0},{96,0},{112,0},{128,0},{144,0},{160,0},{176,0},{192,0},{208,0},{224,0},
+ {224,0},{196,0},{168,0},{140,0},{112,0},{84,0},{56,0},{28,0},{0,0},
+ {224,64},{196,64},{168,64},{140,64},{112,64},{84,64},{56,64},{28,64}
+ },
+ {
+ 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, 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,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2
+ }
+};
+
bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) {
return false;
diff --git a/keyboards/yandrstudio/tg67/keyboard.json b/keyboards/yandrstudio/tg67/keyboard.json
index 924b1ec689..8a1df37805 100644
--- a/keyboards/yandrstudio/tg67/keyboard.json
+++ b/keyboards/yandrstudio/tg67/keyboard.json
@@ -64,77 +64,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4},
- {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4},
- {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4},
- {"x": 48, "y": 64, "flags": 4},
- {"matrix": [4, 5], "x": 80, "y": 64, "flags": 4},
- {"x": 112, "y": 64, "flags": 4},
- {"matrix": [4, 9], "x": 144, "y": 64, "flags": 4},
- {"matrix": [4, 10], "x": 160, "y": 64, "flags": 4},
- {"matrix": [4, 12], "x": 192, "y": 64, "flags": 4},
- {"matrix": [4, 13], "x": 208, "y": 64, "flags": 4},
- {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4},
- {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4},
- {"matrix": [3, 13], "x": 208, "y": 48, "flags": 4},
- {"matrix": [3, 12], "x": 192, "y": 48, "flags": 4},
- {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4},
- {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4},
- {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4},
- {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4},
- {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4},
- {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4},
- {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4},
- {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4},
- {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4},
- {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4},
- {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
- {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4},
- {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4},
- {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4},
- {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4},
- {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4},
- {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4},
- {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4},
- {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4},
- {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4},
- {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4},
- {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4},
- {"matrix": [2, 13], "x": 208, "y": 32, "flags": 4},
- {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4},
- {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4},
- {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4},
- {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4},
- {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4},
- {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4},
- {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4},
- {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4},
- {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
- {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4},
- {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4},
- {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4},
- {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4},
- {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4},
- {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4},
- {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4},
- {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4},
- {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4},
- {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4},
- {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4},
- {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}
- ],
"max_brightness": 250,
"sleep": true
},
diff --git a/keyboards/yandrstudio/tg67/tg67.c b/keyboards/yandrstudio/tg67/tg67.c
new file mode 100644
index 0000000000..5384778a68
--- /dev/null
+++ b/keyboards/yandrstudio/tg67/tg67.c
@@ -0,0 +1,46 @@
+/* Copyright 2022 JasonRen(biu)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+
+led_config_t g_led_config = {
+ {
+ {54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68},
+ {53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39},
+ {25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, NO_LED, 37, 38},
+ {24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, NO_LED, 13, 12, 11},
+ {0, 1, 2, NO_LED, NO_LED, 4, NO_LED, NO_LED, NO_LED, 6, 7, NO_LED, 8, 9, 10}
+ },
+ {
+ {0,64},{16,64},{32,64},{48,64}, {80,64}, {112,64}, {144,64},{160,64}, {192,64},{208,64},{224,64},
+ {224,48},{208,48},{192,48}, {160,48},{144,48},{128,48},{112,48},{96,48},{80,48},{64,48},{48,48},{32,48},{16,48},{0,48},
+ {0,32},{16,32},{32,32},{48,32},{64,32},{80,32},{96,32},{112,32},{128,32},{144,32},{160,32},{176,32}, {208,32},{224,32},
+ {224,16},{208,16},{192,16},{176,16},{160,16},{144,16},{128,16},{112,16},{96,16},{80,16},{64,16},{48,16},{32,16},{16,16},{0,16},
+ {0,0},{16,0},{32,0},{48,0},{64,0},{80,0},{96,0},{112,0},{128,0},{144,0},{160,0},{176,0},{192,0},{208,0},{224,0}
+ },
+ {
+ 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, 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,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4
+ }
+};
+
+#endif
diff --git a/keyboards/yanghu/unicorne/info.json b/keyboards/yanghu/unicorne/info.json
index 838f9d330e..1b890dcaba 100644
--- a/keyboards/yanghu/unicorne/info.json
+++ b/keyboards/yanghu/unicorne/info.json
@@ -41,17 +41,7 @@
"driver": "pwm"
},
"rgb_matrix": {
- "driver": "ws2812",
- "layout": [
- {"matrix": [3, 5], "x": 94, "y": 60, "flags": 255},
- {"matrix": [2, 2], "x": 18, "y": 44, "flags": 255},
- {"matrix": [1, 2], "x": 8, "y": 10, "flags": 255},
- {"matrix": [1, 5], "x": 94, "y": 10, "flags": 255},
- {"matrix": [1, 8], "x": 130, "y": 10, "flags": 255},
- {"matrix": [1, 11], "x": 216, "y": 10, "flags": 255},
- {"matrix": [2, 11], "x": 208, "y": 44, "flags": 255},
- {"matrix": [3, 8], "x": 130, "y": 60, "flags": 255}
- ]
+ "driver": "ws2812"
},
"matrix_pins": {
"cols": ["A14", "A15", "B13", "B14", "B15", "A13", "A0", "A1", "A2", "A3", "A6", "A7"],
diff --git a/keyboards/yanghu/unicorne/unicorne.c b/keyboards/yanghu/unicorne/unicorne.c
index e1d173d8c5..bce8f52075 100644
--- a/keyboards/yanghu/unicorne/unicorne.c
+++ b/keyboards/yanghu/unicorne/unicorne.c
@@ -33,6 +33,37 @@ void i2c_init(void) {
}
}
+// LED matrix
+// physical location
+// 2 3 4 5
+//
+// 1 6
+// 0 7
+#ifdef RGB_MATRIX_ENABLE
+// clang-format off
+led_config_t g_led_config = {{
+ // Key Matrix to LED Index
+ // Since we only have 8 LEDs, map the keys near them to the same LED.
+ {2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5},
+ {2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5},
+ {1, 1, 1, 0, 0, 0, 7, 7, 7, 6, 6, 6},
+ {NO_LED, NO_LED, NO_LED, 0, 0, 0, 7, 7, 7, NO_LED, NO_LED, NO_LED},
+}, {// LED Index to Physical Position
+ {94, 60},
+ {18, 44},
+ {8, 10},
+ {94, 10},
+ {130,10},
+ {216, 10},
+ {208, 44},
+ {130, 60}
+}, {// LED Index to Flag
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
+ LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL
+}};
+// clang-format on
+#endif
+
#ifdef OLED_ENABLE
// OLED shared code
// The oled is vertical. Need to rotate 270 degrees.
diff --git a/keyboards/ymdk/ymd40/air40/air40.c b/keyboards/ymdk/ymd40/air40/air40.c
new file mode 100644
index 0000000000..633b4943ff
--- /dev/null
+++ b/keyboards/ymdk/ymd40/air40/air40.c
@@ -0,0 +1,43 @@
+/* Copyright 2022 Dennis Kruyt (dennis@kruyt.org)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#if defined(RGB_MATRIX_ENABLE)
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index for center 2u
+ {11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0},
+ {23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12},
+ {35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24},
+ {50, 49, 48, 47, 46, 43, 41, 40, 39, 38, 37, 36}
+ }, {
+ // LED Index to Physical Position, more positions due to extra leds for other layout options
+ { 0, 0}, { 20, 0}, { 40, 0}, {61, 0}, {81, 0}, {101, 0}, {122, 0}, {142, 0}, {162, 0}, {183, 0}, {203, 0}, {224, 0},
+ { 0, 21}, { 20, 21}, { 40, 21}, {61, 21}, {81, 21}, {101, 21}, {122, 21}, {142, 21}, {162, 21}, {183, 21}, {203, 21}, {224, 21},
+ { 0, 42}, { 20, 42}, { 40, 42}, {61, 42}, {81, 42}, {101, 42}, {122, 42}, {142, 42}, {162, 42}, {183, 42}, {203, 42}, {224, 42},
+ { 0, 64}, { 20, 64}, { 40, 64}, {61, 64}, {81, 64}, {85, 64}, {94, 64}, {103, 64}, {112, 64}, {122, 64}, {142, 64}, {162, 64}, {183, 64}, {203, 64}, {224, 64}
+
+ }, {
+ // LED Index to Flag
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 1, 1, 1, 1, 1 ,1 ,1, 1, 1, 1, 1, 1, 1, 1
+
+ }
+};
+#endif
diff --git a/keyboards/ymdk/ymd40/air40/keyboard.json b/keyboards/ymdk/ymd40/air40/keyboard.json
index ea21557423..0adc965cc7 100644
--- a/keyboards/ymdk/ymd40/air40/keyboard.json
+++ b/keyboards/ymdk/ymd40/air40/keyboard.json
@@ -60,59 +60,6 @@
"solid_multisplash": true
},
"driver": "ws2812",
- "layout": [
- {"matrix": [0, 11], "x": 0, "y": 0, "flags": 1},
- {"matrix": [0, 10], "x": 20, "y": 0, "flags": 4},
- {"matrix": [0, 9], "x": 40, "y": 0, "flags": 4},
- {"matrix": [0, 8], "x": 61, "y": 0, "flags": 4},
- {"matrix": [0, 7], "x": 81, "y": 0, "flags": 4},
- {"matrix": [0, 6], "x": 101, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 122, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 142, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 162, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 183, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 203, "y": 0, "flags": 4},
- {"matrix": [0, 0], "x": 224, "y": 0, "flags": 1},
- {"matrix": [1, 11], "x": 0, "y": 21, "flags": 1},
- {"matrix": [1, 10], "x": 20, "y": 21, "flags": 4},
- {"matrix": [1, 9], "x": 40, "y": 21, "flags": 4},
- {"matrix": [1, 8], "x": 61, "y": 21, "flags": 4},
- {"matrix": [1, 7], "x": 81, "y": 21, "flags": 4},
- {"matrix": [1, 6], "x": 101, "y": 21, "flags": 4},
- {"matrix": [1, 5], "x": 122, "y": 21, "flags": 4},
- {"matrix": [1, 4], "x": 142, "y": 21, "flags": 4},
- {"matrix": [1, 3], "x": 162, "y": 21, "flags": 4},
- {"matrix": [1, 2], "x": 183, "y": 21, "flags": 4},
- {"matrix": [1, 1], "x": 203, "y": 21, "flags": 4},
- {"matrix": [1, 0], "x": 224, "y": 21, "flags": 1},
- {"matrix": [2, 11], "x": 0, "y": 42, "flags": 1},
- {"matrix": [2, 10], "x": 20, "y": 42, "flags": 4},
- {"matrix": [2, 9], "x": 40, "y": 42, "flags": 4},
- {"matrix": [2, 8], "x": 61, "y": 42, "flags": 4},
- {"matrix": [2, 7], "x": 81, "y": 42, "flags": 4},
- {"matrix": [2, 6], "x": 101, "y": 42, "flags": 4},
- {"matrix": [2, 5], "x": 122, "y": 42, "flags": 4},
- {"matrix": [2, 4], "x": 142, "y": 42, "flags": 4},
- {"matrix": [2, 3], "x": 162, "y": 42, "flags": 4},
- {"matrix": [2, 2], "x": 183, "y": 42, "flags": 4},
- {"matrix": [2, 1], "x": 203, "y": 42, "flags": 4},
- {"matrix": [2, 0], "x": 224, "y": 42, "flags": 1},
- {"matrix": [3, 11], "x": 0, "y": 64, "flags": 1},
- {"matrix": [3, 10], "x": 20, "y": 64, "flags": 1},
- {"matrix": [3, 9], "x": 40, "y": 64, "flags": 1},
- {"matrix": [3, 8], "x": 61, "y": 64, "flags": 1},
- {"matrix": [3, 7], "x": 81, "y": 64, "flags": 1},
- {"matrix": [3, 6], "x": 85, "y": 64, "flags": 1},
- {"x": 94, "y": 64, "flags": 1},
- {"matrix": [3, 5], "x": 103, "y": 64, "flags": 1},
- {"x": 112, "y": 64, "flags": 1},
- {"x": 122, "y": 64, "flags": 1},
- {"matrix": [3, 4], "x": 142, "y": 64, "flags": 1},
- {"matrix": [3, 3], "x": 162, "y": 64, "flags": 1},
- {"matrix": [3, 2], "x": 183, "y": 64, "flags": 1},
- {"matrix": [3, 1], "x": 203, "y": 64, "flags": 1},
- {"matrix": [3, 0], "x": 224, "y": 64, "flags": 1}
- ],
"max_brightness": 130,
"sleep": true
},
diff --git a/keyboards/yncognito/batpad/batpad.c b/keyboards/yncognito/batpad/batpad.c
new file mode 100644
index 0000000000..d5eef4246d
--- /dev/null
+++ b/keyboards/yncognito/batpad/batpad.c
@@ -0,0 +1,35 @@
+/* Copyright 2020 Yncognito
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include "quantum.h"
+
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config ={
+ {
+ {4 ,5 ,6 ,7 },
+ {0 ,1 ,2 ,3 }
+ },
+ {
+ {0,0},{75,0},{145,0},{224,0},
+ {0,64},{75,64},{145,64},{224,64}
+ },
+ {
+ 0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04
+ }
+};
+
+#endif
diff --git a/keyboards/yncognito/batpad/keyboard.json b/keyboards/yncognito/batpad/keyboard.json
index 02e480ca22..3e62042a4e 100644
--- a/keyboards/yncognito/batpad/keyboard.json
+++ b/keyboards/yncognito/batpad/keyboard.json
@@ -60,16 +60,6 @@
"animation": "cycle_all"
},
"driver": "ws2812",
- "layout": [
- {"matrix": [1, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [1, 1], "x": 75, "y": 0, "flags": 4},
- {"matrix": [1, 2], "x": 145, "y": 0, "flags": 4},
- {"matrix": [1, 3], "x": 224, "y": 0, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 64, "flags": 4},
- {"matrix": [0, 1], "x": 75, "y": 64, "flags": 4},
- {"matrix": [0, 2], "x": 145, "y": 64, "flags": 4},
- {"matrix": [0, 3], "x": 224, "y": 64, "flags": 4}
- ],
"react_on_keyup": true
},
"features": {
diff --git a/keyboards/yushakobo/quick17/keyboard.json b/keyboards/yushakobo/quick17/keyboard.json
index 621bbf810a..627642a179 100644
--- a/keyboards/yushakobo/quick17/keyboard.json
+++ b/keyboards/yushakobo/quick17/keyboard.json
@@ -18,26 +18,6 @@
},
"rgb_matrix": {
"driver": "ws2812",
- "layout": [
- {"matrix": [1, 0], "x": 0, "y": 32, "flags": 4},
- {"matrix": [1, 1], "x": 44, "y": 32, "flags": 4},
- {"matrix": [2, 0], "x": 0, "y": 64, "flags": 4},
- {"matrix": [2, 1], "x": 44, "y": 64, "flags": 4},
- {"matrix": [2, 2], "x": 89, "y": 64, "flags": 4},
- {"matrix": [2, 3], "x": 134, "y": 64, "flags": 4},
- {"matrix": [2, 4], "x": 179, "y": 64, "flags": 4},
- {"matrix": [2, 5], "x": 224, "y": 64, "flags": 4},
- {"matrix": [1, 5], "x": 224, "y": 32, "flags": 4},
- {"matrix": [1, 4], "x": 179, "y": 32, "flags": 4},
- {"matrix": [1, 3], "x": 134, "y": 32, "flags": 4},
- {"matrix": [1, 2], "x": 89, "y": 32, "flags": 4},
- {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
- {"matrix": [0, 1], "x": 44, "y": 0, "flags": 4},
- {"matrix": [0, 2], "x": 89, "y": 0, "flags": 4},
- {"matrix": [0, 3], "x": 134, "y": 0, "flags": 4},
- {"matrix": [0, 4], "x": 179, "y": 0, "flags": 4},
- {"matrix": [0, 5], "x": 224, "y": 0, "flags": 4}
- ],
"max_brightness": 150,
"sat_steps": 8,
"sleep": true,
diff --git a/keyboards/yushakobo/quick17/quick17.c b/keyboards/yushakobo/quick17/quick17.c
new file mode 100644
index 0000000000..d6fe84199b
--- /dev/null
+++ b/keyboards/yushakobo/quick17/quick17.c
@@ -0,0 +1,37 @@
+/* Copyright 2021 yushakobo
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = {
+ {
+ {12, 13, 14, 15, 16, 17},
+ {0, 1, 11, 10, 9, 8},
+ {2, 3, 4, 5, 6, 7}
+ },
+ {
+ {0,32}, {44,32}, {0,64}, {44,64}, {89,64}, {134,64},
+ {179,64},{224,64},{224,32},{179,32},{134,32},{89,32},
+ {0,0}, {44,0}, {89,0}, {134,0}, {179,0}, {224,0}
+ },
+ {
+ 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4
+ }
+};
+#endif
diff --git a/keyboards/zeix/singa/rubrehaku/config.h b/keyboards/zeix/singa/rubrehaku/config.h
new file mode 100644
index 0000000000..e47dae35e6
--- /dev/null
+++ b/keyboards/zeix/singa/rubrehaku/config.h
@@ -0,0 +1,20 @@
+/*
+Copyright 2024 zeix (@itsme-zeix)
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+#pragma once
+
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
diff --git a/keyboards/zeix/singa/rubrehaku/keyboard.json b/keyboards/zeix/singa/rubrehaku/keyboard.json
new file mode 100644
index 0000000000..3dbed82aab
--- /dev/null
+++ b/keyboards/zeix/singa/rubrehaku/keyboard.json
@@ -0,0 +1,694 @@
+{
+ "manufacturer": "KLC",
+ "keyboard_name": "Rubrehaku",
+ "maintainer": "itsme-zeix",
+ "bootloader": "rp2040",
+ "diode_direction": "COL2ROW",
+ "features": {
+ "bootmagic": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgblight": true
+ },
+ "indicators": {
+ "caps_lock": "GP29"
+ },
+ "matrix_pins": {
+ "cols": ["GP7", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0"],
+ "rows": ["GP27", "GP28", "GP10", "GP11", "GP18", "GP19", "GP23", "GP24", "GP25", "GP26"]
+ },
+ "processor": "RP2040",
+ "rgblight": {
+ "animations": {
+ "alternating": true,
+ "breathing": true,
+ "christmas": true,
+ "knight": true,
+ "rainbow_mood": true,
+ "rainbow_swirl": true,
+ "snake": true,
+ "static_gradient": true,
+ "twinkle": true
+ },
+ "default": {
+ "hue": 210,
+ "sat": 100,
+ "val": 8
+ },
+ "driver": "ws2812",
+ "led_count": 16,
+ "sleep": true
+ },
+ "url": "https://klc-playground.com",
+ "usb": {
+ "device_version": "0.0.1",
+ "pid": "0x8889",
+ "vid": "0x4C27"
+ },
+ "ws2812": {
+ "driver": "vendor",
+ "pin": "GP20"
+ },
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [1, 0], "x": 1, "y": 0},
+ {"matrix": [0, 1], "x": 2, "y": 0},
+ {"matrix": [1, 1], "x": 3, "y": 0},
+ {"matrix": [0, 2], "x": 4, "y": 0},
+ {"matrix": [1, 2], "x": 5, "y": 0},
+ {"matrix": [0, 3], "x": 6, "y": 0},
+ {"matrix": [1, 3], "x": 7, "y": 0},
+ {"matrix": [0, 4], "x": 8, "y": 0},
+ {"matrix": [1, 4], "x": 9, "y": 0},
+ {"matrix": [0, 5], "x": 10, "y": 0},
+ {"matrix": [1, 5], "x": 11, "y": 0},
+ {"matrix": [0, 6], "x": 12, "y": 0},
+ {"matrix": [1, 6], "x": 13, "y": 0},
+ {"matrix": [0, 7], "x": 14, "y": 0},
+ {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [3, 0], "x": 1.5, "y": 1},
+ {"matrix": [2, 1], "x": 2.5, "y": 1},
+ {"matrix": [3, 1], "x": 3.5, "y": 1},
+ {"matrix": [2, 2], "x": 4.5, "y": 1},
+ {"matrix": [3, 2], "x": 5.5, "y": 1},
+ {"matrix": [2, 3], "x": 6.5, "y": 1},
+ {"matrix": [3, 3], "x": 7.5, "y": 1},
+ {"matrix": [2, 4], "x": 8.5, "y": 1},
+ {"matrix": [3, 4], "x": 9.5, "y": 1},
+ {"matrix": [2, 5], "x": 10.5, "y": 1},
+ {"matrix": [3, 5], "x": 11.5, "y": 1},
+ {"matrix": [2, 6], "x": 12.5, "y": 1},
+ {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [3, 7], "x": 15, "y": 1},
+ {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [5, 0], "x": 1.75, "y": 2},
+ {"matrix": [4, 1], "x": 2.75, "y": 2},
+ {"matrix": [5, 1], "x": 3.75, "y": 2},
+ {"matrix": [4, 2], "x": 4.75, "y": 2},
+ {"matrix": [5, 2], "x": 5.75, "y": 2},
+ {"matrix": [4, 3], "x": 6.75, "y": 2},
+ {"matrix": [5, 3], "x": 7.75, "y": 2},
+ {"matrix": [4, 4], "x": 8.75, "y": 2},
+ {"matrix": [5, 4], "x": 9.75, "y": 2},
+ {"matrix": [4, 5], "x": 10.75, "y": 2},
+ {"matrix": [5, 5], "x": 11.75, "y": 2},
+ {"matrix": [4, 6], "x": 12.75, "y": 2},
+ {"matrix": [5, 6], "x": 13.75, "y": 2, "w": 1.25},
+ {"matrix": [5, 7], "x": 15, "y": 2},
+ {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [7, 0], "x": 1.25, "y": 3},
+ {"matrix": [6, 1], "x": 2.25, "y": 3},
+ {"matrix": [7, 1], "x": 3.25, "y": 3},
+ {"matrix": [6, 2], "x": 4.25, "y": 3},
+ {"matrix": [7, 2], "x": 5.25, "y": 3},
+ {"matrix": [6, 3], "x": 6.25, "y": 3},
+ {"matrix": [7, 3], "x": 7.25, "y": 3},
+ {"matrix": [6, 4], "x": 8.25, "y": 3},
+ {"matrix": [7, 4], "x": 9.25, "y": 3},
+ {"matrix": [6, 5], "x": 10.25, "y": 3},
+ {"matrix": [7, 5], "x": 11.25, "y": 3},
+ {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [7, 6], "x": 14, "y": 3},
+ {"matrix": [7, 7], "x": 15, "y": 3},
+ {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25},
+ {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25},
+ {"matrix": [9, 2], "x": 3.75, "y": 4, "w": 2.75},
+ {"matrix": [8, 3], "x": 6.5, "y": 4, "w": 1.25},
+ {"matrix": [9, 4], "x": 7.75, "y": 4, "w": 2.25},
+ {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25},
+ {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25},
+ {"matrix": [8, 6], "x": 13, "y": 4},
+ {"matrix": [9, 6], "x": 14, "y": 4},
+ {"matrix": [9, 7], "x": 15, "y": 4}
+ ]
+ },
+ "LAYOUT_ansi": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [1, 0], "x": 1, "y": 0},
+ {"matrix": [0, 1], "x": 2, "y": 0},
+ {"matrix": [1, 1], "x": 3, "y": 0},
+ {"matrix": [0, 2], "x": 4, "y": 0},
+ {"matrix": [1, 2], "x": 5, "y": 0},
+ {"matrix": [0, 3], "x": 6, "y": 0},
+ {"matrix": [1, 3], "x": 7, "y": 0},
+ {"matrix": [0, 4], "x": 8, "y": 0},
+ {"matrix": [1, 4], "x": 9, "y": 0},
+ {"matrix": [0, 5], "x": 10, "y": 0},
+ {"matrix": [1, 5], "x": 11, "y": 0},
+ {"matrix": [0, 6], "x": 12, "y": 0},
+ {"matrix": [0, 7], "x": 13, "y": 0, "w": 2},
+ {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [3, 0], "x": 1.5, "y": 1},
+ {"matrix": [2, 1], "x": 2.5, "y": 1},
+ {"matrix": [3, 1], "x": 3.5, "y": 1},
+ {"matrix": [2, 2], "x": 4.5, "y": 1},
+ {"matrix": [3, 2], "x": 5.5, "y": 1},
+ {"matrix": [2, 3], "x": 6.5, "y": 1},
+ {"matrix": [3, 3], "x": 7.5, "y": 1},
+ {"matrix": [2, 4], "x": 8.5, "y": 1},
+ {"matrix": [3, 4], "x": 9.5, "y": 1},
+ {"matrix": [2, 5], "x": 10.5, "y": 1},
+ {"matrix": [3, 5], "x": 11.5, "y": 1},
+ {"matrix": [2, 6], "x": 12.5, "y": 1},
+ {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [3, 7], "x": 15, "y": 1},
+ {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [5, 0], "x": 1.75, "y": 2},
+ {"matrix": [4, 1], "x": 2.75, "y": 2},
+ {"matrix": [5, 1], "x": 3.75, "y": 2},
+ {"matrix": [4, 2], "x": 4.75, "y": 2},
+ {"matrix": [5, 2], "x": 5.75, "y": 2},
+ {"matrix": [4, 3], "x": 6.75, "y": 2},
+ {"matrix": [5, 3], "x": 7.75, "y": 2},
+ {"matrix": [4, 4], "x": 8.75, "y": 2},
+ {"matrix": [5, 4], "x": 9.75, "y": 2},
+ {"matrix": [4, 5], "x": 10.75, "y": 2},
+ {"matrix": [5, 5], "x": 11.75, "y": 2},
+ {"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
+ {"matrix": [5, 7], "x": 15, "y": 2},
+ {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [6, 1], "x": 2.25, "y": 3},
+ {"matrix": [7, 1], "x": 3.25, "y": 3},
+ {"matrix": [6, 2], "x": 4.25, "y": 3},
+ {"matrix": [7, 2], "x": 5.25, "y": 3},
+ {"matrix": [6, 3], "x": 6.25, "y": 3},
+ {"matrix": [7, 3], "x": 7.25, "y": 3},
+ {"matrix": [6, 4], "x": 8.25, "y": 3},
+ {"matrix": [7, 4], "x": 9.25, "y": 3},
+ {"matrix": [6, 5], "x": 10.25, "y": 3},
+ {"matrix": [7, 5], "x": 11.25, "y": 3},
+ {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [7, 6], "x": 14, "y": 3},
+ {"matrix": [7, 7], "x": 15, "y": 3},
+ {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25},
+ {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25},
+ {"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25},
+ {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25},
+ {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25},
+ {"matrix": [8, 6], "x": 13, "y": 4},
+ {"matrix": [9, 6], "x": 14, "y": 4},
+ {"matrix": [9, 7], "x": 15, "y": 4}
+ ]
+ },
+ "LAYOUT_ansi_split_bs": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [1, 0], "x": 1, "y": 0},
+ {"matrix": [0, 1], "x": 2, "y": 0},
+ {"matrix": [1, 1], "x": 3, "y": 0},
+ {"matrix": [0, 2], "x": 4, "y": 0},
+ {"matrix": [1, 2], "x": 5, "y": 0},
+ {"matrix": [0, 3], "x": 6, "y": 0},
+ {"matrix": [1, 3], "x": 7, "y": 0},
+ {"matrix": [0, 4], "x": 8, "y": 0},
+ {"matrix": [1, 4], "x": 9, "y": 0},
+ {"matrix": [0, 5], "x": 10, "y": 0},
+ {"matrix": [1, 5], "x": 11, "y": 0},
+ {"matrix": [0, 6], "x": 12, "y": 0},
+ {"matrix": [1, 6], "x": 13, "y": 0},
+ {"matrix": [0, 7], "x": 14, "y": 0},
+ {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [3, 0], "x": 1.5, "y": 1},
+ {"matrix": [2, 1], "x": 2.5, "y": 1},
+ {"matrix": [3, 1], "x": 3.5, "y": 1},
+ {"matrix": [2, 2], "x": 4.5, "y": 1},
+ {"matrix": [3, 2], "x": 5.5, "y": 1},
+ {"matrix": [2, 3], "x": 6.5, "y": 1},
+ {"matrix": [3, 3], "x": 7.5, "y": 1},
+ {"matrix": [2, 4], "x": 8.5, "y": 1},
+ {"matrix": [3, 4], "x": 9.5, "y": 1},
+ {"matrix": [2, 5], "x": 10.5, "y": 1},
+ {"matrix": [3, 5], "x": 11.5, "y": 1},
+ {"matrix": [2, 6], "x": 12.5, "y": 1},
+ {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [3, 7], "x": 15, "y": 1},
+ {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [5, 0], "x": 1.75, "y": 2},
+ {"matrix": [4, 1], "x": 2.75, "y": 2},
+ {"matrix": [5, 1], "x": 3.75, "y": 2},
+ {"matrix": [4, 2], "x": 4.75, "y": 2},
+ {"matrix": [5, 2], "x": 5.75, "y": 2},
+ {"matrix": [4, 3], "x": 6.75, "y": 2},
+ {"matrix": [5, 3], "x": 7.75, "y": 2},
+ {"matrix": [4, 4], "x": 8.75, "y": 2},
+ {"matrix": [5, 4], "x": 9.75, "y": 2},
+ {"matrix": [4, 5], "x": 10.75, "y": 2},
+ {"matrix": [5, 5], "x": 11.75, "y": 2},
+ {"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
+ {"matrix": [5, 7], "x": 15, "y": 2},
+ {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [6, 1], "x": 2.25, "y": 3},
+ {"matrix": [7, 1], "x": 3.25, "y": 3},
+ {"matrix": [6, 2], "x": 4.25, "y": 3},
+ {"matrix": [7, 2], "x": 5.25, "y": 3},
+ {"matrix": [6, 3], "x": 6.25, "y": 3},
+ {"matrix": [7, 3], "x": 7.25, "y": 3},
+ {"matrix": [6, 4], "x": 8.25, "y": 3},
+ {"matrix": [7, 4], "x": 9.25, "y": 3},
+ {"matrix": [6, 5], "x": 10.25, "y": 3},
+ {"matrix": [7, 5], "x": 11.25, "y": 3},
+ {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [7, 6], "x": 14, "y": 3},
+ {"matrix": [7, 7], "x": 15, "y": 3},
+ {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25},
+ {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25},
+ {"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25},
+ {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25},
+ {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25},
+ {"matrix": [8, 6], "x": 13, "y": 4},
+ {"matrix": [9, 6], "x": 14, "y": 4},
+ {"matrix": [9, 7], "x": 15, "y": 4}
+ ]
+ },
+ "LAYOUT_ansi_tsangan": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [1, 0], "x": 1, "y": 0},
+ {"matrix": [0, 1], "x": 2, "y": 0},
+ {"matrix": [1, 1], "x": 3, "y": 0},
+ {"matrix": [0, 2], "x": 4, "y": 0},
+ {"matrix": [1, 2], "x": 5, "y": 0},
+ {"matrix": [0, 3], "x": 6, "y": 0},
+ {"matrix": [1, 3], "x": 7, "y": 0},
+ {"matrix": [0, 4], "x": 8, "y": 0},
+ {"matrix": [1, 4], "x": 9, "y": 0},
+ {"matrix": [0, 5], "x": 10, "y": 0},
+ {"matrix": [1, 5], "x": 11, "y": 0},
+ {"matrix": [0, 6], "x": 12, "y": 0},
+ {"matrix": [0, 7], "x": 13, "y": 0, "w": 2},
+ {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [3, 0], "x": 1.5, "y": 1},
+ {"matrix": [2, 1], "x": 2.5, "y": 1},
+ {"matrix": [3, 1], "x": 3.5, "y": 1},
+ {"matrix": [2, 2], "x": 4.5, "y": 1},
+ {"matrix": [3, 2], "x": 5.5, "y": 1},
+ {"matrix": [2, 3], "x": 6.5, "y": 1},
+ {"matrix": [3, 3], "x": 7.5, "y": 1},
+ {"matrix": [2, 4], "x": 8.5, "y": 1},
+ {"matrix": [3, 4], "x": 9.5, "y": 1},
+ {"matrix": [2, 5], "x": 10.5, "y": 1},
+ {"matrix": [3, 5], "x": 11.5, "y": 1},
+ {"matrix": [2, 6], "x": 12.5, "y": 1},
+ {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [3, 7], "x": 15, "y": 1},
+ {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [5, 0], "x": 1.75, "y": 2},
+ {"matrix": [4, 1], "x": 2.75, "y": 2},
+ {"matrix": [5, 1], "x": 3.75, "y": 2},
+ {"matrix": [4, 2], "x": 4.75, "y": 2},
+ {"matrix": [5, 2], "x": 5.75, "y": 2},
+ {"matrix": [4, 3], "x": 6.75, "y": 2},
+ {"matrix": [5, 3], "x": 7.75, "y": 2},
+ {"matrix": [4, 4], "x": 8.75, "y": 2},
+ {"matrix": [5, 4], "x": 9.75, "y": 2},
+ {"matrix": [4, 5], "x": 10.75, "y": 2},
+ {"matrix": [5, 5], "x": 11.75, "y": 2},
+ {"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
+ {"matrix": [5, 7], "x": 15, "y": 2},
+ {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [6, 1], "x": 2.25, "y": 3},
+ {"matrix": [7, 1], "x": 3.25, "y": 3},
+ {"matrix": [6, 2], "x": 4.25, "y": 3},
+ {"matrix": [7, 2], "x": 5.25, "y": 3},
+ {"matrix": [6, 3], "x": 6.25, "y": 3},
+ {"matrix": [7, 3], "x": 7.25, "y": 3},
+ {"matrix": [6, 4], "x": 8.25, "y": 3},
+ {"matrix": [7, 4], "x": 9.25, "y": 3},
+ {"matrix": [6, 5], "x": 10.25, "y": 3},
+ {"matrix": [7, 5], "x": 11.25, "y": 3},
+ {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [7, 6], "x": 14, "y": 3},
+ {"matrix": [7, 7], "x": 15, "y": 3},
+ {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [9, 0], "x": 1.5, "y": 4},
+ {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
+ {"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [8, 6], "x": 13, "y": 4},
+ {"matrix": [9, 6], "x": 14, "y": 4},
+ {"matrix": [9, 7], "x": 15, "y": 4}
+ ]
+ },
+ "LAYOUT_ansi_tsangan_split_bs": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [1, 0], "x": 1, "y": 0},
+ {"matrix": [0, 1], "x": 2, "y": 0},
+ {"matrix": [1, 1], "x": 3, "y": 0},
+ {"matrix": [0, 2], "x": 4, "y": 0},
+ {"matrix": [1, 2], "x": 5, "y": 0},
+ {"matrix": [0, 3], "x": 6, "y": 0},
+ {"matrix": [1, 3], "x": 7, "y": 0},
+ {"matrix": [0, 4], "x": 8, "y": 0},
+ {"matrix": [1, 4], "x": 9, "y": 0},
+ {"matrix": [0, 5], "x": 10, "y": 0},
+ {"matrix": [1, 5], "x": 11, "y": 0},
+ {"matrix": [0, 6], "x": 12, "y": 0},
+ {"matrix": [1, 6], "x": 13, "y": 0},
+ {"matrix": [0, 7], "x": 14, "y": 0},
+ {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [3, 0], "x": 1.5, "y": 1},
+ {"matrix": [2, 1], "x": 2.5, "y": 1},
+ {"matrix": [3, 1], "x": 3.5, "y": 1},
+ {"matrix": [2, 2], "x": 4.5, "y": 1},
+ {"matrix": [3, 2], "x": 5.5, "y": 1},
+ {"matrix": [2, 3], "x": 6.5, "y": 1},
+ {"matrix": [3, 3], "x": 7.5, "y": 1},
+ {"matrix": [2, 4], "x": 8.5, "y": 1},
+ {"matrix": [3, 4], "x": 9.5, "y": 1},
+ {"matrix": [2, 5], "x": 10.5, "y": 1},
+ {"matrix": [3, 5], "x": 11.5, "y": 1},
+ {"matrix": [2, 6], "x": 12.5, "y": 1},
+ {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [3, 7], "x": 15, "y": 1},
+ {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [5, 0], "x": 1.75, "y": 2},
+ {"matrix": [4, 1], "x": 2.75, "y": 2},
+ {"matrix": [5, 1], "x": 3.75, "y": 2},
+ {"matrix": [4, 2], "x": 4.75, "y": 2},
+ {"matrix": [5, 2], "x": 5.75, "y": 2},
+ {"matrix": [4, 3], "x": 6.75, "y": 2},
+ {"matrix": [5, 3], "x": 7.75, "y": 2},
+ {"matrix": [4, 4], "x": 8.75, "y": 2},
+ {"matrix": [5, 4], "x": 9.75, "y": 2},
+ {"matrix": [4, 5], "x": 10.75, "y": 2},
+ {"matrix": [5, 5], "x": 11.75, "y": 2},
+ {"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
+ {"matrix": [5, 7], "x": 15, "y": 2},
+ {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [6, 1], "x": 2.25, "y": 3},
+ {"matrix": [7, 1], "x": 3.25, "y": 3},
+ {"matrix": [6, 2], "x": 4.25, "y": 3},
+ {"matrix": [7, 2], "x": 5.25, "y": 3},
+ {"matrix": [6, 3], "x": 6.25, "y": 3},
+ {"matrix": [7, 3], "x": 7.25, "y": 3},
+ {"matrix": [6, 4], "x": 8.25, "y": 3},
+ {"matrix": [7, 4], "x": 9.25, "y": 3},
+ {"matrix": [6, 5], "x": 10.25, "y": 3},
+ {"matrix": [7, 5], "x": 11.25, "y": 3},
+ {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [7, 6], "x": 14, "y": 3},
+ {"matrix": [7, 7], "x": 15, "y": 3},
+ {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [9, 0], "x": 1.5, "y": 4},
+ {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
+ {"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [8, 6], "x": 13, "y": 4},
+ {"matrix": [9, 6], "x": 14, "y": 4},
+ {"matrix": [9, 7], "x": 15, "y": 4}
+ ]
+ },
+ "LAYOUT_iso": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [1, 0], "x": 1, "y": 0},
+ {"matrix": [0, 1], "x": 2, "y": 0},
+ {"matrix": [1, 1], "x": 3, "y": 0},
+ {"matrix": [0, 2], "x": 4, "y": 0},
+ {"matrix": [1, 2], "x": 5, "y": 0},
+ {"matrix": [0, 3], "x": 6, "y": 0},
+ {"matrix": [1, 3], "x": 7, "y": 0},
+ {"matrix": [0, 4], "x": 8, "y": 0},
+ {"matrix": [1, 4], "x": 9, "y": 0},
+ {"matrix": [0, 5], "x": 10, "y": 0},
+ {"matrix": [1, 5], "x": 11, "y": 0},
+ {"matrix": [0, 6], "x": 12, "y": 0},
+ {"matrix": [0, 7], "x": 13, "y": 0, "w": 2},
+ {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [3, 0], "x": 1.5, "y": 1},
+ {"matrix": [2, 1], "x": 2.5, "y": 1},
+ {"matrix": [3, 1], "x": 3.5, "y": 1},
+ {"matrix": [2, 2], "x": 4.5, "y": 1},
+ {"matrix": [3, 2], "x": 5.5, "y": 1},
+ {"matrix": [2, 3], "x": 6.5, "y": 1},
+ {"matrix": [3, 3], "x": 7.5, "y": 1},
+ {"matrix": [2, 4], "x": 8.5, "y": 1},
+ {"matrix": [3, 4], "x": 9.5, "y": 1},
+ {"matrix": [2, 5], "x": 10.5, "y": 1},
+ {"matrix": [3, 5], "x": 11.5, "y": 1},
+ {"matrix": [2, 6], "x": 12.5, "y": 1},
+ {"matrix": [3, 7], "x": 15, "y": 1},
+ {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [5, 0], "x": 1.75, "y": 2},
+ {"matrix": [4, 1], "x": 2.75, "y": 2},
+ {"matrix": [5, 1], "x": 3.75, "y": 2},
+ {"matrix": [4, 2], "x": 4.75, "y": 2},
+ {"matrix": [5, 2], "x": 5.75, "y": 2},
+ {"matrix": [4, 3], "x": 6.75, "y": 2},
+ {"matrix": [5, 3], "x": 7.75, "y": 2},
+ {"matrix": [4, 4], "x": 8.75, "y": 2},
+ {"matrix": [5, 4], "x": 9.75, "y": 2},
+ {"matrix": [4, 5], "x": 10.75, "y": 2},
+ {"matrix": [5, 5], "x": 11.75, "y": 2},
+ {"matrix": [4, 6], "x": 12.75, "y": 2},
+ {"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+ {"matrix": [5, 7], "x": 15, "y": 2},
+ {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [7, 0], "x": 1.25, "y": 3},
+ {"matrix": [6, 1], "x": 2.25, "y": 3},
+ {"matrix": [7, 1], "x": 3.25, "y": 3},
+ {"matrix": [6, 2], "x": 4.25, "y": 3},
+ {"matrix": [7, 2], "x": 5.25, "y": 3},
+ {"matrix": [6, 3], "x": 6.25, "y": 3},
+ {"matrix": [7, 3], "x": 7.25, "y": 3},
+ {"matrix": [6, 4], "x": 8.25, "y": 3},
+ {"matrix": [7, 4], "x": 9.25, "y": 3},
+ {"matrix": [6, 5], "x": 10.25, "y": 3},
+ {"matrix": [7, 5], "x": 11.25, "y": 3},
+ {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [7, 6], "x": 14, "y": 3},
+ {"matrix": [7, 7], "x": 15, "y": 3},
+ {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25},
+ {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25},
+ {"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25},
+ {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25},
+ {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25},
+ {"matrix": [8, 6], "x": 13, "y": 4},
+ {"matrix": [9, 6], "x": 14, "y": 4},
+ {"matrix": [9, 7], "x": 15, "y": 4}
+ ]
+ },
+ "LAYOUT_iso_split_bs": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [1, 0], "x": 1, "y": 0},
+ {"matrix": [0, 1], "x": 2, "y": 0},
+ {"matrix": [1, 1], "x": 3, "y": 0},
+ {"matrix": [0, 2], "x": 4, "y": 0},
+ {"matrix": [1, 2], "x": 5, "y": 0},
+ {"matrix": [0, 3], "x": 6, "y": 0},
+ {"matrix": [1, 3], "x": 7, "y": 0},
+ {"matrix": [0, 4], "x": 8, "y": 0},
+ {"matrix": [1, 4], "x": 9, "y": 0},
+ {"matrix": [0, 5], "x": 10, "y": 0},
+ {"matrix": [1, 5], "x": 11, "y": 0},
+ {"matrix": [0, 6], "x": 12, "y": 0},
+ {"matrix": [1, 6], "x": 13, "y": 0},
+ {"matrix": [0, 7], "x": 14, "y": 0},
+ {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [3, 0], "x": 1.5, "y": 1},
+ {"matrix": [2, 1], "x": 2.5, "y": 1},
+ {"matrix": [3, 1], "x": 3.5, "y": 1},
+ {"matrix": [2, 2], "x": 4.5, "y": 1},
+ {"matrix": [3, 2], "x": 5.5, "y": 1},
+ {"matrix": [2, 3], "x": 6.5, "y": 1},
+ {"matrix": [3, 3], "x": 7.5, "y": 1},
+ {"matrix": [2, 4], "x": 8.5, "y": 1},
+ {"matrix": [3, 4], "x": 9.5, "y": 1},
+ {"matrix": [2, 5], "x": 10.5, "y": 1},
+ {"matrix": [3, 5], "x": 11.5, "y": 1},
+ {"matrix": [2, 6], "x": 12.5, "y": 1},
+ {"matrix": [3, 7], "x": 15, "y": 1},
+ {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [5, 0], "x": 1.75, "y": 2},
+ {"matrix": [4, 1], "x": 2.75, "y": 2},
+ {"matrix": [5, 1], "x": 3.75, "y": 2},
+ {"matrix": [4, 2], "x": 4.75, "y": 2},
+ {"matrix": [5, 2], "x": 5.75, "y": 2},
+ {"matrix": [4, 3], "x": 6.75, "y": 2},
+ {"matrix": [5, 3], "x": 7.75, "y": 2},
+ {"matrix": [4, 4], "x": 8.75, "y": 2},
+ {"matrix": [5, 4], "x": 9.75, "y": 2},
+ {"matrix": [4, 5], "x": 10.75, "y": 2},
+ {"matrix": [5, 5], "x": 11.75, "y": 2},
+ {"matrix": [4, 6], "x": 12.75, "y": 2},
+ {"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+ {"matrix": [5, 7], "x": 15, "y": 2},
+ {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [7, 0], "x": 1.25, "y": 3},
+ {"matrix": [6, 1], "x": 2.25, "y": 3},
+ {"matrix": [7, 1], "x": 3.25, "y": 3},
+ {"matrix": [6, 2], "x": 4.25, "y": 3},
+ {"matrix": [7, 2], "x": 5.25, "y": 3},
+ {"matrix": [6, 3], "x": 6.25, "y": 3},
+ {"matrix": [7, 3], "x": 7.25, "y": 3},
+ {"matrix": [6, 4], "x": 8.25, "y": 3},
+ {"matrix": [7, 4], "x": 9.25, "y": 3},
+ {"matrix": [6, 5], "x": 10.25, "y": 3},
+ {"matrix": [7, 5], "x": 11.25, "y": 3},
+ {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [7, 6], "x": 14, "y": 3},
+ {"matrix": [7, 7], "x": 15, "y": 3},
+ {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25},
+ {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25},
+ {"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25},
+ {"matrix": [8, 5], "x": 10, "y": 4, "w": 1.25},
+ {"matrix": [9, 5], "x": 11.25, "y": 4, "w": 1.25},
+ {"matrix": [8, 6], "x": 13, "y": 4},
+ {"matrix": [9, 6], "x": 14, "y": 4},
+ {"matrix": [9, 7], "x": 15, "y": 4}
+ ]
+ },
+ "LAYOUT_iso_tsangan": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [1, 0], "x": 1, "y": 0},
+ {"matrix": [0, 1], "x": 2, "y": 0},
+ {"matrix": [1, 1], "x": 3, "y": 0},
+ {"matrix": [0, 2], "x": 4, "y": 0},
+ {"matrix": [1, 2], "x": 5, "y": 0},
+ {"matrix": [0, 3], "x": 6, "y": 0},
+ {"matrix": [1, 3], "x": 7, "y": 0},
+ {"matrix": [0, 4], "x": 8, "y": 0},
+ {"matrix": [1, 4], "x": 9, "y": 0},
+ {"matrix": [0, 5], "x": 10, "y": 0},
+ {"matrix": [1, 5], "x": 11, "y": 0},
+ {"matrix": [0, 6], "x": 12, "y": 0},
+ {"matrix": [0, 7], "x": 13, "y": 0, "w": 2},
+ {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [3, 0], "x": 1.5, "y": 1},
+ {"matrix": [2, 1], "x": 2.5, "y": 1},
+ {"matrix": [3, 1], "x": 3.5, "y": 1},
+ {"matrix": [2, 2], "x": 4.5, "y": 1},
+ {"matrix": [3, 2], "x": 5.5, "y": 1},
+ {"matrix": [2, 3], "x": 6.5, "y": 1},
+ {"matrix": [3, 3], "x": 7.5, "y": 1},
+ {"matrix": [2, 4], "x": 8.5, "y": 1},
+ {"matrix": [3, 4], "x": 9.5, "y": 1},
+ {"matrix": [2, 5], "x": 10.5, "y": 1},
+ {"matrix": [3, 5], "x": 11.5, "y": 1},
+ {"matrix": [2, 6], "x": 12.5, "y": 1},
+ {"matrix": [3, 7], "x": 15, "y": 1},
+ {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [5, 0], "x": 1.75, "y": 2},
+ {"matrix": [4, 1], "x": 2.75, "y": 2},
+ {"matrix": [5, 1], "x": 3.75, "y": 2},
+ {"matrix": [4, 2], "x": 4.75, "y": 2},
+ {"matrix": [5, 2], "x": 5.75, "y": 2},
+ {"matrix": [4, 3], "x": 6.75, "y": 2},
+ {"matrix": [5, 3], "x": 7.75, "y": 2},
+ {"matrix": [4, 4], "x": 8.75, "y": 2},
+ {"matrix": [5, 4], "x": 9.75, "y": 2},
+ {"matrix": [4, 5], "x": 10.75, "y": 2},
+ {"matrix": [5, 5], "x": 11.75, "y": 2},
+ {"matrix": [4, 6], "x": 12.75, "y": 2},
+ {"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+ {"matrix": [5, 7], "x": 15, "y": 2},
+ {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [7, 0], "x": 1.25, "y": 3},
+ {"matrix": [6, 1], "x": 2.25, "y": 3},
+ {"matrix": [7, 1], "x": 3.25, "y": 3},
+ {"matrix": [6, 2], "x": 4.25, "y": 3},
+ {"matrix": [7, 2], "x": 5.25, "y": 3},
+ {"matrix": [6, 3], "x": 6.25, "y": 3},
+ {"matrix": [7, 3], "x": 7.25, "y": 3},
+ {"matrix": [6, 4], "x": 8.25, "y": 3},
+ {"matrix": [7, 4], "x": 9.25, "y": 3},
+ {"matrix": [6, 5], "x": 10.25, "y": 3},
+ {"matrix": [7, 5], "x": 11.25, "y": 3},
+ {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [7, 6], "x": 14, "y": 3},
+ {"matrix": [7, 7], "x": 15, "y": 3},
+ {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [9, 0], "x": 1.5, "y": 4},
+ {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
+ {"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [8, 6], "x": 13, "y": 4},
+ {"matrix": [9, 6], "x": 14, "y": 4},
+ {"matrix": [9, 7], "x": 15, "y": 4}
+ ]
+ },
+ "LAYOUT_iso_tsangan_split_bs": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [1, 0], "x": 1, "y": 0},
+ {"matrix": [0, 1], "x": 2, "y": 0},
+ {"matrix": [1, 1], "x": 3, "y": 0},
+ {"matrix": [0, 2], "x": 4, "y": 0},
+ {"matrix": [1, 2], "x": 5, "y": 0},
+ {"matrix": [0, 3], "x": 6, "y": 0},
+ {"matrix": [1, 3], "x": 7, "y": 0},
+ {"matrix": [0, 4], "x": 8, "y": 0},
+ {"matrix": [1, 4], "x": 9, "y": 0},
+ {"matrix": [0, 5], "x": 10, "y": 0},
+ {"matrix": [1, 5], "x": 11, "y": 0},
+ {"matrix": [0, 6], "x": 12, "y": 0},
+ {"matrix": [1, 6], "x": 13, "y": 0},
+ {"matrix": [0, 7], "x": 14, "y": 0},
+ {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [3, 0], "x": 1.5, "y": 1},
+ {"matrix": [2, 1], "x": 2.5, "y": 1},
+ {"matrix": [3, 1], "x": 3.5, "y": 1},
+ {"matrix": [2, 2], "x": 4.5, "y": 1},
+ {"matrix": [3, 2], "x": 5.5, "y": 1},
+ {"matrix": [2, 3], "x": 6.5, "y": 1},
+ {"matrix": [3, 3], "x": 7.5, "y": 1},
+ {"matrix": [2, 4], "x": 8.5, "y": 1},
+ {"matrix": [3, 4], "x": 9.5, "y": 1},
+ {"matrix": [2, 5], "x": 10.5, "y": 1},
+ {"matrix": [3, 5], "x": 11.5, "y": 1},
+ {"matrix": [2, 6], "x": 12.5, "y": 1},
+ {"matrix": [3, 7], "x": 15, "y": 1},
+ {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [5, 0], "x": 1.75, "y": 2},
+ {"matrix": [4, 1], "x": 2.75, "y": 2},
+ {"matrix": [5, 1], "x": 3.75, "y": 2},
+ {"matrix": [4, 2], "x": 4.75, "y": 2},
+ {"matrix": [5, 2], "x": 5.75, "y": 2},
+ {"matrix": [4, 3], "x": 6.75, "y": 2},
+ {"matrix": [5, 3], "x": 7.75, "y": 2},
+ {"matrix": [4, 4], "x": 8.75, "y": 2},
+ {"matrix": [5, 4], "x": 9.75, "y": 2},
+ {"matrix": [4, 5], "x": 10.75, "y": 2},
+ {"matrix": [5, 5], "x": 11.75, "y": 2},
+ {"matrix": [4, 6], "x": 12.75, "y": 2},
+ {"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+ {"matrix": [5, 7], "x": 15, "y": 2},
+ {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [7, 0], "x": 1.25, "y": 3},
+ {"matrix": [6, 1], "x": 2.25, "y": 3},
+ {"matrix": [7, 1], "x": 3.25, "y": 3},
+ {"matrix": [6, 2], "x": 4.25, "y": 3},
+ {"matrix": [7, 2], "x": 5.25, "y": 3},
+ {"matrix": [6, 3], "x": 6.25, "y": 3},
+ {"matrix": [7, 3], "x": 7.25, "y": 3},
+ {"matrix": [6, 4], "x": 8.25, "y": 3},
+ {"matrix": [7, 4], "x": 9.25, "y": 3},
+ {"matrix": [6, 5], "x": 10.25, "y": 3},
+ {"matrix": [7, 5], "x": 11.25, "y": 3},
+ {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [7, 6], "x": 14, "y": 3},
+ {"matrix": [7, 7], "x": 15, "y": 3},
+ {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [9, 0], "x": 1.5, "y": 4},
+ {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
+ {"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [8, 6], "x": 13, "y": 4},
+ {"matrix": [9, 6], "x": 14, "y": 4},
+ {"matrix": [9, 7], "x": 15, "y": 4}
+ ]
+ }
+ }
+}
diff --git a/keyboards/zeix/singa/rubrehaku/keymaps/default/keymap.c b/keyboards/zeix/singa/rubrehaku/keymaps/default/keymap.c
new file mode 100644
index 0000000000..17e226b98c
--- /dev/null
+++ b/keyboards/zeix/singa/rubrehaku/keymaps/default/keymap.c
@@ -0,0 +1,35 @@
+/*
+Copyright 2024 zeix (@itsme-zeix)
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[0] = LAYOUT_all(
+ KC_ESC, 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_BSPC,
+ 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,
+ 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_NUHS, KC_ENT, KC_PGDN,
+ 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_UP, MO(1),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
+ ),
+
+[1] = LAYOUT_all(
+ 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_DEL,
+ 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, 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, 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, KC_TRNS, KC_TRNS
+ ),
+};
diff --git a/keyboards/zeix/singa/rubrehaku/matrix_diagram.md b/keyboards/zeix/singa/rubrehaku/matrix_diagram.md
new file mode 100644
index 0000000000..cd11c0070a
--- /dev/null
+++ b/keyboards/zeix/singa/rubrehaku/matrix_diagram.md
@@ -0,0 +1,30 @@
+# Matrix Diagram for Rubrehaku
+
+```
+ ┌───┬───┐
+ Split Backspace │16 │07 │
+ └───┴───┘
+┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
+│00 │10 │01 │11 │02 │12 │03 │13 │04 │14 │05 │15 │06 │07 │
+├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┐ ┌─────┐
+│20 │30 │21 │31 │22 │32 │23 │33 │24 │34 │25 │35 │26 │36 │37 │ │ │
+├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐56 │ ISO Enter
+│40 │50 │41 │51 │42 │52 │43 │53 │44 │54 │45 │55 │56 │57 │ │46 │ │
+├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘
+│60 │61 │71 │62 │72 │63 │73 │64 │74 │65 │75 │66 │76 │77 │
+├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤
+│80 │90 │81 │83 │95 │ │86 │96 │97 │
+└─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘
+┌────┬───┐
+│60 │70 │ Split Left Shift
+└────┴───┘
+┌────┬────┬────┬────────────────────────┬────┬────┐
+│80 │90 │81 │83 │85 │95 │ 6.25u
+└────┴────┴────┴────────────────────────┴────┴────┘
+┌────┬────┬────┬───────────┬────┬───────┬────┬────┐
+│80 │90 │81 │92 │83 │94 │85 │95 │ Split Space (Left 2.75u)
+└────┴────┴────┴───────────┴────┴───────┴────┴────┘
+┌────┬────┬────┬───────┬────┬───────────┬────┬────┐
+│80 │90 │81 │92 │83 │94 │85 │95 │ Split Space (Left 2.25u)
+└────┴────┴────┴───────┴────┴───────────┴────┴────┘
+```
diff --git a/keyboards/zeix/singa/rubrehaku/readme.md b/keyboards/zeix/singa/rubrehaku/readme.md
new file mode 100644
index 0000000000..f7fcc1f871
--- /dev/null
+++ b/keyboards/zeix/singa/rubrehaku/readme.md
@@ -0,0 +1,27 @@
+# SINGA Rubrehaku (PCB designed by Zeix)
+
+
+
+65% PCB designed to support Rubrehaku
+
+* Keyboard Maintainer: [Zeix](https://github.com/itsme-zeix)
+* Hardware Supported: KLC x SINGA x Rubrehose Rubrehaku
+* Hardware Availability: https://klc-playground.com/
+
+Make example for this keyboard (after setting up your build environment):
+
+ make zeix/singa/rubrehaku:default
+
+Flashing example for this keyboard:
+
+ make zeix/singa/rubrehaku:default:flash
+
+See 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).
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+* **Bootmagic reset**: Hold down the top left key and plug in the keyboard.
+* **Physical reset button**: Briefly press the `RESET` button twice or short the 'USB_BOOT' and `GND` pads and plug in the keyboard.
+* **Keycode in layout**: Press the key mapped to `QK_BOOT`.
diff --git a/keyboards/zykrah/fuyu/fuyu.c b/keyboards/zykrah/fuyu/fuyu.c
new file mode 100644
index 0000000000..ea1e048a64
--- /dev/null
+++ b/keyboards/zykrah/fuyu/fuyu.c
@@ -0,0 +1,46 @@
+/*
+Copyright 2022 Zykrah
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED},
+ {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED},
+ {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED},
+ {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED},
+ {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED},
+ {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}
+ }, {
+ // LED Index to Physical Position
+ {112, 32}, {138, 17}, {112, 2}, { 86, 17}, { 86, 47}, {112, 62}, {138, 47}, // SNOWFLAKE
+ { 0, 0}, { 16, 0}, { 32, 0}, { 48, 0}, { 64, 0}, { 80, 0}, { 96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, // UNDERGLOW
+ {208, 16}, {208, 32}, {208, 48}, // UNDERGLOW
+ {208, 64}, {192, 64}, {176, 64}, {160, 64}, {144, 64}, {128, 64}, {112, 64}, { 96, 64}, { 80, 64}, { 64, 64}, { 48, 64}, { 32, 64}, { 16, 64}, { 0, 64}, // UNDERGLOW
+ { 0, 48}, { 0, 32}, { 0, 16} // UNDERGLOW
+ }, {
+ // LED Index to Flag
+ 8, 8, 8, 8, 8, 8, 8, // SNOWFLAKE
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // UNDERGLOW
+ 2, 2, 2, // UNDERGLOW
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // UNDERGLOW
+ 2, 2, 2 // UNDERGLOW
+ }
+};
+#endif
diff --git a/keyboards/zykrah/fuyu/keyboard.json b/keyboards/zykrah/fuyu/keyboard.json
index eafc92c1d2..db4236b698 100644
--- a/keyboards/zykrah/fuyu/keyboard.json
+++ b/keyboards/zykrah/fuyu/keyboard.json
@@ -60,49 +60,6 @@
"val": 150
},
"driver": "ws2812",
- "layout": [
- {"x": 112, "y": 32, "flags": 8},
- {"x": 138, "y": 17, "flags": 8},
- {"x": 112, "y": 2, "flags": 8},
- {"x": 86, "y": 17, "flags": 8},
- {"x": 86, "y": 47, "flags": 8},
- {"x": 112, "y": 62, "flags": 8},
- {"x": 138, "y": 47, "flags": 8},
- {"x": 0, "y": 0, "flags": 2},
- {"x": 16, "y": 0, "flags": 2},
- {"x": 32, "y": 0, "flags": 2},
- {"x": 48, "y": 0, "flags": 2},
- {"x": 64, "y": 0, "flags": 2},
- {"x": 80, "y": 0, "flags": 2},
- {"x": 96, "y": 0, "flags": 2},
- {"x": 112, "y": 0, "flags": 2},
- {"x": 128, "y": 0, "flags": 2},
- {"x": 144, "y": 0, "flags": 2},
- {"x": 160, "y": 0, "flags": 2},
- {"x": 176, "y": 0, "flags": 2},
- {"x": 192, "y": 0, "flags": 2},
- {"x": 208, "y": 0, "flags": 2},
- {"x": 208, "y": 16, "flags": 2},
- {"x": 208, "y": 32, "flags": 2},
- {"x": 208, "y": 48, "flags": 2},
- {"x": 208, "y": 64, "flags": 2},
- {"x": 192, "y": 64, "flags": 2},
- {"x": 176, "y": 64, "flags": 2},
- {"x": 160, "y": 64, "flags": 2},
- {"x": 144, "y": 64, "flags": 2},
- {"x": 128, "y": 64, "flags": 2},
- {"x": 112, "y": 64, "flags": 2},
- {"x": 96, "y": 64, "flags": 2},
- {"x": 80, "y": 64, "flags": 2},
- {"x": 64, "y": 64, "flags": 2},
- {"x": 48, "y": 64, "flags": 2},
- {"x": 32, "y": 64, "flags": 2},
- {"x": 16, "y": 64, "flags": 2},
- {"x": 0, "y": 64, "flags": 2},
- {"x": 0, "y": 48, "flags": 2},
- {"x": 0, "y": 32, "flags": 2},
- {"x": 0, "y": 16, "flags": 2}
- ],
"max_brightness": 200
},
"ws2812": {
diff --git a/lib/chibios b/lib/chibios
index c78acaab38..8bd61b8043 160000
--- a/lib/chibios
+++ b/lib/chibios
@@ -1 +1 @@
-Subproject commit c78acaab385af4ef398fd140df0621bbaef3faf7
+Subproject commit 8bd61b804303f1614d574546c2dd735eeabb09f5
diff --git a/lib/chibios-contrib b/lib/chibios-contrib
index 8d863d9ee4..3ac181e4ca 160000
--- a/lib/chibios-contrib
+++ b/lib/chibios-contrib
@@ -1 +1 @@
-Subproject commit 8d863d9ee4eecea68ad8d15f7e7c2b451aea79d9
+Subproject commit 3ac181e4ca5cafddaf8b472baa1d09c2b24c77b6
diff --git a/lib/python/qmk/cli/generate/config_h.py b/lib/python/qmk/cli/generate/config_h.py
index 1ade452f95..d6d0299291 100755
--- a/lib/python/qmk/cli/generate/config_h.py
+++ b/lib/python/qmk/cli/generate/config_h.py
@@ -125,12 +125,11 @@ def generate_encoder_config(encoder_json, config_h_lines, postfix=''):
config_h_lines.append(generate_define(f'ENCODER_A_PINS{postfix}', f'{{ {", ".join(a_pads)} }}'))
config_h_lines.append(generate_define(f'ENCODER_B_PINS{postfix}', f'{{ {", ".join(b_pads)} }}'))
- if len(resolutions) == 0 or all(r is None for r in resolutions):
+ if None in resolutions:
+ cli.log.debug(f"Unable to generate ENCODER_RESOLUTION{postfix} configuration")
+ elif len(resolutions) == 0:
cli.log.debug(f"Skipping ENCODER_RESOLUTION{postfix} configuration")
- return
-
- resolutions = [4 if r is None else r for r in resolutions]
- if len(set(resolutions)) == 1:
+ elif len(set(resolutions)) == 1:
config_h_lines.append(generate_define(f'ENCODER_RESOLUTION{postfix}', resolutions[0]))
else:
config_h_lines.append(generate_define(f'ENCODER_RESOLUTIONS{postfix}', f'{{ {", ".join(map(str,resolutions))} }}'))
diff --git a/lib/python/qmk/cli/info.py b/lib/python/qmk/cli/info.py
index 5925b57258..26f7f0269d 100755
--- a/lib/python/qmk/cli/info.py
+++ b/lib/python/qmk/cli/info.py
@@ -102,6 +102,48 @@ def show_matrix(kb_info_json, title_caps=True):
print(render_layout(kb_info_json['layouts'][layout_name]['layout'], cli.config.info.ascii, labels))
+def show_leds(kb_info_json, title_caps=True):
+ """Render LED indices per key, using the keyboard's key layout geometry.
+
+ We build a map from (row, col) -> LED index using rgb_matrix/led_matrix layout,
+ then label each key with its LED index. Keys without an associated LED are left blank.
+ """
+ # Prefer rgb_matrix, fall back to led_matrix
+ led_feature = None
+ for feature in ['rgb_matrix', 'led_matrix']:
+ if 'layout' in kb_info_json.get(feature, {}):
+ led_feature = feature
+ break
+
+ if not led_feature:
+ cli.echo('{fg_yellow}No rgb_matrix/led_matrix layout found to derive LED indices.{fg_reset}')
+ return
+
+ # Build mapping from matrix position -> LED indices for faster lookup later
+ by_matrix = {}
+ for idx, led in enumerate(kb_info_json[led_feature]['layout']):
+ if 'matrix' in led:
+ led_key = tuple(led.get('matrix'))
+ by_matrix[led_key] = idx
+
+ # For each keyboard layout (e.g., LAYOUT), render keys labeled with LED index (or blank)
+ for layout_name, layout in kb_info_json['layouts'].items():
+ labels = []
+ for key in layout['layout']:
+ led_key = tuple(key.get('matrix'))
+ label = str(by_matrix[led_key]) if led_key in by_matrix else ''
+
+ labels.append(label)
+
+ # Header
+ if title_caps:
+ cli.echo('{fg_blue}LED indices for "%s"{fg_reset}:', layout_name)
+ else:
+ cli.echo('{fg_blue}leds_%s{fg_reset}:', layout_name)
+
+ print(render_layout(kb_info_json['layouts'][layout_name]['layout'], cli.config.info.ascii, labels))
+
+
def print_friendly_output(kb_info_json):
"""Print the info.json in a friendly text format.
"""
@@ -169,6 +211,7 @@ def print_parsed_rules_mk(keyboard_name):
@cli.argument('-km', '--keymap', help='Keymap to show info for (Optional).')
@cli.argument('-l', '--layouts', action='store_true', help='Render the layouts.')
@cli.argument('-m', '--matrix', action='store_true', help='Render the layouts with matrix information.')
+@cli.argument('-L', '--leds', action='store_true', help='Render the LED layout with LED indices (rgb_matrix/led_matrix).')
@cli.argument('-f', '--format', default='friendly', arg_only=True, help='Format to display the data in (friendly, text, json) (Default: friendly).')
@cli.argument('--ascii', action='store_true', default=not UNICODE_SUPPORT, help='Render layout box drawings in ASCII only.')
@cli.argument('-r', '--rules-mk', action='store_true', help='Render the parsed values of the keyboard\'s rules.mk file.')
@@ -227,5 +270,8 @@ def info(cli):
if cli.config.info.matrix:
show_matrix(kb_info_json, title_caps)
+ if cli.config.info.leds:
+ show_leds(kb_info_json, title_caps)
+
if cli.config.info.keymap:
show_keymap(kb_info_json, title_caps)
diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py
index 59a64095e7..f63228b2bc 100644
--- a/lib/python/qmk/info.py
+++ b/lib/python/qmk/info.py
@@ -800,14 +800,6 @@ def _extract_led_config(info_data, keyboard):
if info_data[feature].get('layout', None) and not info_data[feature].get('led_count', None):
info_data[feature]['led_count'] = len(info_data[feature]['layout'])
- if info_data[feature].get('layout', None) and not info_data[feature].get('flag_steps', None):
- flags = {0xFF, 0}
- # if only a single flag is used, assume only all+none flags
- unique_flags = set(x.get('flags', 0) for x in info_data[feature]['layout'])
- if len(unique_flags) > 1:
- flags.update(unique_flags)
- info_data[feature]['flag_steps'] = sorted(list(flags), reverse=True)
-
return info_data
diff --git a/lib/python/qmk/keymap.py b/lib/python/qmk/keymap.py
index 0ac04f6f73..4cf07f59d6 100644
--- a/lib/python/qmk/keymap.py
+++ b/lib/python/qmk/keymap.py
@@ -32,7 +32,6 @@ __INCLUDES__
__KEYMAP_GOES_HERE__
__ENCODER_MAP_GOES_HERE__
-__DIP_SWITCH_MAP_GOES_HERE__
__MACRO_OUTPUT_GOES_HERE__
#ifdef OTHER_KEYMAP_C
@@ -67,19 +66,6 @@ def _generate_encodermap_table(keymap_json):
return lines
-def _generate_dipswitchmap_table(keymap_json):
- lines = [
- '#if defined(DIP_SWITCH_ENABLE) && defined(DIP_SWITCH_MAP_ENABLE)',
- 'const uint16_t PROGMEM dip_switch_map[NUM_DIP_SWITCHES][NUM_DIP_STATES] = {',
- ]
- for index, switch in enumerate(keymap_json['dip_switches']):
- if index != 0:
- lines[-1] = lines[-1] + ','
- lines.append(f' DIP_SWITCH_OFF_ON({_strip_any(switch["off"])}, {_strip_any(switch["on"])})')
- lines.extend(['};', '#endif // defined(DIP_SWITCH_ENABLE) && defined(DIP_SWITCH_MAP_ENABLE)'])
- return lines
-
-
def _generate_macros_function(keymap_json):
macro_txt = [
'bool process_record_user(uint16_t keycode, keyrecord_t *record) {',
@@ -300,12 +286,6 @@ def generate_c(keymap_json):
encodermap = '\n'.join(encoder_txt)
new_keymap = new_keymap.replace('__ENCODER_MAP_GOES_HERE__', encodermap)
- dipswitchmap = ''
- if 'dip_switches' in keymap_json and keymap_json['dip_switches'] is not None:
- dip_txt = _generate_dipswitchmap_table(keymap_json)
- dipswitchmap = '\n'.join(dip_txt)
- new_keymap = new_keymap.replace('__DIP_SWITCH_MAP_GOES_HERE__', dipswitchmap)
-
macros = ''
if 'macros' in keymap_json and keymap_json['macros'] is not None:
macro_txt = _generate_macros_function(keymap_json)
diff --git a/lib/python/qmk/tests/test_cli_commands.py b/lib/python/qmk/tests/test_cli_commands.py
index 2716459989..dd659fe0f2 100644
--- a/lib/python/qmk/tests/test_cli_commands.py
+++ b/lib/python/qmk/tests/test_cli_commands.py
@@ -159,7 +159,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
#ifdef OTHER_KEYMAP_C
# include OTHER_KEYMAP_C
#endif // OTHER_KEYMAP_C
@@ -197,7 +196,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
#ifdef OTHER_KEYMAP_C
# include OTHER_KEYMAP_C
#endif // OTHER_KEYMAP_C
diff --git a/lib/python/qmk/tests/test_qmk_keymap.py b/lib/python/qmk/tests/test_qmk_keymap.py
index 34360d3b6d..80cc679b00 100644
--- a/lib/python/qmk/tests/test_qmk_keymap.py
+++ b/lib/python/qmk/tests/test_qmk_keymap.py
@@ -27,7 +27,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
#ifdef OTHER_KEYMAP_C
# include OTHER_KEYMAP_C
#endif // OTHER_KEYMAP_C
diff --git a/platforms/avr/drivers/glcdfont.c b/platforms/avr/drivers/glcdfont.c
new file mode 100644
index 0000000000..57a21965de
--- /dev/null
+++ b/platforms/avr/drivers/glcdfont.c
@@ -0,0 +1,23 @@
+// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0.
+// See gfxfont.h for newer custom bitmap font info.
+
+#include "progmem.h"
+
+// Standard ASCII 5x7 font
+
+static const unsigned char font[] PROGMEM = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, 0x18, 0x3C, 0x18, 0x00, 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, 0x18, 0x24, 0x18, 0x00, 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x26, 0x29, 0x79, 0x29, 0x26, 0x40, 0x7F, 0x05, 0x05, 0x07, 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x14, 0x22, 0x7F, 0x22, 0x14, 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, 0x66, 0x89, 0x95, 0x6A, 0x60, 0x60, 0x60, 0x60, 0x60, 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x08, 0x04, 0x7E, 0x04, 0x08, 0x10, 0x20, 0x7E, 0x20, 0x10, 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x1E, 0x10, 0x10, 0x10, 0x10, 0x0C, 0x1E, 0x0C, 0x1E, 0x0C,
+ 0x30, 0x38, 0x3E, 0x38, 0x30, 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x07, 0x00, 0x07, 0x00, 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x23, 0x13, 0x08, 0x64, 0x62, 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, 0x41, 0x22, 0x1C, 0x00, 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, 0x80, 0x70, 0x30, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x60, 0x60, 0x00, 0x20, 0x10, 0x08, 0x04, 0x02, 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, 0x42, 0x7F, 0x40, 0x00, 0x72, 0x49, 0x49, 0x49, 0x46, 0x21, 0x41, 0x49, 0x4D, 0x33, 0x18, 0x14, 0x12, 0x7F, 0x10, 0x27, 0x45, 0x45, 0x45, 0x39, 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x41, 0x21, 0x11, 0x09, 0x07, 0x36, 0x49, 0x49, 0x49, 0x36, 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x40, 0x34, 0x00, 0x00,
+ 0x00, 0x08, 0x14, 0x22, 0x41, 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, 0x41, 0x22, 0x14, 0x08, 0x02, 0x01, 0x59, 0x09, 0x06, 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x7F, 0x49, 0x49, 0x49, 0x36, 0x3E, 0x41, 0x41, 0x41, 0x22, 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x7F, 0x49, 0x49, 0x49, 0x41, 0x7F, 0x09, 0x09, 0x09, 0x01, 0x3E, 0x41, 0x41, 0x51, 0x73, 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, 0x41, 0x7F, 0x41, 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01, 0x7F, 0x08, 0x14, 0x22, 0x41, 0x7F, 0x40, 0x40, 0x40, 0x40, 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x7F, 0x09, 0x09, 0x09, 0x06, 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x7F, 0x09, 0x19, 0x29, 0x46, 0x26, 0x49, 0x49, 0x49, 0x32, 0x03, 0x01, 0x7F, 0x01, 0x03, 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x63, 0x14, 0x08, 0x14, 0x63, 0x03, 0x04, 0x78, 0x04, 0x03,
+ 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, 0x41, 0x41, 0x41, 0x7F, 0x04, 0x02, 0x01, 0x02, 0x04, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x03, 0x07, 0x08, 0x00, 0x20, 0x54, 0x54, 0x78, 0x40, 0x7F, 0x28, 0x44, 0x44, 0x38, 0x38, 0x44, 0x44, 0x44, 0x28, 0x38, 0x44, 0x44, 0x28, 0x7F, 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, 0x08, 0x7E, 0x09, 0x02, 0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, 0x44, 0x7D, 0x40, 0x00, 0x20, 0x40, 0x40, 0x3D, 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00, 0x7C, 0x04, 0x78, 0x04, 0x78, 0x7C, 0x08, 0x04, 0x04, 0x78, 0x38, 0x44, 0x44, 0x44, 0x38, 0xFC, 0x18, 0x24, 0x24, 0x18, 0x18, 0x24, 0x24, 0x18, 0xFC, 0x7C, 0x08, 0x04, 0x04, 0x08, 0x48, 0x54, 0x54, 0x54, 0x24, 0x04, 0x04, 0x3F, 0x44, 0x24, 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x3C, 0x40, 0x30, 0x40, 0x3C,
+ 0x44, 0x28, 0x10, 0x28, 0x44, 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x41, 0x36, 0x08, 0x00, 0x02, 0x01, 0x02, 0x04, 0x02, 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x1E, 0xA1, 0xA1, 0x61, 0x12, 0x3A, 0x40, 0x40, 0x20, 0x7A, 0x38, 0x54, 0x54, 0x55, 0x59, 0x21, 0x55, 0x55, 0x79, 0x41, 0x22, 0x54, 0x54, 0x78, 0x42, // a-umlaut
+ 0x21, 0x55, 0x54, 0x78, 0x40, 0x20, 0x54, 0x55, 0x79, 0x40, 0x0C, 0x1E, 0x52, 0x72, 0x12, 0x39, 0x55, 0x55, 0x55, 0x59, 0x39, 0x54, 0x54, 0x54, 0x59, 0x39, 0x55, 0x54, 0x54, 0x58, 0x00, 0x00, 0x45, 0x7C, 0x41, 0x00, 0x02, 0x45, 0x7D, 0x42, 0x00, 0x01, 0x45, 0x7C, 0x40, 0x7D, 0x12, 0x11, 0x12, 0x7D, // A-umlaut
+ 0xF0, 0x28, 0x25, 0x28, 0xF0, 0x7C, 0x54, 0x55, 0x45, 0x00, 0x20, 0x54, 0x54, 0x7C, 0x54, 0x7C, 0x0A, 0x09, 0x7F, 0x49, 0x32, 0x49, 0x49, 0x49, 0x32, 0x3A, 0x44, 0x44, 0x44, 0x3A, // o-umlaut
+ 0x32, 0x4A, 0x48, 0x48, 0x30, 0x3A, 0x41, 0x41, 0x21, 0x7A, 0x3A, 0x42, 0x40, 0x20, 0x78, 0x00, 0x9D, 0xA0, 0xA0, 0x7D, 0x3D, 0x42, 0x42, 0x42, 0x3D, // O-umlaut
+ 0x3D, 0x40, 0x40, 0x40, 0x3D, 0x3C, 0x24, 0xFF, 0x24, 0x24, 0x48, 0x7E, 0x49, 0x43, 0x66, 0x2B, 0x2F, 0xFC, 0x2F, 0x2B, 0xFF, 0x09, 0x29, 0xF6, 0x20, 0xC0, 0x88, 0x7E, 0x09, 0x03, 0x20, 0x54, 0x54, 0x79, 0x41, 0x00, 0x00, 0x44, 0x7D, 0x41, 0x30, 0x48, 0x48, 0x4A, 0x32, 0x38, 0x40, 0x40, 0x22, 0x7A, 0x00, 0x7A, 0x0A, 0x0A, 0x72, 0x7D, 0x0D, 0x19, 0x31, 0x7D, 0x26, 0x29, 0x29, 0x2F, 0x28, 0x26, 0x29, 0x29, 0x29, 0x26, 0x30, 0x48, 0x4D, 0x40, 0x20, 0x38, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x38, 0x2F, 0x10, 0xC8, 0xAC, 0xBA, 0x2F, 0x10, 0x28, 0x34, 0xFA, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x08, 0x14, 0x2A, 0x14, 0x22, 0x22, 0x14, 0x2A, 0x14, 0x08, 0x55, 0x00, 0x55, 0x00, 0x55, // #176 (25% block) missing in old code
+ 0xAA, 0x55, 0xAA, 0x55, 0xAA, // 50% block
+ 0xFF, 0x55, 0xFF, 0x55, 0xFF, // 75% block
+ 0x00, 0x00, 0x00, 0xFF, 0x00, 0x10, 0x10, 0x10, 0xFF, 0x00, 0x14, 0x14, 0x14, 0xFF, 0x00, 0x10, 0x10, 0xFF, 0x00, 0xFF, 0x10, 0x10, 0xF0, 0x10, 0xF0, 0x14, 0x14, 0x14, 0xFC, 0x00, 0x14, 0x14, 0xF7, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x14, 0x14, 0xF4, 0x04, 0xFC, 0x14, 0x14, 0x17, 0x10, 0x1F, 0x10, 0x10, 0x1F, 0x10, 0x1F, 0x14, 0x14, 0x14, 0x1F, 0x00, 0x10, 0x10, 0x10, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x10, 0x10, 0x10, 0x10, 0x1F, 0x10, 0x10, 0x10, 0x10, 0xF0, 0x10, 0x00, 0x00, 0x00, 0xFF, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x00, 0x00, 0x00, 0xFF, 0x14, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x1F, 0x10, 0x17, 0x00, 0x00, 0xFC, 0x04, 0xF4, 0x14, 0x14, 0x17, 0x10, 0x17, 0x14, 0x14, 0xF4, 0x04, 0xF4, 0x00, 0x00, 0xFF, 0x00, 0xF7, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0xF7, 0x00, 0xF7, 0x14, 0x14, 0x14, 0x17, 0x14, 0x10, 0x10, 0x1F, 0x10, 0x1F,
+ 0x14, 0x14, 0x14, 0xF4, 0x14, 0x10, 0x10, 0xF0, 0x10, 0xF0, 0x00, 0x00, 0x1F, 0x10, 0x1F, 0x00, 0x00, 0x00, 0x1F, 0x14, 0x00, 0x00, 0x00, 0xFC, 0x14, 0x00, 0x00, 0xF0, 0x10, 0xF0, 0x10, 0x10, 0xFF, 0x10, 0xFF, 0x14, 0x14, 0x14, 0xFF, 0x14, 0x10, 0x10, 0x10, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x38, 0x44, 0x44, 0x38, 0x44, 0xFC, 0x4A, 0x4A, 0x4A, 0x34, // sharp-s or beta
+ 0x7E, 0x02, 0x02, 0x06, 0x06, 0x02, 0x7E, 0x02, 0x7E, 0x02, 0x63, 0x55, 0x49, 0x41, 0x63, 0x38, 0x44, 0x44, 0x3C, 0x04, 0x40, 0x7E, 0x20, 0x1E, 0x20, 0x06, 0x02, 0x7E, 0x02, 0x02, 0x99, 0xA5, 0xE7, 0xA5, 0x99, 0x1C, 0x2A, 0x49, 0x2A, 0x1C, 0x4C, 0x72, 0x01, 0x72, 0x4C, 0x30, 0x4A, 0x4D, 0x4D, 0x30, 0x30, 0x48, 0x78, 0x48, 0x30, 0xBC, 0x62, 0x5A, 0x46, 0x3D, 0x3E, 0x49, 0x49, 0x49, 0x00, 0x7E, 0x01, 0x01, 0x01, 0x7E, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x44, 0x44, 0x5F, 0x44, 0x44, 0x40, 0x51, 0x4A, 0x44, 0x40, 0x40, 0x44, 0x4A, 0x51, 0x40, 0x00, 0x00, 0xFF, 0x01, 0x03, 0xE0, 0x80, 0xFF, 0x00, 0x00, 0x08, 0x08, 0x6B, 0x6B, 0x08, 0x36, 0x12, 0x36, 0x24, 0x36, 0x06, 0x0F, 0x09, 0x0F, 0x06, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x30, 0x40, 0xFF, 0x01, 0x01, 0x00, 0x1F, 0x01, 0x01, 0x1E, 0x00, 0x19, 0x1D, 0x17, 0x12, 0x00, 0x3C, 0x3C, 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00 // #255 NBSP
+};
diff --git a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/board.h b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/board.h
index b06d96b5d7..f05762c9b4 100644
--- a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/board.h
+++ b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/board.h
@@ -15,6 +15,7 @@
*/
#pragma once
+#define STM32_HSECLK 16000000
// The following is required to disable the pull-down on PA9, when PA9 is used for the keyboard matrix:
#define BOARD_OTG_NOVBUSSENS
diff --git a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h
index 9af5c14d52..362327efde 100644
--- a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h
+++ b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h
@@ -13,7 +13,6 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-#pragma once
#ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP
# define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
diff --git a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/mcuconf.h
index 9c5cb82436..566c146c25 100644
--- a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/mcuconf.h
+++ b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/mcuconf.h
@@ -48,7 +48,7 @@
#define STM32_CLOCK48_REQUIRED TRUE
#define STM32_SW STM32_SW_PLL
#define STM32_PLLSRC STM32_PLLSRC_HSE
-#define STM32_PLLM_VALUE 4
+#define STM32_PLLM_VALUE 8
#define STM32_PLLN_VALUE 180
#define STM32_PLLP_VALUE 2
#define STM32_PLLQ_VALUE 7
@@ -58,7 +58,7 @@
#define STM32_PLLI2SP_VALUE 4
#define STM32_PLLI2SQ_VALUE 4
#define STM32_PLLSAIN_VALUE 192
-#define STM32_PLLSAIM_VALUE 4
+#define STM32_PLLSAIM_VALUE 8
#define STM32_PLLSAIP_VALUE 8
#define STM32_PLLSAIQ_VALUE 4
#define STM32_HPRE STM32_HPRE_DIV1
diff --git a/platforms/progmem.h b/platforms/progmem.h
index 3a7a169682..6c4ebcaa01 100644
--- a/platforms/progmem.h
+++ b/platforms/progmem.h
@@ -7,6 +7,7 @@
# define PROGMEM
# define PSTR(x) x
# define PGM_P const char*
+# define memcmp_P(s1, s2, n) memcmp(s1, s2, n)
# define memcpy_P(dest, src, n) memcpy(dest, src, n)
# define pgm_read_byte(address_short) *((uint8_t*)(address_short))
# define pgm_read_word(address_short) *((uint16_t*)(address_short))
diff --git a/quantum/action_util.c b/quantum/action_util.c
index 0996ff908e..e821e113ef 100644
--- a/quantum/action_util.c
+++ b/quantum/action_util.c
@@ -46,20 +46,9 @@ extern inline void clear_keys(void);
#ifndef NO_ACTION_ONESHOT
static uint8_t oneshot_mods = 0;
static uint8_t oneshot_locked_mods = 0;
-/**
- * @brief Retrieve current state of locked oneshot modifiers.
- *
- * @return Current state of the locked oneshot modifier keys as a bitmask.
- */
-uint8_t get_oneshot_locked_mods(void) {
+uint8_t get_oneshot_locked_mods(void) {
return oneshot_locked_mods;
}
-/**
- * Same as \ref get_oneshot_locked_mods but returns \ref mod_t for convenience.
- */
-mod_t get_oneshot_locked_mod_state(void) {
- return (mod_t)get_oneshot_locked_mods();
-}
void add_oneshot_locked_mods(uint8_t mods) {
if ((oneshot_locked_mods & mods) != mods) {
oneshot_locked_mods |= mods;
@@ -337,20 +326,13 @@ void send_keyboard_report(void) {
send_6kro_report();
}
-/**
- * @brief Retrieve current state of modifiers.
+/** \brief Get mods
*
- * @return Current state of the modifier keys as a bitmask.
+ * FIXME: needs doc
*/
uint8_t get_mods(void) {
return real_mods;
}
-/**
- * Same as \ref get_mods but returns \ref mod_t for convenience.
- */
-mod_t get_mod_state(void) {
- return (mod_t)get_mods();
-}
/** \brief add mods
*
* FIXME: needs doc
@@ -380,20 +362,13 @@ void clear_mods(void) {
real_mods = 0;
}
-/**
- * @brief Retrieve current state of weak modifiers.
+/** \brief get weak mods
*
- * @return Current state of the weak modifier keys as a bitmask.
+ * FIXME: needs doc
*/
uint8_t get_weak_mods(void) {
return weak_mods;
}
-/**
- * Same as \ref get_weak_mods but returns \ref mod_t for convenience.
- */
-mod_t get_weak_mod_state(void) {
- return (mod_t)get_weak_mods();
-}
/** \brief add weak mods
*
* FIXME: needs doc
@@ -448,22 +423,14 @@ void clear_suppressed_override_mods(void) {
#endif
#ifndef NO_ACTION_ONESHOT
-/**
- * @brief Retrieve current state of oneshot modifiers.
+/** \brief get oneshot mods
*
- * @return Current state of the oneshot modifier keys as a bitmask.
+ * FIXME: needs doc
*/
uint8_t get_oneshot_mods(void) {
return oneshot_mods;
}
-/**
- * Same as \ref get_oneshot_mods but returns \ref mod_t for convenience.
- */
-mod_t get_oneshot_mod_state(void) {
- return (mod_t)get_oneshot_mods();
-}
-
void add_oneshot_mods(uint8_t mods) {
if ((oneshot_mods & mods) != mods) {
# if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0))
diff --git a/quantum/action_util.h b/quantum/action_util.h
index 8b1974cd32..d2ecb145be 100644
--- a/quantum/action_util.h
+++ b/quantum/action_util.h
@@ -18,8 +18,6 @@ along with this program. If not, see .
#pragma once
#include
-
-#include "compiler_support.h"
#include "report.h"
#include "modifiers.h"
@@ -27,21 +25,6 @@ along with this program. If not, see .
extern "C" {
#endif
-typedef union {
- uint8_t raw;
- struct {
- bool left_ctrl : 1;
- bool left_shift : 1;
- bool left_alt : 1;
- bool left_gui : 1;
- bool right_ctrl : 1;
- bool right_shift : 1;
- bool right_alt : 1;
- bool right_gui : 1;
- };
-} PACKED mod_t;
-STATIC_ASSERT(sizeof(mod_t) == sizeof(uint8_t), "Invalid size for 'mod_t'");
-
extern report_keyboard_t *keyboard_report;
#ifdef NKRO_ENABLE
extern report_nkro_t *nkro_report;
@@ -64,7 +47,6 @@ inline void clear_keys(void) {
/* modifier */
uint8_t get_mods(void);
-mod_t get_mod_state(void);
void add_mods(uint8_t mods);
void del_mods(uint8_t mods);
void set_mods(uint8_t mods);
@@ -72,7 +54,6 @@ void clear_mods(void);
/* weak modifier */
uint8_t get_weak_mods(void);
-mod_t get_weak_mod_state(void);
void add_weak_mods(uint8_t mods);
void del_weak_mods(uint8_t mods);
void set_weak_mods(uint8_t mods);
@@ -80,7 +61,6 @@ void clear_weak_mods(void);
/* oneshot modifier */
uint8_t get_oneshot_mods(void);
-mod_t get_oneshot_mod_state(void);
void add_oneshot_mods(uint8_t mods);
void del_oneshot_mods(uint8_t mods);
void set_oneshot_mods(uint8_t mods);
@@ -88,7 +68,6 @@ void clear_oneshot_mods(void);
bool has_oneshot_mods_timed_out(void);
uint8_t get_oneshot_locked_mods(void);
-mod_t get_oneshot_locked_mod_state(void);
void add_oneshot_locked_mods(uint8_t mods);
void set_oneshot_locked_mods(uint8_t mods);
void clear_oneshot_locked_mods(void);
diff --git a/quantum/debounce.h b/quantum/debounce.h
index 30d2621d18..cea1f2b526 100644
--- a/quantum/debounce.h
+++ b/quantum/debounce.h
@@ -17,3 +17,5 @@
bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed);
void debounce_init(uint8_t num_rows);
+
+void debounce_free(void);
diff --git a/quantum/debounce/asym_eager_defer_pk.c b/quantum/debounce/asym_eager_defer_pk.c
index a385301c90..b6fcdc3d4e 100644
--- a/quantum/debounce/asym_eager_defer_pk.c
+++ b/quantum/debounce/asym_eager_defer_pk.c
@@ -1,15 +1,37 @@
-// Copyright 2017 Alex Ong
-// Copyright 2020 Andrei Purdea
-// Copyright 2021 Simon Arlott
-// SPDX-License-Identifier: GPL-2.0-or-later
-//
-// Asymetric per-key algorithm. After pressing a key, it immediately changes state,
-// with no further inputs accepted until DEBOUNCE milliseconds have occurred. After
-// releasing a key, that state is pushed after no changes occur for DEBOUNCE milliseconds.
+/*
+ * Copyright 2017 Alex Ong
+ * Copyright 2020 Andrei Purdea
+ * Copyright 2021 Simon Arlott
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+/*
+Asymetric per-key algorithm. After pressing a key, it immediately changes state,
+with no further inputs accepted until DEBOUNCE milliseconds have occurred. After
+releasing a key, that state is pushed after no changes occur for DEBOUNCE milliseconds.
+*/
#include "debounce.h"
#include "timer.h"
-#include "util.h"
+#include
+
+#ifdef PROTOCOL_CHIBIOS
+# if CH_CFG_USE_MEMCORE == FALSE
+# error ChibiOS is configured without a memory allocator. Your keyboard may have set `#define CH_CFG_USE_MEMCORE FALSE`, which is incompatible with this debounce algorithm.
+# endif
+#endif
#ifndef DEBOUNCE
# define DEBOUNCE 5
@@ -21,29 +43,44 @@
# define DEBOUNCE 127
#endif
-#define DEBOUNCE_ELAPSED 0
+#define ROW_SHIFTER ((matrix_row_t)1)
-#if DEBOUNCE > 0
typedef struct {
bool pressed : 1;
uint8_t time : 7;
} debounce_counter_t;
-// Uses MATRIX_ROWS_PER_HAND instead of MATRIX_ROWS to support split keyboards
-static debounce_counter_t debounce_counters[MATRIX_ROWS_PER_HAND * MATRIX_COLS] = {DEBOUNCE_ELAPSED};
-static bool counters_need_update;
-static bool matrix_need_update;
-static bool cooked_changed;
+#if DEBOUNCE > 0
+static debounce_counter_t *debounce_counters;
+static fast_timer_t last_time;
+static bool counters_need_update;
+static bool matrix_need_update;
+static bool cooked_changed;
-static inline void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t elapsed_time);
-static inline void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[]);
+# define DEBOUNCE_ELAPSED 0
-void debounce_init(uint8_t num_rows) {}
+static void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, uint8_t elapsed_time);
+static void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows);
+
+// we use num_rows rather than MATRIX_ROWS to support split keyboards
+void debounce_init(uint8_t num_rows) {
+ debounce_counters = malloc(num_rows * MATRIX_COLS * sizeof(debounce_counter_t));
+ int i = 0;
+ for (uint8_t r = 0; r < num_rows; r++) {
+ for (uint8_t c = 0; c < MATRIX_COLS; c++) {
+ debounce_counters[i++].time = DEBOUNCE_ELAPSED;
+ }
+ }
+}
+
+void debounce_free(void) {
+ free(debounce_counters);
+ debounce_counters = NULL;
+}
bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed) {
- static fast_timer_t last_time;
- bool updated_last = false;
- cooked_changed = false;
+ bool updated_last = false;
+ cooked_changed = false;
if (counters_need_update) {
fast_timer_t now = timer_read_fast();
@@ -51,10 +88,12 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool
last_time = now;
updated_last = true;
+ if (elapsed_time > UINT8_MAX) {
+ elapsed_time = UINT8_MAX;
+ }
if (elapsed_time > 0) {
- // Update debounce counters with elapsed timer clamped to 127 (maximum debounce)
- update_debounce_counters_and_transfer_if_expired(raw, cooked, MIN(elapsed_time, 127));
+ update_debounce_counters_and_transfer_if_expired(raw, cooked, num_rows, elapsed_time);
}
}
@@ -63,96 +102,74 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool
last_time = timer_read_fast();
}
- transfer_matrix_values(raw, cooked);
+ transfer_matrix_values(raw, cooked, num_rows);
}
return cooked_changed;
}
-/**
- * @brief Processes per-key debounce counters and updates the debounced matrix state.
- *
- * This function iterates through each key in the matrix and updates its debounce counter
- * based on the elapsed time. If the debounce period has expired, the debounced state is
- * updated accordingly for key-down (eager) and key-up (defer) events.
- *
- * @param raw The current raw key state matrix.
- * @param cooked The debounced key state matrix to be updated.
- * @param elapsed_time The time elapsed since the last debounce update, in milliseconds.
- */
-static inline void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t elapsed_time) {
+static void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, uint8_t elapsed_time) {
+ debounce_counter_t *debounce_pointer = debounce_counters;
+
counters_need_update = false;
matrix_need_update = false;
- for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) {
- uint16_t row_offset = row * MATRIX_COLS;
-
+ for (uint8_t row = 0; row < num_rows; row++) {
for (uint8_t col = 0; col < MATRIX_COLS; col++) {
- uint16_t index = row_offset + col;
+ matrix_row_t col_mask = (ROW_SHIFTER << col);
- if (debounce_counters[index].time != DEBOUNCE_ELAPSED) {
- if (debounce_counters[index].time <= elapsed_time) {
- debounce_counters[index].time = DEBOUNCE_ELAPSED;
+ if (debounce_pointer->time != DEBOUNCE_ELAPSED) {
+ if (debounce_pointer->time <= elapsed_time) {
+ debounce_pointer->time = DEBOUNCE_ELAPSED;
- if (debounce_counters[index].pressed) {
+ if (debounce_pointer->pressed) {
// key-down: eager
matrix_need_update = true;
} else {
// key-up: defer
- matrix_row_t col_mask = (MATRIX_ROW_SHIFTER << col);
matrix_row_t cooked_next = (cooked[row] & ~col_mask) | (raw[row] & col_mask);
cooked_changed |= cooked_next ^ cooked[row];
cooked[row] = cooked_next;
}
} else {
- debounce_counters[index].time -= elapsed_time;
+ debounce_pointer->time -= elapsed_time;
counters_need_update = true;
}
}
+ debounce_pointer++;
}
}
}
-/**
- * @brief Applies debounced changes to the matrix state based on per-key counters.
- *
- * This function compares the raw and cooked key state matrices to detect changes.
- * For each key, it updates the debounce counter and the debounced state according
- * to the debounce algorithm. Key-down events are handled eagerly, while key-up
- * events are deferred until the debounce period has elapsed.
- *
- * @param raw The current raw key state matrix.
- * @param cooked The debounced key state matrix to be updated.
- */
-static inline void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[]) {
+static void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows) {
+ debounce_counter_t *debounce_pointer = debounce_counters;
+
matrix_need_update = false;
- for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) {
- uint16_t row_offset = row * MATRIX_COLS;
- matrix_row_t delta = raw[row] ^ cooked[row];
-
+ for (uint8_t row = 0; row < num_rows; row++) {
+ matrix_row_t delta = raw[row] ^ cooked[row];
for (uint8_t col = 0; col < MATRIX_COLS; col++) {
- uint16_t index = row_offset + col;
- matrix_row_t col_mask = (MATRIX_ROW_SHIFTER << col);
+ matrix_row_t col_mask = (ROW_SHIFTER << col);
if (delta & col_mask) {
- if (debounce_counters[index].time == DEBOUNCE_ELAPSED) {
- debounce_counters[index].pressed = (raw[row] & col_mask);
- debounce_counters[index].time = DEBOUNCE;
- counters_need_update = true;
+ if (debounce_pointer->time == DEBOUNCE_ELAPSED) {
+ debounce_pointer->pressed = (raw[row] & col_mask);
+ debounce_pointer->time = DEBOUNCE;
+ counters_need_update = true;
- if (debounce_counters[index].pressed) {
+ if (debounce_pointer->pressed) {
// key-down: eager
cooked[row] ^= col_mask;
cooked_changed = true;
}
}
- } else if (debounce_counters[index].time != DEBOUNCE_ELAPSED) {
- if (!debounce_counters[index].pressed) {
+ } else if (debounce_pointer->time != DEBOUNCE_ELAPSED) {
+ if (!debounce_pointer->pressed) {
// key-up: defer
- debounce_counters[index].time = DEBOUNCE_ELAPSED;
+ debounce_pointer->time = DEBOUNCE_ELAPSED;
}
}
+ debounce_pointer++;
}
}
}
diff --git a/quantum/debounce/none.c b/quantum/debounce/none.c
index 0111dd6e31..0a8ccfc4ee 100644
--- a/quantum/debounce/none.c
+++ b/quantum/debounce/none.c
@@ -32,3 +32,5 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool
return cooked_changed;
}
+
+void debounce_free(void) {}
diff --git a/quantum/debounce/sym_defer_g.c b/quantum/debounce/sym_defer_g.c
index 81f351c126..d96758fab3 100644
--- a/quantum/debounce/sym_defer_g.c
+++ b/quantum/debounce/sym_defer_g.c
@@ -1,10 +1,22 @@
-// Copyright 2017 Alex Ong
-// Copyright 2021 Simon Arlott
-// SPDX-License-Identifier: GPL-2.0-or-later
-//
-// Basic global debounce algorithm. Used in 99% of keyboards at time of implementation
-// When no state changes have occured for DEBOUNCE milliseconds, we push the state.
+/*
+Copyright 2017 Alex Ong
+Copyright 2021 Simon Arlott
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+/*
+Basic global debounce algorithm. Used in 99% of keyboards at time of implementation
+When no state changes have occured for DEBOUNCE milliseconds, we push the state.
+*/
#include "debounce.h"
#include "timer.h"
#include
@@ -19,13 +31,13 @@
#endif
#if DEBOUNCE > 0
+static bool debouncing = false;
+static fast_timer_t debouncing_time;
void debounce_init(uint8_t num_rows) {}
bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed) {
- static fast_timer_t debouncing_time;
- static bool debouncing = false;
- bool cooked_changed = false;
+ bool cooked_changed = false;
if (changed) {
debouncing = true;
@@ -42,6 +54,7 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool
return cooked_changed;
}
+void debounce_free(void) {}
#else // no debouncing.
# include "none.c"
#endif
diff --git a/quantum/debounce/sym_defer_pk.c b/quantum/debounce/sym_defer_pk.c
index 063094efe5..156535a373 100644
--- a/quantum/debounce/sym_defer_pk.c
+++ b/quantum/debounce/sym_defer_pk.c
@@ -1,14 +1,33 @@
-// Copyright 2017 Alex Ong
-// Copyright 2020 Andrei Purdea
-// Copyright 2021 Simon Arlott
-// SPDX-License-Identifier: GPL-2.0-or-later
-//
-// Basic symmetric per-key algorithm. Uses an 8-bit counter per key.
-// When no state changes have occured for DEBOUNCE milliseconds, we push the state.
+/*
+Copyright 2017 Alex Ong
+Copyright 2020 Andrei Purdea
+Copyright 2021 Simon Arlott
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+/*
+Basic symmetric per-key algorithm. Uses an 8-bit counter per key.
+When no state changes have occured for DEBOUNCE milliseconds, we push the state.
+*/
#include "debounce.h"
#include "timer.h"
-#include "util.h"
+#include
+
+#ifdef PROTOCOL_CHIBIOS
+# if CH_CFG_USE_MEMCORE == FALSE
+# error ChibiOS is configured without a memory allocator. Your keyboard may have set `#define CH_CFG_USE_MEMCORE FALSE`, which is incompatible with this debounce algorithm.
+# endif
+#endif
#ifndef DEBOUNCE
# define DEBOUNCE 5
@@ -20,24 +39,40 @@
# define DEBOUNCE UINT8_MAX
#endif
-#define DEBOUNCE_ELAPSED 0
+#define ROW_SHIFTER ((matrix_row_t)1)
+
+typedef uint8_t debounce_counter_t;
#if DEBOUNCE > 0
-typedef uint8_t debounce_counter_t;
-// Uses MATRIX_ROWS_PER_HAND instead of MATRIX_ROWS to support split keyboards
-static debounce_counter_t debounce_counters[MATRIX_ROWS_PER_HAND * MATRIX_COLS] = {DEBOUNCE_ELAPSED};
-static bool counters_need_update;
-static bool cooked_changed;
+static debounce_counter_t *debounce_counters;
+static fast_timer_t last_time;
+static bool counters_need_update;
+static bool cooked_changed;
-static inline void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t elapsed_time);
-static inline void start_debounce_counters(matrix_row_t raw[], matrix_row_t cooked[]);
+# define DEBOUNCE_ELAPSED 0
-void debounce_init(uint8_t num_rows) {}
+static void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, uint8_t elapsed_time);
+static void start_debounce_counters(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows);
+
+// we use num_rows rather than MATRIX_ROWS to support split keyboards
+void debounce_init(uint8_t num_rows) {
+ debounce_counters = (debounce_counter_t *)malloc(num_rows * MATRIX_COLS * sizeof(debounce_counter_t));
+ int i = 0;
+ for (uint8_t r = 0; r < num_rows; r++) {
+ for (uint8_t c = 0; c < MATRIX_COLS; c++) {
+ debounce_counters[i++] = DEBOUNCE_ELAPSED;
+ }
+ }
+}
+
+void debounce_free(void) {
+ free(debounce_counters);
+ debounce_counters = NULL;
+}
bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed) {
- static fast_timer_t last_time;
- bool updated_last = false;
- cooked_changed = false;
+ bool updated_last = false;
+ cooked_changed = false;
if (counters_need_update) {
fast_timer_t now = timer_read_fast();
@@ -45,10 +80,12 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool
last_time = now;
updated_last = true;
+ if (elapsed_time > UINT8_MAX) {
+ elapsed_time = UINT8_MAX;
+ }
if (elapsed_time > 0) {
- // Update debounce counters with elapsed timer clamped to UINT8_MAX
- update_debounce_counters_and_transfer_if_expired(raw, cooked, MIN(elapsed_time, UINT8_MAX));
+ update_debounce_counters_and_transfer_if_expired(raw, cooked, num_rows, elapsed_time);
}
}
@@ -57,73 +94,47 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool
last_time = timer_read_fast();
}
- start_debounce_counters(raw, cooked);
+ start_debounce_counters(raw, cooked, num_rows);
}
return cooked_changed;
}
-/**
- * @brief Updates debounce counters and transfers debounced key states if the debounce period has expired.
- *
- * Iterates through each key in the matrix and checks its debounce counter. If the debounce period has expired
- * for a key, the debounced state is updated to match the raw state. Otherwise, the debounce counter is decremented
- * by the elapsed time and marked for further updates.
- *
- * @param raw The current raw key state matrix.
- * @param cooked The debounced key state matrix to be updated.
- * @param elapsed_time The time elapsed since the last debounce update, in milliseconds.
- */
-static inline void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t elapsed_time) {
- counters_need_update = false;
- for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) {
- uint16_t row_offset = row * MATRIX_COLS;
-
+static void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, uint8_t elapsed_time) {
+ counters_need_update = false;
+ debounce_counter_t *debounce_pointer = debounce_counters;
+ for (uint8_t row = 0; row < num_rows; row++) {
for (uint8_t col = 0; col < MATRIX_COLS; col++) {
- uint16_t index = row_offset + col;
-
- if (debounce_counters[index] != DEBOUNCE_ELAPSED) {
- if (debounce_counters[index] <= elapsed_time) {
- debounce_counters[index] = DEBOUNCE_ELAPSED;
- matrix_row_t col_mask = (MATRIX_ROW_SHIFTER << col);
- matrix_row_t cooked_next = (cooked[row] & ~col_mask) | (raw[row] & col_mask);
+ if (*debounce_pointer != DEBOUNCE_ELAPSED) {
+ if (*debounce_pointer <= elapsed_time) {
+ *debounce_pointer = DEBOUNCE_ELAPSED;
+ matrix_row_t cooked_next = (cooked[row] & ~(ROW_SHIFTER << col)) | (raw[row] & (ROW_SHIFTER << col));
cooked_changed |= cooked[row] ^ cooked_next;
cooked[row] = cooked_next;
} else {
- debounce_counters[index] -= elapsed_time;
+ *debounce_pointer -= elapsed_time;
counters_need_update = true;
}
}
+ debounce_pointer++;
}
}
}
-/**
- * @brief Initializes debounce counters for keys with changed states.
- *
- * For each key in the matrix, this function checks if the raw state differs from the debounced state.
- * If a change is detected and the debounce counter has elapsed, the counter is set to the debounce period
- * and marked for update. Otherwise, the counter is cleared.
- *
- * @param raw The current raw key state matrix.
- * @param cooked The debounced key state matrix.
- */
-static inline void start_debounce_counters(matrix_row_t raw[], matrix_row_t cooked[]) {
- for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) {
- uint16_t row_offset = row * MATRIX_COLS;
- matrix_row_t delta = raw[row] ^ cooked[row];
-
+static void start_debounce_counters(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows) {
+ debounce_counter_t *debounce_pointer = debounce_counters;
+ for (uint8_t row = 0; row < num_rows; row++) {
+ matrix_row_t delta = raw[row] ^ cooked[row];
for (uint8_t col = 0; col < MATRIX_COLS; col++) {
- uint16_t index = row_offset + col;
-
- if (delta & (MATRIX_ROW_SHIFTER << col)) {
- if (debounce_counters[index] == DEBOUNCE_ELAPSED) {
- debounce_counters[index] = DEBOUNCE;
- counters_need_update = true;
+ if (delta & (ROW_SHIFTER << col)) {
+ if (*debounce_pointer == DEBOUNCE_ELAPSED) {
+ *debounce_pointer = DEBOUNCE;
+ counters_need_update = true;
}
} else {
- debounce_counters[index] = DEBOUNCE_ELAPSED;
+ *debounce_pointer = DEBOUNCE_ELAPSED;
}
+ debounce_pointer++;
}
}
}
diff --git a/quantum/debounce/sym_defer_pr.c b/quantum/debounce/sym_defer_pr.c
index 2382fae898..d6222af5b2 100644
--- a/quantum/debounce/sym_defer_pr.c
+++ b/quantum/debounce/sym_defer_pr.c
@@ -1,117 +1,77 @@
-// Copyright 2017 Alex Ong
-// Copyright 2020 Andrei Purdea
-// Copyright 2021 Simon Arlott
-// Copyright @filterpaper
-// SPDX-License-Identifier: GPL-2.0-or-later
-//
-// Basic symmetric per-row algorithm. Uses an 8-bit counter per row.
-// When no state changes have occured for DEBOUNCE milliseconds, we push the state.
+/*
+Copyright 2021 Chad Austin
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+/*
+Symmetric per-row debounce algorithm. Changes only apply when
+DEBOUNCE milliseconds have elapsed since the last change.
+*/
#include "debounce.h"
#include "timer.h"
-#include "util.h"
+#include
#ifndef DEBOUNCE
# define DEBOUNCE 5
#endif
-// Maximum debounce: 255ms
-#if DEBOUNCE > UINT8_MAX
-# undef DEBOUNCE
-# define DEBOUNCE UINT8_MAX
-#endif
+static uint16_t last_time;
+// [row] milliseconds until key's state is considered debounced.
+static uint8_t* countdowns;
+// [row]
+static matrix_row_t* last_raw;
-#define DEBOUNCE_ELAPSED 0
+void debounce_init(uint8_t num_rows) {
+ countdowns = (uint8_t*)calloc(num_rows, sizeof(uint8_t));
+ last_raw = (matrix_row_t*)calloc(num_rows, sizeof(matrix_row_t));
-#if DEBOUNCE > 0
-typedef uint8_t debounce_counter_t;
-// Uses MATRIX_ROWS_PER_HAND instead of MATRIX_ROWS to support split keyboards
-static debounce_counter_t debounce_counters[MATRIX_ROWS_PER_HAND] = {DEBOUNCE_ELAPSED};
-static bool counters_need_update;
-static bool cooked_changed;
+ last_time = timer_read();
+}
-static inline void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t elapsed_time);
-static inline void start_debounce_counters(matrix_row_t raw[], matrix_row_t cooked[]);
-
-void debounce_init(uint8_t num_rows) {}
+void debounce_free(void) {
+ free(countdowns);
+ countdowns = NULL;
+ free(last_raw);
+ last_raw = NULL;
+}
bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed) {
- static fast_timer_t last_time;
- bool updated_last = false;
- cooked_changed = false;
+ uint16_t now = timer_read();
+ uint16_t elapsed16 = TIMER_DIFF_16(now, last_time);
+ last_time = now;
+ uint8_t elapsed = (elapsed16 > 255) ? 255 : elapsed16;
+ bool cooked_changed = false;
- if (counters_need_update) {
- fast_timer_t now = timer_read_fast();
- fast_timer_t elapsed_time = TIMER_DIFF_FAST(now, last_time);
+ uint8_t* countdown = countdowns;
- last_time = now;
- updated_last = true;
+ for (uint8_t row = 0; row < num_rows; ++row, ++countdown) {
+ matrix_row_t raw_row = raw[row];
- if (elapsed_time > 0) {
- // Update debounce counters with elapsed timer clamped to UINT8_MAX
- update_debounce_counters_and_transfer_if_expired(raw, cooked, MIN(elapsed_time, UINT8_MAX));
+ if (raw_row != last_raw[row]) {
+ *countdown = DEBOUNCE;
+ last_raw[row] = raw_row;
+ } else if (*countdown > elapsed) {
+ *countdown -= elapsed;
+ } else if (*countdown) {
+ cooked_changed |= cooked[row] ^ raw_row;
+ cooked[row] = raw_row;
+ *countdown = 0;
}
}
- if (changed) {
- if (!updated_last) {
- last_time = timer_read_fast();
- }
-
- start_debounce_counters(raw, cooked);
- }
-
return cooked_changed;
}
-/**
- * @brief Updates debounce counters and transfers debounced row states if the debounce period has expired.
- *
- * Iterates through each row in the matrix and checks its debounce counter. If the debounce period has expired
- * for a row, the debounced state is updated to match the raw state. Otherwise, the debounce counter is decremented
- * by the elapsed time and marked for further updates.
- *
- * @param raw The current raw key state matrix.
- * @param cooked The debounced key state matrix to be updated.
- * @param elapsed_time The time elapsed since the last debounce update, in milliseconds.
- */
-static inline void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t elapsed_time) {
- counters_need_update = false;
- for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) {
- if (debounce_counters[row] != DEBOUNCE_ELAPSED) {
- if (debounce_counters[row] <= elapsed_time) {
- debounce_counters[row] = DEBOUNCE_ELAPSED;
- cooked_changed |= cooked[row] ^ raw[row];
- cooked[row] = raw[row];
- } else {
- debounce_counters[row] -= elapsed_time;
- counters_need_update = true;
- }
- }
- }
+bool debounce_active(void) {
+ return true;
}
-
-/**
- * @brief Initializes debounce counters for rows with changed states.
- *
- * For each row in the matrix, this function checks if the raw state differs from the debounced state.
- * If a change is detected and the debounce counter has elapsed, the counter is set to the debounce period
- * and marked for update. Otherwise, the counter is cleared.
- *
- * @param raw The current raw key state matrix.
- * @param cooked The debounced key state matrix.
- */
-static inline void start_debounce_counters(matrix_row_t raw[], matrix_row_t cooked[]) {
- for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) {
- if (raw[row] != cooked[row]) {
- debounce_counters[row] = DEBOUNCE;
- counters_need_update = true;
- } else {
- debounce_counters[row] = DEBOUNCE_ELAPSED;
- }
- }
-}
-
-#else
-# include "none.c"
-#endif
diff --git a/quantum/debounce/sym_eager_pk.c b/quantum/debounce/sym_eager_pk.c
index c3a7afde24..b359e79287 100644
--- a/quantum/debounce/sym_eager_pk.c
+++ b/quantum/debounce/sym_eager_pk.c
@@ -21,7 +21,13 @@ No further inputs are accepted until DEBOUNCE milliseconds have occurred.
#include "debounce.h"
#include "timer.h"
-#include "util.h"
+#include
+
+#ifdef PROTOCOL_CHIBIOS
+# if CH_CFG_USE_MEMCORE == FALSE
+# error ChibiOS is configured without a memory allocator. Your keyboard may have set `#define CH_CFG_USE_MEMCORE FALSE`, which is incompatible with this debounce algorithm.
+# endif
+#endif
#ifndef DEBOUNCE
# define DEBOUNCE 5
@@ -33,25 +39,41 @@ No further inputs are accepted until DEBOUNCE milliseconds have occurred.
# define DEBOUNCE UINT8_MAX
#endif
-#define DEBOUNCE_ELAPSED 0
+#define ROW_SHIFTER ((matrix_row_t)1)
+
+typedef uint8_t debounce_counter_t;
#if DEBOUNCE > 0
-typedef uint8_t debounce_counter_t;
-// Uses MATRIX_ROWS_PER_HAND instead of MATRIX_ROWS to support split keyboards
-static debounce_counter_t debounce_counters[MATRIX_ROWS_PER_HAND * MATRIX_COLS] = {DEBOUNCE_ELAPSED};
-static bool counters_need_update;
-static bool matrix_need_update;
-static bool cooked_changed;
+static debounce_counter_t *debounce_counters;
+static fast_timer_t last_time;
+static bool counters_need_update;
+static bool matrix_need_update;
+static bool cooked_changed;
-static inline void update_debounce_counters(uint8_t elapsed_time);
-static inline void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[]);
+# define DEBOUNCE_ELAPSED 0
-void debounce_init(uint8_t num_rows) {}
+static void update_debounce_counters(uint8_t num_rows, uint8_t elapsed_time);
+static void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows);
+
+// we use num_rows rather than MATRIX_ROWS to support split keyboards
+void debounce_init(uint8_t num_rows) {
+ debounce_counters = (debounce_counter_t *)malloc(num_rows * MATRIX_COLS * sizeof(debounce_counter_t));
+ int i = 0;
+ for (uint8_t r = 0; r < num_rows; r++) {
+ for (uint8_t c = 0; c < MATRIX_COLS; c++) {
+ debounce_counters[i++] = DEBOUNCE_ELAPSED;
+ }
+ }
+}
+
+void debounce_free(void) {
+ free(debounce_counters);
+ debounce_counters = NULL;
+}
bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed) {
- static fast_timer_t last_time;
- bool updated_last = false;
- cooked_changed = false;
+ bool updated_last = false;
+ cooked_changed = false;
if (counters_need_update) {
fast_timer_t now = timer_read_fast();
@@ -59,10 +81,12 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool
last_time = now;
updated_last = true;
+ if (elapsed_time > UINT8_MAX) {
+ elapsed_time = UINT8_MAX;
+ }
if (elapsed_time > 0) {
- // Update debounce counters with elapsed timer clamped to UINT8_MAX
- update_debounce_counters(MIN(elapsed_time, UINT8_MAX));
+ update_debounce_counters(num_rows, elapsed_time);
}
}
@@ -71,74 +95,51 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool
last_time = timer_read_fast();
}
- transfer_matrix_values(raw, cooked);
+ transfer_matrix_values(raw, cooked, num_rows);
}
return cooked_changed;
}
-/**
- * @brief Updates per-key debounce counters and determines if matrix needs updating.
- *
- * Iterates through each key in the matrix and checks its debounce counter. If the debounce
- * period has elapsed, the counter is reset and the matrix is marked for update. Otherwise,
- * the counter is decremented by the elapsed time and marked for further updates if needed.
- *
- * @param elapsed_time The time elapsed since the last debounce update, in milliseconds.
- */
-static inline void update_debounce_counters(uint8_t elapsed_time) {
- counters_need_update = false;
- matrix_need_update = false;
-
- for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) {
- uint16_t row_offset = row * MATRIX_COLS;
-
+// If the current time is > debounce counter, set the counter to enable input.
+static void update_debounce_counters(uint8_t num_rows, uint8_t elapsed_time) {
+ counters_need_update = false;
+ matrix_need_update = false;
+ debounce_counter_t *debounce_pointer = debounce_counters;
+ for (uint8_t row = 0; row < num_rows; row++) {
for (uint8_t col = 0; col < MATRIX_COLS; col++) {
- uint16_t index = row_offset + col;
-
- if (debounce_counters[index] != DEBOUNCE_ELAPSED) {
- if (debounce_counters[index] <= elapsed_time) {
- debounce_counters[index] = DEBOUNCE_ELAPSED;
- matrix_need_update = true;
+ if (*debounce_pointer != DEBOUNCE_ELAPSED) {
+ if (*debounce_pointer <= elapsed_time) {
+ *debounce_pointer = DEBOUNCE_ELAPSED;
+ matrix_need_update = true;
} else {
- debounce_counters[index] -= elapsed_time;
+ *debounce_pointer -= elapsed_time;
counters_need_update = true;
}
}
+ debounce_pointer++;
}
}
}
-/**
- * @brief Transfers debounced key states from the raw matrix to the cooked matrix.
- *
- * For each key in the matrix, this function checks if its state has changed and if its
- * debounce counter has elapsed. If so, the debounce counter is reset, the cooked matrix
- * is updated to reflect the new state, and the matrix is marked for further updates.
- *
- * @param raw The current raw key state matrix.
- * @param cooked The debounced key state matrix to be updated.
- */
-static inline void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[]) {
- matrix_need_update = false;
-
- for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) {
- uint16_t row_offset = row * MATRIX_COLS;
+// upload from raw_matrix to final matrix;
+static void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows) {
+ matrix_need_update = false;
+ debounce_counter_t *debounce_pointer = debounce_counters;
+ for (uint8_t row = 0; row < num_rows; row++) {
matrix_row_t delta = raw[row] ^ cooked[row];
matrix_row_t existing_row = cooked[row];
-
for (uint8_t col = 0; col < MATRIX_COLS; col++) {
- uint16_t index = row_offset + col;
-
- matrix_row_t col_mask = (MATRIX_ROW_SHIFTER << col);
+ matrix_row_t col_mask = (ROW_SHIFTER << col);
if (delta & col_mask) {
- if (debounce_counters[index] == DEBOUNCE_ELAPSED) {
- debounce_counters[index] = DEBOUNCE;
- counters_need_update = true;
+ if (*debounce_pointer == DEBOUNCE_ELAPSED) {
+ *debounce_pointer = DEBOUNCE;
+ counters_need_update = true;
existing_row ^= col_mask; // flip the bit.
cooked_changed = true;
}
}
+ debounce_pointer++;
}
cooked[row] = existing_row;
}
diff --git a/quantum/debounce/sym_eager_pr.c b/quantum/debounce/sym_eager_pr.c
index 5a1e3a1bda..6cd9308aff 100644
--- a/quantum/debounce/sym_eager_pr.c
+++ b/quantum/debounce/sym_eager_pr.c
@@ -1,14 +1,33 @@
-// Copyright 2017 Alex Ong
-// Copyright 2021 Simon Arlott
-// SPDX-License-Identifier: GPL-2.0-or-later
-//
-// Basic per-row algorithm. Uses an 8-bit counter per key.
-// After pressing a key, it immediately changes state, and sets a counter.
-// No further inputs are accepted until DEBOUNCE milliseconds have occurred.
+/*
+Copyright 2019 Alex Ong
+Copyright 2021 Simon Arlott
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+/*
+Basic per-row algorithm. Uses an 8-bit counter per row.
+After pressing a key, it immediately changes state, and sets a counter.
+No further inputs are accepted until DEBOUNCE milliseconds have occurred.
+*/
#include "debounce.h"
#include "timer.h"
-#include "util.h"
+#include
+
+#ifdef PROTOCOL_CHIBIOS
+# if CH_CFG_USE_MEMCORE == FALSE
+# error ChibiOS is configured without a memory allocator. Your keyboard may have set `#define CH_CFG_USE_MEMCORE FALSE`, which is incompatible with this debounce algorithm.
+# endif
+#endif
#ifndef DEBOUNCE
# define DEBOUNCE 5
@@ -20,25 +39,37 @@
# define DEBOUNCE UINT8_MAX
#endif
-#define DEBOUNCE_ELAPSED 0
+typedef uint8_t debounce_counter_t;
#if DEBOUNCE > 0
-typedef uint8_t debounce_counter_t;
-// Uses MATRIX_ROWS_PER_HAND instead of MATRIX_ROWS to support split keyboards
-static debounce_counter_t debounce_counters[MATRIX_ROWS_PER_HAND] = {DEBOUNCE_ELAPSED};
-static bool counters_need_update;
-static bool matrix_need_update;
-static bool cooked_changed;
+static bool matrix_need_update;
-static inline void update_debounce_counters(uint8_t elapsed_time);
-static inline void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[]);
+static debounce_counter_t *debounce_counters;
+static fast_timer_t last_time;
+static bool counters_need_update;
+static bool cooked_changed;
-void debounce_init(uint8_t num_rows) {}
+# define DEBOUNCE_ELAPSED 0
+
+static void update_debounce_counters(uint8_t num_rows, uint8_t elapsed_time);
+static void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows);
+
+// we use num_rows rather than MATRIX_ROWS to support split keyboards
+void debounce_init(uint8_t num_rows) {
+ debounce_counters = (debounce_counter_t *)malloc(num_rows * sizeof(debounce_counter_t));
+ for (uint8_t r = 0; r < num_rows; r++) {
+ debounce_counters[r] = DEBOUNCE_ELAPSED;
+ }
+}
+
+void debounce_free(void) {
+ free(debounce_counters);
+ debounce_counters = NULL;
+}
bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed) {
- static fast_timer_t last_time;
- bool updated_last = false;
- cooked_changed = false;
+ bool updated_last = false;
+ cooked_changed = false;
if (counters_need_update) {
fast_timer_t now = timer_read_fast();
@@ -46,10 +77,12 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool
last_time = now;
updated_last = true;
+ if (elapsed_time > UINT8_MAX) {
+ elapsed_time = UINT8_MAX;
+ }
if (elapsed_time > 0) {
- // Update debounce counters with elapsed timer clamped to UINT8_MAX
- update_debounce_counters(MIN(elapsed_time, UINT8_MAX));
+ update_debounce_counters(num_rows, elapsed_time);
}
}
@@ -58,64 +91,49 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool
last_time = timer_read_fast();
}
- transfer_matrix_values(raw, cooked);
+ transfer_matrix_values(raw, cooked, num_rows);
}
return cooked_changed;
}
-/**
- * @brief Updates per-row debounce counters and determines if matrix needs updating.
- *
- * Iterates through each row in the matrix and checks its debounce counter. If the debounce
- * period has elapsed, the counter is reset and the matrix is marked for update. Otherwise,
- * the counter is decremented by the elapsed time and marked for further updates if needed.
- *
- * @param elapsed_time The time elapsed since the last debounce update, in milliseconds.
- */
-static inline void update_debounce_counters(uint8_t elapsed_time) {
- counters_need_update = false;
- matrix_need_update = false;
-
- for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) {
- if (debounce_counters[row] != DEBOUNCE_ELAPSED) {
- if (debounce_counters[row] <= elapsed_time) {
- debounce_counters[row] = DEBOUNCE_ELAPSED;
- matrix_need_update = true;
+// If the current time is > debounce counter, set the counter to enable input.
+static void update_debounce_counters(uint8_t num_rows, uint8_t elapsed_time) {
+ counters_need_update = false;
+ matrix_need_update = false;
+ debounce_counter_t *debounce_pointer = debounce_counters;
+ for (uint8_t row = 0; row < num_rows; row++) {
+ if (*debounce_pointer != DEBOUNCE_ELAPSED) {
+ if (*debounce_pointer <= elapsed_time) {
+ *debounce_pointer = DEBOUNCE_ELAPSED;
+ matrix_need_update = true;
} else {
- debounce_counters[row] -= elapsed_time;
+ *debounce_pointer -= elapsed_time;
counters_need_update = true;
}
}
+ debounce_pointer++;
}
}
-/**
- * @brief Transfers debounced key states from the raw matrix to the cooked matrix.
- *
- * For each row in the matrix, this function checks if its state has changed and if its
- * debounce counter has elapsed. If so, the debounce counter is reset, the cooked matrix
- * is updated to reflect the new state, and the matrix is marked for further updates.
- *
- * @param raw The current raw key state matrix.
- * @param cooked The debounced key state matrix
- */
-static inline void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[]) {
- matrix_need_update = false;
-
- for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) {
+// upload from raw_matrix to final matrix;
+static void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows) {
+ matrix_need_update = false;
+ debounce_counter_t *debounce_pointer = debounce_counters;
+ for (uint8_t row = 0; row < num_rows; row++) {
matrix_row_t existing_row = cooked[row];
matrix_row_t raw_row = raw[row];
// determine new value basd on debounce pointer + raw value
if (existing_row != raw_row) {
- if (debounce_counters[row] == DEBOUNCE_ELAPSED) {
- debounce_counters[row] = DEBOUNCE;
+ if (*debounce_pointer == DEBOUNCE_ELAPSED) {
+ *debounce_pointer = DEBOUNCE;
cooked_changed |= cooked[row] ^ raw_row;
cooked[row] = raw_row;
counters_need_update = true;
}
}
+ debounce_pointer++;
}
}
diff --git a/quantum/debounce/tests/debounce_test_common.cpp b/quantum/debounce/tests/debounce_test_common.cpp
index 3782f51411..fd4b6f01a6 100644
--- a/quantum/debounce/tests/debounce_test_common.cpp
+++ b/quantum/debounce/tests/debounce_test_common.cpp
@@ -121,6 +121,8 @@ void DebounceTest::runEventsInternal() {
checkCookedMatrix(false, "debounce() modified cooked matrix");
advance_time(1);
}
+
+ debounce_free();
}
void DebounceTest::runDebounce(bool changed) {
diff --git a/quantum/keycodes.h b/quantum/keycodes.h
index e5a64d9a71..6a59aa376d 100644
--- a/quantum/keycodes.h
+++ b/quantum/keycodes.h
@@ -26,11 +26,11 @@
#pragma once
// clang-format off
-#define QMK_KEYCODES_VERSION "0.0.8"
-#define QMK_KEYCODES_VERSION_BCD 0x00000008
+#define QMK_KEYCODES_VERSION "0.0.7"
+#define QMK_KEYCODES_VERSION_BCD 0x00000007
#define QMK_KEYCODES_VERSION_MAJOR 0
#define QMK_KEYCODES_VERSION_MINOR 0
-#define QMK_KEYCODES_VERSION_PATCH 8
+#define QMK_KEYCODES_VERSION_PATCH 7
enum qk_keycode_ranges {
// Ranges
@@ -663,8 +663,6 @@ enum qk_keycode_defines {
QK_LED_MATRIX_BRIGHTNESS_DOWN = 0x7816,
QK_LED_MATRIX_SPEED_UP = 0x7817,
QK_LED_MATRIX_SPEED_DOWN = 0x7818,
- QK_LED_MATRIX_FLAG_NEXT = 0x7819,
- QK_LED_MATRIX_FLAG_PREVIOUS = 0x781A,
QK_UNDERGLOW_TOGGLE = 0x7820,
QK_UNDERGLOW_MODE_NEXT = 0x7821,
QK_UNDERGLOW_MODE_PREVIOUS = 0x7822,
@@ -699,8 +697,6 @@ enum qk_keycode_defines {
QK_RGB_MATRIX_VALUE_DOWN = 0x784A,
QK_RGB_MATRIX_SPEED_UP = 0x784B,
QK_RGB_MATRIX_SPEED_DOWN = 0x784C,
- QK_RGB_MATRIX_FLAG_NEXT = 0x784D,
- QK_RGB_MATRIX_FLAG_PREVIOUS = 0x784E,
QK_BOOTLOADER = 0x7C00,
QK_REBOOT = 0x7C01,
QK_DEBUG_TOGGLE = 0x7C02,
@@ -1356,8 +1352,6 @@ enum qk_keycode_defines {
LM_BRID = QK_LED_MATRIX_BRIGHTNESS_DOWN,
LM_SPDU = QK_LED_MATRIX_SPEED_UP,
LM_SPDD = QK_LED_MATRIX_SPEED_DOWN,
- LM_FLGN = QK_LED_MATRIX_FLAG_NEXT,
- LM_FLGP = QK_LED_MATRIX_FLAG_PREVIOUS,
UG_TOGG = QK_UNDERGLOW_TOGGLE,
UG_NEXT = QK_UNDERGLOW_MODE_NEXT,
UG_PREV = QK_UNDERGLOW_MODE_PREVIOUS,
@@ -1392,8 +1386,6 @@ enum qk_keycode_defines {
RM_VALD = QK_RGB_MATRIX_VALUE_DOWN,
RM_SPDU = QK_RGB_MATRIX_SPEED_UP,
RM_SPDD = QK_RGB_MATRIX_SPEED_DOWN,
- RM_FLGN = QK_RGB_MATRIX_FLAG_NEXT,
- RM_FLGP = QK_RGB_MATRIX_FLAG_PREVIOUS,
QK_BOOT = QK_BOOTLOADER,
QK_RBT = QK_REBOOT,
DB_TOGG = QK_DEBUG_TOGGLE,
@@ -1519,10 +1511,10 @@ enum qk_keycode_defines {
#define IS_MACRO_KEYCODE(code) ((code) >= QK_MACRO_0 && (code) <= QK_MACRO_31)
#define IS_CONNECTION_KEYCODE(code) ((code) >= QK_OUTPUT_AUTO && (code) <= QK_BLUETOOTH_PROFILE5)
#define IS_BACKLIGHT_KEYCODE(code) ((code) >= QK_BACKLIGHT_ON && (code) <= QK_BACKLIGHT_TOGGLE_BREATHING)
-#define IS_LED_MATRIX_KEYCODE(code) ((code) >= QK_LED_MATRIX_ON && (code) <= QK_LED_MATRIX_FLAG_PREVIOUS)
+#define IS_LED_MATRIX_KEYCODE(code) ((code) >= QK_LED_MATRIX_ON && (code) <= QK_LED_MATRIX_SPEED_DOWN)
#define IS_UNDERGLOW_KEYCODE(code) ((code) >= QK_UNDERGLOW_TOGGLE && (code) <= QK_UNDERGLOW_SPEED_DOWN)
#define IS_RGB_KEYCODE(code) ((code) >= RGB_MODE_PLAIN && (code) <= RGB_MODE_TWINKLE)
-#define IS_RGB_MATRIX_KEYCODE(code) ((code) >= QK_RGB_MATRIX_ON && (code) <= QK_RGB_MATRIX_FLAG_PREVIOUS)
+#define IS_RGB_MATRIX_KEYCODE(code) ((code) >= QK_RGB_MATRIX_ON && (code) <= QK_RGB_MATRIX_SPEED_DOWN)
#define IS_QUANTUM_KEYCODE(code) ((code) >= QK_BOOTLOADER && (code) <= QK_LAYER_LOCK)
#define IS_KB_KEYCODE(code) ((code) >= QK_KB_0 && (code) <= QK_KB_31)
#define IS_USER_KEYCODE(code) ((code) >= QK_USER_0 && (code) <= QK_USER_31)
@@ -1545,10 +1537,10 @@ enum qk_keycode_defines {
#define MACRO_KEYCODE_RANGE QK_MACRO_0 ... QK_MACRO_31
#define CONNECTION_KEYCODE_RANGE QK_OUTPUT_AUTO ... QK_BLUETOOTH_PROFILE5
#define BACKLIGHT_KEYCODE_RANGE QK_BACKLIGHT_ON ... QK_BACKLIGHT_TOGGLE_BREATHING
-#define LED_MATRIX_KEYCODE_RANGE QK_LED_MATRIX_ON ... QK_LED_MATRIX_FLAG_PREVIOUS
+#define LED_MATRIX_KEYCODE_RANGE QK_LED_MATRIX_ON ... QK_LED_MATRIX_SPEED_DOWN
#define UNDERGLOW_KEYCODE_RANGE QK_UNDERGLOW_TOGGLE ... QK_UNDERGLOW_SPEED_DOWN
#define RGB_KEYCODE_RANGE RGB_MODE_PLAIN ... RGB_MODE_TWINKLE
-#define RGB_MATRIX_KEYCODE_RANGE QK_RGB_MATRIX_ON ... QK_RGB_MATRIX_FLAG_PREVIOUS
+#define RGB_MATRIX_KEYCODE_RANGE QK_RGB_MATRIX_ON ... QK_RGB_MATRIX_SPEED_DOWN
#define QUANTUM_KEYCODE_RANGE QK_BOOTLOADER ... QK_LAYER_LOCK
#define KB_KEYCODE_RANGE QK_KB_0 ... QK_KB_31
#define USER_KEYCODE_RANGE QK_USER_0 ... QK_USER_31
diff --git a/quantum/led_matrix/led_matrix.c b/quantum/led_matrix/led_matrix.c
index b2665597df..9c8004cc17 100644
--- a/quantum/led_matrix/led_matrix.c
+++ b/quantum/led_matrix/led_matrix.c
@@ -70,13 +70,6 @@ uint8_t g_led_frame_buffer[MATRIX_ROWS][MATRIX_COLS] = {{0}};
last_hit_t g_last_hit_tracker;
#endif // LED_MATRIX_KEYREACTIVE_ENABLED
-#ifndef LED_MATRIX_FLAG_STEPS
-# define LED_MATRIX_FLAG_STEPS \
- { LED_FLAG_ALL, LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER, LED_FLAG_NONE }
-#endif
-static const uint8_t led_matrix_flag_steps[] = LED_MATRIX_FLAG_STEPS;
-#define LED_MATRIX_FLAG_STEPS_COUNT ARRAY_SIZE(led_matrix_flag_steps)
-
// internals
static bool suspend_state = false;
static uint8_t led_last_enable = UINT8_MAX;
@@ -668,50 +661,6 @@ void led_matrix_set_flags_noeeprom(led_flags_t flags) {
led_matrix_set_flags_eeprom_helper(flags, false);
}
-void led_matrix_flags_step_helper(bool write_to_eeprom) {
- led_flags_t flags = led_matrix_get_flags();
-
- uint8_t next = 0;
- for (uint8_t i = 0; i < LED_MATRIX_FLAG_STEPS_COUNT; i++) {
- if (led_matrix_flag_steps[i] == flags) {
- next = i == LED_MATRIX_FLAG_STEPS_COUNT - 1 ? 0 : i + 1;
- break;
- }
- }
-
- led_matrix_set_flags_eeprom_helper(led_matrix_flag_steps[next], write_to_eeprom);
-}
-
-void led_matrix_flags_step_noeeprom(void) {
- led_matrix_flags_step_helper(false);
-}
-
-void led_matrix_flags_step(void) {
- led_matrix_flags_step_helper(true);
-}
-
-void led_matrix_flags_step_reverse_helper(bool write_to_eeprom) {
- led_flags_t flags = led_matrix_get_flags();
-
- uint8_t next = 0;
- for (uint8_t i = 0; i < LED_MATRIX_FLAG_STEPS_COUNT; i++) {
- if (led_matrix_flag_steps[i] == flags) {
- next = i == 0 ? LED_MATRIX_FLAG_STEPS_COUNT - 1 : i - 1;
- break;
- }
- }
-
- led_matrix_set_flags_eeprom_helper(led_matrix_flag_steps[next], write_to_eeprom);
-}
-
-void led_matrix_flags_step_reverse_noeeprom(void) {
- led_matrix_flags_step_reverse_helper(false);
-}
-
-void led_matrix_flags_step_reverse(void) {
- led_matrix_flags_step_reverse_helper(true);
-}
-
// LED Matrix naming
#undef LED_MATRIX_EFFECT
#ifdef LED_MATRIX_MODE_NAME_ENABLE
diff --git a/quantum/led_matrix/led_matrix.h b/quantum/led_matrix/led_matrix.h
index f484c700f4..9a49515ab2 100644
--- a/quantum/led_matrix/led_matrix.h
+++ b/quantum/led_matrix/led_matrix.h
@@ -183,10 +183,6 @@ void led_matrix_decrease_speed_noeeprom(void);
led_flags_t led_matrix_get_flags(void);
void led_matrix_set_flags(led_flags_t flags);
void led_matrix_set_flags_noeeprom(led_flags_t flags);
-void led_matrix_flags_step_noeeprom(void);
-void led_matrix_flags_step(void);
-void led_matrix_flags_step_reverse_noeeprom(void);
-void led_matrix_flags_step_reverse(void);
#ifdef LED_MATRIX_MODE_NAME_ENABLE
const char *led_matrix_get_mode_name(uint8_t mode);
diff --git a/quantum/painter/qff.h b/quantum/painter/qff.h
index f5c59b315b..ed88508d73 100644
--- a/quantum/painter/qff.h
+++ b/quantum/painter/qff.h
@@ -22,7 +22,7 @@
#define QFF_FONT_DESCRIPTOR_TYPEID 0x00
-typedef struct PACKED qff_font_descriptor_v1_t {
+typedef struct QP_PACKED qff_font_descriptor_v1_t {
qgf_block_header_v1_t header; // = { .type_id = 0x00, .neg_type_id = (~0x00), .length = 20 }
uint32_t magic : 24; // constant, equal to 0x464651 ("QFF")
uint8_t qff_version; // constant, equal to 0x01
@@ -51,13 +51,13 @@ STATIC_ASSERT(sizeof(qff_font_descriptor_v1_t) == (sizeof(qgf_block_header_v1_t)
#define QFF_GLYPH_OFFSET_BITS 18
#define QFF_GLYPH_OFFSET_MASK (((1 << QFF_GLYPH_OFFSET_BITS) - 1) << QFF_GLYPH_WIDTH_BITS)
-typedef struct PACKED qff_ascii_glyph_v1_t {
+typedef struct QP_PACKED qff_ascii_glyph_v1_t {
uint32_t value : 24; // Uses QFF_GLYPH_*_(BITS|MASK) as bitfield ordering is compiler-defined
} qff_ascii_glyph_v1_t;
STATIC_ASSERT(sizeof(qff_ascii_glyph_v1_t) == 3, "qff_ascii_glyph_v1_t must be 3 bytes in v1 of QFF");
-typedef struct PACKED qff_ascii_glyph_table_v1_t {
+typedef struct QP_PACKED qff_ascii_glyph_table_v1_t {
qgf_block_header_v1_t header; // = { .type_id = 0x01, .neg_type_id = (~0x01), .length = 285 }
qff_ascii_glyph_v1_t glyph[95]; // 95 glyphs, 0x20..0x7E
} qff_ascii_glyph_table_v1_t;
@@ -69,14 +69,14 @@ STATIC_ASSERT(sizeof(qff_ascii_glyph_table_v1_t) == (sizeof(qgf_block_header_v1_
#define QFF_UNICODE_GLYPH_DESCRIPTOR_TYPEID 0x02
-typedef struct PACKED qff_unicode_glyph_v1_t {
+typedef struct QP_PACKED qff_unicode_glyph_v1_t {
uint32_t code_point : 24;
uint32_t value : 24; // Uses QFF_GLYPH_*_(BITS|MASK) as bitfield ordering is compiler-defined
} qff_unicode_glyph_v1_t;
STATIC_ASSERT(sizeof(qff_unicode_glyph_v1_t) == 6, "qff_unicode_glyph_v1_t must be 6 bytes in v1 of QFF");
-typedef struct PACKED qff_unicode_glyph_table_v1_t {
+typedef struct QP_PACKED qff_unicode_glyph_table_v1_t {
qgf_block_header_v1_t header; // = { .type_id = 0x02, .neg_type_id = (~0x02), .length = (N * 6) }
qff_unicode_glyph_v1_t glyph[0]; // Extent of '0' signifies that this struct is immediately followed by the glyph data
} qff_unicode_glyph_table_v1_t;
diff --git a/quantum/painter/qgf.c b/quantum/painter/qgf.c
index e5a1895b74..07c3f80314 100644
--- a/quantum/painter/qgf.c
+++ b/quantum/painter/qgf.c
@@ -26,7 +26,7 @@ bool qgf_validate_block_header(qgf_block_header_v1_t *desc, uint8_t expected_typ
bool qgf_parse_format(qp_image_format_t format, uint8_t *bpp, bool *has_palette, bool *is_panel_native) {
// clang-format off
- static const struct PACKED {
+ static const struct QP_PACKED {
uint8_t bpp;
bool has_palette;
bool is_panel_native;
diff --git a/quantum/painter/qgf.h b/quantum/painter/qgf.h
index 87a9124f27..a1e245f15d 100644
--- a/quantum/painter/qgf.h
+++ b/quantum/painter/qgf.h
@@ -19,7 +19,7 @@
/////////////////////////////////////////
// Common block header
-typedef struct PACKED qgf_block_header_v1_t {
+typedef struct QP_PACKED qgf_block_header_v1_t {
uint8_t type_id; // See each respective block type below.
uint8_t neg_type_id; // Negated type ID, used for detecting parsing errors.
uint32_t length : 24; // 24-bit blob length, allowing for block sizes of a maximum of 16MB.
@@ -32,7 +32,7 @@ STATIC_ASSERT(sizeof(qgf_block_header_v1_t) == 5, "qgf_block_header_v1_t must be
#define QGF_GRAPHICS_DESCRIPTOR_TYPEID 0x00
-typedef struct PACKED qgf_graphics_descriptor_v1_t {
+typedef struct QP_PACKED qgf_graphics_descriptor_v1_t {
qgf_block_header_v1_t header; // = { .type_id = 0x00, .neg_type_id = (~0x00), .length = 18 }
uint32_t magic : 24; // constant, equal to 0x464751 ("QGF")
uint8_t qgf_version; // constant, equal to 0x01
@@ -52,7 +52,7 @@ STATIC_ASSERT(sizeof(qgf_graphics_descriptor_v1_t) == (sizeof(qgf_block_header_v
#define QGF_FRAME_OFFSET_DESCRIPTOR_TYPEID 0x01
-typedef struct PACKED qgf_frame_offsets_v1_t {
+typedef struct QP_PACKED qgf_frame_offsets_v1_t {
qgf_block_header_v1_t header; // = { .type_id = 0x01, .neg_type_id = (~0x01), .length = (N * sizeof(uint32_t)) }
uint32_t offset[0]; // '0' signifies that this struct is immediately followed by the frame offsets
} qgf_frame_offsets_v1_t;
@@ -64,7 +64,7 @@ STATIC_ASSERT(sizeof(qgf_frame_offsets_v1_t) == sizeof(qgf_block_header_v1_t), "
#define QGF_FRAME_DESCRIPTOR_TYPEID 0x02
-typedef struct PACKED qgf_frame_v1_t {
+typedef struct QP_PACKED qgf_frame_v1_t {
qgf_block_header_v1_t header; // = { .type_id = 0x02, .neg_type_id = (~0x02), .length = 6 }
qp_image_format_t format : 8; // Frame format, see qp_internal_formats.h.
uint8_t flags; // Frame flags, see below.
@@ -83,7 +83,7 @@ STATIC_ASSERT(sizeof(qgf_frame_v1_t) == (sizeof(qgf_block_header_v1_t) + 6), "qg
#define QGF_FRAME_PALETTE_DESCRIPTOR_TYPEID 0x03
-typedef struct PACKED qgf_palette_entry_v1_t {
+typedef struct QP_PACKED qgf_palette_entry_v1_t {
uint8_t h; // hue component: `[0,360)` degrees is mapped to `[0,255]` uint8_t.
uint8_t s; // saturation component: `[0,1]` is mapped to `[0,255]` uint8_t.
uint8_t v; // value component: `[0,1]` is mapped to `[0,255]` uint8_t.
@@ -91,7 +91,7 @@ typedef struct PACKED qgf_palette_entry_v1_t {
STATIC_ASSERT(sizeof(qgf_palette_entry_v1_t) == 3, "Palette entry is not 3 bytes in size");
-typedef struct PACKED qgf_palette_v1_t {
+typedef struct QP_PACKED qgf_palette_v1_t {
qgf_block_header_v1_t header; // = { .type_id = 0x03, .neg_type_id = (~0x03), .length = (N * 3 * sizeof(uint8_t)) }
qgf_palette_entry_v1_t hsv[0]; // N * hsv, where N is the number of palette entries depending on the frame format in the descriptor
} qgf_palette_v1_t;
@@ -103,7 +103,7 @@ STATIC_ASSERT(sizeof(qgf_palette_v1_t) == sizeof(qgf_block_header_v1_t), "qgf_pa
#define QGF_FRAME_DELTA_DESCRIPTOR_TYPEID 0x04
-typedef struct PACKED qgf_delta_v1_t {
+typedef struct QP_PACKED qgf_delta_v1_t {
qgf_block_header_v1_t header; // = { .type_id = 0x04, .neg_type_id = (~0x04), .length = 8 }
uint16_t left; // The left pixel location to draw the delta image
uint16_t top; // The top pixel location to draw the delta image
@@ -118,7 +118,7 @@ STATIC_ASSERT(sizeof(qgf_delta_v1_t) == (sizeof(qgf_block_header_v1_t) + 8), "qg
#define QGF_FRAME_DATA_DESCRIPTOR_TYPEID 0x05
-typedef struct PACKED qgf_data_v1_t {
+typedef struct QP_PACKED qgf_data_v1_t {
qgf_block_header_v1_t header; // = { .type_id = 0x05, .neg_type_id = (~0x05), .length = N }
uint8_t data[0]; // 0 signifies that this struct is immediately followed by the length of data specified in the header
} qgf_data_v1_t;
diff --git a/quantum/painter/qp_comms.c b/quantum/painter/qp_comms.c
index 63667783e1..402165b119 100644
--- a/quantum/painter/qp_comms.c
+++ b/quantum/painter/qp_comms.c
@@ -49,15 +49,15 @@ uint32_t qp_comms_send(painter_device_t device, const void *data, uint32_t byte_
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Comms APIs that use a D/C pin
-void qp_comms_command(painter_device_t device, uint8_t cmd) {
+bool qp_comms_command(painter_device_t device, uint8_t cmd) {
painter_driver_t * driver = (painter_driver_t *)device;
painter_comms_with_command_vtable_t *comms_vtable = (painter_comms_with_command_vtable_t *)driver->comms_vtable;
- comms_vtable->send_command(device, cmd);
+ return comms_vtable->send_command(device, cmd);
}
-void qp_comms_command_databyte(painter_device_t device, uint8_t cmd, uint8_t data) {
+bool qp_comms_command_databyte(painter_device_t device, uint8_t cmd, uint8_t data) {
qp_comms_command(device, cmd);
- qp_comms_send(device, &data, sizeof(data));
+ return qp_comms_send(device, &data, sizeof(data));
}
uint32_t qp_comms_command_databuf(painter_device_t device, uint8_t cmd, const void *data, uint32_t byte_count) {
@@ -65,8 +65,8 @@ uint32_t qp_comms_command_databuf(painter_device_t device, uint8_t cmd, const vo
return qp_comms_send(device, data, byte_count);
}
-void qp_comms_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) {
+bool qp_comms_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) {
painter_driver_t * driver = (painter_driver_t *)device;
painter_comms_with_command_vtable_t *comms_vtable = (painter_comms_with_command_vtable_t *)driver->comms_vtable;
- comms_vtable->bulk_command_sequence(device, sequence, sequence_len);
+ return comms_vtable->bulk_command_sequence(device, sequence, sequence_len);
}
diff --git a/quantum/painter/qp_comms.h b/quantum/painter/qp_comms.h
index 8fbf25c201..dc5892b1bb 100644
--- a/quantum/painter/qp_comms.h
+++ b/quantum/painter/qp_comms.h
@@ -19,7 +19,7 @@ uint32_t qp_comms_send(painter_device_t device, const void* data, uint32_t byte_
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Comms APIs that use a D/C pin
-void qp_comms_command(painter_device_t device, uint8_t cmd);
-void qp_comms_command_databyte(painter_device_t device, uint8_t cmd, uint8_t data);
+bool qp_comms_command(painter_device_t device, uint8_t cmd);
+bool qp_comms_command_databyte(painter_device_t device, uint8_t cmd, uint8_t data);
uint32_t qp_comms_command_databuf(painter_device_t device, uint8_t cmd, const void* data, uint32_t byte_count);
-void qp_comms_bulk_command_sequence(painter_device_t device, const uint8_t* sequence, size_t sequence_len);
+bool qp_comms_bulk_command_sequence(painter_device_t device, const uint8_t* sequence, size_t sequence_len);
diff --git a/quantum/painter/qp_draw_core.c b/quantum/painter/qp_draw_core.c
index 3958045943..852abb19e8 100644
--- a/quantum/painter/qp_draw_core.c
+++ b/quantum/painter/qp_draw_core.c
@@ -52,7 +52,7 @@ bool qp_internal_setpixel_impl(painter_device_t device, uint16_t x, uint16_t y)
void qp_internal_fill_pixdata(painter_device_t device, uint32_t num_pixels, uint8_t hue, uint8_t sat, uint8_t val) {
painter_driver_t *driver = (painter_driver_t *)device;
uint32_t pixels_in_pixdata = qp_internal_num_pixels_in_buffer(device);
- num_pixels = MIN(pixels_in_pixdata, num_pixels);
+ num_pixels = QP_MIN(pixels_in_pixdata, num_pixels);
// Convert the color to native pixel format
qp_pixel_t color = {.hsv888 = {.h = hue, .s = sat, .v = val}};
@@ -232,17 +232,17 @@ bool qp_internal_fillrect_helper_impl(painter_device_t device, uint16_t left, ui
uint32_t pixels_in_pixdata = qp_internal_num_pixels_in_buffer(device);
painter_driver_t *driver = (painter_driver_t *)device;
- uint16_t l = MIN(left, right);
- uint16_t r = MAX(left, right);
- uint16_t t = MIN(top, bottom);
- uint16_t b = MAX(top, bottom);
+ uint16_t l = QP_MIN(left, right);
+ uint16_t r = QP_MAX(left, right);
+ uint16_t t = QP_MIN(top, bottom);
+ uint16_t b = QP_MAX(top, bottom);
uint16_t w = r - l + 1;
uint16_t h = b - t + 1;
uint32_t remaining = w * h;
driver->driver_vtable->viewport(device, l, t, r, b);
while (remaining > 0) {
- uint32_t transmit = MIN(remaining, pixels_in_pixdata);
+ uint32_t transmit = QP_MIN(remaining, pixels_in_pixdata);
if (!driver->driver_vtable->pixdata(device, qp_internal_global_pixdata_buffer, transmit)) {
return false;
}
@@ -260,10 +260,10 @@ bool qp_rect(painter_device_t device, uint16_t left, uint16_t top, uint16_t righ
}
// Cater for cases where people have submitted the coordinates backwards
- uint16_t l = MIN(left, right);
- uint16_t r = MAX(left, right);
- uint16_t t = MIN(top, bottom);
- uint16_t b = MAX(top, bottom);
+ uint16_t l = QP_MIN(left, right);
+ uint16_t r = QP_MAX(left, right);
+ uint16_t t = QP_MIN(top, bottom);
+ uint16_t b = QP_MAX(top, bottom);
uint16_t w = r - l + 1;
uint16_t h = b - t + 1;
@@ -281,7 +281,7 @@ bool qp_rect(painter_device_t device, uint16_t left, uint16_t top, uint16_t righ
ret = qp_internal_fillrect_helper_impl(device, l, t, r, b);
} else {
// Fill up the pixdata buffer with the required number of native pixels
- qp_internal_fill_pixdata(device, MAX(w, h), hue, sat, val);
+ qp_internal_fill_pixdata(device, QP_MAX(w, h), hue, sat, val);
// Draw 4x filled single-width rects to create an outline
if (!qp_internal_fillrect_helper_impl(device, l, t, r, t) || !qp_internal_fillrect_helper_impl(device, l, b, r, b) || !qp_internal_fillrect_helper_impl(device, l, t + 1, l, b - 1) || !qp_internal_fillrect_helper_impl(device, r, t + 1, r, b - 1)) {
diff --git a/quantum/painter/qp_draw_ellipse.c b/quantum/painter/qp_draw_ellipse.c
index 22f019d179..9e77bca8b0 100644
--- a/quantum/painter/qp_draw_ellipse.c
+++ b/quantum/painter/qp_draw_ellipse.c
@@ -75,7 +75,7 @@ bool qp_ellipse(painter_device_t device, uint16_t x, uint16_t y, uint16_t sizex,
int16_t dx = 0;
int16_t dy = ((int16_t)sizey);
- qp_internal_fill_pixdata(device, MAX(sizex, sizey), hue, sat, val);
+ qp_internal_fill_pixdata(device, QP_MAX(sizex, sizey), hue, sat, val);
if (!qp_comms_start(device)) {
qp_dprintf("qp_ellipse: fail (could not start comms)\n");
diff --git a/quantum/painter/qp_internal.h b/quantum/painter/qp_internal.h
index 52b1b5c69d..e7a6d113c5 100644
--- a/quantum/painter/qp_internal.h
+++ b/quantum/painter/qp_internal.h
@@ -5,11 +5,17 @@
#include "quantum.h"
#include "qp.h"
-#include "util.h" // PACKED/MIN/MAX
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Helpers
+// Mark certain types that there should be no padding bytes between members.
+#define QP_PACKED __attribute__((packed))
+
+// Min/max defines
+#define QP_MIN(X, Y) (((X) < (Y)) ? (X) : (Y))
+#define QP_MAX(X, Y) (((X) > (Y)) ? (X) : (Y))
+
#ifdef QUANTUM_PAINTER_DEBUG
# include
# include
diff --git a/quantum/painter/qp_internal_driver.h b/quantum/painter/qp_internal_driver.h
index 69da966f8c..5b6efe2c83 100644
--- a/quantum/painter/qp_internal_driver.h
+++ b/quantum/painter/qp_internal_driver.h
@@ -36,7 +36,7 @@ typedef struct painter_driver_vtable_t {
typedef bool (*painter_driver_comms_init_func)(painter_device_t device);
typedef bool (*painter_driver_comms_start_func)(painter_device_t device);
-typedef void (*painter_driver_comms_stop_func)(painter_device_t device);
+typedef bool (*painter_driver_comms_stop_func)(painter_device_t device);
typedef uint32_t (*painter_driver_comms_send_func)(painter_device_t device, const void *data, uint32_t byte_count);
typedef struct painter_comms_vtable_t {
@@ -46,8 +46,8 @@ typedef struct painter_comms_vtable_t {
painter_driver_comms_send_func comms_send;
} painter_comms_vtable_t;
-typedef void (*painter_driver_comms_send_command_func)(painter_device_t device, uint8_t cmd);
-typedef void (*painter_driver_comms_bulk_command_sequence)(painter_device_t device, const uint8_t *sequence, size_t sequence_len);
+typedef bool (*painter_driver_comms_send_command_func)(painter_device_t device, uint8_t cmd);
+typedef bool (*painter_driver_comms_bulk_command_sequence)(painter_device_t device, const uint8_t *sequence, size_t sequence_len);
typedef struct painter_comms_with_command_vtable_t {
painter_comms_vtable_t base; // must be first, so this object can be cast from the painter_comms_vtable_t* type
diff --git a/quantum/painter/qp_internal_formats.h b/quantum/painter/qp_internal_formats.h
index 28cff0cd61..bd7105cab2 100644
--- a/quantum/painter/qp_internal_formats.h
+++ b/quantum/painter/qp_internal_formats.h
@@ -3,7 +3,6 @@
#pragma once
-#include "color.h"
#include "compiler_support.h"
#include "qp_internal.h"
@@ -11,13 +10,21 @@
// Quantum Painter pixel formats
// Datatype containing a pixel's color. The internal member used is dependent on the external context.
-typedef union PACKED qp_pixel_t {
+typedef union QP_PACKED qp_pixel_t {
uint8_t mono;
uint8_t palette_idx;
- hsv_t hsv888;
+ struct QP_PACKED {
+ uint8_t h;
+ uint8_t s;
+ uint8_t v;
+ } hsv888;
- rgb_t rgb888;
+ struct QP_PACKED {
+ uint8_t r;
+ uint8_t g;
+ uint8_t b;
+ } rgb888;
uint16_t rgb565;
diff --git a/quantum/painter/rules.mk b/quantum/painter/rules.mk
index 2c5bc17eed..10c2698092 100644
--- a/quantum/painter/rules.mk
+++ b/quantum/painter/rules.mk
@@ -247,8 +247,7 @@ ifeq ($(strip $(QUANTUM_PAINTER_NEEDS_SURFACE)), yes)
SRC += \
$(DRIVER_PATH)/painter/generic/qp_surface_common.c \
$(DRIVER_PATH)/painter/generic/qp_surface_mono1bpp.c \
- $(DRIVER_PATH)/painter/generic/qp_surface_rgb565.c \
- $(DRIVER_PATH)/painter/generic/qp_surface_rgb888.c
+ $(DRIVER_PATH)/painter/generic/qp_surface_rgb565.c
endif
# If dummy comms is needed, set up the required files
diff --git a/quantum/process_keycode/process_led_matrix.c b/quantum/process_keycode/process_led_matrix.c
index 3342b33b92..7f95bf1011 100644
--- a/quantum/process_keycode/process_led_matrix.c
+++ b/quantum/process_keycode/process_led_matrix.c
@@ -40,12 +40,6 @@ bool process_led_matrix(uint16_t keycode, keyrecord_t *record) {
case QK_LED_MATRIX_SPEED_DOWN:
led_matrix_decrease_speed();
return false;
- case QK_LED_MATRIX_FLAG_NEXT:
- led_matrix_flags_step();
- return false;
- case QK_LED_MATRIX_FLAG_PREVIOUS:
- led_matrix_flags_step_reverse();
- return false;
}
}
diff --git a/quantum/process_keycode/process_rgb_matrix.c b/quantum/process_keycode/process_rgb_matrix.c
index c18212294d..fd2aa1a0c7 100644
--- a/quantum/process_keycode/process_rgb_matrix.c
+++ b/quantum/process_keycode/process_rgb_matrix.c
@@ -94,20 +94,6 @@ bool process_rgb_matrix(uint16_t keycode, keyrecord_t *record) {
rgb_matrix_decrease_speed();
}
return false;
- case QK_RGB_MATRIX_FLAG_NEXT:
- if (shifted) {
- rgb_matrix_flags_step_reverse();
- } else {
- rgb_matrix_flags_step();
- }
- return false;
- case QK_RGB_MATRIX_FLAG_PREVIOUS:
- if (shifted) {
- rgb_matrix_flags_step();
- } else {
- rgb_matrix_flags_step_reverse();
- }
- return false;
}
}
diff --git a/quantum/quantum.c b/quantum/quantum.c
index 128f8fb66d..09e5fe1dac 100644
--- a/quantum/quantum.c
+++ b/quantum/quantum.c
@@ -157,7 +157,9 @@ __attribute__((weak)) void unregister_code16(uint16_t code) {
*/
__attribute__((weak)) void tap_code16_delay(uint16_t code, uint16_t delay) {
register_code16(code);
- wait_ms(delay);
+ for (uint16_t i = delay; i > 0; i--) {
+ wait_ms(1);
+ }
unregister_code16(code);
}
diff --git a/quantum/rgb_matrix/animations/pixel_rain_anim.h b/quantum/rgb_matrix/animations/pixel_rain_anim.h
index f92a285b67..c0370831d8 100644
--- a/quantum/rgb_matrix/animations/pixel_rain_anim.h
+++ b/quantum/rgb_matrix/animations/pixel_rain_anim.h
@@ -6,27 +6,20 @@ RGB_MATRIX_EFFECT(PIXEL_RAIN)
# ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS
static bool PIXEL_RAIN(effect_params_t* params) {
- static uint8_t index = 0;
- static uint32_t timer = 0;
+ static fast_timer_t timer = 0;
+ static uint16_t index = RGB_MATRIX_LED_COUNT + 1;
- if (params->iter == 0 && params->init) {
+ if ((params->iter == 0) && (timer_elapsed_fast(timer) > (320 - rgb_matrix_config.speed))) {
index = random8_max(RGB_MATRIX_LED_COUNT);
+ timer = timer_read_fast();
}
RGB_MATRIX_USE_LIMITS(led_min, led_max);
- if (timer < g_rgb_timer) { // Execute when the delay period has elapsed
- if (led_min <= index && index < led_max && HAS_ANY_FLAGS(g_led_config.flags[index], params->flags)) {
- // Assign a random HSV color to hsv with 50% probability, otherwise assign zeroed hsv
- hsv_t hsv = (random8() & 2) ? (hsv_t){0, 0, 0} : (hsv_t){random8(), random8_min_max(127, 255), rgb_matrix_config.hsv.v};
- rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv);
- rgb_matrix_set_color(index, rgb.r, rgb.g, rgb.b);
- }
- if (!rgb_matrix_check_finished_leds(led_max)) {
- // In the final LED range, update the LED index and advance the timer for
- // the next cycle, scaling the delay between 256–2048 ms based on speed.
- index = random8_max(RGB_MATRIX_LED_COUNT);
- timer = g_rgb_timer + (2048 - scale16by8(1792, rgb_matrix_config.speed));
- }
+ if (led_min <= index && index < led_max && HAS_ANY_FLAGS(g_led_config.flags[index], params->flags)) {
+ hsv_t hsv = (random8() & 2) ? (hsv_t){0, 0, 0} : (hsv_t){random8(), random8_min_max(127, 255), rgb_matrix_config.hsv.v};
+ rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv);
+ rgb_matrix_set_color(index, rgb.r, rgb.g, rgb.b);
+ index = RGB_MATRIX_LED_COUNT + 1;
}
return rgb_matrix_check_finished_leds(led_max);
}
diff --git a/quantum/rgb_matrix/animations/raindrops_anim.h b/quantum/rgb_matrix/animations/raindrops_anim.h
index f3656a5c0d..d4f79adb56 100644
--- a/quantum/rgb_matrix/animations/raindrops_anim.h
+++ b/quantum/rgb_matrix/animations/raindrops_anim.h
@@ -7,9 +7,14 @@ static void raindrops_set_color(uint8_t i, effect_params_t* params) {
hsv_t hsv = rgb_matrix_config.hsv;
// Take the shortest path between hues
- int8_t deltaH = (int8_t)((hsv.h + 128) - hsv.h) / 4;
- hsv.h += (deltaH * random8_max(3));
+ int16_t deltaH = ((hsv.h + 180) % 360 - hsv.h) / 4;
+ if (deltaH > 127) {
+ deltaH -= 256;
+ } else if (deltaH < -127) {
+ deltaH += 256;
+ }
+ hsv.h += (deltaH * random8_max(3));
rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv);
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
}
diff --git a/quantum/rgb_matrix/rgb_matrix.c b/quantum/rgb_matrix/rgb_matrix.c
index 19edfb52b0..ab0aa17512 100644
--- a/quantum/rgb_matrix/rgb_matrix.c
+++ b/quantum/rgb_matrix/rgb_matrix.c
@@ -72,13 +72,6 @@ uint8_t g_rgb_frame_buffer[MATRIX_ROWS][MATRIX_COLS] = {{0}};
last_hit_t g_last_hit_tracker;
#endif // RGB_MATRIX_KEYREACTIVE_ENABLED
-#ifndef RGB_MATRIX_FLAG_STEPS
-# define RGB_MATRIX_FLAG_STEPS \
- { LED_FLAG_ALL, LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER, LED_FLAG_UNDERGLOW, LED_FLAG_NONE }
-#endif
-static const uint8_t rgb_matrix_flag_steps[] = RGB_MATRIX_FLAG_STEPS;
-#define RGB_MATRIX_FLAG_STEPS_COUNT ARRAY_SIZE(rgb_matrix_flag_steps)
-
// internals
static bool suspend_state = false;
static uint8_t rgb_last_enable = UINT8_MAX;
@@ -754,50 +747,6 @@ void rgb_matrix_set_flags_noeeprom(led_flags_t flags) {
rgb_matrix_set_flags_eeprom_helper(flags, false);
}
-void rgb_matrix_flags_step_helper(bool write_to_eeprom) {
- led_flags_t flags = rgb_matrix_get_flags();
-
- uint8_t next = 0;
- for (uint8_t i = 0; i < RGB_MATRIX_FLAG_STEPS_COUNT; i++) {
- if (rgb_matrix_flag_steps[i] == flags) {
- next = i == RGB_MATRIX_FLAG_STEPS_COUNT - 1 ? 0 : i + 1;
- break;
- }
- }
-
- rgb_matrix_set_flags_eeprom_helper(rgb_matrix_flag_steps[next], write_to_eeprom);
-}
-
-void rgb_matrix_flags_step_noeeprom(void) {
- rgb_matrix_flags_step_helper(false);
-}
-
-void rgb_matrix_flags_step(void) {
- rgb_matrix_flags_step_helper(true);
-}
-
-void rgb_matrix_flags_step_reverse_helper(bool write_to_eeprom) {
- led_flags_t flags = rgb_matrix_get_flags();
-
- uint8_t next = 0;
- for (uint8_t i = 0; i < RGB_MATRIX_FLAG_STEPS_COUNT; i++) {
- if (rgb_matrix_flag_steps[i] == flags) {
- next = i == 0 ? RGB_MATRIX_FLAG_STEPS_COUNT - 1 : i - 1;
- break;
- }
- }
-
- rgb_matrix_set_flags_eeprom_helper(rgb_matrix_flag_steps[next], write_to_eeprom);
-}
-
-void rgb_matrix_flags_step_reverse_noeeprom(void) {
- rgb_matrix_flags_step_reverse_helper(false);
-}
-
-void rgb_matrix_flags_step_reverse(void) {
- rgb_matrix_flags_step_reverse_helper(true);
-}
-
//----------------------------------------------------------
// RGB Matrix naming
#undef RGB_MATRIX_EFFECT
diff --git a/quantum/rgb_matrix/rgb_matrix.h b/quantum/rgb_matrix/rgb_matrix.h
index f800679b46..a91dded4a8 100644
--- a/quantum/rgb_matrix/rgb_matrix.h
+++ b/quantum/rgb_matrix/rgb_matrix.h
@@ -218,10 +218,6 @@ void rgb_matrix_decrease_speed_noeeprom(void);
led_flags_t rgb_matrix_get_flags(void);
void rgb_matrix_set_flags(led_flags_t flags);
void rgb_matrix_set_flags_noeeprom(led_flags_t flags);
-void rgb_matrix_flags_step_noeeprom(void);
-void rgb_matrix_flags_step(void);
-void rgb_matrix_flags_step_reverse_noeeprom(void);
-void rgb_matrix_flags_step_reverse(void);
void rgb_matrix_update_pwm_buffers(void);
#ifdef RGB_MATRIX_MODE_NAME_ENABLE
diff --git a/quantum/via.c b/quantum/via.c
index 9446811af6..130ff74794 100644
--- a/quantum/via.c
+++ b/quantum/via.c
@@ -37,6 +37,10 @@
#include "version.h" // for QMK_BUILDDATE used in EEPROM magic
#include "nvm_via.h"
+#if defined(SECURE_ENABLE)
+# include "secure.h"
+#endif
+
#if defined(AUDIO_ENABLE)
# include "audio.h"
#endif
@@ -322,8 +326,13 @@ void raw_hid_receive(uint8_t *data, uint8_t length) {
uint8_t rows = 28 / ((MATRIX_COLS + 7) / 8);
uint8_t i = 2;
for (uint8_t row = 0; row < rows && row + offset < MATRIX_ROWS; row++) {
-#ifdef VIA_INSECURE
+#if defined(VIA_INSECURE)
matrix_row_t value = matrix_get_row(row + offset);
+#elif defined(SECURE_ENABLE)
+ matrix_row_t value = 0;
+ if (secure_is_unlocked()) {
+ value = matrix_get_row(row + offset);
+ }
#else
matrix_row_t value = 0;
#endif
diff --git a/readme.md b/readme.md
index e5c0d41b7b..62aed12066 100644
--- a/readme.md
+++ b/readme.md
@@ -1,7 +1,3 @@
-# THIS IS THE DEVELOP BRANCH
-
-Warning- This is the `develop` branch of QMK Firmware. You may encounter broken code here. Please see [Breaking Changes](https://docs.qmk.fm/#/breaking_changes) for more information.
-
# Quantum Mechanical Keyboard Firmware
[](https://github.com/qmk/qmk_firmware/tags)