cb81913d18fd567cb2dbadcd9a5c5c767f75ba60

Author
James Young <18669334+noroadsleft@users.noreply.github.com>
Committer
GitHub <noreply@github.com>
Date

Message

Data-Driven Keyboard Conversions: B (#23425)

Converts configuration definitions and rules to data-driven where
applicable. Renames `info.json` to `keyboard.json` in instances where
`rules.mk` can be safely deleted.

Affects:

  - `bacca70`
  - `baguette`
  - `baion_808`
  - `bajjak`
  - `bandominedoni`
  - `bantam44`
  - `barleycorn_smd`
  - `barracuda`
  - `basekeys/slice/rev1`
  - `basekeys/slice/rev1_rgb`
  - `basekeys/trifecta`
  - `basketweave`
  - `bastardkb/dilemma/4x6_4`
  - `bbrfkr/dynamis`
  - `bear_face`
  - `beatervan`
  - `bemeier/bmek`
  - `biacco42/ergo42`
  - `biacco42/meishi`
  - `biacco42/meishi2`
  - `binepad/bn003`
  - `binepad/bn009/r1`
  - `binepad/bnr1`
  - `bioi/g60`
  - `bioi/g60ble`
  - `bioi/morgan65`
  - `bioi/s65`
  - `blackplum`
  - `blank/blank01`
  - `blank_tehnologii/manibus`
  - `blockey`
  - `bluebell/swoop`
  - `boardrun/bizarre`
  - `boardrun/classic`
  - `boardsource/equals/48`
  - `boardsource/equals/60`
  - `boardwalk`
  - `bop`
  - `boston`
  - `boston_meetup/2019`
  - `box75`
  - `bpiphany/four_banger`
  - `bpiphany/frosty_flake`
  - `bpiphany/ghost_squid`
  - `bpiphany/hid_liber`
  - `bpiphany/kitten_paw`
  - `bpiphany/tiger_lily`
  - `bpiphany/unloved_bastard`
  - `bt66tech/bt66tech60`
  - `bubble75/hotswap`
  - `budgy`
  - `buildakb/potato65`
  - `buildakb/potato65hs`
  - `buildakb/potato65s`
  - `buzzard`

Diff

This diff is truncated to protect this page.

   1diff --git a/keyboards/bacca70/config.h b/keyboards/bacca70/config.h
   2deleted file mode 100644
   3index 0c56f57b207dae8aa2f397df38f5d2af4e3a98ec..0000000000000000000000000000000000000000
   4--- a/keyboards/bacca70/config.h
   5+++ /dev/null
   6@@ -1,25 +0,0 @@
   7-/*
   8-Copyright 2022 keebnewb
   9-
  10-This program is free software: you can redistribute it and/or modify
  11-it under the terms of the GNU General Public License as published by
  12-the Free Software Foundation, either version 2 of the License, or
  13-(at your option) any later version.
  14-
  15-This program is distributed in the hope that it will be useful,
  16-but WITHOUT ANY WARRANTY; without even the implied warranty of
  17-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18-GNU General Public License for more details.
  19-
  20-You should have received a copy of the GNU General Public License
  21-along with this program.  If not, see <http://www.gnu.org/licenses/>.
  22-*/
  23-
  24-#pragma once
  25-
  26-/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
  27-#define LOCKING_SUPPORT_ENABLE
  28-/* Locking resynchronize hack */
  29-#define LOCKING_RESYNC_ENABLE
  30-
  31-
  32diff --git a/keyboards/bacca70/keyboard.json b/keyboards/bacca70/keyboard.json
  33index c192fb0eb23eef2ae393747e09dd55601c40b472..8d4483bc6fadf52dfa4bc1255d1377ccf7181a62 100644
  34--- a/keyboards/bacca70/keyboard.json
  35+++ b/keyboards/bacca70/keyboard.json
  36@@ -16,6 +16,12 @@
  37         "mousekey": false,
  38         "nkro": true
  39     },
  40+    "qmk": {
  41+        "locking": {
  42+            "enabled": true,
  43+            "resync": true
  44+        }
  45+    },
  46     "matrix_pins": {
  47         "cols": ["A0", "A1", "A2", "B12", "B13", "B14", "B15", "A8"],
  48         "rows": ["A3", "A4", "A5", "A6", "A7", "B0", "B1", "B2", "B10", "B11", "A9", "A10"]
  49diff --git a/keyboards/baguette/config.h b/keyboards/baguette/config.h
  50deleted file mode 100644
  51index 3005d1bcfbbfc22867df7e4d628d55c6dfb351e3..0000000000000000000000000000000000000000
  52--- a/keyboards/baguette/config.h
  53+++ /dev/null
  54@@ -1,39 +0,0 @@
  55-/*
  56-Copyright 2018 Yiancar
  57-
  58-This program is free software: you can redistribute it and/or modify
  59-it under the terms of the GNU General Public License as published by
  60-the Free Software Foundation, either version 2 of the License, or
  61-(at your option) any later version.
  62-
  63-This program is distributed in the hope that it will be useful,
  64-but WITHOUT ANY WARRANTY; without even the implied warranty of
  65-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  66-GNU General Public License for more details.
  67-
  68-You should have received a copy of the GNU General Public License
  69-along with this program.  If not, see <http://www.gnu.org/licenses/>.
  70-*/
  71-
  72-#pragma once
  73-
  74-/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
  75-#define LOCKING_SUPPORT_ENABLE
  76-/* Locking resynchronize hack */
  77-#define LOCKING_RESYNC_ENABLE
  78-
  79-/*
  80- * Feature disable options
  81- *  These options are also useful to firmware size reduction.
  82- */
  83-
  84-/* disable debug print */
  85-//#define NO_DEBUG
  86-
  87-/* disable print */
  88-//#define NO_PRINT
  89-
  90-/* disable action features */
  91-//#define NO_ACTION_LAYER
  92-//#define NO_ACTION_TAPPING
  93-//#define NO_ACTION_ONESHOT
  94diff --git a/keyboards/baguette/keyboard.json b/keyboards/baguette/keyboard.json
  95index f6797dd93906cc9950e85ef77cdc87c79e37094d..001757f86183256a0a99109977568231cfbe4b95 100644
  96--- a/keyboards/baguette/keyboard.json
  97+++ b/keyboards/baguette/keyboard.json
  98@@ -17,6 +17,12 @@
  99     "mousekey": true,
 100     "nkro": false
 101   },
 102+  "qmk": {
 103+    "locking": {
 104+      "enabled": true,
 105+      "resync": true
 106+    }
 107+  },
 108   "matrix_pins": {
 109     "cols": ["B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0", "B0", "D0", "D1", "D2", "D3", "D5", "D4"],
 110     "rows": ["B3", "B2", "B1", "E6", "D6"]
 111diff --git a/keyboards/baion_808/info.json b/keyboards/baion_808/info.json
 112index d8834ec06621381e646c2fe53473c5dffde606ec..c770a65e257ae1dc3bc5d2af23eb2ba4abfc8041 100755
 113--- a/keyboards/baion_808/info.json
 114+++ b/keyboards/baion_808/info.json
 115@@ -8,6 +8,12 @@
 116         "pid": "0x4238",
 117         "device_version": "0.0.1"
 118     },
 119+    "features": {
 120+        "bootmagic": true,
 121+        "mousekey": true,
 122+        "extrakey": true,
 123+        "nkro": true
 124+    },
 125     "matrix_pins": {
 126         "cols": ["A1", "B9", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "B2", "B10", "B11", "B12", "B13", "B14", "B15", "A8"],
 127         "rows": ["A2", "A14", "A15", "B3", "B4", "B5"]
 128@@ -20,6 +26,7 @@
 129     },
 130     "processor": "STM32F072",
 131     "bootloader": "stm32-dfu",
 132+    "community_layouts": ["tkl_ansi", "tkl_ansi_tsangan", "tkl_ansi_split_bs_rshift", "tkl_ansi_tsangan_split_bs_rshift", "tkl_iso", "tkl_iso_split_bs_rshift", "tkl_iso_tsangan", "tkl_iso_tsangan_split_bs_rshift"],
 133     "layouts": {
 134         "LAYOUT_all": {
 135             "layout": [
 136diff --git a/keyboards/baion_808/rules.mk b/keyboards/baion_808/rules.mk
 137index 11c4a00e5a5f2dece9ee743198aa081d12b5dc71..0ab54aaaf7188463490f3397a5d21289b8f6ef08 100644
 138--- a/keyboards/baion_808/rules.mk
 139+++ b/keyboards/baion_808/rules.mk
 140@@ -1,17 +1,2 @@
 141 # Wildcard to allow APM32 MCU
 142 DFU_SUFFIX_ARGS = -v FFFF -p FFFF
 143-
 144-# Build Options
 145-#   change yes to no to disable
 146-#
 147-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
 148-MOUSEKEY_ENABLE = yes       # Mouse keys
 149-EXTRAKEY_ENABLE = yes       # Audio control and System control
 150-CONSOLE_ENABLE = no         # Console for debug
 151-COMMAND_ENABLE = no         # Commands for debug and configuration
 152-NKRO_ENABLE = yes           # Enable N-Key Rollover
 153-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 154-RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
 155-AUDIO_ENABLE = no           # Audio output
 156-
 157-LAYOUTS = tkl_ansi tkl_ansi_tsangan tkl_ansi_split_bs_rshift tkl_ansi_tsangan_split_bs_rshift tkl_iso tkl_iso_split_bs_rshift tkl_iso_tsangan tkl_iso_tsangan_split_bs_rshift
 158diff --git a/keyboards/bajjak/config.h b/keyboards/bajjak/config.h
 159index 72d296bca4b9045714dec2c3063dd0db066e5495..455588fb084fb48aba01ab8188c8d30d815d29ef 100644
 160--- a/keyboards/bajjak/config.h
 161+++ b/keyboards/bajjak/config.h
 162@@ -43,11 +43,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 163 #define MOUSEKEY_MAX_SPEED      7
 164 #define MOUSEKEY_WHEEL_DELAY 0
 165 
 166-/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 167-#define LOCKING_SUPPORT_ENABLE
 168-/* Locking resynchronize hack */
 169-#define LOCKING_RESYNC_ENABLE
 170-
 171 /* key combination for command */
 172 #define IS_COMMAND() ( \
 173     get_mods() == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \
 174diff --git a/keyboards/bajjak/info.json b/keyboards/bajjak/info.json
 175index bf090bb7d63cf454143ea88d65d5ffe45f05c915..a4ab7298ee16f44a9451c00f48b5a83040888cef 100644
 176--- a/keyboards/bajjak/info.json
 177+++ b/keyboards/bajjak/info.json
 178@@ -8,6 +8,21 @@
 179         "pid": "0x0002",
 180         "device_version": "0.0.1"
 181     },
 182+    "features": {
 183+        "bootmagic": false,
 184+        "mousekey": true,
 185+        "extrakey": true,
 186+        "command": true,
 187+        "nkro": true,
 188+        "unicode": true,
 189+        "swap_hands": true
 190+    },
 191+    "qmk": {
 192+        "locking": {
 193+            "enabled": true,
 194+            "resync": true
 195+        }
 196+    },
 197     "processor": "atmega32u4",
 198     "bootloader": "halfkay",
 199     "tapping": {
 200diff --git a/keyboards/bajjak/rules.mk b/keyboards/bajjak/rules.mk
 201index 21db4112e069dc96b436e7d12b1b3ee54519c5a9..08caba6edc169cfff86cbb56d71982279b43063e 100644
 202--- a/keyboards/bajjak/rules.mk
 203+++ b/keyboards/bajjak/rules.mk
 204@@ -3,22 +3,7 @@
 205 # details), include the following define:
 206 OPT_DEFS += -DLEFT_LEDS
 207 
 208-# Build Options
 209-#   change yes to no to disable
 210-#
 211-BOOTMAGIC_ENABLE = no       # Enable Bootmagic Lite
 212-MOUSEKEY_ENABLE = yes       # Mouse keys
 213-EXTRAKEY_ENABLE = yes       # Audio control and System control
 214-CONSOLE_ENABLE = no         # Console for debug
 215-COMMAND_ENABLE = yes        # Commands for debug and configuration
 216-NKRO_ENABLE = yes           # Enable N-Key Rollover
 217-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 218-RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
 219-AUDIO_ENABLE = no           # Audio output
 220-
 221 CUSTOM_MATRIX = lite        # Custom matrix file for the BAJJAK
 222-UNICODE_ENABLE = yes        # Unicode
 223-SWAP_HANDS_ENABLE = yes     # Allow swapping hands of keyboard
 224 
 225 # Disable unsupported hardware
 226 BACKLIGHT_SUPPORTED = no
 227diff --git a/keyboards/bandominedoni/info.json b/keyboards/bandominedoni/keyboard.json
 228rename from keyboards/bandominedoni/info.json
 229rename to keyboards/bandominedoni/keyboard.json
 230index deea0f3e5ef000e2a690a6cbe13094d9dc826d2e..c253da0c8390565ed9dc92e81693725e86b5be3c 100644
 231--- a/keyboards/bandominedoni/info.json
 232+++ b/keyboards/bandominedoni/keyboard.json
 233@@ -8,6 +8,16 @@
 234         "pid": "0xF4B5",
 235         "device_version": "0.0.1"
 236     },
 237+    "features": {
 238+        "bootmagic": false,
 239+        "mousekey": false,
 240+        "extrakey": true,
 241+        "midi": true,
 242+        "encoder": true
 243+    },
 244+    "build": {
 245+        "lto": true
 246+    },
 247     "rgb_matrix": {
 248         "driver": "ws2812",
 249         "max_brightness": 50,
 250@@ -19,6 +29,7 @@
 251     },
 252     "diode_direction": "COL2ROW",
 253     "split": {
 254+        "enabled": true,
 255         "soft_serial_pin": "D2",
 256         "encoder": {
 257             "right": {
 258diff --git a/keyboards/bandominedoni/rules.mk b/keyboards/bandominedoni/rules.mk
 259deleted file mode 100644
 260index c32d761f102cdab384cb5332be1347ffd8611fe1..0000000000000000000000000000000000000000
 261--- a/keyboards/bandominedoni/rules.mk
 262+++ /dev/null
 263@@ -1,18 +0,0 @@
 264-# Build Options
 265-#   change yes to no to disable
 266-#
 267-BOOTMAGIC_ENABLE = no       # Enable Bootmagic Lite
 268-MOUSEKEY_ENABLE = no        # Mouse keys
 269-EXTRAKEY_ENABLE = yes       # Audio control and System control
 270-CONSOLE_ENABLE = no         # Console for debug
 271-COMMAND_ENABLE = no         # Commands for debug and configuration
 272-NKRO_ENABLE = no            # Enable N-Key Rollover
 273-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 274-RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
 275-AUDIO_ENABLE = no           # Audio output
 276-MIDI_ENABLE = yes           # MIDI support
 277-ENCODER_ENABLE = yes        # encoder on mute button
 278-SPLIT_KEYBOARD = yes        # Enables split keyboard support
 279-RGB_MATRIX_ENABLE = no      # Use RGB matrix (Don't enable this when RGBLIGHT_ENABLE is used.)
 280-
 281-LTO_ENABLE = yes
 282diff --git a/keyboards/bantam44/config.h b/keyboards/bantam44/config.h
 283deleted file mode 100644
 284index b9449c4714bf39561a177eb1ee1ba90b87dbc6fb..0000000000000000000000000000000000000000
 285--- a/keyboards/bantam44/config.h
 286+++ /dev/null
 287@@ -1,39 +0,0 @@
 288-/*
 289-Copyright 2012 Jun Wako <wakojun@gmail.com>
 290-
 291-This program is free software: you can redistribute it and/or modify
 292-it under the terms of the GNU General Public License as published by
 293-the Free Software Foundation, either version 2 of the License, or
 294-(at your option) any later version.
 295-
 296-This program is distributed in the hope that it will be useful,
 297-but WITHOUT ANY WARRANTY; without even the implied warranty of
 298-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 299-GNU General Public License for more details.
 300-
 301-You should have received a copy of the GNU General Public License
 302-along with this program.  If not, see <http://www.gnu.org/licenses/>.
 303-*/
 304-
 305-#pragma once
 306-
 307-/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 308-#define LOCKING_SUPPORT_ENABLE
 309-/* Locking resynchronize hack */
 310-#define LOCKING_RESYNC_ENABLE
 311-
 312-/*
 313- * Feature disable options
 314- *  These options are also useful to firmware size reduction.
 315- */
 316-
 317-/* disable debug print */
 318-//#define NO_DEBUG
 319-
 320-/* disable print */
 321-//#define NO_PRINT
 322-
 323-/* disable action features */
 324-//#define NO_ACTION_LAYER
 325-//#define NO_ACTION_TAPPING
 326-//#define NO_ACTION_ONESHOT
 327diff --git a/keyboards/bantam44/keyboard.json b/keyboards/bantam44/keyboard.json
 328index 2a884c2524efa65af97b22a45ed6763477e9332e..ac534af6a9961a009d67ca3b5c7de7d581a8bd04 100644
 329--- a/keyboards/bantam44/keyboard.json
 330+++ b/keyboards/bantam44/keyboard.json
 331@@ -16,6 +16,12 @@
 332     "mousekey": true,
 333     "nkro": false
 334   },
 335+  "qmk": {
 336+    "locking": {
 337+      "enabled": true,
 338+      "resync": true
 339+    }
 340+  },
 341   "matrix_pins": {
 342     "cols": ["B0", "B1", "B2", "B3", "B7", "D0", "B6", "F7", "F6", "F5", "F4", "F1"],
 343     "rows": ["F0", "D6", "D4", "D5"]
 344diff --git a/keyboards/barleycorn_smd/config.h b/keyboards/barleycorn_smd/config.h
 345index 06c67798c01059ad490b2e5b222bcf8921e1df9a..e64c243aad3d4877fd2a7bb66c77cd5de18afcfe 100644
 346--- a/keyboards/barleycorn_smd/config.h
 347+++ b/keyboards/barleycorn_smd/config.h
 348@@ -41,11 +41,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 349 /* COL2ROW, ROW2COL*/
 350 #define DIODE_DIRECTION COL2ROW
 351 
 352-/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 353-#define LOCKING_SUPPORT_ENABLE
 354-/* Locking resynchronize hack */
 355-#define LOCKING_RESYNC_ENABLE
 356-
 357 /*
 358  * Feature disable options
 359  *  These options are also useful to firmware size reduction.
 360diff --git a/keyboards/barleycorn_smd/info.json b/keyboards/barleycorn_smd/info.json
 361index b4aef08b62da92bb3b5b515a8f724fb3df8970b9..cc269296d7383a2ad31c22a9801b344fff5e7e1c 100644
 362--- a/keyboards/barleycorn_smd/info.json
 363+++ b/keyboards/barleycorn_smd/info.json
 364@@ -8,6 +8,18 @@
 365         "device_version": "0.0.1",
 366         "max_power": 400
 367     },
 368+    "features": {
 369+        "bootmagic": true,
 370+        "mousekey": true,
 371+        "extrakey": true,
 372+        "rgblight": true
 373+    },
 374+    "qmk": {
 375+        "locking": {
 376+            "enabled": true,
 377+            "resync": true
 378+        }
 379+    },
 380     "indicators": {
 381         "caps_lock": "B2",
 382         "num_lock": "B3"
 383diff --git a/keyboards/barleycorn_smd/rules.mk b/keyboards/barleycorn_smd/rules.mk
 384index 69ecebae2ae19a3028f3c0ebda0936741a2d6082..c04c3c92ed384c339dd64eee33ec1d829e5dbee6 100644
 385--- a/keyboards/barleycorn_smd/rules.mk
 386+++ b/keyboards/barleycorn_smd/rules.mk
 387@@ -1,16 +1,3 @@
 388-# Build Options
 389-#   change yes to no to disable
 390-#
 391-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
 392-MOUSEKEY_ENABLE = yes       # Mouse keys
 393-EXTRAKEY_ENABLE = yes       # Audio control and System control
 394-CONSOLE_ENABLE = no         # Console for debug
 395-COMMAND_ENABLE = no         # Commands for debug and configuration
 396-NKRO_ENABLE = no            # Enable N-Key Rollover
 397-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 398-RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
 399-AUDIO_ENABLE = no           # Audio output
 400-
 401 CUSTOM_MATRIX = lite
 402 
 403 SRC += matrix.c
 404diff --git a/keyboards/barracuda/config.h b/keyboards/barracuda/config.h
 405deleted file mode 100644
 406index 5dd1c8d063a7ee6ee025abb772fefa5a49232b78..0000000000000000000000000000000000000000
 407--- a/keyboards/barracuda/config.h
 408+++ /dev/null
 409@@ -1,22 +0,0 @@
 410-/* Copyright 2021 knaruo
 411- *
 412- * This program is free software: you can redistribute it and/or modify
 413- * it under the terms of the GNU General Public License as published by
 414- * the Free Software Foundation, either version 2 of the License, or
 415- * (at your option) any later version.
 416- *
 417- * This program is distributed in the hope that it will be useful,
 418- * but WITHOUT ANY WARRANTY; without even the implied warranty of
 419- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 420- * GNU General Public License for more details.
 421- *
 422- * You should have received a copy of the GNU General Public License
 423- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 424- */
 425-
 426-#pragma once
 427-
 428-/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 429-#define LOCKING_SUPPORT_ENABLE
 430-/* Locking resynchronize hack */
 431-#define LOCKING_RESYNC_ENABLE
 432diff --git a/keyboards/barracuda/keyboard.json b/keyboards/barracuda/keyboard.json
 433index 56cf8f08bb3ff10fdd7a105c6531af86b749ee39..6e606e11ea95d3598e56856eb90c7040bcea649e 100644
 434--- a/keyboards/barracuda/keyboard.json
 435+++ b/keyboards/barracuda/keyboard.json
 436@@ -16,6 +16,12 @@
 437         "mousekey": true,
 438         "nkro": true
 439     },
 440+    "qmk": {
 441+        "locking": {
 442+            "enabled": true,
 443+            "resync": true
 444+        }
 445+    },
 446     "matrix_pins": {
 447         "cols": ["D4", "D5", "D6", "B0", "B1", "B2"],
 448         "rows": ["C4", "C5", "C6", "D1", "D2", "D3"]
 449diff --git a/keyboards/basekeys/slice/rev1/config.h b/keyboards/basekeys/slice/rev1/config.h
 450index c1008da9b8689628bc0504e6099a8c31bd1a3c69..aecd34737d4d92bdb0e84e276655405c7a1e492c 100644
 451--- a/keyboards/basekeys/slice/rev1/config.h
 452+++ b/keyboards/basekeys/slice/rev1/config.h
 453@@ -21,8 +21,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 454 //#define EE_HANDS
 455 #define MASTER_LEFT
 456 //#define MASTER_RIGHT
 457-
 458-/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 459-#define LOCKING_SUPPORT_ENABLE
 460-/* Locking resynchronize hack */
 461-#define LOCKING_RESYNC_ENABLE
 462diff --git a/keyboards/basekeys/slice/rev1/info.json b/keyboards/basekeys/slice/rev1/keyboard.json
 463rename from keyboards/basekeys/slice/rev1/info.json
 464rename to keyboards/basekeys/slice/rev1/keyboard.json
 465index 6b97d0c9ec9850dd34688b55aa2e92e60af8c980..c341597ee669793fe7dc0716ba2de2f9d007a7a3 100644
 466--- a/keyboards/basekeys/slice/rev1/info.json
 467+++ b/keyboards/basekeys/slice/rev1/keyboard.json
 468@@ -8,12 +8,24 @@
 469         "pid": "0xEC17",
 470         "device_version": "0.0.2"
 471     },
 472+    "features": {
 473+        "bootmagic": false,
 474+        "mousekey": false,
 475+        "extrakey": false
 476+    },
 477+    "qmk": {
 478+        "locking": {
 479+            "enabled": true,
 480+            "resync": true
 481+        }
 482+    },
 483     "matrix_pins": {
 484         "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6", "B5"],
 485         "rows": ["D4", "C6", "D7", "E6", "B4"]
 486     },
 487     "diode_direction": "COL2ROW",
 488     "split": {
 489+        "enabled": true,
 490         "soft_serial_pin": "D2"
 491     },
 492     "processor": "atmega32u4",
 493diff --git a/keyboards/basekeys/slice/rev1/rules.mk b/keyboards/basekeys/slice/rev1/rules.mk
 494deleted file mode 100644
 495index 992af66fa22add5f22e84a061cf64f9064715ff0..0000000000000000000000000000000000000000
 496--- a/keyboards/basekeys/slice/rev1/rules.mk
 497+++ /dev/null
 498@@ -1,12 +0,0 @@
 499-# this is split keyboard.
 500-SPLIT_KEYBOARD = yes
 501-
 502-# Build Options
 503-#   change yes to no to disable
 504-#
 505-BOOTMAGIC_ENABLE = no       # Enable Bootmagic Lite
 506-MOUSEKEY_ENABLE = no       # Mouse keys
 507-EXTRAKEY_ENABLE = no       # Audio control and System control
 508-CONSOLE_ENABLE = no        # Console for debug
 509-COMMAND_ENABLE = no        # Commands for debug and configuration
 510-NKRO_ENABLE = no            # Enable N-Key Rollover
 511diff --git a/keyboards/basekeys/slice/rev1_rgb/config.h b/keyboards/basekeys/slice/rev1_rgb/config.h
 512index 8a0c1946c16f654ea0c7cbc2d18c8b1bd49f9f9c..2594d39f2a4fae89c2713e780abeff4c398de672 100644
 513--- a/keyboards/basekeys/slice/rev1_rgb/config.h
 514+++ b/keyboards/basekeys/slice/rev1_rgb/config.h
 515@@ -21,9 +21,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 516 #define MASTER_LEFT
 517 //#define MASTER_RIGHT
 518 
 519-/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 520-#define LOCKING_SUPPORT_ENABLE
 521-/* Locking resynchronize hack */
 522-#define LOCKING_RESYNC_ENABLE
 523-
 524 #define OLED_FONT_H "keyboards/basekeys/slice/slice_font.c"
 525diff --git a/keyboards/basekeys/slice/rev1_rgb/info.json b/keyboards/basekeys/slice/rev1_rgb/keyboard.json
 526rename from keyboards/basekeys/slice/rev1_rgb/info.json
 527rename to keyboards/basekeys/slice/rev1_rgb/keyboard.json
 528index faec5a99533065d652386e674ff40b7a1d068dfa..a666f26661749073e684016b237da4b979a0edee 100644
 529--- a/keyboards/basekeys/slice/rev1_rgb/info.json
 530+++ b/keyboards/basekeys/slice/rev1_rgb/keyboard.json
 531@@ -8,12 +8,29 @@
 532         "pid": "0xEC15",
 533         "device_version": "0.0.2"
 534     },
 535+    "features": {
 536+        "bootmagic": false,
 537+        "mousekey": false,
 538+        "extrakey": false,
 539+        "rgblight": true,
 540+        "oled": true
 541+    },
 542+    "build": {
 543+        "lto": true
 544+    },
 545+    "qmk": {
 546+        "locking": {
 547+            "enabled": true,
 548+            "resync": true
 549+        }
 550+    },
 551     "matrix_pins": {
 552         "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6", "B5"],
 553         "rows": ["D4", "C6", "D7", "E6", "B4"]
 554     },
 555     "diode_direction": "COL2ROW",
 556     "split": {
 557+        "enabled": true,
 558         "soft_serial_pin": "D2"
 559     },
 560     "ws2812": {
 561diff --git a/keyboards/basekeys/slice/rev1_rgb/rules.mk b/keyboards/basekeys/slice/rev1_rgb/rules.mk
 562deleted file mode 100644
 563index 1e24ec177f92c78e5816d935254e381478a5ad9e..0000000000000000000000000000000000000000
 564--- a/keyboards/basekeys/slice/rev1_rgb/rules.mk
 565+++ /dev/null
 566@@ -1,16 +0,0 @@
 567-# this is split keyboard.
 568-SPLIT_KEYBOARD = yes
 569-
 570-# Build Options
 571-#   change yes to no to disable
 572-#
 573-BOOTMAGIC_ENABLE = no       # Enable Bootmagic Lite
 574-MOUSEKEY_ENABLE = no       # Mouse keys
 575-EXTRAKEY_ENABLE = no       # Audio control and System control
 576-CONSOLE_ENABLE = no        # Console for debug
 577-COMMAND_ENABLE = no        # Commands for debug and configuration
 578-NKRO_ENABLE = no            # Enable N-Key Rollover
 579-RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
 580-OLED_ENABLE = yes
 581-
 582-LTO_ENABLE = yes
 583diff --git a/keyboards/basekeys/trifecta/config.h b/keyboards/basekeys/trifecta/config.h
 584deleted file mode 100644
 585index 584a6e4bfc50bf689254640980f58760a2094fa3..0000000000000000000000000000000000000000
 586--- a/keyboards/basekeys/trifecta/config.h
 587+++ /dev/null
 588@@ -1,23 +0,0 @@
 589-/* Copyright 2020 Swiftrax and Basekeys.com
 590- *
 591- * This program is free software: you can redistribute it and/or modify
 592- * it under the terms of the GNU General Public License as published by
 593- * the Free Software Foundation, either version 2 of the License, or
 594- * (at your option) any later version.
 595- *
 596- * This program is distributed in the hope that it will be useful,
 597- * but WITHOUT ANY WARRANTY; without even the implied warranty of
 598- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 599- * GNU General Public License for more details.
 600- *
 601- * You should have received a copy of the GNU General Public License
 602- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 603- */
 604-
 605-#pragma once
 606-
 607-/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 608-#define LOCKING_SUPPORT_ENABLE
 609-
 610-/* Locking resynchronize hack */
 611-#define LOCKING_RESYNC_ENABLE
 612diff --git a/keyboards/basekeys/trifecta/keyboard.json b/keyboards/basekeys/trifecta/keyboard.json
 613index 8777b1ffa9d10809bc66d65247b957ffe4c88b0e..8660156f64c3a246eff2b6a5e5e0a9cbcc50ab10 100644
 614--- a/keyboards/basekeys/trifecta/keyboard.json
 615+++ b/keyboards/basekeys/trifecta/keyboard.json
 616@@ -18,6 +18,12 @@
 617         "nkro": false,
 618         "rgblight": true
 619     },
 620+    "qmk": {
 621+        "locking": {
 622+            "enabled": true,
 623+            "resync": true
 624+        }
 625+    },
 626     "matrix_pins": {
 627         "cols": ["F0", "F1", "F4", "F5", "D1", "B2", "D0", "B3"],
 628         "rows": ["B0", "B7", "F7", "B1", "B6", "C6", "C7", "B5", "F6", "D2"]
 629@@ -54,6 +60,7 @@
 630         }
 631     },
 632     "rgb_matrix": {
 633+        "driver": "ws2812",
 634         "sat_steps": 8,
 635         "val_steps": 8,
 636         "speed_steps": 10,
 637@@ -102,7 +109,89 @@
 638             "multisplash": true,
 639             "solid_splash": true,
 640             "solid_multisplash": true
 641-        }
 642+        },
 643+        "layout": [
 644+            {"x": 218, "y": 7, "flags": 2},
 645+            {"x": 214, "y": 45, "flags": 2},
 646+            {"x": 180, "y": 47, "flags": 2},
 647+            {"x": 147, "y": 50, "flags": 2},
 648+            {"x": 94, "y": 62, "flags": 2},
 649+            {"x": 37, "y": 51, "flags": 2},
 650+            {"x": 4, "y": 8, "flags": 2},
 651+            {"x": 36, "y": 15, "flags": 2},
 652+            {"x": 62, "y": 18, "flags": 2},
 653+            {"x": 78, "y": 5, "flags": 2},
 654+            {"x": 119, "y": 7, "flags": 2},
 655+            {"x": 145, "y": 16, "flags": 2},
 656+            {"x": 166, "y": 3, "flags": 2},
 657+            {"x": 200, "y": 16, "flags": 2},
 658+            {"matrix": [0, 7], "x": 185, "y": 11, "flags": 4},
 659+            {"matrix": [2, 7], "x": 191, "y": 22, "flags": 4},
 660+            {"matrix": [4, 7], "x": 188, "y": 33, "flags": 4},
 661+            {"matrix": [6, 7], "x": 200, "y": 46, "flags": 4},
 662+            {"matrix": [8, 7], "x": 200, "y": 57, "flags": 4},
 663+            {"matrix": [9, 7], "x": 212, "y": 57, "flags": 4},
 664+            {"matrix": [9, 6], "x": 188, "y": 57, "flags": 4},
 665+            {"matrix": [7, 6], "x": 181, "y": 44, "flags": 4},
 666+            {"matrix": [3, 6], "x": 176, "y": 22, "flags": 4},
 667+            {"matrix": [1, 6], "x": 168, "y": 11, "flags": 4},
 668+            {"matrix": [0, 6], "x": 155, "y": 11, "flags": 4},
 669+            {"matrix": [2, 6], "x": 164, "y": 22, "flags": 4},
 670+            {"matrix": [5, 6], "x": 169, "y": 32, "flags": 4},
 671+            {"matrix": [6, 6], "x": 165, "y": 44, "flags": 4},
 672+            {"matrix": [8, 6], "x": 172, "y": 55, "flags": 4},
 673+            {"matrix": [9, 5], "x": 157, "y": 54, "flags": 4},
 674+            {"matrix": [7, 5], "x": 153, "y": 44, "flags": 4},
 675+            {"matrix": [4, 5], "x": 156, "y": 33, "flags": 4},
 676+            {"matrix": [3, 5], "x": 153, "y": 22, "flags": 4},
 677+            {"matrix": [1, 5], "x": 142, "y": 12, "flags": 4},
 678+            {"matrix": [0, 5], "x": 130, "y": 13, "flags": 4},
 679+            {"matrix": [2, 5], "x": 138, "y": 23, "flags": 4},
 680+            {"matrix": [5, 5], "x": 143, "y": 33, "flags": 4},
 681+            {"matrix": [6, 5], "x": 140, "y": 45, "flags": 4},
 682+            {"matrix": [8, 5], "x": 137, "y": 56, "flags": 4},
 683+            {"matrix": [7, 4], "x": 128, "y": 47, "flags": 4},
 684+            {"matrix": [4, 4], "x": 132, "y": 35, "flags": 4},
 685+            {"matrix": [3, 4], "x": 127, "y": 25, "flags": 4},
 686+            {"matrix": [1, 4], "x": 119, "y": 16, "flags": 4},
 687+            {"matrix": [0, 4], "x": 107, "y": 17, "flags": 4},
 688+            {"matrix": [2, 4], "x": 115, "y": 27, "flags": 4},
 689+            {"matrix": [5, 4], "x": 120, "y": 37, "flags": 4},
 690+            {"matrix": [6, 4], "x": 116, "y": 48, "flags": 4},
 691+            {"matrix": [9, 4], "x": 117, "y": 59, "flags": 4},
 692+            {"matrix": [7, 3], "x": 104, "y": 51, "flags": 4},
 693+            {"matrix": [4, 3], "x": 109, "y": 39, "flags": 4},
 694+            {"matrix": [3, 3], "x": 104, "y": 29, "flags": 4},
 695+            {"matrix": [1, 3], "x": 86, "y": 19, "flags": 4},
 696+            {"matrix": [0, 3], "x": 74, "y": 16, "flags": 4},
 697+            {"matrix": [2, 3], "x": 78, "y": 28, "flags": 4},
 698+            {"matrix": [5, 3], "x": 79, "y": 39, "flags": 4},
 699+            {"matrix": [6, 3], "x": 82, "y": 50, "flags": 4},
 700+            {"matrix": [8, 2], "x": 73, "y": 60, "flags": 4},
 701+            {"matrix": [7, 2], "x": 71, "y": 48, "flags": 4},
 702+            {"matrix": [4, 2], "x": 67, "y": 37, "flags": 4},
 703+            {"matrix": [3, 2], "x": 66, "y": 26, "flags": 4},
 704+            {"matrix": [1, 2], "x": 63, "y": 15, "flags": 4},
 705+            {"matrix": [0, 2], "x": 50, "y": 12, "flags": 4},
 706+            {"matrix": [2, 2], "x": 55, "y": 24, "flags": 4},
 707+            {"matrix": [5, 2], "x": 55, "y": 35, "flags": 4},
 708+            {"matrix": [6, 2], "x": 59, "y": 47, "flags": 4},
 709+            {"matrix": [9, 1], "x": 50, "y": 56, "flags": 4},
 710+            {"matrix": [7, 1], "x": 47, "y": 45, "flags": 4},
 711+            {"matrix": [4, 1], "x": 43, "y": 33, "flags": 4},
 712+            {"matrix": [3, 1], "x": 43, "y": 22, "flags": 4},
 713+            {"matrix": [1, 1], "x": 39, "y": 10, "flags": 4},
 714+            {"matrix": [0, 1], "x": 25, "y": 11, "flags": 4},
 715+            {"matrix": [2, 1], "x": 29, "y": 22, "flags": 4},
 716diff --git a/keyboards/basekeys/trifecta/trifecta.c b/keyboards/basekeys/trifecta/trifecta.c
 717deleted file mode 100644
 718index 926180d996630923da630c61b4414c32264fe2da..0000000000000000000000000000000000000000
 719--- a/keyboards/basekeys/trifecta/trifecta.c
 720+++ /dev/null
 721@@ -1,61 +0,0 @@
 722-/* Copyright 2020 Swiftrax and Basekeys.com
 723- *
 724- * This program is free software: you can redistribute it and/or modify
 725- * it under the terms of the GNU General Public License as published by
 726- * the Free Software Foundation, either version 2 of the License, or
 727- * (at your option) any later version.
 728- *
 729- * This program is distributed in the hope that it will be useful,
 730- * but WITHOUT ANY WARRANTY; without even the implied warranty of
 731- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 732- * GNU General Public License for more details.
 733- *
 734- * You should have received a copy of the GNU General Public License
 735- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 736- */
 737-
 738-#include "quantum.h"
 739-
 740-#ifdef RGB_MATRIX_ENABLE
 741-
 742-led_config_t g_led_config = { {
 743-    { NO_LED, 70,     61,     52,     43, 34,     24,     14  },
 744-    {     79, 69,     60,     51,     42, 33,     23, NO_LED  },
 745-    { NO_LED, 71,     62,     53,     44, 35,     25,     15  },
 746-    {     78, 68,     59,     50,     41, 32,     22, NO_LED  },
 747-    {     77, 67,     58,     49,     40, 31, NO_LED,     16  },
 748-    { NO_LED, 72,     63,     54,     45, 36,     26, NO_LED  },
 749-    { NO_LED, 73,     64,     55,     46, 37,     27,     17  },
 750-    {     76, 66,     57,     48,     39, 30,     21, NO_LED  },
 751-    { NO_LED, 74,     56, NO_LED, NO_LED, 38,     28,     18  },
 752-    {     75, 65, NO_LED, NO_LED,     47, 29,     20,     19  }
 753-}, {
 754-	// Underglow
 755-    {  218,   7 },  { 214,  45 }, { 180,  47 }, {  147, 50 }, {  94,  62 }, {  37,  51 }, {   4,   8 }, {   36,  15 },
 756-    {  62,   18 },  {  78,   5 }, { 119,   7 }, {  145, 16 }, { 166,   3 }, { 200,  16 }, 
 757-    
 758-    //Per Key
 759-    { 185,  11 },  { 191,  22 }, { 188,  33 }, { 200,  46 }, { 200,  57 }, { 212,  57 }, { 188,  57 }, { 181,  44 },
 760-    { 176,  22 },  { 168,  11 }, { 155,  11 }, { 164,  22 }, { 169,  32 }, { 165,  44 }, { 172,  55 }, { 157,  54 }, 
 761-    { 153,  44 },  { 156,  33 }, { 153,  22 }, { 142,  12 }, { 130,  13 }, { 138,  23 }, { 143,  33 }, { 140,  45 }, 
 762-    { 137,  56 },  { 128,  47 }, { 132,  35 }, { 127,  25 }, { 119,  16 }, { 107,  17 }, { 115,  27 }, { 120,  37 }, 
 763-    { 116,  48 },  { 117,  59 }, { 104,  51 }, { 109,  39 }, { 104,  29 }, {  86,  19 }, {  74,  16 }, {  78,  28 }, 
 764-    {  79,  39 },  {  82,  50 }, {  73,  60 }, {  71,  48 }, {  67,  37 }, {  66,  26 }, {  63,  15 }, {  50,  12 }, 
 765-    {  55,  24 },  {  55,  35 }, {  59,  47 }, {  50,  56 }, {  47,  45 }, {  43,  33 }, {  43,  22 }, {  39,  10 }, 
 766-    {  25,  11 },  {  29,  22 }, {  30,  33 }, {  34,  44 }, {  24,  54 }, {   9,  55 }, {  15,  44 }, {  14,  33 }, 
 767-    {  14,  22 },  {  14,  11 }
 768-}, {
 769-    2, 2, 2, 2, 2, 2, 2, 2, 
 770-    2, 2, 2, 2, 2, 2, 
 771-
 772-    4, 4, 4, 4, 4, 4, 4, 4,
 773-    4, 4, 4, 4, 4, 4, 4, 4, 
 774-    4, 4, 4, 4, 4, 4, 4, 4, 
 775-    4, 4, 4, 4, 4, 4, 4, 4, 
 776-    4, 4, 4, 4, 4, 4, 4, 4, 
 777-    4, 4, 4, 4, 4, 4, 4, 4, 
 778-    4, 4, 4, 4, 4, 4, 4, 4, 
 779-    4, 4, 4, 4, 4, 4, 4, 4, 
 780-    4, 4
 781-} };
 782-#endif
 783diff --git a/keyboards/basketweave/config.h b/keyboards/basketweave/config.h
 784deleted file mode 100644
 785index ebf85963191cfe64701e909aa99c4cb0c47a6077..0000000000000000000000000000000000000000
 786--- a/keyboards/basketweave/config.h
 787+++ /dev/null
 788@@ -1,22 +0,0 @@
 789-/* Copyright 2020 null-ll
 790- *
 791- * This program is free software: you can redistribute it and/or modify
 792- * it under the terms of the GNU General Public License as published by
 793- * the Free Software Foundation, either version 2 of the License, or
 794- * (at your option) any later version.
 795- *
 796- * This program is distributed in the hope that it will be useful,
 797- * but WITHOUT ANY WARRANTY; without even the implied warranty of
 798- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 799- * GNU General Public License for more details.
 800- *
 801- * You should have received a copy of the GNU General Public License
 802- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 803- */
 804-
 805-#pragma once
 806-
 807-/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 808-#define LOCKING_SUPPORT_ENABLE
 809-/* Locking resynchronize hack */
 810-#define LOCKING_RESYNC_ENABLE
 811diff --git a/keyboards/basketweave/info.json b/keyboards/basketweave/info.json
 812index 705ef675ba839461261f7a458e1f53d39831f7d9..75a720b7dd8e374c6d2eaf916ce826aa93b13856 100644
 813--- a/keyboards/basketweave/info.json
 814+++ b/keyboards/basketweave/info.json
 815@@ -9,6 +9,12 @@
 816         "device_version": "0.0.1",
 817         "max_power": 100
 818     },
 819+    "features": {
 820+        "bootmagic": true,
 821+        "mousekey": true,
 822+        "extrakey": true,
 823+        "encoder": true
 824+    },
 825     "matrix_pins": {
 826         "cols": ["A0", "A1", "A2", "A3", "A4", "B0", "B1", "B2", "D5", "D6", "C5", "C4", "C3", "C2", "C1"],
 827         "rows": ["A6", "C6", "C7", "A7", "A5"]
 828@@ -20,7 +26,11 @@
 829         ]
 830     },
 831     "qmk": {
 832-        "tap_keycode_delay": 10
 833+        "tap_keycode_delay": 10,
 834+        "locking": {
 835+            "enabled": true,
 836+            "resync": true
 837+        }
 838     },
 839     "processor": "atmega32a",
 840     "bootloader": "usbasploader",
 841diff --git a/keyboards/basketweave/rules.mk b/keyboards/basketweave/rules.mk
 842index b43c5121f47da95a6d052504609674966efcd1b7..c2ee0bc86f978b7fbb1163ae7a5e16b69dd7b63d 100644
 843--- a/keyboards/basketweave/rules.mk
 844+++ b/keyboards/basketweave/rules.mk
 845@@ -1,16 +1,2 @@
 846 # Processor frequency
 847 F_CPU = 16000000
 848-
 849-# Build Options
 850-#   change yes to no to disable
 851-#
 852-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
 853-MOUSEKEY_ENABLE = yes       # Mouse keys
 854-EXTRAKEY_ENABLE = yes       # Audio control and System control
 855-CONSOLE_ENABLE = no         # Console for debug
 856-COMMAND_ENABLE = no         # Commands for debug and configuration
 857-NKRO_ENABLE = no            # Enable N-Key Rollover
 858-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 859-RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
 860-AUDIO_ENABLE = no           # Audio output
 861-ENCODER_ENABLE = yes
 862diff --git a/keyboards/bastardkb/dilemma/4x6_4/config.h b/keyboards/bastardkb/dilemma/4x6_4/config.h
 863index 549965444d4ac359e7da219af8d14dde77eda2b1..7276c6181fa67b984132702869683b44edd4bc32 100644
 864--- a/keyboards/bastardkb/dilemma/4x6_4/config.h
 865+++ b/keyboards/bastardkb/dilemma/4x6_4/config.h
 866@@ -42,6 +42,3 @@
 867 #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
 868 #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17
 869 #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
 870-
 871-/* RGB matrix support. */
 872-#define SPLIT_TRANSPORT_MIRROR
 873diff --git a/keyboards/bbrfkr/dynamis/info.json b/keyboards/bbrfkr/dynamis/info.json
 874index 6d1ae830ebe920361fabc27b312d50793fc95fc1..dc9b6cf5848171c8d85e6f8f56a3cb637717e93c 100644
 875--- a/keyboards/bbrfkr/dynamis/info.json
 876+++ b/keyboards/bbrfkr/dynamis/info.json
 877@@ -8,6 +8,17 @@
 878         "pid": "0x0001",
 879         "device_version": "0.0.1"
 880     },
 881+    "features": {
 882+        "bootmagic": false,
 883+        "mousekey": true,
 884+        "extrakey": true,
 885+        "rgblight": true,
 886+        "pointing_device": true,
 887+        "encoder": true
 888+    },
 889+    "build": {
 890+        "lto": true
 891+    },
 892     "matrix_pins": {
 893         "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "C7"],
 894         "rows": ["B6", "B4", "D6", "D5", "D1", "C6", "B5", "D7", "D4", "D0"]
 895diff --git a/keyboards/bbrfkr/dynamis/rules.mk b/keyboards/bbrfkr/dynamis/rules.mk
 896index aef3d2a28a015d0692faa29e82f2e4b8bc23b66b..fab9162dc64d79e05c5fab91e9d23be7952f9872 100644
 897--- a/keyboards/bbrfkr/dynamis/rules.mk
 898+++ b/keyboards/bbrfkr/dynamis/rules.mk
 899@@ -1,17 +1 @@
 900-# Build Options
 901-#   change yes to no to disable
 902-#
 903-BOOTMAGIC_ENABLE = no       # Enable Bootmagic Lite
 904-MOUSEKEY_ENABLE = yes       # Mouse keys
 905-EXTRAKEY_ENABLE = yes       # Audio control and System control
 906-CONSOLE_ENABLE = no         # Console for debug
 907-COMMAND_ENABLE = no         # Commands for debug and configuration
 908-NKRO_ENABLE = no            # Enable N-Key Rollover
 909-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 910-RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
 911-AUDIO_ENABLE = no           # Audio output
 912-SPLIT_KEYBOARD = no
 913-POINTING_DEVICE_ENABLE = yes
 914 POINTING_DEVICE_DRIVER = pmw3360
 915-ENCODER_ENABLE = yes
 916-LTO_ENABLE = yes
 917diff --git a/keyboards/bear_face/config.h b/keyboards/bear_face/config.h
 918deleted file mode 100644
 919index 81ada21b71e9a6299f979b8b17355be763ef4c92..0000000000000000000000000000000000000000
 920--- a/keyboards/bear_face/config.h
 921+++ /dev/null
 922@@ -1,39 +0,0 @@
 923-/*
 924-Copyright 2020 chemicalwill <https://github.com/chemicalwill>
 925-
 926-This program is free software: you can redistribute it and/or modify
 927-it under the terms of the GNU General Public License as published by
 928-the Free Software Foundation, either version 2 of the License, or
 929-(at your option) any later version.
 930-
 931-This program is distributed in the hope that it will be useful,
 932-but WITHOUT ANY WARRANTY; without even the implied warranty of
 933-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 934-GNU General Public License for more details.
 935-
 936-You should have received a copy of the GNU General Public License
 937-along with this program.  If not, see <http://www.gnu.org/licenses/>.
 938-*/
 939-
 940-#pragma once
 941-
 942-/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 943-#define LOCKING_SUPPORT_ENABLE
 944-/* Locking resynchronize hack */
 945-#define LOCKING_RESYNC_ENABLE
 946-
 947-/*
 948- * Feature disable options
 949- *  These options are also useful to firmware size reduction.
 950- */
 951-
 952-/* disable debug print */
 953-//#define NO_DEBUG
 954-
 955-/* disable print */
 956-//#define NO_PRINT
 957-
 958-/* disable action features */
 959-//#define NO_ACTION_LAYER
 960-//#define NO_ACTION_TAPPING
 961-//#define NO_ACTION_ONESHOT
 962diff --git a/keyboards/bear_face/info.json b/keyboards/bear_face/info.json
 963index 24dd696e9b436df23c4f9801d7694a70db0e19fb..ad12468d56f77c1a47bc69b56534b211c748977f 100644
 964--- a/keyboards/bear_face/info.json
 965+++ b/keyboards/bear_face/info.json
 966@@ -18,6 +18,12 @@
 967         "mousekey": false,
 968         "nkro": true
 969     },
 970+    "qmk": {
 971+        "locking": {
 972+            "enabled": true,
 973+            "resync": true
 974+        }
 975+    },
 976     "matrix_pins": {
 977         "cols": ["B5", "C7", "C6", "F0", "E6", "B7", "D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4"],
 978         "rows": ["F5", "F6", "F4", "F1", "B0", "B6"]
 979diff --git a/keyboards/beatervan/config.h b/keyboards/beatervan/config.h
 980deleted file mode 100644
 981index f482b43c10b63a54f3cd7973d658f77213f329e4..0000000000000000000000000000000000000000
 982--- a/keyboards/beatervan/config.h
 983+++ /dev/null
 984@@ -1,22 +0,0 @@
 985-
 986-/* Copyright 2020 OJtheTiny
 987- *
 988- * This program is free software: you can redistribute it and/or modify
 989- * it under the terms of the GNU General Public License as published by
 990- * the Free Software Foundation, either version 2 of the License, or
 991- * (at your option) any later version.
 992- *
 993- * This program is distributed in the hope that it will be useful,
 994- * but WITHOUT ANY WARRANTY; without even the implied warranty of
 995- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 996- * GNU General Public License for more details.
 997- *
 998- * You should have received a copy of the GNU General Public License
 999- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
1000- */
1001-#pragma once
1002-
1003-/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
1004-#define LOCKING_SUPPORT_ENABLE
1005-/* Locking resynchronize hack */
1006-#define LOCKING_RESYNC_ENABLE
1007diff --git a/keyboards/beatervan/keyboard.json b/keyboards/beatervan/keyboard.json
1008index 4828127d14b12e222dc1d0f26d0640e387a57f25..27d0f3e5352004cc7da5d92e495bbc9975c06a6f 100644
1009--- a/keyboards/beatervan/keyboard.json
1010+++ b/keyboards/beatervan/keyboard.json
1011@@ -17,6 +17,12 @@
1012     "nkro": true,
1013     "unicode": true
1014   },
1015+  "qmk": {
1016+    "locking": {
1017+      "enabled": true,
1018+      "resync": true
1019+    }
1020+  },
1021   "matrix_pins": {
1022     "cols": ["D7", "E6", "B4", "B5", "F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6"],
1023     "rows": ["D1", "D0", "D4", "C6"]
1024diff --git a/keyboards/bemeier/bmek/rev1/info.json b/keyboards/bemeier/bmek/rev1/keyboard.json
1025rename from keyboards/bemeier/bmek/rev1/info.json
1026rename to keyboards/bemeier/bmek/rev1/keyboard.json
1027index 70873aa527414a10c7543d5cc82b9a5cf5641f66..5f559009667657e697be960f693d32ec6bc3efbe 100644
1028--- a/keyboards/bemeier/bmek/rev1/info.json
1029+++ b/keyboards/bemeier/bmek/rev1/keyboard.json
1030@@ -2,6 +2,17 @@
1031     "usb": {
1032         "device_version": "0.0.1"
1033     },
1034+    "features": {
1035+        "bootmagic": true,
1036+        "mousekey": false,
1037+        "extrakey": true,
1038+        "sleep_led": true,
1039+        "nkro": true,
1040+        "rgblight": true
1041+    },
1042+    "build": {
1043+        "lto": true
1044+    },
1045     "rgblight": {
1046         "saturation_steps": 8,
1047         "brightness_steps": 8,
1048diff --git a/keyboards/bemeier/bmek/rev1/rules.mk b/keyboards/bemeier/bmek/rev1/rules.mk
1049deleted file mode 100755
1050index e9b89a01e1c328472f2c739dfafb68b9567a3d3b..0000000000000000000000000000000000000000
1051--- a/keyboards/bemeier/bmek/rev1/rules.mk
1052+++ /dev/null
1053@@ -1,15 +0,0 @@
1054-# Build Options
1055-#   change yes to no to disable
1056-#
1057-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
1058-MOUSEKEY_ENABLE       = no
1059-EXTRAKEY_ENABLE       = yes
1060-CONSOLE_ENABLE        = no
1061-COMMAND_ENABLE        = no
1062-SLEEP_LED_ENABLE      = yes
1063-SPLIT_KEYBOARD        = no
1064-BACKLIGHT_ENABLE      = no
1065-NKRO_ENABLE = yes           # Enable N-Key Rollover
1066-RGBLIGHT_ENABLE       = yes
1067-AUDIO_ENABLE          = no
1068-LTO_ENABLE            = yes
1069diff --git a/keyboards/bemeier/bmek/rev2/info.json b/keyboards/bemeier/bmek/rev2/keyboard.json
1070rename from keyboards/bemeier/bmek/rev2/info.json
1071rename to keyboards/bemeier/bmek/rev2/keyboard.json
1072index f1440afaf24fc672244d945da49fe05e47253fc2..f9e264a214343860316e970795899ed01e31e159 100644
1073--- a/keyboards/bemeier/bmek/rev2/info.json
1074+++ b/keyboards/bemeier/bmek/rev2/keyboard.json
1075@@ -2,6 +2,17 @@
1076     "usb": {
1077         "device_version": "0.0.2"
1078     },
1079+    "features": {
1080+        "bootmagic": true,
1081+        "mousekey": false,
1082+        "extrakey": true,
1083+        "sleep_led": true,
1084+        "nkro": true,
1085+        "rgblight": true
1086+    },
1087+    "build": {
1088+        "lto": true
1089+    },
1090     "rgblight": {
1091         "saturation_steps": 8,
1092         "brightness_steps": 8,
1093diff --git a/keyboards/bemeier/bmek/rev2/rules.mk b/keyboards/bemeier/bmek/rev2/rules.mk
1094deleted file mode 100755
1095index e9b89a01e1c328472f2c739dfafb68b9567a3d3b..0000000000000000000000000000000000000000
1096--- a/keyboards/bemeier/bmek/rev2/rules.mk
1097+++ /dev/null
1098@@ -1,15 +0,0 @@
1099-# Build Options
1100-#   change yes to no to disable
1101-#
1102-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
1103-MOUSEKEY_ENABLE       = no
1104-EXTRAKEY_ENABLE       = yes
1105-CONSOLE_ENABLE        = no
1106-COMMAND_ENABLE        = no
1107-SLEEP_LED_ENABLE      = yes
1108-SPLIT_KEYBOARD        = no
1109-BACKLIGHT_ENABLE      = no
1110-NKRO_ENABLE = yes           # Enable N-Key Rollover
1111-RGBLIGHT_ENABLE       = yes
1112-AUDIO_ENABLE          = no
1113-LTO_ENABLE            = yes
1114diff --git a/keyboards/bemeier/bmek/rev3/info.json b/keyboards/bemeier/bmek/rev3/keyboard.json
1115rename from keyboards/bemeier/bmek/rev3/info.json
1116rename to keyboards/bemeier/bmek/rev3/keyboard.json
1117index ac0faf8706348cd2b5c64d8e11bf8c208641cfa8..3d12f4ee4e1a3cd3088959733949c414f9a0f728 100644
1118--- a/keyboards/bemeier/bmek/rev3/info.json
1119+++ b/keyboards/bemeier/bmek/rev3/keyboard.json
1120@@ -2,6 +2,17 @@
1121     "usb": {
1122         "device_version": "0.0.3"
1123     },
1124+    "features": {
1125+        "bootmagic": true,
1126+        "mousekey": false,
1127+        "extrakey": true,
1128+        "sleep_led": true,
1129+        "nkro": true,
1130+        "rgblight": true
1131+    },
1132+    "build": {
1133+        "lto": true
1134+    },
1135     "rgblight": {
1136         "saturation_steps": 8,
1137         "brightness_steps": 8,
1138diff --git a/keyboards/bemeier/bmek/rev3/rules.mk b/keyboards/bemeier/bmek/rev3/rules.mk
1139deleted file mode 100755
1140index e9b89a01e1c328472f2c739dfafb68b9567a3d3b..0000000000000000000000000000000000000000
1141--- a/keyboards/bemeier/bmek/rev3/rules.mk
1142+++ /dev/null
1143@@ -1,15 +0,0 @@
1144-# Build Options
1145-#   change yes to no to disable
1146-#
1147-BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
1148-MOUSEKEY_ENABLE       = no
1149-EXTRAKEY_ENABLE       = yes
1150-CONSOLE_ENABLE        = no
1151-COMMAND_ENABLE        = no
1152-SLEEP_LED_ENABLE      = yes
1153-SPLIT_KEYBOARD        = no
1154-BACKLIGHT_ENABLE      = no
1155-NKRO_ENABLE = yes           # Enable N-Key Rollover
1156-RGBLIGHT_ENABLE       = yes
1157-AUDIO_ENABLE          = no
1158-LTO_ENABLE            = yes
1159diff --git a/keyboards/biacco42/ergo42/rev1/config.h b/keyboards/biacco42/ergo42/rev1/config.h
1160deleted file mode 100644
1161index 179b11724307b080975526c6daf707e686073a49..0000000000000000000000000000000000000000
1162--- a/keyboards/biacco42/ergo42/rev1/config.h
1163+++ /dev/null
1164@@ -1,41 +0,0 @@
1165-/*
1166-Copyright 2012 Jun Wako <wakojun@gmail.com>
1167-Copyright 2015 Jack Humbert
1168-Copyright 2017 Biacco42
1169-
1170-This program is free software: you can redistribute it and/or modify
1171-it under the terms of the GNU General Public License as published by
1172-the Free Software Foundation, either version 2 of the License, or
1173-(at your option) any later version.
1174-
1175-This program is distributed in the hope that it will be useful,
1176-but WITHOUT ANY WARRANTY; without even the implied warranty of
1177-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1178-GNU General Public License for more details.
1179-
1180-You should have received a copy of the GNU General Public License
1181-along with this program.  If not, see <http://www.gnu.org/licenses/>.
1182-*/
1183-
1184-#pragma once
1185-
1186-/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
1187-#define LOCKING_SUPPORT_ENABLE
1188-/* Locking resynchronize hack */
1189-#define LOCKING_RESYNC_ENABLE
1190-
1191-/*
1192- * Feature disable options
1193- *  These options are also useful to firmware size reduction.
1194- */
1195-
1196-/* disable debug print */
1197-// #define NO_DEBUG
1198-
1199-/* disable print */
1200-// #define NO_PRINT
1201-
1202-/* disable action features */
1203-//#define NO_ACTION_LAYER
1204-//#define NO_ACTION_TAPPING
1205-//#define NO_ACTION_ONESHOT
1206diff --git a/keyboards/biacco42/ergo42/rev1/info.json b/keyboards/biacco42/ergo42/rev1/keyboard.json
1207rename from keyboards/biacco42/ergo42/rev1/info.json
1208rename to keyboards/biacco42/ergo42/rev1/keyboard.json
1209index 67f27ad61298158efad50a1138af3a83cf66fc4a..b3a53bb3a4ca6c9c4b8d25281e9c45eba743eb48 100644
1210--- a/keyboards/biacco42/ergo42/rev1/info.json
1211+++ b/keyboards/biacco42/ergo42/rev1/keyboard.json
1212@@ -8,6 +8,18 @@
1213     "pid": "0x0042",
1214     "device_version": "1.0.0"
1215   },
1216+  "features": {
1217+    "bootmagic": false,
1218+    "mousekey": true,
1219+    "extrakey": true,
1220+    "command": true
1221+  },
1222+  "qmk": {
1223+    "locking": {
1224+      "enabled": true,
1225+      "resync": true
1226+    }
1227+  },
1228   "rgblight": {
1229     "led_count": 12
1230   },
1231@@ -20,6 +32,7 @@
1232   },
1233   "diode_direction": "COL2ROW",
1234   "split": {
1235+        "enabled": true,
1236         "soft_serial_pin": "D0"
1237     },
1238   "processor": "atmega32u4",
1239diff --git a/keyboards/biacco42/ergo42/rev1/rules.mk b/keyboards/biacco42/ergo42/rev1/rules.mk
1240deleted file mode 100644
1241index 7b30c0beff2a18f58cdad7b8840e72fb14b35d12..0000000000000000000000000000000000000000
1242--- a/keyboards/biacco42/ergo42/rev1/rules.mk
1243+++ /dev/null
1244@@ -1 +0,0 @@
1245-BACKLIGHT_ENABLE = no
1246diff --git a/keyboards/biacco42/ergo42/rules.mk b/keyboards/biacco42/ergo42/rules.mk
1247index 62044b6c13abfbddc6c8bf71b952be99acea433a..18059c0a3bc39422fc39d14ad872b9f3ead8d077 100644
1248--- a/keyboards/biacco42/ergo42/rules.mk
1249+++ b/keyboards/biacco42/ergo42/rules.mk
1250@@ -1,16 +1 @@
1251-# Build Options
1252-#   change yes to no to disable
1253-#
1254-BOOTMAGIC_ENABLE = no       # Enable Bootmagic Lite
1255-MOUSEKEY_ENABLE = yes       # Mouse keys
1256-EXTRAKEY_ENABLE = yes       # Audio control and System control
1257-CONSOLE_ENABLE = no         # Console for debug
1258-COMMAND_ENABLE = yes        # Commands for debug and configuration
1259-NKRO_ENABLE = no            # Enable N-Key Rollover
1260-BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
1261-RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
1262-AUDIO_ENABLE = no           # Audio output
1263-
1264-SPLIT_KEYBOARD = yes
1265-
1266 DEFAULT_FOLDER = biacco42/ergo42/rev1
1267diff --git a/keyboards/biacco42/meishi/config.h b/keyboards/biacco42/meishi/config.h
1268deleted file mode 100644
1269index df5455b3c22eed7c727ddd04491783b7ac73a2db..0000000000000000000000000000000000000000
1270--- a/keyboards/biacco42/meishi/config.h
1271+++ /dev/null
1272@@ -1,39 +0,0 @@
1273-/*
1274-Copyright 2019 Biacco42
1275-
1276-This program is free software: you can redistribute it and/or modify
1277-it under the terms of the GNU General Public License as published by
1278-the Free Software Foundation, either version 2 of the License, or
1279-(at your option) any later version.
1280-
1281-This program is distributed in the hope that it will be useful,
1282-but WITHOUT ANY WARRANTY; without even the implied warranty of
1283-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1284-GNU General Public License for more details.
1285-
1286-You should have received a copy of the GNU General Public License
1287-along with this program.  If not, see <http://www.gnu.org/licenses/>.
1288-*/
1289-
1290-#pragma once
1291-
1292-/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
1293-#define LOCKING_SUPPORT_ENABLE
1294-/* Locking resynchronize hack */
1295-#define LOCKING_RESYNC_ENABLE
1296-
1297-/*
1298- * Feature disable options
1299- *  These options are also useful to firmware size reduction.
1300- */
1301-
1302-/* disable debug print */
1303-//#define NO_DEBUG
1304-
1305-/* disable print */
1306-//#define NO_PRINT
1307-
1308-/* disable action features */
1309-//#define NO_ACTION_LAYER
1310-//#define NO_ACTION_TAPPING
1311-//#define NO_ACTION_ONESHOT
1312diff --git a/keyboards/biacco42/meishi/keyboard.json b/keyboards/biacco42/meishi/keyboard.json
1313index d9d37d72fe4cc23597fa6600b24281c5ffbb9067..b7d751d83e06c739f3c4919c70216ba1bf121056 100644
1314--- a/keyboards/biacco42/meishi/keyboard.json
1315+++ b/keyboards/biacco42/meishi/keyboard.json
1316@@ -16,6 +16,12 @@
1317         "mousekey": true,
1318         "nkro": false
1319     },
1320+    "qmk": {
1321+        "locking": {
1322+            "enabled": true,
1323+            "resync": true
1324+        }
1325+    },
1326     "matrix_pins": {
1327         "cols": ["B1", "B3", "B2", "B6"],
1328         "rows": ["B5"]
1329diff --git a/keyboards/biacco42/meishi2/config.h b/keyboards/biacco42/meishi2/config.h
1330deleted file mode 100644
1331index df5455b3c22eed7c727ddd04491783b7ac73a2db..0000000000000000000000000000000000000000
1332--- a/keyboards/biacco42/meishi2/config.h
1333+++ /dev/null
1334@@ -1,39 +0,0 @@
1335-/*
1336-Copyright 2019 Biacco42
1337-
1338-This program is free software: you can redistribute it and/or modify
1339-it under the terms of the GNU General Public License as published by
1340-the Free Software Foundation, either version 2 of the License, or
1341-(at your option) any later version.
1342-
1343-This program is distributed in the hope that it will be useful,
1344-but WITHOUT ANY WARRANTY; without even the implied warranty of
1345-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1346-GNU General Public License for more details.
1347-
1348-You should have received a copy of the GNU General Public License
1349-along with this program.  If not, see <http://www.gnu.org/licenses/>.
1350-*/
1351-
1352-#pragma once
1353-
1354-/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
1355-#define LOCKING_SUPPORT_ENABLE
1356-/* Locking resynchronize hack */
1357-#define LOCKING_RESYNC_ENABLE
1358-
1359-/*
1360- * Feature disable options
1361- *  These options are also useful to firmware size reduction.
1362- */
1363-
1364-/* disable debug print */
1365-//#define NO_DEBUG
1366-
1367-/* disable print */
1368-//#define NO_PRINT
1369-
1370-/* disable action features */
1371-//#define NO_ACTION_LAYER
1372-//#define NO_ACTION_TAPPING
1373-//#define NO_ACTION_ONESHOT