diff --git a/.clangd b/.clangd
index 6133ae7229d..63dadd7e7c1 100644
--- a/.clangd
+++ b/.clangd
@@ -1,4 +1,4 @@
CompileFlags:
Add: [-Wno-unknown-attributes, -Wno-maybe-uninitialized, -Wno-unknown-warning-option]
- Remove: [-W*, -mmcu=*, -mcpu=*, -mfpu=*, -mfloat-abi=*, -mno-unaligned-access, -mno-thumb-interwork, -mcall-prologues]
+ Remove: [-W*, -mmcu=*, -mcpu=*, -mfpu=*, -mfloat-abi=*, -mno-unaligned-access, -mno-thumb-interwork, -mcall-prologues, -D__has_include*]
Compiler: clang
diff --git a/.editorconfig b/.editorconfig
index 3a537d01b28..692a84da610 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -11,7 +11,8 @@ charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
-[{*.yaml,*.yml}] # To match GitHub Actions formatting
+ # To match GitHub Actions formatting
+[*.{yaml,yml}]
indent_size = 2
[*.md]
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index d402488d407..868237d9599 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -1,6 +1,5 @@
-
## Description
@@ -15,7 +14,7 @@
- [ ] New feature
- [ ] Enhancement/optimization
- [ ] Keyboard (addition or update)
-- [ ] Keymap/layout/userspace (addition or update)
+- [ ] Keymap/layout (addition or update)
- [ ] Documentation
## Issues Fixed or Closed by This PR
diff --git a/.github/labeler.yml b/.github/labeler.yml
index f0e72786b21..82f9672bb7a 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -11,15 +11,15 @@ core:
- Makefile
- '*.mk'
dependencies:
- - all:
- - changed-files:
- - any-glob-to-any-file: lib/**
- - all-globs-to-all-files: '!lib/python/**'
+ - changed-files:
+ - all-globs-to-any-file:
+ - lib/**
+ - '!lib/python/**'
keyboard:
- - all:
- - changed-files:
- - any-glob-to-any-file: keyboards/**
- - all-globs-to-all-files: '!keyboards/**/keymaps/**'
+ - changed-files:
+ - all-globs-to-any-file:
+ - keyboards/**
+ - '!keyboards/**/keymaps/**'
keymap:
- changed-files:
- any-glob-to-any-file:
@@ -54,3 +54,7 @@ dd:
- data/constants/**
- data/mappings/**
- data/schemas/**
+community_module:
+ - changed-files:
+ - any-glob-to-any-file:
+ - modules/**
diff --git a/.github/workflows/auto_tag.yml b/.github/workflows/auto_tag.yml
index b4465277b0d..4afca6c66d5 100644
--- a/.github/workflows/auto_tag.yml
+++ b/.github/workflows/auto_tag.yml
@@ -15,6 +15,7 @@ on:
- quantum/**/*
- tests/**/*
- tmk_core/**/*
+ - lib/python/**/*
- util/**/*
- Makefile
- '*.mk'
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
index 7f588fda608..34319675bfd 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.6.3
+ uses: JamesIves/github-pages-deploy-action@v4.7.3
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: gh-pages
diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml
index 1d7577dcef2..309b9eeda12 100644
--- a/.github/workflows/format.yml
+++ b/.github/workflows/format.yml
@@ -10,6 +10,7 @@ on:
- 'lib/arm_atsam/**'
- 'lib/lib8tion/**'
- 'lib/python/**'
+ - 'modules/**'
- 'platforms/**'
- 'quantum/**'
- 'tests/**'
@@ -35,7 +36,7 @@ jobs:
- name: Get changed files
id: file_changes
- uses: tj-actions/changed-files@v44
+ uses: tj-actions/changed-files@v46
with:
use_rest_api: true
diff --git a/.github/workflows/format_push.yml b/.github/workflows/format_push.yml
index ea60fc95b45..b865ea9eecd 100644
--- a/.github/workflows/format_push.yml
+++ b/.github/workflows/format_push.yml
@@ -39,7 +39,7 @@ jobs:
qmk format-text -a
git diff
- - uses: rlespinasse/github-slug-action@v3.x
+ - uses: rlespinasse/github-slug-action@v5
- name: Become QMK Bot
run: |
@@ -47,7 +47,7 @@ jobs:
git config user.email 'hello@qmk.fm'
- name: Create Pull Request
- uses: peter-evans/create-pull-request@v6
+ uses: peter-evans/create-pull-request@v7
if: ${{ github.repository == 'qmk/qmk_firmware'}}
with:
token: ${{ secrets.QMK_BOT_TOKEN }}
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 22ddcaba796..581fe02156b 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -27,7 +27,7 @@ jobs:
- name: Get changed files
id: file_changes
- uses: tj-actions/changed-files@v44
+ uses: tj-actions/changed-files@v46
with:
use_rest_api: true
diff --git a/.github/workflows/regen_push.yml b/.github/workflows/regen_push.yml
index 0f014111413..8f22e931f10 100644
--- a/.github/workflows/regen_push.yml
+++ b/.github/workflows/regen_push.yml
@@ -26,7 +26,7 @@ jobs:
util/regen.sh
git diff
- - uses: rlespinasse/github-slug-action@v3.x
+ - uses: rlespinasse/github-slug-action@v5
- name: Become QMK Bot
run: |
@@ -34,7 +34,7 @@ jobs:
git config user.email 'hello@qmk.fm'
- name: Create Pull Request
- uses: peter-evans/create-pull-request@v6
+ uses: peter-evans/create-pull-request@v7
if: ${{ github.repository == 'qmk/qmk_firmware'}}
with:
token: ${{ secrets.QMK_BOT_TOKEN }}
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
index ce9bd0f3161..25649ce9437 100644
--- a/.github/workflows/stale.yml
+++ b/.github/workflows/stale.yml
@@ -45,7 +45,7 @@ jobs:
stale-pr-label: stale
days-before-pr-stale: 45
days-before-pr-close: 30
- exempt-pr-labels: bug,awaiting review,breaking_change,in progress,on hold
+ exempt-pr-labels: bug,awaiting review,breaking_change,in progress,on hold,needs-core-wireless,crippled-firmware
stale-pr-message: >
Thank you for your contribution!
diff --git a/.gitignore b/.gitignore
index c3f2f063cd1..20e706a2b59 100644
--- a/.gitignore
+++ b/.gitignore
@@ -118,4 +118,5 @@ compile_commands.json
# VIA(L) files that don't belong in QMK repo
via*.json
+/keyboards/**/keymaps/via/*
/keyboards/**/keymaps/vial/*
diff --git a/Doxyfile b/Doxyfile
index 42f2e70c0ec..f8c60f5f84d 100644
--- a/Doxyfile
+++ b/Doxyfile
@@ -145,7 +145,7 @@ FILE_PATTERNS = *.c \
RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = NO
-EXCLUDE_PATTERNS = */protocol/arm_atsam/*
+EXCLUDE_PATTERNS =
EXCLUDE_SYMBOLS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS = *
diff --git a/Makefile b/Makefile
index 5fcd6bbf0f3..c68ee7418a4 100644
--- a/Makefile
+++ b/Makefile
@@ -113,6 +113,29 @@ endef
# Make it easier to call TRY_TO_MATCH_RULE_FROM_LIST
TRY_TO_MATCH_RULE_FROM_LIST = $(eval $(call TRY_TO_MATCH_RULE_FROM_LIST_HELPER,$1))$(RULE_FOUND)
+# As TRY_TO_MATCH_RULE_FROM_LIST_HELPER, but with additional
+# resolution of DEFAULT_FOLDER and keyboard_aliases.hjson for provided rule
+define TRY_TO_MATCH_RULE_FROM_LIST_HELPER_KB
+ # Split on ":", padding with empty strings to avoid indexing issues
+ TOKEN1:=$$(shell python3 -c "import sys; print((sys.argv[1].split(':',1)+[''])[0])" $$(RULE))
+ TOKENr:=$$(shell python3 -c "import sys; print((sys.argv[1].split(':',1)+[''])[1])" $$(RULE))
+
+ TOKEN1:=$$(shell $(QMK_BIN) resolve-alias --allow-unknown $$(TOKEN1))
+
+ FOUNDx:=$$(shell echo $1 | tr " " "\n" | grep -Fx $$(TOKEN1))
+ ifneq ($$(FOUNDx),)
+ RULE := $$(TOKENr)
+ RULE_FOUND := true
+ MATCHED_ITEM := $$(TOKEN1)
+ else
+ RULE_FOUND := false
+ MATCHED_ITEM :=
+ endif
+endef
+
+# Make it easier to call TRY_TO_MATCH_RULE_FROM_LIST_KB
+TRY_TO_MATCH_RULE_FROM_LIST_KB = $(eval $(call TRY_TO_MATCH_RULE_FROM_LIST_HELPER_KB,$1))$(RULE_FOUND)
+
define ALL_IN_LIST_LOOP
OLD_RULE$1 := $$(RULE)
$$(eval $$(call $1,$$(ITEM$1)))
@@ -138,7 +161,7 @@ define PARSE_RULE
$$(eval $$(call PARSE_TEST))
# If the rule starts with the name of a known keyboard, then continue
# the parsing from PARSE_KEYBOARD
- else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(shell $(QMK_BIN) list-keyboards --no-resolve-defaults)),true)
+ else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST_KB,$$(shell $(QMK_BIN) list-keyboards)),true)
KEYBOARD_RULE=$$(MATCHED_ITEM)
$$(eval $$(call PARSE_KEYBOARD,$$(MATCHED_ITEM)))
else
@@ -170,17 +193,6 @@ define PARSE_KEYBOARD
# include the correct makefile to determine the actual name of it
CURRENT_KB := $1
- # KEYBOARD_FOLDERS := $$(subst /, , $(CURRENT_KB))
-
- DEFAULT_FOLDER := $$(CURRENT_KB)
-
- # We assume that every rules.mk will contain the full default value
- $$(eval include $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/rules.mk)
- ifneq ($$(DEFAULT_FOLDER),$$(CURRENT_KB))
- $$(eval include $(ROOT_DIR)/keyboards/$$(DEFAULT_FOLDER)/rules.mk)
- endif
- CURRENT_KB := $$(DEFAULT_FOLDER)
-
# 5/4/3/2/1
KEYBOARD_FOLDER_PATH_1 := $$(CURRENT_KB)
KEYBOARD_FOLDER_PATH_2 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_1)))
diff --git a/builddefs/build_full_test.mk b/builddefs/build_full_test.mk
index 63f9fea915d..5cae327c6c7 100644
--- a/builddefs/build_full_test.mk
+++ b/builddefs/build_full_test.mk
@@ -21,8 +21,10 @@ $(TEST_OUTPUT)_SRC := \
$(SRC) \
$(QUANTUM_PATH)/keymap_introspection.c \
tests/test_common/matrix.c \
+ tests/test_common/pointing_device_driver.c \
tests/test_common/test_driver.cpp \
tests/test_common/keyboard_report_util.cpp \
+ tests/test_common/mouse_report_util.cpp \
tests/test_common/keycode_util.cpp \
tests/test_common/keycode_table.cpp \
tests/test_common/test_fixture.cpp \
diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk
index 8427573181a..c5fc9cd25d0 100644
--- a/builddefs/build_keyboard.mk
+++ b/builddefs/build_keyboard.mk
@@ -112,6 +112,39 @@ endif
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/rules.mk)","")
include $(KEYBOARD_PATH_1)/rules.mk
endif
+# Create dependencies on DD keyboard config - structure validated elsewhere
+DD_CONFIG_FILES :=
+ifneq ("$(wildcard $(KEYBOARD_PATH_1)/info.json)","")
+ DD_CONFIG_FILES += $(KEYBOARD_PATH_1)/info.json
+endif
+ifneq ("$(wildcard $(KEYBOARD_PATH_2)/info.json)","")
+ DD_CONFIG_FILES += $(KEYBOARD_PATH_2)/info.json
+endif
+ifneq ("$(wildcard $(KEYBOARD_PATH_3)/info.json)","")
+ DD_CONFIG_FILES += $(KEYBOARD_PATH_3)/info.json
+endif
+ifneq ("$(wildcard $(KEYBOARD_PATH_4)/info.json)","")
+ DD_CONFIG_FILES += $(KEYBOARD_PATH_4)/info.json
+endif
+ifneq ("$(wildcard $(KEYBOARD_PATH_5)/info.json)","")
+ DD_CONFIG_FILES += $(KEYBOARD_PATH_5)/info.json
+endif
+
+ifneq ("$(wildcard $(KEYBOARD_PATH_1)/keyboard.json)","")
+ DD_CONFIG_FILES += $(KEYBOARD_PATH_1)/keyboard.json
+endif
+ifneq ("$(wildcard $(KEYBOARD_PATH_2)/keyboard.json)","")
+ DD_CONFIG_FILES += $(KEYBOARD_PATH_2)/keyboard.json
+endif
+ifneq ("$(wildcard $(KEYBOARD_PATH_3)/keyboard.json)","")
+ DD_CONFIG_FILES += $(KEYBOARD_PATH_3)/keyboard.json
+endif
+ifneq ("$(wildcard $(KEYBOARD_PATH_4)/keyboard.json)","")
+ DD_CONFIG_FILES += $(KEYBOARD_PATH_4)/keyboard.json
+endif
+ifneq ("$(wildcard $(KEYBOARD_PATH_5)/keyboard.json)","")
+ DD_CONFIG_FILES += $(KEYBOARD_PATH_5)/keyboard.json
+endif
MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP)
MAIN_KEYMAP_PATH_2 := $(KEYBOARD_PATH_2)/keymaps/$(KEYMAP)
@@ -186,7 +219,10 @@ endif
# Have we found a keymap.json?
ifneq ("$(wildcard $(KEYMAP_JSON))", "")
ifneq ("$(wildcard $(KEYMAP_C))", "")
- $(call WARNING_MESSAGE,Keymap is specified as both keymap.json and keymap.c -- keymap.json file wins.)
+ # Allow a separately-found keymap.c next to keymap.json -- the keymap.c
+ # generator will include the other keymap.c in the process, if supplied.
+ OTHER_KEYMAP_C := $(KEYMAP_C)
+ OPT_DEFS += -DOTHER_KEYMAP_C=\"$(OTHER_KEYMAP_C)\"
endif
KEYMAP_PATH := $(KEYMAP_JSON_PATH)
@@ -194,28 +230,61 @@ ifneq ("$(wildcard $(KEYMAP_JSON))", "")
KEYMAP_C := $(INTERMEDIATE_OUTPUT)/src/keymap.c
KEYMAP_H := $(INTERMEDIATE_OUTPUT)/src/config.h
- # Load the keymap-level rules.mk if exists
- -include $(KEYMAP_PATH)/rules.mk
+ ifeq ($(OTHER_KEYMAP_C),)
+ # Load the keymap-level rules.mk if exists (and we havent already loaded it for keymap.c)
+ -include $(KEYMAP_PATH)/rules.mk
+ endif
# Load any rules.mk content from keymap.json
INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --output $(INTERMEDIATE_OUTPUT)/src/rules.mk $(KEYMAP_JSON))
include $(INFO_RULES_MK)
# Add rules to generate the keymap files - indentation here is important
-$(INTERMEDIATE_OUTPUT)/src/keymap.c: $(KEYMAP_JSON)
+$(INTERMEDIATE_OUTPUT)/src/keymap.c: $(KEYMAP_JSON) $(DD_CONFIG_FILES)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) json2c --quiet --output $(KEYMAP_C) $(KEYMAP_JSON))
@$(BUILD_CMD)
-$(INTERMEDIATE_OUTPUT)/src/config.h: $(KEYMAP_JSON)
+$(INTERMEDIATE_OUTPUT)/src/config.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-config-h --quiet --output $(KEYMAP_H) $(KEYMAP_JSON))
@$(BUILD_CMD)
-generated-files: $(INTERMEDIATE_OUTPUT)/src/config.h $(INTERMEDIATE_OUTPUT)/src/keymap.c
+$(INTERMEDIATE_OUTPUT)/src/keymap.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES)
+ @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
+ $(eval CMD=$(QMK_BIN) generate-keymap-h --quiet --output $(INTERMEDIATE_OUTPUT)/src/keymap.h $(KEYMAP_JSON))
+ @$(BUILD_CMD)
+
+generated-files: $(INTERMEDIATE_OUTPUT)/src/config.h $(INTERMEDIATE_OUTPUT)/src/keymap.c $(INTERMEDIATE_OUTPUT)/src/keymap.h
endif
+# Community modules
+$(INTERMEDIATE_OUTPUT)/src/community_modules.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES)
+ @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
+ $(eval CMD=$(QMK_BIN) generate-community-modules-h -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/community_modules.h $(KEYMAP_JSON))
+ @$(BUILD_CMD)
+
+$(INTERMEDIATE_OUTPUT)/src/community_modules.c: $(KEYMAP_JSON) $(DD_CONFIG_FILES)
+ @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
+ $(eval CMD=$(QMK_BIN) generate-community-modules-c -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/community_modules.c $(KEYMAP_JSON))
+ @$(BUILD_CMD)
+
+$(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.c: $(KEYMAP_JSON) $(DD_CONFIG_FILES)
+ @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
+ $(eval CMD=$(QMK_BIN) generate-community-modules-introspection-c -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.c $(KEYMAP_JSON))
+ @$(BUILD_CMD)
+
+$(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES)
+ @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
+ $(eval CMD=$(QMK_BIN) generate-community-modules-introspection-h -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.h $(KEYMAP_JSON))
+ @$(BUILD_CMD)
+
+SRC += $(INTERMEDIATE_OUTPUT)/src/community_modules.c
+
+generated-files: $(INTERMEDIATE_OUTPUT)/src/community_modules.h $(INTERMEDIATE_OUTPUT)/src/community_modules.c $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.c $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.h
+
+
include $(BUILDDEFS_PATH)/converters.mk
# Generate the board's version.h file.
@@ -305,6 +374,14 @@ endif
# Find all of the config.h files and add them to our CONFIG_H define.
CONFIG_H :=
+
+define config_h_community_module_appender
+ ifneq ("$(wildcard $(1)/config.h)","")
+ CONFIG_H += $(1)/config.h
+ endif
+endef
+$(foreach module,$(COMMUNITY_MODULE_PATHS),$(eval $(call config_h_community_module_appender,$(module))))
+
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/config.h)","")
CONFIG_H += $(KEYBOARD_PATH_5)/config.h
endif
@@ -322,6 +399,14 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_1)/config.h)","")
endif
POST_CONFIG_H :=
+
+define post_config_h_community_module_appender
+ ifneq ("$(wildcard $(1)/post_config.h)","")
+ POST_CONFIG_H += $(1)/post_config.h
+ endif
+endef
+$(foreach module,$(COMMUNITY_MODULE_PATHS),$(eval $(call post_config_h_community_module_appender,$(module))))
+
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/post_config.h)","")
POST_CONFIG_H += $(KEYBOARD_PATH_1)/post_config.h
endif
@@ -338,40 +423,6 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_5)/post_config.h)","")
POST_CONFIG_H += $(KEYBOARD_PATH_5)/post_config.h
endif
-# Create dependencies on DD keyboard config - structure validated elsewhere
-DD_CONFIG_FILES :=
-ifneq ("$(wildcard $(KEYBOARD_PATH_1)/info.json)","")
- DD_CONFIG_FILES += $(KEYBOARD_PATH_1)/info.json
-endif
-ifneq ("$(wildcard $(KEYBOARD_PATH_2)/info.json)","")
- DD_CONFIG_FILES += $(KEYBOARD_PATH_2)/info.json
-endif
-ifneq ("$(wildcard $(KEYBOARD_PATH_3)/info.json)","")
- DD_CONFIG_FILES += $(KEYBOARD_PATH_3)/info.json
-endif
-ifneq ("$(wildcard $(KEYBOARD_PATH_4)/info.json)","")
- DD_CONFIG_FILES += $(KEYBOARD_PATH_4)/info.json
-endif
-ifneq ("$(wildcard $(KEYBOARD_PATH_5)/info.json)","")
- DD_CONFIG_FILES += $(KEYBOARD_PATH_5)/info.json
-endif
-
-ifneq ("$(wildcard $(KEYBOARD_PATH_1)/keyboard.json)","")
- DD_CONFIG_FILES += $(KEYBOARD_PATH_1)/keyboard.json
-endif
-ifneq ("$(wildcard $(KEYBOARD_PATH_2)/keyboard.json)","")
- DD_CONFIG_FILES += $(KEYBOARD_PATH_2)/keyboard.json
-endif
-ifneq ("$(wildcard $(KEYBOARD_PATH_3)/keyboard.json)","")
- DD_CONFIG_FILES += $(KEYBOARD_PATH_3)/keyboard.json
-endif
-ifneq ("$(wildcard $(KEYBOARD_PATH_4)/keyboard.json)","")
- DD_CONFIG_FILES += $(KEYBOARD_PATH_4)/keyboard.json
-endif
-ifneq ("$(wildcard $(KEYBOARD_PATH_5)/keyboard.json)","")
- DD_CONFIG_FILES += $(KEYBOARD_PATH_5)/keyboard.json
-endif
-
CONFIG_H += $(INTERMEDIATE_OUTPUT)/src/info_config.h
KEYBOARD_SRC += $(INTERMEDIATE_OUTPUT)/src/default_keyboard.c
@@ -452,6 +503,13 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_5)/post_rules.mk)","")
include $(KEYBOARD_PATH_5)/post_rules.mk
endif
+define post_rules_mk_community_module_includer
+ ifneq ("$(wildcard $(1)/post_rules.mk)","")
+ include $(1)/post_rules.mk
+ endif
+endef
+$(foreach module,$(COMMUNITY_MODULE_PATHS),$(eval $(call post_rules_mk_community_module_includer,$(module))))
+
ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","")
CONFIG_H += $(KEYMAP_PATH)/config.h
endif
diff --git a/builddefs/build_test.mk b/builddefs/build_test.mk
index 2cc1134da5b..d0de63c6f58 100644
--- a/builddefs/build_test.mk
+++ b/builddefs/build_test.mk
@@ -47,7 +47,8 @@ PLATFORM:=TEST
PLATFORM_KEY:=test
BOOTLOADER_TYPE:=none
-ifeq ($(strip $(DEBUG)), 1)
+DEBUG ?= 0
+ifneq ($(strip $(DEBUG)), 0)
CONSOLE_ENABLE = yes
endif
diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk
index 68f9a1dd08a..c88ce36011c 100644
--- a/builddefs/common_features.mk
+++ b/builddefs/common_features.mk
@@ -28,6 +28,7 @@ QUANTUM_SRC += \
$(QUANTUM_DIR)/sync_timer.c \
$(QUANTUM_DIR)/logging/debug.c \
$(QUANTUM_DIR)/logging/sendchar.c \
+ $(QUANTUM_DIR)/process_keycode/process_default_layer.c \
VPATH += $(QUANTUM_DIR)/logging
# Fall back to lib/printf if there is no platform provided print
@@ -129,13 +130,13 @@ ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes)
MOUSE_ENABLE := yes
VPATH += $(QUANTUM_DIR)/pointing_device
SRC += $(QUANTUM_DIR)/pointing_device/pointing_device.c
- SRC += $(QUANTUM_DIR)/pointing_device/pointing_device_drivers.c
SRC += $(QUANTUM_DIR)/pointing_device/pointing_device_auto_mouse.c
ifneq ($(strip $(POINTING_DEVICE_DRIVER)), custom)
SRC += drivers/sensors/$(strip $(POINTING_DEVICE_DRIVER)).c
OPT_DEFS += -DPOINTING_DEVICE_DRIVER_$(strip $(shell echo $(POINTING_DEVICE_DRIVER) | tr '[:lower:]' '[:upper:]'))
endif
OPT_DEFS += -DPOINTING_DEVICE_DRIVER_$(strip $(POINTING_DEVICE_DRIVER))
+ OPT_DEFS += -DPOINTING_DEVICE_DRIVER_NAME=$(strip $(POINTING_DEVICE_DRIVER))
ifeq ($(strip $(POINTING_DEVICE_DRIVER)), adns9800)
SPI_DRIVER_REQUIRED = yes
else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), analog_joystick)
@@ -215,7 +216,7 @@ else
COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash
COMMON_VPATH += $(DRIVER_PATH)/flash
SRC += eeprom_driver.c eeprom_legacy_emulated_flash.c legacy_flash_ops.c
- else ifneq ($(filter $(MCU_SERIES),STM32F1xx STM32F3xx STM32F4xx STM32L4xx STM32G4xx WB32F3G71xx WB32FQ95xx GD32VF103),)
+ else ifneq ($(filter $(MCU_SERIES),STM32F1xx STM32F3xx STM32F4xx STM32L4xx STM32G4xx WB32F3G71xx WB32FQ95xx AT32F415 GD32VF103),)
# Wear-leveling EEPROM implementation, backed by MCU flash
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING
SRC += eeprom_driver.c eeprom_wear_leveling.c
@@ -238,10 +239,6 @@ else
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT
SRC += eeprom_driver.c eeprom_transient.c
endif
- else ifeq ($(PLATFORM),ARM_ATSAM)
- # arm_atsam EEPROM
- OPT_DEFS += -DEEPROM_SAMD
- SRC += eeprom_samd.c
else ifeq ($(PLATFORM),TEST)
# Test harness "EEPROM"
OPT_DEFS += -DEEPROM_TEST_HARNESS
@@ -282,18 +279,17 @@ ifneq ($(strip $(WEAR_LEVELING_DRIVER)),none)
endif
endif
-VALID_FLASH_DRIVER_TYPES := spi
+VALID_FLASH_DRIVER_TYPES := spi custom
FLASH_DRIVER ?= none
ifneq ($(strip $(FLASH_DRIVER)), none)
ifeq ($(filter $(FLASH_DRIVER),$(VALID_FLASH_DRIVER_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid FLASH_DRIVER,FLASH_DRIVER="$(FLASH_DRIVER)" is not a valid flash driver)
else
- OPT_DEFS += -DFLASH_ENABLE
+ OPT_DEFS += -DFLASH_ENABLE -DFLASH_DRIVER -DFLASH_DRIVER_$(strip $(shell echo $(FLASH_DRIVER) | tr '[:lower:]' '[:upper:]'))
+ COMMON_VPATH += $(DRIVER_PATH)/flash
ifeq ($(strip $(FLASH_DRIVER)),spi)
- SPI_DRIVER_REQUIRED = yes
- OPT_DEFS += -DFLASH_DRIVER -DFLASH_SPI
- COMMON_VPATH += $(DRIVER_PATH)/flash
SRC += flash_spi.c
+ SPI_DRIVER_REQUIRED = yes
endif
endif
endif
@@ -311,11 +307,11 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
POST_CONFIG_H += $(QUANTUM_DIR)/rgblight/rgblight_post_config.h
OPT_DEFS += -DRGBLIGHT_ENABLE
OPT_DEFS += -DRGBLIGHT_$(strip $(shell echo $(RGBLIGHT_DRIVER) | tr '[:lower:]' '[:upper:]'))
+ SRC += $(QUANTUM_DIR)/process_keycode/process_underglow.c
SRC += $(QUANTUM_DIR)/color.c
SRC += $(QUANTUM_DIR)/rgblight/rgblight.c
SRC += $(QUANTUM_DIR)/rgblight/rgblight_drivers.c
CIE1931_CURVE := yes
- RGB_KEYCODES_ENABLE := yes
endif
ifeq ($(strip $(RGBLIGHT_DRIVER)), ws2812)
@@ -437,6 +433,13 @@ ifeq ($(strip $(LED_MATRIX_ENABLE)), yes)
SRC += snled27351-mono.c
endif
+ ifeq ($(strip $(LED_MATRIX_CUSTOM_KB)), yes)
+ OPT_DEFS += -DLED_MATRIX_CUSTOM_KB
+ endif
+
+ ifeq ($(strip $(LED_MATRIX_CUSTOM_USER)), yes)
+ OPT_DEFS += -DLED_MATRIX_CUSTOM_USER
+ endif
endif
# Deprecated driver names - do not use
@@ -461,12 +464,16 @@ ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
COMMON_VPATH += $(QUANTUM_DIR)/rgb_matrix/animations
COMMON_VPATH += $(QUANTUM_DIR)/rgb_matrix/animations/runners
POST_CONFIG_H += $(QUANTUM_DIR)/rgb_matrix/post_config.h
+
+ # TODO: Remove this
+ SRC += $(QUANTUM_DIR)/process_keycode/process_underglow.c
+
+ SRC += $(QUANTUM_DIR)/process_keycode/process_rgb_matrix.c
SRC += $(QUANTUM_DIR)/color.c
SRC += $(QUANTUM_DIR)/rgb_matrix/rgb_matrix.c
SRC += $(QUANTUM_DIR)/rgb_matrix/rgb_matrix_drivers.c
LIB8TION_ENABLE := yes
CIE1931_CURVE := yes
- RGB_KEYCODES_ENABLE := yes
ifeq ($(strip $(RGB_MATRIX_DRIVER)), aw20216s)
SPI_DRIVER_REQUIRED = yes
@@ -569,10 +576,6 @@ ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
endif
endif
-ifeq ($(strip $(RGB_KEYCODES_ENABLE)), yes)
- SRC += $(QUANTUM_DIR)/process_keycode/process_rgb.c
-endif
-
VARIABLE_TRACE ?= no
ifneq ($(strip $(VARIABLE_TRACE)),no)
SRC += $(QUANTUM_DIR)/variable_trace.c
@@ -632,6 +635,10 @@ ifeq ($(strip $(VIA_ENABLE)), yes)
TRI_LAYER_ENABLE := yes
endif
+ifeq ($(strip $(DYNAMIC_KEYMAP_ENABLE)), yes)
+ SEND_STRING_ENABLE := yes
+endif
+
VALID_CUSTOM_MATRIX_TYPES:= yes lite no
CUSTOM_MATRIX ?= no
@@ -882,7 +889,7 @@ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes)
OPT_DEFS += -DBLUETOOTH_$(strip $(shell echo $(BLUETOOTH_DRIVER) | tr '[:lower:]' '[:upper:]'))
NO_USB_STARTUP_CHECK := yes
COMMON_VPATH += $(DRIVER_PATH)/bluetooth
- SRC += outputselect.c
+ SRC += outputselect.c process_connection.c
ifeq ($(strip $(BLUETOOTH_DRIVER)), bluefruit_le)
SPI_DRIVER_REQUIRED = yes
@@ -937,7 +944,9 @@ ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes)
OPT_DEFS += -DWS2812_$(strip $(shell echo $(WS2812_DRIVER) | tr '[:lower:]' '[:upper:]'))
- SRC += ws2812_$(strip $(WS2812_DRIVER)).c
+ COMMON_VPATH += $(DRIVER_PATH)/led
+
+ SRC += ws2812.c ws2812_$(strip $(WS2812_DRIVER)).c
ifeq ($(strip $(PLATFORM)), CHIBIOS)
ifeq ($(strip $(WS2812_DRIVER)), pwm)
diff --git a/builddefs/common_rules.mk b/builddefs/common_rules.mk
index cfd261737c0..e45063cfaf5 100644
--- a/builddefs/common_rules.mk
+++ b/builddefs/common_rules.mk
@@ -43,25 +43,25 @@ ifneq ($(USE_CCACHE),no)
CC_PREFIX ?= ccache
endif
+#---------------- Debug Options ----------------
+
+DEBUG_ENABLE ?= no
+ifeq ($(strip $(DEBUG_ENABLE)),yes)
+ CFLAGS += -ggdb3
+ CXXFLAGS += -ggdb3
+ ASFLAGS += -ggdb3
+# Create a map file when debugging
+ LDFLAGS += -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref
+endif
+
+
#---------------- C Compiler Options ----------------
ifeq ($(strip $(LTO_ENABLE)), yes)
- ifeq ($(PLATFORM),ARM_ATSAM)
- $(info Enabling LTO on arm_atsam-targeting boards is known to have a high likelihood of failure.)
- $(info If unsure, set LTO_ENABLE = no.)
- endif
CDEFS += -flto
CDEFS += -DLTO_ENABLE
endif
-DEBUG_ENABLE ?= yes
-ifeq ($(strip $(SKIP_DEBUG_INFO)),yes)
- DEBUG_ENABLE=no
-endif
-
-ifeq ($(strip $(DEBUG_ENABLE)),yes)
- CFLAGS += -g$(DEBUG)
-endif
CFLAGS += $(CDEFS)
CFLAGS += -O$(OPT)
# add color
@@ -83,9 +83,6 @@ CFLAGS += -fcommon
#---------------- C++ Compiler Options ----------------
-ifeq ($(strip $(DEBUG_ENABLE)),yes)
- CXXFLAGS += -g$(DEBUG)
-endif
CXXFLAGS += $(CXXDEFS)
CXXFLAGS += -O$(OPT)
# to suppress "warning: only initialized variables can be placed into program memory area"
@@ -106,14 +103,10 @@ endif
#---------------- Linker Options ----------------
-CREATE_MAP ?= yes
-ifeq ($(CREATE_MAP),yes)
- LDFLAGS += -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref
-endif
ifeq ($(VERBOSE_LD_CMD),yes)
LDFLAGS += -v
endif
-#LDFLAGS += -Wl,--relax
+
LDFLAGS += $(EXTMEMOPTS)
LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS))
LDFLAGS += -lm
@@ -126,15 +119,11 @@ ADHLNS_ENABLE ?= no
ifeq ($(ADHLNS_ENABLE),yes)
# Avoid "Options to '-Xassembler' do not match" - only specify assembler options at LTO link time
ifeq ($(strip $(LTO_ENABLE)), yes)
- LDFLAGS += -Wa,-adhlns=$(BUILD_DIR)/$(TARGET).lst
+ LDFLAGS += -Wa,-adhlns=$(BUILD_DIR)/$(TARGET).lst
else
- CFLAGS += -Wa,-adhlns=$(@:%.o=%.lst)
+ CFLAGS += -Wa,-adhlns=$(@:%.o=%.lst)
CXXFLAGS += -Wa,-adhlns=$(@:%.o=%.lst)
- ifeq ($(strip $(DEBUG_ENABLE)),yes)
- ASFLAGS = -Wa,-adhlns=$(@:%.o=%.lst),-gstabs,--listing-cont-lines=100
- else
- ASFLAGS = -Wa,-adhlns=$(@:%.o=%.lst),--listing-cont-lines=100
- endif
+ ASFLAGS += -Wa,-adhlns=$(@:%.o=%.lst),--listing-cont-lines=100
endif
endif
diff --git a/builddefs/docsgen/.vitepress/config.mts b/builddefs/docsgen/.vitepress/config.mts
index 54ecae2e86b..d2fe2886b21 100644
--- a/builddefs/docsgen/.vitepress/config.mts
+++ b/builddefs/docsgen/.vitepress/config.mts
@@ -39,8 +39,15 @@ export default defineConfig(({ mode }) => {
provider: "local",
},
+ editLink: {
+ pattern: 'https://github.com/qmk/qmk_firmware/edit/master/docs/:path'
+ },
+ lastUpdated: true,
+
sidebar: sidebar,
+ externalLinkIcon: true,
+
socialLinks: [
{ icon: { svg: '' }, link: "https://reddit.com/r/olkb" },
{ icon: "discord", link: "https://discord.gg/qmk" },
diff --git a/builddefs/docsgen/package.json b/builddefs/docsgen/package.json
index 435e7481f1f..c2e5412a063 100644
--- a/builddefs/docsgen/package.json
+++ b/builddefs/docsgen/package.json
@@ -1,7 +1,7 @@
{
"license": "GPL-2.0-or-later",
"devDependencies": {
- "vite": "^5.2.10",
+ "vite": "^5.4.18",
"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 b40c1298d01..a096b8d5c02 100644
--- a/builddefs/docsgen/yarn.lock
+++ b/builddefs/docsgen/yarn.lock
@@ -178,205 +178,220 @@
"@docsearch/css" "3.6.0"
algoliasearch "^4.19.1"
-"@esbuild/aix-ppc64@0.20.2":
- version "0.20.2"
- resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz#a70f4ac11c6a1dfc18b8bbb13284155d933b9537"
- integrity sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==
+"@esbuild/aix-ppc64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f"
+ integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==
-"@esbuild/android-arm64@0.20.2":
- version "0.20.2"
- resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz#db1c9202a5bc92ea04c7b6840f1bbe09ebf9e6b9"
- integrity sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==
+"@esbuild/android-arm64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052"
+ integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==
-"@esbuild/android-arm@0.20.2":
- version "0.20.2"
- resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz#3b488c49aee9d491c2c8f98a909b785870d6e995"
- integrity sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==
+"@esbuild/android-arm@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28"
+ integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==
-"@esbuild/android-x64@0.20.2":
- version "0.20.2"
- resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz#3b1628029e5576249d2b2d766696e50768449f98"
- integrity sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==
+"@esbuild/android-x64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e"
+ integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==
-"@esbuild/darwin-arm64@0.20.2":
- version "0.20.2"
- resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz#6e8517a045ddd86ae30c6608c8475ebc0c4000bb"
- integrity sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==
+"@esbuild/darwin-arm64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a"
+ integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==
-"@esbuild/darwin-x64@0.20.2":
- version "0.20.2"
- resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz#90ed098e1f9dd8a9381695b207e1cff45540a0d0"
- integrity sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==
+"@esbuild/darwin-x64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22"
+ integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==
-"@esbuild/freebsd-arm64@0.20.2":
- version "0.20.2"
- resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz#d71502d1ee89a1130327e890364666c760a2a911"
- integrity sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==
+"@esbuild/freebsd-arm64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e"
+ integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==
-"@esbuild/freebsd-x64@0.20.2":
- version "0.20.2"
- resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz#aa5ea58d9c1dd9af688b8b6f63ef0d3d60cea53c"
- integrity sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==
+"@esbuild/freebsd-x64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261"
+ integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==
-"@esbuild/linux-arm64@0.20.2":
- version "0.20.2"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz#055b63725df678379b0f6db9d0fa85463755b2e5"
- integrity sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==
+"@esbuild/linux-arm64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b"
+ integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==
-"@esbuild/linux-arm@0.20.2":
- version "0.20.2"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz#76b3b98cb1f87936fbc37f073efabad49dcd889c"
- integrity sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==
+"@esbuild/linux-arm@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9"
+ integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==
-"@esbuild/linux-ia32@0.20.2":
- version "0.20.2"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz#c0e5e787c285264e5dfc7a79f04b8b4eefdad7fa"
- integrity sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==
+"@esbuild/linux-ia32@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2"
+ integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==
-"@esbuild/linux-loong64@0.20.2":
- version "0.20.2"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz#a6184e62bd7cdc63e0c0448b83801001653219c5"
- integrity sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==
+"@esbuild/linux-loong64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df"
+ integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==
-"@esbuild/linux-mips64el@0.20.2":
- version "0.20.2"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz#d08e39ce86f45ef8fc88549d29c62b8acf5649aa"
- integrity sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==
+"@esbuild/linux-mips64el@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe"
+ integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==
-"@esbuild/linux-ppc64@0.20.2":
- version "0.20.2"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz#8d252f0b7756ffd6d1cbde5ea67ff8fd20437f20"
- integrity sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==
+"@esbuild/linux-ppc64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4"
+ integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==
-"@esbuild/linux-riscv64@0.20.2":
- version "0.20.2"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz#19f6dcdb14409dae607f66ca1181dd4e9db81300"
- integrity sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==
+"@esbuild/linux-riscv64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc"
+ integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==
-"@esbuild/linux-s390x@0.20.2":
- version "0.20.2"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz#3c830c90f1a5d7dd1473d5595ea4ebb920988685"
- integrity sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==
+"@esbuild/linux-s390x@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de"
+ integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==
-"@esbuild/linux-x64@0.20.2":
- version "0.20.2"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz#86eca35203afc0d9de0694c64ec0ab0a378f6fff"
- integrity sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==
+"@esbuild/linux-x64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0"
+ integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==
-"@esbuild/netbsd-x64@0.20.2":
- version "0.20.2"
- resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz#e771c8eb0e0f6e1877ffd4220036b98aed5915e6"
- integrity sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==
+"@esbuild/netbsd-x64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047"
+ integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==
-"@esbuild/openbsd-x64@0.20.2":
- version "0.20.2"
- resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz#9a795ae4b4e37e674f0f4d716f3e226dd7c39baf"
- integrity sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==
+"@esbuild/openbsd-x64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70"
+ integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==
-"@esbuild/sunos-x64@0.20.2":
- version "0.20.2"
- resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz#7df23b61a497b8ac189def6e25a95673caedb03f"
- integrity sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==
+"@esbuild/sunos-x64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b"
+ integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==
-"@esbuild/win32-arm64@0.20.2":
- version "0.20.2"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz#f1ae5abf9ca052ae11c1bc806fb4c0f519bacf90"
- integrity sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==
+"@esbuild/win32-arm64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d"
+ integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==
-"@esbuild/win32-ia32@0.20.2":
- version "0.20.2"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz#241fe62c34d8e8461cd708277813e1d0ba55ce23"
- integrity sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==
+"@esbuild/win32-ia32@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b"
+ integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==
-"@esbuild/win32-x64@0.20.2":
- version "0.20.2"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz#9c907b21e30a52db959ba4f80bb01a0cc403d5cc"
- integrity sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==
+"@esbuild/win32-x64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c"
+ integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==
"@jridgewell/sourcemap-codec@^1.4.15":
version "1.4.15"
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
-"@rollup/rollup-android-arm-eabi@4.16.4":
- version "4.16.4"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.16.4.tgz#5e8930291f1e5ead7fb1171d53ba5c87718de062"
- integrity sha512-GkhjAaQ8oUTOKE4g4gsZ0u8K/IHU1+2WQSgS1TwTcYvL+sjbaQjNHFXbOJ6kgqGHIO1DfUhI/Sphi9GkRT9K+Q==
+"@rollup/rollup-android-arm-eabi@4.31.0":
+ version "4.31.0"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.31.0.tgz#d4dd60da0075a6ce9a6c76d71b8204f3e1822285"
+ integrity sha512-9NrR4033uCbUBRgvLcBrJofa2KY9DzxL2UKZ1/4xA/mnTNyhZCWBuD8X3tPm1n4KxcgaraOYgrFKSgwjASfmlA==
-"@rollup/rollup-android-arm64@4.16.4":
- version "4.16.4"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.16.4.tgz#ffb84f1359c04ec8a022a97110e18a5600f5f638"
- integrity sha512-Bvm6D+NPbGMQOcxvS1zUl8H7DWlywSXsphAeOnVeiZLQ+0J6Is8T7SrjGTH29KtYkiY9vld8ZnpV3G2EPbom+w==
+"@rollup/rollup-android-arm64@4.31.0":
+ version "4.31.0"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.31.0.tgz#25c4d33259a7a2ccd2f52a5ffcc0bb3ab3f0729d"
+ integrity sha512-iBbODqT86YBFHajxxF8ebj2hwKm1k8PTBQSojSt3d1FFt1gN+xf4CowE47iN0vOSdnd+5ierMHBbu/rHc7nq5g==
-"@rollup/rollup-darwin-arm64@4.16.4":
- version "4.16.4"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.16.4.tgz#b2fcee8d4806a0b1b9185ac038cc428ddedce9f4"
- integrity sha512-i5d64MlnYBO9EkCOGe5vPR/EeDwjnKOGGdd7zKFhU5y8haKhQZTN2DgVtpODDMxUr4t2K90wTUJg7ilgND6bXw==
+"@rollup/rollup-darwin-arm64@4.31.0":
+ version "4.31.0"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.31.0.tgz#d137dff254b19163a6b52ac083a71cd055dae844"
+ integrity sha512-WHIZfXgVBX30SWuTMhlHPXTyN20AXrLH4TEeH/D0Bolvx9PjgZnn4H677PlSGvU6MKNsjCQJYczkpvBbrBnG6g==
-"@rollup/rollup-darwin-x64@4.16.4":
- version "4.16.4"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.16.4.tgz#fcb25ccbaa3dd33a6490e9d1c64bab2e0e16b932"
- integrity sha512-WZupV1+CdUYehaZqjaFTClJI72fjJEgTXdf4NbW69I9XyvdmztUExBtcI2yIIU6hJtYvtwS6pkTkHJz+k08mAQ==
+"@rollup/rollup-darwin-x64@4.31.0":
+ version "4.31.0"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.31.0.tgz#58ff20b5dacb797d3adca19f02a21c532f9d55bf"
+ integrity sha512-hrWL7uQacTEF8gdrQAqcDy9xllQ0w0zuL1wk1HV8wKGSGbKPVjVUv/DEwT2+Asabf8Dh/As+IvfdU+H8hhzrQQ==
-"@rollup/rollup-linux-arm-gnueabihf@4.16.4":
- version "4.16.4"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.16.4.tgz#40d46bdfe667e5eca31bf40047460e326d2e26bb"
- integrity sha512-ADm/xt86JUnmAfA9mBqFcRp//RVRt1ohGOYF6yL+IFCYqOBNwy5lbEK05xTsEoJq+/tJzg8ICUtS82WinJRuIw==
+"@rollup/rollup-freebsd-arm64@4.31.0":
+ version "4.31.0"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.31.0.tgz#96ce1a241c591ec3e068f4af765d94eddb24e60c"
+ integrity sha512-S2oCsZ4hJviG1QjPY1h6sVJLBI6ekBeAEssYKad1soRFv3SocsQCzX6cwnk6fID6UQQACTjeIMB+hyYrFacRew==
-"@rollup/rollup-linux-arm-musleabihf@4.16.4":
- version "4.16.4"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.16.4.tgz#7741df2448c11c56588b50835dbfe91b1a10b375"
- integrity sha512-tJfJaXPiFAG+Jn3cutp7mCs1ePltuAgRqdDZrzb1aeE3TktWWJ+g7xK9SNlaSUFw6IU4QgOxAY4rA+wZUT5Wfg==
+"@rollup/rollup-freebsd-x64@4.31.0":
+ version "4.31.0"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.31.0.tgz#e59e7ede505be41f0b4311b0b943f8eb44938467"
+ integrity sha512-pCANqpynRS4Jirn4IKZH4tnm2+2CqCNLKD7gAdEjzdLGbH1iO0zouHz4mxqg0uEMpO030ejJ0aA6e1PJo2xrPA==
-"@rollup/rollup-linux-arm64-gnu@4.16.4":
- version "4.16.4"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.16.4.tgz#0a23b02d2933e4c4872ad18d879890b6a4a295df"
- integrity sha512-7dy1BzQkgYlUTapDTvK997cgi0Orh5Iu7JlZVBy1MBURk7/HSbHkzRnXZa19ozy+wwD8/SlpJnOOckuNZtJR9w==
+"@rollup/rollup-linux-arm-gnueabihf@4.31.0":
+ version "4.31.0"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.31.0.tgz#e455ca6e4ff35bd46d62201c153352e717000a7b"
+ integrity sha512-0O8ViX+QcBd3ZmGlcFTnYXZKGbFu09EhgD27tgTdGnkcYXLat4KIsBBQeKLR2xZDCXdIBAlWLkiXE1+rJpCxFw==
-"@rollup/rollup-linux-arm64-musl@4.16.4":
- version "4.16.4"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.16.4.tgz#e37ef259358aa886cc07d782220a4fb83c1e6970"
- integrity sha512-zsFwdUw5XLD1gQe0aoU2HVceI6NEW7q7m05wA46eUAyrkeNYExObfRFQcvA6zw8lfRc5BHtan3tBpo+kqEOxmg==
+"@rollup/rollup-linux-arm-musleabihf@4.31.0":
+ version "4.31.0"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.31.0.tgz#bc1a93d807d19e70b1e343a5bfea43723bcd6327"
+ integrity sha512-w5IzG0wTVv7B0/SwDnMYmbr2uERQp999q8FMkKG1I+j8hpPX2BYFjWe69xbhbP6J9h2gId/7ogesl9hwblFwwg==
-"@rollup/rollup-linux-powerpc64le-gnu@4.16.4":
- version "4.16.4"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.16.4.tgz#8c69218b6de05ee2ba211664a2d2ac1e54e43f94"
- integrity sha512-p8C3NnxXooRdNrdv6dBmRTddEapfESEUflpICDNKXpHvTjRRq1J82CbU5G3XfebIZyI3B0s074JHMWD36qOW6w==
+"@rollup/rollup-linux-arm64-gnu@4.31.0":
+ version "4.31.0"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.31.0.tgz#f38bf843f1dc3d5de680caf31084008846e3efae"
+ integrity sha512-JyFFshbN5xwy6fulZ8B/8qOqENRmDdEkcIMF0Zz+RsfamEW+Zabl5jAb0IozP/8UKnJ7g2FtZZPEUIAlUSX8cA==
-"@rollup/rollup-linux-riscv64-gnu@4.16.4":
- version "4.16.4"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.16.4.tgz#d32727dab8f538d9a4a7c03bcf58c436aecd0139"
- integrity sha512-Lh/8ckoar4s4Id2foY7jNgitTOUQczwMWNYi+Mjt0eQ9LKhr6sK477REqQkmy8YHY3Ca3A2JJVdXnfb3Rrwkng==
+"@rollup/rollup-linux-arm64-musl@4.31.0":
+ version "4.31.0"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.31.0.tgz#b3987a96c18b7287129cf735be2dbf83e94d9d05"
+ integrity sha512-kpQXQ0UPFeMPmPYksiBL9WS/BDiQEjRGMfklVIsA0Sng347H8W2iexch+IEwaR7OVSKtr2ZFxggt11zVIlZ25g==
-"@rollup/rollup-linux-s390x-gnu@4.16.4":
- version "4.16.4"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.16.4.tgz#d46097246a187d99fc9451fe8393b7155b47c5ec"
- integrity sha512-1xwwn9ZCQYuqGmulGsTZoKrrn0z2fAur2ujE60QgyDpHmBbXbxLaQiEvzJWDrscRq43c8DnuHx3QorhMTZgisQ==
+"@rollup/rollup-linux-loongarch64-gnu@4.31.0":
+ version "4.31.0"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.31.0.tgz#0f0324044e71c4f02e9f49e7ec4e347b655b34ee"
+ integrity sha512-pMlxLjt60iQTzt9iBb3jZphFIl55a70wexvo8p+vVFK+7ifTRookdoXX3bOsRdmfD+OKnMozKO6XM4zR0sHRrQ==
-"@rollup/rollup-linux-x64-gnu@4.16.4":
- version "4.16.4"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.16.4.tgz#6356c5a03a4afb1c3057490fc51b4764e109dbc7"
- integrity sha512-LuOGGKAJ7dfRtxVnO1i3qWc6N9sh0Em/8aZ3CezixSTM+E9Oq3OvTsvC4sm6wWjzpsIlOCnZjdluINKESflJLA==
+"@rollup/rollup-linux-powerpc64le-gnu@4.31.0":
+ version "4.31.0"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.31.0.tgz#809479f27f1fd5b4eecd2aa732132ad952d454ba"
+ integrity sha512-D7TXT7I/uKEuWiRkEFbed1UUYZwcJDU4vZQdPTcepK7ecPhzKOYk4Er2YR4uHKme4qDeIh6N3XrLfpuM7vzRWQ==
-"@rollup/rollup-linux-x64-musl@4.16.4":
- version "4.16.4"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.16.4.tgz#03a5831a9c0d05877b94653b5ddd3020d3c6fb06"
- integrity sha512-ch86i7KkJKkLybDP2AtySFTRi5fM3KXp0PnHocHuJMdZwu7BuyIKi35BE9guMlmTpwwBTB3ljHj9IQXnTCD0vA==
+"@rollup/rollup-linux-riscv64-gnu@4.31.0":
+ version "4.31.0"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.31.0.tgz#7bc75c4f22db04d3c972f83431739cfa41c6a36e"
+ integrity sha512-wal2Tc8O5lMBtoePLBYRKj2CImUCJ4UNGJlLwspx7QApYny7K1cUYlzQ/4IGQBLmm+y0RS7dwc3TDO/pmcneTw==
-"@rollup/rollup-win32-arm64-msvc@4.16.4":
- version "4.16.4"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.16.4.tgz#6cc0db57750376b9303bdb6f5482af8974fcae35"
- integrity sha512-Ma4PwyLfOWZWayfEsNQzTDBVW8PZ6TUUN1uFTBQbF2Chv/+sjenE86lpiEwj2FiviSmSZ4Ap4MaAfl1ciF4aSA==
+"@rollup/rollup-linux-s390x-gnu@4.31.0":
+ version "4.31.0"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.31.0.tgz#cfe8052345c55864d83ae343362cf1912480170e"
+ integrity sha512-O1o5EUI0+RRMkK9wiTVpk2tyzXdXefHtRTIjBbmFREmNMy7pFeYXCFGbhKFwISA3UOExlo5GGUuuj3oMKdK6JQ==
-"@rollup/rollup-win32-ia32-msvc@4.16.4":
- version "4.16.4"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.16.4.tgz#aea0b7e492bd9ed46971cb80bc34f1eb14e07789"
- integrity sha512-9m/ZDrQsdo/c06uOlP3W9G2ENRVzgzbSXmXHT4hwVaDQhYcRpi9bgBT0FTG9OhESxwK0WjQxYOSfv40cU+T69w==
+"@rollup/rollup-linux-x64-gnu@4.31.0":
+ version "4.31.0"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.31.0.tgz#c6b048f1e25f3fea5b4bd246232f4d07a159c5a0"
+ integrity sha512-zSoHl356vKnNxwOWnLd60ixHNPRBglxpv2g7q0Cd3Pmr561gf0HiAcUBRL3S1vPqRC17Zo2CX/9cPkqTIiai1g==
-"@rollup/rollup-win32-x64-msvc@4.16.4":
- version "4.16.4"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.16.4.tgz#c09ad9a132ccb5a67c4f211d909323ab1294f95f"
- integrity sha512-YunpoOAyGLDseanENHmbFvQSfVL5BxW3k7hhy0eN4rb3gS/ct75dVD0EXOWIqFT/nE8XYW6LP6vz6ctKRi0k9A==
+"@rollup/rollup-linux-x64-musl@4.31.0":
+ version "4.31.0"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.31.0.tgz#615273ac52d1a201f4de191cbd3389016a9d7d80"
+ integrity sha512-ypB/HMtcSGhKUQNiFwqgdclWNRrAYDH8iMYH4etw/ZlGwiTVxBz2tDrGRrPlfZu6QjXwtd+C3Zib5pFqID97ZA==
+
+"@rollup/rollup-win32-arm64-msvc@4.31.0":
+ version "4.31.0"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.31.0.tgz#32ed85810c1b831c648eca999d68f01255b30691"
+ integrity sha512-JuhN2xdI/m8Hr+aVO3vspO7OQfUFO6bKLIRTAy0U15vmWjnZDLrEgCZ2s6+scAYaQVpYSh9tZtRijApw9IXyMw==
+
+"@rollup/rollup-win32-ia32-msvc@4.31.0":
+ version "4.31.0"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.31.0.tgz#d47effada68bcbfdccd30c4a788d42e4542ff4d3"
+ integrity sha512-U1xZZXYkvdf5MIWmftU8wrM5PPXzyaY1nGCI4KI4BFfoZxHamsIe+BtnPLIvvPykvQWlVbqUXdLa4aJUuilwLQ==
+
+"@rollup/rollup-win32-x64-msvc@4.31.0":
+ version "4.31.0"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.31.0.tgz#7a2d89a82cf0388d60304964217dd7beac6de645"
+ integrity sha512-ul8rnCsUumNln5YWwz0ted2ZHFhzhRRnkpBZ+YRuHoRAlUji9KChpOUOndY7uykrPEPXVbHLlsdo6v5yXo/TXw==
"@shikijs/core@1.3.0", "@shikijs/core@^1.3.0":
version "1.3.0"
@@ -390,10 +405,10 @@
dependencies:
shiki "1.3.0"
-"@types/estree@1.0.5":
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4"
- integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==
+"@types/estree@1.0.6":
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50"
+ integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==
"@types/linkify-it@*":
version "3.0.5"
@@ -589,34 +604,34 @@ entities@^4.5.0:
resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
-esbuild@^0.20.1:
- version "0.20.2"
- resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.20.2.tgz#9d6b2386561766ee6b5a55196c6d766d28c87ea1"
- integrity sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==
+esbuild@^0.21.3:
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d"
+ integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==
optionalDependencies:
- "@esbuild/aix-ppc64" "0.20.2"
- "@esbuild/android-arm" "0.20.2"
- "@esbuild/android-arm64" "0.20.2"
- "@esbuild/android-x64" "0.20.2"
- "@esbuild/darwin-arm64" "0.20.2"
- "@esbuild/darwin-x64" "0.20.2"
- "@esbuild/freebsd-arm64" "0.20.2"
- "@esbuild/freebsd-x64" "0.20.2"
- "@esbuild/linux-arm" "0.20.2"
- "@esbuild/linux-arm64" "0.20.2"
- "@esbuild/linux-ia32" "0.20.2"
- "@esbuild/linux-loong64" "0.20.2"
- "@esbuild/linux-mips64el" "0.20.2"
- "@esbuild/linux-ppc64" "0.20.2"
- "@esbuild/linux-riscv64" "0.20.2"
- "@esbuild/linux-s390x" "0.20.2"
- "@esbuild/linux-x64" "0.20.2"
- "@esbuild/netbsd-x64" "0.20.2"
- "@esbuild/openbsd-x64" "0.20.2"
- "@esbuild/sunos-x64" "0.20.2"
- "@esbuild/win32-arm64" "0.20.2"
- "@esbuild/win32-ia32" "0.20.2"
- "@esbuild/win32-x64" "0.20.2"
+ "@esbuild/aix-ppc64" "0.21.5"
+ "@esbuild/android-arm" "0.21.5"
+ "@esbuild/android-arm64" "0.21.5"
+ "@esbuild/android-x64" "0.21.5"
+ "@esbuild/darwin-arm64" "0.21.5"
+ "@esbuild/darwin-x64" "0.21.5"
+ "@esbuild/freebsd-arm64" "0.21.5"
+ "@esbuild/freebsd-x64" "0.21.5"
+ "@esbuild/linux-arm" "0.21.5"
+ "@esbuild/linux-arm64" "0.21.5"
+ "@esbuild/linux-ia32" "0.21.5"
+ "@esbuild/linux-loong64" "0.21.5"
+ "@esbuild/linux-mips64el" "0.21.5"
+ "@esbuild/linux-ppc64" "0.21.5"
+ "@esbuild/linux-riscv64" "0.21.5"
+ "@esbuild/linux-s390x" "0.21.5"
+ "@esbuild/linux-x64" "0.21.5"
+ "@esbuild/netbsd-x64" "0.21.5"
+ "@esbuild/openbsd-x64" "0.21.5"
+ "@esbuild/sunos-x64" "0.21.5"
+ "@esbuild/win32-arm64" "0.21.5"
+ "@esbuild/win32-ia32" "0.21.5"
+ "@esbuild/win32-x64" "0.21.5"
estree-walker@^2.0.2:
version "2.0.2"
@@ -662,29 +677,29 @@ mitt@^3.0.1:
resolved "https://registry.yarnpkg.com/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1"
integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==
-nanoid@^3.3.7:
- version "3.3.7"
- resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
- integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
+nanoid@^3.3.8:
+ version "3.3.8"
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf"
+ integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==
perfect-debounce@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz#9c2e8bc30b169cc984a58b7d5b28049839591d2a"
integrity sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==
-picocolors@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
- integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
+picocolors@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b"
+ integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
-postcss@^8.4.38:
- version "8.4.38"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e"
- integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==
+postcss@^8.4.38, postcss@^8.4.43:
+ version "8.5.1"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.1.tgz#e2272a1f8a807fafa413218245630b5db10a3214"
+ integrity sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==
dependencies:
- nanoid "^3.3.7"
- picocolors "^1.0.0"
- source-map-js "^1.2.0"
+ nanoid "^3.3.8"
+ picocolors "^1.1.1"
+ source-map-js "^1.2.1"
preact@^10.0.0:
version "10.20.2"
@@ -696,29 +711,32 @@ rfdc@^1.3.1:
resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.1.tgz#2b6d4df52dffe8bb346992a10ea9451f24373a8f"
integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==
-rollup@^4.13.0:
- version "4.16.4"
- resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.16.4.tgz#fe328eb41293f20c9593a095ec23bdc4b5d93317"
- integrity sha512-kuaTJSUbz+Wsb2ATGvEknkI12XV40vIiHmLuFlejoo7HtDok/O5eDDD0UpCVY5bBX5U5RYo8wWP83H7ZsqVEnA==
+rollup@^4.20.0:
+ version "4.31.0"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.31.0.tgz#b84af969a0292cb047dce2c0ec5413a9457597a4"
+ integrity sha512-9cCE8P4rZLx9+PjoyqHLs31V9a9Vpvfo4qNcs6JCiGWYhw2gijSetFbH6SSy1whnkgcefnUwr8sad7tgqsGvnw==
dependencies:
- "@types/estree" "1.0.5"
+ "@types/estree" "1.0.6"
optionalDependencies:
- "@rollup/rollup-android-arm-eabi" "4.16.4"
- "@rollup/rollup-android-arm64" "4.16.4"
- "@rollup/rollup-darwin-arm64" "4.16.4"
- "@rollup/rollup-darwin-x64" "4.16.4"
- "@rollup/rollup-linux-arm-gnueabihf" "4.16.4"
- "@rollup/rollup-linux-arm-musleabihf" "4.16.4"
- "@rollup/rollup-linux-arm64-gnu" "4.16.4"
- "@rollup/rollup-linux-arm64-musl" "4.16.4"
- "@rollup/rollup-linux-powerpc64le-gnu" "4.16.4"
- "@rollup/rollup-linux-riscv64-gnu" "4.16.4"
- "@rollup/rollup-linux-s390x-gnu" "4.16.4"
- "@rollup/rollup-linux-x64-gnu" "4.16.4"
- "@rollup/rollup-linux-x64-musl" "4.16.4"
- "@rollup/rollup-win32-arm64-msvc" "4.16.4"
- "@rollup/rollup-win32-ia32-msvc" "4.16.4"
- "@rollup/rollup-win32-x64-msvc" "4.16.4"
+ "@rollup/rollup-android-arm-eabi" "4.31.0"
+ "@rollup/rollup-android-arm64" "4.31.0"
+ "@rollup/rollup-darwin-arm64" "4.31.0"
+ "@rollup/rollup-darwin-x64" "4.31.0"
+ "@rollup/rollup-freebsd-arm64" "4.31.0"
+ "@rollup/rollup-freebsd-x64" "4.31.0"
+ "@rollup/rollup-linux-arm-gnueabihf" "4.31.0"
+ "@rollup/rollup-linux-arm-musleabihf" "4.31.0"
+ "@rollup/rollup-linux-arm64-gnu" "4.31.0"
+ "@rollup/rollup-linux-arm64-musl" "4.31.0"
+ "@rollup/rollup-linux-loongarch64-gnu" "4.31.0"
+ "@rollup/rollup-linux-powerpc64le-gnu" "4.31.0"
+ "@rollup/rollup-linux-riscv64-gnu" "4.31.0"
+ "@rollup/rollup-linux-s390x-gnu" "4.31.0"
+ "@rollup/rollup-linux-x64-gnu" "4.31.0"
+ "@rollup/rollup-linux-x64-musl" "4.31.0"
+ "@rollup/rollup-win32-arm64-msvc" "4.31.0"
+ "@rollup/rollup-win32-ia32-msvc" "4.31.0"
+ "@rollup/rollup-win32-x64-msvc" "4.31.0"
fsevents "~2.3.2"
shiki@1.3.0, shiki@^1.3.0:
@@ -733,6 +751,11 @@ source-map-js@^1.2.0:
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af"
integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==
+source-map-js@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46"
+ integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==
+
speakingurl@^14.0.1:
version "14.0.1"
resolved "https://registry.yarnpkg.com/speakingurl/-/speakingurl-14.0.1.tgz#f37ec8ddc4ab98e9600c1c9ec324a8c48d772a53"
@@ -743,14 +766,14 @@ tabbable@^6.2.0:
resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97"
integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==
-vite@^5.2.10, vite@^5.2.9:
- version "5.2.10"
- resolved "https://registry.yarnpkg.com/vite/-/vite-5.2.10.tgz#2ac927c91e99d51b376a5c73c0e4b059705f5bd7"
- integrity sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==
+vite@^5.2.9, vite@^5.4.18:
+ version "5.4.18"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.18.tgz#b5af357f9d5ebb2e0c085779b7a37a77f09168a4"
+ integrity sha512-1oDcnEp3lVyHCuQ2YFelM4Alm2o91xNoMncRm1U7S+JdYfYOvbiGZ3/CxGttrOu2M/KcGz7cRC2DoNUA6urmMA==
dependencies:
- esbuild "^0.20.1"
- postcss "^8.4.38"
- rollup "^4.13.0"
+ esbuild "^0.21.3"
+ postcss "^8.4.43"
+ rollup "^4.20.0"
optionalDependencies:
fsevents "~2.3.3"
diff --git a/builddefs/generic_features.mk b/builddefs/generic_features.mk
index dc34a642307..f14f4408770 100644
--- a/builddefs/generic_features.mk
+++ b/builddefs/generic_features.mk
@@ -36,6 +36,7 @@ GENERIC_FEATURES = \
HAPTIC \
KEY_LOCK \
KEY_OVERRIDE \
+ LAYER_LOCK \
LEADER \
MAGIC \
MOUSEKEY \
diff --git a/builddefs/show_options.mk b/builddefs/show_options.mk
index 81d8400a806..1c1a3ebf8e0 100644
--- a/builddefs/show_options.mk
+++ b/builddefs/show_options.mk
@@ -67,7 +67,6 @@ OTHER_OPTION_NAMES = \
PS2_DRIVER \
RAW_ENABLE \
SWAP_HANDS_ENABLE \
- RING_BUFFERED_6KRO_REPORT_ENABLE \
WATCHDOG_ENABLE \
ERGOINU \
NO_USB_STARTUP_CHECK \
diff --git a/data/constants/keycodes/extras/keycodes_eurkey_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_eurkey_0.0.1.hjson
new file mode 100644
index 00000000000..9ff217cff26
--- /dev/null
+++ b/data/constants/keycodes/extras/keycodes_eurkey_0.0.1.hjson
@@ -0,0 +1,596 @@
+{
+ "aliases": {
+/*
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
+ * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
+ * │ │ 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 │ , │ . │ / │ │
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
+ * │ │ │ │ │ │ │ │ │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+ */
+ "KC_GRV": {
+ "key": "EU_GRV",
+ "label": "`",
+ }
+ "KC_1": {
+ "key": "EU_1",
+ "label": "1",
+ }
+ "KC_2": {
+ "key": "EU_2",
+ "label": "2",
+ }
+ "KC_3": {
+ "key": "EU_3",
+ "label": "3",
+ }
+ "KC_4": {
+ "key": "EU_4",
+ "label": "4",
+ }
+ "KC_5": {
+ "key": "EU_5",
+ "label": "5",
+ }
+ "KC_6": {
+ "key": "EU_6",
+ "label": "6",
+ }
+ "KC_7": {
+ "key": "EU_7",
+ "label": "7",
+ }
+ "KC_8": {
+ "key": "EU_8",
+ "label": "8",
+ }
+ "KC_9": {
+ "key": "EU_9",
+ "label": "9",
+ }
+ "KC_0": {
+ "key": "EU_0",
+ "label": "0",
+ }
+ "KC_MINS": {
+ "key": "EU_MINS",
+ "label": "-",
+ }
+ "KC_EQL": {
+ "key": "EU_EQL",
+ "label": "=",
+ }
+ "KC_Q": {
+ "key": "EU_Q",
+ "label": "Q",
+ }
+ "KC_W": {
+ "key": "EU_W",
+ "label": "W",
+ }
+ "KC_E": {
+ "key": "EU_E",
+ "label": "E",
+ }
+ "KC_R": {
+ "key": "EU_R",
+ "label": "R",
+ }
+ "KC_T": {
+ "key": "EU_T",
+ "label": "T",
+ }
+ "KC_Y": {
+ "key": "EU_Y",
+ "label": "Y",
+ }
+ "KC_U": {
+ "key": "EU_U",
+ "label": "U",
+ }
+ "KC_I": {
+ "key": "EU_I",
+ "label": "I",
+ }
+ "KC_O": {
+ "key": "EU_O",
+ "label": "O",
+ }
+ "KC_P": {
+ "key": "EU_P",
+ "label": "P",
+ }
+ "KC_LBRC": {
+ "key": "EU_LBRC",
+ "label": "[",
+ }
+ "KC_RBRC": {
+ "key": "EU_RBRC",
+ "label": "]",
+ }
+ "KC_BSLS": {
+ "key": "EU_BSLS",
+ "label": "\\",
+ }
+ "KC_A": {
+ "key": "EU_A",
+ "label": "A",
+ }
+ "KC_S": {
+ "key": "EU_S",
+ "label": "S",
+ }
+ "KC_D": {
+ "key": "EU_D",
+ "label": "D",
+ }
+ "KC_F": {
+ "key": "EU_F",
+ "label": "F",
+ }
+ "KC_G": {
+ "key": "EU_G",
+ "label": "G",
+ }
+ "KC_H": {
+ "key": "EU_H",
+ "label": "H",
+ }
+ "KC_J": {
+ "key": "EU_J",
+ "label": "J",
+ }
+ "KC_K": {
+ "key": "EU_K",
+ "label": "K",
+ }
+ "KC_L": {
+ "key": "EU_L",
+ "label": "L",
+ }
+ "KC_SCLN": {
+ "key": "EU_SCLN",
+ "label": ";",
+ }
+ "KC_QUOT": {
+ "key": "EU_QUOT",
+ "label": "'",
+ }
+ "KC_Z": {
+ "key": "EU_Z",
+ "label": "Z",
+ }
+ "KC_X": {
+ "key": "EU_X",
+ "label": "X",
+ }
+ "KC_C": {
+ "key": "EU_C",
+ "label": "C",
+ }
+ "KC_V": {
+ "key": "EU_V",
+ "label": "V",
+ }
+ "KC_B": {
+ "key": "EU_B",
+ "label": "B",
+ }
+ "KC_N": {
+ "key": "EU_N",
+ "label": "N",
+ }
+ "KC_M": {
+ "key": "EU_M",
+ "label": "M",
+ }
+ "KC_COMM": {
+ "key": "EU_COMM",
+ "label": ",",
+ }
+ "KC_DOT": {
+ "key": "EU_DOT",
+ "label": ".",
+ }
+ "KC_SLSH": {
+ "key": "EU_SLSH",
+ "label": "/",
+ }
+/* Shifted symbols
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
+ * │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ { │ } │ | │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
+ * │ │ │ │ │ │ │ │ │ │ │ : │ " │ │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
+ * │ │ │ │ │ │ │ │ │ < │ > │ ? │ │
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
+ * │ │ │ │ │ │ │ │ │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+ */
+ "S(EU_GRV)": {
+ "key": "EU_TILD",
+ "label": "~",
+ }
+ "S(EU_1)": {
+ "key": "EU_EXLM",
+ "label": "!",
+ }
+ "S(EU_2)": {
+ "key": "EU_AT",
+ "label": "@",
+ }
+ "S(EU_3)": {
+ "key": "EU_HASH",
+ "label": "#",
+ }
+ "S(EU_4)": {
+ "key": "EU_DLR",
+ "label": "$",
+ }
+ "S(EU_5)": {
+ "key": "EU_PERC",
+ "label": "%",
+ }
+ "S(EU_6)": {
+ "key": "EU_CIRC",
+ "label": "^",
+ }
+ "S(EU_7)": {
+ "key": "EU_AMPR",
+ "label": "&",
+ }
+ "S(EU_8)": {
+ "key": "EU_ASTR",
+ "label": "*",
+ }
+ "S(EU_9)": {
+ "key": "EU_LPRN",
+ "label": "(",
+ }
+ "S(EU_0)": {
+ "key": "EU_RPRN",
+ "label": ")",
+ }
+ "S(EU_MINS)": {
+ "key": "EU_UNDS",
+ "label": "_",
+ }
+ "S(EU_EQL)": {
+ "key": "EU_PLUS",
+ "label": "+",
+ }
+ "S(EU_LBRC)": {
+ "key": "EU_LCBR",
+ "label": "{",
+ }
+ "S(EU_RBRC)": {
+ "key": "EU_RCBR",
+ "label": "}",
+ }
+ "S(EU_BSLS)": {
+ "key": "EU_PIPE",
+ "label": "|",
+ }
+ "S(EU_SCLN)": {
+ "key": "EU_COLN",
+ "label": ":",
+ }
+ "S(EU_QUOT)": {
+ "key": "EU_DQUO",
+ "label": "\"",
+ }
+ "S(EU_COMM)": {
+ "key": "EU_LABK",
+ "label": "<",
+ }
+ "S(EU_DOT)": {
+ "key": "EU_RABK",
+ "label": ">",
+ }
+ "S(EU_SLSH)": {
+ "key": "EU_QUES",
+ "label": "?",
+ }
+/* AltGr symbols
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
+ * │ ` │ ¡ │ ª │ º │ £ │ € │ ^ │ ˚ │ „ │ “ │ ” │ – │ × │ │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
+ * │ │ æ │ å │ ë │ ý │ þ │ ÿ │ ü │ ï │ ö │ œ │ « │ » │ ¬ │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
+ * │ │ ä │ ß │ ð │ è │ é │ ù │ ú │ ij │ ø │ ° │ ´ │ │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
+ * │ │ à │ á │ ç │ ì │ í │ ñ │ μ │ ò │ ó │ ¿ │ │
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
+ * │ │ │ │ │ │ │ │ │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+ */
+ "ALGR(EU_GRV)": {
+ "key": "EU_DGRV",
+ "label": "` (dead)",
+ }
+ "ALGR(EU_1)": {
+ "key": "EU_IEXL",
+ "label": "¡",
+ }
+ "ALGR(EU_2)": {
+ "key": "EU_FORD",
+ "label": "ª",
+ }
+ "ALGR(EU_3)": {
+ "key": "EU_MORD",
+ "label": "º",
+ }
+ "ALGR(EU_4)": {
+ "key": "EU_PND",
+ "label": "£",
+ }
+ "ALGR(EU_5)": {
+ "key": "EU_EURO",
+ "label": "€",
+ }
+ "ALGR(EU_6)": {
+ "key": "EU_DCIR",
+ "label": "^ (dead)",
+ }
+ "ALGR(EU_7)": {
+ "key": "EU_RNGA",
+ "label": "˚ (dead)",
+ }
+ "ALGR(EU_8)": {
+ "key": "EU_DLQU",
+ "label": "„",
+ }
+ "ALGR(EU_9)": {
+ "key": "EU_LDQU",
+ "label": "“",
+ }
+ "ALGR(EU_0)": {
+ "key": "EU_RDQU",
+ "label": "”",
+ }
+ "ALGR(EU_MINS)": {
+ "key": "EU_NDSH",
+ "label": "–",
+ }
+ "ALGR(EU_EQL)": {
+ "key": "EU_MUL",
+ "label": "×",
+ }
+ "ALGR(EU_Q)": {
+ "key": "EU_AE",
+ "label": "æ",
+ }
+ "ALGR(EU_W)": {
+ "key": "EU_ARNG",
+ "label": "Å",
+ }
+ "ALGR(EU_E)": {
+ "key": "EU_EDIA",
+ "label": "Ë",
+ }
+ "ALGR(EU_R)": {
+ "key": "EU_YACU",
+ "label": "Ý",
+ }
+ "ALGR(EU_T)": {
+ "key": "EU_THRN",
+ "label": "Þ",
+ }
+ "ALGR(EU_Y)": {
+ "key": "EU_YDIA",
+ "label": "Ÿ",
+ }
+ "ALGR(EU_U)": {
+ "key": "EU_UDIA",
+ "label": "Ü",
+ }
+ "ALGR(EU_I)": {
+ "key": "EU_IDIA",
+ "label": "Ï",
+ }
+ "ALGR(EU_O)": {
+ "key": "EU_ODIA",
+ "label": "Ö",
+ }
+ "ALGR(EU_P)": {
+ "key": "EU_OE",
+ "label": "Œ",
+ }
+ "ALGR(EU_LBRC)": {
+ "key": "EU_LDAQ",
+ "label": "«",
+ }
+ "ALGR(EU_RBRC)": {
+ "key": "EU_RDAQ",
+ "label": "»",
+ }
+ "ALGR(EU_BSLS)": {
+ "key": "EU_NOT",
+ "label": "¬",
+ }
+ "ALGR(EU_A)": {
+ "key": "EU_ADIA",
+ "label": "Ä",
+ }
+ "ALGR(EU_S)": {
+ "key": "EU_SS",
+ "label": "ß",
+ }
+ "ALGR(EU_D)": {
+ "key": "EU_ETH",
+ "label": "Ð",
+ }
+ "ALGR(EU_F)": {
+ "key": "EU_EGRV",
+ "label": "È",
+ }
+ "ALGR(EU_G)": {
+ "key": "EU_EACU",
+ "label": "É",
+ }
+ "ALGR(EU_H)": {
+ "key": "EU_UGRV",
+ "label": "Ù",
+ }
+ "ALGR(EU_J)": {
+ "key": "EU_UACU",
+ "label": "Ú",
+ }
+ "ALGR(EU_K)": {
+ "key": "EU_IJ",
+ "label": "IJ",
+ }
+ "ALGR(EU_L)": {
+ "key": "EU_OSTR",
+ "label": "Ø",
+ }
+ "ALGR(EU_SCLN)": {
+ "key": "EU_DEG",
+ "label": "°",
+ }
+ "ALGR(EU_QUOT)": {
+ "key": "EU_ACUT",
+ "label": "´ (dead)",
+ }
+ "ALGR(EU_Z)": {
+ "key": "EU_AGRV",
+ "label": "À",
+ }
+ "ALGR(EU_X)": {
+ "key": "EU_AACU",
+ "label": "Á",
+ }
+ "ALGR(EU_C)": {
+ "key": "EU_CCED",
+ "label": "Ç",
+ }
+ "ALGR(EU_V)": {
+ "key": "EU_IGRV",
+ "label": "Ì",
+ }
+ "ALGR(EU_B)": {
+ "key": "EU_IACU",
+ "label": "Í",
+ }
+ "ALGR(EU_N)": {
+ "key": "EU_NTIL",
+ "label": "Ñ",
+ }
+ "ALGR(EU_M)": {
+ "key": "EU_DGRK",
+ "label": "μ (dead Greek key)",
+ }
+ "ALGR(EU_COMM)": {
+ "key": "EU_OGRV",
+ "label": "Ò",
+ }
+ "ALGR(EU_DOT)": {
+ "key": "EU_OACU",
+ "label": "Ó",
+ }
+ "ALGR(EU_SLSH)": {
+ "key": "EU_IQUE",
+ "label": "¿",
+ }
+/* Shift+AltGr symbols
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
+ * │ ~ │ ¹ │ ² │ ³ │ ¥ │ ¢ │ ˇ │ ¯ │ ‚ │ ‘ │ ’ │ — │ ÷ │ │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ ‹ │ › │ ¦ │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
+ * │ │ │ § │ │ │ │ │ │ │ │ · │ ¨ │ │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
+ * │ │ │ │ │ │ │ │ │ │ │ … │ │
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
+ * │ │ │ │ │ │ │ │ │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+ */
+ "ALGR(EU_TILD)": {
+ "key": "EU_DTIL",
+ "label": "~ (dead)",
+ }
+ "S(ALGR(EU_1))": {
+ "key": "EU_SUP1",
+ "label": "¹",
+ }
+ "S(ALGR(EU_2))": {
+ "key": "EU_SUP2",
+ "label": "²",
+ }
+ "S(ALGR(EU_3))": {
+ "key": "EU_SUP3",
+ "label": "³",
+ }
+ "ALGR(EU_DLR)": {
+ "key": "EU_YEN",
+ "label": "¥",
+ }
+ "S(EU_EURO)": {
+ "key": "EU_CENT",
+ "label": "¢",
+ }
+ "S(EU_DCIR)": {
+ "key": "EU_CARN",
+ "label": "ˇ (dead)",
+ }
+ "S(ALGR(EU_7))": {
+ "key": "EU_MACR",
+ "label": "¯ (dead)",
+ }
+ "S(EU_DLQU)": {
+ "key": "EU_SLQU",
+ "label": "‚",
+ }
+ "S(EU_LDQU)": {
+ "key": "EU_LSQU",
+ "label": "‘",
+ }
+ "S(EU_RDQU)": {
+ "key": "EU_RSQU",
+ "label": "’",
+ }
+ "S(EU_NDSH)": {
+ "key": "EU_MDSH",
+ "label": "—",
+ }
+ "S(EU_MUL)": {
+ "key": "EU_DIV",
+ "label": "÷",
+ }
+ "S(EU_LDAQ)": {
+ "key": "EU_LSAQ",
+ "label": "‹",
+ }
+ "S(EU_RDAQ)": {
+ "key": "EU_RSAQ",
+ "label": "›",
+ }
+ "S(ALGR(EU_BSLS))": {
+ "key": "EU_BRKP",
+ "label": "¦",
+ }
+ "S(ALGR(EU_S))": {
+ "key": "EU_SECT",
+ "label": "§",
+ }
+ "S(ALGR(EU_SCLN))": {
+ "key": "EU_MDDT",
+ "label": "·",
+ }
+ "ALGR(EU_DQUO)": {
+ "key": "EU_DIAE",
+ "label": "¨ (dead)",
+ }
+ "ALGR(EU_QUES)": {
+ "key": "EU_ELLP",
+ "label": "…",
+ }
+ }
+}
\ No newline at end of file
diff --git a/data/constants/keycodes/extras/keycodes_farsi_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_farsi_0.0.1.hjson
new file mode 100644
index 00000000000..68d209a5f3b
--- /dev/null
+++ b/data/constants/keycodes/extras/keycodes_farsi_0.0.1.hjson
@@ -0,0 +1,616 @@
+{
+ "aliases": {
+/*
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
+ * │ │ ۱ │ ۲ │ ۳ │ ۴ │ ۵ │ ۶ │ ۷ │ ۸ │ ۹ │ ۰ │ - │ = │ │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
+ * │ │ ض │ ص │ ث │ ق │ ف │ غ │ ع │ ه │ خ │ ح │ ج │ چ │ │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
+ * │ │ ش │ س │ ی │ ب │ ل │ ا │ ت │ ن │ م │ ک │ گ │ \ │ │
+ * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
+ * │ │ < │ ظ │ ط │ ز │ ر │ ذ │ د │ پ │ و │ . │ / │ │
+ * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
+ * │ │ │ │ │ │ │ │ │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+ */
+ "KC_GRV": {
+ "key": "FA_ZWJ",
+ "label": "(zero-width joiner)",
+ }
+ "KC_1": {
+ "key": "FA_1A",
+ "label": "۱",
+ }
+ "KC_2": {
+ "key": "FA_2A",
+ "label": "۲",
+ }
+ "KC_3": {
+ "key": "FA_3A",
+ "label": "۳",
+ }
+ "KC_4": {
+ "key": "FA_4A",
+ "label": "۴",
+ }
+ "KC_5": {
+ "key": "FA_5A",
+ "label": "۵",
+ }
+ "KC_6": {
+ "key": "FA_6A",
+ "label": "۶",
+ }
+ "KC_7": {
+ "key": "FA_7A",
+ "label": "۷",
+ }
+ "KC_8": {
+ "key": "FA_8A",
+ "label": "۸",
+ }
+ "KC_9": {
+ "key": "FA_9A",
+ "label": "۹",
+ }
+ "KC_0": {
+ "key": "FA_0A",
+ "label": "۰",
+ }
+ "KC_MINS": {
+ "key": "FA_MINS",
+ "label": "-",
+ }
+ "KC_EQL": {
+ "key": "FA_EQL",
+ "label": "=",
+ }
+ "KC_Q": {
+ "key": "FA_ZAD",
+ "label": "ض",
+ }
+ "KC_W": {
+ "key": "FA_SAD",
+ "label": "ص",
+ }
+ "KC_E": {
+ "key": "FA_SE",
+ "label": "ث",
+ }
+ "KC_R": {
+ "key": "FA_QAF",
+ "label": "ق",
+ }
+ "KC_T": {
+ "key": "FA_FE",
+ "label": "ف",
+ }
+ "KC_Y": {
+ "key": "FA_GHYN",
+ "label": "غ",
+ }
+ "KC_U": {
+ "key": "FA_EYN",
+ "label": "ع",
+ }
+ "KC_I": {
+ "key": "FA_HE",
+ "label": "ه",
+ }
+ "KC_O": {
+ "key": "FA_KHE",
+ "label": "خ",
+ }
+ "KC_P": {
+ "key": "FA_HEJ",
+ "label": "ح",
+ }
+ "KC_LBRC": {
+ "key": "FA_JIM",
+ "label": "ج",
+ }
+ "KC_RBRC": {
+ "key": "FA_CHE",
+ "label": "چ",
+ }
+ "KC_A": {
+ "key": "FA_SHIN",
+ "label": "ش",
+ }
+ "KC_S": {
+ "key": "FA_SIN",
+ "label": "س",
+ }
+ "KC_D": {
+ "key": "FA_YE",
+ "label": "ی",
+ }
+ "KC_F": {
+ "key": "FA_BE",
+ "label": "ب",
+ }
+ "KC_G": {
+ "key": "FA_LAM",
+ "label": "ل",
+ }
+ "KC_H": {
+ "key": "FA_ALEF",
+ "label": "ا",
+ }
+ "KC_J": {
+ "key": "FA_TE",
+ "label": "ت",
+ }
+ "KC_K": {
+ "key": "FA_NOON",
+ "label": "ن",
+ }
+ "KC_L": {
+ "key": "FA_MIM",
+ "label": "م",
+ }
+ "KC_SCLN": {
+ "key": "FA_KAF",
+ "label": "ک",
+ }
+ "KC_QUOT": {
+ "key": "FA_GAF",
+ "label": "گ",
+ }
+ "KC_BSLS": {
+ "key": "FA_BSLS",
+ "label": "\\",
+ }
+ "KC_LT": {
+ "key": "FA_LT",
+ "label": "<",
+ }
+ "KC_Z": {
+ "key": "FA_ZA",
+ "label": "ظ",
+ }
+ "KC_X": {
+ "key": "FA_TA",
+ "label": "ط",
+ }
+ "KC_C": {
+ "key": "FA_ZE",
+ "label": "ز",
+ }
+ "KC_V": {
+ "key": "FA_RE",
+ "label": "ر",
+ }
+ "KC_B": {
+ "key": "FA_ZAL",
+ "label": "ذ",
+ }
+ "KC_N": {
+ "key": "FA_DAL",
+ "label": "د",
+ }
+ "KC_M": {
+ "key": "FA_PE",
+ "label": "پ",
+ }
+ "KC_COMM": {
+ "key": "FA_WAW",
+ "label": "و",
+ }
+ "KC_DOT": {
+ "key": "FA_DOT",
+ "label": ".",
+ }
+ "KC_SLSH": {
+ "key": "FA_SLSH",
+ "label": "/",
+ }
+ "KC_SPC": {
+ "key": "FA_SPC",
+ "label": " ",
+ }
+/* Shifted symbols
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
+ * │ ÷ │ ! │ ٬ │ ٫ │ ﷼ │ ٪ │ × │ ، │ * │ ) │ ( │ ـ │ + │ │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
+ * │ │ ْ │ ٌ │ ٍ │ ً │ ُ │ ِ │ َ │ ّ │ ] │ [ │ } │ { │ │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
+ * │ │ ؤ │ ئ │ ي │ إ │ أ │ آ │ ة │ » │ « │ : │ ؛ │ | │ │
+ * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
+ * │ │ > │ ك │ ٓ │ ژ │ ٰ │ │ ٔ │ ء │ │ │ ؟ │ │
+ * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
+ * │ │ │ │ │ │ │ │ │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+ */
+ "S(FA_ZWJ)": {
+ "key": "FA_DIV",
+ "label": "÷",
+ }
+ "S(FA_1A)": {
+ "key": "FA_EXLM",
+ "label": "!",
+ }
+ "S(FA_2A)": {
+ "key": "FA_THS",
+ "label": "٬",
+ }
+ "S(FA_3A)": {
+ "key": "FA_DECS",
+ "label": "٫",
+ }
+ "S(FA_4A)": {
+ "key": "FA_RIAL",
+ "label": "﷼",
+ }
+ "S(FA_5A)": {
+ "key": "FA_PRCA",
+ "label": "٪",
+ }
+ "S(FA_6A)": {
+ "key": "FA_MUL",
+ "label": "×",
+ }
+ "S(FA_7A)": {
+ "key": "FA_COMA",
+ "label": "،",
+ }
+ "S(FA_8A)": {
+ "key": "FA_ASTR",
+ "label": "*",
+ }
+ "S(FA_9A)": {
+ "key": "FA_RPRN",
+ "label": ")",
+ }
+ "S(FA_0A)": {
+ "key": "FA_LPRN",
+ "label": "(",
+ }
+ "S(FA_MINS)": {
+ "key": "FA_TATW",
+ "label": "ـ",
+ }
+ "S(FA_EQL)": {
+ "key": "FA_PLUS",
+ "label": "+",
+ }
+ "S(FA_ZAD)": {
+ "key": "FA_SUK",
+ "label": "ْ",
+ }
+ "S(FA_SAD)": {
+ "key": "FA_DMTN",
+ "label": "ٌ",
+ }
+ "S(FA_SE)": {
+ "key": "FA_KSTN",
+ "label": "ٍ",
+ }
+ "S(FA_QAF)": {
+ "key": "FA_FTHN",
+ "label": "ً",
+ }
+ "S(FA_FE)": {
+ "key": "FA_DMM",
+ "label": "ُ",
+ }
+ "S(FA_GHYN)": {
+ "key": "FA_KAS",
+ "label": "ِ",
+ }
+ "S(FA_EYN)": {
+ "key": "FA_FAT",
+ "label": "َ",
+ }
+ "S(FA_HE)": {
+ "key": "FA_TSDD",
+ "label": "",
+ }
+ "S(FA_KHE)": {
+ "key": "FA_RBRC",
+ "label": "]",
+ }
+ "S(FA_HEJ)": {
+ "key": "FA_LBRC",
+ "label": "[",
+ }
+ "S(FA_JIM)": {
+ "key": "FA_RCBR",
+ "label": "}",
+ }
+ "S(FA_CHE)": {
+ "key": "FA_LCBR",
+ "label": "{",
+ }
+ "S(FA_SHIN)": {
+ "key": "FA_HMZV",
+ "label": "ؤ",
+ }
+ "S(FA_SIN)": {
+ "key": "FA_HMZY",
+ "label": "ئ",
+ }
+ "S(FA_YE)": {
+ "key": "FA_YEA",
+ "label": "ي",
+ }
+ "S(FA_BE)": {
+ "key": "FA_HMZU",
+ "label": "إ",
+ }
+ "S(FA_LAM)": {
+ "key": "FA_HMZO",
+ "label": "أ",
+ }
+ "S(FA_ALEF)": {
+ "key": "FA_MALF",
+ "label": "آ",
+ }
+ "S(FA_TE)": {
+ "key": "FA_TEHM",
+ "label": "ة",
+ }
+ "S(FA_NOON)": {
+ "key": "FA_RQOT",
+ "label": "»",
+ }
+ "S(FA_MIM)": {
+ "key": "FA_LQOT",
+ "label": "«",
+ }
+ "S(FA_KAF)": {
+ "key": "FA_COLN",
+ "label": ":",
+ }
+ "S(FA_GAF)": {
+ "key": "FA_SCLA",
+ "label": "؛",
+ }
+ "S(FA_LT)": {
+ "key": "FA_GT",
+ "label": ">",
+ }
+ "S(FA_ZA)": {
+ "key": "FA_KAFA",
+ "label": "ك",
+ }
+ "S(FA_TA)": {
+ "key": "FA_MADO",
+ "label": "ٓ",
+ }
+ "S(FA_ZE)": {
+ "key": "FA_JEH",
+ "label": "ژ",
+ }
+ "S(FA_RE)": {
+ "key": "FA_SUPA",
+ "label": "ٰ",
+ }
+ "S(FA_ZAL)": {
+ "key": "FA_ZWNJ",
+ "label": "(zero-width non-joiner)",
+ }
+ "S(FA_DAL)": {
+ "key": "FA_HMZA",
+ "label": "ٔ",
+ }
+ "S(FA_PE)": {
+ "key": "FA_HMZ",
+ "label": "ء",
+ }
+ "S(FA_SLSH)": {
+ "key": "FA_QSA",
+ "label": "؟",
+ }
+/* AltGr symbols
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
+ * │ ~ │ ` │ @ │ # │ $ │ % │ ^ │ & │ • │ │ │ _ │ − │ │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
+ * │ │ ° │ │ € │ │ │ │ │ │ │ │ │ │ │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
+ * │ │ │ │ ى │ │ │ ٱ │ │ ﴾ │ ﴿ │ ; │ " │ ‐ │ │
+ * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
+ * │ │ | │ │ │ │ ٖ │ │ ٕ │ … │ , │ ' │ ? │ │
+ * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
+ * │ │ │ │ │ │ │ │ │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+ */
+ "ALGR(FA_ZWJ)": {
+ "key": "FA_TILD",
+ "label": "~",
+ }
+ "ALGR(FA_1A)": {
+ "key": "FA_GRV",
+ "label": "`",
+ }
+ "ALGR(FA_2A)": {
+ "key": "FA_AT",
+ "label": "@",
+ }
+ "ALGR(FA_3A)": {
+ "key": "FA_HASH",
+ "label": "#",
+ }
+ "ALGR(FA_4A)": {
+ "key": "FA_DLR",
+ "label": "$",
+ }
+ "ALGR(FA_5A)": {
+ "key": "FA_PERC",
+ "label": "%",
+ }
+ "ALGR(FA_6A)": {
+ "key": "FA_CIRC",
+ "label": "^",
+ }
+ "ALGR(FA_7A)": {
+ "key": "FA_AMPR",
+ "label": "&",
+ }
+ "ALGR(FA_8A)": {
+ "key": "FA_BULT",
+ "label": "•",
+ }
+ "ALGR(FA_9A)": {
+ "key": "FA_LRM",
+ "label": "(left-to-right mark)",
+ }
+ "ALGR(FA_0A)": {
+ "key": "FA_RLM",
+ "label": "(right-to-left mark)",
+ }
+ "ALGR(FA_MINS)": {
+ "key": "FA_UNDS",
+ "label": "_",
+ }
+ "ALGR(FA_EQL)": {
+ "key": "FA_DMNS",
+ "label": "− (dead)",
+ }
+ "ALGR(FA_ZAD)": {
+ "key": "FA_DEG",
+ "label": "°",
+ }
+ "ALGR(FA_SE)": {
+ "key": "FA_EURO",
+ "label": "€",
+ }
+ "ALGR(FA_HE)": {
+ "key": "FA_LRO",
+ "label": "(left-to-right override)",
+ }
+ "ALGR(FA_KHE)": {
+ "key": "FA_RLO",
+ "label": "(right-to-left override)",
+ }
+ "ALGR(FA_HEJ)": {
+ "key": "FA_PDF",
+ "label": "(pop directional formatting)",
+ }
+ "ALGR(FA_JIM)": {
+ "key": "FA_LRE",
+ "label": "(left-to-right embedding)",
+ }
+ "ALGR(FA_CHE)": {
+ "key": "FA_RLE",
+ "label": "(right-to-left embedding)",
+ }
+ "ALGR(FA_YE)": {
+ "key": "FA_ALFM",
+ "label": "ى",
+ }
+ "ALGR(FA_ALEF)": {
+ "key": "FA_ALFW",
+ "label": "ٱ",
+ }
+ "ALGR(FA_NOON)": {
+ "key": "FA_LORP",
+ "label": "﴾",
+ }
+ "ALGR(FA_MIM)": {
+ "key": "FA_RORP",
+ "label": "﴿",
+ }
+ "ALGR(FA_KAF)": {
+ "key": "FA_SCLN",
+ "label": ";",
+ }
+ "ALGR(FA_GAF)": {
+ "key": "FA_DQT",
+ "label": "\"",
+ }
+ "ALGR(FA_BSLS)": {
+ "key": "FA_MINA",
+ "label": "-",
+ }
+ "ALGR(FA_ZA)": {
+ "key": "FA_PIPE",
+ "label": "|",
+ }
+ "ALGR(FA_RE)": {
+ "key": "FA_SUBA",
+ "label": "ٖ",
+ }
+ "ALGR(FA_DAL)": {
+ "key": "FA_HMZB",
+ "label": "ء",
+ }
+ "ALGR(FA_PE)": {
+ "key": "FA_ELLP",
+ "label": "…",
+ }
+ "ALGR(FA_WAW)": {
+ "key": "FA_COMM",
+ "label": ",",
+ }
+ "ALGR(FA_DOT)": {
+ "key": "FA_QUOT",
+ "label": "'",
+ }
+ "ALGR(FA_SLSH)": {
+ "key": "FA_QUES",
+ "label": "?",
+ }
+/* Shift+AltGr symbols
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
+ * │ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ │ │ │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
+ * │ │ ¦ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
+ * │ │ │ │ │ │ │ │ │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+ */
+ "S(ALGR(FA_1A))": {
+ "key": "FA_1",
+ "label": "1",
+ }
+ "S(ALGR(FA_2A))": {
+ "key": "FA_2",
+ "label": "2",
+ }
+ "S(ALGR(FA_3A))": {
+ "key": "FA_3",
+ "label": "3",
+ }
+ "S(ALGR(FA_4A))": {
+ "key": "FA_4",
+ "label": "4",
+ }
+ "S(ALGR(FA_5A))": {
+ "key": "FA_5",
+ "label": "5",
+ }
+ "S(ALGR(FA_6A))": {
+ "key": "FA_6",
+ "label": "6",
+ }
+ "S(ALGR(FA_7A))": {
+ "key": "FA_7",
+ "label": "7",
+ }
+ "S(ALGR(FA_8A))": {
+ "key": "FA_8",
+ "label": "8",
+ }
+ "S(ALGR(FA_9A))": {
+ "key": "FA_9",
+ "label": "9",
+ }
+ "S(ALGR(FA_0A))": {
+ "key": "FA_0",
+ "label": "0",
+ }
+ "S(ALGR(FA_LT))": {
+ "key": "FA_BRKP",
+ "label": "¦",
+ }
+ "S(ALGR(FA_SPC))": {
+ "key": "FA_NNBS",
+ "label": "(narrow non-breaking space)",
+ }
+ }
+}
diff --git a/data/constants/keycodes/keycodes_0.0.1_basic.hjson b/data/constants/keycodes/keycodes_0.0.1_basic.hjson
index 430211eccae..66aba7b1fc1 100644
--- a/data/constants/keycodes/keycodes_0.0.1_basic.hjson
+++ b/data/constants/keycodes/keycodes_0.0.1_basic.hjson
@@ -1140,7 +1140,7 @@
"0x00AE": {
"group": "media",
"key": "KC_MEDIA_PLAY_PAUSE",
- "label": "Mute",
+ "label": "Play/Pause Track",
"aliases": [
"KC_MPLY"
]
diff --git a/data/constants/keycodes/keycodes_0.0.1_midi.hjson b/data/constants/keycodes/keycodes_0.0.1_midi.hjson
index b9826f92c96..5ab9ef24d5f 100644
--- a/data/constants/keycodes/keycodes_0.0.1_midi.hjson
+++ b/data/constants/keycodes/keycodes_0.0.1_midi.hjson
@@ -84,7 +84,7 @@
"group": "midi",
"key": "QK_MIDI_NOTE_G_SHARP_0",
"aliases": [
- "MI_Gs"
+ "MI_Gs",
"MI_Ab"
]
},
@@ -99,7 +99,7 @@
"group": "midi",
"key": "QK_MIDI_NOTE_A_SHARP_0",
"aliases": [
- "MI_As"
+ "MI_As",
"MI_Bb"
]
},
diff --git a/data/constants/keycodes/keycodes_0.0.2_kb.hjson b/data/constants/keycodes/keycodes_0.0.2_kb.hjson
index f9ffc7432d3..28c4a8e8be9 100644
--- a/data/constants/keycodes/keycodes_0.0.2_kb.hjson
+++ b/data/constants/keycodes/keycodes_0.0.2_kb.hjson
@@ -2,131 +2,131 @@
"keycodes": {
"0x7E00": {
"group": "kb",
- "key": "QK_KB_0",
+ "key": "QK_KB_0"
},
"0x7E01": {
"group": "kb",
- "key": "QK_KB_1",
+ "key": "QK_KB_1"
},
"0x7E02": {
"group": "kb",
- "key": "QK_KB_2",
+ "key": "QK_KB_2"
},
"0x7E03": {
"group": "kb",
- "key": "QK_KB_3",
+ "key": "QK_KB_3"
},
"0x7E04": {
"group": "kb",
- "key": "QK_KB_4",
+ "key": "QK_KB_4"
},
"0x7E05": {
"group": "kb",
- "key": "QK_KB_5",
+ "key": "QK_KB_5"
},
"0x7E06": {
"group": "kb",
- "key": "QK_KB_6",
+ "key": "QK_KB_6"
},
"0x7E07": {
"group": "kb",
- "key": "QK_KB_7",
+ "key": "QK_KB_7"
},
"0x7E08": {
"group": "kb",
- "key": "QK_KB_8",
+ "key": "QK_KB_8"
},
"0x7E09": {
"group": "kb",
- "key": "QK_KB_9",
+ "key": "QK_KB_9"
},
"0x7E0A": {
"group": "kb",
- "key": "QK_KB_10",
+ "key": "QK_KB_10"
},
"0x7E0B": {
"group": "kb",
- "key": "QK_KB_11",
+ "key": "QK_KB_11"
},
"0x7E0C": {
"group": "kb",
- "key": "QK_KB_12",
+ "key": "QK_KB_12"
},
"0x7E0D": {
"group": "kb",
- "key": "QK_KB_13",
+ "key": "QK_KB_13"
},
"0x7E0E": {
"group": "kb",
- "key": "QK_KB_14",
+ "key": "QK_KB_14"
},
"0x7E0F": {
"group": "kb",
- "key": "QK_KB_15",
+ "key": "QK_KB_15"
},
"0x7E10": {
"group": "kb",
- "key": "QK_KB_16",
+ "key": "QK_KB_16"
},
"0x7E11": {
"group": "kb",
- "key": "QK_KB_17",
+ "key": "QK_KB_17"
},
"0x7E12": {
"group": "kb",
- "key": "QK_KB_18",
+ "key": "QK_KB_18"
},
"0x7E13": {
"group": "kb",
- "key": "QK_KB_19",
+ "key": "QK_KB_19"
},
"0x7E14": {
"group": "kb",
- "key": "QK_KB_20",
+ "key": "QK_KB_20"
},
"0x7E15": {
"group": "kb",
- "key": "QK_KB_21",
+ "key": "QK_KB_21"
},
"0x7E16": {
"group": "kb",
- "key": "QK_KB_22",
+ "key": "QK_KB_22"
},
"0x7E17": {
"group": "kb",
- "key": "QK_KB_23",
+ "key": "QK_KB_23"
},
"0x7E18": {
"group": "kb",
- "key": "QK_KB_24",
+ "key": "QK_KB_24"
},
"0x7E19": {
"group": "kb",
- "key": "QK_KB_25",
+ "key": "QK_KB_25"
},
"0x7E1A": {
"group": "kb",
- "key": "QK_KB_26",
- },
+ "key": "QK_KB_26"
+ },
"0x7E1B": {
"group": "kb",
- "key": "QK_KB_27",
+ "key": "QK_KB_27"
},
"0x7E1C": {
"group": "kb",
- "key": "QK_KB_28",
+ "key": "QK_KB_28"
},
"0x7E1D": {
"group": "kb",
- "key": "QK_KB_29",
+ "key": "QK_KB_29"
},
"0x7E1E": {
"group": "kb",
- "key": "QK_KB_30",
+ "key": "QK_KB_30"
},
"0x7E1F": {
"group": "kb",
- "key": "QK_KB_31",
- },
+ "key": "QK_KB_31"
+ }
}
}
diff --git a/data/constants/keycodes/keycodes_0.0.2_midi.hjson b/data/constants/keycodes/keycodes_0.0.2_midi.hjson
index c15c2dd4336..ddf79be96cd 100644
--- a/data/constants/keycodes/keycodes_0.0.2_midi.hjson
+++ b/data/constants/keycodes/keycodes_0.0.2_midi.hjson
@@ -86,7 +86,7 @@
"group": "midi",
"key": "QK_MIDI_NOTE_G_SHARP_0",
"aliases": [
- "MI_Gs"
+ "MI_Gs",
"MI_Ab"
]
},
@@ -101,7 +101,7 @@
"group": "midi",
"key": "QK_MIDI_NOTE_A_SHARP_0",
"aliases": [
- "MI_As"
+ "MI_As",
"MI_Bb"
]
},
diff --git a/data/constants/keycodes/keycodes_0.0.2_user.hjson b/data/constants/keycodes/keycodes_0.0.2_user.hjson
index 42392dc6493..a30e8e8eed1 100644
--- a/data/constants/keycodes/keycodes_0.0.2_user.hjson
+++ b/data/constants/keycodes/keycodes_0.0.2_user.hjson
@@ -2,131 +2,131 @@
"keycodes": {
"0x7E40": {
"group": "user",
- "key": "QK_USER_0",
+ "key": "QK_USER_0"
},
"0x7E41": {
"group": "user",
- "key": "QK_USER_1",
+ "key": "QK_USER_1"
},
"0x7E42": {
"group": "user",
- "key": "QK_USER_2",
+ "key": "QK_USER_2"
},
"0x7E43": {
"group": "user",
- "key": "QK_USER_3",
+ "key": "QK_USER_3"
},
"0x7E44": {
"group": "user",
- "key": "QK_USER_4",
+ "key": "QK_USER_4"
},
"0x7E45": {
"group": "user",
- "key": "QK_USER_5",
+ "key": "QK_USER_5"
},
"0x7E46": {
"group": "user",
- "key": "QK_USER_6",
+ "key": "QK_USER_6"
},
"0x7E47": {
"group": "user",
- "key": "QK_USER_7",
+ "key": "QK_USER_7"
},
"0x7E48": {
"group": "user",
- "key": "QK_USER_8",
+ "key": "QK_USER_8"
},
"0x7E49": {
"group": "user",
- "key": "QK_USER_9",
+ "key": "QK_USER_9"
},
"0x7E4A": {
"group": "user",
- "key": "QK_USER_10",
+ "key": "QK_USER_10"
},
"0x7E4B": {
"group": "user",
- "key": "QK_USER_11",
+ "key": "QK_USER_11"
},
"0x7E4C": {
"group": "user",
- "key": "QK_USER_12",
+ "key": "QK_USER_12"
},
"0x7E4D": {
"group": "user",
- "key": "QK_USER_13",
+ "key": "QK_USER_13"
},
"0x7E4E": {
"group": "user",
- "key": "QK_USER_14",
+ "key": "QK_USER_14"
},
"0x7E4F": {
"group": "user",
- "key": "QK_USER_15",
+ "key": "QK_USER_15"
},
"0x7E50": {
"group": "user",
- "key": "QK_USER_16",
+ "key": "QK_USER_16"
},
"0x7E51": {
"group": "user",
- "key": "QK_USER_17",
+ "key": "QK_USER_17"
},
"0x7E52": {
"group": "user",
- "key": "QK_USER_18",
+ "key": "QK_USER_18"
},
"0x7E53": {
"group": "user",
- "key": "QK_USER_19",
+ "key": "QK_USER_19"
},
"0x7E54": {
"group": "user",
- "key": "QK_USER_20",
+ "key": "QK_USER_20"
},
"0x7E55": {
"group": "user",
- "key": "QK_USER_21",
+ "key": "QK_USER_21"
},
"0x7E56": {
"group": "user",
- "key": "QK_USER_22",
+ "key": "QK_USER_22"
},
"0x7E57": {
"group": "user",
- "key": "QK_USER_23",
+ "key": "QK_USER_23"
},
"0x7E58": {
"group": "user",
- "key": "QK_USER_24",
+ "key": "QK_USER_24"
},
"0x7E59": {
"group": "user",
- "key": "QK_USER_25",
+ "key": "QK_USER_25"
},
"0x7E5A": {
"group": "user",
- "key": "QK_USER_26",
- },
+ "key": "QK_USER_26"
+ },
"0x7E5B": {
"group": "user",
- "key": "QK_USER_27",
+ "key": "QK_USER_27"
},
"0x7E5C": {
"group": "user",
- "key": "QK_USER_28",
+ "key": "QK_USER_28"
},
"0x7E5D": {
"group": "user",
- "key": "QK_USER_29",
+ "key": "QK_USER_29"
},
"0x7E5E": {
"group": "user",
- "key": "QK_USER_30",
+ "key": "QK_USER_30"
},
"0x7E5F": {
"group": "user",
- "key": "QK_USER_31",
- },
+ "key": "QK_USER_31"
+ }
}
}
diff --git a/keyboards/handwired/pytest/has_template/readme.md b/data/constants/keycodes/keycodes_0.0.5.hjson
similarity index 100%
rename from keyboards/handwired/pytest/has_template/readme.md
rename to data/constants/keycodes/keycodes_0.0.5.hjson
diff --git a/data/constants/keycodes/keycodes_0.0.5_basic.hjson b/data/constants/keycodes/keycodes_0.0.5_basic.hjson
new file mode 100644
index 00000000000..79b6bf6596e
--- /dev/null
+++ b/data/constants/keycodes/keycodes_0.0.5_basic.hjson
@@ -0,0 +1,175 @@
+{
+ "keycodes": {
+ "0x00CD": {
+ "group": "mouse",
+ "key": "QK_MOUSE_CURSOR_UP",
+ "label": "Mouse cursor up",
+ "aliases": [
+ "!reset!",
+ "MS_UP"
+ ]
+ },
+ "0x00CE": {
+ "group": "mouse",
+ "key": "QK_MOUSE_CURSOR_DOWN",
+ "label": "Mouse cursor down",
+ "aliases": [
+ "!reset!",
+ "MS_DOWN"
+ ]
+ },
+ "0x00CF": {
+ "group": "mouse",
+ "key": "QK_MOUSE_CURSOR_LEFT",
+ "label": "Mouse cursor left",
+ "aliases": [
+ "!reset!",
+ "MS_LEFT"
+ ]
+ },
+ "0x00D0": {
+ "group": "mouse",
+ "key": "QK_MOUSE_CURSOR_RIGHT",
+ "label": "Mouse cursor right",
+ "aliases": [
+ "!reset!",
+ "MS_RGHT"
+ ]
+ },
+ "0x00D1": {
+ "group": "mouse",
+ "key": "QK_MOUSE_BUTTON_1",
+ "label": "Mouse button 1",
+ "aliases": [
+ "!reset!",
+ "MS_BTN1"
+ ]
+ },
+ "0x00D2": {
+ "group": "mouse",
+ "key": "QK_MOUSE_BUTTON_2",
+ "label": "Mouse button 2",
+ "aliases": [
+ "!reset!",
+ "MS_BTN2"
+ ]
+ },
+ "0x00D3": {
+ "group": "mouse",
+ "key": "QK_MOUSE_BUTTON_3",
+ "label": "Mouse button 3",
+ "aliases": [
+ "!reset!",
+ "MS_BTN3"
+ ]
+ },
+ "0x00D4": {
+ "group": "mouse",
+ "key": "QK_MOUSE_BUTTON_4",
+ "label": "Mouse button 4",
+ "aliases": [
+ "!reset!",
+ "MS_BTN4"
+ ]
+ },
+ "0x00D5": {
+ "group": "mouse",
+ "key": "QK_MOUSE_BUTTON_5",
+ "label": "Mouse button 5",
+ "aliases": [
+ "!reset!",
+ "MS_BTN5"
+ ]
+ },
+ "0x00D6": {
+ "group": "mouse",
+ "key": "QK_MOUSE_BUTTON_6",
+ "label": "Mouse button 6",
+ "aliases": [
+ "!reset!",
+ "MS_BTN6"
+ ]
+ },
+ "0x00D7": {
+ "group": "mouse",
+ "key": "QK_MOUSE_BUTTON_7",
+ "label": "Mouse button 7",
+ "aliases": [
+ "!reset!",
+ "MS_BTN7"
+ ]
+ },
+ "0x00D8": {
+ "group": "mouse",
+ "key": "QK_MOUSE_BUTTON_8",
+ "label": "Mouse button 8",
+ "aliases": [
+ "!reset!",
+ "MS_BTN8"
+ ]
+ },
+ "0x00D9": {
+ "group": "mouse",
+ "key": "QK_MOUSE_WHEEL_UP",
+ "label": "Mouse wheel up",
+ "aliases": [
+ "!reset!",
+ "MS_WHLU"
+ ]
+ },
+ "0x00DA": {
+ "group": "mouse",
+ "key": "QK_MOUSE_WHEEL_DOWN",
+ "label": "Mouse wheel down",
+ "aliases": [
+ "!reset!",
+ "MS_WHLD"
+ ]
+ },
+ "0x00DB": {
+ "group": "mouse",
+ "key": "QK_MOUSE_WHEEL_LEFT",
+ "label": "Mouse wheel left",
+ "aliases": [
+ "!reset!",
+ "MS_WHLL"
+ ]
+ },
+ "0x00DC": {
+ "group": "mouse",
+ "key": "QK_MOUSE_WHEEL_RIGHT",
+ "label": "Mouse wheel right",
+ "aliases": [
+ "!reset!",
+ "MS_WHLR"
+ ]
+ },
+ "0x00DD": {
+ "group": "mouse",
+ "key": "QK_MOUSE_ACCELERATION_0",
+ "label": "Set mouse acceleration to 0",
+ "aliases": [
+ "!reset!",
+ "MS_ACL0"
+ ]
+ },
+ "0x00DE": {
+ "group": "mouse",
+ "key": "QK_MOUSE_ACCELERATION_1",
+ "label": "Set mouse acceleration to 1",
+ "aliases": [
+ "!reset!",
+ "MS_ACL1"
+ ]
+ },
+ "0x00DF": {
+ "group": "mouse",
+ "key": "QK_MOUSE_ACCELERATION_2",
+ "label": "Set mouse acceleration to 2",
+ "aliases": [
+ "!reset!",
+ "MS_ACL2"
+ ]
+ }
+ }
+}
diff --git a/data/constants/keycodes/keycodes_0.0.6.hjson b/data/constants/keycodes/keycodes_0.0.6.hjson
new file mode 100644
index 00000000000..f03ef747a49
--- /dev/null
+++ b/data/constants/keycodes/keycodes_0.0.6.hjson
@@ -0,0 +1,7 @@
+{
+ "ranges": {
+ "0x52E0/0x001F": {
+ "define": "QK_PERSISTENT_DEF_LAYER"
+ }
+ }
+}
diff --git a/data/constants/keycodes/keycodes_0.0.6_connection.hjson b/data/constants/keycodes/keycodes_0.0.6_connection.hjson
new file mode 100644
index 00000000000..9be11068254
--- /dev/null
+++ b/data/constants/keycodes/keycodes_0.0.6_connection.hjson
@@ -0,0 +1,115 @@
+{
+ "ranges": {
+ "0x7780/0x003F": {
+ "define": "QK_CONNECTION"
+ }
+ }
+ "keycodes": {
+ "0x7780": {
+ "group": "connection",
+ "key": "QK_OUTPUT_AUTO",
+ "aliases": [
+ "OU_AUTO"
+ ]
+ },
+ "0x7781": {
+ "group": "connection",
+ "key": "QK_OUTPUT_NEXT",
+ "aliases": [
+ "OU_NEXT"
+ ]
+ },
+ "0x7782": {
+ "group": "connection",
+ "key": "QK_OUTPUT_PREV",
+ "aliases": [
+ "OU_PREV"
+ ]
+ },
+ "0x7783": {
+ "group": "connection",
+ "key": "QK_OUTPUT_NONE",
+ "aliases": [
+ "OU_NONE"
+ ]
+ },
+ "0x7784": {
+ "group": "connection",
+ "key": "QK_OUTPUT_USB",
+ "aliases": [
+ "OU_USB"
+ ]
+ },
+ "0x7785": {
+ "group": "connection",
+ "key": "QK_OUTPUT_2P4GHZ",
+ "aliases": [
+ "OU_2P4G"
+ ]
+ },
+ "0x7786": {
+ "group": "connection",
+ "key": "QK_OUTPUT_BLUETOOTH",
+ "aliases": [
+ "OU_BT"
+ ]
+ },
+
+ "0x7790": {
+ "group": "connection",
+ "key": "QK_BLUETOOTH_PROFILE_NEXT",
+ "aliases": [
+ "BT_NEXT"
+ ]
+ },
+ "0x7791": {
+ "group": "connection",
+ "key": "QK_BLUETOOTH_PROFILE_PREV",
+ "aliases": [
+ "BT_PREV"
+ ]
+ },
+ "0x7792": {
+ "group": "connection",
+ "key": "QK_BLUETOOTH_UNPAIR",
+ "aliases": [
+ "BT_UNPR"
+ ]
+ }
+ "0x7793": {
+ "group": "connection",
+ "key": "QK_BLUETOOTH_PROFILE1",
+ "aliases": [
+ "BT_PRF1"
+ ]
+ },
+ "0x7794": {
+ "group": "connection",
+ "key": "QK_BLUETOOTH_PROFILE2",
+ "aliases": [
+ "BT_PRF2"
+ ]
+ },
+ "0x7795": {
+ "group": "connection",
+ "key": "QK_BLUETOOTH_PROFILE3",
+ "aliases": [
+ "BT_PRF3"
+ ]
+ },
+ "0x7796": {
+ "group": "connection",
+ "key": "QK_BLUETOOTH_PROFILE4",
+ "aliases": [
+ "BT_PRF4"
+ ]
+ },
+ "0x7797": {
+ "group": "connection",
+ "key": "QK_BLUETOOTH_PROFILE5",
+ "aliases": [
+ "BT_PRF5"
+ ]
+ },
+ }
+}
diff --git a/data/constants/keycodes/keycodes_0.0.6_quantum.hjson b/data/constants/keycodes/keycodes_0.0.6_quantum.hjson
new file mode 100644
index 00000000000..be3285f9e43
--- /dev/null
+++ b/data/constants/keycodes/keycodes_0.0.6_quantum.hjson
@@ -0,0 +1,14 @@
+{
+ "keycodes": {
+ "0x7C20": "!delete!", // old QK_OUTPUT_AUTO
+ "0x7C21": "!delete!", // old QK_OUTPUT_USB
+ "0x7C22": "!delete!", // old QK_OUTPUT_BLUETOOTH
+ "0x7C7B": {
+ "group": "quantum",
+ "key": "QK_LAYER_LOCK",
+ "aliases": [
+ "QK_LLCK"
+ ]
+ }
+ }
+}
diff --git a/data/constants/keycodes/keycodes_0.0.7.hjson b/data/constants/keycodes/keycodes_0.0.7.hjson
new file mode 100644
index 00000000000..52e1a504438
--- /dev/null
+++ b/data/constants/keycodes/keycodes_0.0.7.hjson
@@ -0,0 +1,7 @@
+{
+ "ranges": {
+ "0x77C0/0x003F": {
+ "define": "QK_COMMUNITY_MODULE"
+ }
+ }
+}
diff --git a/data/constants/module_hooks/0.1.0.hjson b/data/constants/module_hooks/0.1.0.hjson
new file mode 100644
index 00000000000..c77f4c297e2
--- /dev/null
+++ b/data/constants/module_hooks/0.1.0.hjson
@@ -0,0 +1,25 @@
+{
+ keyboard_pre_init: {
+ ret_type: void
+ args: void
+ }
+ keyboard_post_init: {
+ ret_type: void
+ args: void
+ }
+ pre_process_record: {
+ ret_type: bool
+ args: uint16_t keycode, keyrecord_t *record
+ call_params: keycode, record
+ }
+ process_record: {
+ ret_type: bool
+ args: uint16_t keycode, keyrecord_t *record
+ call_params: keycode, record
+ }
+ post_process_record: {
+ ret_type: void
+ args: uint16_t keycode, keyrecord_t *record
+ call_params: keycode, record
+ }
+}
diff --git a/data/constants/module_hooks/1.0.0.hjson b/data/constants/module_hooks/1.0.0.hjson
new file mode 100644
index 00000000000..4e7bf304126
--- /dev/null
+++ b/data/constants/module_hooks/1.0.0.hjson
@@ -0,0 +1,26 @@
+{
+ housekeeping_task: {
+ ret_type: void
+ args: void
+ }
+ suspend_power_down: {
+ ret_type: void
+ args: void
+ }
+ suspend_wakeup_init: {
+ ret_type: void
+ args: void
+ }
+ shutdown: {
+ ret_type: bool
+ args: bool jump_to_bootloader
+ call_params: jump_to_bootloader
+ }
+ process_detected_host_os: {
+ ret_type: bool
+ args: os_variant_t os
+ call_params: os
+ guard: defined(OS_DETECTION_ENABLE)
+ header: os_detection.h
+ }
+}
diff --git a/data/mappings/defaults.hjson b/data/mappings/defaults.hjson
index 71902c92d68..32322a03095 100644
--- a/data/mappings/defaults.hjson
+++ b/data/mappings/defaults.hjson
@@ -84,6 +84,11 @@
"board": "STEMCELL",
"bootloader": "tinyuf2",
"processor": "STM32F411"
+ },
+ "svlinky": {
+ "board": "QMK_PM2040",
+ "bootloader": "rp2040",
+ "processor": "RP2040"
}
}
}
diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson
index b61ca040714..b643553b526 100644
--- a/data/mappings/info_config.hjson
+++ b/data/mappings/info_config.hjson
@@ -64,6 +64,9 @@
"WEAR_LEVELING_BACKING_SIZE": {"info_key": "eeprom.wear_leveling.backing_size", "value_type": "int", "to_json": false},
"WEAR_LEVELING_LOGICAL_SIZE": {"info_key": "eeprom.wear_leveling.logical_size", "value_type": "int", "to_json": false},
+ // Layer locking
+ "LAYER_LOCK_IDLE_TIMEOUT": {"info_key": "layer_lock.timeout", "value_type": "int"},
+
// Indicators
"LED_CAPS_LOCK_PIN": {"info_key": "indicators.caps_lock"},
"LED_NUM_LOCK_PIN": {"info_key": "indicators.num_lock"},
@@ -72,6 +75,11 @@
"LED_KANA_PIN": {"info_key": "indicators.kana"},
"LED_PIN_ON_STATE": {"info_key": "indicators.on_state", "value_type": "int"},
+ // Joystick
+ "JOYSTICK_AXIS_COUNT": {"info_key": "joystick.axis_count", "value_type": "int"},
+ "JOYSTICK_AXIS_RESOLUTION": {"info_key": "joystick.axis_resolution", "value_type": "int"},
+ "JOYSTICK_BUTTON_COUNT": {"info_key": "joystick.button_count", "value_type": "int"},
+
// Leader Key
"LEADER_PER_KEY_TIMING": {"info_key": "leader_key.timing", "value_type": "flag"},
"LEADER_KEY_STRICT_KEY_PROCESSING": {"info_key": "leader_key.strict_processing", "value_type": "flag"},
@@ -171,7 +179,7 @@
"SECURE_UNLOCK_TIMEOUT": {"info_key": "secure.unlock_timeout", "value_type": "int"},
// Split Keyboard
- "SOFT_SERIAL_PIN": {"info_key": "split.soft_serial_pin"},
+ "SOFT_SERIAL_PIN": {"info_key": "split.serial.pin"},
"SOFT_SERIAL_SPEED": {"info_key": "split.soft_serial_speed"},
"SPLIT_HAND_MATRIX_GRID": {"info_key": "split.handedness.matrix_grid", "value_type": "array", "to_c": false},
"SPLIT_HAND_PIN": {"info_key": "split.handedness.pin"},
@@ -192,6 +200,7 @@
"SPLIT_WPM_ENABLE": {"info_key": "split.transport.sync.wpm", "value_type": "flag"},
// Tapping
+ "CHORDAL_HOLD": {"info_key": "tapping.chordal_hold", "value_type": "flag"},
"HOLD_ON_OTHER_KEY_PRESS": {"info_key": "tapping.hold_on_other_key_press", "value_type": "flag"},
"HOLD_ON_OTHER_KEY_PRESS_PER_KEY": {"info_key": "tapping.hold_on_other_key_press_per_key", "value_type": "flag"},
"PERMISSIVE_HOLD": {"info_key": "tapping.permissive_hold", "value_type": "flag"},
diff --git a/data/mappings/info_rules.hjson b/data/mappings/info_rules.hjson
index 97611bcf587..00685b5b5f5 100644
--- a/data/mappings/info_rules.hjson
+++ b/data/mappings/info_rules.hjson
@@ -25,6 +25,8 @@
"ENCODER_DRIVER": {"info_key": "encoder.driver"},
"FIRMWARE_FORMAT": {"info_key": "build.firmware_format"},
"HAPTIC_DRIVER": {"info_key": "haptic.driver"},
+ "JOYSTICK_DRIVER": {"info_key": "joystick.driver"},
+ "JOYSTICK_ENABLE": {"info_key": "joystick.enabled", "value_type": "bool"},
"KEYBOARD_SHARED_EP": {"info_key": "usb.shared_endpoint.keyboard", "value_type": "bool"},
"LAYOUTS": {"info_key": "community_layouts", "value_type": "list"},
"LED_MATRIX_DRIVER": {"info_key": "led_matrix.driver"},
@@ -41,6 +43,7 @@
"RGB_MATRIX_DRIVER": {"info_key": "rgb_matrix.driver"},
"RGBLIGHT_DRIVER": {"info_key": "rgblight.driver"},
"SECURE_ENABLE": {"info_key": "secure.enabled", "value_type": "bool"},
+ "SERIAL_DRIVER": {"info_key": "split.serial.driver"},
"SPLIT_KEYBOARD": {"info_key": "split.enabled", "value_type": "bool"},
"SPLIT_TRANSPORT": {"info_key": "split.transport.protocol", "to_c": false},
"STENO_ENABLE": {"info_key": "stenography.enabled", "value_type": "bool"},
@@ -52,5 +55,6 @@
// Items we want flagged in lint
"CTPC": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"},
"CONVERT_TO_PROTON_C": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"},
+ "DEFAULT_FOLDER": {"info_key": "_deprecated.default_folder", "deprecated": true},
"VIAL_ENABLE": {"info_key": "_invalid.vial", "invalid": true}
}
diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson
index 57585aae923..b601a427616 100644
--- a/data/mappings/keyboard_aliases.hjson
+++ b/data/mappings/keyboard_aliases.hjson
@@ -140,6 +140,9 @@
"custommk/genesis": {
"target": "custommk/genesis/rev1"
},
+ "cxt_studio":{
+ "target":"cxt_studio/12e4"
+ },
"daisy": {
"target": "ktec/daisy"
},
@@ -194,6 +197,9 @@
"ergodone": {
"target": "ktec/ergodone"
},
+ "ergodox_stm32": {
+ "target": "handwired/ergodox_stm32"
+ },
"ergoinu": {
"target": "dm9records/ergoinu"
},
@@ -563,6 +569,15 @@
"plain60": {
"target": "evyd13/plain60"
},
+ "planck/ez": {
+ "target": "zsa/planck_ez/base"
+ },
+ "planck/ez/base": {
+ "target": "zsa/planck_ez/base"
+ },
+ "planck/ez/glow": {
+ "target": "zsa/planck_ez/glow"
+ },
"ploopyco/trackball": {
"target": "ploopyco/trackball/rev1_005"
},
@@ -1060,7 +1075,7 @@
"target": "lyso1/lefishe"
},
"lets_split_eh/eh": {
- "target": "maple_computing/lets_split_eh/eh"
+ "target": "maple_computing/lets_split_eh"
},
"ls_60": {
"target": "weirdo/ls_60"
@@ -1080,6 +1095,9 @@
"macro1": {
"target": "laneware/macro1"
},
+ "maple_computing/lets_split_eh/eh": {
+ "target": "maple_computing/lets_split_eh"
+ },
"massdrop/thekey": {
"target": "drop/thekey/v1"
},
@@ -1137,6 +1155,12 @@
"mt980": {
"target": "mt/mt980"
},
+ "mt/ncr80/hotswap": {
+ "target": "mt/ncr80/r2/hotswap"
+ },
+ "mt/ncr80/solder": {
+ "target": "mt/ncr80/r2/solder"
+ },
"nafuda": {
"target": "salicylic_acid3/nafuda"
},
@@ -1347,6 +1371,12 @@
"runner3680/5x8": {
"target": "omkbd/runner3680/5x8"
},
+ "saevus/cor": {
+ "target": "concreteflowers/cor"
+ },
+ "saevus/cor_tkl": {
+ "target": "concreteflowers/cor_tkl"
+ },
"scarletbandana": {
"target": "woodkeys/scarletbandana"
},
@@ -1491,6 +1521,9 @@
"ymd96": {
"target": "ymdk/ymd96"
},
+ "ymdk/id75": {
+ "target": "ymdk/id75/f103"
+ },
"ymdk_np21": {
"target": "ymdk/np21"
},
@@ -1525,5 +1558,690 @@
},
"kprepublic/jj50": {
"target": "kprepublic/jj50/rev1"
+ },
+ "dnworks/9973": {
+ "target": "dnworks/tkl87"
+ },
+ // DEFAULT_FOLDER removed during 2025 Q1 cycle
+ "0_sixty": {
+ "target": "0_sixty/base"
+ },
+ "0xcb/splaytoraid": {
+ "target": "0xcb/splaytoraid/rp2040_ce"
+ },
+ "1upkeyboards/pi40": {
+ "target": "1upkeyboards/pi40/mit_v1_0"
+ },
+ "1upkeyboards/pi50": {
+ "target": "1upkeyboards/pi50/grid"
+ },
+ "1upkeyboards/sweet16": {
+ "target": "1upkeyboards/sweet16/v1"
+ },
+ "25keys/aleth42": {
+ "target": "25keys/aleth42/rev1"
+ },
+ "25keys/zinc": {
+ "target": "25keys/zinc/rev1"
+ },
+ "40percentclub/i75": {
+ "target": "40percentclub/i75/promicro"
+ },
+ "40percentclub/polyandry": {
+ "target": "40percentclub/polyandry/promicro"
+ },
+ "8pack": {
+ "target": "8pack/rev12"
+ },
+ "adkb96": {
+ "target": "adkb96/rev1"
+ },
+ "adm42": {
+ "target": "adm42/rev4"
+ },
+ "aeboards/satellite": {
+ "target": "aeboards/satellite/rev1"
+ },
+ "atreus": {
+ "target": "atreus/astar"
+ },
+ "atreyu": {
+ "target": "atreyu/rev1"
+ },
+ "biacco42/ergo42": {
+ "target": "biacco42/ergo42/rev1"
+ },
+ "binepad/bn009": {
+ "target": "binepad/bn009/r2"
+ },
+ "binepad/bnr1": {
+ "target": "binepad/bnr1/v2"
+ },
+ "boston_meetup": {
+ "target": "boston_meetup/2019"
+ },
+ "bpiphany/frosty_flake": {
+ "target": "bpiphany/frosty_flake/20140521"
+ },
+ "buzzard": {
+ "target": "buzzard/rev1"
+ },
+ "cannonkeys/db60": {
+ "target": "cannonkeys/db60/rev2"
+ },
+ "clickety_split/leeloo": {
+ "target": "clickety_split/leeloo/rev3"
+ },
+ "converter/palm_usb": {
+ "target": "converter/palm_usb/stowaway"
+ },
+ "crkbd": {
+ "target": "crkbd/rev1"
+ },
+ "dailycraft/bat43": {
+ "target": "dailycraft/bat43/rev2"
+ },
+ "dailycraft/claw44": {
+ "target": "dailycraft/claw44/rev1"
+ },
+ "dailycraft/sandbox": {
+ "target": "dailycraft/sandbox/rev2"
+ },
+ "dailycraft/wings42": {
+ "target": "dailycraft/wings42/rev2"
+ },
+ "delikeeb/vanana": {
+ "target": "delikeeb/vanana/rev2"
+ },
+ "delikeeb/waaffle/rev3": {
+ "target": "delikeeb/waaffle/rev3/pro_micro"
+ },
+ "deltasplit75": {
+ "target": "deltasplit75/v2"
+ },
+ "drhigsby/ogurec": {
+ "target": "drhigsby/ogurec/left_pm"
+ },
+ "duck/octagon": {
+ "target": "duck/octagon/v2"
+ },
+ "duck/orion": {
+ "target": "duck/orion/v3"
+ },
+ "ducky/one2mini": {
+ "target": "ducky/one2mini/1861st"
+ },
+ "ducky/one2sf": {
+ "target": "ducky/one2sf/1967st"
+ },
+ "dumbpad": {
+ "target": "dumbpad/v0x"
+ },
+ "durgod/galaxy": {
+ "target": "durgod/dgk6x/galaxy"
+ },
+ "durgod/venus": {
+ "target": "durgod/dgk6x/venus"
+ },
+ "dztech/tofu/ii": {
+ "target": "dztech/tofu/ii/v1"
+ },
+ "dztech/tofu/jr": {
+ "target": "dztech/tofu/jr/v1"
+ },
+ "eco": {
+ "target": "eco/rev2"
+ },
+ "ergoslab": {
+ "target": "ergoslab/rev1"
+ },
+ "ergotravel": {
+ "target": "ergotravel/rev1"
+ },
+ "evyd13/atom47": {
+ "target": "evyd13/atom47/rev4"
+ },
+ "fortitude60": {
+ "target": "fortitude60/rev1"
+ },
+ "fruitykeeb/fruitbar/r1": {
+ "target": "fruitykeeb/fruitbar/r1/promicro"
+ },
+ "ghs/jem": {
+ "target": "ghs/jem/soldered"
+ },
+ "hadron": {
+ "target": "hadron/ver2"
+ },
+ "handwired/bento": {
+ "target": "handwired/bento/rev1"
+ },
+ "handwired/dactyl_manuform/6x6": {
+ "target": "handwired/dactyl_manuform/6x6/promicro"
+ },
+ "handwired/meck_tkl": {
+ "target": "handwired/meck_tkl/blackpill_f401"
+ },
+ "handwired/ms_sculpt_mobile": {
+ "target": "handwired/ms_sculpt_mobile/teensy2pp"
+ },
+ "handwired/onekey": {
+ "target": "handwired/onekey/promicro"
+ },
+ "handwired/pill60": {
+ "target": "handwired/pill60/bluepill"
+ },
+ "handwired/postageboard": {
+ "target": "handwired/postageboard/mini"
+ },
+ "handwired/qc60": {
+ "target": "handwired/qc60/proto"
+ },
+ "handwired/sono1": {
+ "target": "handwired/sono1/t2pp"
+ },
+ "handwired/splittest": {
+ "target": "handwired/splittest/promicro"
+ },
+ "handwired/stef9998/split_5x7": {
+ "target": "handwired/stef9998/split_5x7/rev1"
+ },
+ "handwired/symmetric70_proto/promicro": {
+ "target": "handwired/symmetric70_proto/promicro/base"
+ },
+ "handwired/symmetric70_proto/proton_c": {
+ "target": "handwired/symmetric70_proto/proton_c/base"
+ },
+ "handwired/unk": {
+ "target": "handwired/unk/rev1"
+ },
+ "handwired/xealous": {
+ "target": "handwired/xealous/rev1"
+ },
+ "hillside/46": {
+ "target": "hillside/46/0_1"
+ },
+ "hhkb/ansi": {
+ "target": "hhkb/ansi/32u4"
+ },
+ "hillside/48": {
+ "target": "hillside/48/0_1"
+ },
+ "hillside/52": {
+ "target": "hillside/52/0_1"
+ },
+ "ibnuda/squiggle": {
+ "target": "ibnuda/squiggle/rev1"
+ },
+ "idobao/id80/v1": {
+ "target": "idobao/id80/v2/ansi"
+ },
+ "idobao/id80/v3": {
+ "target": "idobao/id80/v3/ansi"
+ },
+ "inett_studio/sq80": {
+ "target": "inett_studio/sq80/hotswap_layout_i"
+ },
+ "input_club/infinity60": {
+ "target": "input_club/infinity60/led"
+ },
+ "jacky_studio/bear_65": {
+ "target": "jacky_studio/bear_65/rev1"
+ },
+ "jacky_studio/piggy60/rev1": {
+ "target": "jacky_studio/piggy60/rev1/solder"
+ },
+ "jadookb/jkb65": {
+ "target": "jadookb/jkb65/r1"
+ },
+ "jian": {
+ "target": "jian/rev2"
+ },
+ "jiran": {
+ "target": "jiran/rev1"
+ },
+ "jorne": {
+ "target": "jorne/rev1"
+ },
+ "junco": {
+ "target": "junco/rev1"
+ },
+ "kakunpc/angel17": {
+ "target": "kakunpc/angel17/rev1"
+ },
+ "kakunpc/angel64": {
+ "target": "kakunpc/angel64/rev1"
+ },
+ "kakunpc/business_card": {
+ "target": "kakunpc/business_card/beta"
+ },
+ "kakunpc/suihankey": {
+ "target": "kakunpc/suihankey/rev1"
+ },
+ "kakunpc/suihankey/split": {
+ "target": "kakunpc/suihankey/split/rev1"
+ },
+ "kapcave/paladinpad": {
+ "target": "kapcave/paladinpad/rev2"
+ },
+ "kapl": {
+ "target": "kapl/rev1"
+ },
+ "kbdfans/d45": {
+ "target": "kbdfans/d45/v2"
+ },
+ "kbdfans/kbd75": {
+ "target": "kbdfans/kbd75/rev1"
+ },
+ "keebio/bdn9": {
+ "target": "keebio/bdn9/rev1"
+ },
+ "keebio/convolution": {
+ "target": "keebio/convolution/rev1"
+ },
+ "keebio/foldkb": {
+ "target": "keebio/foldkb/rev1"
+ },
+ "keebio/kbo5000": {
+ "target": "keebio/kbo5000/rev1"
+ },
+ "keebio/levinson": {
+ "target": "keebio/levinson/rev2"
+ },
+ "keebio/quefrency": {
+ "target": "keebio/quefrency/rev1"
+ },
+ "keebio/rorschach": {
+ "target": "keebio/rorschach/rev1"
+ },
+ "keebio/sinc": {
+ "target": "keebio/sinc/rev1"
+ },
+ "keebio/viterbi": {
+ "target": "keebio/viterbi/rev2"
+ },
+ "keycapsss/kimiko": {
+ "target": "keycapsss/kimiko/rev2"
+ },
+ "keyhive/navi10": {
+ "target": "keyhive/navi10/rev3"
+ },
+ "keyhive/uno": {
+ "target": "keyhive/uno/rev1"
+ },
+ "kin80": {
+ "target": "kin80/blackpill401"
+ },
+ "kumaokobo/kudox_full": {
+ "target": "kumaokobo/kudox_full/rev1"
+ },
+ "kumaokobo/kudox_game": {
+ "target": "kumaokobo/kudox_game/rev2"
+ },
+ "kumaokobo/kudox": {
+ "target": "kumaokobo/kudox/rev3"
+ },
+ "kumaokobo/pico": {
+ "target": "kumaokobo/pico/65keys"
+ },
+ "lazydesigners/dimple": {
+ "target": "lazydesigners/dimple/staggered/rev1"
+ },
+ "lets_split": {
+ "target": "lets_split/rev2"
+ },
+ "lfkeyboards/lfk87": {
+ "target": "lfkeyboards/lfk78/revc"
+ },
+ "lily58": {
+ "target": "lily58/rev1"
+ },
+ "lime": {
+ "target": "lime/rev1"
+ },
+ "maple_computing/christmas_tree": {
+ "target": "maple_computing/christmas_tree/v2017"
+ },
+ "maple_computing/ivy": {
+ "target": "maple_computing/ivy/rev1"
+ },
+ "maple_computing/launchpad": {
+ "target": "maple_computing/launchpad/rev1"
+ },
+ "maple_computing/minidox": {
+ "target": "maple_computing/minidox/rev1"
+ },
+ "mariorion_v25": {
+ "target": "mariorion_v25/prod"
+ },
+ "marksard/rhymestone": {
+ "target": "marksard/rhymestone/rev1"
+ },
+ "marksard/treadstone32": {
+ "target": "marksard/treadstone32/rev1"
+ },
+ "marksard/treadstone48": {
+ "target": "marksard/treadstone48/rev1"
+ },
+ "maxipad": {
+ "target": "maxipad/promicro"
+ },
+ "mechkeys/mechmini": {
+ "target": "mechkeys/mechmini/v2"
+ },
+ "mechllama/g35": {
+ "target": "mechllama/g35/v2"
+ },
+ "mechlovin/adelais": {
+ "target": "mechlovin/adelais/standard_led/arm/rev2"
+ },
+ "mechlovin/adelais/standard_led/arm/rev4": {
+ "target": "mechlovin/adelais/standard_led/arm/rev4/stm32f303"
+ },
+ "mechlovin/adelais/standard_led/arm": {
+ "target": "mechlovin/adelais/standard_led/arm/rev2"
+ },
+ "mechlovin/adelais/standard_led/avr": {
+ "target": "mechlovin/adelais/standard_led/avr/rev1"
+ },
+ "mechlovin/hannah65/rev1": {
+ "target": "mechlovin/hannah65/rev1/haus"
+ },
+ "mechlovin/infinity87/rev1": {
+ "target": "mechlovin/infinity87/rev1/standard"
+ },
+ "mechlovin/infinity87": {
+ "target": "mechlovin/infinity87/rgb_rev1"
+ },
+ "mechlovin/mechlovin9": {
+ "target": "mechlovin/mechlovin9/rev1"
+ },
+ "mechlovin/olly/jf": {
+ "target": "mechlovin/olly/jf/rev1"
+ },
+ "mechlovin/zed1800": {
+ "target": "mechlovin/zed1800/saber"
+ },
+ "mechlovin/zed65/no_backlight": {
+ "target": "mechlovin/zed65/no_backlight/wearhaus66"
+ },
+ "mechlovin/zed65": {
+ "target": "mechlovin/zed65/no_backlight/wearhaus66"
+ },
+ "mechwild/bde": {
+ "target": "mechwild/bde/rev2"
+ },
+ "mechwild/mokulua": {
+ "target": "mechwild/mokulua/standard"
+ },
+ "mechwild/obe/f401": {
+ "target": "mechwild/obe/f401/base"
+ },
+ "mechwild/obe/f411": {
+ "target": "mechwild/obe/f411/base"
+ },
+ "mechwild/obe": {
+ "target": "mechwild/obe/f401/base"
+ },
+ "mechwild/waka60/f401": {
+ "target": "mechwild/waka60/f401/base"
+ },
+ "mechwild/waka60/f411": {
+ "target": "mechwild/waka60/f411/base"
+ },
+ "mechwild/waka60": {
+ "target": "mechwild/waka60/f401/base"
+ },
+ "murcielago": {
+ "target": "murcielago/rev1"
+ },
+ "nullbitsco/scramble": {
+ "target": "nullbitsco/scramble/v2"
+ },
+ "omkbd/ergodash": {
+ "target": "omkbd/ergodash/rev1"
+ },
+ "omkbd/runner3680": {
+ "target": "omkbd/runner3680/5x8"
+ },
+ "orthodox": {
+ "target": "orthodox/rev3"
+ },
+ "peej/rosaline": {
+ "target": "peej/rosaline/staggered"
+ },
+ "peej/tripel": {
+ "target": "peej/tripel/left"
+ },
+ "peranekofactory/tone": {
+ "target": "peranekofactory/tone/rev2"
+ },
+ "phase_studio/titan65": {
+ "target": "phase_studio/titan65/hotswap"
+ },
+ "pica40": {
+ "target": "pica40/rev2"
+ },
+ "pinky": {
+ "target": "pinky/3"
+ },
+ "ploopyco/madromys": {
+ "target": "ploopyco/madromys/rev1_001"
+ },
+ "ploopyco/trackball_mini": {
+ "target": "ploopyco/trackball_mini/rev1_001"
+ },
+ "ploopyco/trackball_nano": {
+ "target": "ploopyco/trackball_nano/rev1_001"
+ },
+ "ploopyco/trackball_thumb": {
+ "target": "ploopyco/trackball_thumb/rev1_001"
+ },
+ "primekb/meridian": {
+ "target": "primekb/meridian/ktr1010"
+ },
+ "primekb/prime_e": {
+ "target": "primekb/prime_e/std"
+ },
+ "program_yoink": {
+ "target": "program_yoink/staggered"
+ },
+ "projectcain/vault35": {
+ "target": "projectcain/vault35/atmega32u4"
+ },
+ "qpockets/space_space": {
+ "target": "qpockets/space_space/rev2"
+ },
+ "qwertyydox": {
+ "target": "qwertyydox/rev1"
+ },
+ "rate/pistachio": {
+ "target": "rate/pistachio/rev2"
+ },
+ "recompile_keys/choco60": {
+ "target": "recompile_keys/choco60/rev1"
+ },
+ "recompile_keys/nomu30": {
+ "target": "recompile_keys/nomu30/rev1"
+ },
+ "redox/rev1": {
+ "target": "redox/rev1/base"
+ },
+ "rgbkb/mun": {
+ "target": "rgbkb/mun/rev1"
+ },
+ "rgbkb/sol3": {
+ "target": "rgbkb/sol3/rev1"
+ },
+ "rgbkb/sol": {
+ "target": "rgbkb/sol/rev2"
+ },
+ "rgbkb/zen": {
+ "target": "rgbkb/zen/rev2"
+ },
+ "rgbkb/zygomorph": {
+ "target": "rgbkb/zygomorph/rev1"
+ },
+ "rmi_kb/herringbone": {
+ "target": "rmi_kb/herringbone/v1"
+ },
+ "rmi_kb/mona": {
+ "target": "rmi_kb/mona/v1_1"
+ },
+ "rmi_kb/tkl_ff": {
+ "target": "rmi_kb/tkl_ff/v1"
+ },
+ "rmi_kb/wete": {
+ "target": "rmi_kb/wete/v2"
+ },
+ "rookiebwoy/late9": {
+ "target": "rookiebwoy/late9/rev1"
+ },
+ "rookiebwoy/neopad": {
+ "target": "rookiebwoy/neopad/rev1"
+ },
+ "rura66": {
+ "target": "rura66/rev1"
+ },
+ "salicylic_acid3/7skb": {
+ "target": "salicylic_acid3/7skb/rev1"
+ },
+ "salicylic_acid3/getta25": {
+ "target": "salicylic_acid3/getta25/rev1"
+ },
+ "salicylic_acid3/jisplit89": {
+ "target": "salicylic_acid3/jisplit89/rev1"
+ },
+ "salicylic_acid3/naked48": {
+ "target": "salicylic_acid3/naked48/rev1"
+ },
+ "salicylic_acid3/naked60": {
+ "target": "salicylic_acid3/naked60/rev1"
+ },
+ "salicylic_acid3/naked64": {
+ "target": "salicylic_acid3/naked64/rev1"
+ },
+ "salicylic_acid3/setta21": {
+ "target": "salicylic_acid3/setta21/rev1"
+ },
+ "sawnsprojects/okayu": {
+ "target": "sawnsprojects/okayu/stm32f072"
+ },
+ "smoll/lefty": {
+ "target": "smoll/lefty/rev2"
+ },
+ "sofle": {
+ "target": "sofle/rev1"
+ },
+ "spaceholdings/nebula68b": {
+ "target": "spaceholdings/nebula68b/solder"
+ },
+ "spacetime": {
+ "target": "spacetime/rev1"
+ },
+ "splitkb/aurora/corne": {
+ "target": "splitkb/aurora/corne/rev1"
+ },
+ "splitkb/aurora/helix": {
+ "target": "splitkb/aurora/helix/rev1"
+ },
+ "splitkb/aurora/lily58": {
+ "target": "splitkb/aurora/lily58/rev1"
+ },
+ "splitkb/aurora/sofle_v2": {
+ "target": "splitkb/aurora/sofle_v2/rev1"
+ },
+ "splitkb/aurora/sweep": {
+ "target": "splitkb/aurora/sweep/rev1"
+ },
+ "splitkb/kyria": {
+ "target": "splitkb/kyria/rev3"
+ },
+ "splitkb/kyria/rev1": {
+ "target": "splitkb/kyria/rev1/base"
+ },
+ "splitkb/kyria/rev2": {
+ "target": "splitkb/kyria/rev2/base"
+ },
+ "splitty": {
+ "target": "splitty/rev1"
+ },
+ "studiokestra/galatea": {
+ "target": "studiokestra/galatea/rev1"
+ },
+ "takashiski/hecomi": {
+ "target": "takashiski/hecomi/alpha"
+ },
+ "takashiski/namecard2x4": {
+ "target": "takashiski/namecard2x4/rev2"
+ },
+ "teleport/native": {
+ "target": "teleport/native/iso"
+ },
+ "themadnoodle/noodlepad": {
+ "target": "themadnoodle/noodlepad/v1"
+ },
+ "tkw/grandiceps": {
+ "target": "tkw/grandiceps/rev1"
+ },
+ "tominabox1/le_chiffre": {
+ "target": "tominabox1/le_chiffre/rev1"
+ },
+ "tominabox1/littlefoot_lx": {
+ "target": "tominabox1/littlefoot_lx/rev1"
+ },
+ "tominabox1/underscore33": {
+ "target": "tominabox1/underscore33/rev1"
+ },
+ "trnthsn/e8ghty": {
+ "target": "trnthsn/e8ghty/stm32f103"
+ },
+ "trnthsn/s6xty5neor2": {
+ "target": "trnthsn/s6xty5neor2/stm32f103"
+ },
+ "tweetydabird/lotus58": {
+ "target": "tweetydabird/lotus58/promicro"
+ },
+ "unison": {
+ "target": "unison/v04"
+ },
+ "uzu42": {
+ "target": "uzu42/rev1"
+ },
+ "vitamins_included": {
+ "target": "vitamins_included/rev2"
+ },
+ "westm/westm68": {
+ "target": "westm/westm68/rev2"
+ },
+ "westm/westm9": {
+ "target": "westm/westm9/rev2"
+ },
+ "woodkeys/meira": {
+ "target": "woodkeys/meira/promicro"
+ },
+ "work_louder/loop": {
+ "target": "work_louder/loop/rev3"
+ },
+ "work_louder/work_board": {
+ "target": "work_louder/work_board/rev3"
+ },
+ "yanghu/unicorne": {
+ "target": "yanghu/unicorne/f411"
+ },
+ "yosino58": {
+ "target": "yosino58/rev1"
+ },
+ "ymdk/yd60mq": {
+ "target": "ymdk/yd60mq/12led"
+ },
+ "yushakobo/navpad/10": {
+ "target": "yushakobo/navpad/10/rev1"
+ },
+ "yynmt/acperience12": {
+ "target": "yynmt/acperience12/rev1"
+ },
+ "zsa/planck_ez": {
+ "target": "zsa/planck_ez/base"
}
}
diff --git a/data/schemas/community_module.jsonschema b/data/schemas/community_module.jsonschema
new file mode 100644
index 00000000000..3cdb6d6a422
--- /dev/null
+++ b/data/schemas/community_module.jsonschema
@@ -0,0 +1,17 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema#",
+ "$id": "qmk.community_module.v1",
+ "title": "Community Module Information",
+ "type": "object",
+ "required": ["module_name", "maintainer"],
+ "properties": {
+ "module_name": {"$ref": "qmk.definitions.v1#/text_identifier"},
+ "maintainer": {"$ref": "qmk.definitions.v1#/text_identifier"},
+ "url": {
+ "type": "string",
+ "format": "uri"
+ },
+ "keycodes": {"$ref": "qmk.definitions.v1#/keycode_decl_array"},
+ "features": {"$ref": "qmk.keyboard.v1#/definitions/features_config"}
+ }
+}
diff --git a/data/schemas/false.jsonschema b/data/schemas/false.jsonschema
deleted file mode 100644
index c508d5366f7..00000000000
--- a/data/schemas/false.jsonschema
+++ /dev/null
@@ -1 +0,0 @@
-false
diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema
index e5802fe07dd..92a17e1ef89 100644
--- a/data/schemas/keyboard.jsonschema
+++ b/data/schemas/keyboard.jsonschema
@@ -30,6 +30,11 @@
"properties": {
"pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
}
+ },
+ "features_config": {
+ "$ref": "qmk.definitions.v1#/boolean_array",
+ "propertyNames": {"$ref": "qmk.definitions.v1#/snake_case"},
+ "not": {"required": ["lto"]}
}
},
"type": "object",
@@ -45,7 +50,7 @@
},
"development_board": {
"type": "string",
- "enum": ["promicro", "elite_c", "elite_pi", "proton_c", "kb2040", "promicro_rp2040", "blok", "michi", "bit_c_pro", "stemcell", "bluepill", "blackpill_f401", "blackpill_f411", "bonsai_c4", "helios", "liatris", "imera"]
+ "enum": ["promicro", "elite_c", "elite_pi", "proton_c", "kb2040", "promicro_rp2040", "blok", "michi", "bit_c_pro", "stemcell", "bluepill", "blackpill_f401", "blackpill_f411", "bonsai_c4", "helios", "liatris", "imera", "svlinky"]
},
"pin_compatible": {
"type": "string",
@@ -92,6 +97,7 @@
"GD32VF103",
"WB32F3G71",
"WB32FQ95",
+ "AT32F415",
"atmega16u2",
"atmega32u2",
"atmega16u4",
@@ -216,6 +222,7 @@
"type": "string",
"enum": [
"apm32-dfu",
+ "at32-dfu",
"atmel-dfu",
"bootloadhid",
"caterina",
@@ -326,11 +333,7 @@
"enabled": {"type": "boolean"}
}
},
- "features": {
- "$ref": "qmk.definitions.v1#/boolean_array",
- "propertyNames": {"$ref": "qmk.definitions.v1#/snake_case"},
- "not": {"required": ["lto"]}
- },
+ "features": { "$ref": "#/definitions/features_config" },
"indicators": {
"type": "object",
"properties": {
@@ -342,7 +345,43 @@
"on_state": {"$ref": "qmk.definitions.v1#/bit"}
}
},
+ "joystick": {
+ "type": "object",
+ "properties": {
+ "enabled": {"type": "boolean"},
+ "driver": {"type": "string"},
+ "button_count": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "axis_resolution": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "axes": {
+ "type": "object",
+ "propertyNames": {"enum": ["x", "y", "z", "rx", "ry", "rz"]},
+ "additionalProperties": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "input_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
+ "low": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "rest": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "high": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ }
+ },
+ {
+ "type": "string",
+ "enum": ["virtual"]
+ }
+ ]
+ }
+ }
+ }
+ },
"keycodes": {"$ref": "qmk.definitions.v1#/keycode_decl_array"},
+ "layer_lock": {
+ "type": "object",
+ "properties": {
+ "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ }
+ },
"layout_aliases": {
"type": "object",
"additionalProperties": {"$ref": "qmk.definitions.v1#/layout_macro"}
@@ -384,7 +423,11 @@
"h": {"$ref": "qmk.definitions.v1#/key_unit"},
"w": {"$ref": "qmk.definitions.v1#/key_unit"},
"x": {"$ref": "qmk.definitions.v1#/key_unit"},
- "y": {"$ref": "qmk.definitions.v1#/key_unit"}
+ "y": {"$ref": "qmk.definitions.v1#/key_unit"},
+ "hand": {
+ "type": "string",
+ "enum": ["L", "R", "*"]
+ }
}
}
}
@@ -425,6 +468,12 @@
"rows": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
}
},
+ "modules": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
"mouse_key": {
"type": "object",
"properties": {
@@ -793,12 +842,26 @@
}
}
},
- "soft_serial_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
+ "soft_serial_pin": {
+ "$ref": "qmk.definitions.v1#/mcu_pin",
+ "$comment": "Deprecated: use split.serial.pin instead"
+ },
"soft_serial_speed": {
"type": "integer",
"minimum": 0,
"maximum": 5
},
+ "serial": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "driver": {
+ "type": "string",
+ "enum": ["bitbang", "usart", "vendor"]
+ },
+ "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}
+ }
+ },
"transport": {
"type": "object",
"additionalProperties": false,
@@ -863,6 +926,7 @@
"tapping": {
"type": "object",
"properties": {
+ "chordal_hold": {"type": "boolean"},
"force_hold": {"type": "boolean"},
"force_hold_per_key": {"type": "boolean"},
"ignore_mod_tap_interrupt": {"type": "boolean"},
diff --git a/data/schemas/keymap.jsonschema b/data/schemas/keymap.jsonschema
index 7233e896e94..b92a536c2c8 100644
--- a/data/schemas/keymap.jsonschema
+++ b/data/schemas/keymap.jsonschema
@@ -71,11 +71,12 @@
"config": {"$ref": "qmk.keyboard.v1"},
"notes": {
"type": "string"
+ },
+ "modules": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
}
- },
- "required": [
- "keyboard",
- "layout",
- "layers"
- ]
+ }
}
diff --git a/data/schemas/true.jsonschema b/data/schemas/true.jsonschema
deleted file mode 100644
index 27ba77ddaf6..00000000000
--- a/data/schemas/true.jsonschema
+++ /dev/null
@@ -1 +0,0 @@
-true
diff --git a/data/schemas/user_repo_v0.jsonschema b/data/schemas/user_repo_v0.jsonschema
index b18ac504284..58d955abe27 100644
--- a/data/schemas/user_repo_v0.jsonschema
+++ b/data/schemas/user_repo_v0.jsonschema
@@ -8,7 +8,7 @@
],
"properties": {
"userspace_version": {
- "type": "string",
- },
+ "type": "string"
+ }
}
}
diff --git a/data/schemas/user_repo_v1.jsonschema b/data/schemas/user_repo_v1.jsonschema
index 69a59bce007..88b50e8a726 100644
--- a/data/schemas/user_repo_v1.jsonschema
+++ b/data/schemas/user_repo_v1.jsonschema
@@ -9,7 +9,7 @@
{"$ref": "qmk.definitions.v1#/keyboard_keymap_tuple"},
{"$ref": "qmk.definitions.v1#/json_file_path"}
]
- },
+ }
},
"required": [
"userspace_version",
diff --git a/data/schemas/user_repo_v1_1.jsonschema b/data/schemas/user_repo_v1_1.jsonschema
index 5a7ccce0633..173d8d26d63 100644
--- a/data/schemas/user_repo_v1_1.jsonschema
+++ b/data/schemas/user_repo_v1_1.jsonschema
@@ -10,7 +10,7 @@
{"$ref": "qmk.definitions.v1#/keyboard_keymap_env"},
{"$ref": "qmk.definitions.v1#/json_file_path"}
]
- },
+ }
},
"required": [
"userspace_version",
diff --git a/docs/ChangeLog/20240825.md b/docs/ChangeLog/20240825.md
new file mode 100644
index 00000000000..943347cebcc
--- /dev/null
+++ b/docs/ChangeLog/20240825.md
@@ -0,0 +1,198 @@
+# QMK Breaking Changes - 2024 August 25 Changelog
+
+## Notable Features
+
+August 2024 brings another maintenance release of QMK. Almost all PRs this cycle were to do with cleanup or re-organization of existing features and code.
+
+One key item is that there are no longer any `via`-enabled keymaps in the QMK repository -- these have all transitioned to an [External Userspace](../newbs_external_userspace) repository under the VIA team's control. Going forward, all PRs to `qmk_firmware` must not contain `via` keymaps; these should instead be redirected to the [VIA QMK Userspace](https://github.com/the-via/qmk_userspace_via) repository.
+
+## Changes Requiring User Action
+
+### Updated Keyboard Codebases
+
+One note with updated keyboard names -- historical keyboard names are still considered valid when using [External Userspace](../newbs_external_userspace) for builds. If you're already using External Userspace, you do not need to move your keymap inside your repository.
+
+| Old Keyboard Name | New Keyboard Name |
+|----------------------------------|-------------------------------|
+| dnworks/9973 | dnworks/tkl87 |
+| maple_computing/lets_split_eh/eh | maple_computing/lets_split_eh |
+| planck/ez/base | zsa/planck_ez/base |
+
+### SparkFun Pro Micro RP2040 converter renamed ([#24192](https://github.com/qmk/qmk_firmware/pull/24192))
+
+The converter for the SparkFun Pro Micro RP2040 has been renamed.
+
+| Old | New |
+|-------------------|-------------------|
+| `promicro_rp2040` | `sparkfun_rp2040` |
+
+This change was made to avoid confusion between the clones named ProMicro RP2040 and the SparkFun Pro Micro RP2040. The clones should be using the `rp2040_ce` option.
+
+### Key Override `keymap.c` signature change ([#24120](https://github.com/qmk/qmk_firmware/pull/24120))
+
+Changes were made to key overrides in order to hook them into the keymap introspection system.
+
+If you're using key overrides, your `keymap.c` will need a change to the signature of your list of key overrides, as well as removing the `NULL` terminator.
+
+For example, you'll need to change existing code from (note the highlighted lines):
+
+```c{1,4-5}
+const key_override_t **key_overrides = (const key_override_t *[]){
+ &my_override_1,
+ &my_override_2,
+ NULL
+};
+```
+
+to:
+
+```c{1,4}
+const key_override_t *key_overrides[] = {
+ &my_override_1,
+ &my_override_2,
+};
+```
+
+### ADNS9800 and PMW33xx firmware upload now opt-in ([#24001](https://github.com/qmk/qmk_firmware/pull/24001))
+
+Due to ambiguity with licensing compatibility, QMK has made the firmware ROM uploads for the ADNS9800 and PMW33xx lines of pointing device sensors temporarily opt-in with the view to removing them. Historically they were included by default, but as of this PR this is now no longer the case.
+
+Please get in touch with the QMK team if your sensor no longer functions without the firmware upload -- so far we've tested each device type and they still seem to function without a new firmware, but this has not been a 100% exhaustive validation.
+
+To re-enable firmware upload for your own builds, add the following to your keymap's `config.h`:
+
+| Sensor | Define |
+|----------|--------------------------------|
+| ADNS9800 | `#define ADNS9800_UPLOAD_SROM` |
+| PMW33xx | `#define PMW33XX_UPLOAD_SROM` |
+
+:::info Note
+If no issues arise during this current breaking changes cycle, these sensor firmware ROMs will be removed from QMK entirely.
+:::
+
+## Deprecation Notices
+
+In line with the [notice period](../support_deprecation_policy#how-much-advance-notice-will-be-given), deprecation notices for larger items are listed here.
+
+### Migration of VIA keymaps to VIA team control
+
+Last breaking changes cycle, the QMK team informed that [`via` keymaps are moving](./20240526#migration-of-via-keymaps-to-via-team-control) to the control of the VIA team. As of this merge, any `via`-enabled keymaps should now be PR'ed to the [VIA QMK Userspace](https://github.com/the-via/qmk_userspace_via) repository.
+
+Any existing or newly-opened PRs against `qmk_firmware` will now be asked to remove any `via`-enabled keymaps from their submissions.
+
+### ADNS9800 and PMW33xx sensor firmware ROM removal
+
+As mentioned above, there's license compatibility issues between QMK and the firmware blobs historically uploaded for the ADNS9800 and PMW33xx sensors. This notice is to inform users that these firmware blobs will almost certainly be removed from QMK in the next breaking changes merge.
+
+As previously noted this does not seem to have any detrimental effect to any of those devices, as they seem to include firmware on-chip without requiring one to be uploaded. Please get in touch with the QMK team on Discord if your sensor is no longer functional.
+
+## Full changelist
+
+Core:
+* EEPROM: Don't erase if we don't have to. Adding eeprom_driver_format abstraction. ([#18332](https://github.com/qmk/qmk_firmware/pull/18332))
+* Generate keymap dd keycodes to header ([#20273](https://github.com/qmk/qmk_firmware/pull/20273))
+* [wear_leveling] efl updates ([#22489](https://github.com/qmk/qmk_firmware/pull/22489))
+* GC9xxx LCD family drivers (GC9107 and GC9A01) ([#23091](https://github.com/qmk/qmk_firmware/pull/23091))
+* [build_test] set CONSOLE_ENABLE=yes if DEBUG > 0 ([#23097](https://github.com/qmk/qmk_firmware/pull/23097))
+* Enhance overlapping mouse keys control ([#23341](https://github.com/qmk/qmk_firmware/pull/23341))
+* APA102: API rework ([#23355](https://github.com/qmk/qmk_firmware/pull/23355))
+* [WIP] Adds bus acquire/release semantics to SPI start/stop. ([#23439](https://github.com/qmk/qmk_firmware/pull/23439))
+* add farsi keymap extras ([#23650](https://github.com/qmk/qmk_firmware/pull/23650))
+* Update atomic GPIO macros in keyboard custom matrix ([#23796](https://github.com/qmk/qmk_firmware/pull/23796))
+* Check LED flags for Pixel Fractal effect ([#23881](https://github.com/qmk/qmk_firmware/pull/23881))
+* Add STM32F405RG ld script for tinyuf2 ([#23885](https://github.com/qmk/qmk_firmware/pull/23885))
+* SPI flash API cleanup, add async erase capability. ([#23894](https://github.com/qmk/qmk_firmware/pull/23894))
+* Add process_keycode handlers for new RGB Matrix and Underglow keycodes ([#23896](https://github.com/qmk/qmk_firmware/pull/23896))
+* Decouple VIA from STM32 L0/L1 EEPROM implementation ([#23901](https://github.com/qmk/qmk_firmware/pull/23901))
+* Normalise mouse keycodes ([#23975](https://github.com/qmk/qmk_firmware/pull/23975))
+* Remove deprecated `led_set_user` ([#23979](https://github.com/qmk/qmk_firmware/pull/23979))
+* Change ADNS9800 and PMW33XX SROM uploads to opt in. ([#24001](https://github.com/qmk/qmk_firmware/pull/24001))
+* Rename encoder pins defines ([#24003](https://github.com/qmk/qmk_firmware/pull/24003))
+* Change suspend condition check order on ChibiOS ([#24020](https://github.com/qmk/qmk_firmware/pull/24020))
+* Tap dance introspection ([#24049](https://github.com/qmk/qmk_firmware/pull/24049))
+* Allow overriding `get_hardware_id()`. ([#24051](https://github.com/qmk/qmk_firmware/pull/24051))
+* Align LUFA suspend logic ([#24055](https://github.com/qmk/qmk_firmware/pull/24055))
+* Add support for key override introspection. ([#24120](https://github.com/qmk/qmk_firmware/pull/24120))
+* Dynamic macro callbacks ([#24142](https://github.com/qmk/qmk_firmware/pull/24142))
+* Rename promicro_rp2040 converter to sparkfun_pm2040 ([#24192](https://github.com/qmk/qmk_firmware/pull/24192))
+* Refactor starlight RGB matrix effects ([#24202](https://github.com/qmk/qmk_firmware/pull/24202))
+* Refactor riverflow RGB matrix loop ([#24203](https://github.com/qmk/qmk_firmware/pull/24203))
+
+CLI:
+* Remove handling of keyboard level keymap templates ([#24234](https://github.com/qmk/qmk_firmware/pull/24234))
+* Small tweaks to keymap generation ([#24240](https://github.com/qmk/qmk_firmware/pull/24240))
+
+Keyboards:
+* refactor: keyboard/ncr80/r2 ([#22670](https://github.com/qmk/qmk_firmware/pull/22670))
+* Implement data driven joysticks ([#22947](https://github.com/qmk/qmk_firmware/pull/22947))
+* Whitefacemountain Ampersand ([#23437](https://github.com/qmk/qmk_firmware/pull/23437))
+* Add TRKeyboard TRK1 keyboard ([#23642](https://github.com/qmk/qmk_firmware/pull/23642))
+* Rename dnworks/9973 to dnworks/tkl87 ([#23692](https://github.com/qmk/qmk_firmware/pull/23692))
+* Update Underglow keycodes ([#23765](https://github.com/qmk/qmk_firmware/pull/23765))
+* Add boardsource/the_q ([#23782](https://github.com/qmk/qmk_firmware/pull/23782))
+* BastardKB: remove legacy board `tbk` ([#23818](https://github.com/qmk/qmk_firmware/pull/23818))
+* Update ZSA Moonlander ([#23911](https://github.com/qmk/qmk_firmware/pull/23911))
+* Move Planck EZ to ZSA vendor folder ([#23917](https://github.com/qmk/qmk_firmware/pull/23917))
+* Migrate SPLIT_HAND_PIN to json ([#23924](https://github.com/qmk/qmk_firmware/pull/23924))
+* Migrate SERIAL_DRIVER to json ([#23925](https://github.com/qmk/qmk_firmware/pull/23925))
+* Migrate RGB Matrix layout for two boards ([#23963](https://github.com/qmk/qmk_firmware/pull/23963))
+* Migrate `led_update_kb` implementations to DD ([#23980](https://github.com/qmk/qmk_firmware/pull/23980))
+* Migrate `led_update_kb` implementations to DD ([#23981](https://github.com/qmk/qmk_firmware/pull/23981))
+* Migrate `led_update_kb` implementations to DD ([#23983](https://github.com/qmk/qmk_firmware/pull/23983))
+* Migrate `led_update_kb` implementations to DD ([#23985](https://github.com/qmk/qmk_firmware/pull/23985))
+* Relocate m256wh VIA logic ([#24006](https://github.com/qmk/qmk_firmware/pull/24006))
+* Relocate winry315 VIA logic ([#24008](https://github.com/qmk/qmk_firmware/pull/24008))
+* Relocate m256ws VIA logic ([#24009](https://github.com/qmk/qmk_firmware/pull/24009))
+* `atreus`: misc cleanups ([#24010](https://github.com/qmk/qmk_firmware/pull/24010))
+* Relocate work_louder VIA logic ([#24011](https://github.com/qmk/qmk_firmware/pull/24011))
+* Relocate xelus/pachi/rgb/rev2 VIA logic ([#24016](https://github.com/qmk/qmk_firmware/pull/24016))
+* Remove custom keycodes from nullbitsco/snap ([#24017](https://github.com/qmk/qmk_firmware/pull/24017))
+* added bear_face/v3 ([#24032](https://github.com/qmk/qmk_firmware/pull/24032))
+* Remove DEFAULT_FOLDER from maple_computing/lets_split_eh ([#24054](https://github.com/qmk/qmk_firmware/pull/24054))
+* refactor bear_face/v1, v2 ([#24060](https://github.com/qmk/qmk_firmware/pull/24060))
+* Convert `eeconfig_init_kb` implementations to config ([#24087](https://github.com/qmk/qmk_firmware/pull/24087))
+* Remove broken keymap from keebio/iris ([#24094](https://github.com/qmk/qmk_firmware/pull/24094))
+* Move LED Matrix LED config to data driven ([#24122](https://github.com/qmk/qmk_firmware/pull/24122))
+* Move split.soft_serial_pin to split.serial.pin ([#24127](https://github.com/qmk/qmk_firmware/pull/24127))
+* Remove pointless `RGB_MATRIX_LED_COUNT`s ([#24133](https://github.com/qmk/qmk_firmware/pull/24133))
+* `hs60/v1`: separate into ANSI and ISO revisions ([#24136](https://github.com/qmk/qmk_firmware/pull/24136))
+* Migrate half-duplex `SERIAL_USART_TX_PIN` to DD ([#24143](https://github.com/qmk/qmk_firmware/pull/24143))
+* Migrate split.soft_serial_pin to split.serial.pin O-Z ([#24146](https://github.com/qmk/qmk_firmware/pull/24146))
+* Migrate split.soft_serial_pin to split.serial.pin 0-H ([#24155](https://github.com/qmk/qmk_firmware/pull/24155))
+* Remove instances of MASTER_LEFT. ([#24163](https://github.com/qmk/qmk_firmware/pull/24163))
+* Rename EC Type-K ([#24180](https://github.com/qmk/qmk_firmware/pull/24180))
+* Migrate split.soft_serial_pin to split.serial.pin H-O ([#24185](https://github.com/qmk/qmk_firmware/pull/24185))
+* Remove split.transport.protocol=serial ([#24191](https://github.com/qmk/qmk_firmware/pull/24191))
+* Refactor use of `matrix_scan_kb` ([#24200](https://github.com/qmk/qmk_firmware/pull/24200))
+* Eliminate use of `#include "../default/keymap.c"`. ([#24215](https://github.com/qmk/qmk_firmware/pull/24215))
+* Remove keyboard level `QK_BOOT` implementations ([#24231](https://github.com/qmk/qmk_firmware/pull/24231))
+* Remove `handwired/pytest/has_template` ([#24232](https://github.com/qmk/qmk_firmware/pull/24232))
+* Refactor opendeck/32 ([#24233](https://github.com/qmk/qmk_firmware/pull/24233))
+* Refactor printedpad ([#24236](https://github.com/qmk/qmk_firmware/pull/24236))
+* Refactor orthocode ([#24237](https://github.com/qmk/qmk_firmware/pull/24237))
+* Remove unnecessary RGB Matrix shutdown hooks ([#24238](https://github.com/qmk/qmk_firmware/pull/24238))
+* Remove all via-enabled keymaps, including `via`. ([#24322](https://github.com/qmk/qmk_firmware/pull/24322))
+
+Keyboard fixes:
+* Fix dogtag/info.json ([#23520](https://github.com/qmk/qmk_firmware/pull/23520))
+* splitkb/kyria: remove `CONVERT_TO` at keyboard level ([#23857](https://github.com/qmk/qmk_firmware/pull/23857))
+* Fixup mt/mt84 ([#23883](https://github.com/qmk/qmk_firmware/pull/23883))
+* Fix for encoders and support ENCODER_MAP_ENABLE on Planck rev7 ([#23967](https://github.com/qmk/qmk_firmware/pull/23967))
+* `handwired/swiftrax/bumblebee`: fix layout name ([#24064](https://github.com/qmk/qmk_firmware/pull/24064))
+* Fixup boardsource/the_q RGB matrix coordinates ([#24086](https://github.com/qmk/qmk_firmware/pull/24086))
+* Various fixes for keyboards not implementing callbacks correctly ([#24092](https://github.com/qmk/qmk_firmware/pull/24092))
+* Various fixes for keyboards not implementing callbacks correctly ([#24116](https://github.com/qmk/qmk_firmware/pull/24116))
+* Remove duplicate calls to `housekeeping_task_user` ([#24201](https://github.com/qmk/qmk_firmware/pull/24201))
+* Fixup `handwired/dactyl_minidox` ([#24253](https://github.com/qmk/qmk_firmware/pull/24253))
+* Fix build failure on zsa/moonlander with DYNAMIC_MACRO_ENABLE ([#24316](https://github.com/qmk/qmk_firmware/pull/24316))
+
+Others:
+* LED drivers: extract documentation from LED/RGB Matrix pages ([#23630](https://github.com/qmk/qmk_firmware/pull/23630))
+* Implement data driven serial driver ([#23923](https://github.com/qmk/qmk_firmware/pull/23923))
+* Remove skipped schema files ([#23987](https://github.com/qmk/qmk_firmware/pull/23987))
+* Update RGBLight (Underglow) keycode names ([#23999](https://github.com/qmk/qmk_firmware/pull/23999))
+
+Bugs:
+* Fix NKRO and Mouse Emulation on arm_atsam ([#23945](https://github.com/qmk/qmk_firmware/pull/23945))
+* Force `dump_lines()` to always use Unix line endings ([#23954](https://github.com/qmk/qmk_firmware/pull/23954))
+* Fixup home link. ([#24068](https://github.com/qmk/qmk_firmware/pull/24068))
diff --git a/docs/ChangeLog/20241124.md b/docs/ChangeLog/20241124.md
new file mode 100644
index 00000000000..f18c5d981ef
--- /dev/null
+++ b/docs/ChangeLog/20241124.md
@@ -0,0 +1,122 @@
+# QMK Breaking Changes - 2024 November 24 Changelog
+
+## Notable Features
+
+November 2024 brings a relatively lightweight QMK release. As with previous cycles, almost all PRs were related to cleanup or re-organization of aspects of QMK.
+
+One notable item is the removal of `arm_atsam` -- this affects users with `massdrop/ctrl` or `massdrop/alt` keyboards. These have no current replacement, but support for an alternative to the `arm_atsam` backend is nearing completion. Unfortunately the alternative backend didn't make this quarter's list of merges, so there's a temporary removal of these boards. Users who need to build for these targets should stay on the `0.26.x` version of QMK until these boards have been restored.
+
+## Changes Requiring User Action
+
+### Updated Keyboard Codebases
+
+One note with updated keyboard names -- historical keyboard names are still considered valid when using [External Userspace](../newbs_external_userspace) for builds. If you're already using External Userspace, you do not need to move your keymap inside your repository.
+
+| Old Keyboard Name | New Keyboard Name |
+|-------------------|-------------------------|
+| saevus/cor | concreteflowers/cor |
+| saevus/cor_tkl | concreteflowers/cor_tkl |
+
+## Deprecation Notices
+
+In line with the [notice period](../support_deprecation_policy#how-much-advance-notice-will-be-given), deprecation notices for larger items are listed here.
+
+### RGB Keycode Overhaul ([#23679](https://github.com/qmk/qmk_firmware/pull/23679), [#24484](https://github.com/qmk/qmk_firmware/pull/24484), [#24490](https://github.com/qmk/qmk_firmware/pull/24490))
+
+RGB keycodes have been reworked to allow for both rgblight and rgb_matrix to coexist for the handful of boards in the repo with both enabled. Previously, `RGB_xxx` style keycodes were available, but now for rgblight we have `UG_xxx` (underglow), and `RM_xxx` for rgb_matrix. Default keymaps have been updated to reflect whichever system the respective board enables.
+
+Longer-term, `RGB_xxx` style keycodes will be removed, but for now they act as if they're `UG_xxx`, and `UG_xxx` keycodes act upon both rgblight and rgb_matrix simultaneously. Put simply, the existing `RGB_xxx` keycodes act as they always have, giving users time to transition across to the new keycodes instead.
+
+### ADNS9800 and PMW33xx sensor firmware ROM removal ([#24428](https://github.com/qmk/qmk_firmware/pull/24428))
+
+Following on from the last Breaking Changes cycle, Binary blobs for optical sensors have been removed from the QMK codebase. Hooks allowing users to supply their own have been put in place; users wishing to source firmware blobs and integrate them into their keymap may do so. Doing so renders their firmware un-distributable due to licensing incompatibility with the GPL -- as such user firmware containing such blobs must not be distributed.
+
+Please get in touch with the QMK team on Discord if your sensor is no longer functional.
+
+## Full changelist
+
+Core:
+* Refactor F4 ld files to use common files ([#18059](https://github.com/qmk/qmk_firmware/pull/18059))
+* Add LD7032 support to QP. ([#20828](https://github.com/qmk/qmk_firmware/pull/20828))
+* Add combo key repress feature ([#22858](https://github.com/qmk/qmk_firmware/pull/22858))
+* Add Layer Lock feature ([#23430](https://github.com/qmk/qmk_firmware/pull/23430))
+* Added MCU support for ArteryTek AT32F415 ([#23445](https://github.com/qmk/qmk_firmware/pull/23445))
+* Allow codegen of `keymap.json` => `keymap.c` without requiring layers/layout etc. ([#23451](https://github.com/qmk/qmk_firmware/pull/23451))
+* Separate RGBLight/RGB Matrix keycode handling ([#23679](https://github.com/qmk/qmk_firmware/pull/23679))
+* Allow for inverted SPI CS logic ([#23699](https://github.com/qmk/qmk_firmware/pull/23699))
+* Add timer_save and _restore functions. ([#23887](https://github.com/qmk/qmk_firmware/pull/23887))
+* Allow for `get_hardware_id()` to be used for serial number. ([#24053](https://github.com/qmk/qmk_firmware/pull/24053))
+* Segregrate keycode at pre-process record quantum ([#24194](https://github.com/qmk/qmk_firmware/pull/24194))
+* Add ability to poweroff ADNS5050 sensor ([#24223](https://github.com/qmk/qmk_firmware/pull/24223))
+* quantum: util: add bit and bitmask helpers ([#24229](https://github.com/qmk/qmk_firmware/pull/24229))
+* Add new connection keycodes for Bluetooth, 2.4GHz. ([#24251](https://github.com/qmk/qmk_firmware/pull/24251))
+* `usb_device_state`: consolidate usb state handling across implementations ([#24258](https://github.com/qmk/qmk_firmware/pull/24258))
+* Remove global k_rgb_matrix_split ([#24348](https://github.com/qmk/qmk_firmware/pull/24348))
+* util: uf2families: sync with upstream ([#24351](https://github.com/qmk/qmk_firmware/pull/24351))
+* [Maintenance] builddefs: common_rules: overhaul debug information generation ([#24352](https://github.com/qmk/qmk_firmware/pull/24352))
+* Add easier way to set default single layer ([#24376](https://github.com/qmk/qmk_firmware/pull/24376))
+* Tweak OS detect, add OS_DETECTION_SINGLE_REPORT ([#24379](https://github.com/qmk/qmk_firmware/pull/24379))
+* Reinstate global `k_rgb_matrix_split` ([#24388](https://github.com/qmk/qmk_firmware/pull/24388))
+* Bring supported STM32F4 configs in line with F4x1 ([#24413](https://github.com/qmk/qmk_firmware/pull/24413))
+* Extended wheel reports ([#24422](https://github.com/qmk/qmk_firmware/pull/24422))
+* Remove binary blobs from optical sensors. ([#24428](https://github.com/qmk/qmk_firmware/pull/24428))
+* Remove `STM32_PWM_USE_ADVANCED` references ([#24432](https://github.com/qmk/qmk_firmware/pull/24432))
+* Remove `RING_BUFFERED_6KRO_REPORT_ENABLE` due to disuse. ([#24433](https://github.com/qmk/qmk_firmware/pull/24433))
+* Move pointing device driver code ([#24445](https://github.com/qmk/qmk_firmware/pull/24445))
+* Add svlinky converter ([#24449](https://github.com/qmk/qmk_firmware/pull/24449))
+* Update combo user function variable ([#24467](https://github.com/qmk/qmk_firmware/pull/24467))
+* `qmk find`: expand operator support ([#24468](https://github.com/qmk/qmk_firmware/pull/24468))
+* Rename RGB and HSV structs ([#24471](https://github.com/qmk/qmk_firmware/pull/24471))
+* RGBLight: Improve RGB Test animation ([#24477](https://github.com/qmk/qmk_firmware/pull/24477))
+* Change default ARM hardware PWM WS2812 tick frequency to 800kHz ([#24508](https://github.com/qmk/qmk_firmware/pull/24508))
+* Add pointing tests ([#24513](https://github.com/qmk/qmk_firmware/pull/24513))
+* Joystick: add support for 8-way hat switch ([#24515](https://github.com/qmk/qmk_firmware/pull/24515))
+* Refactor Riverflow matrix effect with runner ([#24520](https://github.com/qmk/qmk_firmware/pull/24520))
+* Update Pixel Rain to respect LED range limits ([#24532](https://github.com/qmk/qmk_firmware/pull/24532))
+* Update Jellybean Raindrops to respect LED range limits ([#24534](https://github.com/qmk/qmk_firmware/pull/24534))
+* Refactor Breathing effect with runner ([#24535](https://github.com/qmk/qmk_firmware/pull/24535))
+* Refactor LED Breathing effect with runner ([#24540](https://github.com/qmk/qmk_firmware/pull/24540))
+* Expose rgb_matrix_update_pwm_buffers to be available in keymaps ([#24573](https://github.com/qmk/qmk_firmware/pull/24573))
+* Simple Python script to show polling rate ([#24622](https://github.com/qmk/qmk_firmware/pull/24622))
+* Add keycode PDF(layer) to set the default layer in EEPROM ([#24630](https://github.com/qmk/qmk_firmware/pull/24630))
+* Provide method to save a single default layer in the full range of 0-31 ([#24639](https://github.com/qmk/qmk_firmware/pull/24639))
+
+CLI:
+* Refactor painter arguments to table instead of commandline ([#24456](https://github.com/qmk/qmk_firmware/pull/24456))
+* `qmk new-keyboard`: separate dev board and MCU selection ([#24548](https://github.com/qmk/qmk_firmware/pull/24548))
+* Bump minimum required Python version ([#24554](https://github.com/qmk/qmk_firmware/pull/24554))
+
+Submodule updates:
+* Remove `arm_atsam` platform ([#24337](https://github.com/qmk/qmk_firmware/pull/24337))
+
+Keyboards:
+* add ergodox Community Layout for LAYOUT_ergodox keyboards ([#22963](https://github.com/qmk/qmk_firmware/pull/22963))
+* Cutie Club Fidelity Layout Additions ([#23838](https://github.com/qmk/qmk_firmware/pull/23838))
+* Add Ploopyco functions for host state control ([#23953](https://github.com/qmk/qmk_firmware/pull/23953))
+* Corne rev4 ([#24084](https://github.com/qmk/qmk_firmware/pull/24084))
+* Rename saevus to concreteflowers ([#24249](https://github.com/qmk/qmk_firmware/pull/24249))
+* Remove `60_tsangan_hhkb` community layout ([#24355](https://github.com/qmk/qmk_firmware/pull/24355))
+* add USART configuration to config.h for PS/2 mouse support ([#24398](https://github.com/qmk/qmk_firmware/pull/24398))
+* Add SteelSeries Prime+ mouse ([#24408](https://github.com/qmk/qmk_firmware/pull/24408))
+* Rename RGB/HSV structs: keyboard-level code ([#24476](https://github.com/qmk/qmk_firmware/pull/24476))
+* xiudi/xd002: Remove broken oversized `multilayer_rgb` keymap ([#24480](https://github.com/qmk/qmk_firmware/pull/24480))
+* Update keycodes for keyboards with RGB Matrix ([#24484](https://github.com/qmk/qmk_firmware/pull/24484))
+* Cipulot Updates ([#24539](https://github.com/qmk/qmk_firmware/pull/24539))
+* Update keymaps to use PDF keycode ([#24633](https://github.com/qmk/qmk_firmware/pull/24633))
+* Remove keyboard use of eeconfig_read_default_layer ([#24635](https://github.com/qmk/qmk_firmware/pull/24635))
+
+Keyboard fixes:
+* Fix rendering of `keymap_config.no_gui` within `led_update_kb` ([#24473](https://github.com/qmk/qmk_firmware/pull/24473))
+* Fix duplication of core `GU_TOGG` keycode ([#24474](https://github.com/qmk/qmk_firmware/pull/24474))
+* keebio/nyquist: Remove invalid I2C config ([#24479](https://github.com/qmk/qmk_firmware/pull/24479))
+* horrortroll/nyx/rev1: Fix compilation of custom RGB effect ([#24481](https://github.com/qmk/qmk_firmware/pull/24481))
+
+Others:
+* Improve consistency of syntax within `data/constants/keycodes` ([#24528](https://github.com/qmk/qmk_firmware/pull/24528))
+
+Bugs:
+* WS2812 API rework ([#24364](https://github.com/qmk/qmk_firmware/pull/24364))
+* Backward compatibility for new RGB keycode handling ([#24490](https://github.com/qmk/qmk_firmware/pull/24490))
+* Fix compiliation issues with OS Detection ([#24502](https://github.com/qmk/qmk_firmware/pull/24502))
+* Revert removal of `QK_OUTPUT_AUTO`, fixup docs to reflect. ([#24593](https://github.com/qmk/qmk_firmware/pull/24593))
+* Review fixes for layer lock feature ([#24627](https://github.com/qmk/qmk_firmware/pull/24627))
diff --git a/docs/ChangeLog/20250223.md b/docs/ChangeLog/20250223.md
new file mode 100644
index 00000000000..858848a60bc
--- /dev/null
+++ b/docs/ChangeLog/20250223.md
@@ -0,0 +1,135 @@
+# QMK Breaking Changes - 2025 February 23 Changelog
+
+## Notable Features
+
+### Community Modules ([#24848](https://github.com/qmk/qmk_firmware/pull/24848))
+
+Community Modules are a feature within QMK which allows code to be implemented by third parties, making it available for other people to import into their own builds.
+
+These modules can provide implementations which override or enhance normal QMK processing; initialization, key processing, suspend, and shutdown are some of the provided hooks which modules may currently implement.
+
+See the [Community Modules documentation](../features/community_modules) for more information, including the full list of available hooks.
+
+First-class support for [External Userspace](../newbs_external_userspace) is included out of the box, so there's even more reason to take the plunge and convert your keymap builds to a userspace repository!
+
+::: tip
+An example with a new keycode and some debugging information in the QMK repository [lives here](https://github.com/qmk/qmk_firmware/tree/master/modules/qmk/hello_world), and a community module port of [getreuer's SOCD Cleaner](https://getreuer.info/posts/keyboards/socd-cleaner/) can be found in [tzarc's modules repo](https://github.com/tzarc/qmk_modules).
+:::
+
+### Chordal Hold ([#24560](https://github.com/qmk/qmk_firmware/pull/24560))
+
+Chordal Hold implements, by default, an "opposite hands" rule. Suppose a tap-hold key is pressed and then, before the tapping term, another key is pressed. With Chordal Hold, the tap-hold key is settled as tapped if the two keys are on the same hand.
+
+Chordal Hold may be useful to avoid accidental modifier activation with mod-taps, particularly in rolled keypresses when using home row mods.
+
+See the [Chordal Hold documentation](../tap_hold#chordal-hold) for more information.
+
+## Changes Requiring User Action
+
+### Updated Keyboard Codebases
+
+| Old Keyboard Name | New Keyboard Name |
+|-------------------------|-----------------------------|
+| cxt_studio | cxt_studio/12e4 |
+| ergodox_stm32 | handwired/ergodox_stm32 |
+| ploopyco/mouse | ploopyco/mouse/rev1_002 |
+| ploopyco/trackball/rev1 | ploopyco/trackball/rev1_004 |
+| ymdk/id75 | ymdk/id75/f103 |
+
+## Deprecation Notices
+
+In line with the [notice period](../support_deprecation_policy#how-much-advance-notice-will-be-given), deprecation notices for larger items are listed here.
+
+### DEFAULT_FOLDER removal ([#24836](https://github.com/qmk/qmk_firmware/pull/24836))
+
+`DEFAULT_FOLDER` was originally introduced to work around limitations within the build system.
+Parent folders containing common configuration would create invalid build targets.
+
+With the introduction of [`keyboard.json`](./20240526#keyboard-json) as a configuration file, the build system now has a consistent method to detect build targets.
+The `DEFAULT_FOLDER` functionality is now redundant and the intent is for `rules.mk` to become pure configuration.
+
+Backwards compatibility of build targets has been maintained where possible.
+
+## Full changelist
+
+Core:
+* Chaining OSL and MO ([#23065](https://github.com/qmk/qmk_firmware/pull/23065))
+* Add extra keymap for EurKEY layout ([#24241](https://github.com/qmk/qmk_firmware/pull/24241))
+* Add leader_add_user callback ([#24266](https://github.com/qmk/qmk_firmware/pull/24266))
+* always return audio pin to 0 on ARM ([#24503](https://github.com/qmk/qmk_firmware/pull/24503))
+* Update Starlight matrix effects ([#24521](https://github.com/qmk/qmk_firmware/pull/24521))
+* Refactor Hue Breathing matrix effect with runner ([#24525](https://github.com/qmk/qmk_firmware/pull/24525))
+* Ensure timer_read() is safe to call from interrupt handlers on ARM ([#24529](https://github.com/qmk/qmk_firmware/pull/24529))
+* Update Raindrops effect to respect LED range limits ([#24531](https://github.com/qmk/qmk_firmware/pull/24531))
+* Add Chordal Hold, an "opposite hands rule" tap-hold option similar to Achordion, Bilateral Combinations. ([#24560](https://github.com/qmk/qmk_firmware/pull/24560))
+* Azoteq - improve I2C behaviour while polling. ([#24611](https://github.com/qmk/qmk_firmware/pull/24611))
+* macOS install: remove bad ARM toolchains ([#24637](https://github.com/qmk/qmk_firmware/pull/24637))
+* small refactoring of TIMER_DIFF ([#24678](https://github.com/qmk/qmk_firmware/pull/24678))
+* Subscript alef correction ([#24707](https://github.com/qmk/qmk_firmware/pull/24707))
+* Created SH1107 driver for quantum painter ([#24724](https://github.com/qmk/qmk_firmware/pull/24724))
+* [CI] Regenerate Files ([#24772](https://github.com/qmk/qmk_firmware/pull/24772))
+* Patch up issue for inverted complementary output on Backlight ([#24794](https://github.com/qmk/qmk_firmware/pull/24794))
+* Patch up issue when compile with APA102 driver ([#24800](https://github.com/qmk/qmk_firmware/pull/24800))
+* Consolidate send_string implementations. ([#24817](https://github.com/qmk/qmk_firmware/pull/24817))
+* Consolidate timer_elapsed implementations ([#24830](https://github.com/qmk/qmk_firmware/pull/24830))
+* `i2c_master`: remove deprecated functions ([#24832](https://github.com/qmk/qmk_firmware/pull/24832))
+* Resolve keyboard_aliases when processing keyboard make targets ([#24834](https://github.com/qmk/qmk_firmware/pull/24834))
+* LED drivers: remove deprecated defines ([#24837](https://github.com/qmk/qmk_firmware/pull/24837))
+* `ferris/0_1`: update I2C API usage ([#24839](https://github.com/qmk/qmk_firmware/pull/24839))
+* Unify i2c_master headers ([#24846](https://github.com/qmk/qmk_firmware/pull/24846))
+* Community modules ([#24848](https://github.com/qmk/qmk_firmware/pull/24848))
+* Relocate base WS2812 code ([#24850](https://github.com/qmk/qmk_firmware/pull/24850))
+* Unify UART headers ([#24855](https://github.com/qmk/qmk_firmware/pull/24855))
+* Unify spi_master headers ([#24857](https://github.com/qmk/qmk_firmware/pull/24857))
+* Invoke `process_record_via` after `_user`/`_kb` have a chance to handle it. ([#24879](https://github.com/qmk/qmk_firmware/pull/24879))
+
+CLI:
+* Extend lint to reject 'blank' files ([#23994](https://github.com/qmk/qmk_firmware/pull/23994))
+* `qmk docs`: restore `--port` and `--browser` arguments ([#24623](https://github.com/qmk/qmk_firmware/pull/24623))
+* Update via2json layout macro searching ([#24640](https://github.com/qmk/qmk_firmware/pull/24640))
+* Change `new-keymap` keymap name prompt ([#24701](https://github.com/qmk/qmk_firmware/pull/24701))
+* default_keyboard.h generation tweaks ([#24715](https://github.com/qmk/qmk_firmware/pull/24715))
+* Ensure `qmk flash` rejects invalid files for uf2 compatible bootloaders ([#24802](https://github.com/qmk/qmk_firmware/pull/24802))
+* Reject readme dummy content ([#24913](https://github.com/qmk/qmk_firmware/pull/24913))
+
+Submodule updates:
+* chibios: usb_main: remove OTG sof workaround ([#24259](https://github.com/qmk/qmk_firmware/pull/24259))
+* Update ChibiOS to latest stable branch. ([#24651](https://github.com/qmk/qmk_firmware/pull/24651))
+* Update ChibiOS `stable_21.11.x`. ([#24714](https://github.com/qmk/qmk_firmware/pull/24714))
+* Update ChibiOS-Contrib. ([#24803](https://github.com/qmk/qmk_firmware/pull/24803))
+
+Keyboards:
+* refactor: move ymdk/id75 to revision ([#24590](https://github.com/qmk/qmk_firmware/pull/24590))
+* skyloong/gk61: Remove overriding of core keycode behaviour ([#24655](https://github.com/qmk/qmk_firmware/pull/24655))
+* moky/moky88: Remove use of deprecated defines ([#24656](https://github.com/qmk/qmk_firmware/pull/24656))
+* Updating Promenade keyboard (Missing keys in matrix, other minor changes to keymap) ([#24705](https://github.com/qmk/qmk_firmware/pull/24705))
+* Moving cxt_studio keyboard to own folder ([#24748](https://github.com/qmk/qmk_firmware/pull/24748))
+* Add CXT Studio 12E3 keyboard ([#24749](https://github.com/qmk/qmk_firmware/pull/24749))
+* Add Silakka54 keyboard ([#24757](https://github.com/qmk/qmk_firmware/pull/24757))
+* Add more layout for skiller_sgk50_s4 ([#24784](https://github.com/qmk/qmk_firmware/pull/24784))
+* Add watchdog service to RGBKB Sol 3 ([#24786](https://github.com/qmk/qmk_firmware/pull/24786))
+* Migrate some DEFAULT_FOLDER to keyboard_aliases.hjson ([#24835](https://github.com/qmk/qmk_firmware/pull/24835))
+* Remove DEFAULT_FOLDER where keyboard aliases already exists ([#24838](https://github.com/qmk/qmk_firmware/pull/24838))
+* Migrate some DEFAULT_FOLDER to keyboard_aliases.hjson ([#24845](https://github.com/qmk/qmk_firmware/pull/24845))
+* Update for 'A-JAZZ AKC084' ('A-JAZZ AKP846') ([#24868](https://github.com/qmk/qmk_firmware/pull/24868))
+* handwired/xealous - Remove DEFAULT_FOLDER ([#24877](https://github.com/qmk/qmk_firmware/pull/24877))
+* Updates to Ploopy Classic, Mouse, and Thumb for RP2040 hardware upgrade ([#24880](https://github.com/qmk/qmk_firmware/pull/24880))
+* Move Ergodox STM32 to handwired folder ([#24903](https://github.com/qmk/qmk_firmware/pull/24903))
+* Remove readme dummy content ([#24912](https://github.com/qmk/qmk_firmware/pull/24912))
+* Migrate some DEFAULT_FOLDER to keyboard_aliases.hjson ([#24915](https://github.com/qmk/qmk_firmware/pull/24915))
+* Migrate some DEFAULT_FOLDER to keyboard_aliases.hjson ([#24938](https://github.com/qmk/qmk_firmware/pull/24938))
+
+Keyboard fixes:
+* Fix up CI with `DEFAULT_FOLDER`. ([#24842](https://github.com/qmk/qmk_firmware/pull/24842))
+* rgbkb/pan - Remove invalid build target ([#24844](https://github.com/qmk/qmk_firmware/pull/24844))
+
+Others:
+* Formally deprecate DEFAULT_FOLDER ([#24836](https://github.com/qmk/qmk_firmware/pull/24836))
+* Correct I2C API reference ([#24840](https://github.com/qmk/qmk_firmware/pull/24840))
+
+Bugs:
+* Retro Tapping Re-Write; Key Roll Fix ([#23641](https://github.com/qmk/qmk_firmware/pull/23641))
+* Fix Quantum Painter compiliation issues with heavy optimization ([#24667](https://github.com/qmk/qmk_firmware/pull/24667))
+* Bugfix and update for AT32F415 ([#24807](https://github.com/qmk/qmk_firmware/pull/24807))
+* Fix for Chordal Hold: stuck mods when mod-taps are pressed in a stuttered sequence. ([#24878](https://github.com/qmk/qmk_firmware/pull/24878))
+* fix EEPROM driver for STM32L0/1 cat.1 devices ([#24928](https://github.com/qmk/qmk_firmware/pull/24928))
diff --git a/docs/_aliases.json b/docs/_aliases.json
index f06e032215c..0dfcdea1e2f 100644
--- a/docs/_aliases.json
+++ b/docs/_aliases.json
@@ -16,6 +16,8 @@
"/tutorial": "/newbs",
"/unicode": "/feature_unicode",
+ "/features/bluetooth": "/features/wireless",
+
"/adc_driver": "/drivers/adc",
"/apa102_driver": "/drivers/apa102",
"/audio_driver": "/drivers/audio",
@@ -24,7 +26,7 @@
"/feature_auto_shift": "/features/auto_shift",
"/feature_autocorrect": "/features/autocorrect",
"/feature_backlight": "/features/backlight",
- "/feature_bluetooth": "/features/bluetooth",
+ "/feature_bluetooth": "/features/wireless",
"/feature_bootmagic": "/features/bootmagic",
"/feature_caps_word": "/features/caps_word",
"/feature_combo": "/features/combo",
diff --git a/docs/_sidebar.json b/docs/_sidebar.json
index 5935865a7ad..ae4d8fe4a9d 100644
--- a/docs/_sidebar.json
+++ b/docs/_sidebar.json
@@ -21,7 +21,8 @@
{ "text": "Debugging QMK", "link": "/faq_debug" },
{ "text": "Keymap FAQ", "link": "/faq_keymap" },
{ "text": "Squeezing Space from AVR", "link": "/squeezing_avr" },
- { "text": "Glossary", "link": "/reference_glossary" }
+ { "text": "Glossary", "link": "/reference_glossary" },
+ { "text": "License Violations", "link": "/license_violations" }
]
},
{
@@ -59,6 +60,7 @@
"items": [
{ "text": "Customizing Functionality", "link": "/custom_quantum_functions" },
{ "text": "Driver Installation with Zadig", "link": "/driver_installation_zadig" },
+ { "text": "Community Modules", "link": "/features/community_modules" },
{ "text": "Keymap Overview", "link": "/keymap" },
{
"text": "Development Environments",
@@ -123,6 +125,7 @@
{ "text": "Key Lock", "link": "/features/key_lock" },
{ "text": "Key Overrides", "link": "/features/key_overrides" },
{ "text": "Layers", "link": "/feature_layers" },
+ { "text": "Layer Lock", "link": "/features/layer_lock" },
{ "text": "One Shot Keys", "link": "/one_shot_keys" },
{ "text": "OS Detection", "link": "/features/os_detection" },
{ "text": "Raw HID", "link": "/features/rawhid" },
@@ -166,8 +169,7 @@
]
},
{ "text": "Audio", "link": "/features/audio" },
- { "text": "Bluetooth", "link": "/features/bluetooth" },
- { "text": "Bootmagic Lite", "link": "/features/bootmagic" },
+ { "text": "Bootmagic", "link": "/features/bootmagic" },
{ "text": "Converters", "link": "/feature_converters" },
{ "text": "Custom Matrix", "link": "/custom_matrix" },
{ "text": "DIP Switch", "link": "/features/dip_switch" },
@@ -179,7 +181,8 @@
{ "text": "Pointing Device", "link": "/features/pointing_device" },
{ "text": "PS/2 Mouse", "link": "/features/ps2_mouse" },
{ "text": "Split Keyboard", "link": "/features/split_keyboard" },
- { "text": "Stenography", "link": "/features/stenography" }
+ { "text": "Stenography", "link": "/features/stenography" },
+ { "text": "Wireless", "link": "/features/wireless" }
]
},
{
@@ -204,7 +207,7 @@
{ "text": "My Pull Request Was Flagged", "link": "/breaking_changes_instructions" },
{
"text": "Most Recent ChangeLog",
- "link": "/ChangeLog/20240526"
+ "link": "/ChangeLog/20250223"
},
{ "text": "Past Breaking Changes", "link": "/breaking_changes_history" },
{ "text": "Deprecation Policy", "link": "/support_deprecation_policy" }
diff --git a/docs/api_development_overview.md b/docs/api_development_overview.md
index e55d0341006..eb164bec525 100644
--- a/docs/api_development_overview.md
+++ b/docs/api_development_overview.md
@@ -4,7 +4,7 @@ This page attempts to introduce developers to the QMK Compiler. It does not go i
# Overview
-The QMK Compile API consists of a few movings parts:
+The QMK Compile API consists of a few moving parts:

diff --git a/docs/breaking_changes.md b/docs/breaking_changes.md
index d72a8d47614..a5a57ccd12a 100644
--- a/docs/breaking_changes.md
+++ b/docs/breaking_changes.md
@@ -10,25 +10,25 @@ Practically, this means QMK merges the `develop` branch into the `master` branch
## What has been included in past Breaking Changes?
-* [2024 May 26](ChangeLog/20240526)
-* [2024 Feb 25](ChangeLog/20240225)
-* [2023 Nov 26](ChangeLog/20231126)
+* [2025 Feb 23](ChangeLog/20250223)
+* [2024 Nov 24](ChangeLog/20241124)
+* [2024 Aug 25](ChangeLog/20240825)
* [Older Breaking Changes](breaking_changes_history)
## When is the next Breaking Change?
-The next Breaking Change is scheduled for August 25, 2024.
+The next Breaking Change is scheduled for May 25, 2025.
### Important Dates
-* 2024 May 26 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions.
-* 2024 Jul 28 - `develop` closed to new PRs.
-* 2024 Jul 28 - Call for testers.
-* 2024 Aug 4 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes
-* 2024 Aug 18 - `develop` is locked, only critical bugfix PRs merged.
-* 2024 Aug 22 - `master` is locked, no PRs merged.
-* 2024 Aug 25 - Merge `develop` to `master`.
-* 2024 Aug 25 - `master` is unlocked. PRs can be merged again.
+* 2025 Feb 23 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions.
+* 2025 Apr 27 - `develop` closed to new PRs.
+* 2025 Apr 27 - Call for testers.
+* 2025 May 11 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes
+* 2025 May 18 - `develop` is locked, only critical bugfix PRs merged.
+* 2025 May 23 - `master` is locked, no PRs merged.
+* 2025 May 25 - Merge `develop` to `master`.
+* 2025 May 25 - `master` is unlocked. PRs can be merged again.
## What changes will be included?
@@ -48,7 +48,7 @@ Criteria for acceptance:
Strongly suggested:
-* The PR has a ChangeLog file describing the changes under `/docs/Changelog/20240526`.
+* The PR has a ChangeLog file describing the changes under `/docs/Changelog/20241124`.
* This should be in Markdown format, with a name in the format `PR12345.md`, substituting the digits for your PRs ID.
* One strong recommendation that the ChangeLog document matches the PR description on GitHub, so as to ensure traceability.
diff --git a/docs/breaking_changes_history.md b/docs/breaking_changes_history.md
index 8c01e35e688..af8c1c04d5f 100644
--- a/docs/breaking_changes_history.md
+++ b/docs/breaking_changes_history.md
@@ -2,6 +2,9 @@
This page links to all previous changelogs from the QMK Breaking Changes process.
+* [2025 Feb 23](ChangeLog/20250223) - version 0.28.0
+* [2024 Nov 24](ChangeLog/20241124) - version 0.27.0
+* [2024 Aug 25](ChangeLog/20240825) - version 0.26.0
* [2024 May 26](ChangeLog/20240526) - version 0.25.0
* [2024 Feb 25](ChangeLog/20240225) - version 0.24.0
* [2023 Nov 26](ChangeLog/20231126) - version 0.23.0
diff --git a/docs/cli_commands.md b/docs/cli_commands.md
index 7d74d8e6177..d17b0eda237 100644
--- a/docs/cli_commands.md
+++ b/docs/cli_commands.md
@@ -153,20 +153,26 @@ qmk cd
This command allows for searching through keyboard/keymap targets, filtering by specific criteria. `info.json` and `rules.mk` files contribute to the search data, as well as keymap configurations, and the results can be filtered using "dotty" syntax matching the overall `info.json` file format.
-For example, one could search for all keyboards using STM32F411:
+For example, one could search for all keyboards powered by the STM32F411 microcontroller:
```
-qmk find -f 'processor=STM32F411'
+qmk find -f 'processor==STM32F411'
```
-...and one can further constrain the list to keyboards using STM32F411 as well as rgb_matrix support:
+The list can be further constrained by passing additional filter expressions:
```
-qmk find -f 'processor=STM32F411' -f 'features.rgb_matrix=true'
+qmk find -f 'processor==STM32F411' -f 'features.rgb_matrix==true'
```
-The following filter expressions are also supported:
+The following filter expressions are supported:
+ - `key == value`: Match targets where `key` is equal to `value`. May include wildcards such as `*` and `?`.
+ - `key != value`: Match targets where `key` is not `value`. May include wildcards such as `*` and `?`.
+ - `key < value`: Match targets where `key` is a number less than `value`.
+ - `key > value`: Match targets where `key` is a number greater than `value`.
+ - `key <= value`: Match targets where `key` is a number less than or equal to `value`.
+ - `key >= value`: Match targets where `key` is a number greater than or equal to `value`.
- `exists(key)`: Match targets where `key` is present.
- `absent(key)`: Match targets where `key` is not present.
- `contains(key, value)`: Match targets where `key` contains `value`. Can be used for strings, arrays and object keys.
@@ -175,7 +181,7 @@ The following filter expressions are also supported:
You can also list arbitrary values for each matched target with `--print`:
```
-qmk find -f 'processor=STM32F411' -p 'keyboard_name' -p 'features.rgb_matrix'
+qmk find -f 'processor==STM32F411' -p 'keyboard_name' -p 'features.rgb_matrix'
```
**Usage**:
@@ -717,23 +723,26 @@ Now open your dev environment and live a squiggly-free life.
## `qmk docs`
-This command starts a local HTTP server which you can use for browsing or improving the docs. Default port is 5173.
+This command starts a local HTTP server which you can use for browsing or improving the docs, and provides live reload capability whilst editing. Default port is 8936.
+Use the `-b`/`--browser` flag to automatically open the local webserver in your default browser.
-This command requires `node` and `yarn` to be installed as prerequisites, and provides live reload capability whilst editing.
+Requires `node` and `yarn` to be installed as prerequisites.
**Usage**:
```
-usage: qmk docs [-h]
+usage: qmk docs [-h] [-b] [-p PORT]
options:
- -h, --help show this help message and exit
+ -h, --help show this help message and exit
+ -b, --browser Open the docs in the default browser.
+ -p, --port PORT Port number to use.
```
## `qmk generate-docs`
-This command allows you to generate QMK documentation locally. It can be uses for general browsing or improving the docs.
-Use the `-s`/`--serve` flag to also serve the static site once built. Default port is 4173.
+This command generates QMK documentation for production.
+Use the `-s`/`--serve` flag to also serve the static site on port 4173 once built. Note that this does not provide live reloading; use `qmk docs` instead for development purposes.
This command requires `node` and `yarn` to be installed as prerequisites, and requires the operating system to support symlinks.
diff --git a/docs/compatible_microcontrollers.md b/docs/compatible_microcontrollers.md
index 785aee30d5c..f148c39191e 100644
--- a/docs/compatible_microcontrollers.md
+++ b/docs/compatible_microcontrollers.md
@@ -57,6 +57,10 @@ You can also use any ARM chip with USB that [ChibiOS](https://www.chibios.org) s
* [WB32F3G71xx](http://www.westberrytech.com)
* [WB32FQ95xx](http://www.westberrytech.com)
+### Artery (AT32)
+
+ * [AT32F415](https://www.arterychip.com/en/product/AT32F415.jsp)
+
### NXP (Kinetis)
* [MKL26Z64](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/kl-series-cortex-m0-plus/kinetis-kl2x-72-96-mhz-usb-ultra-low-power-microcontrollers-mcus-based-on-arm-cortex-m0-plus-core:KL2x)
@@ -75,10 +79,6 @@ You can also use any ARM chip with USB that [ChibiOS](https://www.chibios.org) s
For a detailed overview about the RP2040 support by QMK see the [dedicated RP2040 page](platformdev_rp2040).
-## Atmel ATSAM
-
-There is limited support for one of Atmel's ATSAM microcontrollers, that being the [ATSAMD51J18A](https://www.microchip.com/wwwproducts/en/ATSAMD51J18A) used by the [Massdrop keyboards](https://github.com/qmk/qmk_firmware/tree/master/keyboards/massdrop). However, it is not recommended to design a board with this microcontroller as the support is quite specialized to Massdrop hardware.
-
## RISC-V
### GigaDevice
diff --git a/docs/config_options.md b/docs/config_options.md
index a1ca8c8d503..e75a5b2f7ec 100644
--- a/docs/config_options.md
+++ b/docs/config_options.md
@@ -401,6 +401,7 @@ This is a [make](https://www.gnu.org/software/make/manual/make.html) file that i
* `atmel-dfu`
* `lufa-dfu`
* `qmk-dfu`
+ * `qmk-hid`
* `halfkay`
* `caterina`
* `bootloadhid`
@@ -413,7 +414,7 @@ Use these to enable or disable building certain features. The more you have enab
* `MAGIC_ENABLE`
* MAGIC actions (BOOTMAGIC without the boot)
* `BOOTMAGIC_ENABLE`
- * Enable Bootmagic Lite
+ * Enable Bootmagic
* `MOUSEKEY_ENABLE`
* Mouse keys
* `EXTRAKEY_ENABLE`
@@ -426,8 +427,6 @@ Use these to enable or disable building certain features. The more you have enab
* Key combo feature
* `NKRO_ENABLE`
* USB N-Key Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-* `RING_BUFFERED_6KRO_REPORT_ENABLE`
- * USB 6-Key Rollover - Instead of stopping any new input once 6 keys are pressed, the oldest key is released and the new key is pressed.
* `AUDIO_ENABLE`
* Enable the audio subsystem.
* `KEY_OVERRIDE_ENABLE`
diff --git a/docs/configurator_default_keymaps.md b/docs/configurator_default_keymaps.md
index 40304dc57b7..0dfc41ea21d 100644
--- a/docs/configurator_default_keymaps.md
+++ b/docs/configurator_default_keymaps.md
@@ -54,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[1] = LAYOUT_all(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, BL_TOGG, BL_DOWN, BL_UP,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_TOGG, UG_NEXT, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, UG_VALD, UG_VALU, BL_TOGG, BL_DOWN, BL_UP,
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_VOLU,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
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,
@@ -82,7 +82,7 @@ The default keymap uses the `LAYOUT_all` macro, so that will be the value of the
"KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "MO(1)", "KC_RGUI", "KC_RCTL", "KC_LEFT", "KC_DOWN", "KC_RGHT"
],
[
- "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_TOG", "RGB_MOD", "RGB_HUD", "RGB_HUI", "RGB_SAD", "RGB_SAI", "RGB_VAD", "RGB_VAI", "BL_TOGG", "BL_DOWN", "BL_UP",
+ "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "UG_TOGG", "UG_NEXT", "UG_HUED", "UG_HUEU", "UG_SATD", "UG_SATU", "UG_VALD", "UG_VALU", "BL_TOGG", "BL_DOWN", "BL_UP",
"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_VOLU",
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "QK_BOOT", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPLY", "KC_MNXT", "KC_VOLD",
"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/docs/contributing.md b/docs/contributing.md
index bbb1997a6f6..70a00b706d7 100644
--- a/docs/contributing.md
+++ b/docs/contributing.md
@@ -106,10 +106,10 @@ enum my_keycodes {
Before opening a pull request, you can preview your changes if you have set up the development environment by running this command from the `qmk_firmware/` folder:
```
-qmk docs
+qmk docs -b
```
-and navigating to `http://localhost:5173/`.
+Which should automatically open your browser; otherwise, navigate to `http://localhost:8936/`.
## Keyboards
diff --git a/docs/custom_quantum_functions.md b/docs/custom_quantum_functions.md
index 1479eb53f6c..c69beb055e9 100644
--- a/docs/custom_quantum_functions.md
+++ b/docs/custom_quantum_functions.md
@@ -9,12 +9,19 @@ This page does not assume any special knowledge about QMK, but reading [Understa
We have structured QMK as a hierarchy:
* Core (`_quantum`)
+ * Community Module (`_`)
+ * Community Module -> Keyboard/Revision (`__kb`)
+ * Community Module -> Keymap (`__user`)
* Keyboard/Revision (`_kb`)
* Keymap (`_user`)
Each of the functions described below can be defined with a `_kb()` suffix or a `_user()` suffix. We intend for you to use the `_kb()` suffix at the Keyboard/Revision level, while the `_user()` suffix should be used at the Keymap level.
-When defining functions at the Keyboard/Revision level it is important that your `_kb()` implementation call `_user()` before executing anything else- otherwise the keymap level function will never be called.
+When defining functions at the Keyboard/Revision level it is important that your `_kb()` implementation call `_user()` at an appropriate location, otherwise the keymap level function will never be called.
+
+Functions at the `__xxx()` level are intended to allow keyboards or keymaps to override or enhance the processing associated with a [community module](/features/community_modules).
+
+When defining module overrides such as `process_record_()`, the same pattern should be used; the module must invoke `process_record__kb()` as appropriate.
# Custom Keycodes
@@ -99,7 +106,7 @@ These are the three main initialization functions, listed in the order that they
* `keyboard_post_init_*` - Happens at the end of the firmware's startup process. This is where you'd want to put "customization" code, for the most part.
::: warning
-For most people, the `keyboard_post_init_user` function is what you want to call. For instance, this is where you want to set up things for RGB Underglow.
+For most people, the `keyboard_post_init_user` function is what you want to implement. For instance, this is where you want to set up things for RGB Underglow.
:::
## Keyboard Pre Initialization code
diff --git a/docs/driver_installation_zadig.md b/docs/driver_installation_zadig.md
index 099376faeb1..1a5bd1cc346 100644
--- a/docs/driver_installation_zadig.md
+++ b/docs/driver_installation_zadig.md
@@ -8,8 +8,8 @@ We recommend the use of the [Zadig](https://zadig.akeo.ie/) utility. If you have
## Installation
-Put your keyboard into bootloader mode, either by hitting the `QK_BOOT` keycode (which may be on a different layer), or by pressing the reset switch that's usually located on the underside of the board. If your keyboard has neither, try holding Escape or Space+`B` as you plug it in (see the [Bootmagic Lite](features/bootmagic) docs for more details). Some boards use [Command](features/command) instead of Bootmagic; in this case, you can enter bootloader mode by hitting Left Shift+Right Shift+`B` or Left Shift+Right Shift+Escape at any point while the keyboard is plugged in.
-Some keyboards may have specific instructions for entering the bootloader. For example, the [Bootmagic Lite](features/bootmagic) key (default: Escape) might be on a different key, e.g. Left Control; or the magic combination for Command (default: Left Shift+Right Shift) might require you to hold something else, e.g. Left Control+Right Control. Refer to the board's README file if you are unsure.
+Put your keyboard into bootloader mode, either by hitting the `QK_BOOT` keycode (which may be on a different layer), or by pressing the reset switch that's usually located on the underside of the board. If your keyboard has neither, try holding Escape or Space+`B` as you plug it in (see the [Bootmagic](features/bootmagic) docs for more details). Some boards use [Command](features/command) instead of Bootmagic; in this case, you can enter bootloader mode by hitting Left Shift+Right Shift+`B` or Left Shift+Right Shift+Escape at any point while the keyboard is plugged in.
+Some keyboards may have specific instructions for entering the bootloader. For example, the [Bootmagic](features/bootmagic) key (default: Escape) might be on a different key, e.g. Left Control; or the magic combination for Command (default: Left Shift+Right Shift) might require you to hold something else, e.g. Left Control+Right Control. Refer to the board's README file if you are unsure.
To put a device in bootloader mode with USBaspLoader, tap the `RESET` button while holding down the `BOOT` button.
Alternatively, hold `BOOT` while inserting the USB cable.
@@ -98,6 +98,7 @@ The device name here is the name that appears in Zadig, and may not be what the
|`bootloadhid` |HIDBoot |`16C0:05DF` |HidUsb |
|`usbasploader`|USBasp |`16C0:05DC` |libusbK|
|`apm32-dfu` |APM32 DFU ISP Mode |`314B:0106` |WinUSB |
+|`at32-dfu` |AT32 Bootloader DFU |`2E3C:DF11` |WinUSB |
|`stm32-dfu` |STM32 BOOTLOADER |`0483:DF11` |WinUSB |
|`gd32v-dfu` |GD32V BOOTLOADER |`28E9:0189` |WinUSB |
|`kiibohd` |Kiibohd DFU Bootloader |`1C11:B007` |WinUSB |
diff --git a/docs/drivers/apa102.md b/docs/drivers/apa102.md
index 88868a73b59..197b18869e8 100644
--- a/docs/drivers/apa102.md
+++ b/docs/drivers/apa102.md
@@ -26,20 +26,51 @@ Add the following to your `config.h`:
## API {#api}
-### `void apa102_setleds(rgb_led_t *start_led, uint16_t num_leds)`
+### `void apa102_init(void)` {#api-apa102-init}
-Send RGB data to the APA102 LED chain.
-
-#### Arguments {#api-apa102-setleds-arguments}
-
- - `rgb_led_t *start_led`
- A pointer to the LED array.
- - `uint16_t num_leds`
- The length of the LED array.
+Initialize the LED driver. This function should be called first.
---
-### `void apa102_set_brightness(uint8_t brightness)`
+### `void apa102_set_color(uint16_t index, uint8_t red, uint8_t green, uint8_t blue)` {#api-apa102-set-color}
+
+Set the color of a single LED. This function does not immediately update the LEDs; call `apa102_flush()` after you are finished.
+
+#### Arguments {#api-apa102-set-color-arguments}
+
+ - `uint16_t index`
+ The LED index in the APA102 chain.
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void apa102_set_color_all(uint8_t red, uint8_t green, uint8_t blue)` {#api-apa102-set-color-all}
+
+Set the color of all LEDs.
+
+#### Arguments {#api-apa102-set-color-all-arguments}
+
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void apa102_flush(void)` {#api-apa102-flush}
+
+Flush the PWM values to the LED chain.
+
+---
+
+### `void apa102_set_brightness(uint8_t brightness)` {#api-apa102-set-brightness}
Set the global brightness.
diff --git a/docs/drivers/audio.md b/docs/drivers/audio.md
index c764c97369a..165e61f0655 100644
--- a/docs/drivers/audio.md
+++ b/docs/drivers/audio.md
@@ -57,27 +57,32 @@ This driver needs one Timer per enabled/used DAC channel, to trigger conversion;
Additionally, in the board config, you'll want to make changes to enable the DACs, GPT for Timers 6, 7 and 8:
-```c
-//halconf.h:
-#define HAL_USE_DAC TRUE
-#define HAL_USE_GPT TRUE
+::: code-group
+```c [halconf.h]
+#pragma once
+
+#define HAL_USE_DAC TRUE // [!code focus]
+#define HAL_USE_GPT TRUE // [!code focus]
+
#include_next
```
+```c [mcuconf.h]
+#pragma once
-```c
-// mcuconf.h:
#include_next
-#undef STM32_DAC_USE_DAC1_CH1
-#define STM32_DAC_USE_DAC1_CH1 TRUE
-#undef STM32_DAC_USE_DAC1_CH2
-#define STM32_DAC_USE_DAC1_CH2 TRUE
-#undef STM32_GPT_USE_TIM6
-#define STM32_GPT_USE_TIM6 TRUE
-#undef STM32_GPT_USE_TIM7
-#define STM32_GPT_USE_TIM7 TRUE
-#undef STM32_GPT_USE_TIM8
-#define STM32_GPT_USE_TIM8 TRUE
+
+#undef STM32_DAC_USE_DAC1_CH1 // [!code focus]
+#define STM32_DAC_USE_DAC1_CH1 TRUE // [!code focus]
+#undef STM32_DAC_USE_DAC1_CH2 // [!code focus]
+#define STM32_DAC_USE_DAC1_CH2 TRUE // [!code focus]
+#undef STM32_GPT_USE_TIM6 // [!code focus]
+#define STM32_GPT_USE_TIM6 TRUE // [!code focus]
+#undef STM32_GPT_USE_TIM7 // [!code focus]
+#define STM32_GPT_USE_TIM7 TRUE // [!code focus]
+#undef STM32_GPT_USE_TIM8 // [!code focus]
+#define STM32_GPT_USE_TIM8 TRUE // [!code focus]
```
+:::
::: tip
Note: DAC1 (A4) uses TIM6, DAC2 (A5) uses TIM7, and the audio state timer uses TIM8 (configurable).
@@ -95,23 +100,28 @@ only needs one timer (GPTD6, Tim6) to trigger the DAC unit to do a conversion; t
Additionally, in the board config, you'll want to make changes to enable the DACs, GPT for Timer 6:
-```c
-//halconf.h:
-#define HAL_USE_DAC TRUE
-#define HAL_USE_GPT TRUE
+::: code-group
+```c [halconf.h]
+#pragma once
+
+#define HAL_USE_DAC TRUE // [!code focus]
+#define HAL_USE_GPT TRUE // [!code focus]
+
#include_next
```
+```c [mcuconf.h]
+#pragma once
-```c
-// mcuconf.h:
#include_next
-#undef STM32_DAC_USE_DAC1_CH1
-#define STM32_DAC_USE_DAC1_CH1 TRUE
-#undef STM32_DAC_USE_DAC1_CH2
-#define STM32_DAC_USE_DAC1_CH2 TRUE
-#undef STM32_GPT_USE_TIM6
-#define STM32_GPT_USE_TIM6 TRUE
+
+#undef STM32_DAC_USE_DAC1_CH1 // [!code focus]
+#define STM32_DAC_USE_DAC1_CH1 TRUE // [!code focus]
+#undef STM32_DAC_USE_DAC1_CH2 // [!code focus]
+#define STM32_DAC_USE_DAC1_CH2 TRUE // [!code focus]
+#undef STM32_GPT_USE_TIM6 // [!code focus]
+#define STM32_GPT_USE_TIM6 TRUE // [!code focus]
```
+:::
### DAC Config
@@ -170,19 +180,25 @@ This driver uses the ChibiOS-PWM system to produce a square-wave on specific out
The hardware directly toggles the pin via its alternate function. See your MCU's data-sheet for which pin can be driven by what timer - looking for TIMx_CHy and the corresponding alternate function.
A configuration example for the STM32F103C8 would be:
-```c
-//halconf.h:
-#define HAL_USE_PWM TRUE
-#define HAL_USE_PAL TRUE
+
+::: code-group
+```c [halconf.h]
+#pragma once
+
+#define HAL_USE_PWM TRUE // [!code focus]
+#define HAL_USE_PAL TRUE // [!code focus]
+
#include_next
```
+```c [mcuconf.h]
+#pragma once
-```c
-// mcuconf.h:
#include_next
-#undef STM32_PWM_USE_TIM1
-#define STM32_PWM_USE_TIM1 TRUE
+
+#undef STM32_PWM_USE_TIM1 // [!code focus]
+#define STM32_PWM_USE_TIM1 TRUE // [!code focus]
```
+:::
If we now target pin A8, looking through the data-sheet of the STM32F103C8, for the timers and alternate functions
- TIM1_CH1 = PA8 <- alternate0
diff --git a/docs/drivers/aw20216s.md b/docs/drivers/aw20216s.md
new file mode 100644
index 00000000000..36a6d63c33b
--- /dev/null
+++ b/docs/drivers/aw20216s.md
@@ -0,0 +1,133 @@
+# AW20216S Driver {#aw20216s-driver}
+
+SPI 18x12 LED matrix driver by Awinic. Supports a maximum of four drivers, each controlling up to 216 single-color LEDs, or 72 RGB LEDs.
+
+[AW20216S Datasheet](https://doc.awinic.com/doc/20230609wm/b6a9c70b-e1bd-495b-925f-bcbed3fc2620.pdf)
+
+## Usage {#usage}
+
+The AW20216S driver code is automatically included if you are using the [RGB Matrix](../features/rgb_matrix) feature with the `aw20216s` driver set, and you would use those APIs instead.
+
+However, if you need to use the driver standalone, add this to your `rules.mk`:
+
+```make
+COMMON_VPATH += $(DRIVER_PATH)/led
+SRC += aw20216s.c
+SPI_DRIVER_REQUIRED = yes
+```
+
+## Basic Configuration {#basic-configuration}
+
+Add the following to your `config.h`:
+
+|Define |Default |Description |
+|-----------------------------|-------------|-------------------------------------------------------------|
+|`AW20216S_CS_PIN_1` |*Not defined*|The GPIO pin connected to the first driver's Chip Select pin |
+|`AW20216S_CS_PIN_2` |*Not defined*|The GPIO pin connected to the second driver's Chip Select pin|
+|`AW20216S_EN_PIN` |*Not defined*|The GPIO pin connected to the drivers' Enable pins |
+|`AW20216S_SPI_MODE` |`0` |The SPI mode to use |
+|`AW20216S_SPI_DIVISOR` |`4` |The SPI divisor to use |
+|`AW20216S_SCALING_MAX` |`150` |The scaling value |
+|`AW20216S_GLOBAL_CURRENT_MAX`|`150` |The global current control value |
+
+### Global Current Control {#global-current-control}
+
+This setting controls the current sunk by the `CSx` pins, from 0 to 255. To adjust it, add the following to your `config.h`:
+
+```c
+#define AW20216S_GLOBAL_CURRENT_MAX 150
+```
+
+## ARM/ChibiOS Configuration {#arm-configuration}
+
+Depending on the ChibiOS board configuration, you may need to [enable and configure SPI](spi#arm-configuration) at the keyboard level.
+
+## LED Mapping {#led-mapping}
+
+In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`:
+
+```c
+const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = {
+/* Driver
+ * | R G B */
+ {0, SW1_CS1, SW1_CS2, SW1_CS3},
+ // etc...
+};
+```
+
+In this example, the first LED index on driver 0 has its red channel on `SW1_CS1`, green on `SW1_CS2` and blue on `SW1_CS3`.
+
+These values correspond to the matrix locations as shown in the datasheet on page 16, figure 16.
+
+## API {#api}
+
+### `struct aw20216s_led_t` {#api-aw20216s-led-t}
+
+Contains the PWM register addresses for a single RGB LED.
+
+#### Members {#api-aw20216s-led-t-members}
+
+ - `uint8_t driver`
+ The driver index of the LED, from 0 to 3.
+ - `uint8_t r`
+ The output PWM register address for the LED's red channel.
+ - `uint8_t g`
+ The output PWM register address for the LED's green channel.
+ - `uint8_t b`
+ The output PWM register address for the LED's blue channel.
+
+---
+
+### `void aw20216s_init(pin_t cs_pin)` {#api-aw20216s-init}
+
+Initialize the LED driver. This function should be called first.
+
+#### Arguments {#api-aw20216s-init-arguments}
+
+ - `pin_t cs_pin`
+ The GPIO connected to the Chip Select pin of the LED driver to initialize.
+
+---
+
+### `void aw20216s_set_color(int index, uint8_t red, uint8_t green, uint8_t blue)` {#api-aw20216s-set-color}
+
+Set the color of a single LED. This function does not immediately update the LEDs; call `aw20216s_update_pwm_buffers()` after you are finished.
+
+#### Arguments {#api-aw20216s-set-color-arguments}
+
+ - `int index`
+ The LED index (ie. the index into the `g_aw20216s_leds` array).
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void aw20216s_set_color_all(uint8_t red, uint8_t green, uint8_t blue)` {#api-aw20216s-set-color-all}
+
+Set the color of all LEDs.
+
+#### Arguments {#api-aw20216s-set-color-all-arguments}
+
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void aw20216s_update_pwm_buffers(pin_t cs_pin, uint8_t index)` {#api-aw20216s-update-pwm-buffers}
+
+Flush the PWM values to the LED driver.
+
+#### Arguments {#api-aw20216s-update-pwm-buffers-arguments}
+
+ - `pin_t cs_pin`
+ The GPIO connected to the Chip Select pin of the driver.
+ - `uint8_t index`
+ The index of the driver.
diff --git a/docs/drivers/eeprom.md b/docs/drivers/eeprom.md
index 82630c501d1..0ae258424f8 100644
--- a/docs/drivers/eeprom.md
+++ b/docs/drivers/eeprom.md
@@ -119,13 +119,14 @@ This driver performs writes to the embedded flash storage embedded in the MCU. I
Configurable options in your keyboard's `config.h`:
-`config.h` override | Default | Description
------------------------------------------|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-`#define WEAR_LEVELING_EFL_FIRST_SECTOR` | _unset_ | The first sector on the MCU to use. By default this is not defined and calculated at runtime based on the MCU. However, different flash sizes on MCUs may require custom configuration.
-`#define WEAR_LEVELING_EFL_FLASH_SIZE` | _unset_ | Allows overriding the flash size available for use for wear-leveling. Under normal circumstances this is automatically calculated and should not need to be overridden. Specifying a size larger than the amount actually available in flash will usually prevent the MCU from booting.
-`#define WEAR_LEVELING_LOGICAL_SIZE` | `(backing_size/2)` | Number of bytes "exposed" to the rest of QMK and denotes the size of the usable EEPROM.
-`#define WEAR_LEVELING_BACKING_SIZE` | `2048` | Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size.
-`#define BACKING_STORE_WRITE_SIZE` | _automatic_ | The byte width of the underlying write used on the MCU, and is usually automatically determined from the selected MCU family. If an error occurs in the auto-detection, you'll need to consult the MCU's datasheet and determine this value, specifying it directly.
+`config.h` override | Default | Description
+---------------------------------------------------|--------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+`#define WEAR_LEVELING_EFL_FIRST_SECTOR` | _unset_ | The first sector on the MCU to use. By default this is not defined and calculated at runtime based on the MCU. However, different flash sizes on MCUs may require custom configuration.
+`#define WEAR_LEVELING_EFL_FLASH_SIZE` | _unset_ | Allows overriding the flash size available for use for wear-leveling. Under normal circumstances this is automatically calculated and should not need to be overridden. Specifying a size larger than the amount actually available in flash will usually prevent the MCU from booting.
+`#define WEAR_LEVELING_EFL_OMIT_LAST_SECTOR_COUNT` | `0` | Number of sectors to omit at the end of the flash. These sectors will not be allocated to the driver and the usable flash block will be offset, but keeping the set flash size. Useful on devices with bootloaders requiring a check flag at the end of flash to be present in order to confirm a valid, bootable firmware.
+`#define WEAR_LEVELING_LOGICAL_SIZE` | `(backing_size/2)` | Number of bytes "exposed" to the rest of QMK and denotes the size of the usable EEPROM.
+`#define WEAR_LEVELING_BACKING_SIZE` | `2048` | Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size.
+`#define BACKING_STORE_WRITE_SIZE` | _automatic_ | The byte width of the underlying write used on the MCU, and is usually automatically determined from the selected MCU family. If an error occurs in the auto-detection, you'll need to consult the MCU's datasheet and determine this value, specifying it directly.
::: warning
If your MCU does not boot after swapping to the EFL wear-leveling driver, it's likely that the flash size is incorrectly detected, usually as an MCU with larger flash and may require overriding.
diff --git a/docs/drivers/gpio.md b/docs/drivers/gpio.md
index 9ce4f2aa20c..b21a17bc39a 100644
--- a/docs/drivers/gpio.md
+++ b/docs/drivers/gpio.md
@@ -13,7 +13,7 @@ The following macros provide basic control of GPIOs and are found in `platforms/
|`gpio_set_pin_input_low(pin)` |Set pin as input with builtin pull-down resistor (unavailable on AVR)|
|`gpio_set_pin_output(pin)` |Set pin as output (alias of `gpio_set_pin_output_push_pull`) |
|`gpio_set_pin_output_push_pull(pin)` |Set pin as output, push/pull mode |
-|`gpio_set_pin_output_open_drain(pin)`|Set pin as output, open-drain mode (unavailable on AVR and ATSAM) |
+|`gpio_set_pin_output_open_drain(pin)`|Set pin as output, open-drain mode (unavailable on AVR) |
|`gpio_write_pin_high(pin)` |Set pin level as high, assuming it is an output |
|`gpio_write_pin_low(pin)` |Set pin level as low, assuming it is an output |
|`gpio_write_pin(pin, level)` |Set pin level, assuming it is an output |
diff --git a/docs/drivers/i2c.md b/docs/drivers/i2c.md
index 10949ed59e0..ad74d0e481d 100644
--- a/docs/drivers/i2c.md
+++ b/docs/drivers/i2c.md
@@ -16,17 +16,22 @@ You can then call the I2C API by including `i2c_master.h` in your code.
## I2C Addressing {#note-on-i2c-addresses}
-All of the addresses expected by this driver should be pushed to the upper 7 bits of the address byte. Setting
-the lower bit (indicating read/write) will be done by the respective functions. Almost all I2C addresses listed
-on datasheets and the internet will be represented as 7 bits occupying the lower 7 bits and will need to be
-shifted to the left (more significant) by one bit. This is easy to do via the bitwise shift operator `<< 1`.
+I2C addresses listed on datasheets and the internet are usually represented as a 7-bit value. The eighth bit (the least significant bit) controls whether the operation is a read or a write.
-You can either do this on each call to the functions below, or once in your definition of the address. For example, if your device has an address of `0x18`:
+All of the address parameters expected by the driver API should therefore be pushed to the upper 7 bits of the address byte; the driver will take care of setting the read/write bit as appropriate.
+
+This is easy to do via the bitwise left shift operator. For example, if your device has an address of `0x18` you might create a define for convenience:
```c
#define MY_I2C_ADDRESS (0x18 << 1)
```
+Or, you can shift the address ahead of time:
+
+```c
+#define MY_I2C_ADDRESS 0x30
+```
+
See https://www.robot-electronics.co.uk/i2c-tutorial for more information about I2C addressing and other technical details.
## AVR Configuration {#avr-configuration}
@@ -39,12 +44,12 @@ The following defines can be used to configure the I2C master driver:
No further setup is required - just connect the `SDA` and `SCL` pins of your I2C devices to the matching pins on the MCU:
-|MCU |`SCL`|`SDA`|
-|------------------|-----|-----|
-|ATmega16/32U4 |`D0` |`D1` |
-|AT90USB64/128 |`D0` |`D1` |
-|ATmega32A |`C0` |`C1` |
-|ATmega328/P |`C5` |`C4` |
+|MCU |`SCL`|`SDA`|
+|-------------|-----|-----|
+|ATmega16/32U4|`D0` |`D1` |
+|AT90USB64/128|`D0` |`D1` |
+|ATmega32A |`C0` |`C1` |
+|ATmega328/P |`C5` |`C4` |
::: tip
The ATmega16/32U2 does not possess I2C functionality, and so cannot use this driver.
@@ -52,20 +57,27 @@ The ATmega16/32U2 does not possess I2C functionality, and so cannot use this dri
## ChibiOS/ARM Configuration {#arm-configuration}
-You'll need to determine which pins can be used for I2C -- a an example, STM32 parts generally have multiple I2C peripherals, labeled I2C1, I2C2, I2C3 etc.
+You'll need to determine which pins can be used for I2C -- as an example, STM32 parts generally have multiple I2C peripherals, labeled I2C1, I2C2, I2C3 etc.
-To enable I2C, modify your board's `halconf.h` to enable I2C:
+To enable I2C, modify your board's `halconf.h` to enable I2C, then modify your board's `mcuconf.h` to enable the peripheral you've chosen:
-```c
-#define HAL_USE_I2C TRUE
+::: code-group
+```c [halconf.h]
+#pragma once
+
+#define HAL_USE_I2C TRUE // [!code focus]
+
+#include_next
```
+```c [mcuconf.h]
+#pragma once
-Then, modify your board's `mcuconf.h` to enable the peripheral you've chosen, for example:
+#include_next
-```c
-#undef STM32_I2C_USE_I2C2
-#define STM32_I2C_USE_I2C2 TRUE
+#undef STM32_I2C_USE_I2C2 // [!code focus]
+#define STM32_I2C_USE_I2C2 TRUE // [!code focus]
```
+:::
|`mcuconf.h` Setting |Description |Default|
|----------------------------|----------------------------------------------------------------------------------|-------|
@@ -76,15 +88,19 @@ Then, modify your board's `mcuconf.h` to enable the peripheral you've chosen, fo
Configuration-wise, you'll need to set up the peripheral as per your MCU's datasheet -- the defaults match the pins for a Proton-C, i.e. STM32F303.
-|`config.h` Overrride |Description |Default|
-|------------------------|--------------------------------------------------------------|-------|
-|`I2C_DRIVER` |I2C peripheral to use - I2C1 -> `I2CD1`, I2C2 -> `I2CD2` etc. |`I2CD1`|
-|`I2C1_SCL_PIN` |The pin definition for SCL |`B6` |
-|`I2C1_SCL_PAL_MODE` |The alternate function mode for SCL |`4` |
-|`I2C1_SDA_PIN` |The pin definition for SDA |`B7` |
-|`I2C1_SDA_PAL_MODE` |The alternate function mode for SDA |`4` |
+|`config.h` Override|Description |Default|
+|-------------------|-------------------------------------------------------------|-------|
+|`I2C_DRIVER` |I2C peripheral to use - I2C1 -> `I2CD1`, I2C2 -> `I2CD2` etc.|`I2CD1`|
+|`I2C1_SCL_PIN` |The pin to use for SCL |`B6` |
+|`I2C1_SCL_PAL_MODE`|The alternate function mode for SCL |`4` |
+|`I2C1_SDA_PIN` |The pin to use for SDA |`B7` |
+|`I2C1_SDA_PAL_MODE`|The alternate function mode for SDA |`4` |
-The following configuration values depend on the specific MCU in use.
+::: tip
+Currently only a single I2C peripheral is supported, therefore the `I2C1_*` defines are used for configuration regardless of the selected peripheral.
+:::
+
+The following configuration values are dependent on the ChibiOS I2C LLD, which is dictated by the microcontroller.
### I2Cv1 {#arm-configuration-i2cv1}
@@ -140,7 +156,7 @@ void i2c_init(void) {
---
-### `i2c_status_t i2c_transmit(uint8_t address, uint8_t *data, uint16_t length, uint16_t timeout)` {#api-i2c-transmit}
+### `i2c_status_t i2c_transmit(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-transmit}
Send multiple bytes to the selected I2C device.
@@ -148,10 +164,10 @@ Send multiple bytes to the selected I2C device.
- `uint8_t address`
The 7-bit I2C address of the device.
- - `uint8_t *data`
+ - `const uint8_t* data`
A pointer to the data to transmit.
- `uint16_t length`
- The number of bytes to write. Take care not to overrun the length of `data`.
+ The number of bytes to write. Take care not to overrun the length of `data`.
- `uint16_t timeout`
The time in milliseconds to wait for a response from the target device.
@@ -161,6 +177,29 @@ Send multiple bytes to the selected I2C device.
---
+### `i2c_status_t i2c_transmit_P(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-transmit-p}
+
+Send multiple bytes from PROGMEM to the selected I2C device.
+
+On ARM devices, this function is simply an alias for `i2c_transmit(address, data, length, timeout)`.
+
+#### Arguments {#api-i2c-transmit-p-arguments}
+
+ - `uint8_t address`
+ The 7-bit I2C address of the device.
+ - `const uint8_t* data`
+ A pointer to the data to transmit.
+ - `uint16_t length`
+ The number of bytes to write. Take care not to overrun the length of `data`.
+ - `uint16_t timeout`
+ The time in milliseconds to wait for a response from the target device.
+
+#### Return Value {#api-i2c-transmit-p-return}
+
+`I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`.
+
+---
+
### `i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-receive}
Receive multiple bytes from the selected I2C device.
@@ -169,10 +208,10 @@ Receive multiple bytes from the selected I2C device.
- `uint8_t address`
The 7-bit I2C address of the device.
- - `uint8_t *data`
- A pointer to the buffer to read into.
+ - `uint8_t* data`
+ A pointer to a buffer to read into.
- `uint16_t length`
- The number of bytes to read. Take care not to overrun the length of `data`.
+ The number of bytes to read. Take care not to overrun the length of `data`.
- `uint16_t timeout`
The time in milliseconds to wait for a response from the target device.
@@ -182,9 +221,9 @@ Receive multiple bytes from the selected I2C device.
---
-### `i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-write-register}
+### `i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-write-register}
-Writes to a register with an 8-bit address on the I2C device.
+Write to a register with an 8-bit address on the I2C device.
#### Arguments {#api-i2c-write-register-arguments}
@@ -192,10 +231,10 @@ Writes to a register with an 8-bit address on the I2C device.
The 7-bit I2C address of the device.
- `uint8_t regaddr`
The register address to write to.
- - `uint8_t *data`
+ - `const uint8_t* data`
A pointer to the data to transmit.
- `uint16_t length`
- The number of bytes to write. Take care not to overrun the length of `data`.
+ The number of bytes to write. Take care not to overrun the length of `data`.
- `uint16_t timeout`
The time in milliseconds to wait for a response from the target device.
@@ -205,9 +244,9 @@ Writes to a register with an 8-bit address on the I2C device.
---
-### `i2c_status_t i2c_write_register16(uint8_t devaddr, uint16_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-write-register16}
+### `i2c_status_t i2c_write_register16(uint8_t devaddr, uint16_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-write-register16}
-Writes to a register with a 16-bit address (big endian) on the I2C device.
+Write to a register with a 16-bit address (big endian) on the I2C device.
#### Arguments {#api-i2c-write-register16-arguments}
@@ -215,10 +254,10 @@ Writes to a register with a 16-bit address (big endian) on the I2C device.
The 7-bit I2C address of the device.
- `uint16_t regaddr`
The register address to write to.
- - `uint8_t *data`
+ - `const uint8_t* data`
A pointer to the data to transmit.
- `uint16_t length`
- The number of bytes to write. Take care not to overrun the length of `data`.
+ The number of bytes to write. Take care not to overrun the length of `data`.
- `uint16_t timeout`
The time in milliseconds to wait for a response from the target device.
@@ -230,7 +269,7 @@ Writes to a register with a 16-bit address (big endian) on the I2C device.
### `i2c_status_t i2c_read_register(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-read-register}
-Reads from a register with an 8-bit address on the I2C device.
+Read from a register with an 8-bit address on the I2C device.
#### Arguments {#api-i2c-read-register-arguments}
@@ -238,8 +277,10 @@ Reads from a register with an 8-bit address on the I2C device.
The 7-bit I2C address of the device.
- `uint8_t regaddr`
The register address to read from.
+ - `uint8_t data`
+ A pointer to a buffer to read into.
- `uint16_t length`
- The number of bytes to read. Take care not to overrun the length of `data`.
+ The number of bytes to read. Take care not to overrun the length of `data`.
- `uint16_t timeout`
The time in milliseconds to wait for a response from the target device.
@@ -251,7 +292,7 @@ Reads from a register with an 8-bit address on the I2C device.
### `i2c_status_t i2c_read_register16(uint8_t devaddr, uint16_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-read-register16}
-Reads from a register with a 16-bit address (big endian) on the I2C device.
+Read from a register with a 16-bit address (big endian) on the I2C device.
#### Arguments {#api-i2c-read-register16-arguments}
@@ -259,8 +300,10 @@ Reads from a register with a 16-bit address (big endian) on the I2C device.
The 7-bit I2C address of the device.
- `uint16_t regaddr`
The register address to read from.
+ - `uint8_t* data`
+ A pointer to a buffer to read into.
- `uint16_t length`
- The number of bytes to read. Take care not to overrun the length of `data`.
+ The number of bytes to read. Take care not to overrun the length of `data`.
- `uint16_t timeout`
The time in milliseconds to wait for a response from the target device.
@@ -272,19 +315,19 @@ Reads from a register with a 16-bit address (big endian) on the I2C device.
### `i2c_status_t i2c_ping_address(uint8_t address, uint16_t timeout)` {#api-i2c-ping-address}
-Pings the I2C bus for a specific address.
+Ping the I2C bus for a specific address.
-On ChibiOS a "best effort" attempt is made by reading a single byte from register 0 at the requested address. This should generally work except for I2C devices that do not not respond to a register 0 read request, which will result in a false negative result (unsucessful response to ping attempt).
+On ChibiOS a "best effort" attempt is made by reading a single byte from register 0 at the given address. This should generally work except for I2C devices that do not not respond to a register 0 read request, which will result in a false negative result (unsuccessful response to ping attempt).
-This function is weakly defined, meaning it can be overridden if necessary for your particular use case:
+This function is weakly defined, meaning it can be overridden if necessary for your particular use case.
-#### Arguments
+#### Arguments {#api-i2c-ping-address-arguments}
- `uint8_t address`
- The 7-bit I2C address of the device (ie. without the read/write bit - this will be set automatically).
+ The 7-bit I2C address of the device.
- `uint16_t timeout`
The time in milliseconds to wait for a response from the target device.
-#### Return Value
+#### Return Value {#api-i2c-ping-address-return}
`I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`.
diff --git a/docs/drivers/is31fl3218.md b/docs/drivers/is31fl3218.md
new file mode 100644
index 00000000000..1c980691204
--- /dev/null
+++ b/docs/drivers/is31fl3218.md
@@ -0,0 +1,194 @@
+# IS31FL3218 Driver {#is31fl3218-driver}
+
+I²C LED driver by Lumissil. Supports up to 18 single-color LEDs, or 6 RGB LEDs.
+
+[IS31FL3218 Datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3218_DS.pdf)
+
+## Usage {#usage}
+
+The IS31FL3218 driver code is automatically included if you are using the [LED Matrix](../features/led_matrix) or [RGB Matrix](../features/rgb_matrix) feature with the `is31fl3218` driver set, and you would use those APIs instead.
+
+However, if you need to use the driver standalone, add this to your `rules.mk`:
+
+```make
+COMMON_VPATH += $(DRIVER_PATH)/led/issi
+SRC += is31fl3218-mono.c # For single-color
+SRC += is31fl3218.c # For RGB
+I2C_DRIVER_REQUIRED = yes
+```
+
+## Basic Configuration {#basic-configuration}
+
+Add the following to your `config.h`:
+
+|Define |Default |Description |
+|----------------------------|-------------|---------------------------------------------------|
+|`IS31FL3218_SDB_PIN` |*Not defined*|The GPIO pin connected to the driver's shutdown pin|
+|`IS31FL3218_I2C_TIMEOUT` |`100` |The I²C timeout in milliseconds |
+|`IS31FL3218_I2C_PERSISTENCE`|`0` |The number of times to retry I²C transmissions |
+
+### I²C Addressing {#i2c-addressing}
+
+The IS31FL3218's 7-bit I²C address is `0x54`, available as `IS31FL3218_I2C_ADDRESS`.
+
+## ARM/ChibiOS Configuration {#arm-configuration}
+
+Depending on the ChibiOS board configuration, you may need to [enable and configure I²C](i2c#arm-configuration) at the keyboard level.
+
+## LED Mapping {#led-mapping}
+
+In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`:
+
+```c
+const is31fl3218_led_t PROGMEM g_is31fl3218_leds[IS31FL3218_LED_COUNT] = {
+/* R G B */
+ {OUT1, OUT2, OUT3},
+ // etc...
+};
+```
+
+In this example, the red, green and blue channels for the first LED index all have their anodes connected to `VCC`, and their cathodes on the `OUT1`, `OUT2` and `OUT3` pins respectively.
+
+For the single-color driver, the principle is the same, but there is only one channel:
+
+```c
+const is31fl3218_led_t PROGMEM g_is31fl3218_leds[IS31FL3218_LED_COUNT] = {
+/* V */
+ {OUT1},
+ // etc...
+};
+```
+
+## API {#api}
+
+### `struct is31fl3218_led_t` {#api-is31fl3218-led-t}
+
+Contains the PWM register addresses for a single RGB LED.
+
+#### Members {#api-is31fl3218-led-t-members}
+
+ - `uint8_t r`
+ The output PWM register address for the LED's red channel (RGB driver only).
+ - `uint8_t g`
+ The output PWM register address for the LED's green channel (RGB driver only).
+ - `uint8_t b`
+ The output PWM register address for the LED's blue channel (RGB driver only).
+ - `uint8_t v`
+ The output PWM register address for the LED (single-color driver only).
+
+---
+
+### `void is31fl3218_init(void)` {#api-is31fl3218-init}
+
+Initialize the LED driver. This function should be called first.
+
+---
+
+### `void is31fl3218_write_register(uint8_t reg, uint8_t data)` {#api-is31fl3218-write-register}
+
+Set the value of the given register.
+
+#### Arguments {#api-is31fl3218-write-register-arguments}
+
+ - `uint8_t reg`
+ The register address.
+ - `uint8_t data`
+ The value to set.
+
+---
+
+### `void is31fl3218_set_color(int index, uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3218-set-color}
+
+Set the color of a single LED (RGB driver only). This function does not immediately update the LEDs; call `is31fl3218_update_pwm_buffers()` after you are finished.
+
+#### Arguments {#api-is31fl3218-set-color-arguments}
+
+ - `int index`
+ The LED index (ie. the index into the `g_is31fl3218_leds` array).
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void is31fl3218_set_color_all(uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3218-set-color-all}
+
+Set the color of all LEDs (RGB driver only).
+
+#### Arguments {#api-is31fl3218-set-color-all-arguments}
+
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void is31fl3218_set_value(int index, uint8_t value)` {#api-is31fl3218-set-value}
+
+Set the brightness of a single LED (single-color driver only). This function does not immediately update the LEDs; call `is31fl3218_update_pwm_buffers()` after you are finished.
+
+#### Arguments {#api-is31fl3218-set-value-arguments}
+
+ - `int index`
+ The LED index (ie. the index into the `g_is31fl3218_leds` array).
+ - `uint8_t value`
+ The brightness value to set.
+
+---
+
+### `void is31fl3218_set_value_all(uint8_t value)` {#api-is31fl3218-set-value-all}
+
+Set the brightness of all LEDs (single-color driver only).
+
+#### Arguments {#api-is31fl3218-set-value-all-arguments}
+
+ - `uint8_t value`
+ The brightness value to set.
+
+---
+
+### `void is31fl3218_set_led_control_register(uint8_t index, bool red, bool green, bool blue)` {#api-is31fl3218-set-led-control-register-rgb}
+
+Configure the LED control registers for a single LED (RGB driver only). This function does not immediately update the LEDs; call `is31fl3218_update_led_control_registers()` after you are finished.
+
+#### Arguments {#api-is31fl3218-set-led-control-register-rgb-arguments}
+
+ - `uint8_t index`
+ The LED index (ie. the index into the `g_is31fl3218_leds` array).
+ - `bool red`
+ Enable or disable the red channel.
+ - `bool green`
+ Enable or disable the green channel.
+ - `bool blue`
+ Enable or disable the blue channel.
+
+---
+
+### `void is31fl3218_set_led_control_register(uint8_t index, bool value)` {#api-is31fl3218-set-led-control-register-mono}
+
+Configure the LED control registers for a single LED (single-color driver only). This function does not immediately update the LEDs; call `is31fl3218_update_led_control_registers()` after you are finished.
+
+#### Arguments {#api-is31fl3218-set-led-control-register-mono-arguments}
+
+ - `uint8_t index`
+ The LED index (ie. the index into the `g_is31fl3218_leds` array).
+ - `bool value`
+ Enable or disable the LED.
+
+---
+
+### `void is31fl3218_update_pwm_buffers(void)` {#api-is31fl3218-update-pwm-buffers}
+
+Flush the PWM values to the LED driver.
+
+---
+
+### `void is31fl3218_update_led_control_registers(void)` {#api-is31fl3218-update-led-control-registers}
+
+Flush the LED control register values to the LED driver.
diff --git a/docs/drivers/is31fl3236.md b/docs/drivers/is31fl3236.md
new file mode 100644
index 00000000000..98e05e4abd4
--- /dev/null
+++ b/docs/drivers/is31fl3236.md
@@ -0,0 +1,228 @@
+# IS31FL3236 Driver {#is31fl3236-driver}
+
+I²C LED driver by Lumissil. Supports a maximum of four drivers, each controlling up to 36 single-color LEDs, or 12 RGB LEDs.
+
+[IS31FL3236 Datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3236_DS.pdf)
+
+## Usage {#usage}
+
+The IS31FL3236 driver code is automatically included if you are using the [LED Matrix](../features/led_matrix) or [RGB Matrix](../features/rgb_matrix) feature with the `is31fl3236` driver set, and you would use those APIs instead.
+
+However, if you need to use the driver standalone, add this to your `rules.mk`:
+
+```make
+COMMON_VPATH += $(DRIVER_PATH)/led/issi
+SRC += is31fl3236-mono.c # For single-color
+SRC += is31fl3236.c # For RGB
+I2C_DRIVER_REQUIRED = yes
+```
+
+## Basic Configuration {#basic-configuration}
+
+Add the following to your `config.h`:
+
+|Define |Default |Description |
+|----------------------------|-------------|----------------------------------------------------|
+|`IS31FL3236_SDB_PIN` |*Not defined*|The GPIO pin connected to the drivers' shutdown pins|
+|`IS31FL3236_I2C_TIMEOUT` |`100` |The I²C timeout in milliseconds |
+|`IS31FL3236_I2C_PERSISTENCE`|`0` |The number of times to retry I²C transmissions |
+|`IS31FL3236_I2C_ADDRESS_1` |*Not defined*|The I²C address of driver 0 |
+|`IS31FL3236_I2C_ADDRESS_2` |*Not defined*|The I²C address of driver 1 |
+|`IS31FL3236_I2C_ADDRESS_3` |*Not defined*|The I²C address of driver 2 |
+|`IS31FL3236_I2C_ADDRESS_4` |*Not defined*|The I²C address of driver 3 |
+
+### I²C Addressing {#i2c-addressing}
+
+The IS31FL3236 has four possible 7-bit I²C addresses, depending on how the `AD` pin is connected.
+
+To configure this, set the `IS31FL3236_I2C_ADDRESS_n` defines to one of the following in your `config.h`, where *n* denotes the driver index:
+
+|Define |Value |
+|----------------------------|------|
+|`IS31FL3236_I2C_ADDRESS_GND`|`0x3C`|
+|`IS31FL3236_I2C_ADDRESS_SCL`|`0x3D`|
+|`IS31FL3236_I2C_ADDRESS_SDA`|`0x3E`|
+|`IS31FL3236_I2C_ADDRESS_VCC`|`0x3F`|
+
+## ARM/ChibiOS Configuration {#arm-configuration}
+
+Depending on the ChibiOS board configuration, you may need to [enable and configure I²C](i2c#arm-configuration) at the keyboard level.
+
+## LED Mapping {#led-mapping}
+
+In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`:
+
+```c
+const is31fl3236_led_t PROGMEM g_is31fl3236_leds[IS31FL3236_LED_COUNT] = {
+/* Driver
+ | R G B */
+ {0, OUT1, OUT2, OUT3},
+ // etc...
+};
+```
+
+In this example, the red, green and blue channels for the first LED index on driver 0 all have their anodes connected to `VCC`, and their cathodes on the `OUT1`, `OUT2` and `OUT3` pins respectively.
+
+For the single-color driver, the principle is the same, but there is only one channel:
+
+```c
+const is31fl3236_led_t PROGMEM g_is31fl3236_leds[IS31FL3236_LED_COUNT] = {
+/* Driver
+ | V */
+ {0, OUT1},
+ // etc...
+};
+```
+
+## API {#api}
+
+### `struct is31fl3236_led_t` {#api-is31fl3236-led-t}
+
+Contains the PWM register addresses for a single RGB LED.
+
+#### Members {#api-is31fl3236-led-t-members}
+
+ - `uint8_t driver`
+ The driver index of the LED, from 0 to 3.
+ - `uint8_t r`
+ The output PWM register address for the LED's red channel (RGB driver only).
+ - `uint8_t g`
+ The output PWM register address for the LED's green channel (RGB driver only).
+ - `uint8_t b`
+ The output PWM register address for the LED's blue channel (RGB driver only).
+ - `uint8_t v`
+ The output PWM register address for the LED (single-color driver only).
+
+---
+
+### `void is31fl3236_init(uint8_t index)` {#api-is31fl3236-init}
+
+Initialize the LED driver. This function should be called first.
+
+#### Arguments {#api-is31fl3236-init-arguments}
+
+ - `uint8_t index`
+ The driver index.
+
+---
+
+### `void is31fl3236_write_register(uint8_t index, uint8_t reg, uint8_t data)` {#api-is31fl3236-write-register}
+
+Set the value of the given register.
+
+#### Arguments {#api-is31fl3236-write-register-arguments}
+
+ - `uint8_t index`
+ The driver index.
+ - `uint8_t reg`
+ The register address.
+ - `uint8_t data`
+ The value to set.
+
+---
+
+### `void is31fl3236_set_color(int index, uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3236-set-color}
+
+Set the color of a single LED (RGB driver only). This function does not immediately update the LEDs; call `is31fl3236_update_pwm_buffers()` after you are finished.
+
+#### Arguments {#api-is31fl3236-set-color-arguments}
+
+ - `int index`
+ The LED index (ie. the index into the `g_is31fl3236_leds` array).
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void is31fl3236_set_color_all(uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3236-set-color-all}
+
+Set the color of all LEDs (RGB driver only).
+
+#### Arguments {#api-is31fl3236-set-color-all-arguments}
+
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void is31fl3236_set_value(int index, uint8_t value)` {#api-is31fl3236-set-value}
+
+Set the brightness of a single LED (single-color driver only). This function does not immediately update the LEDs; call `is31fl3236_update_pwm_buffers()` after you are finished.
+
+#### Arguments {#api-is31fl3236-set-value-arguments}
+
+ - `int index`
+ The LED index (ie. the index into the `g_is31fl3236_leds` array).
+ - `uint8_t value`
+ The brightness value to set.
+
+---
+
+### `void is31fl3236_set_value_all(uint8_t value)` {#api-is31fl3236-set-value-all}
+
+Set the brightness of all LEDs (single-color driver only).
+
+#### Arguments {#api-is31fl3236-set-value-all-arguments}
+
+ - `uint8_t value`
+ The brightness value to set.
+
+---
+
+### `void is31fl3236_set_led_control_register(uint8_t index, bool red, bool green, bool blue)` {#api-is31fl3236-set-led-control-register-rgb}
+
+Configure the LED control registers for a single LED (RGB driver only). This function does not immediately update the LEDs; call `is31fl3236_update_led_control_registers()` after you are finished.
+
+#### Arguments {#api-is31fl3236-set-led-control-register-rgb-arguments}
+
+ - `uint8_t index`
+ The LED index (ie. the index into the `g_is31fl3236_leds` array).
+ - `bool red`
+ Enable or disable the red channel.
+ - `bool green`
+ Enable or disable the green channel.
+ - `bool blue`
+ Enable or disable the blue channel.
+
+---
+
+### `void is31fl3236_set_led_control_register(uint8_t index, bool value)` {#api-is31fl3236-set-led-control-register-mono}
+
+Configure the LED control registers for a single LED (single-color driver only). This function does not immediately update the LEDs; call `is31fl3236_update_led_control_registers()` after you are finished.
+
+#### Arguments {#api-is31fl3236-set-led-control-register-mono-arguments}
+
+ - `uint8_t index`
+ The LED index (ie. the index into the `g_is31fl3236_leds` array).
+ - `bool value`
+ Enable or disable the LED.
+
+---
+
+### `void is31fl3236_update_pwm_buffers(uint8_t index)` {#api-is31fl3236-update-pwm-buffers}
+
+Flush the PWM values to the LED driver.
+
+#### Arguments {#api-is31fl3236-update-pwm-buffers-arguments}
+
+ - `uint8_t index`
+ The driver index.
+
+---
+
+### `void is31fl3236_update_led_control_registers(uint8_t index)` {#api-is31fl3236-update-led-control-registers}
+
+Flush the LED control register values to the LED driver.
+
+#### Arguments {#api-is31fl3236-update-led-control-registers-arguments}
+
+ - `uint8_t index`
+ The driver index.
diff --git a/docs/drivers/is31fl3729.md b/docs/drivers/is31fl3729.md
new file mode 100644
index 00000000000..32618d82d59
--- /dev/null
+++ b/docs/drivers/is31fl3729.md
@@ -0,0 +1,300 @@
+# IS31FL3729 Driver {#is31fl3729-driver}
+
+I²C 16x8/15x9 LED matrix driver by Lumissil. Supports a maximum of four drivers, each controlling up to 135 single-color LEDs, or 45 RGB LEDs.
+
+[IS31FL3729 Datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3729_DS.pdf)
+
+## Usage {#usage}
+
+The IS31FL3729 driver code is automatically included if you are using the [LED Matrix](../features/led_matrix) or [RGB Matrix](../features/rgb_matrix) feature with the `is31fl3729` driver set, and you would use those APIs instead.
+
+However, if you need to use the driver standalone, add this to your `rules.mk`:
+
+```make
+COMMON_VPATH += $(DRIVER_PATH)/led/issi
+SRC += is31fl3729-mono.c # For single-color
+SRC += is31fl3729.c # For RGB
+I2C_DRIVER_REQUIRED = yes
+```
+
+## Basic Configuration {#basic-configuration}
+
+Add the following to your `config.h`:
+
+|Define |Default |Description |
+|----------------------------|--------------------------------------|----------------------------------------------------|
+|`IS31FL3729_SDB_PIN` |*Not defined* |The GPIO pin connected to the drivers' shutdown pins|
+|`IS31FL3729_I2C_TIMEOUT` |`100` |The I²C timeout in milliseconds |
+|`IS31FL3729_I2C_PERSISTENCE`|`0` |The number of times to retry I²C transmissions |
+|`IS31FL3729_I2C_ADDRESS_1` |*Not defined* |The I²C address of driver 0 |
+|`IS31FL3729_I2C_ADDRESS_2` |*Not defined* |The I²C address of driver 1 |
+|`IS31FL3729_I2C_ADDRESS_3` |*Not defined* |The I²C address of driver 2 |
+|`IS31FL3729_I2C_ADDRESS_4` |*Not defined* |The I²C address of driver 3 |
+|`IS31FL3729_PWM_FREQUENCY` |`IS31FL3729_PWM_FREQUENCY_32K_HZ` |The PWM frequency of the LEDs |
+|`IS31FL3729_SW_PULLDOWN` |`IS31FL3729_SW_PULLDOWN_2K_OHM_SW_OFF`|The `SWx` pullup resistor value |
+|`IS31FL3729_CS_PULLUP` |`IS31FL3729_CS_PULLUP_2K_OHM_CS_OFF` |The `CSx` pulldown resistor value |
+|`IS31FL3729_GLOBAL_CURRENT` |`0x40` |The global current control value |
+
+### I²C Addressing {#i2c-addressing}
+
+The IS31FL3729 has four possible 7-bit I²C addresses, depending on how the `AD` pin is connected.
+
+To configure this, set the `IS31FL3729_I2C_ADDRESS_n` defines to one of the following in your `config.h`, where *n* denotes the driver index:
+
+|Define |Value |
+|----------------------------|------|
+|`IS31FL3729_I2C_ADDRESS_GND`|`0x34`|
+|`IS31FL3729_I2C_ADDRESS_SCL`|`0x35`|
+|`IS31FL3729_I2C_ADDRESS_SDA`|`0x36`|
+|`IS31FL3729_I2C_ADDRESS_VCC`|`0x37`|
+
+### PWM Frequency {#pwm-frequency}
+
+The PWM frequency can be adjusted by adding the following to your `config.h`:
+
+```c
+#define IS31FL3729_PWM_FREQUENCY IS31FL3729_PWM_FREQUENCY_32K_HZ
+```
+
+Valid values are:
+
+|Define |Frequency |
+|----------------------------------|----------------|
+|`IS31FL3729_PWM_FREQUENCY_55K_HZ` |55 kHz |
+|`IS31FL3729_PWM_FREQUENCY_32K_HZ` |32 kHz (default)|
+|`IS31FL3729_PWM_FREQUENCY_4K_HZ` |4 kHz |
+|`IS31FL3729_PWM_FREQUENCY_2K_HZ` |2 kHz |
+|`IS31FL3729_PWM_FREQUENCY_1K_HZ` |1 kHz |
+|`IS31FL3729_PWM_FREQUENCY_500_HZ` |500 Hz |
+|`IS31FL3729_PWM_FREQUENCY_250_HZ` |250 Hz |
+|`IS31FL3729_PWM_FREQUENCY_80K_HZ` |80 kHz |
+
+### De-Ghosting {#de-ghosting}
+
+These settings control the pulldown and pullup resistor values on the `SWy` and `CSx` pins respectively, for the purposes of eliminating ghosting. Refer to the datasheet (p. 18) for more information on how and why this occurs.
+
+To adjust the resistor values, add the following to your `config.h`:
+
+```c
+#define IS31FL3729_SW_PULLDOWN IS31FL3729_SW_PULLDOWN_2K_OHM_SW_OFF
+#define IS31FL3729_CS_PULLUP IS31FL3729_CS_PULLUP_2K_OHM_CS_OFF
+```
+
+Valid values for `IS31FL3729_SW_PULLDOWN` are:
+
+|Define |Resistance |
+|---------------------------------------|------------------------------|
+|`IS31FL3729_SW_PULLDOWN_0_OHM` |None |
+|`IS31FL3729_SW_PULLDOWN_0K5_OHM_SW_OFF`|0.5 kΩ in SWy off time |
+|`IS31FL3729_SW_PULLDOWN_1K_OHM_SW_OFF` |1 kΩ in SWy off time |
+|`IS31FL3729_SW_PULLDOWN_2K_OHM_SW_OFF` |2 kΩ in SWy off time (default)|
+|`IS31FL3729_SW_PULLDOWN_1K_OHM` |1 kΩ |
+|`IS31FL3729_SW_PULLDOWN_2K_OHM` |2 kΩ |
+|`IS31FL3729_SW_PULLDOWN_4K_OHM` |4 kΩ |
+|`IS31FL3729_SW_PULLDOWN_8K_OHM` |8 kΩ |
+
+Valid values for `IS31FL3729_CS_PULLUP` are:
+
+|Define |Resistance |
+|-------------------------------------|------------------------------|
+|`IS31FL3729_CS_PULLUP_0_OHM` |None |
+|`IS31FL3729_CS_PULLUP_0K5_OHM_CS_OFF`|0.5 kΩ in CSx off time |
+|`IS31FL3729_CS_PULLUP_1K_OHM_CS_OFF` |1 kΩ in CSx off time |
+|`IS31FL3729_CS_PULLUP_2K_OHM_CS_OFF` |2 kΩ in CSx off time (default)|
+|`IS31FL3729_CS_PULLUP_1K_OHM` |1 kΩ |
+|`IS31FL3729_CS_PULLUP_2K_OHM` |2 kΩ |
+|`IS31FL3729_CS_PULLUP_4K_OHM` |4 kΩ |
+|`IS31FL3729_CS_PULLUP_8K_OHM` |8 kΩ |
+
+### Global Current Control {#global-current-control}
+
+This setting controls the current sunk by the `CSx` pins, from 0 to 255. By default, the value is 64, but if you need to adjust it, add the following to your `config.h`:
+
+```c
+#define IS31FL3729_GLOBAL_CURRENT 0x40
+```
+
+## ARM/ChibiOS Configuration {#arm-configuration}
+
+Depending on the ChibiOS board configuration, you may need to [enable and configure I²C](i2c#arm-configuration) at the keyboard level.
+
+## LED Mapping {#led-mapping}
+
+In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`:
+
+```c
+const is31fl3729_led_t PROGMEM g_is31fl3729_leds[IS31FL3729_LED_COUNT] = {
+/* Driver
+ * | R G B */
+ {0, SW1_CS1, SW1_CS2, SW1_CS3},
+ // etc...
+};
+```
+
+In this example, the red, green and blue channels for the first LED index on driver 0 all have their anodes connected to the `SW1` pin, and their cathodes on the `CS1`, `CS2` and `CS3` pins respectively.
+
+For the single-color driver, the principle is the same, but there is only one channel:
+
+```c
+const is31fl3729_led_t PROGMEM g_is31fl3729_leds[IS31FL3729_LED_COUNT] = {
+/* Driver
+ * | V */
+ {0, SW1_CS1},
+ // etc...
+};
+```
+
+These values correspond to the register indices as shown in the datasheet on page 12, figure 9.
+
+## API {#api}
+
+### `struct is31fl3729_led_t` {#api-is31fl3729-led-t}
+
+Contains the PWM register addresses for a single RGB LED.
+
+#### Members {#api-is31fl3729-led-t-members}
+
+ - `uint8_t driver`
+ The driver index of the LED, from 0 to 3.
+ - `uint8_t r`
+ The output PWM register address for the LED's red channel (RGB driver only).
+ - `uint8_t g`
+ The output PWM register address for the LED's green channel (RGB driver only).
+ - `uint8_t b`
+ The output PWM register address for the LED's blue channel (RGB driver only).
+ - `uint8_t v`
+ The output PWM register address for the LED (single-color driver only).
+
+---
+
+### `void is31fl3729_init(uint8_t index)` {#api-is31fl3729-init}
+
+Initialize the LED driver. This function should be called first.
+
+#### Arguments {#api-is31fl3729-init-arguments}
+
+ - `uint8_t index`
+ The driver index.
+
+---
+
+### `void is31fl3729_write_register(uint8_t index, uint8_t reg, uint8_t data)` {#api-is31fl3729-write-register}
+
+Set the value of the given register.
+
+#### Arguments {#api-is31fl3729-write-register-arguments}
+
+ - `uint8_t index`
+ The driver index.
+ - `uint8_t reg`
+ The register address.
+ - `uint8_t data`
+ The value to set.
+
+---
+
+### `void is31fl3729_set_color(int index, uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3729-set-color}
+
+Set the color of a single LED (RGB driver only). This function does not immediately update the LEDs; call `is31fl3729_update_pwm_buffers()` after you are finished.
+
+#### Arguments {#api-is31fl3729-set-color-arguments}
+
+ - `int index`
+ The LED index (ie. the index into the `g_is31fl3729_leds` array).
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void is31fl3729_set_color_all(uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3729-set-color-all}
+
+Set the color of all LEDs (RGB driver only).
+
+#### Arguments {#api-is31fl3729-set-color-all-arguments}
+
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void is31fl3729_set_value(int index, uint8_t value)` {#api-is31fl3729-set-value}
+
+Set the brightness of a single LED (single-color driver only). This function does not immediately update the LEDs; call `is31fl3729_update_pwm_buffers()` after you are finished.
+
+#### Arguments {#api-is31fl3729-set-value-arguments}
+
+ - `int index`
+ The LED index (ie. the index into the `g_is31fl3729_leds` array).
+ - `uint8_t value`
+ The brightness value to set.
+
+---
+
+### `void is31fl3729_set_value_all(uint8_t value)` {#api-is31fl3729-set-value-all}
+
+Set the brightness of all LEDs (single-color driver only).
+
+#### Arguments {#api-is31fl3729-set-value-all-arguments}
+
+ - `uint8_t value`
+ The brightness value to set.
+
+---
+
+### `void is31fl3729_set_scaling_register(uint8_t index, uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3729-set-scaling-register-rgb}
+
+Configure the scaling registers for a single LED (RGB driver only). This function does not immediately update the LEDs; call `is31fl3729_update_scaling_registers()` after you are finished.
+
+#### Arguments {#api-is31fl3729-set-scaling-register-rgb-arguments}
+
+ - `uint8_t index`
+ The LED index (ie. the index into the `g_is31fl3729_leds` array).
+ - `uint8_t red`
+ The scaling value for the red channel.
+ - `uint8_t green`
+ The scaling value for the green channel.
+ - `uint8_t blue`
+ The scaling value for the blue channel.
+
+---
+
+### `void is31fl3729_set_scaling_register(uint8_t index, uint8_t value)` {#api-is31fl3729-set-scaling-register-mono}
+
+Configure the scaling registers for a single LED (single-color driver only). This function does not immediately update the LEDs; call `is31fl3729_update_scaling_registers()` after you are finished.
+
+#### Arguments {#api-is31fl3729-set-scaling-register-mono-arguments}
+
+ - `uint8_t index`
+ The LED index (ie. the index into the `g_is31fl3729_leds` array).
+ - `uint8_t value`
+ The scaling value for the LED.
+
+---
+
+### `void is31fl3729_update_pwm_buffers(uint8_t index)` {#api-is31fl3729-update-pwm-buffers}
+
+Flush the PWM values to the LED driver.
+
+#### Arguments {#api-is31fl3729-update-pwm-buffers-arguments}
+
+ - `uint8_t index`
+ The driver index.
+
+---
+
+### `void is31fl3729_update_scaling_registers(uint8_t index)` {#api-is31fl3729-update-scaling-registers}
+
+Flush the scaling register values to the LED driver.
+
+#### Arguments {#api-is31fl3729-update-scaling-registers-arguments}
+
+ - `uint8_t index`
+ The driver index.
diff --git a/docs/drivers/is31fl3731.md b/docs/drivers/is31fl3731.md
new file mode 100644
index 00000000000..0d928a919ef
--- /dev/null
+++ b/docs/drivers/is31fl3731.md
@@ -0,0 +1,254 @@
+# IS31FL3731 Driver {#is31fl3731-driver}
+
+I²C Charlieplexed 16x9 LED matrix driver by Lumissil. Supports a maximum of four drivers, each controlling up to 144 single-color LEDs, or 48 RGB LEDs.
+
+[IS31FL3731 Datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3731_DS.pdf)
+
+## Usage {#usage}
+
+The IS31FL3731 driver code is automatically included if you are using the [LED Matrix](../features/led_matrix) or [RGB Matrix](../features/rgb_matrix) feature with the `is31fl3731` driver set, and you would use those APIs instead.
+
+However, if you need to use the driver standalone, add this to your `rules.mk`:
+
+```make
+COMMON_VPATH += $(DRIVER_PATH)/led/issi
+SRC += is31fl3731-mono.c # For single-color
+SRC += is31fl3731.c # For RGB
+I2C_DRIVER_REQUIRED = yes
+```
+
+## Basic Configuration {#basic-configuration}
+
+Add the following to your `config.h`:
+
+|Define |Default |Description |
+|----------------------------|-------------|----------------------------------------------------|
+|`IS31FL3731_SDB_PIN` |*Not defined*|The GPIO pin connected to the drivers' shutdown pins|
+|`IS31FL3731_I2C_TIMEOUT` |`100` |The I²C timeout in milliseconds |
+|`IS31FL3731_I2C_PERSISTENCE`|`0` |The number of times to retry I²C transmissions |
+|`IS31FL3731_I2C_ADDRESS_1` |*Not defined*|The I²C address of driver 0 |
+|`IS31FL3731_I2C_ADDRESS_2` |*Not defined*|The I²C address of driver 1 |
+|`IS31FL3731_I2C_ADDRESS_3` |*Not defined*|The I²C address of driver 2 |
+|`IS31FL3731_I2C_ADDRESS_4` |*Not defined*|The I²C address of driver 3 |
+|`IS31FL3731_DEGHOST` |*Not defined*|Enable ghost image prevention |
+
+### I²C Addressing {#i2c-addressing}
+
+The IS31FL3731 has four possible 7-bit I²C addresses, depending on how the `AD` pin is connected.
+
+To configure this, set the `IS31FL3731_I2C_ADDRESS_n` defines to one of the following in your `config.h`, where *n* denotes the driver index:
+
+|Define |Value |
+|----------------------------|------|
+|`IS31FL3731_I2C_ADDRESS_GND`|`0x74`|
+|`IS31FL3731_I2C_ADDRESS_SCL`|`0x75`|
+|`IS31FL3731_I2C_ADDRESS_SDA`|`0x76`|
+|`IS31FL3731_I2C_ADDRESS_VCC`|`0x77`|
+
+### De-Ghosting {#de-ghosting}
+
+This setting enables the de-ghosting feature on the IS31FL3731. See this [Application Note](https://www.lumissil.com/assets/pdf/core/IS31FL3731_AN.pdf) (p. 15) for more information.
+
+To enable, add the following to your `config.h`:
+
+```c
+#define IS31FL3731_DEGHOST
+```
+
+## ARM/ChibiOS Configuration {#arm-configuration}
+
+Depending on the ChibiOS board configuration, you may need to [enable and configure I²C](i2c#arm-configuration) at the keyboard level.
+
+## LED Mapping {#led-mapping}
+
+In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`:
+
+```c
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
+/* Driver
+ * | R G B */
+ {0, C1_1, C1_2, C1_3},
+ // etc...
+};
+```
+
+In this example, the red, green and blue channels for the first LED index on driver 0 all have their cathodes connected to the `CA1` pin, and their anodes on the `CA2`, `CA3` and `CA4` pins respectively.
+
+For the single-color driver, the principle is the same, but there is only one channel:
+
+```c
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
+/* Driver
+ * | V */
+ {0, C1_1},
+ // etc...
+};
+```
+
+These values correspond to the register indices as shown in the datasheet on page 11, figure 8.
+
+## API {#api}
+
+### `struct is31fl3731_led_t` {#api-is31fl3731-led-t}
+
+Contains the PWM register addresses for a single RGB LED.
+
+#### Members {#api-is31fl3731-led-t-members}
+
+ - `uint8_t driver`
+ The driver index of the LED, from 0 to 3.
+ - `uint8_t r`
+ The output PWM register address for the LED's red channel (RGB driver only).
+ - `uint8_t g`
+ The output PWM register address for the LED's green channel (RGB driver only).
+ - `uint8_t b`
+ The output PWM register address for the LED's blue channel (RGB driver only).
+ - `uint8_t v`
+ The output PWM register address for the LED (single-color driver only).
+
+---
+
+### `void is31fl3731_init(uint8_t index)` {#api-is31fl3731-init}
+
+Initialize the LED driver. This function should be called first.
+
+#### Arguments {#api-is31fl3731-init-arguments}
+
+ - `uint8_t index`
+ The driver index.
+
+---
+
+### `void is31fl3731_write_register(uint8_t index, uint8_t reg, uint8_t data)` {#api-is31fl3731-write-register}
+
+Set the value of the given register.
+
+#### Arguments {#api-is31fl3731-write-register-arguments}
+
+ - `uint8_t index`
+ The driver index.
+ - `uint8_t reg`
+ The register address.
+ - `uint8_t data`
+ The value to set.
+
+---
+
+### `void is31fl3731_select_page(uint8_t index, uint8_t page)` {#api-is31fl3731-select-page}
+
+Change the current page for configuring the LED driver.
+
+#### Arguments {#api-is31fl3731-select-page-arguments}
+
+ - `uint8_t index`
+ The driver index.
+ - `uint8_t page`
+ The page number to select.
+
+---
+
+### `void is31fl3731_set_color(int index, uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3731-set-color}
+
+Set the color of a single LED (RGB driver only). This function does not immediately update the LEDs; call `is31fl3731_update_pwm_buffers()` after you are finished.
+
+#### Arguments {#api-is31fl3731-set-color-arguments}
+
+ - `int index`
+ The LED index (ie. the index into the `g_is31fl3731_leds` array).
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void is31fl3731_set_color_all(uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3731-set-color-all}
+
+Set the color of all LEDs (RGB driver only).
+
+#### Arguments {#api-is31fl3731-set-color-all-arguments}
+
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void is31fl3731_set_value(int index, uint8_t value)` {#api-is31fl3731-set-value}
+
+Set the brightness of a single LED (single-color driver only). This function does not immediately update the LEDs; call `is31fl3731_update_pwm_buffers()` after you are finished.
+
+#### Arguments {#api-is31fl3731-set-value-arguments}
+
+ - `int index`
+ The LED index (ie. the index into the `g_is31fl3731_leds` array).
+ - `uint8_t value`
+ The brightness value to set.
+
+---
+
+### `void is31fl3731_set_value_all(uint8_t value)` {#api-is31fl3731-set-value-all}
+
+Set the brightness of all LEDs (single-color driver only).
+
+#### Arguments {#api-is31fl3731-set-value-all-arguments}
+
+ - `uint8_t value`
+ The brightness value to set.
+
+---
+
+### `void is31fl3731_set_led_control_register(uint8_t index, bool red, bool green, bool blue)` {#api-is31fl3731-set-led-control-register-rgb}
+
+Configure the LED control registers for a single LED (RGB driver only). This function does not immediately update the LEDs; call `is31fl3731_update_led_control_registers()` after you are finished.
+
+#### Arguments {#api-is31fl3731-set-led-control-register-rgb-arguments}
+
+ - `uint8_t index`
+ The LED index (ie. the index into the `g_is31fl3731_leds` array).
+ - `bool red`
+ Enable or disable the red channel.
+ - `bool green`
+ Enable or disable the green channel.
+ - `bool blue`
+ Enable or disable the blue channel.
+
+---
+
+### `void is31fl3731_set_led_control_register(uint8_t index, bool value)` {#api-is31fl3731-set-led-control-register-mono}
+
+Configure the LED control registers for a single LED (single-color driver only). This function does not immediately update the LEDs; call `is31fl3731_update_led_control_registers()` after you are finished.
+
+#### Arguments {#api-is31fl3731-set-led-control-register-mono-arguments}
+
+ - `uint8_t index`
+ The LED index (ie. the index into the `g_is31fl3731_leds` array).
+ - `bool value`
+ Enable or disable the LED.
+
+---
+
+### `void is31fl3731_update_pwm_buffers(uint8_t index)` {#api-is31fl3731-update-pwm-buffers}
+
+Flush the PWM values to the LED driver.
+
+#### Arguments {#api-is31fl3731-update-pwm-buffers-arguments}
+
+ - `uint8_t index`
+ The driver index.
+
+---
+
+### `void is31fl3731_update_led_control_registers(uint8_t index)` {#api-is31fl3731-update-led-control-registers}
+
+Flush the LED control register values to the LED driver.
+
+#### Arguments {#api-is31fl3731-update-led-control-registers-arguments}
+
+ - `uint8_t index`
+ The driver index.
diff --git a/docs/drivers/is31fl3733.md b/docs/drivers/is31fl3733.md
new file mode 100644
index 00000000000..e299f785bda
--- /dev/null
+++ b/docs/drivers/is31fl3733.md
@@ -0,0 +1,338 @@
+# IS31FL3733 Driver {#is31fl3733-driver}
+
+I²C 12x16 LED matrix driver by Lumissil. Supports a maximum of four drivers, each controlling up to 192 single-color LEDs, or 64 RGB LEDs.
+
+[IS31FL3733 Datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3733_DS.pdf)
+
+## Usage {#usage}
+
+The IS31FL3733 driver code is automatically included if you are using the [LED Matrix](../features/led_matrix) or [RGB Matrix](../features/rgb_matrix) feature with the `is31fl3733` driver set, and you would use those APIs instead.
+
+However, if you need to use the driver standalone, add this to your `rules.mk`:
+
+```make
+COMMON_VPATH += $(DRIVER_PATH)/led/issi
+SRC += is31fl3733-mono.c # For single-color
+SRC += is31fl3733.c # For RGB
+I2C_DRIVER_REQUIRED = yes
+```
+
+## Basic Configuration {#basic-configuration}
+
+Add the following to your `config.h`:
+
+|Define |Default |Description |
+|----------------------------|---------------------------------|----------------------------------------------------|
+|`IS31FL3733_SDB_PIN` |*Not defined* |The GPIO pin connected to the drivers' shutdown pins|
+|`IS31FL3733_I2C_TIMEOUT` |`100` |The I²C timeout in milliseconds |
+|`IS31FL3733_I2C_PERSISTENCE`|`0` |The number of times to retry I²C transmissions |
+|`IS31FL3733_I2C_ADDRESS_1` |*Not defined* |The I²C address of driver 0 |
+|`IS31FL3733_I2C_ADDRESS_2` |*Not defined* |The I²C address of driver 1 |
+|`IS31FL3733_I2C_ADDRESS_3` |*Not defined* |The I²C address of driver 2 |
+|`IS31FL3733_I2C_ADDRESS_4` |*Not defined* |The I²C address of driver 3 |
+|`IS31FL3733_SYNC_1` |`IS31FL3733_SYNC_NONE` |The sync configuration for driver 0 |
+|`IS31FL3733_SYNC_2` |`IS31FL3733_SYNC_NONE` |The sync configuration for driver 1 |
+|`IS31FL3733_SYNC_3` |`IS31FL3733_SYNC_NONE` |The sync configuration for driver 2 |
+|`IS31FL3733_SYNC_4` |`IS31FL3733_SYNC_NONE` |The sync configuration for driver 3 |
+|`IS31FL3733_PWM_FREQUENCY` |`IS31FL3733_PWM_FREQUENCY_8K4_HZ`|The PWM frequency of the LEDs (IS31FL3733B only) |
+|`IS31FL3733_SW_PULLUP` |`IS31FL3733_PUR_0_OHM` |The `SWx` pullup resistor value |
+|`IS31FL3733_CS_PULLDOWN` |`IS31FL3733_PDR_0_OHM` |The `CSx` pulldown resistor value |
+|`IS31FL3733_GLOBAL_CURRENT` |`0xFF` |The global current control value |
+
+### I²C Addressing {#i2c-addressing}
+
+The IS31FL3733 has 16 possible 7-bit I²C addresses, depending on how the `ADDR1` and `ADDR2` pins are connected.
+
+To configure this, set the `IS31FL3733_I2C_ADDRESS_n` defines to one of the following in your `config.h`, where *n* denotes the driver index:
+
+|Define |Value |
+|--------------------------------|------|
+|`IS31FL3733_I2C_ADDRESS_GND_GND`|`0x50`|
+|`IS31FL3733_I2C_ADDRESS_GND_SCL`|`0x51`|
+|`IS31FL3733_I2C_ADDRESS_GND_SDA`|`0x52`|
+|`IS31FL3733_I2C_ADDRESS_GND_VCC`|`0x53`|
+|`IS31FL3733_I2C_ADDRESS_SCL_GND`|`0x54`|
+|`IS31FL3733_I2C_ADDRESS_SCL_SCL`|`0x55`|
+|`IS31FL3733_I2C_ADDRESS_SCL_SDA`|`0x56`|
+|`IS31FL3733_I2C_ADDRESS_SCL_VCC`|`0x57`|
+|`IS31FL3733_I2C_ADDRESS_SDA_GND`|`0x58`|
+|`IS31FL3733_I2C_ADDRESS_SDA_SCL`|`0x59`|
+|`IS31FL3733_I2C_ADDRESS_SDA_SDA`|`0x5A`|
+|`IS31FL3733_I2C_ADDRESS_SDA_VCC`|`0x5B`|
+|`IS31FL3733_I2C_ADDRESS_VCC_GND`|`0x5C`|
+|`IS31FL3733_I2C_ADDRESS_VCC_SCL`|`0x5D`|
+|`IS31FL3733_I2C_ADDRESS_VCC_SDA`|`0x5E`|
+|`IS31FL3733_I2C_ADDRESS_VCC_VCC`|`0x5F`|
+
+### Multi-Driver Synchronization {#multi-driver-synchronization}
+
+Multiple IS31FL3733 drivers can be synchronized by connecting the `SYNC` pins together. One driver must be designated as the "master", and the others configured as "slave".
+
+To do this, set the `IS31FL3733_SYNC_n` defines accordingly in your `config.h`, where *n* denotes the driver index:
+
+|Define |Value |
+|------------------------|---------------------------|
+|`IS31FL3733_SYNC_NONE` |No synchronization |
+|`IS31FL3733_SYNC_MASTER`|Driver configured as master|
+|`IS31FL3733_SYNC_SLAVE` |Driver configured as slave |
+
+### PWM Frequency {#pwm-frequency}
+
+The PWM frequency can be adjusted (for IS31FL3733B only) by adding the following to your `config.h`:
+
+```c
+#define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_8K4_HZ
+```
+
+Valid values are:
+
+|Define |Frequency |
+|----------------------------------|-----------------|
+|`IS31FL3733_PWM_FREQUENCY_8K4_HZ` |8.4 kHz (default)|
+|`IS31FL3733_PWM_FREQUENCY_4K2_HZ` |4.2 kHz |
+|`IS31FL3733_PWM_FREQUENCY_26K7_HZ`|26.7 kHz |
+|`IS31FL3733_PWM_FREQUENCY_2K1_HZ` |2.1 kHz |
+|`IS31FL3733_PWM_FREQUENCY_1K05_HZ`|1.05 kHz |
+
+### De-Ghosting {#de-ghosting}
+
+These settings control the pullup and pulldown resistor values on the `SWy` and `CSx` pins respectively, for the purposes of eliminating ghosting. Refer to the datasheet (p. 23) for more information on how and why this occurs.
+
+To adjust the resistor values, add the following to your `config.h`:
+
+```c
+#define IS31FL3733_SW_PULLUP IS31FL3733_PUR_0_OHM
+#define IS31FL3733_CS_PULLDOWN IS31FL3733_PUR_0_OHM
+```
+
+Valid values for `IS31FL3733_SW_PULLUP` are:
+
+|Define |Resistance |
+|------------------------|--------------|
+|`IS31FL3733_PUR_0_OHM` |None (default)|
+|`IS31FL3733_PUR_0K5_OHM`|0.5 kΩ |
+|`IS31FL3733_PUR_1K_OHM` |1 kΩ |
+|`IS31FL3733_PUR_2K_OHM` |2 kΩ |
+|`IS31FL3733_PUR_4K_OHM` |4 kΩ |
+|`IS31FL3733_PUR_8K_OHM` |8 kΩ |
+|`IS31FL3733_PUR_16K_OHM`|16 kΩ |
+|`IS31FL3733_PUR_32K_OHM`|32 kΩ |
+
+Valid values for `IS31FL3733_CS_PULLDOWN` are:
+
+|Define |Resistance |
+|------------------------|--------------|
+|`IS31FL3733_PDR_0_OHM` |None (default)|
+|`IS31FL3733_PDR_0K5_OHM`|0.5 kΩ |
+|`IS31FL3733_PDR_1K_OHM` |1 kΩ |
+|`IS31FL3733_PDR_2K_OHM` |2 kΩ |
+|`IS31FL3733_PDR_4K_OHM` |4 kΩ |
+|`IS31FL3733_PDR_8K_OHM` |8 kΩ |
+|`IS31FL3733_PDR_16K_OHM`|16 kΩ |
+|`IS31FL3733_PDR_32K_OHM`|32 kΩ |
+
+### Global Current Control {#global-current-control}
+
+This setting controls the current sunk by the `CSx` pins, from 0 to 255. By default, the value is the maximum (255), but if you need to lower it, add the following to your `config.h`:
+
+```c
+#define IS31FL3733_GLOBAL_CURRENT 0xFF
+```
+
+## ARM/ChibiOS Configuration {#arm-configuration}
+
+Depending on the ChibiOS board configuration, you may need to [enable and configure I²C](i2c#arm-configuration) at the keyboard level.
+
+## LED Mapping {#led-mapping}
+
+In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`:
+
+```c
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
+/* Driver
+ * | R G B */
+ {0, SW1_CS1, SW1_CS2, SW1_CS3},
+ // etc...
+};
+```
+
+In this example, the red, green and blue channels for the first LED index on driver 0 all have their cathodes connected to the `SW1` pin, and their anodes on the `CS1`, `CS2` and `CS3` pins respectively.
+
+For the single-color driver, the principle is the same, but there is only one channel:
+
+```c
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
+/* Driver
+ * | V */
+ {0, SW1_CS1},
+ // etc...
+};
+```
+
+These values correspond to the register indices as shown in the datasheet on page 15, figure 9.
+
+## API {#api}
+
+### `struct is31fl3733_led_t` {#api-is31fl3733-led-t}
+
+Contains the PWM register addresses for a single RGB LED.
+
+#### Members {#api-is31fl3733-led-t-members}
+
+ - `uint8_t driver`
+ The driver index of the LED, from 0 to 3.
+ - `uint8_t r`
+ The output PWM register address for the LED's red channel (RGB driver only).
+ - `uint8_t g`
+ The output PWM register address for the LED's green channel (RGB driver only).
+ - `uint8_t b`
+ The output PWM register address for the LED's blue channel (RGB driver only).
+ - `uint8_t v`
+ The output PWM register address for the LED (single-color driver only).
+
+---
+
+### `void is31fl3733_init(uint8_t index)` {#api-is31fl3733-init}
+
+Initialize the LED driver. This function should be called first.
+
+#### Arguments {#api-is31fl3733-init-arguments}
+
+ - `uint8_t index`
+ The driver index.
+
+---
+
+### `void is31fl3733_write_register(uint8_t index, uint8_t reg, uint8_t data)` {#api-is31fl3733-write-register}
+
+Set the value of the given register.
+
+#### Arguments {#api-is31fl3733-write-register-arguments}
+
+ - `uint8_t index`
+ The driver index.
+ - `uint8_t reg`
+ The register address.
+ - `uint8_t data`
+ The value to set.
+
+---
+
+### `void is31fl3733_select_page(uint8_t index, uint8_t page)` {#api-is31fl3733-select-page}
+
+Change the current page for configuring the LED driver.
+
+#### Arguments {#api-is31fl3733-select-page-arguments}
+
+ - `uint8_t index`
+ The driver index.
+ - `uint8_t page`
+ The page number to select.
+
+---
+
+### `void is31fl3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3733-set-color}
+
+Set the color of a single LED (RGB driver only). This function does not immediately update the LEDs; call `is31fl3733_update_pwm_buffers()` after you are finished.
+
+#### Arguments {#api-is31fl3733-set-color-arguments}
+
+ - `int index`
+ The LED index (ie. the index into the `g_is31fl3733_leds` array).
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void is31fl3733_set_color_all(uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3733-set-color-all}
+
+Set the color of all LEDs (RGB driver only).
+
+#### Arguments {#api-is31fl3733-set-color-all-arguments}
+
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void is31fl3733_set_value(int index, uint8_t value)` {#api-is31fl3733-set-value}
+
+Set the brightness of a single LED (single-color driver only). This function does not immediately update the LEDs; call `is31fl3733_update_pwm_buffers()` after you are finished.
+
+#### Arguments {#api-is31fl3733-set-value-arguments}
+
+ - `int index`
+ The LED index (ie. the index into the `g_is31fl3733_leds` array).
+ - `uint8_t value`
+ The brightness value to set.
+
+---
+
+### `void is31fl3733_set_value_all(uint8_t value)` {#api-is31fl3733-set-value-all}
+
+Set the brightness of all LEDs (single-color driver only).
+
+#### Arguments {#api-is31fl3733-set-value-all-arguments}
+
+ - `uint8_t value`
+ The brightness value to set.
+
+---
+
+### `void is31fl3733_set_led_control_register(uint8_t index, bool red, bool green, bool blue)` {#api-is31fl3733-set-led-control-register-rgb}
+
+Configure the LED control registers for a single LED (RGB driver only). This function does not immediately update the LEDs; call `is31fl3733_update_led_control_registers()` after you are finished.
+
+#### Arguments {#api-is31fl3733-set-led-control-register-rgb-arguments}
+
+ - `uint8_t index`
+ The LED index (ie. the index into the `g_is31fl3733_leds` array).
+ - `bool red`
+ Enable or disable the red channel.
+ - `bool green`
+ Enable or disable the green channel.
+ - `bool blue`
+ Enable or disable the blue channel.
+
+---
+
+### `void is31fl3733_set_led_control_register(uint8_t index, bool value)` {#api-is31fl3733-set-led-control-register-mono}
+
+Configure the LED control registers for a single LED (single-color driver only). This function does not immediately update the LEDs; call `is31fl3733_update_led_control_registers()` after you are finished.
+
+#### Arguments {#api-is31fl3733-set-led-control-register-mono-arguments}
+
+ - `uint8_t index`
+ The LED index (ie. the index into the `g_is31fl3733_leds` array).
+ - `bool value`
+ Enable or disable the LED.
+
+---
+
+### `void is31fl3733_update_pwm_buffers(uint8_t index)` {#api-is31fl3733-update-pwm-buffers}
+
+Flush the PWM values to the LED driver.
+
+#### Arguments {#api-is31fl3733-update-pwm-buffers-arguments}
+
+ - `uint8_t index`
+ The driver index.
+
+---
+
+### `void is31fl3733_update_led_control_registers(uint8_t index)` {#api-is31fl3733-update-led-control-registers}
+
+Flush the LED control register values to the LED driver.
+
+#### Arguments {#api-is31fl3733-update-led-control-registers-arguments}
+
+ - `uint8_t index`
+ The driver index.
diff --git a/docs/drivers/is31fl3736.md b/docs/drivers/is31fl3736.md
new file mode 100644
index 00000000000..b679a232cd6
--- /dev/null
+++ b/docs/drivers/is31fl3736.md
@@ -0,0 +1,322 @@
+# IS31FL3736 Driver {#is31fl3736-driver}
+
+I²C 12x8 LED matrix driver by Lumissil. Supports a maximum of four drivers, each controlling up to 96 single-color LEDs, or 32 RGB LEDs.
+
+[IS31FL3736 Datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3736_DS.pdf)
+
+## Usage {#usage}
+
+The IS31FL3736 driver code is automatically included if you are using the [LED Matrix](../features/led_matrix) or [RGB Matrix](../features/rgb_matrix) feature with the `is31fl3736` driver set, and you would use those APIs instead.
+
+However, if you need to use the driver standalone, add this to your `rules.mk`:
+
+```make
+COMMON_VPATH += $(DRIVER_PATH)/led/issi
+SRC += is31fl3736-mono.c # For single-color
+SRC += is31fl3736.c # For RGB
+I2C_DRIVER_REQUIRED = yes
+```
+
+## Basic Configuration {#basic-configuration}
+
+Add the following to your `config.h`:
+
+|Define |Default |Description |
+|----------------------------|---------------------------------|----------------------------------------------------|
+|`IS31FL3736_SDB_PIN` |*Not defined* |The GPIO pin connected to the drivers' shutdown pins|
+|`IS31FL3736_I2C_TIMEOUT` |`100` |The I²C timeout in milliseconds |
+|`IS31FL3736_I2C_PERSISTENCE`|`0` |The number of times to retry I²C transmissions |
+|`IS31FL3736_I2C_ADDRESS_1` |*Not defined* |The I²C address of driver 0 |
+|`IS31FL3736_I2C_ADDRESS_2` |*Not defined* |The I²C address of driver 1 |
+|`IS31FL3736_I2C_ADDRESS_3` |*Not defined* |The I²C address of driver 2 |
+|`IS31FL3736_I2C_ADDRESS_4` |*Not defined* |The I²C address of driver 3 |
+|`IS31FL3736_PWM_FREQUENCY` |`IS31FL3736_PWM_FREQUENCY_8K4_HZ`|The PWM frequency of the LEDs (IS31FL3736B only) |
+|`IS31FL3736_SW_PULLUP` |`IS31FL3736_PUR_0_OHM` |The `SWx` pullup resistor value |
+|`IS31FL3736_CS_PULLDOWN` |`IS31FL3736_PDR_0_OHM` |The `CSx` pulldown resistor value |
+|`IS31FL3736_GLOBAL_CURRENT` |`0xFF` |The global current control value |
+
+### I²C Addressing {#i2c-addressing}
+
+The IS31FL3736 has 16 possible 7-bit I²C addresses, depending on how the `ADDR1` and `ADDR2` pins are connected.
+
+To configure this, set the `IS31FL3736_I2C_ADDRESS_n` defines to one of the following in your `config.h`, where *n* denotes the driver index:
+
+|Define |Value |
+|--------------------------------|------|
+|`IS31FL3736_I2C_ADDRESS_GND_GND`|`0x50`|
+|`IS31FL3736_I2C_ADDRESS_GND_SCL`|`0x51`|
+|`IS31FL3736_I2C_ADDRESS_GND_SDA`|`0x52`|
+|`IS31FL3736_I2C_ADDRESS_GND_VCC`|`0x53`|
+|`IS31FL3736_I2C_ADDRESS_SCL_GND`|`0x54`|
+|`IS31FL3736_I2C_ADDRESS_SCL_SCL`|`0x55`|
+|`IS31FL3736_I2C_ADDRESS_SCL_SDA`|`0x56`|
+|`IS31FL3736_I2C_ADDRESS_SCL_VCC`|`0x57`|
+|`IS31FL3736_I2C_ADDRESS_SDA_GND`|`0x58`|
+|`IS31FL3736_I2C_ADDRESS_SDA_SCL`|`0x59`|
+|`IS31FL3736_I2C_ADDRESS_SDA_SDA`|`0x5A`|
+|`IS31FL3736_I2C_ADDRESS_SDA_VCC`|`0x5B`|
+|`IS31FL3736_I2C_ADDRESS_VCC_GND`|`0x5C`|
+|`IS31FL3736_I2C_ADDRESS_VCC_SCL`|`0x5D`|
+|`IS31FL3736_I2C_ADDRESS_VCC_SDA`|`0x5E`|
+|`IS31FL3736_I2C_ADDRESS_VCC_VCC`|`0x5F`|
+
+### PWM Frequency {#pwm-frequency}
+
+The PWM frequency can be adjusted (for IS31FL3736B only) by adding the following to your `config.h`:
+
+```c
+#define IS31FL3736_PWM_FREQUENCY IS31FL3736_PWM_FREQUENCY_8K4_HZ
+```
+
+Valid values are:
+
+|Define |Frequency |
+|----------------------------------|-----------------|
+|`IS31FL3736_PWM_FREQUENCY_8K4_HZ` |8.4 kHz (default)|
+|`IS31FL3736_PWM_FREQUENCY_4K2_HZ` |4.2 kHz |
+|`IS31FL3736_PWM_FREQUENCY_26K7_HZ`|26.7 kHz |
+|`IS31FL3736_PWM_FREQUENCY_2K1_HZ` |2.1 kHz |
+|`IS31FL3736_PWM_FREQUENCY_1K05_HZ`|1.05 kHz |
+
+### De-Ghosting {#de-ghosting}
+
+These settings control the pullup and pulldown resistor values on the `SWy` and `CSx` pins respectively, for the purposes of eliminating ghosting. Refer to the datasheet (p. 25) for more information on how and why this occurs.
+
+To adjust the resistor values, add the following to your `config.h`:
+
+```c
+#define IS31FL3736_SW_PULLUP IS31FL3736_PUR_0_OHM
+#define IS31FL3736_CS_PULLDOWN IS31FL3736_PDR_0_OHM
+```
+
+Valid values for `IS31FL3736_SW_PULLUP` are:
+
+|Define |Resistance |
+|------------------------|--------------|
+|`IS31FL3736_PUR_0_OHM` |None (default)|
+|`IS31FL3736_PUR_0K5_OHM`|0.5 kΩ |
+|`IS31FL3736_PUR_1K_OHM` |1 kΩ |
+|`IS31FL3736_PUR_2K_OHM` |2 kΩ |
+|`IS31FL3736_PUR_4K_OHM` |4 kΩ |
+|`IS31FL3736_PUR_8K_OHM` |8 kΩ |
+|`IS31FL3736_PUR_16K_OHM`|16 kΩ |
+|`IS31FL3736_PUR_32K_OHM`|32 kΩ |
+
+Valid values for `IS31FL3736_CS_PULLDOWN` are:
+
+|Define |Resistance |
+|------------------------|--------------|
+|`IS31FL3736_PDR_0_OHM` |None (default)|
+|`IS31FL3736_PDR_0K5_OHM`|0.5 kΩ |
+|`IS31FL3736_PDR_1K_OHM` |1 kΩ |
+|`IS31FL3736_PDR_2K_OHM` |2 kΩ |
+|`IS31FL3736_PDR_4K_OHM` |4 kΩ |
+|`IS31FL3736_PDR_8K_OHM` |8 kΩ |
+|`IS31FL3736_PDR_16K_OHM`|16 kΩ |
+|`IS31FL3736_PDR_32K_OHM`|32 kΩ |
+
+### Global Current Control {#global-current-control}
+
+This setting controls the current sunk by the `CSx` pins, from 0 to 255. By default, the value is the maximum (255), but if you need to lower it, add the following to your `config.h`:
+
+```c
+#define IS31FL3736_GLOBAL_CURRENT 0xFF
+```
+
+## ARM/ChibiOS Configuration {#arm-configuration}
+
+Depending on the ChibiOS board configuration, you may need to [enable and configure I²C](i2c#arm-configuration) at the keyboard level.
+
+## LED Mapping {#led-mapping}
+
+In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`:
+
+```c
+const is31fl3736_led_t PROGMEM g_is31fl3736_leds[IS31FL3736_LED_COUNT] = {
+/* Driver
+ * | R G B */
+ {0, SW1_CS1, SW1_CS2, SW1_CS3},
+ // etc...
+};
+```
+
+In this example, the red, green and blue channels for the first LED index on driver 0 all have their cathodes connected to the `SW1` pin, and their anodes on the `CS1`, `CS2` and `CS3` pins respectively.
+
+For the single-color driver, the principle is the same, but there is only one channel:
+
+```c
+const is31fl3736_led_t PROGMEM g_is31fl3736_leds[IS31FL3736_LED_COUNT] = {
+/* Driver
+ * | V */
+ {0, SW1_CS1},
+ // etc...
+};
+```
+
+These values correspond to the register indices as shown in the datasheet on page 16, figure 9.
+
+## API {#api}
+
+### `struct is31fl3736_led_t` {#api-is31fl3736-led-t}
+
+Contains the PWM register addresses for a single RGB LED.
+
+#### Members {#api-is31fl3736-led-t-members}
+
+ - `uint8_t driver`
+ The driver index of the LED, from 0 to 3.
+ - `uint8_t r`
+ The output PWM register address for the LED's red channel (RGB driver only).
+ - `uint8_t g`
+ The output PWM register address for the LED's green channel (RGB driver only).
+ - `uint8_t b`
+ The output PWM register address for the LED's blue channel (RGB driver only).
+ - `uint8_t v`
+ The output PWM register address for the LED (single-color driver only).
+
+---
+
+### `void is31fl3736_init(uint8_t index)` {#api-is31fl3736-init}
+
+Initialize the LED driver. This function should be called first.
+
+#### Arguments {#api-is31fl3736-init-arguments}
+
+ - `uint8_t index`
+ The driver index.
+
+---
+
+### `void is31fl3736_write_register(uint8_t index, uint8_t reg, uint8_t data)` {#api-is31fl3736-write-register}
+
+Set the value of the given register.
+
+#### Arguments {#api-is31fl3736-write-register-arguments}
+
+ - `uint8_t index`
+ The driver index.
+ - `uint8_t reg`
+ The register address.
+ - `uint8_t data`
+ The value to set.
+
+---
+
+### `void is31fl3736_select_page(uint8_t index, uint8_t page)` {#api-is31fl3736-select-page}
+
+Change the current page for configuring the LED driver.
+
+#### Arguments {#api-is31fl3736-select-page-arguments}
+
+ - `uint8_t index`
+ The driver index.
+ - `uint8_t page`
+ The page number to select.
+
+---
+
+### `void is31fl3736_set_color(int index, uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3736-set-color}
+
+Set the color of a single LED (RGB driver only). This function does not immediately update the LEDs; call `is31fl3736_update_pwm_buffers()` after you are finished.
+
+#### Arguments {#api-is31fl3736-set-color-arguments}
+
+ - `int index`
+ The LED index (ie. the index into the `g_is31fl3736_leds` array).
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void is31fl3736_set_color_all(uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3736-set-color-all}
+
+Set the color of all LEDs (RGB driver only).
+
+#### Arguments {#api-is31fl3736-set-color-all-arguments}
+
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void is31fl3736_set_value(int index, uint8_t value)` {#api-is31fl3736-set-value}
+
+Set the brightness of a single LED (single-color driver only). This function does not immediately update the LEDs; call `is31fl3736_update_pwm_buffers()` after you are finished.
+
+#### Arguments {#api-is31fl3736-set-value-arguments}
+
+ - `int index`
+ The LED index (ie. the index into the `g_is31fl3736_leds` array).
+ - `uint8_t value`
+ The brightness value to set.
+
+---
+
+### `void is31fl3736_set_value_all(uint8_t value)` {#api-is31fl3736-set-value-all}
+
+Set the brightness of all LEDs (single-color driver only).
+
+#### Arguments {#api-is31fl3736-set-value-all-arguments}
+
+ - `uint8_t value`
+ The brightness value to set.
+
+---
+
+### `void is31fl3736_set_led_control_register(uint8_t index, bool red, bool green, bool blue)` {#api-is31fl3736-set-led-control-register-rgb}
+
+Configure the LED control registers for a single LED (RGB driver only). This function does not immediately update the LEDs; call `is31fl3736_update_led_control_registers()` after you are finished.
+
+#### Arguments {#api-is31fl3736-set-led-control-register-rgb-arguments}
+
+ - `uint8_t index`
+ The LED index (ie. the index into the `g_is31fl3736_leds` array).
+ - `bool red`
+ Enable or disable the red channel.
+ - `bool green`
+ Enable or disable the green channel.
+ - `bool blue`
+ Enable or disable the blue channel.
+
+---
+
+### `void is31fl3736_set_led_control_register(uint8_t index, bool value)` {#api-is31fl3736-set-led-control-register-mono}
+
+Configure the LED control registers for a single LED (single-color driver only). This function does not immediately update the LEDs; call `is31fl3736_update_led_control_registers()` after you are finished.
+
+#### Arguments {#api-is31fl3736-set-led-control-register-mono-arguments}
+
+ - `uint8_t index`
+ The LED index (ie. the index into the `g_is31fl3736_leds` array).
+ - `bool value`
+ Enable or disable the LED.
+
+---
+
+### `void is31fl3736_update_pwm_buffers(uint8_t index)` {#api-is31fl3736-update-pwm-buffers}
+
+Flush the PWM values to the LED driver.
+
+#### Arguments {#api-is31fl3736-update-pwm-buffers-arguments}
+
+ - `uint8_t index`
+ The driver index.
+
+---
+
+### `void is31fl3736_update_led_control_registers(uint8_t index)` {#api-is31fl3736-update-led-control-registers}
+
+Flush the LED control register values to the LED driver.
+
+#### Arguments {#api-is31fl3736-update-led-control-registers-arguments}
+
+ - `uint8_t index`
+ The driver index.
diff --git a/docs/drivers/is31fl3737.md b/docs/drivers/is31fl3737.md
new file mode 100644
index 00000000000..d23def237ff
--- /dev/null
+++ b/docs/drivers/is31fl3737.md
@@ -0,0 +1,310 @@
+# IS31FL3737 Driver {#is31fl3737-driver}
+
+I²C 12x12 LED matrix driver by Lumissil. Supports a maximum of four drivers, each controlling up to 144 single-color LEDs, or 48 RGB LEDs.
+
+[IS31FL3737 Datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3737_DS.pdf)
+
+## Usage {#usage}
+
+The IS31FL3737 driver code is automatically included if you are using the [LED Matrix](../features/led_matrix) or [RGB Matrix](../features/rgb_matrix) feature with the `is31fl3737` driver set, and you would use those APIs instead.
+
+However, if you need to use the driver standalone, add this to your `rules.mk`:
+
+```make
+COMMON_VPATH += $(DRIVER_PATH)/led/issi
+SRC += is31fl3737-mono.c # For single-color
+SRC += is31fl3737.c # For RGB
+I2C_DRIVER_REQUIRED = yes
+```
+
+## Basic Configuration {#basic-configuration}
+
+Add the following to your `config.h`:
+
+|Define |Default |Description |
+|----------------------------|---------------------------------|----------------------------------------------------|
+|`IS31FL3737_SDB_PIN` |*Not defined* |The GPIO pin connected to the drivers' shutdown pins|
+|`IS31FL3737_I2C_TIMEOUT` |`100` |The I²C timeout in milliseconds |
+|`IS31FL3737_I2C_PERSISTENCE`|`0` |The number of times to retry I²C transmissions |
+|`IS31FL3737_I2C_ADDRESS_1` |*Not defined* |The I²C address of driver 0 |
+|`IS31FL3737_I2C_ADDRESS_2` |*Not defined* |The I²C address of driver 1 |
+|`IS31FL3737_I2C_ADDRESS_3` |*Not defined* |The I²C address of driver 2 |
+|`IS31FL3737_I2C_ADDRESS_4` |*Not defined* |The I²C address of driver 3 |
+|`IS31FL3737_PWM_FREQUENCY` |`IS31FL3737_PWM_FREQUENCY_8K4_HZ`|The PWM frequency of the LEDs (IS31FL3737B only) |
+|`IS31FL3737_SW_PULLUP` |`IS31FL3737_PUR_0_OHM` |The `SWx` pullup resistor value |
+|`IS31FL3737_CS_PULLDOWN` |`IS31FL3737_PDR_0_OHM` |The `CSx` pulldown resistor value |
+|`IS31FL3737_GLOBAL_CURRENT` |`0xFF` |The global current control value |
+
+### I²C Addressing {#i2c-addressing}
+
+The IS31FL3737 has four possible 7-bit I²C addresses, depending on how the `ADDR` pin is connected.
+
+To configure this, set the `IS31FL3737_I2C_ADDRESS_n` defines to one of the following in your `config.h`, where *n* denotes the driver index:
+
+|Define |Value |
+|----------------------------|------|
+|`IS31FL3737_I2C_ADDRESS_GND`|`0x50`|
+|`IS31FL3737_I2C_ADDRESS_SCL`|`0x55`|
+|`IS31FL3737_I2C_ADDRESS_SDA`|`0x5A`|
+|`IS31FL3737_I2C_ADDRESS_VCC`|`0x5F`|
+
+### PWM Frequency {#pwm-frequency}
+
+The PWM frequency can be adjusted (for IS31FL3737B only) by adding the following to your `config.h`:
+
+```c
+#define IS31FL3737_PWM_FREQUENCY IS31FL3737_PWM_FREQUENCY_8K4_HZ
+```
+
+Valid values are:
+
+|Define |Frequency |
+|----------------------------------|-----------------|
+|`IS31FL3737_PWM_FREQUENCY_8K4_HZ` |8.4 kHz (default)|
+|`IS31FL3737_PWM_FREQUENCY_4K2_HZ` |4.2 kHz |
+|`IS31FL3737_PWM_FREQUENCY_26K7_HZ`|26.7 kHz |
+|`IS31FL3737_PWM_FREQUENCY_2K1_HZ` |2.1 kHz |
+|`IS31FL3737_PWM_FREQUENCY_1K05_HZ`|1.05 kHz |
+
+### De-Ghosting {#de-ghosting}
+
+These settings control the pullup and pulldown resistor values on the `SWy` and `CSx` pins respectively, for the purposes of eliminating ghosting. Refer to the datasheet (p. 23) for more information on how and why this occurs.
+
+To adjust the resistor values, add the following to your `config.h`:
+
+```c
+#define IS31FL3737_SW_PULLUP IS31FL3737_PUR_0_OHM
+#define IS31FL3737_CS_PULLDOWN IS31FL3737_PDR_0_OHM
+```
+
+Valid values for `IS31FL3737_SW_PULLUP` are:
+
+|Define |Resistance |
+|------------------------|--------------|
+|`IS31FL3737_PUR_0_OHM` |None (default)|
+|`IS31FL3737_PUR_0K5_OHM`|0.5 kΩ |
+|`IS31FL3737_PUR_1K_OHM` |1 kΩ |
+|`IS31FL3737_PUR_2K_OHM` |2 kΩ |
+|`IS31FL3737_PUR_4K_OHM` |4 kΩ |
+|`IS31FL3737_PUR_8K_OHM` |8 kΩ |
+|`IS31FL3737_PUR_16K_OHM`|16 kΩ |
+|`IS31FL3737_PUR_32K_OHM`|32 kΩ |
+
+Valid values for `IS31FL3737_CS_PULLDOWN` are:
+
+|Define |Resistance |
+|------------------------|--------------|
+|`IS31FL3737_PDR_0_OHM` |None (default)|
+|`IS31FL3737_PDR_0K5_OHM`|0.5 kΩ |
+|`IS31FL3737_PDR_1K_OHM` |1 kΩ |
+|`IS31FL3737_PDR_2K_OHM` |2 kΩ |
+|`IS31FL3737_PDR_4K_OHM` |4 kΩ |
+|`IS31FL3737_PDR_8K_OHM` |8 kΩ |
+|`IS31FL3737_PDR_16K_OHM`|16 kΩ |
+|`IS31FL3737_PDR_32K_OHM`|32 kΩ |
+
+### Global Current Control {#global-current-control}
+
+This setting controls the current sunk by the `CSx` pins, from 0 to 255. By default, the value is the maximum (255), but if you need to lower it, add the following to your `config.h`:
+
+```c
+#define IS31FL3737_GLOBAL_CURRENT 0xFF
+```
+
+## ARM/ChibiOS Configuration {#arm-configuration}
+
+Depending on the ChibiOS board configuration, you may need to [enable and configure I²C](i2c#arm-configuration) at the keyboard level.
+
+## LED Mapping {#led-mapping}
+
+In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`:
+
+```c
+const is31fl3737_led_t PROGMEM g_is31fl3737_leds[IS31FL3737_LED_COUNT] = {
+/* Driver
+ * | R G B */
+ {0, SW1_CS1, SW1_CS2, SW1_CS3},
+ // etc...
+};
+```
+
+In this example, the red, green and blue channels for the first LED index on driver 0 all have their cathodes connected to the `SW1` pin, and their anodes on the `CS1`, `CS2` and `CS3` pins respectively.
+
+For the single-color driver, the principle is the same, but there is only one channel:
+
+```c
+const is31fl3737_led_t PROGMEM g_is31fl3737_leds[IS31FL3737_LED_COUNT] = {
+/* Driver
+ * | V */
+ {0, SW1_CS1},
+ // etc...
+};
+```
+
+These values correspond to the register indices as shown in the datasheet on page 15, figure 9.
+
+## API {#api}
+
+### `struct is31fl3737_led_t` {#api-is31fl3737-led-t}
+
+Contains the PWM register addresses for a single RGB LED.
+
+#### Members {#api-is31fl3737-led-t-members}
+
+ - `uint8_t driver`
+ The driver index of the LED, from 0 to 3.
+ - `uint8_t r`
+ The output PWM register address for the LED's red channel (RGB driver only).
+ - `uint8_t g`
+ The output PWM register address for the LED's green channel (RGB driver only).
+ - `uint8_t b`
+ The output PWM register address for the LED's blue channel (RGB driver only).
+ - `uint8_t v`
+ The output PWM register address for the LED (single-color driver only).
+
+---
+
+### `void is31fl3737_init(uint8_t index)` {#api-is31fl3737-init}
+
+Initialize the LED driver. This function should be called first.
+
+#### Arguments {#api-is31fl3737-init-arguments}
+
+ - `uint8_t index`
+ The driver index.
+
+---
+
+### `void is31fl3737_write_register(uint8_t index, uint8_t reg, uint8_t data)` {#api-is31fl3737-write-register}
+
+Set the value of the given register.
+
+#### Arguments {#api-is31fl3737-write-register-arguments}
+
+ - `uint8_t index`
+ The driver index.
+ - `uint8_t reg`
+ The register address.
+ - `uint8_t data`
+ The value to set.
+
+---
+
+### `void is31fl3737_select_page(uint8_t index, uint8_t page)` {#api-is31fl3737-select-page}
+
+Change the current page for configuring the LED driver.
+
+#### Arguments {#api-is31fl3737-select-page-arguments}
+
+ - `uint8_t index`
+ The driver index.
+ - `uint8_t page`
+ The page number to select.
+
+---
+
+### `void is31fl3737_set_color(int index, uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3737-set-color}
+
+Set the color of a single LED (RGB driver only). This function does not immediately update the LEDs; call `is31fl3737_update_pwm_buffers()` after you are finished.
+
+#### Arguments {#api-is31fl3737-set-color-arguments}
+
+ - `int index`
+ The LED index (ie. the index into the `g_is31fl3737_leds` array).
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void is31fl3737_set_color_all(uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3737-set-color-all}
+
+Set the color of all LEDs (RGB driver only).
+
+#### Arguments {#api-is31fl3737-set-color-all-arguments}
+
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void is31fl3737_set_value(int index, uint8_t value)` {#api-is31fl3737-set-value}
+
+Set the brightness of a single LED (single-color driver only). This function does not immediately update the LEDs; call `is31fl3737_update_pwm_buffers()` after you are finished.
+
+#### Arguments {#api-is31fl3737-set-value-arguments}
+
+ - `int index`
+ The LED index (ie. the index into the `g_is31fl3737_leds` array).
+ - `uint8_t value`
+ The brightness value to set.
+
+---
+
+### `void is31fl3737_set_value_all(uint8_t value)` {#api-is31fl3737-set-value-all}
+
+Set the brightness of all LEDs (single-color driver only).
+
+#### Arguments {#api-is31fl3737-set-value-all-arguments}
+
+ - `uint8_t value`
+ The brightness value to set.
+
+---
+
+### `void is31fl3737_set_led_control_register(uint8_t index, bool red, bool green, bool blue)` {#api-is31fl3737-set-led-control-register-rgb}
+
+Configure the LED control registers for a single LED (RGB driver only). This function does not immediately update the LEDs; call `is31fl3737_update_led_control_registers()` after you are finished.
+
+#### Arguments {#api-is31fl3737-set-led-control-register-rgb-arguments}
+
+ - `uint8_t index`
+ The LED index (ie. the index into the `g_is31fl3737_leds` array).
+ - `bool red`
+ Enable or disable the red channel.
+ - `bool green`
+ Enable or disable the green channel.
+ - `bool blue`
+ Enable or disable the blue channel.
+
+---
+
+### `void is31fl3737_set_led_control_register(uint8_t index, bool value)` {#api-is31fl3737-set-led-control-register-mono}
+
+Configure the LED control registers for a single LED (single-color driver only). This function does not immediately update the LEDs; call `is31fl3737_update_led_control_registers()` after you are finished.
+
+#### Arguments {#api-is31fl3737-set-led-control-register-mono-arguments}
+
+ - `uint8_t index`
+ The LED index (ie. the index into the `g_is31fl3737_leds` array).
+ - `bool value`
+ Enable or disable the LED.
+
+---
+
+### `void is31fl3737_update_pwm_buffers(uint8_t index)` {#api-is31fl3737-update-pwm-buffers}
+
+Flush the PWM values to the LED driver.
+
+#### Arguments {#api-is31fl3737-update-pwm-buffers-arguments}
+
+ - `uint8_t index`
+ The driver index.
+
+---
+
+### `void is31fl3737_update_led_control_registers(uint8_t index)` {#api-is31fl3737-update-led-control-registers}
+
+Flush the LED control register values to the LED driver.
+
+#### Arguments {#api-is31fl3737-update-led-control-registers-arguments}
+
+ - `uint8_t index`
+ The driver index.
diff --git a/docs/drivers/is31fl3741.md b/docs/drivers/is31fl3741.md
new file mode 100644
index 00000000000..dce5c08b21b
--- /dev/null
+++ b/docs/drivers/is31fl3741.md
@@ -0,0 +1,310 @@
+# IS31FL3741 Driver {#is31fl3741-driver}
+
+I²C 39x9 LED matrix driver by Lumissil. Supports a maximum of four drivers, each controlling up to 351 single-color LEDs, or 117 RGB LEDs.
+
+[IS31FL3741A Datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3741A_DS.pdf)
+
+## Usage {#usage}
+
+The IS31FL3741 driver code is automatically included if you are using the [LED Matrix](../features/led_matrix) or [RGB Matrix](../features/rgb_matrix) feature with the `is31fl3741` driver set, and you would use those APIs instead.
+
+However, if you need to use the driver standalone, add this to your `rules.mk`:
+
+```make
+COMMON_VPATH += $(DRIVER_PATH)/led/issi
+SRC += is31fl3741-mono.c # For single-color
+SRC += is31fl3741.c # For RGB
+I2C_DRIVER_REQUIRED = yes
+```
+
+## Basic Configuration {#basic-configuration}
+
+Add the following to your `config.h`:
+
+|Define |Default |Description |
+|----------------------------|---------------------------------|----------------------------------------------------|
+|`IS31FL3741_SDB_PIN` |*Not defined* |The GPIO pin connected to the drivers' shutdown pins|
+|`IS31FL3741_I2C_TIMEOUT` |`100` |The I²C timeout in milliseconds |
+|`IS31FL3741_I2C_PERSISTENCE`|`0` |The number of times to retry I²C transmissions |
+|`IS31FL3741_I2C_ADDRESS_1` |*Not defined* |The I²C address of driver 0 |
+|`IS31FL3741_I2C_ADDRESS_2` |*Not defined* |The I²C address of driver 1 |
+|`IS31FL3741_I2C_ADDRESS_3` |*Not defined* |The I²C address of driver 2 |
+|`IS31FL3741_I2C_ADDRESS_4` |*Not defined* |The I²C address of driver 3 |
+|`IS31FL3741_CONFIGURATION` |`1` |The value of the configuration register |
+|`IS31FL3741_PWM_FREQUENCY` |`IS31FL3741_PWM_FREQUENCY_29K_HZ`|The PWM frequency of the LEDs (IS31FL3741A only) |
+|`IS31FL3741_SW_PULLUP` |`IS31FL3741_PUR_32K_OHM` |The `SWx` pullup resistor value |
+|`IS31FL3741_CS_PULLDOWN` |`IS31FL3741_PDR_32K_OHM` |The `CSx` pulldown resistor value |
+|`IS31FL3741_GLOBAL_CURRENT` |`0xFF` |The global current control value |
+
+### I²C Addressing {#i2c-addressing}
+
+The IS31FL3741 has four possible 7-bit I²C addresses, depending on how the `ADDR` pin is connected.
+
+To configure this, set the `IS31FL3741_I2C_ADDRESS_n` defines to one of the following in your `config.h`, where *n* denotes the driver index:
+
+|Define |Value |
+|----------------------------|------|
+|`IS31FL3741_I2C_ADDRESS_GND`|`0x30`|
+|`IS31FL3741_I2C_ADDRESS_SCL`|`0x31`|
+|`IS31FL3741_I2C_ADDRESS_SDA`|`0x32`|
+|`IS31FL3741_I2C_ADDRESS_VCC`|`0x33`|
+
+### PWM Frequency {#pwm-frequency}
+
+The PWM frequency can be adjusted (for IS31FL3741A only) by adding the following to your `config.h`:
+
+```c
+#define IS31FL3741_PWM_FREQUENCY IS31FL3741_PWM_FREQUENCY_29K_HZ
+```
+
+Valid values are:
+
+|Define |Frequency |
+|---------------------------------|----------------|
+|`IS31FL3741_PWM_FREQUENCY_29K_HZ`|29 kHz (default)|
+|`IS31FL3741_PWM_FREQUENCY_3K6_HZ`|3.6 kHz |
+|`IS31FL3741_PWM_FREQUENCY_1K8_HZ`|1.8 kHz |
+|`IS31FL3741_PWM_FREQUENCY_900_HZ`|900 Hz |
+
+### De-Ghosting {#de-ghosting}
+
+These settings control the pullup and pulldown resistor values on the `CSx` and `SWy` pins respectively, for the purposes of eliminating ghosting. Refer to the datasheet (p. 18) for more information on how and why this occurs.
+
+To adjust the resistor values, add the following to your `config.h`:
+
+```c
+#define IS31FL3741_SW_PULLUP IS31FL3741_PUR_32K_OHM
+#define IS31FL3741_CS_PULLDOWN IS31FL3741_PDR_32K_OHM
+```
+
+Valid values for `IS31FL3741_SW_PULLUP` are:
+
+|Define |Resistance |
+|------------------------|---------------|
+|`IS31FL3741_PUR_0_OHM` |None |
+|`IS31FL3741_PUR_0K5_OHM`|0.5 kΩ |
+|`IS31FL3741_PUR_1K_OHM` |1 kΩ |
+|`IS31FL3741_PUR_2K_OHM` |2 kΩ |
+|`IS31FL3741_PUR_4K_OHM` |4 kΩ |
+|`IS31FL3741_PUR_8K_OHM` |8 kΩ |
+|`IS31FL3741_PUR_16K_OHM`|16 kΩ |
+|`IS31FL3741_PUR_32K_OHM`|32 kΩ (default)|
+
+Valid values for `IS31FL3741_CS_PULLDOWN` are:
+
+|Define |Resistance |
+|------------------------|---------------|
+|`IS31FL3741_PDR_0_OHM` |None |
+|`IS31FL3741_PDR_0K5_OHM`|0.5 kΩ |
+|`IS31FL3741_PDR_1K_OHM` |1 kΩ |
+|`IS31FL3741_PDR_2K_OHM` |2 kΩ |
+|`IS31FL3741_PDR_4K_OHM` |4 kΩ |
+|`IS31FL3741_PDR_8K_OHM` |8 kΩ |
+|`IS31FL3741_PDR_16K_OHM`|16 kΩ |
+|`IS31FL3741_PDR_32K_OHM`|32 kΩ (default)|
+
+### Global Current Control {#global-current-control}
+
+This setting controls the current sunk by the `CSx` pins, from 0 to 255. By default, the value is the maximum (255), but if you need to lower it, add the following to your `config.h`:
+
+```c
+#define IS31FL3741_GLOBAL_CURRENT 0xFF
+```
+
+## ARM/ChibiOS Configuration {#arm-configuration}
+
+Depending on the ChibiOS board configuration, you may need to [enable and configure I²C](i2c#arm-configuration) at the keyboard level.
+
+## LED Mapping {#led-mapping}
+
+In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`:
+
+```c
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
+/* Driver
+ * | R G B */
+ {0, SW1_CS1, SW1_CS2, SW1_CS3},
+ // etc...
+};
+```
+
+In this example, the red, green and blue channels for the first LED index on driver 0 all have their anodes connected to the `SW1` pin, and their cathodes on the `CS1`, `CS2` and `CS3` pins respectively.
+
+For the single-color driver, the principle is the same, but there is only one channel:
+
+```c
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
+/* Driver
+ * | V */
+ {0, SW1_CS1},
+ // etc...
+};
+```
+
+These values correspond to the register indices as shown in the datasheet on page 12, figure 8.
+
+## API {#api}
+
+### `struct is31fl3741_led_t` {#api-is31fl3741-led-t}
+
+Contains the PWM register addresses for a single RGB LED.
+
+#### Members {#api-is31fl3741-led-t-members}
+
+ - `uint32_t driver`
+ The driver index of the LED, from 0 to 3.
+ - `uint32_t r`
+ The output PWM register address for the LED's red channel (RGB driver only).
+ - `uint32_t g`
+ The output PWM register address for the LED's green channel (RGB driver only).
+ - `uint32_t b`
+ The output PWM register address for the LED's blue channel (RGB driver only).
+ - `uint32_t v`
+ The output PWM register address for the LED (single-color driver only).
+
+---
+
+### `void is31fl3741_init(uint8_t index)` {#api-is31fl3741-init}
+
+Initialize the LED driver. This function should be called first.
+
+#### Arguments {#api-is31fl3741-init-arguments}
+
+ - `uint8_t index`
+ The driver index.
+
+---
+
+### `void is31fl3741_write_register(uint8_t index, uint8_t reg, uint8_t data)` {#api-is31fl3741-write-register}
+
+Set the value of the given register.
+
+#### Arguments {#api-is31fl3741-write-register-arguments}
+
+ - `uint8_t index`
+ The driver index.
+ - `uint8_t reg`
+ The register address.
+ - `uint8_t data`
+ The value to set.
+
+---
+
+### `void is31fl3741_select_page(uint8_t index, uint8_t page)` {#api-is31fl3741-select-page}
+
+Change the current page for configuring the LED driver.
+
+#### Arguments {#api-is31fl3741-select-page-arguments}
+
+ - `uint8_t index`
+ The driver index.
+ - `uint8_t page`
+ The page number to select.
+
+---
+
+### `void is31fl3741_set_color(int index, uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3741-set-color}
+
+Set the color of a single LED (RGB driver only). This function does not immediately update the LEDs; call `is31fl3741_update_pwm_buffers()` after you are finished.
+
+#### Arguments {#api-is31fl3741-set-color-arguments}
+
+ - `int index`
+ The LED index (ie. the index into the `g_is31fl3741_leds` array).
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void is31fl3741_set_color_all(uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3741-set-color-all}
+
+Set the color of all LEDs (RGB driver only).
+
+#### Arguments {#api-is31fl3741-set-color-all-arguments}
+
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void is31fl3741_set_value(int index, uint8_t value)` {#api-is31fl3741-set-value}
+
+Set the brightness of a single LED (single-color driver only). This function does not immediately update the LEDs; call `is31fl3741_update_pwm_buffers()` after you are finished.
+
+#### Arguments {#api-is31fl3741-set-value-arguments}
+
+ - `int index`
+ The LED index (ie. the index into the `g_is31fl3741_leds` array).
+ - `uint8_t value`
+ The brightness value to set.
+
+---
+
+### `void is31fl3741_set_value_all(uint8_t value)` {#api-is31fl3741-set-value-all}
+
+Set the brightness of all LEDs (single-color driver only).
+
+#### Arguments {#api-is31fl3741-set-value-all-arguments}
+
+ - `uint8_t value`
+ The brightness value to set.
+
+---
+
+### `void is31fl3741_set_led_control_register(uint8_t index, bool red, bool green, bool blue)` {#api-is31fl3741-set-led-control-register-rgb}
+
+Configure the LED control registers for a single LED (RGB driver only). This function does not immediately update the LEDs; call `is31fl3741_update_led_control_registers()` after you are finished.
+
+#### Arguments {#api-is31fl3741-set-led-control-register-rgb-arguments}
+
+ - `uint8_t index`
+ The LED index (ie. the index into the `g_is31fl3741_leds` array).
+ - `bool red`
+ Enable or disable the red channel.
+ - `bool green`
+ Enable or disable the green channel.
+ - `bool blue`
+ Enable or disable the blue channel.
+
+---
+
+### `void is31fl3741_set_led_control_register(uint8_t index, bool value)` {#api-is31fl3741-set-led-control-register-mono}
+
+Configure the LED control registers for a single LED (single-color driver only). This function does not immediately update the LEDs; call `is31fl3741_update_led_control_registers()` after you are finished.
+
+#### Arguments {#api-is31fl3741-set-led-control-register-mono-arguments}
+
+ - `uint8_t index`
+ The LED index (ie. the index into the `g_is31fl3741_leds` array).
+ - `bool value`
+ Enable or disable the LED.
+
+---
+
+### `void is31fl3741_update_pwm_buffers(uint8_t index)` {#api-is31fl3741-update-pwm-buffers}
+
+Flush the PWM values to the LED driver.
+
+#### Arguments {#api-is31fl3741-update-pwm-buffers-arguments}
+
+ - `uint8_t index`
+ The driver index.
+
+---
+
+### `void is31fl3741_update_led_control_registers(uint8_t index)` {#api-is31fl3741-update-led-control-registers}
+
+Flush the LED control register values to the LED driver.
+
+#### Arguments {#api-is31fl3741-update-led-control-registers-arguments}
+
+ - `uint8_t index`
+ The driver index.
diff --git a/docs/drivers/is31fl3742a.md b/docs/drivers/is31fl3742a.md
new file mode 100644
index 00000000000..ebe648cba44
--- /dev/null
+++ b/docs/drivers/is31fl3742a.md
@@ -0,0 +1,310 @@
+# IS31FL3742A Driver {#is31fl3742a-driver}
+
+I²C 30x6 LED matrix driver by Lumissil. Supports a maximum of four drivers, each controlling up to 180 single-color LEDs, or 60 RGB LEDs.
+
+[IS31FL3742A Datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3742A_DS.pdf)
+
+## Usage {#usage}
+
+The IS31FL3742A driver code is automatically included if you are using the [LED Matrix](../features/led_matrix) or [RGB Matrix](../features/rgb_matrix) feature with the `is31fl3742a` driver set, and you would use those APIs instead.
+
+However, if you need to use the driver standalone, add this to your `rules.mk`:
+
+```make
+COMMON_VPATH += $(DRIVER_PATH)/led/issi
+SRC += is31fl3742a-mono.c # For single-color
+SRC += is31fl3742a.c # For RGB
+I2C_DRIVER_REQUIRED = yes
+```
+
+## Basic Configuration {#basic-configuration}
+
+Add the following to your `config.h`:
+
+|Define |Default |Description |
+|-----------------------------|----------------------------------|----------------------------------------------------|
+|`IS31FL3742A_SDB_PIN` |*Not defined* |The GPIO pin connected to the drivers' shutdown pins|
+|`IS31FL3742A_I2C_TIMEOUT` |`100` |The I²C timeout in milliseconds |
+|`IS31FL3742A_I2C_PERSISTENCE`|`0` |The number of times to retry I²C transmissions |
+|`IS31FL3742A_I2C_ADDRESS_1` |*Not defined* |The I²C address of driver 0 |
+|`IS31FL3742A_I2C_ADDRESS_2` |*Not defined* |The I²C address of driver 1 |
+|`IS31FL3742A_I2C_ADDRESS_3` |*Not defined* |The I²C address of driver 2 |
+|`IS31FL3742A_I2C_ADDRESS_4` |*Not defined* |The I²C address of driver 3 |
+|`IS31FL3742A_CONFIGURATION` |`0x31` |The value of the configuration register |
+|`IS31FL3742A_PWM_FREQUENCY` |`IS31FL3742A_PWM_FREQUENCY_29K_HZ`|The PWM frequency of the LEDs |
+|`IS31FL3742A_SW_PULLDOWN` |`IS31FL3742A_PDR_8K_OHM` |The `SWx` pulldown resistor value |
+|`IS31FL3742A_CS_PULLUP` |`IS31FL3742A_PUR_8K_OHM` |The `CSx` pullup resistor value |
+|`IS31FL3742A_GLOBAL_CURRENT` |`0xFF` |The global current control value |
+
+### I²C Addressing {#i2c-addressing}
+
+The IS31FL3742A has four possible 7-bit I²C addresses, depending on how the `ADDR` pin is connected.
+
+To configure this, set the `IS31FL3742A_I2C_ADDRESS_n` defines to one of the following in your `config.h`, where *n* denotes the driver index:
+
+|Define |Value |
+|-----------------------------|------|
+|`IS31FL3742A_I2C_ADDRESS_GND`|`0x30`|
+|`IS31FL3742A_I2C_ADDRESS_SCL`|`0x31`|
+|`IS31FL3742A_I2C_ADDRESS_SDA`|`0x32`|
+|`IS31FL3742A_I2C_ADDRESS_VCC`|`0x33`|
+
+### PWM Frequency {#pwm-frequency}
+
+The PWM frequency can be adjusted by adding the following to your `config.h`:
+
+```c
+#define IS31FL3742A_PWM_FREQUENCY IS31FL3742A_PWM_FREQUENCY_29K_HZ
+```
+
+Valid values are:
+
+|Define |Frequency |
+|----------------------------------|----------------|
+|`IS31FL3742A_PWM_FREQUENCY_29K_HZ`|29 kHz (default)|
+|`IS31FL3742A_PWM_FREQUENCY_3K6_HZ`|3.6 kHz |
+|`IS31FL3742A_PWM_FREQUENCY_1K8_HZ`|1.8 kHz |
+|`IS31FL3742A_PWM_FREQUENCY_900_HZ`|900 Hz |
+
+### De-Ghosting {#de-ghosting}
+
+These settings control the pulldown and pullup resistor values on the `SWy` and `CSx` pins respectively, for the purposes of eliminating ghosting. Refer to the datasheet (p. 23) for more information on how and why this occurs.
+
+To adjust the resistor values, add the following to your `config.h`:
+
+```c
+#define IS31FL3742A_SW_PULLDOWN IS31FL3742A_PDR_8K_OHM
+#define IS31FL3742A_CS_PULLUP IS31FL3742A_PUR_8K_OHM
+```
+
+Valid values for `IS31FL3742A_SW_PULLDOWN` are:
+
+|Define |Resistance |
+|-------------------------|--------------|
+|`IS31FL3742A_PDR_0_OHM` |None |
+|`IS31FL3742A_PDR_0K5_OHM`|0.5 kΩ |
+|`IS31FL3742A_PDR_1K_OHM` |1 kΩ |
+|`IS31FL3742A_PDR_2K_OHM` |2 kΩ |
+|`IS31FL3742A_PDR_4K_OHM` |4 kΩ |
+|`IS31FL3742A_PDR_8K_OHM` |8 kΩ (default)|
+|`IS31FL3742A_PDR_16K_OHM`|16 kΩ |
+|`IS31FL3742A_PDR_32K_OHM`|32 kΩ |
+
+Valid values for `IS31FL3742A_CS_PULLUP` are:
+
+|Define |Resistance |
+|-------------------------|--------------|
+|`IS31FL3742A_PUR_0_OHM` |None |
+|`IS31FL3742A_PUR_0K5_OHM`|0.5 kΩ |
+|`IS31FL3742A_PUR_1K_OHM` |1 kΩ |
+|`IS31FL3742A_PUR_2K_OHM` |2 kΩ |
+|`IS31FL3742A_PUR_4K_OHM` |4 kΩ |
+|`IS31FL3742A_PUR_8K_OHM` |8 kΩ (default)|
+|`IS31FL3742A_PUR_16K_OHM`|16 kΩ |
+|`IS31FL3742A_PUR_32K_OHM`|32 kΩ |
+
+### Global Current Control {#global-current-control}
+
+This setting controls the current sunk by the `CSx` pins, from 0 to 255. By default, the value is the maximum (255), but if you need to lower it, add the following to your `config.h`:
+
+```c
+#define IS31FL3742A_GLOBAL_CURRENT 0xFF
+```
+
+## ARM/ChibiOS Configuration {#arm-configuration}
+
+Depending on the ChibiOS board configuration, you may need to [enable and configure I²C](i2c#arm-configuration) at the keyboard level.
+
+## LED Mapping {#led-mapping}
+
+In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`:
+
+```c
+const is31fl3742a_led_t PROGMEM g_is31fl3742a_leds[IS31FL3742A_LED_COUNT] = {
+/* Driver
+ * | R G B */
+ {0, SW1_CS1, SW1_CS2, SW1_CS3},
+ // etc...
+};
+```
+
+In this example, the red, green and blue channels for the first LED index on driver 0 all have their anodes connected to the `SW1` pin, and their cathodes on the `CS1`, `CS2` and `CS3` pins respectively.
+
+For the single-color driver, the principle is the same, but there is only one channel:
+
+```c
+const is31fl3742a_led_t PROGMEM g_is31fl3742a_leds[IS31FL3742A_LED_COUNT] = {
+/* Driver
+ * | V */
+ {0, SW1_CS1},
+ // etc...
+};
+```
+
+These values correspond to the register indices as shown in the datasheet on page 12, figure 8.
+
+## API {#api}
+
+### `struct is31fl3742a_led_t` {#api-is31fl3742a-led-t}
+
+Contains the PWM register addresses for a single RGB LED.
+
+#### Members {#api-is31fl3742a-led-t-members}
+
+ - `uint8_t driver`
+ The driver index of the LED, from 0 to 3.
+ - `uint8_t r`
+ The output PWM register address for the LED's red channel (RGB driver only).
+ - `uint8_t g`
+ The output PWM register address for the LED's green channel (RGB driver only).
+ - `uint8_t b`
+ The output PWM register address for the LED's blue channel (RGB driver only).
+ - `uint8_t v`
+ The output PWM register address for the LED (single-color driver only).
+
+---
+
+### `void is31fl3742a_init(uint8_t index)` {#api-is31fl3742a-init}
+
+Initialize the LED driver. This function should be called first.
+
+#### Arguments {#api-is31fl3742a-init-arguments}
+
+ - `uint8_t index`
+ The driver index.
+
+---
+
+### `void is31fl3742a_write_register(uint8_t index, uint8_t reg, uint8_t data)` {#api-is31fl3742a-write-register}
+
+Set the value of the given register.
+
+#### Arguments {#api-is31fl3742a-write-register-arguments}
+
+ - `uint8_t index`
+ The driver index.
+ - `uint8_t reg`
+ The register address.
+ - `uint8_t data`
+ The value to set.
+
+---
+
+### `void is31fl3742a_select_page(uint8_t index, uint8_t page)` {#api-is31fl3742a-select-page}
+
+Change the current page for configuring the LED driver.
+
+#### Arguments {#api-is31fl3742a-select-page-arguments}
+
+ - `uint8_t index`
+ The driver index.
+ - `uint8_t page`
+ The page number to select.
+
+---
+
+### `void is31fl3742a_set_color(int index, uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3742a-set-color}
+
+Set the color of a single LED (RGB driver only). This function does not immediately update the LEDs; call `is31fl3742a_update_pwm_buffers()` after you are finished.
+
+#### Arguments {#api-is31fl3742a-set-color-arguments}
+
+ - `int index`
+ The LED index (ie. the index into the `g_is31fl3742a_leds` array).
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void is31fl3742a_set_color_all(uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3742a-set-color-all}
+
+Set the color of all LEDs (RGB driver only).
+
+#### Arguments {#api-is31fl3742a-set-color-all-arguments}
+
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void is31fl3742a_set_value(int index, uint8_t value)` {#api-is31fl3742a-set-value}
+
+Set the brightness of a single LED (single-color driver only). This function does not immediately update the LEDs; call `is31fl3742a_update_pwm_buffers()` after you are finished.
+
+#### Arguments {#api-is31fl3742a-set-value-arguments}
+
+ - `int index`
+ The LED index (ie. the index into the `g_is31fl3742a_leds` array).
+ - `uint8_t value`
+ The brightness value to set.
+
+---
+
+### `void is31fl3742a_set_value_all(uint8_t value)` {#api-is31fl3742a-set-value-all}
+
+Set the brightness of all LEDs (single-color driver only).
+
+#### Arguments {#api-is31fl3742a-set-value-all-arguments}
+
+ - `uint8_t value`
+ The brightness value to set.
+
+---
+
+### `void is31fl3742a_set_scaling_register(uint8_t index, uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3742a-set-scaling-register-rgb}
+
+Configure the scaling registers for a single LED (RGB driver only). This function does not immediately update the LEDs; call `is31fl3742a_update_scaling_registers()` after you are finished.
+
+#### Arguments {#api-is31fl3742a-set-scaling-register-rgb-arguments}
+
+ - `uint8_t index`
+ The LED index (ie. the index into the `g_is31fl3742a_leds` array).
+ - `uint8_t red`
+ The scaling value for the red channel.
+ - `uint8_t green`
+ The scaling value for the green channel.
+ - `uint8_t blue`
+ The scaling value for the blue channel.
+
+---
+
+### `void is31fl3742a_set_scaling_register(uint8_t index, uint8_t value)` {#api-is31fl3742a-set-scaling-register-mono}
+
+Configure the scaling register for a single LED (single-color driver only). This function does not immediately update the LEDs; call `is31fl3742a_update_scaling_registers()` after you are finished.
+
+#### Arguments {#api-is31fl3742a-set-scaling-register-mono-arguments}
+
+ - `uint8_t index`
+ The LED index (ie. the index into the `g_is31fl3742a_leds` array).
+ - `uint8_t value`
+ The scaling value for the LED.
+
+---
+
+### `void is31fl3742a_update_pwm_buffers(uint8_t index)` {#api-is31fl3742a-update-pwm-buffers}
+
+Flush the PWM values to the LED driver.
+
+#### Arguments {#api-is31fl3742a-update-pwm-buffers-arguments}
+
+ - `uint8_t index`
+ The driver index.
+
+---
+
+### `void is31fl3742a_update_scaling_registers(uint8_t index)` {#api-is31fl3742a-update-scaling-registers}
+
+Flush the scaling register values to the LED driver.
+
+#### Arguments {#api-is31fl3742a-update-scaling-registers-arguments}
+
+ - `uint8_t index`
+ The driver index.
diff --git a/docs/drivers/is31fl3743a.md b/docs/drivers/is31fl3743a.md
new file mode 100644
index 00000000000..9ca55c5eeb0
--- /dev/null
+++ b/docs/drivers/is31fl3743a.md
@@ -0,0 +1,320 @@
+# IS31FL3743A Driver {#is31fl3743a-driver}
+
+I²C 18x11 LED matrix driver by Lumissil. Supports a maximum of four drivers, each controlling up to 198 single-color LEDs, or 66 RGB LEDs.
+
+[IS31FL3743A Datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3743A_DS.pdf)
+
+## Usage {#usage}
+
+The IS31FL3743A driver code is automatically included if you are using the [LED Matrix](../features/led_matrix) or [RGB Matrix](../features/rgb_matrix) feature with the `is31fl3743a` driver set, and you would use those APIs instead.
+
+However, if you need to use the driver standalone, add this to your `rules.mk`:
+
+```make
+COMMON_VPATH += $(DRIVER_PATH)/led/issi
+SRC += is31fl3743a-mono.c # For single-color
+SRC += is31fl3743a.c # For RGB
+I2C_DRIVER_REQUIRED = yes
+```
+
+## Basic Configuration {#basic-configuration}
+
+Add the following to your `config.h`:
+
+|Define |Default |Description |
+|-----------------------------|-------------------------------|----------------------------------------------------|
+|`IS31FL3743A_SDB_PIN` |*Not defined* |The GPIO pin connected to the drivers' shutdown pins|
+|`IS31FL3743A_I2C_TIMEOUT` |`100` |The I²C timeout in milliseconds |
+|`IS31FL3743A_I2C_PERSISTENCE`|`0` |The number of times to retry I²C transmissions |
+|`IS31FL3743A_I2C_ADDRESS_1` |*Not defined* |The I²C address of driver 0 |
+|`IS31FL3743A_I2C_ADDRESS_2` |*Not defined* |The I²C address of driver 1 |
+|`IS31FL3743A_I2C_ADDRESS_3` |*Not defined* |The I²C address of driver 2 |
+|`IS31FL3743A_I2C_ADDRESS_4` |*Not defined* |The I²C address of driver 3 |
+|`IS31FL3743A_SYNC_1` |`IS31FL3743A_SYNC_NONE` |The sync configuration for driver 0 |
+|`IS31FL3743A_SYNC_2` |`IS31FL3743A_SYNC_NONE` |The sync configuration for driver 1 |
+|`IS31FL3743A_SYNC_3` |`IS31FL3743A_SYNC_NONE` |The sync configuration for driver 2 |
+|`IS31FL3743A_SYNC_4` |`IS31FL3743A_SYNC_NONE` |The sync configuration for driver 3 |
+|`IS31FL3743A_CONFIGURATION` |`0x01` |The value of the configuration register |
+|`IS31FL3743A_SW_PULLDOWN` |`IS31FL3743A_PDR_2K_OHM_SW_OFF`|The `SWx` pulldown resistor value |
+|`IS31FL3743A_CS_PULLUP` |`IS31FL3743A_PUR_2K_OHM_CS_OFF`|The `CSx` pullup resistor value |
+|`IS31FL3743A_GLOBAL_CURRENT` |`0xFF` |The global current control value |
+
+### I²C Addressing {#i2c-addressing}
+
+The IS31FL3743A has 16 possible 7-bit I²C addresses, depending on how the `ADDR1` and `ADDR2` pins are connected.
+
+To configure this, set the `IS31FL3743A_I2C_ADDRESS_n` defines to one of the following in your `config.h`, where *n* denotes the driver index:
+
+|Define |Value |
+|---------------------------------|------|
+|`IS31FL3743A_I2C_ADDRESS_GND_GND`|`0x20`|
+|`IS31FL3743A_I2C_ADDRESS_GND_SCL`|`0x21`|
+|`IS31FL3743A_I2C_ADDRESS_GND_SDA`|`0x22`|
+|`IS31FL3743A_I2C_ADDRESS_GND_VCC`|`0x23`|
+|`IS31FL3743A_I2C_ADDRESS_SCL_GND`|`0x24`|
+|`IS31FL3743A_I2C_ADDRESS_SCL_SCL`|`0x25`|
+|`IS31FL3743A_I2C_ADDRESS_SCL_SDA`|`0x26`|
+|`IS31FL3743A_I2C_ADDRESS_SCL_VCC`|`0x27`|
+|`IS31FL3743A_I2C_ADDRESS_SDA_GND`|`0x28`|
+|`IS31FL3743A_I2C_ADDRESS_SDA_SCL`|`0x29`|
+|`IS31FL3743A_I2C_ADDRESS_SDA_SDA`|`0x2A`|
+|`IS31FL3743A_I2C_ADDRESS_SDA_VCC`|`0x2B`|
+|`IS31FL3743A_I2C_ADDRESS_VCC_GND`|`0x2C`|
+|`IS31FL3743A_I2C_ADDRESS_VCC_SCL`|`0x2D`|
+|`IS31FL3743A_I2C_ADDRESS_VCC_SDA`|`0x2E`|
+|`IS31FL3743A_I2C_ADDRESS_VCC_VCC`|`0x2F`|
+
+### Multi-Driver Synchronization {#multi-driver-synchronization}
+
+Multiple IS31FL3743A drivers can be synchronized by connecting the `SYNC` pins together. One driver must be designated as the "master", and the others configured as "slave".
+
+To do this, set the `IS31FL3743A_SYNC_n` defines accordingly in your `config.h`, where *n* denotes the driver index:
+
+|Define |Value |
+|-------------------------|---------------------------|
+|`IS31FL3743A_SYNC_NONE` |No synchronization |
+|`IS31FL3743A_SYNC_MASTER`|Driver configured as master|
+|`IS31FL3743A_SYNC_SLAVE` |Driver configured as slave |
+
+### De-Ghosting {#de-ghosting}
+
+These settings control the pulldown and pullup resistor values on the `SWy` and `CSx` pins respectively, for the purposes of eliminating ghosting. Refer to the datasheet (p. 23) for more information on how and why this occurs.
+
+To adjust the resistor values, add the following to your `config.h`:
+
+```c
+#define IS31FL3743A_SW_PULLDOWN IS31FL3743A_PDR_2K_OHM_SW_OFF
+#define IS31FL3743A_CS_PULLUP IS31FL3743A_PUR_2K_OHM_CS_OFF
+```
+
+Valid values for `IS31FL3743A_SW_PULLDOWN` are:
+
+|Define |Resistance |
+|--------------------------------|------------------------------|
+|`IS31FL3743A_PDR_0_OHM` |None (default) |
+|`IS31FL3743A_PDR_0K5_OHM_SW_OFF`|0.5 kΩ in SWx off time |
+|`IS31FL3743A_PDR_1K_OHM_SW_OFF` |1 kΩ in SWx off time |
+|`IS31FL3743A_PDR_2K_OHM_SW_OFF` |2 kΩ in SWx off time (default)|
+|`IS31FL3743A_PDR_1K_OHM` |1 kΩ |
+|`IS31FL3743A_PDR_2K_OHM` |2 kΩ |
+|`IS31FL3743A_PDR_4K_OHM` |4 kΩ |
+|`IS31FL3743A_PDR_8K_OHM` |8 kΩ |
+
+Valid values for `IS31FL3743A_CS_PULLUP` are:
+
+|Define |Resistance |
+|--------------------------------|------------------------------|
+|`IS31FL3743A_PUR_0_OHM` |None (default) |
+|`IS31FL3743A_PUR_0K5_OHM_CS_OFF`|0.5 kΩ in CSy off time |
+|`IS31FL3743A_PUR_1K_OHM_CS_OFF` |1 kΩ in CSy off time |
+|`IS31FL3743A_PUR_2K_OHM_CS_OFF` |2 kΩ in CSy off time (default)|
+|`IS31FL3743A_PUR_1K_OHM` |1 kΩ |
+|`IS31FL3743A_PUR_2K_OHM` |2 kΩ |
+|`IS31FL3743A_PUR_4K_OHM` |4 kΩ |
+|`IS31FL3743A_PUR_8K_OHM` |8 kΩ |
+
+### Global Current Control {#global-current-control}
+
+This setting controls the current sunk by the `CSy` pins, from 0 to 255. By default, the value is the maximum (255), but if you need to lower it, add the following to your `config.h`:
+
+```c
+#define IS31FL3743A_GLOBAL_CURRENT 0xFF
+```
+
+## ARM/ChibiOS Configuration {#arm-configuration}
+
+Depending on the ChibiOS board configuration, you may need to [enable and configure I²C](i2c#arm-configuration) at the keyboard level.
+
+## LED Mapping {#led-mapping}
+
+In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`:
+
+```c
+const is31fl3743a_led_t PROGMEM g_is31fl3743a_leds[IS31FL3743A_LED_COUNT] = {
+/* Driver
+ * | R G B */
+ {0, SW1_CS1, SW1_CS2, SW1_CS3},
+ // etc...
+};
+```
+
+In this example, the red, green and blue channels for the first LED index on driver 0 all have their anodes connected to the `SW1` pin, and their cathodes on the `CS1`, `CS2` and `CS3` pins respectively.
+
+For the single-color driver, the principle is the same, but there is only one channel:
+
+```c
+const is31fl3743a_led_t PROGMEM g_is31fl3743a_leds[IS31FL3743A_LED_COUNT] = {
+/* Driver
+ * | V */
+ {0, SW1_CS1},
+ // etc...
+};
+```
+
+These values correspond to the register indices as shown in the datasheet on page 12, figure 8.
+
+## API {#api}
+
+### `struct is31fl3743a_led_t` {#api-is31fl3743a-led-t}
+
+Contains the PWM register addresses for a single RGB LED.
+
+#### Members {#api-is31fl3743a-led-t-members}
+
+ - `uint8_t driver`
+ The driver index of the LED, from 0 to 3.
+ - `uint8_t r`
+ The output PWM register address for the LED's red channel (RGB driver only).
+ - `uint8_t g`
+ The output PWM register address for the LED's green channel (RGB driver only).
+ - `uint8_t b`
+ The output PWM register address for the LED's blue channel (RGB driver only).
+ - `uint8_t v`
+ The output PWM register address for the LED (single-color driver only).
+
+---
+
+### `void is31fl3743a_init(uint8_t index)` {#api-is31fl3743a-init}
+
+Initialize the LED driver. This function should be called first.
+
+#### Arguments {#api-is31fl3743a-init-arguments}
+
+ - `uint8_t index`
+ The driver index.
+
+---
+
+### `void is31fl3743a_write_register(uint8_t index, uint8_t reg, uint8_t data)` {#api-is31fl3743a-write-register}
+
+Set the value of the given register.
+
+#### Arguments {#api-is31fl3743a-write-register-arguments}
+
+ - `uint8_t index`
+ The driver index.
+ - `uint8_t reg`
+ The register address.
+ - `uint8_t data`
+ The value to set.
+
+---
+
+### `void is31fl3743a_select_page(uint8_t index, uint8_t page)` {#api-is31fl3743a-select-page}
+
+Change the current page for configuring the LED driver.
+
+#### Arguments {#api-is31fl3743a-select-page-arguments}
+
+ - `uint8_t index`
+ The driver index.
+ - `uint8_t page`
+ The page number to select.
+
+---
+
+### `void is31fl3743a_set_color(int index, uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3743a-set-color}
+
+Set the color of a single LED (RGB driver only). This function does not immediately update the LEDs; call `is31fl3743a_update_pwm_buffers()` after you are finished.
+
+#### Arguments {#api-is31fl3743a-set-color-arguments}
+
+ - `int index`
+ The LED index (ie. the index into the `g_is31fl3743a_leds` array).
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void is31fl3743a_set_color_all(uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3743a-set-color-all}
+
+Set the color of all LEDs (RGB driver only).
+
+#### Arguments {#api-is31fl3743a-set-color-all-arguments}
+
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void is31fl3743a_set_value(int index, uint8_t value)` {#api-is31fl3743a-set-value}
+
+Set the brightness of a single LED (single-color driver only). This function does not immediately update the LEDs; call `is31fl3743a_update_pwm_buffers()` after you are finished.
+
+#### Arguments {#api-is31fl3743a-set-value-arguments}
+
+ - `int index`
+ The LED index (ie. the index into the `g_is31fl3743a_leds` array).
+ - `uint8_t value`
+ The brightness value to set.
+
+---
+
+### `void is31fl3743a_set_value_all(uint8_t value)` {#api-is31fl3743a-set-value-all}
+
+Set the brightness of all LEDs (single-color driver only).
+
+#### Arguments {#api-is31fl3743a-set-value-all-arguments}
+
+ - `uint8_t value`
+ The brightness value to set.
+
+---
+
+### `void is31fl3743a_set_scaling_register(uint8_t index, uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3743a-set-scaling-register-rgb}
+
+Configure the scaling registers for a single LED (RGB driver only). This function does not immediately update the LEDs; call `is31fl3743a_update_scaling_registers()` after you are finished.
+
+#### Arguments {#api-is31fl3743a-set-scaling-register-rgb-arguments}
+
+ - `uint8_t index`
+ The LED index (ie. the index into the `g_is31fl3743a_leds` array).
+ - `uint8_t red`
+ The scaling value for the red channel.
+ - `uint8_t green`
+ The scaling value for the green channel.
+ - `uint8_t blue`
+ The scaling value for the blue channel.
+
+---
+
+### `void is31fl3743a_set_scaling_register(uint8_t index, uint8_t value)` {#api-is31fl3743a-set-scaling-register-mono}
+
+Configure the scaling register for a single LED (single-color driver only). This function does not immediately update the LEDs; call `is31fl3743a_update_scaling_registers()` after you are finished.
+
+#### Arguments {#api-is31fl3743a-set-scaling-register-mono-arguments}
+
+ - `uint8_t index`
+ The LED index (ie. the index into the `g_is31fl3743a_leds` array).
+ - `uint8_t value`
+ The scaling value for the LED.
+
+---
+
+### `void is31fl3743a_update_pwm_buffers(uint8_t index)` {#api-is31fl3743a-update-pwm-buffers}
+
+Flush the PWM values to the LED driver.
+
+#### Arguments {#api-is31fl3743a-update-pwm-buffers-arguments}
+
+ - `uint8_t index`
+ The driver index.
+
+---
+
+### `void is31fl3743a_update_scaling_registers(uint8_t index)` {#api-is31fl3743a-update-scaling-registers}
+
+Flush the scaling register values to the LED driver.
+
+#### Arguments {#api-is31fl3743a-update-scaling-registers-arguments}
+
+ - `uint8_t index`
+ The driver index.
diff --git a/docs/drivers/is31fl3745.md b/docs/drivers/is31fl3745.md
new file mode 100644
index 00000000000..f13f029bfed
--- /dev/null
+++ b/docs/drivers/is31fl3745.md
@@ -0,0 +1,320 @@
+# IS31FL3745 Driver {#is31fl3745-driver}
+
+I²C 18x8 LED matrix driver by Lumissil. Supports a maximum of four drivers, each controlling up to 144 single-color LEDs, or 48 RGB LEDs.
+
+[IS31FL3745 Datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3745_DS.pdf)
+
+## Usage {#usage}
+
+The IS31FL3745 driver code is automatically included if you are using the [LED Matrix](../features/led_matrix) or [RGB Matrix](../features/rgb_matrix) feature with the `is31fl3745` driver set, and you would use those APIs instead.
+
+However, if you need to use the driver standalone, add this to your `rules.mk`:
+
+```make
+COMMON_VPATH += $(DRIVER_PATH)/led/issi
+SRC += is31fl3745-mono.c # For single-color
+SRC += is31fl3745.c # For RGB
+I2C_DRIVER_REQUIRED = yes
+```
+
+## Basic Configuration {#basic-configuration}
+
+Add the following to your `config.h`:
+
+|Define |Default |Description |
+|----------------------------|------------------------------|----------------------------------------------------|
+|`IS31FL3745_SDB_PIN` |*Not defined* |The GPIO pin connected to the drivers' shutdown pins|
+|`IS31FL3745_I2C_TIMEOUT` |`100` |The I²C timeout in milliseconds |
+|`IS31FL3745_I2C_PERSISTENCE`|`0` |The number of times to retry I²C transmissions |
+|`IS31FL3745_I2C_ADDRESS_1` |*Not defined* |The I²C address of driver 0 |
+|`IS31FL3745_I2C_ADDRESS_2` |*Not defined* |The I²C address of driver 1 |
+|`IS31FL3745_I2C_ADDRESS_3` |*Not defined* |The I²C address of driver 2 |
+|`IS31FL3745_I2C_ADDRESS_4` |*Not defined* |The I²C address of driver 3 |
+|`IS31FL3745_SYNC_1` |`IS31FL3745_SYNC_NONE` |The sync configuration for driver 0 |
+|`IS31FL3745_SYNC_2` |`IS31FL3745_SYNC_NONE` |The sync configuration for driver 1 |
+|`IS31FL3745_SYNC_3` |`IS31FL3745_SYNC_NONE` |The sync configuration for driver 2 |
+|`IS31FL3745_SYNC_4` |`IS31FL3745_SYNC_NONE` |The sync configuration for driver 3 |
+|`IS31FL3745_CONFIGURATION` |`0x31` |The value of the configuration register |
+|`IS31FL3745_SW_PULLDOWN` |`IS31FL3745_PDR_2K_OHM_SW_OFF`|The `SWx` pulldown resistor value |
+|`IS31FL3745_CS_PULLUP` |`IS31FL3745_PUR_2K_OHM_CS_OFF`|The `CSx` pullup resistor value |
+|`IS31FL3745_GLOBAL_CURRENT` |`0xFF` |The global current control value |
+
+### I²C Addressing {#i2c-addressing}
+
+The IS31FL3745 has 16 possible 7-bit I²C addresses, depending on how the `ADDR1` and `ADDR2` pins are connected.
+
+To configure this, set the `IS31FL3745_I2C_ADDRESS_n` defines to one of the following in your `config.h`, where *n* denotes the driver index:
+
+|Define |Value |
+|--------------------------------|------|
+|`IS31FL3745_I2C_ADDRESS_GND_GND`|`0x20`|
+|`IS31FL3745_I2C_ADDRESS_GND_SCL`|`0x21`|
+|`IS31FL3745_I2C_ADDRESS_GND_SDA`|`0x22`|
+|`IS31FL3745_I2C_ADDRESS_GND_VCC`|`0x23`|
+|`IS31FL3745_I2C_ADDRESS_SCL_GND`|`0x24`|
+|`IS31FL3745_I2C_ADDRESS_SCL_SCL`|`0x25`|
+|`IS31FL3745_I2C_ADDRESS_SCL_SDA`|`0x26`|
+|`IS31FL3745_I2C_ADDRESS_SCL_VCC`|`0x27`|
+|`IS31FL3745_I2C_ADDRESS_SDA_GND`|`0x28`|
+|`IS31FL3745_I2C_ADDRESS_SDA_SCL`|`0x29`|
+|`IS31FL3745_I2C_ADDRESS_SDA_SDA`|`0x2A`|
+|`IS31FL3745_I2C_ADDRESS_SDA_VCC`|`0x2B`|
+|`IS31FL3745_I2C_ADDRESS_VCC_GND`|`0x2C`|
+|`IS31FL3745_I2C_ADDRESS_VCC_SCL`|`0x2D`|
+|`IS31FL3745_I2C_ADDRESS_VCC_SDA`|`0x2E`|
+|`IS31FL3745_I2C_ADDRESS_VCC_VCC`|`0x2F`|
+
+### Multi-Driver Synchronization {#multi-driver-synchronization}
+
+Multiple IS31FL3745 drivers can be synchronized by connecting the `SYNC` pins together. One driver must be designated as the "master", and the others configured as "slave".
+
+To do this, set the `IS31FL3745_SYNC_n` defines accordingly in your `config.h`, where *n* denotes the driver index:
+
+|Define |Value |
+|------------------------|---------------------------|
+|`IS31FL3745_SYNC_NONE` |No synchronization |
+|`IS31FL3745_SYNC_MASTER`|Driver configured as master|
+|`IS31FL3745_SYNC_SLAVE` |Driver configured as slave |
+
+### De-Ghosting {#de-ghosting}
+
+These settings control the pulldown and pullup resistor values on the `SWy` and `CSx` pins respectively, for the purposes of eliminating ghosting. Refer to the datasheet (p. 23) for more information on how and why this occurs.
+
+To adjust the resistor values, add the following to your `config.h`:
+
+```c
+#define IS31FL3745_SW_PULLDOWN IS31FL3745_PDR_2K_OHM_SW_OFF
+#define IS31FL3745_CS_PULLUP IS31FL3745_PUR_2K_OHM_CS_OFF
+```
+
+Valid values for `IS31FL3745_SW_PULLDOWN` are:
+
+|Define |Resistance |
+|-------------------------------|------------------------------|
+|`IS31FL3745_PDR_0_OHM` |None (default) |
+|`IS31FL3745_PDR_0K5_OHM_SW_OFF`|0.5 kΩ in SWx off time |
+|`IS31FL3745_PDR_1K_OHM_SW_OFF` |1 kΩ in SWx off time |
+|`IS31FL3745_PDR_2K_OHM_SW_OFF` |2 kΩ in SWx off time (default)|
+|`IS31FL3745_PDR_1K_OHM` |1 kΩ |
+|`IS31FL3745_PDR_2K_OHM` |2 kΩ |
+|`IS31FL3745_PDR_4K_OHM` |4 kΩ |
+|`IS31FL3745_PDR_8K_OHM` |8 kΩ |
+
+Valid values for `IS31FL3745_CS_PULLUP` are:
+
+|Define |Resistance |
+|-------------------------------|------------------------------|
+|`IS31FL3745_PUR_0_OHM` |None (default) |
+|`IS31FL3745_PUR_0K5_OHM_CS_OFF`|0.5 kΩ in CSy off time |
+|`IS31FL3745_PUR_1K_OHM_CS_OFF` |1 kΩ in CSy off time |
+|`IS31FL3745_PUR_2K_OHM_CS_OFF` |2 kΩ in CSy off time (default)|
+|`IS31FL3745_PUR_1K_OHM` |1 kΩ |
+|`IS31FL3745_PUR_2K_OHM` |2 kΩ |
+|`IS31FL3745_PUR_4K_OHM` |4 kΩ |
+|`IS31FL3745_PUR_8K_OHM` |8 kΩ |
+
+### Global Current Control {#global-current-control}
+
+This setting controls the current sunk by the `CSy` pins, from 0 to 255. By default, the value is the maximum (255), but if you need to lower it, add the following to your `config.h`:
+
+```c
+#define IS31FL3745_GLOBAL_CURRENT 0xFF
+```
+
+## ARM/ChibiOS Configuration {#arm-configuration}
+
+Depending on the ChibiOS board configuration, you may need to [enable and configure I²C](i2c#arm-configuration) at the keyboard level.
+
+## LED Mapping {#led-mapping}
+
+In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`:
+
+```c
+const is31fl3745_led_t PROGMEM g_is31fl3745_leds[IS31FL3745_LED_COUNT] = {
+/* Driver
+ * | R G B */
+ {0, SW1_CS1, SW1_CS2, SW1_CS3},
+ // etc...
+};
+```
+
+In this example, the red, green and blue channels for the first LED index on driver 0 all have their anodes connected to the `SW1` pin, and their cathodes on the `CS1`, `CS2` and `CS3` pins respectively.
+
+For the single-color driver, the principle is the same, but there is only one channel:
+
+```c
+const is31fl3745_led_t PROGMEM g_is31fl3745_leds[IS31FL3745_LED_COUNT] = {
+/* Driver
+ * | V */
+ {0, SW1_CS1},
+ // etc...
+};
+```
+
+These values correspond to the register indices as shown in the datasheet on page 12, figure 9.
+
+## API {#api}
+
+### `struct is31fl3745_led_t` {#api-is31fl3745-led-t}
+
+Contains the PWM register addresses for a single RGB LED.
+
+#### Members {#api-is31fl3745-led-t-members}
+
+ - `uint8_t driver`
+ The driver index of the LED, from 0 to 3.
+ - `uint8_t r`
+ The output PWM register address for the LED's red channel (RGB driver only).
+ - `uint8_t g`
+ The output PWM register address for the LED's green channel (RGB driver only).
+ - `uint8_t b`
+ The output PWM register address for the LED's blue channel (RGB driver only).
+ - `uint8_t v`
+ The output PWM register address for the LED (single-color driver only).
+
+---
+
+### `void is31fl3745_init(uint8_t index)` {#api-is31fl3745-init}
+
+Initialize the LED driver. This function should be called first.
+
+#### Arguments {#api-is31fl3745-init-arguments}
+
+ - `uint8_t index`
+ The driver index.
+
+---
+
+### `void is31fl3745_write_register(uint8_t index, uint8_t reg, uint8_t data)` {#api-is31fl3745-write-register}
+
+Set the value of the given register.
+
+#### Arguments {#api-is31fl3745-write-register-arguments}
+
+ - `uint8_t index`
+ The driver index.
+ - `uint8_t reg`
+ The register address.
+ - `uint8_t data`
+ The value to set.
+
+---
+
+### `void is31fl3745_select_page(uint8_t index, uint8_t page)` {#api-is31fl3745-select-page}
+
+Change the current page for configuring the LED driver.
+
+#### Arguments {#api-is31fl3745-select-page-arguments}
+
+ - `uint8_t index`
+ The driver index.
+ - `uint8_t page`
+ The page number to select.
+
+---
+
+### `void is31fl3745_set_color(int index, uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3745-set-color}
+
+Set the color of a single LED (RGB driver only). This function does not immediately update the LEDs; call `is31fl3745_update_pwm_buffers()` after you are finished.
+
+#### Arguments {#api-is31fl3745-set-color-arguments}
+
+ - `int index`
+ The LED index (ie. the index into the `g_is31fl3745_leds` array).
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void is31fl3745_set_color_all(uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3745-set-color-all}
+
+Set the color of all LEDs (RGB driver only).
+
+#### Arguments {#api-is31fl3745-set-color-all-arguments}
+
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void is31fl3745_set_value(int index, uint8_t value)` {#api-is31fl3745-set-value}
+
+Set the brightness of a single LED (single-color driver only). This function does not immediately update the LEDs; call `is31fl3745_update_pwm_buffers()` after you are finished.
+
+#### Arguments {#api-is31fl3745-set-value-arguments}
+
+ - `int index`
+ The LED index (ie. the index into the `g_is31fl3745_leds` array).
+ - `uint8_t value`
+ The brightness value to set.
+
+---
+
+### `void is31fl3745_set_value_all(uint8_t value)` {#api-is31fl3745-set-value-all}
+
+Set the brightness of all LEDs (single-color driver only).
+
+#### Arguments {#api-is31fl3745-set-value-all-arguments}
+
+ - `uint8_t value`
+ The brightness value to set.
+
+---
+
+### `void is31fl3745_set_scaling_register(uint8_t index, uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3745-set-scaling-register-rgb}
+
+Configure the scaling registers for a single LED (RGB driver only). This function does not immediately update the LEDs; call `is31fl3745_update_scaling_registers()` after you are finished.
+
+#### Arguments {#api-is31fl3745-set-scaling-register-rgb-arguments}
+
+ - `uint8_t index`
+ The LED index (ie. the index into the `g_is31fl3745_leds` array).
+ - `uint8_t red`
+ The scaling value for the red channel.
+ - `uint8_t green`
+ The scaling value for the green channel.
+ - `uint8_t blue`
+ The scaling value for the blue channel.
+
+---
+
+### `void is31fl3745_set_scaling_register(uint8_t index, uint8_t value)` {#api-is31fl3745-set-scaling-register-mono}
+
+Configure the scaling register for a single LED (single-color driver only). This function does not immediately update the LEDs; call `is31fl3745_update_scaling_registers()` after you are finished.
+
+#### Arguments {#api-is31fl3745-set-scaling-register-mono-arguments}
+
+ - `uint8_t index`
+ The LED index (ie. the index into the `g_is31fl3745_leds` array).
+ - `uint8_t value`
+ The scaling value for the LED.
+
+---
+
+### `void is31fl3745_update_pwm_buffers(uint8_t index)` {#api-is31fl3745-update-pwm-buffers}
+
+Flush the PWM values to the LED driver.
+
+#### Arguments {#api-is31fl3745-update-pwm-buffers-arguments}
+
+ - `uint8_t index`
+ The driver index.
+
+---
+
+### `void is31fl3745_update_scaling_registers(uint8_t index)` {#api-is31fl3745-update-scaling-registers}
+
+Flush the scaling register values to the LED driver.
+
+#### Arguments {#api-is31fl3745-update-scaling-registers-arguments}
+
+ - `uint8_t index`
+ The driver index.
diff --git a/docs/drivers/is31fl3746a.md b/docs/drivers/is31fl3746a.md
new file mode 100644
index 00000000000..bdd5c183577
--- /dev/null
+++ b/docs/drivers/is31fl3746a.md
@@ -0,0 +1,327 @@
+# IS31FL3746A Driver {#is31fl3746a-driver}
+
+I²C 18x4 LED matrix driver by Lumissil. Supports a maximum of four drivers, each controlling up to 72 single-color LEDs, or 24 RGB LEDs.
+
+[IS31FL3746A Datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3746A_DS.pdf)
+
+## Usage {#usage}
+
+The IS31FL3746A driver code is automatically included if you are using the [LED Matrix](../features/led_matrix) or [RGB Matrix](../features/rgb_matrix) feature with the `is31fl3746a` driver set, and you would use those APIs instead.
+
+However, if you need to use the driver standalone, add this to your `rules.mk`:
+
+```make
+COMMON_VPATH += $(DRIVER_PATH)/led/issi
+SRC += is31fl3746a-mono.c # For single-color
+SRC += is31fl3746a.c # For RGB
+I2C_DRIVER_REQUIRED = yes
+```
+
+## Basic Configuration {#basic-configuration}
+
+Add the following to your `config.h`:
+
+|Define |Default |Description |
+|-----------------------------|----------------------------------|----------------------------------------------------|
+|`IS31FL3746A_SDB_PIN` |*Not defined* |The GPIO pin connected to the drivers' shutdown pins|
+|`IS31FL3746A_I2C_TIMEOUT` |`100` |The I²C timeout in milliseconds |
+|`IS31FL3746A_I2C_PERSISTENCE`|`0` |The number of times to retry I²C transmissions |
+|`IS31FL3746A_I2C_ADDRESS_1` |*Not defined* |The I²C address of driver 0 |
+|`IS31FL3746A_I2C_ADDRESS_2` |*Not defined* |The I²C address of driver 1 |
+|`IS31FL3746A_I2C_ADDRESS_3` |*Not defined* |The I²C address of driver 2 |
+|`IS31FL3746A_I2C_ADDRESS_4` |*Not defined* |The I²C address of driver 3 |
+|`IS31FL3746A_CONFIGURATION` |`0x01` |The value of the configuration register |
+|`IS31FL3746A_PWM_FREQUENCY` |`IS31FL3746A_PWM_FREQUENCY_29K_HZ`|The PWM frequency of the LEDs |
+|`IS31FL3746A_SW_PULLDOWN` |`IS31FL3746A_PDR_2K_OHM_SW_OFF` |The `SWx` pulldown resistor value |
+|`IS31FL3746A_CS_PULLUP` |`IS31FL3746A_PUR_2K_OHM_CS_OFF` |The `CSx` pullup resistor value |
+|`IS31FL3746A_GLOBAL_CURRENT` |`0xFF` |The global current control value |
+
+### I²C Addressing {#i2c-addressing}
+
+The IS31FL3746A has 16 possible 7-bit I²C addresses, depending on how the `ADDR1` and `ADDR2` pins are connected.
+
+To configure this, set the `IS31FL3746A_I2C_ADDRESS_n` defines to one of the following in your `config.h`, where *n* denotes the driver index:
+
+|Define |Value |
+|---------------------------------|------|
+|`IS31FL3746A_I2C_ADDRESS_GND_GND`|`0x60`|
+|`IS31FL3746A_I2C_ADDRESS_GND_SCL`|`0x61`|
+|`IS31FL3746A_I2C_ADDRESS_GND_SDA`|`0x62`|
+|`IS31FL3746A_I2C_ADDRESS_GND_VCC`|`0x63`|
+|`IS31FL3746A_I2C_ADDRESS_SCL_GND`|`0x64`|
+|`IS31FL3746A_I2C_ADDRESS_SCL_SCL`|`0x65`|
+|`IS31FL3746A_I2C_ADDRESS_SCL_SDA`|`0x66`|
+|`IS31FL3746A_I2C_ADDRESS_SCL_VCC`|`0x67`|
+|`IS31FL3746A_I2C_ADDRESS_SDA_GND`|`0x68`|
+|`IS31FL3746A_I2C_ADDRESS_SDA_SCL`|`0x69`|
+|`IS31FL3746A_I2C_ADDRESS_SDA_SDA`|`0x6A`|
+|`IS31FL3746A_I2C_ADDRESS_SDA_VCC`|`0x6B`|
+|`IS31FL3746A_I2C_ADDRESS_VCC_GND`|`0x6C`|
+|`IS31FL3746A_I2C_ADDRESS_VCC_SCL`|`0x6D`|
+|`IS31FL3746A_I2C_ADDRESS_VCC_SDA`|`0x6E`|
+|`IS31FL3746A_I2C_ADDRESS_VCC_VCC`|`0x6F`|
+
+### PWM Frequency {#pwm-frequency}
+
+The PWM frequency can be adjusted by adding the following to your `config.h`:
+
+```c
+#define IS31FL3746A_PWM_FREQUENCY IS31FL3746A_PWM_FREQUENCY_29K_HZ
+```
+
+Valid values are:
+
+|Define |Frequency |
+|-----------------------------------|----------------|
+|`IS31FL3746A_PWM_FREQUENCY_29K_HZ` |29 kHz (default)|
+|`IS31FL3746A_PWM_FREQUENCY_14K5_HZ`|14.5 kHz |
+|`IS31FL3746A_PWM_FREQUENCY_7K25_HZ`|7.25 kHz |
+|`IS31FL3746A_PWM_FREQUENCY_3K63_HZ`|3.63 kHz |
+|`IS31FL3746A_PWM_FREQUENCY_1K81_HZ`|1.81 kHz |
+|`IS31FL3746A_PWM_FREQUENCY_906_HZ` |906 Hz |
+|`IS31FL3746A_PWM_FREQUENCY_453_HZ` |453 Hz |
+
+### De-Ghosting {#de-ghosting}
+
+These settings control the pulldown and pullup resistor values on the `SWy` and `CSx` pins respectively, for the purposes of eliminating ghosting. Refer to the datasheet (p. 23) for more information on how and why this occurs.
+
+To adjust the resistor values, add the following to your `config.h`:
+
+```c
+#define IS31FL3746A_SW_PULLDOWN IS31FL3746A_PDR_2K_OHM_SW_OFF
+#define IS31FL3746A_CS_PULLUP IS31FL3746A_PUR_2K_OHM_CS_OFF
+```
+
+Valid values for `IS31FL3746A_SW_PULLDOWN` are:
+
+|Define |Resistance |
+|--------------------------------|------------------------------|
+|`IS31FL3746A_PDR_0_OHM` |None |
+|`IS31FL3746A_PDR_0K5_OHM_SW_OFF`|0.5 kΩ in SWx off time |
+|`IS31FL3746A_PDR_1K_OHM_SW_OFF` |1 kΩ in SWx off time |
+|`IS31FL3746A_PDR_2K_OHM_SW_OFF` |2 kΩ in SWx off time (default)|
+|`IS31FL3746A_PDR_1K_OHM` |1 kΩ |
+|`IS31FL3746A_PDR_2K_OHM` |2 kΩ |
+|`IS31FL3746A_PDR_4K_OHM` |4 kΩ |
+|`IS31FL3746A_PDR_8K_OHM` |8 kΩ |
+
+Valid values for `IS31FL3746A_CS_PULLUP` are:
+
+|Define |Resistance |
+|--------------------------------|------------------------------|
+|`IS31FL3746A_PUR_0_OHM` |None (default) |
+|`IS31FL3746A_PUR_0K5_OHM_CS_OFF`|0.5 kΩ in CSy off time |
+|`IS31FL3746A_PUR_1K_OHM_CS_OFF` |1 kΩ in CSy off time |
+|`IS31FL3746A_PUR_2K_OHM_CS_OFF` |2 kΩ in CSy off time (default)|
+|`IS31FL3746A_PUR_1K_OHM` |1 kΩ |
+|`IS31FL3746A_PUR_2K_OHM` |2 kΩ |
+|`IS31FL3746A_PUR_4K_OHM` |4 kΩ |
+|`IS31FL3746A_PUR_8K_OHM` |8 kΩ |
+
+### Global Current Control {#global-current-control}
+
+This setting controls the current sunk by the `CSy` pins, from 0 to 255. By default, the value is the maximum (255), but if you need to lower it, add the following to your `config.h`:
+
+```c
+#define IS31FL3746A_GLOBAL_CURRENT 0xFF
+```
+
+## ARM/ChibiOS Configuration {#arm-configuration}
+
+Depending on the ChibiOS board configuration, you may need to [enable and configure I²C](i2c#arm-configuration) at the keyboard level.
+
+## LED Mapping {#led-mapping}
+
+In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`:
+
+```c
+const is31fl3746a_led_t PROGMEM g_is31fl3746a_leds[IS31FL3746A_LED_COUNT] = {
+/* Driver
+ * | R G B */
+ {0, SW1_CS1, SW1_CS2, SW1_CS3},
+ // etc...
+};
+```
+
+In this example, the red, green and blue channels for the first LED index on driver 0 all have their anodes connected to the `SW1` pin, and their cathodes on the `CS1`, `CS2` and `CS3` pins respectively.
+
+For the single-color driver, the principle is the same, but there is only one channel:
+
+```c
+const is31fl3746a_led_t PROGMEM g_is31fl3746a_leds[IS31FL3746A_LED_COUNT] = {
+/* Driver
+ * | V */
+ {0, SW1_CS1},
+ // etc...
+};
+```
+
+These values correspond to the register indices as shown in the datasheet on page 13, figure 8.
+
+## API {#api}
+
+### `struct is31fl3746a_led_t` {#api-is31fl3746a-led-t}
+
+Contains the PWM register addresses for a single RGB LED.
+
+#### Members {#api-is31fl3746a-led-t-members}
+
+ - `uint8_t driver`
+ The driver index of the LED, from 0 to 3.
+ - `uint8_t r`
+ The output PWM register address for the LED's red channel (RGB driver only).
+ - `uint8_t g`
+ The output PWM register address for the LED's green channel (RGB driver only).
+ - `uint8_t b`
+ The output PWM register address for the LED's blue channel (RGB driver only).
+ - `uint8_t v`
+ The output PWM register address for the LED (single-color driver only).
+
+---
+
+### `void is31fl3746a_init(uint8_t index)` {#api-is31fl3746a-init}
+
+Initialize the LED driver. This function should be called first.
+
+#### Arguments {#api-is31fl3746a-init-arguments}
+
+ - `uint8_t index`
+ The driver index.
+ - `uint8_t sync`
+ Sync configuration of the LED driver.
+
+---
+
+### `void is31fl3746a_write_register(uint8_t index, uint8_t reg, uint8_t data)` {#api-is31fl3746a-write-register}
+
+Set the value of the given register.
+
+#### Arguments {#api-is31fl3746a-write-register-arguments}
+
+ - `uint8_t index`
+ The driver index.
+ - `uint8_t reg`
+ The register address.
+ - `uint8_t data`
+ The value to set.
+
+---
+
+### `void is31fl3746a_select_page(uint8_t index, uint8_t page)` {#api-is31fl3746a-select-page}
+
+Change the current page for configuring the LED driver.
+
+#### Arguments {#api-is31fl3746a-select-page-arguments}
+
+ - `uint8_t index`
+ The driver index.
+ - `uint8_t page`
+ The page number to select.
+
+---
+
+### `void is31fl3746a_set_color(int index, uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3746a-set-color}
+
+Set the color of a single LED (RGB driver only). This function does not immediately update the LEDs; call `is31fl3746a_update_pwm_buffers()` after you are finished.
+
+#### Arguments {#api-is31fl3746a-set-color-arguments}
+
+ - `int index`
+ The LED index (ie. the index into the `g_is31fl3746a_leds` array).
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void is31fl3746a_set_color_all(uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3746a-set-color-all}
+
+Set the color of all LEDs (RGB driver only).
+
+#### Arguments {#api-is31fl3746a-set-color-all-arguments}
+
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void is31fl3746a_set_value(int index, uint8_t value)` {#api-is31fl3746a-set-value}
+
+Set the brightness of a single LED (single-color driver only). This function does not immediately update the LEDs; call `is31fl3746a_update_pwm_buffers()` after you are finished.
+
+#### Arguments {#api-is31fl3746a-set-value-arguments}
+
+ - `int index`
+ The LED index (ie. the index into the `g_is31fl3746a_leds` array).
+ - `uint8_t value`
+ The brightness value to set.
+
+---
+
+### `void is31fl3746a_set_value_all(uint8_t value)` {#api-is31fl3746a-set-value-all}
+
+Set the brightness of all LEDs (single-color driver only).
+
+#### Arguments {#api-is31fl3746a-set-value-all-arguments}
+
+ - `uint8_t value`
+ The brightness value to set.
+
+---
+
+### `void is31fl3746a_set_scaling_register(uint8_t index, uint8_t red, uint8_t green, uint8_t blue)` {#api-is31fl3746a-set-scaling-register-rgb}
+
+Configure the scaling registers for a single LED (RGB driver only). This function does not immediately update the LEDs; call `is31fl3746a_update_scaling_registers()` after you are finished.
+
+#### Arguments {#api-is31fl3746a-set-scaling-register-rgb-arguments}
+
+ - `uint8_t index`
+ The LED index (ie. the index into the `g_is31fl3746a_leds` array).
+ - `uint8_t red`
+ The scaling value for the red channel.
+ - `uint8_t green`
+ The scaling value for the green channel.
+ - `uint8_t blue`
+ The scaling value for the blue channel.
+
+---
+
+### `void is31fl3746a_set_scaling_register(uint8_t index, uint8_t value)` {#api-is31fl3746a-set-scaling-register-mono}
+
+Configure the scaling register for a single LED (single-color driver only). This function does not immediately update the LEDs; call `is31fl3746a_update_scaling_registers()` after you are finished.
+
+#### Arguments {#api-is31fl3746a-set-scaling-register-mono-arguments}
+
+ - `uint8_t index`
+ The LED index (ie. the index into the `g_is31fl3746a_leds` array).
+ - `uint8_t value`
+ The scaling value for the LED.
+
+---
+
+### `void is31fl3746a_update_pwm_buffers(uint8_t index)` {#api-is31fl3746a-update-pwm-buffers}
+
+Flush the PWM values to the LED driver.
+
+#### Arguments {#api-is31fl3746a-update-pwm-buffers-arguments}
+
+ - `uint8_t index`
+ The driver index.
+
+---
+
+### `void is31fl3746a_update_scaling_registers(uint8_t index)` {#api-is31fl3746a-update-scaling-registers}
+
+Flush the scaling register values to the LED driver.
+
+#### Arguments {#api-is31fl3746a-update-scaling-registers-arguments}
+
+ - `uint8_t index`
+ The driver index.
diff --git a/docs/drivers/serial.md b/docs/drivers/serial.md
index 75d11bc93bc..dda75f629a2 100644
--- a/docs/drivers/serial.md
+++ b/docs/drivers/serial.md
@@ -12,8 +12,6 @@ The Serial driver powers the [Split Keyboard](../features/split_keyboard) featur
Serial in this context should be read as **sending information one bit at a time**, rather than implementing UART/USART/RS485/RS232 standards.
:::
-
-
## Bitbang
This is the Default driver, absence of configuration assumes this driver. It works by [bit banging](https://en.wikipedia.org/wiki/Bit_banging) a GPIO pin using the CPU. It is therefore not as efficient as a dedicated hardware peripheral, which the Half-duplex and Full-duplex drivers use.
@@ -53,11 +51,15 @@ SERIAL_DRIVER = bitbang
#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
```
-3. On ARM platforms you must turn on ChibiOS `PAL_USE_CALLBACKS` feature:
+3. On ARM platforms you must turn on ChibiOS PAL callbacks:
-* In `halconf.h` add the line `#define PAL_USE_CALLBACKS TRUE`.
+```c
+#pragma once
-
+#define PAL_USE_CALLBACKS TRUE // [!code focus]
+
+#include_next
+```
## USART Half-duplex
@@ -117,8 +119,6 @@ For STM32 MCUs several GPIO configuration options can be changed as well. See th
4. Decide either for `SERIAL`, `SIO`, or `PIO` subsystem. See section ["Choosing a driver subsystem"](#choosing-a-driver-subsystem).
-
-
## USART Full-duplex
Targeting ARM boards based on ChibiOS where communication is offloaded to an USART hardware device. The advantages over bitbanging are fast, accurate timings and reduced CPU usage; therefore it is advised to choose this driver over all others where possible. Due to its internal design Full-duplex is slightly more efficient than the Half-duplex driver, but Full-duplex should be primarily chosen if Half-duplex operation is not supported by the controller's USART peripheral.
@@ -179,38 +179,46 @@ For STM32 MCUs several GPIO configuration options, including the ability for `TX
4. Decide either for `SERIAL`, `SIO`, or `PIO` subsystem. See section ["Choosing a driver subsystem"](#choosing-a-driver-subsystem).
-
-
## Choosing a driver subsystem
### The `SERIAL` driver
The `SERIAL` Subsystem is supported for the majority of ChibiOS MCUs and should be used whenever supported. Follow these steps in order to activate it:
-1. In your keyboards `halconf.h` add:
+1. Enable the SERIAL subsystem in the ChibiOS HAL.
-```c
-#define HAL_USE_SERIAL TRUE
-```
+ Add the following to your keyboard's `halconf.h`, creating it if necessary:
-2. In your keyboards `mcuconf.h`: activate the USART peripheral that is used on your MCU. The shown example is for an STM32 MCU, so this will not work on MCUs by other manufacturers. You can find the correct names in the `mcuconf.h` files of your MCU that ship with ChibiOS.
-
-Just below `#include_next ` add:
+ ```c
+ #pragma once
-```c
-#include_next
+ #define HAL_USE_SERIAL TRUE // [!code focus]
-#undef STM32_SERIAL_USE_USARTn
-#define STM32_SERIAL_USE_USARTn TRUE
-```
+ #include_next
+ ```
-Where 'n' matches the peripheral number of your selected USART on the MCU.
+2. Activate the USART peripheral that is used on your MCU. The shown example is for an STM32 MCU, so this will not work on MCUs by other manufacturers. You can find the correct names in the `mcuconf.h` files of your MCU that ship with ChibiOS.
-3. In you keyboards `config.h`: override the default USART `SERIAL` driver if you use a USART peripheral that does not belong to the default selected `SD1` driver. For instance, if you selected `STM32_SERIAL_USE_USART3` the matching driver would be `SD3`.
+ Add the following to your keyboard's `mcuconf.h`, creating it if necessary:
-```c
- #define SERIAL_USART_DRIVER SD3
- ```
+ ```c
+ #pragma once
+
+ #include_next
+
+ #undef STM32_SERIAL_USE_USARTn // [!code focus]
+ #define STM32_SERIAL_USE_USARTn TRUE // [!code focus]
+ ```
+
+ Where *n* matches the peripheral number of your selected USART on the MCU.
+
+3. Override the default USART `SERIAL` driver if you use a USART peripheral that does not belong to the default selected `SD1` driver. For instance, if you selected `STM32_SERIAL_USE_USART3` the matching driver would be `SD3`.
+
+ Add the following to your keyboard's `config.h`:
+
+ ```c
+ #define SERIAL_USART_DRIVER SD3
+ ```
### The `SIO` driver
@@ -218,31 +226,41 @@ The `SIO` Subsystem was added to ChibiOS with the 21.11 release and is only supp
Follow these steps in order to activate it:
-1. In your keyboards `halconf.h` add:
+1. Enable the SIO subsystem in the ChibiOS HAL.
-```c
-#define HAL_USE_SIO TRUE
-```
+ Add the following to your keyboard's `halconf.h`, creating it if necessary:
-2. In your keyboards `mcuconf.h:` activate the USART peripheral that is used on your MCU. The shown example is for an STM32 MCU, so this will not work on MCUs by other manufacturers. You can find the correct names in the `mcuconf.h` files of your MCU that ship with ChibiOS.
-
-Just below `#include_next ` add:
+ ```c
+ #pragma once
-```c
-#include_next
+ #define HAL_USE_SIO TRUE // [!code focus]
-#undef STM32_SIO_USE_USARTn
-#define STM32_SIO_USE_USARTn TRUE
-```
+ #include_next
+ ```
-Where 'n' matches the peripheral number of your selected USART on the MCU.
+2. Activate the USART peripheral that is used on your MCU. The shown example is for an STM32 MCU, so this will not work on MCUs by other manufacturers. You can find the correct names in the `mcuconf.h` files of your MCU that ship with ChibiOS.
-3. In the keyboard's `config.h` file: override the default USART `SIO` driver if you use a USART peripheral that does not belong to the default selected `SIOD1` driver. For instance, if you selected `STM32_SERIAL_USE_USART3` the matching driver would be `SIOD3`.
+ Add the following to your keyboard's `mcuconf.h`, creating it if necessary:
+
+ ```c
+ #pragma once
+
+ #include_next
+
+ #undef STM32_SIO_USE_USARTn // [!code focus]
+ #define STM32_SIO_USE_USARTn TRUE // [!code focus]
+ ```
+
+ Where *n* matches the peripheral number of your selected USART on the MCU.
+
+3. Override the default USART `SIO` driver if you use a USART peripheral that does not belong to the default selected `SIOD1` driver. For instance, if you selected `STM32_SERIAL_USE_USART3` the matching driver would be `SIOD3`.
+
+ Add the following to your keyboard's `config.h`:
+
+ ```c
+ #define SERIAL_USART_DRIVER SIOD3
+ ```
-```c
- #define SERIAL_USART_DRIVER SIOD3
- ```
-
### The `PIO` driver
The `PIO` subsystem is a Raspberry Pi RP2040 specific implementation, using an integrated PIO peripheral and is therefore only available on this MCU. Because of the flexible nature of PIO peripherals, **any** GPIO pin can be used as a `TX` or `RX` pin. Half-duplex and Full-duplex operation modes are fully supported with this driver. Half-duplex uses the built-in pull-ups and GPIO manipulation of the RP2040 to drive the line high by default, thus an external pull-up resistor **is not required**.
@@ -254,8 +272,6 @@ Optionally, the PIO peripheral utilized for split communication can be changed w
The Serial PIO program uses 2 state machines, 13 instructions and the complete interrupt handler of the PIO peripheral it is running on.
-
-
## Advanced Configuration
There are several advanced configuration options that can be defined in your keyboards `config.h` file:
@@ -265,9 +281,11 @@ There are several advanced configuration options that can be defined in your key
If you're having issues or need a higher baudrate with serial communication, you can change the baudrate which in turn controls the communication speed for serial. You want to lower the baudrate if you experience failed transactions.
```c
-#define SELECT_SOFT_SERIAL_SPEED {#}
+#define SELECT_SOFT_SERIAL_SPEED n
```
+Where *n* is one of:
+
| Speed | Bitbang | Half-duplex and Full-duplex |
| ----- | -------------------------- | --------------------------- |
| `0` | 189000 baud (experimental) | 460800 baud |
@@ -287,8 +305,6 @@ This is the default time window in milliseconds in which a successful communicat
#define SERIAL_USART_TIMEOUT 20 // USART driver timeout. default 20
```
-
-
## Troubleshooting
If you're having issues withe serial communication, you can enable debug messages that will give you insights which part of the communication failed. The enable these messages add to your keyboards `config.h` file:
diff --git a/docs/drivers/snled27351.md b/docs/drivers/snled27351.md
new file mode 100644
index 00000000000..1d91182f7c3
--- /dev/null
+++ b/docs/drivers/snled27351.md
@@ -0,0 +1,245 @@
+# SNLED27351 Driver {#snled27351-driver}
+
+I²C 16x12 LED matrix driver by Sonix. Supports a maximum of four drivers, each controlling up to 192 single-color LEDs, or 64 RGB LEDs.
+
+A slightly modified version of this IC is also known as "CKLED2001".
+
+[SNLED27351 Datasheet](https://www.sonix.com.tw/files/1/D235860C0C037C28E050007F01001CBE)
+
+## Usage {#usage}
+
+The SNLED27351 driver code is automatically included if you are using the [LED Matrix](../features/led_matrix) or [RGB Matrix](../features/rgb_matrix) feature with the `snled27351` driver set, and you would use those APIs instead.
+
+However, if you need to use the driver standalone, add this to your `rules.mk`:
+
+```make
+COMMON_VPATH += $(DRIVER_PATH)/led
+SRC += snled27351-mono.c # For single-color
+SRC += snled27351.c # For RGB
+I2C_DRIVER_REQUIRED = yes
+```
+
+## Basic Configuration {#basic-configuration}
+
+Add the following to your `config.h`:
+
+|Define |Default |Description |
+|----------------------------|-------------|----------------------------------------------------|
+|`SNLED27351_SDB_PIN` |*Not defined*|The GPIO pin connected to the drivers' shutdown pins|
+|`SNLED27351_I2C_TIMEOUT` |`100` |The I²C timeout in milliseconds |
+|`SNLED27351_I2C_PERSISTENCE`|`0` |The number of times to retry I²C transmissions |
+|`SNLED27351_I2C_ADDRESS_1` |*Not defined*|The I²C address of driver 0 |
+|`SNLED27351_I2C_ADDRESS_2` |*Not defined*|The I²C address of driver 1 |
+|`SNLED27351_I2C_ADDRESS_3` |*Not defined*|The I²C address of driver 2 |
+|`SNLED27351_I2C_ADDRESS_4` |*Not defined*|The I²C address of driver 3 |
+
+### I²C Addressing {#i2c-addressing}
+
+The SNLED27351 has four possible 7-bit I²C addresses, depending on how the `ADDR` pin is connected.
+
+To configure this, set the `SNLED27351_I2C_ADDRESS_n` defines to one of the following in your `config.h`, where *n* denotes the driver index:
+
+|Define |Value |
+|------------------------------|------|
+|`SNLED27351_I2C_ADDRESS_GND` |`0x74`|
+|`SNLED27351_I2C_ADDRESS_SCL` |`0x75`|
+|`SNLED27351_I2C_ADDRESS_SDA` |`0x76`|
+|`SNLED27351_I2C_ADDRESS_VDDIO`|`0x77`|
+
+## ARM/ChibiOS Configuration {#arm-configuration}
+
+Depending on the ChibiOS board configuration, you may need to [enable and configure I²C](i2c#arm-configuration) at the keyboard level.
+
+## LED Mapping {#led-mapping}
+
+In order to use this driver, each output must be mapped to an LED index, by adding the following to your `.c`:
+
+```c
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
+/* Driver
+ * | R G B */
+ {0, CB1_CA1, CB1_CA2, CB1_CA3},
+ // etc...
+};
+```
+
+In this example, the red, green and blue channels for the first LED index on driver 0 all have their cathodes connected to the `CB1` pin, and their anodes on the `CA1`, `CA2` and `CA3` pins respectively.
+
+For the single-color driver, the principle is the same, but there is only one channel:
+
+```c
+const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
+/* Driver
+ * | V */
+ {0, CB1_CA1},
+ // etc...
+};
+```
+
+These values correspond to the register indices as shown in the datasheet on page 13.
+
+## API {#api}
+
+### `struct snled27351_led_t` {#api-snled27351-led-t}
+
+Contains the PWM register addresses for a single RGB LED.
+
+#### Members {#api-snled27351-led-t-members}
+
+ - `uint8_t driver`
+ The driver index of the LED, from 0 to 3.
+ - `uint8_t r`
+ The output PWM register address for the LED's red channel (RGB driver only).
+ - `uint8_t g`
+ The output PWM register address for the LED's green channel (RGB driver only).
+ - `uint8_t b`
+ The output PWM register address for the LED's blue channel (RGB driver only).
+ - `uint8_t v`
+ The output PWM register address for the LED (single-color driver only).
+
+---
+
+### `void snled27351_init(uint8_t index)` {#api-snled27351-init}
+
+Initialize the LED driver. This function should be called first.
+
+#### Arguments {#api-snled27351-init-arguments}
+
+ - `uint8_t index`
+ The driver index.
+
+---
+
+### `void snled27351_write_register(uint8_t index, uint8_t reg, uint8_t data)` {#api-snled27351-write-register}
+
+Set the value of the given register.
+
+#### Arguments {#api-snled27351-write-register-arguments}
+
+ - `uint8_t index`
+ The driver index.
+ - `uint8_t reg`
+ The register address.
+ - `uint8_t data`
+ The value to set.
+
+---
+
+### `void snled27351_select_page(uint8_t index, uint8_t page)` {#api-snled27351-select-page}
+
+Change the current page for configuring the LED driver.
+
+#### Arguments {#api-snled27351-select-page-arguments}
+
+ - `uint8_t index`
+ The driver index.
+ - `uint8_t page`
+ The page number to select.
+
+---
+
+### `void snled27351_set_color(int index, uint8_t red, uint8_t green, uint8_t blue)` {#api-snled27351-set-color}
+
+Set the color of a single LED (RGB driver only). This function does not immediately update the LEDs; call `snled27351_update_pwm_buffers()` after you are finished.
+
+#### Arguments {#api-snled27351-set-color-arguments}
+
+ - `int index`
+ The LED index (ie. the index into the `g_snled27351_leds` array).
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void snled27351_set_color_all(uint8_t red, uint8_t green, uint8_t blue)` {#api-snled27351-set-color-all}
+
+Set the color of all LEDs (RGB driver only).
+
+#### Arguments {#api-snled27351-set-color-all-arguments}
+
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void snled27351_set_value(int index, uint8_t value)` {#api-snled27351-set-value}
+
+Set the brightness of a single LED (single-color driver only). This function does not immediately update the LEDs; call `snled27351_update_pwm_buffers()` after you are finished.
+
+#### Arguments {#api-snled27351-set-value-arguments}
+
+ - `int index`
+ The LED index (ie. the index into the `g_snled27351_leds` array).
+ - `uint8_t value`
+ The brightness value to set.
+
+---
+
+### `void snled27351_set_value_all(uint8_t value)` {#api-snled27351-set-value-all}
+
+Set the brightness of all LEDs (single-color driver only).
+
+#### Arguments {#api-snled27351-set-value-all-arguments}
+
+ - `uint8_t value`
+ The brightness value to set.
+
+---
+
+### `void snled27351_set_led_control_register(uint8_t index, bool red, bool green, bool blue)` {#api-snled27351-set-led-control-register-rgb}
+
+Configure the LED control registers for a single LED (RGB driver only). This function does not immediately update the LEDs; call `snled27351_update_led_control_registers()` after you are finished.
+
+#### Arguments {#api-snled27351-set-led-control-register-rgb-arguments}
+
+ - `uint8_t index`
+ The LED index (ie. the index into the `g_snled27351_leds` array).
+ - `bool red`
+ Enable or disable the red channel.
+ - `bool green`
+ Enable or disable the green channel.
+ - `bool blue`
+ Enable or disable the blue channel.
+
+---
+
+### `void snled27351_set_led_control_register(uint8_t index, bool value)` {#api-snled27351-set-led-control-register-mono}
+
+Configure the LED control registers for a single LED (single-color driver only). This function does not immediately update the LEDs; call `snled27351_update_led_control_registers()` after you are finished.
+
+#### Arguments {#api-snled27351-set-led-control-register-mono-arguments}
+
+ - `uint8_t index`
+ The LED index (ie. the index into the `g_snled27351_leds` array).
+ - `bool value`
+ Enable or disable the LED.
+
+---
+
+### `void snled27351_update_pwm_buffers(uint8_t index)` {#api-snled27351-update-pwm-buffers}
+
+Flush the PWM values to the LED driver.
+
+#### Arguments {#api-snled27351-update-pwm-buffers-arguments}
+
+ - `uint8_t index`
+ The driver index.
+
+---
+
+### `void snled27351_update_led_control_registers(uint8_t index)` {#api-snled27351-update-led-control-registers}
+
+Flush the LED control register values to the LED driver.
+
+#### Arguments {#api-snled27351-update-led-control-registers-arguments}
+
+ - `uint8_t index`
+ The driver index.
diff --git a/docs/drivers/spi.md b/docs/drivers/spi.md
index ddc35de8511..140b204945f 100644
--- a/docs/drivers/spi.md
+++ b/docs/drivers/spi.md
@@ -32,20 +32,27 @@ You may use more than one slave select pin, not just the `SS` pin. This is usefu
You'll need to determine which pins can be used for SPI -- as an example, STM32 parts generally have multiple SPI peripherals, labeled SPI1, SPI2, SPI3 etc.
-To enable SPI, modify your board's `halconf.h` to enable SPI:
+To enable SPI, modify your board's `halconf.h` to enable SPI, then modify your board's `mcuconf.h` to enable the peripheral you've chosen:
-```c
-#define HAL_USE_SPI TRUE
-#define SPI_USE_WAIT TRUE
-#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
+::: code-group
+```c [halconf.h]
+#pragma once
+
+#define HAL_USE_SPI TRUE // [!code focus]
+#define SPI_USE_WAIT TRUE // [!code focus]
+#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD // [!code focus]
+
+#include_next
```
+```c [mcuconf.h]
+#pragma once
-Then, modify your board's `mcuconf.h` to enable the peripheral you've chosen, for example:
+#include_next
-```c
-#undef STM32_SPI_USE_SPI2
-#define STM32_SPI_USE_SPI2 TRUE
+#undef STM32_SPI_USE_SPI2 // [!code focus]
+#define STM32_SPI_USE_SPI2 TRUE // [!code focus]
```
+:::
Configuration-wise, you'll need to set up the peripheral as per your MCU's datasheet -- the defaults match the pins for a Proton-C, i.e. STM32F303.
@@ -81,7 +88,7 @@ Start an SPI transaction.
#### Arguments {#api-spi-start-arguments}
- `pin_t slavePin`
- The QMK pin to assert as the slave select pin, eg. `B4`.
+ The GPIO pin connected to the desired device's `SS` line.
- `bool lsbFirst`
Determines the endianness of the transmission. If `true`, the least significant bit of each byte is sent first.
- `uint8_t mode`
@@ -99,7 +106,7 @@ Start an SPI transaction.
#### Return Value {#api-spi-start-return}
-`false` if the supplied parameters are invalid or the SPI peripheral is already in use, or `true`.
+`true` if the operation was successful, otherwise `false` if the supplied parameters are invalid or the SPI peripheral is already in use.
---
@@ -124,7 +131,7 @@ Read a byte from the selected SPI device.
#### Return Value {#api-spi-read-return}
-`SPI_STATUS_TIMEOUT` if the timeout period elapses, or the byte read from the device.
+`SPI_STATUS_TIMEOUT` if the timeout period elapses, otherwise the byte read from the device.
---
@@ -152,7 +159,7 @@ Receive multiple bytes from the selected SPI device.
#### Arguments {#api-spi-receive-arguments}
- `uint8_t *data`
- A pointer to the buffer to read into.
+ A pointer to a buffer to read into.
- `uint16_t length`
The number of bytes to read. Take care not to overrun the length of `data`.
diff --git a/docs/drivers/uart.md b/docs/drivers/uart.md
index 23f5b3d6e43..b895266cab2 100644
--- a/docs/drivers/uart.md
+++ b/docs/drivers/uart.md
@@ -35,23 +35,27 @@ You'll need to determine which pins can be used for UART -- as an example, STM32
To enable UART, modify your board's `mcuconf.h` to enable the peripheral you've chosen, for example:
```c
-#undef STM32_SERIAL_USE_USART2
-#define STM32_SERIAL_USE_USART2 TRUE
+#pragma once
+
+#include_next
+
+#undef STM32_SERIAL_USE_USART2 // [!code focus]
+#define STM32_SERIAL_USE_USART2 TRUE // [!code focus]
```
Configuration-wise, you'll need to set up the peripheral as per your MCU's datasheet -- the defaults match the pins for a Proton-C, i.e. STM32F303.
-| `config.h` override | Description | Default Value |
-| --------------------------- | --------------------------------------------------------------- | ------------- |
-| `#define UART_DRIVER` | USART peripheral to use - USART1 -> `SD1`, USART2 -> `SD2` etc. | `SD1` |
-| `#define UART_TX_PIN` | The pin to use for TX | `A9` |
-| `#define UART_TX_PAL_MODE` | The alternate function mode for TX | `7` |
-| `#define UART_RX_PIN` | The pin to use for RX | `A10` |
-| `#define UART_RX_PAL_MODE` | The alternate function mode for RX | `7` |
-| `#define UART_CTS_PIN` | The pin to use for CTS | `A11` |
-| `#define UART_CTS_PAL_MODE` | The alternate function mode for CTS | `7` |
-| `#define UART_RTS_PIN` | The pin to use for RTS | `A12` |
-| `#define UART_RTS_PAL_MODE` | The alternate function mode for RTS | `7` |
+|`config.h` Override|Description |Default|
+|-------------------|---------------------------------------------------------------|-------|
+|`UART_DRIVER` |USART peripheral to use - USART1 -> `SD1`, USART2 -> `SD2` etc.|`SD1` |
+|`UART_TX_PIN` |The pin to use for TX |`A9` |
+|`UART_TX_PAL_MODE` |The alternate function mode for TX |`7` |
+|`UART_RX_PIN` |The pin to use for RX |`A10` |
+|`UART_RX_PAL_MODE` |The alternate function mode for RX |`7` |
+|`UART_CTS_PIN` |The pin to use for CTS |`A11` |
+|`UART_CTS_PAL_MODE`|The alternate function mode for CTS |`7` |
+|`UART_RTS_PIN` |The pin to use for RTS |`A12` |
+|`UART_RTS_PAL_MODE`|The alternate function mode for RTS |`7` |
## API {#api}
@@ -107,7 +111,7 @@ Receive multiple bytes.
#### Arguments {#api-uart-receive-arguments}
- `uint8_t *data`
- A pointer to the buffer to read into.
+ A pointer to a buffer to read into.
- `uint16_t length`
The number of bytes to read. Take care not to overrun the length of `data`.
@@ -119,4 +123,4 @@ Return whether the receive buffer contains data. Call this function to determine
#### Return Value {#api-uart-available-return}
-`true` if the receive buffer length is non-zero.
+`true` if there is data available to read.
diff --git a/docs/drivers/ws2812.md b/docs/drivers/ws2812.md
index 61addf1917e..4d1e7279281 100644
--- a/docs/drivers/ws2812.md
+++ b/docs/drivers/ws2812.md
@@ -160,15 +160,23 @@ To configure the DI pin for open drain configuration, add the following to your
Depending on the ChibiOS board configuration, you may need to enable SPI at the keyboard level. For STM32, this would look like:
-`halconf.h`:
-```c
-#define HAL_USE_SPI TRUE
+::: code-group
+```c [halconf.h]
+#pragma once
+
+#define HAL_USE_SPI TRUE // [!code focus]
+
+#include_next
```
-`mcuconf.h`:
-```c
-#undef STM32_SPI_USE_SPI1
-#define STM32_SPI_USE_SPI1 TRUE
+```c [mcuconf.h]
+#pragma once
+
+#include_next
+
+#undef STM32_SPI_USE_SPI1 // [!code focus]
+#define STM32_SPI_USE_SPI1 TRUE // [!code focus]
```
+:::
The following `define`s apply only to the `spi` driver:
@@ -213,15 +221,23 @@ The following `#define`s apply only to the PIO driver:
Depending on the ChibiOS board configuration, you may need to enable PWM at the keyboard level. For STM32, this would look like:
-`halconf.h`:
-```c
-#define HAL_USE_PWM TRUE
+::: code-group
+```c [halconf.h]
+#pragma once
+
+#define HAL_USE_PWM TRUE // [!code focus]
+
+#include_next
```
-`mcuconf.h`:
-```c
-#undef STM32_PWM_USE_TIM2
-#define STM32_PWM_USE_TIM2 TRUE
+```c [mcuconf.h]
+#pragma once
+
+#include_next
+
+#undef STM32_PWM_USE_TIM2 // [!code focus]
+#define STM32_PWM_USE_TIM2 TRUE // [!code focus]
```
+:::
The following `#define`s apply only to the `pwm` driver:
@@ -236,18 +252,49 @@ The following `#define`s apply only to the `pwm` driver:
|`WS2812_PWM_COMPLEMENTARY_OUTPUT`|*Not defined* |Whether the PWM output is complementary (`TIMx_CHyN`) |
::: tip
-Using a complementary timer output (`TIMx_CHyN`) is possible only for advanced-control timers (1, 8 and 20 on STM32), and the `STM32_PWM_USE_ADVANCED` option in `mcuconf.h` must be set to `TRUE`. Complementary outputs of general-purpose timers are not supported due to ChibiOS limitations.
+Using a complementary timer output (`TIMx_CHyN`) is possible only for advanced-control timers (1, 8 and 20 on STM32). Complementary outputs of general-purpose timers are not supported due to ChibiOS limitations.
:::
## API {#api}
-### `void ws2812_setleds(rgb_led_t *ledarray, uint16_t number_of_leds)` {#api-ws2812-setleds}
+### `void ws2812_init(void)` {#api-ws2812-init}
-Send RGB data to the WS2812 LED chain.
+Initialize the LED driver. This function should be called first.
-#### Arguments {#api-ws2812-setleds-arguments}
+---
- - `rgb_led_t *ledarray`
- A pointer to the LED array.
- - `uint16_t number_of_leds`
- The length of the LED array.
+### `void ws2812_set_color(int index, uint8_t red, uint8_t green, uint8_t blue)` {#api-ws2812-set-color}
+
+Set the color of a single LED. This function does not immediately update the LEDs; call `ws2812_flush()` after you are finished.
+
+#### Arguments {#api-ws2812-set-color-arguments}
+
+ - `int index`
+ The LED index in the WS2812 chain.
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void ws812_set_color_all(uint8_t red, uint8_t green, uint8_t blue)` {#api-ws2812-set-color-all}
+
+Set the color of all LEDs.
+
+#### Arguments {#api-ws2812-set-color-all-arguments}
+
+ - `uint8_t red`
+ The red value to set.
+ - `uint8_t green`
+ The green value to set.
+ - `uint8_t blue`
+ The blue value to set.
+
+---
+
+### `void ws2812_flush(void)` {#api-ws2812-flush}
+
+Flush the PWM values to the LED chain.
diff --git a/docs/faq_debug.md b/docs/faq_debug.md
index 36374974dfd..35a4160e276 100644
--- a/docs/faq_debug.md
+++ b/docs/faq_debug.md
@@ -129,7 +129,7 @@ needed for older distros.
## Can't Get Message on Console
Check:
- *hid_listen* finds your device. See above.
-- Enable debug by pressing **Magic**+d. See [Magic Commands](https://github.com/tmk/tmk_keyboard#magic-commands).
+- Enable debug by pressing **Magic**+d. See [Magic Commands](https://github.com/tmk/tmk_keyboard/wiki#magic-commands-for-debug).
- Set `debug_enable=true`. See [Debugging](#debugging)
- Try using `print` function instead of debug print. See **common/print.h**.
- Disconnect other devices with console function. See [Issue #97](https://github.com/tmk/tmk_keyboard/issues/97).
diff --git a/docs/faq_keymap.md b/docs/faq_keymap.md
index 56ccc6f6ccf..05bd4fed3e4 100644
--- a/docs/faq_keymap.md
+++ b/docs/faq_keymap.md
@@ -34,7 +34,7 @@ On first run, the VIA code in the firmware will copy the keymap from flash memor
The simple fix for this is to clear the EEPROM. You can do this in several ways:
-* Hold the Bootmagic Lite key (usually top left/Escape) while plugging the board in, which will also place the board into bootloader mode; then unplug and replug the board.
+* Hold the Bootmagic key (usually top left/Escape) while plugging the board in, which will also place the board into bootloader mode; then unplug and replug the board.
* Press the `QK_CLEAR_EEPROM`/`EE_CLR` keycode if it is accessible on your keymap.
* Place the board into bootloader mode and hit the "Clear EEPROM" button. This may not be available for all bootloaders, and you may need to reflash the board afterwards.
diff --git a/docs/feature_advanced_keycodes.md b/docs/feature_advanced_keycodes.md
index 7f5a10d1c13..18740044f43 100644
--- a/docs/feature_advanced_keycodes.md
+++ b/docs/feature_advanced_keycodes.md
@@ -11,7 +11,7 @@ These allow you to combine a modifier with a keycode. When pressed, the keydown
|`RCTL(kc)`| |Hold Right Control and press `kc` |
|`RSFT(kc)`| |Hold Right Shift and press `kc` |
|`RALT(kc)`|`ROPT(kc)`, `ALGR(kc)` |Hold Right Alt and press `kc` |
-|`RGUI(kc)`|`RCMD(kc)`, `LWIN(kc)` |Hold Right GUI and press `kc` |
+|`RGUI(kc)`|`RCMD(kc)`, `RWIN(kc)` |Hold Right GUI and press `kc` |
|`LSG(kc)` |`SGUI(kc)`, `SCMD(kc)`, `SWIN(kc)`|Hold Left Shift and GUI and press `kc` |
|`LAG(kc)` | |Hold Left Alt and Left GUI and press `kc` |
|`RSG(kc)` | |Hold Right Shift and Right GUI and press `kc` |
diff --git a/docs/feature_converters.md b/docs/feature_converters.md
index 229d1007ab4..06cc7b3a11f 100644
--- a/docs/feature_converters.md
+++ b/docs/feature_converters.md
@@ -10,7 +10,7 @@ The following converters are available at this time:
|------------|-------------------|
| `promicro` | `proton_c` |
| `promicro` | `kb2040` |
-| `promicro` | `promicro_rp2040` |
+| `promicro` | `sparkfun_pm2040` |
| `promicro` | `blok` |
| `promicro` | `bit_c_pro` |
| `promicro` | `stemcell` |
@@ -21,6 +21,7 @@ The following converters are available at this time:
| `promicro` | `liatris` |
| `promicro` | `imera` |
| `promicro` | `michi` |
+| `promicro` | `svlinky` |
| `elite_c` | `stemcell` |
| `elite_c` | `rp2040_ce` |
| `elite_c` | `elite_pi` |
@@ -77,7 +78,7 @@ If a board currently supported in QMK uses a [Pro Micro](https://www.sparkfun.co
|------------------------------------------------------------------------------------------|-------------------|
| [Proton C](https://qmk.fm/proton-c/) | `proton_c` |
| [Adafruit KB2040](https://learn.adafruit.com/adafruit-kb2040) | `kb2040` |
-| [SparkFun Pro Micro - RP2040](https://www.sparkfun.com/products/18288) | `promicro_rp2040` |
+| [SparkFun Pro Micro - RP2040](https://www.sparkfun.com/products/18288) | `sparkfun_pm2040` |
| [Blok](https://boardsource.xyz/store/628b95b494dfa308a6581622) | `blok` |
| [Bit-C PRO](https://nullbits.co/bit-c-pro) | `bit_c_pro` |
| [STeMCell](https://github.com/megamind4089/STeMCell) | `stemcell` |
@@ -87,6 +88,7 @@ If a board currently supported in QMK uses a [Pro Micro](https://www.sparkfun.co
| [Liatris](https://splitkb.com/products/liatris) | `liatris` |
| [Imera](https://splitkb.com/products/imera) | `imera` |
| [Michi](https://github.com/ci-bus/michi-promicro-rp2040) | `michi` |
+| [Svlinky](https://github.com/sadekbaroudi/svlinky) | `svlinky` |
Converter summary:
@@ -94,7 +96,7 @@ Converter summary:
|-------------------|---------------------------------|------------------------------|-------------------------------------|
| `proton_c` | `-e CONVERT_TO=proton_c` | `CONVERT_TO=proton_c` | `#ifdef CONVERT_TO_PROTON_C` |
| `kb2040` | `-e CONVERT_TO=kb2040` | `CONVERT_TO=kb2040` | `#ifdef CONVERT_TO_KB2040` |
-| `promicro_rp2040` | `-e CONVERT_TO=promicro_rp2040` | `CONVERT_TO=promicro_rp2040` | `#ifdef CONVERT_TO_PROMICRO_RP2040` |
+| `sparkfun_pm2040` | `-e CONVERT_TO=sparkfun_pm2040` | `CONVERT_TO=sparkfun_pm2040` | `#ifdef CONVERT_TO_SPARKFUN_PM2040` |
| `blok` | `-e CONVERT_TO=blok` | `CONVERT_TO=blok` | `#ifdef CONVERT_TO_BLOK` |
| `bit_c_pro` | `-e CONVERT_TO=bit_c_pro` | `CONVERT_TO=bit_c_pro` | `#ifdef CONVERT_TO_BIT_C_PRO` |
| `stemcell` | `-e CONVERT_TO=stemcell` | `CONVERT_TO=stemcell` | `#ifdef CONVERT_TO_STEMCELL` |
@@ -105,6 +107,7 @@ Converter summary:
| `liatris` | `-e CONVERT_TO=liatris` | `CONVERT_TO=liatris` | `#ifdef CONVERT_TO_LIATRIS` |
| `imera` | `-e CONVERT_TO=imera` | `CONVERT_TO=imera` | `#ifdef CONVERT_TO_IMERA` |
| `michi` | `-e CONVERT_TO=michi` | `CONVERT_TO=michi` | `#ifdef CONVERT_TO_MICHI` |
+| `svlinky` | `-e CONVERT_TO=svlinky` | `CONVERT_TO=svlinky` | `#ifdef CONVERT_TO_SVLINKY` |
### Proton C {#proton_c}
@@ -135,7 +138,7 @@ The following defaults are based on what has been implemented for [RP2040](platf
| USB Host (e.g. USB-USB converter) | Not supported (USB host code is AVR specific and is not currently supported on ARM) |
| [Split keyboards](features/split_keyboard) | Partial via `PIO` vendor driver - heavily dependent on enabled features |
-### SparkFun Pro Micro - RP2040, Blok, Bit-C PRO and Michi {#promicro_rp2040 }
+### SparkFun Pro Micro - RP2040, Blok, Bit-C PRO and Michi {#sparkfun_pm2040 }
Feature set is identical to [Adafruit KB2040](#kb2040).
@@ -170,6 +173,9 @@ The Bonsai C4 only has one on-board LED (B2), and by default, both the Pro Micro
Feature set is identical to [Adafruit KB2040](#kb2040). VBUS detection is enabled by default for superior split keyboard support. For more information, refer to the [Community Edition pinout](platformdev_rp2040#rp2040_ce) docs.
+### Svlinky {#svlinky}
+
+Feature set is a pro micro equivalent of the [RP2040 Community Edition](#rp2040_ce), except that two of the analog GPIO have been replaced with digital only GPIO. These two were moved to the FPC connector to support the [VIK specification](https://github.com/sadekbaroudi/vik). This means that if you are expecting analog support on all 4 pins as provided on a RP2040 Community Edition pinout, you will not have that. Please see the [Svlinky github page](https://github.com/sadekbaroudi/svlinky) for more details.
## Elite-C
diff --git a/docs/feature_eeprom.md b/docs/feature_eeprom.md
index 2912407ac76..22257b32022 100644
--- a/docs/feature_eeprom.md
+++ b/docs/feature_eeprom.md
@@ -109,7 +109,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
}
```
-And lastly, you want to add the `eeconfig_init_user` function, so that when the EEPROM is reset, you can specify default values, and even custom actions. To force an EEPROM reset, use the `EE_CLR` keycode or [Bootmagic Lite](features/bootmagic) functionallity. For example, if you want to set rgb layer indication by default, and save the default valued.
+And lastly, you want to add the `eeconfig_init_user` function, so that when the EEPROM is reset, you can specify default values, and even custom actions. To force an EEPROM reset, use the `EE_CLR` keycode or [Bootmagic](features/bootmagic) functionallity. For example, if you want to set rgb layer indication by default, and save the default valued.
```c
void eeconfig_init_user(void) { // EEPROM is getting reset!
diff --git a/docs/feature_layers.md b/docs/feature_layers.md
index fe9932fadbe..da6a28bd882 100644
--- a/docs/feature_layers.md
+++ b/docs/feature_layers.md
@@ -8,7 +8,8 @@ For a detailed explanation of how the layer stack works, checkout [Keymap Overvi
These functions allow you to activate layers in various ways. Note that layers are not generally independent layouts -- multiple layers can be activated at once, and it's typical for layers to use `KC_TRNS` to allow keypresses to pass through to lower layers. When using momentary layer switching with MO(), LM(), TT(), or LT(), make sure to leave the key on the above layers transparent or it may not work as intended.
-* `DF(layer)` - switches the default layer. The default layer is the always-active base layer that other layers stack on top of. See below for more about the default layer. This might be used to switch from QWERTY to Dvorak layout. (Note that this is a temporary switch that only persists until the keyboard loses power. To modify the default layer in a persistent way requires deeper customization, such as calling the `set_single_persistent_default_layer` function inside of [process_record_user](custom_quantum_functions#programming-the-behavior-of-any-keycode).)
+* `DF(layer)` - switches the default layer. The default layer is the always-active base layer that other layers stack on top of. See below for more about the default layer. This might be used to switch from QWERTY to Dvorak layout. Note that this is a temporary switch that only persists until the keyboard loses power.
+* `PDF(layer)` - sets a persistent default layer. This switch, which will last through a power loss, might be used to switch from QWERTY to Dvorak layout and only switch again when you want to.
* `MO(layer)` - momentarily activates *layer*. As soon as you let go of the key, the layer is deactivated.
* `LM(layer, mod)` - Momentarily activates *layer* (like `MO`), but with modifier(s) *mod* active. Only supports layers 0-15. The modifiers this keycode accept are prefixed with `MOD_`, not `KC_`. These modifiers can be combined using bitwise OR, e.g. `LM(_RAISE, MOD_LCTL | MOD_LALT)`.
* `LT(layer, kc)` - momentarily activates *layer* when held, and sends *kc* when tapped. Only supports layers 0-15.
@@ -17,6 +18,9 @@ These functions allow you to activate layers in various ways. Note that layers a
* `TO(layer)` - activates *layer* and de-activates all other layers (except your default layer). This function is special, because instead of just adding/removing one layer to your active layer stack, it will completely replace your current active layers, uniquely allowing you to replace higher layers with a lower one. This is activated on keydown (as soon as the key is pressed).
* `TT(layer)` - Layer Tap-Toggle. If you hold the key down, *layer* is activated, and then is de-activated when you let go (like `MO`). If you repeatedly tap it, the layer will be toggled on or off (like `TG`). It needs 5 taps by default, but you can change this by defining `TAPPING_TOGGLE` -- for example, `#define TAPPING_TOGGLE 2` to toggle on just two taps.
+See also the [Layer Lock key](features/layer_lock), which locks the highest
+active layer until pressed again.
+
### Caveats {#caveats}
Currently, the `layer` argument of `LT()` is limited to layers 0-15, and the `kc` argument to the [Basic Keycode set](keycodes_basic), meaning you can't use keycodes like `LCTL()`, `KC_TILD`, or anything greater than `0xFF`. This is because QMK uses 16-bit keycodes, of which 4 bits are used for the function identifier and 4 bits for the layer, leaving only 8 bits for the keycode.
@@ -74,6 +78,7 @@ There are a number of functions (and variables) related to how you can use or ma
| `default_layer_and(layer_mask)` | Turns on layers based on matching enabled bits between specifed layer and existing default layer state. |
| `default_layer_xor(layer_mask)` | Turns on layers based on non-matching bits between specifed layer and existing default layer state. |
| `default_layer_debug(layer_mask)` | Prints out the current bit mask and highest active default layer to debugger console. |
+| [`set_single_default_layer(layer)`](ref_functions.md#setting-the-persistent-default-layer) | Sets the default layer, but does _not_ write it to persistent memory (EEPROM). |
| [`set_single_persistent_default_layer(layer)`](ref_functions.md#setting-the-persistent-default-layer) | Sets the default layer and writes it to persistent memory (EEPROM). |
| [`update_tri_layer(x, y, z)`](ref_functions.md#update_tri_layerx-y-z) | Checks if layers `x` and `y` are both on, and sets `z` based on that (on if both on, otherwise off). |
| [`update_tri_layer_state(state, x, y, z)`](ref_functions.md#update_tri_layer_statestate-x-y-z) | Does the same as `update_tri_layer(x, y, z)`, but from `layer_state_set_*` functions. |
diff --git a/docs/feature_macros.md b/docs/feature_macros.md
index 055bb3ff8f7..404eb4b38d9 100644
--- a/docs/feature_macros.md
+++ b/docs/feature_macros.md
@@ -42,38 +42,7 @@ You can define up to 32 macros in a `keymap.json` file, as used by [Configurator
### Selecting Your Host Keyboard Layout
-If you type in a language other than English, or use a non-QWERTY layout like Colemak, Dvorak, or Workman, you may have set your computer's input language to match this layout. This presents a challenge when creating macros - you may need to type different keys to get the same letters! To address this you can add the `host_language` key to your `keymap.json`, like so:
-
-```json
-{
- "keyboard": "handwired/my_macropad",
- "keymap": "my_keymap",
- "host_language": "dvorak",
- "macros": [
- ["Hello, World!"]
- ],
- "layout": "LAYOUT_all",
- "layers": [
- ["QK_MACRO_0"]
- ]
-}
-```
-
-The current list of available languages is:
-
-| belgian | bepo | br_abnt2 | canadian_multilingual |
-|:-------:|:----:|:--------:|:---------------------:|
-| **colemak** | **croatian** | **czech** | **danish** |
-| **dvorak_fr** | **dvorak** | **dvp** | **estonian** |
-| **finnish** | **fr_ch** | **french_afnor** | **french** |
-| **french_osx** | **german_ch** | **german** | **german_osx** |
-| **hungarian** | **icelandic** | **italian** | **italian_osx_ansi** |
-| **italian_osx_iso** | **jis** | **latvian** | **lithuanian_azerty** |
-| **lithuanian_qwerty** | **norman** | **norwegian** | **portuguese** |
-| **portuguese_osx_iso** | **romanian** | **serbian_latin** | **slovak** |
-| **slovenian** | **spanish_dvorak** | **spanish_latin_america** | **spanish** |
-| **swedish** | **turkish_f** | **turkish_q** | **uk** |
-| **us_international** | **workman** | **workman_zxcvm** |
+If you type in a language other than English, or use a non-QWERTY layout like Colemak, Dvorak, or Workman, you may have set your computer's input language to match this layout. This presents a challenge when creating macros — you may need to type different keys to get the same letters! To address this you can use [language-specific keycodes](reference_keymap_extras).
### Macro Basics
@@ -148,7 +117,9 @@ If yes, we send the string `"QMK is the best thing ever!"` to the computer via t
We return `true` to indicate to the caller that the key press we just processed should continue to be processed as normal (as we didn't replace or alter the functionality).
Finally, we define the keymap so that the first button activates our macro and the second button is just an escape button.
-?>It is recommended to use the SAFE_RANGE macro as per [Customizing Functionality](custom_quantum_functions).
+::: tip
+It is recommended to use the SAFE_RANGE macro as per [Customizing Functionality](custom_quantum_functions).
+:::
You might want to add more than one macro.
You can do that by adding another keycode and adding another case to the switch statement, like so:
diff --git a/docs/feature_userspace.md b/docs/feature_userspace.md
index 1e7c3b37cdc..d19b86cb46c 100644
--- a/docs/feature_userspace.md
+++ b/docs/feature_userspace.md
@@ -74,8 +74,9 @@ Additionally, `config.h` here will be processed like the same file in your keyma
The reason for this, is that `.h` won't be added in time to add settings (such as `#define TAPPING_TERM 100`), and including the `` file in any `config.h` files will result in compile issues.
-!>You should use the `config.h` for [configuration options](config_options), and the `.h` file for user or keymap specific settings (such as the enum for layer or keycodes)
-
+::: warning
+You should use the `config.h` for [configuration options](config_options), and the `.h` file for user or keymap specific settings (such as the enum for layer or keycodes)
+:::
## Readme (`readme.md`)
diff --git a/docs/features/backlight.md b/docs/features/backlight.md
index 94726756fdb..20f84ac6b59 100644
--- a/docs/features/backlight.md
+++ b/docs/features/backlight.md
@@ -161,15 +161,23 @@ Note that the choice of timer may conflict with the [Audio](audio) feature.
Depending on the ChibiOS board configuration, you may need to enable PWM at the keyboard level. For STM32, this would look like:
-`halconf.h`:
-```c
-#define HAL_USE_PWM TRUE
+::: code-group
+```c [halconf.h]
+#pragma once
+
+#define HAL_USE_PWM TRUE // [!code focus]
+
+#include_next
```
-`mcuconf.h`:
-```c
-#undef STM32_PWM_USE_TIM4
-#define STM32_PWM_USE_TIM4 TRUE
+```c [mcuconf.h]
+#pragma once
+
+#include_next
+
+#undef STM32_PWM_USE_TIM4 // [!code focus]
+#define STM32_PWM_USE_TIM4 TRUE // [!code focus]
```
+:::
The following `#define`s apply only to the `pwm` driver:
@@ -187,15 +195,23 @@ Refer to the ST datasheet for your particular MCU to determine these values. For
Depending on the ChibiOS board configuration, you may need to enable general-purpose timers at the keyboard level. For STM32, this would look like:
-`halconf.h`:
-```c
-#define HAL_USE_GPT TRUE
+::: code-group
+```c [halconf.h]
+#pragma once
+
+#define HAL_USE_GPT TRUE // [!code focus]
+
+#include_next
```
-`mcuconf.h`:
-```c
-#undef STM32_GPT_USE_TIM15
-#define STM32_GPT_USE_TIM15 TRUE
+```c [mcuconf.h]
+#pragma once
+
+#include_next
+
+#undef STM32_GPT_USE_TIM15 // [!code focus]
+#define STM32_GPT_USE_TIM15 TRUE // [!code focus]
```
+:::
The following `#define`s apply only to the `timer` driver:
diff --git a/docs/features/bluetooth.md b/docs/features/bluetooth.md
deleted file mode 100644
index 1dbf15f4e10..00000000000
--- a/docs/features/bluetooth.md
+++ /dev/null
@@ -1,46 +0,0 @@
-# Bluetooth
-
-## Bluetooth Known Supported Hardware
-
-Currently Bluetooth support is limited to AVR based chips. For Bluetooth 2.1, QMK has support for RN-42 modules. For more recent BLE protocols, currently only the Adafruit Bluefruit SPI Friend is directly supported. BLE is needed to connect to iOS devices. Note iOS does not support mouse input.
-
-|Board |Bluetooth Protocol |Connection Type|rules.mk |Bluetooth Chip|
-|----------------------------------------------------------------|--------------------|---------------|---------------------------------|--------------|
-|Roving Networks RN-42 (Sparkfun Bluesmirf) |Bluetooth Classic |UART |`BLUETOOTH_DRIVER = rn42` |RN-42 |
-|[Bluefruit LE SPI Friend](https://www.adafruit.com/product/2633)|Bluetooth Low Energy|SPI |`BLUETOOTH_DRIVER = bluefruit_le`|nRF51822 |
-
-Not Supported Yet but possible:
-* [Bluefruit LE UART Friend](https://www.adafruit.com/product/2479). [Possible tmk implementation found in](https://github.com/tmk/tmk_keyboard/issues/514)
-* HC-05 boards flashed with RN-42 firmware. They apparently both use the CSR BC417 Chip. Flashing it with RN-42 firmware gives it HID capability.
-* Sparkfun Bluetooth Mate
-* HM-13 based boards
-
-### Adafruit BLE SPI Friend
-Currently The only bluetooth chipset supported by QMK is the Adafruit Bluefruit SPI Friend. It's a Nordic nRF51822 based chip running Adafruit's custom firmware. Data is transmitted via Adafruit's SDEP over Hardware SPI. The [Feather 32u4 Bluefruit LE](https://www.adafruit.com/product/2829) is supported as it's an AVR mcu connected via SPI to the Nordic BLE chip with Adafruit firmware. If Building a custom board with the SPI friend it would be easiest to just use the pin selection that the 32u4 feather uses but you can change the pins in the config.h options with the following defines:
-* `#define BLUEFRUIT_LE_RST_PIN D4`
-* `#define BLUEFRUIT_LE_CS_PIN B4`
-* `#define BLUEFRUIT_LE_IRQ_PIN E6`
-
-A Bluefruit UART friend can be converted to an SPI friend, however this [requires](https://github.com/qmk/qmk_firmware/issues/2274) some reflashing and soldering directly to the MDBT40 chip.
-
-
-## Bluetooth Rules.mk Options
-
-The currently supported Bluetooth chipsets do not support [N-Key Rollover (NKRO)](../reference_glossary#n-key-rollover-nkro), so `rules.mk` must contain `NKRO_ENABLE = no`.
-
-Add the following to your `rules.mk`:
-
-```make
-BLUETOOTH_ENABLE = yes
-BLUETOOTH_DRIVER = bluefruit_le # or rn42
-```
-
-## Bluetooth Keycodes
-
-This is used when multiple keyboard outputs can be selected. Currently this only allows for switching between USB and Bluetooth on keyboards that support both.
-
-|Key |Aliases |Description |
-|---------------------|---------|----------------------------------------------|
-|`QK_OUTPUT_AUTO` |`OU_AUTO`|Automatically switch between USB and Bluetooth|
-|`QK_OUTPUT_USB` |`OU_USB` |USB only |
-|`QK_OUTPUT_BLUETOOTH`|`OU_BT` |Bluetooth only |
diff --git a/docs/features/combo.md b/docs/features/combo.md
index bdb8c4b15fc..afe202ad54a 100644
--- a/docs/features/combo.md
+++ b/docs/features/combo.md
@@ -152,14 +152,15 @@ In order to use these features, the following configuration options and function
| Config Flag | Function | Description |
|-----------------------------|-----------------------------------------------------------|--------------------------------------------------------------------------------------------------------|
-| `COMBO_TERM_PER_COMBO` | uint16_t get_combo_term(uint16_t index, combo_t \*combo) | Optional per-combo timeout window. (default: `COMBO_TERM`) |
-| `COMBO_MUST_HOLD_PER_COMBO` | bool get_combo_must_hold(uint16_t index, combo_t \*combo) | Controls if a given combo should fire immediately on tap or if it needs to be held. (default: `false`) |
-| `COMBO_MUST_TAP_PER_COMBO` | bool get_combo_must_tap(uint16_t index, combo_t \*combo) | Controls if a given combo should fire only if tapped within `COMBO_HOLD_TERM`. (default: `false`) |
-| `COMBO_MUST_PRESS_IN_ORDER_PER_COMBO` | bool get_combo_must_press_in_order(uint16_t index, combo_t \*combo) | Controls if a given combo should fire only if its keys are pressed in order. (default: `true`) |
+| `COMBO_TERM_PER_COMBO` | `uint16_t get_combo_term(uint16_t combo_index, combo_t *combo)` | Optional per-combo timeout window. (default: `COMBO_TERM`) |
+| `COMBO_MUST_HOLD_PER_COMBO` | `bool get_combo_must_hold(uint16_t combo_index, combo_t *combo)` | Controls if a given combo should fire immediately on tap or if it needs to be held. (default: `false`) |
+| `COMBO_MUST_TAP_PER_COMBO` | `bool get_combo_must_tap(uint16_t combo_index, combo_t *combo)` | Controls if a given combo should fire only if tapped within `COMBO_HOLD_TERM`. (default: `false`) |
+| `COMBO_MUST_PRESS_IN_ORDER_PER_COMBO` | `bool get_combo_must_press_in_order(uint16_t combo_index, combo_t *combo)` | Controls if a given combo should fire only if its keys are pressed in order. (default: `true`) |
Examples:
```c
-uint16_t get_combo_term(uint16_t index, combo_t *combo) {
+#ifdef COMBO_TERM_PER_COMBO
+uint16_t get_combo_term(uint16_t combo_index, combo_t *combo) {
// decide by combo->keycode
switch (combo->keycode) {
case KC_X:
@@ -167,7 +168,7 @@ uint16_t get_combo_term(uint16_t index, combo_t *combo) {
}
// or with combo index, i.e. its name from enum.
- switch (index) {
+ switch (combo_index) {
case COMBO_NAME_HERE:
return 9001;
}
@@ -182,8 +183,10 @@ uint16_t get_combo_term(uint16_t index, combo_t *combo) {
return COMBO_TERM;
}
+#endif
-bool get_combo_must_hold(uint16_t index, combo_t *combo) {
+#ifdef COMBO_MUST_HOLD_PER_COMBO
+bool get_combo_must_hold(uint16_t combo_index, combo_t *combo) {
// Same as above, decide by keycode, the combo index, or by the keys in the chord.
if (KEYCODE_IS_MOD(combo->keycode) ||
@@ -192,15 +195,17 @@ bool get_combo_must_hold(uint16_t index, combo_t *combo) {
return true;
}
- switch (index) {
+ switch (combo_index) {
case COMBO_NAME_HERE:
return true;
}
return false;
}
+#endif
-bool get_combo_must_tap(uint16_t index, combo_t *combo) {
+#ifdef COMBO_MUST_TAP_PER_COMBO
+bool get_combo_must_tap(uint16_t combo_index, combo_t *combo) {
// If you want all combos to be tap-only, just uncomment the next line
// return true
@@ -219,7 +224,9 @@ bool get_combo_must_tap(uint16_t index, combo_t *combo) {
return false;
}
+#endif
+#ifdef COMBO_MUST_PRESS_IN_ORDER_PER_COMBO
bool get_combo_must_press_in_order(uint16_t combo_index, combo_t *combo) {
switch (combo_index) {
/* List combos here that you want to only activate if their keys
@@ -231,6 +238,7 @@ bool get_combo_must_press_in_order(uint16_t combo_index, combo_t *combo) {
return false;
}
}
+#endif
```
### Generic hook to (dis)allow a combo activation
@@ -307,6 +315,50 @@ bool process_combo_key_release(uint16_t combo_index, combo_t *combo, uint8_t key
return false;
}
```
+
+### Customizable key repress
+By defining `COMBO_PROCESS_KEY_REPRESS` and implementing `bool process_combo_key_repress(uint16_t combo_index, combo_t *combo, uint8_t key_index, uint16_t keycode)` you can run your custom code when you repress just released key of a combo. By combining it with custom `process_combo_event` we can for example make special handling for Alt+Tab to switch windows, which, on combo F+G activation, registers Alt and presses Tab - then we can switch windows forward by releasing G and pressing it again, or backwards with F key. Here's the full example:
+
+```c
+enum combos {
+ CMB_ALTTAB
+};
+
+const uint16_t PROGMEM combo_alttab[] = {KC_F, KC_G, COMBO_END};
+
+combo_t key_combos[COMBO_LENGTH] = {
+ [CMB_ALTTAB] = COMBO(combo_alttab, KC_NO), // KC_NO to leave processing for process_combo_event
+};
+
+void process_combo_event(uint16_t combo_index, bool pressed) {
+ switch (combo_index) {
+ case CMB_ALTTAB:
+ if (pressed) {
+ register_mods(MOD_LALT);
+ tap_code(KC_TAB);
+ } else {
+ unregister_mods(MOD_LALT);
+ }
+ break;
+ }
+}
+
+bool process_combo_key_repress(uint16_t combo_index, combo_t *combo, uint8_t key_index, uint16_t keycode) {
+ switch (combo_index) {
+ case CMB_ALTTAB:
+ switch (keycode) {
+ case KC_F:
+ tap_code16(S(KC_TAB));
+ return true;
+ case KC_G:
+ tap_code(KC_TAB);
+ return true;
+ }
+ }
+ return false;
+}
+```
+
### Layer independent combos
If you, for example, use multiple base layers for different key layouts, one for QWERTY, and another one for Colemak, you might want your combos to work from the same key positions on all layers. Defining the same combos again for another layout is redundant and takes more memory. The solution is to just check the keycodes from one layer.
diff --git a/docs/features/command.md b/docs/features/command.md
index 7ad45103c78..a6f96dcd835 100644
--- a/docs/features/command.md
+++ b/docs/features/command.md
@@ -1,6 +1,6 @@
# Command
-Command, formerly known as Magic, is a way to change your keyboard's behavior without having to flash or unplug it to use [Bootmagic Lite](bootmagic). There is a lot of overlap between this functionality and the [Magic Keycodes](../keycodes_magic). Wherever possible we encourage you to use that feature instead of Command.
+Command, formerly known as Magic, is a way to change your keyboard's behavior without having to flash or unplug it to use [Bootmagic](bootmagic). There is a lot of overlap between this functionality and the [Magic Keycodes](../keycodes_magic). Wherever possible we encourage you to use that feature instead of Command.
On some keyboards Command is disabled by default. If this is the case, it must be explicitly enabled in your `rules.mk`:
diff --git a/docs/features/community_modules.md b/docs/features/community_modules.md
new file mode 100644
index 00000000000..a28c5afaeb1
--- /dev/null
+++ b/docs/features/community_modules.md
@@ -0,0 +1,142 @@
+# Community Modules
+
+Community Modules are a feature within QMK which allows code to be implemented by third parties, making it available for other people to import into their own builds.
+
+These modules can provide implementations which override or enhance normal QMK processing; initialization, key processing, suspend, and shutdown are some of the provided hooks which modules may implement.
+
+## Adding a Community Module to your build
+
+Community Modules have first-class support for [External Userspace](/newbs_external_userspace), and QMK strongly recommends using External Userspace for hosting keymaps and Community Modules together.
+
+Modules must live in either of two locations:
+
+* `/modules/`
+* `/modules/`
+
+A basic module is provided within QMK itself -- `qmk/hello_world` -- which prints out a notification over [HID console](/faq_debug) after 10 seconds, and adds a new keycode, `COMMUNITY_MODULE_HELLO` (aliased to `CM_HELO`) which types `Hello there.` to the active application when the corresponding key is pressed.
+
+To add this module to your build, in your keymap's directory create a `keymap.json` with the following content:
+
+```json
+{
+ "modules": [
+ "qmk/hello_world"
+ ]
+}
+```
+
+If you already have a `keymap.json`, you'll need to manually merge the `modules` section into your keymap.
+
+::: warning
+Community Modules are not supported by QMK Configurator. If you wish to use Community Modules, you must build your own firmware.
+:::
+
+## Adding a Community Module to your External Userspace
+
+Module authors are encouraged to provide a git repository on GitHub which may be imported into a user's external userspace. If a user wishes to import a module repository, they can do the following:
+
+```sh
+cd /path/to/your/external/userspace
+mkdir -p modules
+# Replace the following {user} and {repo} with the author's community module repository
+git submodule add https://github.com/{user}/{repo}.git modules/{user}
+git submodule update --init --recursive
+```
+
+This will ensure the copy of the module is made in your userspace.
+
+Add a new entry into your `keymap.json` with the desired modules, replacing `{user}` and `{module_name}` as appropriate:
+
+```json
+{
+ "modules": [
+ "qmk/hello_world",
+ "{user}/{module_name}"
+ ]
+}
+```
+
+::: info
+The module listed in `keymap.json` is the relative path within the `modules/` directory. So long as the module is present _somewhere_ under `modules/`, then the `keymap.json` can refer to that path.
+:::
+
+## Writing a QMK Community Module
+
+As stated earlier, Community Module authors are strongly encouraged to provide their modules through git, allowing users to leverage submodules to import functionality.
+
+### `qmk_module.json`
+
+A Community Module is denoted by a `qmk_module.json` file such as the following:
+
+```json
+{
+ "module_name": "Hello World",
+ "maintainer": "QMK Maintainers",
+ "features": {
+ "deferred_exec": true
+ },
+ "keycodes": [
+ {
+ "key": "COMMUNITY_MODULE_HELLO",
+ "aliases": ["CM_HELO"]
+ }
+ ]
+}
+```
+
+At minimum, the module must provide the `module_name` and `maintainer` fields.
+
+The use of `features` matches the definition normally provided within `keyboard.json` and `info.json`, allowing a module to signal to the build system that it has its own dependencies. In the example above, it enables the _deferred executor_ feature whenever the above module is used in a build.
+
+The `keycodes` array allows a module to provide new keycodes (as well as corresponding aliases) to a keymap.
+
+### `rules.mk` / `post_rules.mk`
+
+These two files follows standard QMK build system logic, allowing for `Makefile`-style customisation as if it were present in the keyboard or keymap.
+
+### `.c`
+
+This file will be automatically added to the build if the filename matches the directory name. For example, the `qmk/hello_world` module contains a `hello_world.c` file, which is automatically added to the build.
+
+::: info
+Other files intended to be included must use the normal method of `SRC += my_file.c` inside `rules.mk`.
+:::
+
+::: tip
+This file should use `ASSERT_COMMUNITY_MODULES_MIN_API_VERSION(1,0,0);` to enforce a minimum version of the API that it requires, ensuring the Community Module is built with a compatible version of QMK. The list of APIs and corresponding version is given at the bottom of this document. Note the use of commas instead of periods.
+:::
+
+### `introspection.c` / `introspection.h`
+
+These two files hook into the keymap introspection logic -- the header is prepended before the user keymap, and the C source file is appended after the user keymap.
+
+The header may provide definitions which are useful to the user's `keymap.c`.
+
+The source file may provide functions which allow access to information specified in the user's `keymap.c`.
+
+::: warning
+Introspection is a relatively advanced topic within QMK, and existing patterns should be followed. If you need help please [open an issue](https://github.com/qmk/qmk_firmware/issues/new) or [chat with us on Discord](https://discord.gg/qmk).
+:::
+
+### Compatible APIs
+
+Community Modules may provide specializations for the following APIs:
+
+| Base API | API Format | Example (`hello_world` module) | API Version |
+|----------------------------|-------------------------------------|----------------------------------------|-------------|
+| `keyboard_pre_init` | `keyboard_pre_init_` | `keyboard_pre_init_hello_world` | `0.1.0` |
+| `keyboard_post_init` | `keyboard_post_init_` | `keyboard_post_init_hello_world` | `0.1.0` |
+| `pre_process_record` | `pre_process_record_` | `pre_process_record_hello_world` | `0.1.0` |
+| `process_record` | `process_record_` | `process_record_hello_world` | `0.1.0` |
+| `post_process_record` | `post_process_record_` | `post_process_record_hello_world` | `0.1.0` |
+| `housekeeping_task` | `housekeeping_task_` | `housekeeping_task_hello_world` | `1.0.0` |
+| `suspend_power_down` | `suspend_power_down_` | `suspend_power_down_hello_world` | `1.0.0` |
+| `suspend_wakeup_init` | `suspend_wakeup_init_` | `suspend_wakeup_init_hello_world` | `1.0.0` |
+| `shutdown` | `shutdown_` | `shutdown_hello_world` | `1.0.0` |
+| `process_detected_host_os` | `process_detected_host_os_` | `process_detected_host_os_hello_world` | `1.0.0` |
+
+::: info
+An unspecified API is disregarded if a Community Module does not provide a specialization for it.
+:::
+
+Each API has an equivalent `__kb()` and `__user()` hook, as per the normal QMK [`_quantum`, `_kb`, and `_user` functions](/custom_quantum_functions#a-word-on-core-vs-keyboards-vs-keymap).
diff --git a/docs/features/encoders.md b/docs/features/encoders.md
index 9157fe67c8b..a674eaa4a64 100644
--- a/docs/features/encoders.md
+++ b/docs/features/encoders.md
@@ -9,15 +9,15 @@ ENCODER_ENABLE = yes
and this to your `config.h`:
```c
-#define ENCODERS_PAD_A { B12 }
-#define ENCODERS_PAD_B { B13 }
+#define ENCODER_A_PINS { B12 }
+#define ENCODER_B_PINS { B13 }
```
Each PAD_A/B variable defines an array so multiple encoders can be defined, e.g.:
```c
-#define ENCODERS_PAD_A { encoder1a, encoder2a }
-#define ENCODERS_PAD_B { encoder1b, encoder2b }
+#define ENCODER_A_PINS { encoder1a, encoder2a }
+#define ENCODER_B_PINS { encoder1b, encoder2b }
```
If your encoder's clockwise directions are incorrect, you can swap the A & B pad definitions. They can also be flipped with a define:
@@ -49,8 +49,8 @@ For 4× encoders you also can assign default position if encoder skips pulses wh
If you are using different pinouts for the encoders on each half of a split keyboard, you can define the pinout (and optionally, resolutions) for the right half like this:
```c
-#define ENCODERS_PAD_A_RIGHT { encoder1a, encoder2a }
-#define ENCODERS_PAD_B_RIGHT { encoder1b, encoder2b }
+#define ENCODER_A_PINS_RIGHT { encoder1a, encoder2a }
+#define ENCODER_B_PINS_RIGHT { encoder1b, encoder2b }
#define ENCODER_RESOLUTIONS_RIGHT { 2, 4 }
```
@@ -59,11 +59,11 @@ If the `_RIGHT` definitions aren't specified in your `config.h`, then the non-`_
Additionally, if one side does not have an encoder, you can specify `{}` for the pins/resolution -- for example, a split keyboard with only a right-side encoder:
```c
-#define ENCODERS_PAD_A { }
-#define ENCODERS_PAD_B { }
+#define ENCODER_A_PINS { }
+#define ENCODER_B_PINS { }
#define ENCODER_RESOLUTIONS { }
-#define ENCODERS_PAD_A_RIGHT { B12 }
-#define ENCODERS_PAD_B_RIGHT { B13 }
+#define ENCODER_A_PINS_RIGHT { B12 }
+#define ENCODER_B_PINS_RIGHT { B13 }
#define ENCODER_RESOLUTIONS_RIGHT { 4 }
```
@@ -84,10 +84,10 @@ Your `keymap.c` will then need an encoder mapping defined (for four layers and t
```c
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [0] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
- [1] = { ENCODER_CCW_CW(UG_HUED, UG_HUEU), ENCODER_CCW_CW(UG_SATD, UG_SATU) },
- [2] = { ENCODER_CCW_CW(UG_VALD, UG_VALU), ENCODER_CCW_CW(UG_SPDD, UG_SPDU) },
- [3] = { ENCODER_CCW_CW(UG_PREV, UG_NEXT), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT) },
+ [0] = { ENCODER_CCW_CW(MS_WHLU, MS_WHLD), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+ [1] = { ENCODER_CCW_CW(UG_HUED, UG_HUEU), ENCODER_CCW_CW(UG_SATD, UG_SATU) },
+ [2] = { ENCODER_CCW_CW(UG_VALD, UG_VALU), ENCODER_CCW_CW(UG_SPDD, UG_SPDU) },
+ [3] = { ENCODER_CCW_CW(UG_PREV, UG_NEXT), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT) },
};
#endif
```
@@ -174,13 +174,13 @@ Multiple encoders may share pins so long as each encoder has a distinct pair of
For example you can support two encoders using only 3 pins like this
```
-#define ENCODERS_PAD_A { B1, B1 }
-#define ENCODERS_PAD_B { B2, B3 }
+#define ENCODER_A_PINS { B1, B1 }
+#define ENCODER_B_PINS { B2, B3 }
```
You could even support three encoders using only three pins (one per encoder) however in this configuration, rotating two encoders which share pins simultaneously will often generate incorrect output. For example:
```
-#define ENCODERS_PAD_A { B1, B1, B2 }
-#define ENCODERS_PAD_B { B2, B3, B3 }
+#define ENCODER_A_PINS { B1, B1, B2 }
+#define ENCODER_B_PINS { B2, B3, B3 }
```
Here rotating Encoder 0 `B1 B2` and Encoder 1 `B1 B3` could be interpreted as rotating Encoder 2 `B2 B3` or `B3 B2` depending on the timing. This may still be a useful configuration depending on your use case
diff --git a/docs/features/joystick.md b/docs/features/joystick.md
index f3fd209d5a9..cbf6c6daf7e 100644
--- a/docs/features/joystick.md
+++ b/docs/features/joystick.md
@@ -1,6 +1,6 @@
# Joystick {#joystick}
-This feature provides game controller input as a joystick device supporting up to 6 axes and 32 buttons. Axes can be read either from an [ADC-capable input pin](../drivers/adc), or can be virtual, so that its value is provided by your code.
+This feature provides game controller input as a joystick device supporting up to 6 axes, 32 buttons and a hat switch. Axes can be read either from an [ADC-capable input pin](../drivers/adc), or can be virtual, so that its value is provided by your code.
An analog device such as a [potentiometer](https://en.wikipedia.org/wiki/Potentiometer) found on an analog joystick's axes is based on a voltage divider, where adjusting the movable wiper controls the output voltage which can then be read by the microcontroller's ADC.
@@ -18,6 +18,8 @@ By default the joystick driver is `analog`, but you can change this with:
JOYSTICK_DRIVER = digital
```
+When using `analog` with ARM, [you must use 3.3v with your Joystick](../drivers/adc). Although ARM boards such as the [Helios](https://keeb.supply/products/0xcb-helios) have 5v pin output, the ADC driver does not support it.
+
## Configuration {#configuration}
By default, two axes and eight buttons are defined, with a reported resolution of 8 bits (-127 to +127). This can be changed in your `config.h`:
@@ -35,6 +37,42 @@ By default, two axes and eight buttons are defined, with a reported resolution o
You must define at least one button or axis. Also note that the maximum ADC resolution of the supported AVR MCUs is 10-bit, and 12-bit for most STM32 MCUs.
:::
+### Hat Switch {#hat-switch}
+
+To enable the 8-way hat switch, add the following to your `config.h`:
+
+```c
+#define JOYSTICK_HAS_HAT
+````
+
+The position can be set by calling `joystick_set_hat(value)`. The range of values moves clockwise from the top (ie. north), with the default "center" position represented by a value of `-1`:
+
+```
+ 0
+ 7 N 1
+ NW .--'--. NE
+ / \
+6 W | -1 | E 2
+ \ /
+ SW '--.--' SE
+ 5 S 3
+ 4
+```
+
+Alternatively you can use these predefined names:
+
+|Define |Value|Angle|
+|------------------------|-----|-----|
+|`JOYSTICK_HAT_CENTER` |`-1` | |
+|`JOYSTICK_HAT_NORTH` |`0` |0° |
+|`JOYSTICK_HAT_NORTHEAST`|`1` |45° |
+|`JOYSTICK_HAT_EAST` |`2` |90° |
+|`JOYSTICK_HAT_SOUTHEAST`|`3` |135° |
+|`JOYSTICK_HAT_SOUTH` |`4` |180° |
+|`JOYSTICK_HAT_SOUTHWEST`|`5` |225° |
+|`JOYSTICK_HAT_WEST` |`6` |270° |
+|`JOYSTICK_HAT_NORTHWEST`|`7` |315° |
+
### Axes {#axes}
When defining axes for your joystick, you must provide a definition array typically in your `keymap.c`.
@@ -147,6 +185,8 @@ Contains the state of the joystick.
A bit-packed array containing the joystick button states. The size is calculated as `(JOYSTICK_BUTTON_COUNT - 1) / 8 + 1`.
- `int16_t axes[]`
An array of analog values for each defined axis.
+ - `int8_t hat`
+ The hat switch position.
- `bool dirty`
Whether the current state needs to be sent to the host.
@@ -220,3 +260,14 @@ Set the value of the given axis.
The axis to set the value of.
- `int16_t value`
The value to set.
+
+---
+
+### `void joystick_set_hat(int8_t value)` {#api-joystick-set-hat}
+
+Set the position of the hat switch.
+
+#### Arguments {#api-joystick-set-hat-arguments}
+
+ - `int8_t value`
+ The hat switch position to set.
diff --git a/docs/features/key_overrides.md b/docs/features/key_overrides.md
index 4c568f16791..9b6015175cb 100644
--- a/docs/features/key_overrides.md
+++ b/docs/features/key_overrides.md
@@ -14,7 +14,7 @@ You can use key overrides in a similar way to momentary layer/fn keys to activat
To enable this feature, you need to add `KEY_OVERRIDE_ENABLE = yes` to your `rules.mk`.
-Then, in your `keymap.c` file, you'll need to define the array `key_overrides`, which defines all key overrides to be used. Each override is a value of type `key_override_t`. The array `key_overrides` is `NULL`-terminated and contains pointers to `key_override_t` values (`const key_override_t **`).
+Then, in your `keymap.c` file, you'll need to define the array `key_overrides`, which defines all key overrides to be used. Each override is a value of type `key_override_t`. The array `key_overrides`contains pointers to `key_override_t` values (`const key_override_t **`).
## Creating Key Overrides {#creating-key-overrides}
@@ -42,9 +42,8 @@ This shows how the mentioned example of sending `delete` when `shift` + `backspa
const key_override_t delete_key_override = ko_make_basic(MOD_MASK_SHIFT, KC_BSPC, KC_DEL);
// This globally defines all key overrides to be used
-const key_override_t **key_overrides = (const key_override_t *[]){
- &delete_key_override,
- NULL // Null terminate the array of overrides!
+const key_override_t *key_overrides[] = {
+ &delete_key_override
};
```
@@ -91,14 +90,13 @@ const key_override_t brightness_up_override = ko_make_with_layers_negmods_and_op
const key_override_t brightness_down_override = ko_make_basic(MOD_MASK_CSA, KC_MPLY, KC_BRID);
// This globally defines all key overrides to be used
-const key_override_t **key_overrides = (const key_override_t *[]){
+const key_override_t *key_overrides[] = {
&next_track_override,
&prev_track_override,
&vol_up_override,
&vol_down_override,
&brightness_up_override,
- &brightness_down_override,
- NULL
+ &brightness_down_override
};
```
@@ -112,10 +110,9 @@ const key_override_t tilde_esc_override = ko_make_basic(MOD_MASK_SHIFT, KC_ESC,
// GUI + esc = `
const key_override_t grave_esc_override = ko_make_basic(MOD_MASK_GUI, KC_ESC, KC_GRV);
-const key_override_t **key_overrides = (const key_override_t *[]){
+const key_override_t *key_overrides[] = {
&tilde_esc_override,
- &grave_esc_override,
- NULL
+ &grave_esc_override
};
```
diff --git a/docs/features/layer_lock.md b/docs/features/layer_lock.md
new file mode 100644
index 00000000000..aaf323acccd
--- /dev/null
+++ b/docs/features/layer_lock.md
@@ -0,0 +1,139 @@
+# Layer Lock
+
+Some [layer switches](../feature_layers#switching-and-toggling-layers) access
+the layer by holding the key, including momentary layer `MO(layer)` and layer
+tap `LT(layer, key)` keys. You may sometimes need to stay on the layer for a
+long period of time. Layer Lock "locks" the current layer to stay on, supposing
+it was accessed by one of:
+
+ * `MO(layer)` momentary layer switch
+ * `LT(layer, key)` layer tap
+ * `OSL(layer)` one-shot layer
+ * `TT(layer)` layer tap toggle
+ * `LM(layer, mod)` layer-mod key (the layer is locked, but not the mods)
+
+Press the Layer Lock key again to unlock the layer. Additionally, when a layer
+is locked, layer switch keys that turn off the layer such as `TO(other_layer)`
+will unlock it.
+
+
+## How do I enable Layer Lock
+
+In your rules.mk, add:
+
+```make
+LAYER_LOCK_ENABLE = yes
+```
+
+Pick a key in your keymap on a layer you intend to lock, and assign it the
+keycode `QK_LAYER_LOCK` (short alias `QK_LLCK`). Note that locking the base
+layer has no effect, so typically, this key is used on layers above the base
+layer.
+
+
+## Example use
+
+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
+using navigation functions continuously. The Layer Lock key comes to the rescue:
+
+1. Hold the NAV key, activating the navigation layer.
+2. Tap Layer Lock.
+3. Release NAV. The navigation layer stays on.
+4. Make use of the arrow keys, etc.
+5. Tap Layer Lock or NAV again to turn the navigation layer back off.
+
+A variation that would also work is to put the Layer Lock key on the base layer
+and make other layers transparent (`KC_TRNS`) in that position. Pressing the
+Layer Lock key locks (or unlocks) the highest active layer, regardless of which
+layer the Layer Lock key is on.
+
+
+## Idle timeout
+
+Optionally, Layer Lock may be configured to unlock if the keyboard is idle
+for some time. In config.h, define `LAYER_LOCK_IDLE_TIMEOUT` in units of
+milliseconds:
+
+```c
+#define LAYER_LOCK_IDLE_TIMEOUT 60000 // Turn off after 60 seconds.
+```
+
+
+## Functions
+
+Use the following functions to query and manipulate the layer lock state.
+
+| Function | Description |
+|----------------------------|------------------------------------|
+| `is_layer_locked(layer)` | Checks whether `layer` is locked. |
+| `layer_lock_on(layer)` | Locks and turns on `layer`. |
+| `layer_lock_off(layer)` | Unlocks and turns off `layer`. |
+| `layer_lock_invert(layer)` | Toggles whether `layer` is locked. |
+
+
+## Representing the current Layer Lock state
+
+There is an optional callback `layer_lock_set_user()` that gets called when a
+layer is locked or unlocked. This is useful to represent the current lock state
+for instance by setting an LED. In keymap.c, define
+
+```c
+bool layer_lock_set_user(layer_state_t locked_layers) {
+ // Do something like `set_led(is_layer_locked(NAV));`
+ return true;
+}
+```
+
+The argument `locked_layers` is a bitfield in which the kth bit is on if the kth
+layer is locked. Alternatively, you can use `is_layer_locked(layer)` to check if
+a given layer is locked.
+
+
+## Combine Layer Lock with a mod-tap
+
+It is possible to create a [mod-tap MT key](../mod_tap) that acts as a modifier
+on hold and Layer Lock on tap. Since Layer Lock is not a [basic
+keycode](../keycodes_basic), attempting `MT(mod, QK_LLCK)` is invalid does not
+work directly, yet this effect can be achieved through [changing the tap
+function](../mod_tap#changing-tap-function). For example, the following
+implements a `SFTLLCK` key that acts as Shift on hold and Layer Lock on tap:
+
+```c
+#define SFTLLCK LSFT_T(KC_0)
+
+// Use SFTLLCK in your keymap...
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case SFTLLCK:
+ if (record->tap.count) {
+ if (record->event.pressed) {
+ // Toggle the lock on the highest layer.
+ layer_lock_invert(get_highest_layer(layer_state));
+ }
+ return false;
+ }
+ break;
+
+ // Other macros...
+ }
+ return true;
+}
+```
+
+In the above, `KC_0` is an arbitrary placeholder for the tapping keycode. This
+keycode will never be sent, so any basic keycode will do. In
+`process_record_user()`, the tap press event is changed to toggle the lock on
+the highest layer. Layer Lock can be combined with a [layer-tap LT
+key](../feature_layers#switching-and-toggling-layers) similarly.
+
diff --git a/docs/features/leader_key.md b/docs/features/leader_key.md
index a36e630a366..9f9086e1ae0 100644
--- a/docs/features/leader_key.md
+++ b/docs/features/leader_key.md
@@ -154,6 +154,21 @@ User callback, invoked when the leader sequence ends.
---
+### `bool leader_add_user(uint16_t keycode)` {#api-leader-add-user}
+
+User callback, invoked when a keycode is added to the leader sequence.
+
+#### Arguments {#api-leader-add-user-arguments}
+
+ - `uint16_t keycode`
+ The keycode to added to the leader sequence.
+
+#### Return Value {#api-leader-add-user-return}
+
+`true` to finish the key sequence, `false` to continue.
+
+---
+
### `void leader_start(void)` {#api-leader-start}
Begin the leader sequence, resetting the buffer and timer.
diff --git a/docs/features/led_indicators.md b/docs/features/led_indicators.md
index 8435c69a552..211fda25815 100644
--- a/docs/features/led_indicators.md
+++ b/docs/features/led_indicators.md
@@ -21,9 +21,8 @@ There are three ways to get the lock LED state:
The `host_keyboard_led_state()` may reflect an updated state before `led_update_user()` is called.
:::
-Two deprecated functions that provide the LED state as `uint8_t`:
+Deprecated functions that provide the LED state as `uint8_t`:
-* `uint8_t led_set_user(uint8_t usb_led)`
* `uint8_t host_keyboard_leds()`
## Configuration Options
@@ -50,10 +49,6 @@ When the configuration options do not provide enough flexibility, the following
Both receives LED state as a struct parameter. Returning `true` in `led_update_user()` will allow the keyboard level code in `led_update_kb()` to run as well. Returning `false` will override the keyboard level code, depending on how the keyboard level function is set up.
-::: tip
-This boolean return type of `led_update_user` allows for overriding keyboard LED controls, and is thus recommended over the void `led_set_user` function.
-:::
-
### Example of keyboard LED update implementation
This is a template indicator function that can be implemented on keyboard level code:
diff --git a/docs/features/led_matrix.md b/docs/features/led_matrix.md
index f6587f7b3ea..113b13f03b6 100644
--- a/docs/features/led_matrix.md
+++ b/docs/features/led_matrix.md
@@ -4,176 +4,32 @@ This feature allows you to use LED matrices driven by external drivers. It hooks
If you want to use RGB LED's you should use the [RGB Matrix Subsystem](rgb_matrix) instead.
-## Driver configuration {#driver-configuration}
----
-### IS31FL3731 {#is31fl3731}
+## Driver Configuration {#driver-configuration}
-There is basic support for addressable LED matrix lighting with the I2C IS31FL3731 LED controller. To enable it, add this to your `rules.mk`:
+LED Matrix is an abstraction layer on top of an underlying LED driver API. The list of supported LED drivers is below; see the respective documentation for information on how to configure the driver.
+
+|Driver |Max LEDs|
+|-------------------------------------|--------|
+|[IS31FL3218](../drivers/is31fl3218) |18 |
+|[IS31FL3236](../drivers/is31fl3236) |36 |
+|[IS31FL3729](../drivers/is31fl3729) |135 |
+|[IS31FL3731](../drivers/is31fl3731) |144 |
+|[IS31FL3733](../drivers/is31fl3733) |192 |
+|[IS31FL3736](../drivers/is31fl3736) |96 |
+|[IS31FL3737](../drivers/is31fl3737) |144 |
+|[IS31FL3741](../drivers/is31fl3741) |351 |
+|[IS31FL3742A](../drivers/is31fl3742a)|180 |
+|[IS31FL3743A](../drivers/is31fl3743a)|198 |
+|[IS31FL3745](../drivers/is31fl3745) |144 |
+|[IS31FL3746A](../drivers/is31fl3746a)|72 |
+|[SNLED27351](../drivers/snled27351) |192 |
+
+To assign the LED Matrix driver, add the following to your `rules.mk`, for example:
```make
-LED_MATRIX_ENABLE = yes
-LED_MATRIX_DRIVER = is31fl3731
+LED_MATRIX_DRIVER = is31fl3218
```
-You can use between 1 and 4 IS31FL3731 IC's. Do not specify `LED_DRIVER_ADDR_` defines for IC's that are not present on your keyboard. You can define the following items in `config.h`:
-
-| Variable | Description | Default |
-|----------|-------------|---------|
-| `IS31FL3731_I2C_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
-| `IS31FL3731_I2C_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
-| `LED_MATRIX_LED_COUNT` | (Required) How many LED lights are present across all drivers | |
-| `IS31FL3731_I2C_ADDRESS_1` | (Required) Address for the first LED driver | |
-| `IS31FL3731_I2C_ADDRESS_2` | (Optional) Address for the second LED driver | |
-| `IS31FL3731_I2C_ADDRESS_3` | (Optional) Address for the third LED driver | |
-| `IS31FL3731_I2C_ADDRESS_4` | (Optional) Address for the fourth LED driver | |
-
-Here is an example using 2 drivers.
-
-```c
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// The address will vary depending on your wiring:
-// 00 AD <-> GND
-// 01 AD <-> SCL
-// 10 AD <-> SDA
-// 11 AD <-> VCC
-// ADDR represents A1:A0 of the 7-bit address.
-// The result is: 0b11101(ADDR)
-#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
-#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
-
-#define LED_DRIVER_1_LED_TOTAL 25
-#define LED_DRIVER_2_LED_TOTAL 24
-#define LED_MATRIX_LED_COUNT (LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL)
-```
-
-::: warning
-Note the parentheses, this is so when `LED_MATRIX_LED_COUNT` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL)` will give very different results than `rand() % LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL`.
-:::
-
-For split keyboards using `LED_MATRIX_SPLIT` with an LED driver, you can either have the same driver address or different driver addresses. If using different addresses, use `IS31FL3731_I2C_ADDRESS_1` for one and `IS31FL3731_I2C_ADDRESS_2` for the other one. Then, in `g_is31fl3731_leds`, fill out the correct driver index (0 or 1). If using one address, use `IS31FL3731_I2C_ADDRESS_1` for both, and use index 0 for `g_is31fl3731_leds`.
-
-Define these arrays listing all the LEDs in your `.c`:
-
-```c
-const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
- * driver
- * | LED address
- * | | */
- { 0, C1_1 },
- { 0, C1_15 },
- // ...
-}
-```
-
-Where `Cx_y` is the location of the LED in the matrix defined by [the datasheet](https://www.issi.com/WW/pdf/31FL3731.pdf) and the header file `drivers/led/issi/is31fl3731-mono.h`. The `driver` is the index of the driver you defined in your `config.h` (`0`, `1`, `2`, or `3` ).
-
----
-### IS31FLCOMMON {#is31flcommon}
-
-There is basic support for addressable LED matrix lighting with a selection of I2C ISSI Lumissil LED controllers through a shared common driver. To enable it, add this to your `rules.mk`:
-
-```makefile
-LED_MATRIX_ENABLE = yes
-LED_MATRIX_DRIVER =
-```
-
-Where `` is the applicable LED driver chip as below
-
-| Driver Name | Data Sheet | Capability |
-|-------------|------------|------------|
-| `IS31FL3742A` | [datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3742A_DS.pdf) | 180 LED, 30x6 Matrix |
-| `IS31FL3743A` | [datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3743A_DS.pdf) | 198 LED, 18x11 Matrix |
-| `IS31FL3745` | [datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3745_DS.pdf) | 144 LED, 18x8 Matrix |
-| `IS31FL3746A` | [datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3746A_DS.pdf) | 72 LED, 18x4 Matrix |
-
-You can use between 1 and 4 IC's. Do not specify `DRIVER_ADDR_` define for IC's if not present on your keyboard. The `DRIVER_ADDR_1` default assumes that all Address pins on the controller have been connected to GND. Drivers that have SYNC functionality have the default settings to disable if 1 driver. If more than 1 drivers then `DRIVER_ADDR_1` will be set to Master and the remaiing ones set to Slave.
-
-Configure the hardware via your `config.h`:
-
-| Variable | Description | Default |
-|----------|-------------|---------|
-| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
-| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
-| `LED_MATRIX_LED_COUNT` | (Required) How many LED lights are present across all drivers | |
-| `DRIVER_ADDR_1` | (Optional) Address for the first LED driver | |
-| `DRIVER_ADDR_` | (Required) Address for the additional LED drivers | |
-| `ISSI_SSR_` | (Optional) Configuration for the Spread Spectrum Register | |
-| `ISSI_CONFIGURATION` | (Optional) Configuration for the Configuration Register | |
-| `ISSI_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF |
-| `ISSI_PULLDOWNUP` | (Optional) Configuration for the Pull Up & Pull Down Register | |
-| `ISSI_TEMP` | (Optional) Configuration for the Tempature Register | |
-| `ISSI_PWM_ENABLE` | (Optional) Configuration for the PWM Enable Register | |
-| `ISSI_PWM_SET` | (Optional) Configuration for the PWM Setting Register | |
-| `ISSI_SCAL_LED ` | (Optional) Configuration for the LEDs Scaling Registers | 0xFF |
-| `ISSI_MANUAL_SCALING` | (Optional) If you wish to configure the Scaling Registers manually | |
-
-
-Defaults
-
-| Variable | IS31FL3742A | IS31FL3743A | IS31FL3745 | IS31FL3746 |
-|----------|-------------|-------------|------------|------------|
-| `DRIVER_ADDR_1` | 0b0110000 | 0b0100000 | 0b0100000 | 0b1100000 |
-| `ISSI_SSR_1` | 0x00 | 0x00 / 0x60 | 0x00 / 0xC0 | 0x00 |
-| `ISSI_SSR_<2-4>` | 0x00 | 0x40 | 0x80 | 0x00 |
-| `ISSI_CONFIGURATION` | 0x31 | 0x01 | 0x31 | 0x01 |
-| `ISSI_PULLDOWNUP` | 0x55 | 0x33 | 0x33 | 0x33 |
-| `ISSI_TEMP` | N/A | 0x00 | 0x00 | 0x00 |
-| `ISSI_PWM_ENABLE` | N/A | N/A | N/A | 0x00 |
-| `ISSI_PWM_SET` | 0x00 | N/A | N/A | 0x00 |
-
-Here is an example using 2 drivers.
-
-```c
-#define DRIVER_ADDR_2 0b0100001
-
-#define DRIVER_1_LED_TOTAL 66
-#define DRIVER_2_LED_TOTAL 42
-#define LED_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-```
-::: warning
-Note the parentheses, this is so when `LED_MATRIX_LED_COUNT` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`.
-:::
-
-Currently only 4 drivers are supported, but it would be trivial to support for more. Note that using a combination of different drivers is not supported. All drivers must be of the same model.
-
-Define these arrays listing all the LEDs in your `.c`:
-
-```c
-const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
- * driver
- * | LED address
- * | | */
- { 0, SW1_CS1 },
- { 0, SW1_CS2 },
- // ...
-}
-```
-
-Where `CSx_SWx` is the location of the LED in the matrix defined by the datasheet. The `driver` is the index of the driver you defined in your `config.h` (`0`, `1`, `2`, or `3` for now).
-
-`ISSI_MANUAL_SCALING` is used to override the Scaling for individual LED's. By default they will be set as per `ISSI_SCAL_LED`. In `config.h` set how many LED's you want to manually set scaling for.
-Eg `#define ISSI_MANUAL_SCALING 3`
-
-Then Define the array listing all the LEDs you want to override in your `.c`:
-
-```c
-const is31_led PROGMEM g_is31_scaling[ISSI_MANUAL_SCALING] = {
-/* LED Index
- * | Scaling
- * | | */
- {5, 120},
- {9, 120},
- ....
-}
-```
-
-Where LED Index is the position of the LED in the `g_is31_leds` array. The `scaling` value between 0 and 255 to be written to the Scaling Register.
-
----
-
## Common Configuration {#common-configuration}
From this point forward the configuration is the same for all the drivers. The `led_config_t` struct provides a key electrical matrix to led index lookup table, what the physical position of each LED is on the board, and what type of key or usage the LED if the LED represents. Here is a brief example:
@@ -371,6 +227,8 @@ For inspiration and examples, check out the built-in effects under `quantum/led_
#define LED_MATRIX_DEFAULT_MODE LED_MATRIX_SOLID // Sets the default mode, if none has been set
#define LED_MATRIX_DEFAULT_VAL LED_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set
#define LED_MATRIX_DEFAULT_SPD 127 // Sets the default animation speed, if none has been set
+#define LED_MATRIX_VAL_STEP 8 // The value by which to increment the brightness per adjustment action
+#define LED_MATRIX_SPD_STEP 16 // The value by which to increment the animation speed per adjustment action
#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
diff --git a/docs/features/mouse_keys.md b/docs/features/mouse_keys.md
index c2b3e98f424..86b50fa9c8d 100644
--- a/docs/features/mouse_keys.md
+++ b/docs/features/mouse_keys.md
@@ -18,27 +18,27 @@ MOUSEKEY_ENABLE = yes
In your keymap you can use the following keycodes to map key presses to mouse actions:
-|Key |Aliases |Description |
-|----------------|---------|-----------------|
-|`KC_MS_UP` |`KC_MS_U`|Move cursor up |
-|`KC_MS_DOWN` |`KC_MS_D`|Move cursor down |
-|`KC_MS_LEFT` |`KC_MS_L`|Move cursor left |
-|`KC_MS_RIGHT` |`KC_MS_R`|Move cursor right|
-|`KC_MS_BTN1` |`KC_BTN1`|Press button 1 |
-|`KC_MS_BTN2` |`KC_BTN2`|Press button 2 |
-|`KC_MS_BTN3` |`KC_BTN3`|Press button 3 |
-|`KC_MS_BTN4` |`KC_BTN4`|Press button 4 |
-|`KC_MS_BTN5` |`KC_BTN5`|Press button 5 |
-|`KC_MS_BTN6` |`KC_BTN6`|Press button 6 |
-|`KC_MS_BTN7` |`KC_BTN7`|Press button 7 |
-|`KC_MS_BTN8` |`KC_BTN8`|Press button 8 |
-|`KC_MS_WH_UP` |`KC_WH_U`|Move wheel up |
-|`KC_MS_WH_DOWN` |`KC_WH_D`|Move wheel down |
-|`KC_MS_WH_LEFT` |`KC_WH_L`|Move wheel left |
-|`KC_MS_WH_RIGHT`|`KC_WH_R`|Move wheel right |
-|`KC_MS_ACCEL0` |`KC_ACL0`|Set speed to 0 |
-|`KC_MS_ACCEL1` |`KC_ACL1`|Set speed to 1 |
-|`KC_MS_ACCEL2` |`KC_ACL2`|Set speed to 2 |
+|Key |Aliases |Description |
+|-------------------------|---------|---------------------------|
+|`QK_MOUSE_CURSOR_UP` |`MS_UP` |Mouse cursor up |
+|`QK_MOUSE_CURSOR_DOWN` |`MS_DOWN`|Mouse cursor down |
+|`QK_MOUSE_CURSOR_LEFT` |`MS_LEFT`|Mouse cursor left |
+|`QK_MOUSE_CURSOR_RIGHT` |`MS_RGHT`|Mouse cursor right |
+|`QK_MOUSE_BUTTON_1` |`MS_BTN1`|Mouse button 1 |
+|`QK_MOUSE_BUTTON_2` |`MS_BTN2`|Mouse button 2 |
+|`QK_MOUSE_BUTTON_3` |`MS_BTN3`|Mouse button 3 |
+|`QK_MOUSE_BUTTON_4` |`MS_BTN4`|Mouse button 4 |
+|`QK_MOUSE_BUTTON_5` |`MS_BTN5`|Mouse button 5 |
+|`QK_MOUSE_BUTTON_6` |`MS_BTN6`|Mouse button 6 |
+|`QK_MOUSE_BUTTON_7` |`MS_BTN7`|Mouse button 7 |
+|`QK_MOUSE_BUTTON_8` |`MS_BTN8`|Mouse button 8 |
+|`QK_MOUSE_WHEEL_UP` |`MS_WHLU`|Mouse wheel up |
+|`QK_MOUSE_WHEEL_DOWN` |`MS_WHLD`|Mouse wheel down |
+|`QK_MOUSE_WHEEL_LEFT` |`MS_WHLL`|Mouse wheel left |
+|`QK_MOUSE_WHEEL_RIGHT` |`MS_WHLR`|Mouse wheel right |
+|`QK_MOUSE_ACCELERATION_0`|`MS_ACL0`|Set mouse acceleration to 0|
+|`QK_MOUSE_ACCELERATION_1`|`MS_ACL1`|Set mouse acceleration to 1|
+|`QK_MOUSE_ACCELERATION_2`|`MS_ACL2`|Set mouse acceleration to 2|
## Configuring mouse keys
@@ -106,17 +106,17 @@ Tips:
### Constant mode
-In this mode you can define multiple different speeds for both the cursor and the mouse wheel. There is no acceleration. `KC_ACL0`, `KC_ACL1` and `KC_ACL2` change the cursor and scroll speed to their respective setting.
+In this mode you can define multiple different speeds for both the cursor and the mouse wheel. There is no acceleration. `MS_ACL0`, `MS_ACL1` and `MS_ACL2` change the cursor and scroll speed to their respective setting.
You can choose whether speed selection is momentary or tap-to-select:
* **Momentary:** The chosen speed is only active while you hold the respective key. When the key is raised, mouse keys returns to the unmodified speed.
-* **Tap-to-select:** The chosen speed is activated when you press the respective key and remains active even after the key has been raised. The default speed is that of `KC_ACL1`. There is no unmodified speed.
+* **Tap-to-select:** The chosen speed is activated when you press the respective key and remains active even after the key has been raised. The default speed is that of `MS_ACL1`. There is no unmodified speed.
The default speeds from slowest to fastest are as follows:
-* **Momentary:** `KC_ACL0` < `KC_ACL1` < *unmodified* < `KC_ACL2`
-* **Tap-to-select:** `KC_ACL0` < `KC_ACL1` < `KC_ACL2`
+* **Momentary:** `MS_ACL0` < `MS_ACL1` < *unmodified* < `MS_ACL2`
+* **Tap-to-select:** `MS_ACL0` < `MS_ACL1` < `MS_ACL2`
To use constant speed mode, you must at least define `MK_3_SPEED` in your keymap’s `config.h` file:
@@ -138,32 +138,32 @@ Use the following settings if you want to adjust cursor movement or scrolling:
|`MK_MOMENTARY_ACCEL` |*Not defined*|Enable momentary speed selection |
|`MK_C_OFFSET_UNMOD` |16 |Cursor offset per movement (unmodified) |
|`MK_C_INTERVAL_UNMOD`|16 |Time between cursor movements (unmodified) |
-|`MK_C_OFFSET_0` |1 |Cursor offset per movement (`KC_ACL0`) |
-|`MK_C_INTERVAL_0` |32 |Time between cursor movements (`KC_ACL0`) |
-|`MK_C_OFFSET_1` |4 |Cursor offset per movement (`KC_ACL1`) |
-|`MK_C_INTERVAL_1` |16 |Time between cursor movements (`KC_ACL1`) |
-|`MK_C_OFFSET_2` |32 |Cursor offset per movement (`KC_ACL2`) |
-|`MK_C_INTERVAL_2` |16 |Time between cursor movements (`KC_ACL2`) |
+|`MK_C_OFFSET_0` |1 |Cursor offset per movement (`MS_ACL0`) |
+|`MK_C_INTERVAL_0` |32 |Time between cursor movements (`MS_ACL0`) |
+|`MK_C_OFFSET_1` |4 |Cursor offset per movement (`MS_ACL1`) |
+|`MK_C_INTERVAL_1` |16 |Time between cursor movements (`MS_ACL1`) |
+|`MK_C_OFFSET_2` |32 |Cursor offset per movement (`MS_ACL2`) |
+|`MK_C_INTERVAL_2` |16 |Time between cursor movements (`MS_ACL2`) |
|`MK_W_OFFSET_UNMOD` |1 |Scroll steps per scroll action (unmodified)|
|`MK_W_INTERVAL_UNMOD`|40 |Time between scroll steps (unmodified) |
-|`MK_W_OFFSET_0` |1 |Scroll steps per scroll action (`KC_ACL0`) |
-|`MK_W_INTERVAL_0` |360 |Time between scroll steps (`KC_ACL0`) |
-|`MK_W_OFFSET_1` |1 |Scroll steps per scroll action (`KC_ACL1`) |
-|`MK_W_INTERVAL_1` |120 |Time between scroll steps (`KC_ACL1`) |
-|`MK_W_OFFSET_2` |1 |Scroll steps per scroll action (`KC_ACL2`) |
-|`MK_W_INTERVAL_2` |20 |Time between scroll steps (`KC_ACL2`) |
+|`MK_W_OFFSET_0` |1 |Scroll steps per scroll action (`MS_ACL0`) |
+|`MK_W_INTERVAL_0` |360 |Time between scroll steps (`MS_ACL0`) |
+|`MK_W_OFFSET_1` |1 |Scroll steps per scroll action (`MS_ACL1`) |
+|`MK_W_INTERVAL_1` |120 |Time between scroll steps (`MS_ACL1`) |
+|`MK_W_OFFSET_2` |1 |Scroll steps per scroll action (`MS_ACL2`) |
+|`MK_W_INTERVAL_2` |20 |Time between scroll steps (`MS_ACL2`) |
### Combined mode
-This mode functions like **Accelerated** mode, however, you can hold `KC_ACL0`, `KC_ACL1` and `KC_ACL2`
+This mode functions like **Accelerated** mode, however, you can hold `MS_ACL0`, `MS_ACL1` and `MS_ACL2`
to momentarily (while held) set the cursor and scroll speeds to constant speeds. When no acceleration
keys are held, this mode is identical to **Accelerated** mode, and can be modified using all of the
relevant settings.
-* **KC_ACL0:** This acceleration sets your cursor to the slowest possible speed. This is useful for very
+* **MS_ACL0:** This acceleration sets your cursor to the slowest possible speed. This is useful for very
small and detailed movements of the cursor.
-* **KC_ACL1:** This acceleration sets your cursor to half the maximum (user defined) speed.
-* **KC_ACL2:** This acceleration sets your cursor to the maximum (computer defined) speed. This is
+* **MS_ACL1:** This acceleration sets your cursor to half the maximum (user defined) speed.
+* **MS_ACL2:** This acceleration sets your cursor to the maximum (computer defined) speed. This is
useful for moving the cursor large distances without much accuracy.
To use combined speed mode, you must at least define `MK_COMBINED` in your keymap’s `config.h` file:
@@ -203,6 +203,21 @@ Tips:
* Keep `MOUSEKEY_MOVE_DELTA` at 1. This allows precise movements before the gliding effect starts.
* Mouse wheel options are the same as the default accelerated mode, and do not use inertia.
+### Overlapping mouse key control
+
+When additional overlapping mouse key is pressed, the mouse cursor will continue in a new direction with the same acceleration. The following settings can be used to reset the acceleration with new overlapping keys for more precise control if desired:
+
+|Define |Default |Description |
+|------------------------------|----------------------|-----------------------------------------------------------------------|
+|`MOUSEKEY_OVERLAP_RESET` |undefined |Enables overlapping mouse key control |
+|`MOUSEKEY_OVERLAP_MOVE_DELTA` |`MOUSEKEY_MOVE_DELTA` |Step size of reset movement acceleration |
+|`MOUSEKEY_OVERLAP_WHEEL_DELTA`|`MOUSEKEY_WHEEL_DELTA`|Step size of reset mouse wheel acceleration |
+|`MOUSEKEY_OVERLAP_INTERVAL` |`MOUSEKEY_INTERVAL` |Reset time between cursor movements in milliseconds (Kinetic mode only)|
+
+::: tip
+This feature will not be applied on Inertial mode
+:::
+
## Use with PS/2 Mouse and Pointing Device
Mouse keys button state is shared with [PS/2 mouse](ps2_mouse) and [pointing device](pointing_device) so mouse keys button presses can be used for clicks and drags.
diff --git a/docs/features/os_detection.md b/docs/features/os_detection.md
index d0556d2549d..880e88d4b93 100644
--- a/docs/features/os_detection.md
+++ b/docs/features/os_detection.md
@@ -70,17 +70,33 @@ The process is done in steps, generating a number of intermediate results until
We therefore resort to debouncing the result until it has been stable for a given amount of milliseconds.
This amount can be configured, in case your board is not stable within the default debouncing time of 200ms.
-## KVM and USB switches
-
-Some KVM and USB switches may not trigger the USB controller on the keyboard to fully reset upon switching machines.
-If your keyboard does not redetect the OS in this situation, you can force the keyboard to reset when the USB initialization event is detected, forcing the USB controller to be reconfigured.
-
## Configuration Options
-* `#define OS_DETECTION_DEBOUNCE 200`
+* `#define OS_DETECTION_DEBOUNCE 250`
* defined the debounce time for OS detection, in milliseconds
+ * defaults to 250ms
* `#define OS_DETECTION_KEYBOARD_RESET`
- * enables the keyboard reset upon a USB device reinitilization, such as switching devices on some KVMs
+ * enables the keyboard reset upon a USB device reinitilization
+ * this setting may help with detection issues when switching between devices on some KVMs (see [Troubleshooting](#troubleshooting))
+* `#define OS_DETECTION_SINGLE_REPORT`
+ * allows the report callbacks to be called only once, when the OS detection result is considered stable
+ * subsequent changes in the detection results, if any, are ignored
+ * this setting may help with delayed stability issues when switching devices on some KVMs (see [Troubleshooting](#troubleshooting))
+
+## Troubleshooting
+
+Some KVMs and USB switches may cause issues when the OS detection is turned on.
+Here is a list of common issues and how to fix them:
+
+* **Problem**: _keyboard won't redetect the OS when switching between machines using a KVM_
+ * **Explanation**: some KVMs keep the USB controller powered on during the switch and OS
+ detection happens when the USB device description is being assembled.
+ * **Solution**: use `OS_DETECTION_KEYBOARD_RESET` to force the keyboard to reset upon switching.
+* **Problem**: _keyboard OS detection callback gets invoked even minuted after startup_
+ * **Explanation**: some OSes, notably macOS on ARM-based Macs, may cause this behavior.
+ The actual cause is not known at this time.'
+ * **Solution**: use `OS_DETECTION_SINGLE_REPORT` to suppress repeated callback invocations.
+
## Debug
diff --git a/docs/features/pointing_device.md b/docs/features/pointing_device.md
index a6bf521a184..0ecf82c8df6 100644
--- a/docs/features/pointing_device.md
+++ b/docs/features/pointing_device.md
@@ -394,6 +394,7 @@ Ideally, new sensor hardware should be added to `drivers/sensors/` and `quantum/
| Setting | Description | Default |
| ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | ------------- |
| `MOUSE_EXTENDED_REPORT` | (Optional) Enables support for extended mouse reports. (-32767 to 32767, instead of just -127 to 127). | _not defined_ |
+| `WHEEL_EXTENDED_REPORT` | (Optional) Enables support for extended wheel reports. (-32767 to 32767, instead of just -127 to 127). | _not defined_ |
| `POINTING_DEVICE_ROTATION_90` | (Optional) Rotates the X and Y data by 90 degrees. | _not defined_ |
| `POINTING_DEVICE_ROTATION_180` | (Optional) Rotates the X and Y data by 180 degrees. | _not defined_ |
| `POINTING_DEVICE_ROTATION_270` | (Optional) Rotates the X and Y data by 270 degrees. | _not defined_ |
diff --git a/docs/features/ps2_mouse.md b/docs/features/ps2_mouse.md
index 90f4cca8275..52443c3ce29 100644
--- a/docs/features/ps2_mouse.md
+++ b/docs/features/ps2_mouse.md
@@ -90,18 +90,22 @@ PS2_ENABLE = yes
PS2_DRIVER = interrupt
```
-In your keyboard config.h:
+In your keyboard `config.h`:
```c
#define PS2_CLOCK_PIN A8
#define PS2_DATA_PIN A9
```
-And in the chibios specifig halconf.h:
-```c
-#define PAL_USE_CALLBACKS TRUE
-```
+And in the ChibiOS specific `halconf.h`:
+```c
+#pragma once
+
+#define PAL_USE_CALLBACKS TRUE // [!code focus]
+
+#include_next
+```
### USART Version {#usart-version}
diff --git a/docs/features/repeat_key.md b/docs/features/repeat_key.md
index 53495e0f4d6..7f2bdc44e65 100644
--- a/docs/features/repeat_key.md
+++ b/docs/features/repeat_key.md
@@ -60,10 +60,10 @@ with mods, like Ctrl + Left ↔ Ctrl + Right Arrow.
|`KC_UP` ↔ `KC_DOWN` | Up ↔ Down Arrow |
|`KC_HOME` ↔ `KC_END` | Home ↔ End |
|`KC_PGUP` ↔ `KC_PGDN` | Page Up ↔ Page Down |
-|`KC_MS_L` ↔ `KC_MS_R` | Mouse Cursor Left ↔ Right |
-|`KC_MS_U` ↔ `KC_MS_D` | Mouse Cursor Up ↔ Down |
-|`KC_WH_L` ↔ `KC_WH_R` | Mouse Wheel Left ↔ Right |
-|`KC_WH_U` ↔ `KC_WH_D` | Mouse Wheel Up ↔ Down |
+|`MS_LEFT` ↔ `MS_RGHT` | Mouse Cursor Left ↔ Right |
+|`MS_UP` ↔ `MS_DOWN` | Mouse Cursor Up ↔ Down |
+|`MS_WHLL` ↔ `MS_WHLR` | Mouse Wheel Left ↔ Right |
+|`MS_WHLU` ↔ `MS_WHLD` | Mouse Wheel Up ↔ Down |
**Misc**
diff --git a/docs/features/rgb_matrix.md b/docs/features/rgb_matrix.md
index aef766ebd24..a22f931f1be 100644
--- a/docs/features/rgb_matrix.md
+++ b/docs/features/rgb_matrix.md
@@ -4,543 +4,35 @@ This feature allows you to use RGB LED matrices driven by external drivers. It h
If you want to use single color LED's you should use the [LED Matrix Subsystem](led_matrix) instead.
-## Driver configuration {#driver-configuration}
----
-### IS31FL3731 {#is31fl3731}
+## Driver Configuration {#driver-configuration}
-There is basic support for addressable RGB matrix lighting with the I2C IS31FL3731 RGB controller. To enable it, add this to your `rules.mk`:
+RGB Matrix is an abstraction layer on top of an underlying LED driver API. The list of supported LED drivers is below; see the respective documentation for information on how to configure the driver.
+
+|Driver |Max LEDs|
+|-------------------------------------|--------|
+|[APA102](../drivers/apa102) |? |
+|[AW20216S](../drivers/aw20216s) |72 |
+|[IS31FL3218](../drivers/is31fl3218) |6 |
+|[IS31FL3236](../drivers/is31fl3236) |12 |
+|[IS31FL3729](../drivers/is31fl3729) |45 |
+|[IS31FL3731](../drivers/is31fl3731) |48 |
+|[IS31FL3733](../drivers/is31fl3733) |64 |
+|[IS31FL3736](../drivers/is31fl3736) |32 |
+|[IS31FL3737](../drivers/is31fl3737) |48 |
+|[IS31FL3741](../drivers/is31fl3741) |117 |
+|[IS31FL3742A](../drivers/is31fl3742a)|60 |
+|[IS31FL3743A](../drivers/is31fl3743a)|66 |
+|[IS31FL3745](../drivers/is31fl3745) |48 |
+|[IS31FL3746A](../drivers/is31fl3746a)|24 |
+|[SNLED27351](../drivers/snled27351) |64 |
+|[WS2812](../drivers/ws2812) |? |
+
+To assign the RGB Matrix driver, add the following to your `rules.mk`, for example:
```make
-RGB_MATRIX_ENABLE = yes
-RGB_MATRIX_DRIVER = is31fl3731
+RGB_MATRIX_DRIVER = is31fl3218
```
-You can use between 1 and 4 IS31FL3731 IC's. Do not specify `DRIVER_ADDR_` defines for IC's that are not present on your keyboard. You can define the following items in `config.h`:
-
-| Variable | Description | Default |
-|----------|-------------|---------|
-| `IS31FL3731_I2C_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
-| `IS31FL3731_I2C_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
-| `IS31FL3731_DEGHOST` | (Optional) Set this define to enable de-ghosting by halving Vcc during blanking time | |
-| `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | |
-| `IS31FL3731_I2C_ADDRESS_1` | (Required) Address for the first RGB driver | |
-| `IS31FL3731_I2C_ADDRESS_2` | (Optional) Address for the second RGB driver | |
-| `IS31FL3731_I2C_ADDRESS_3` | (Optional) Address for the third RGB driver | |
-| `IS31FL3731_I2C_ADDRESS_4` | (Optional) Address for the fourth RGB driver | |
-
-Here is an example using 2 drivers.
-
-```c
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// The address will vary depending on your wiring:
-// 00 AD <-> GND
-// 01 AD <-> SCL
-// 10 AD <-> SDA
-// 11 AD <-> VCC
-// ADDR represents A1:A0 of the 7-bit address.
-// The result is: 0b11101(ADDR)
-#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
-#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
-
-#define DRIVER_1_LED_TOTAL 25
-#define DRIVER_2_LED_TOTAL 24
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-```
-
-::: warning
-Note the parentheses, this is so when `RGB_MATRIX_LED_COUNT` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`.
-:::
-
-For split keyboards using `RGB_MATRIX_SPLIT` with an LED driver, you can either have the same driver address or different driver addresses. If using different addresses, use `IS31FL3731_I2C_ADDRESS_1` for one and `IS31FL3731_I2C_ADDRESS_2` for the other one. Then, in `g_is31fl3731_leds`, fill out the correct driver index (0 or 1). If using one address, use `IS31FL3731_I2C_ADDRESS_1` for both, and use index 0 for `g_is31fl3731_leds`.
-
-Define these arrays listing all the LEDs in your `.c`:
-
-```c
-const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
- {0, C1_3, C2_3, C3_3},
- ....
-}
-```
-
-Where `Cx_y` is the location of the LED in the matrix defined by [the datasheet](https://www.issi.com/WW/pdf/31FL3731.pdf) and the header file `drivers/led/issi/is31fl3731.h`. The `driver` is the index of the driver you defined in your `config.h` (`0`, `1`, `2`, or `3`).
-
----
-### IS31FL3733 {#is31fl3733}
-
-There is basic support for addressable RGB matrix lighting with the I2C IS31FL3733 RGB controller. To enable it, add this to your `rules.mk`:
-
-```make
-RGB_MATRIX_ENABLE = yes
-RGB_MATRIX_DRIVER = is31fl3733
-```
-
-You can use between 1 and 4 IS31FL3733 IC's. Do not specify `DRIVER_ADDR_` defines for IC's that are not present on your keyboard. You can define the following items in `config.h`:
-
-| Variable | Description | Default |
-|----------|-------------|---------|
-| `IS31FL3733_I2C_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
-| `IS31FL3733_I2C_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
-| `IS31FL3733_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3733B only | 0 |
-| `IS31FL3733_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF |
-| `IS31FL3733_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
-| `IS31FL3733_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
-| `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | |
-| `IS31FL3733_I2C_ADDRESS_1` | (Required) Address for the first RGB driver | |
-| `IS31FL3733_I2C_ADDRESS_2` | (Optional) Address for the second RGB driver | |
-| `IS31FL3733_I2C_ADDRESS_3` | (Optional) Address for the third RGB driver | |
-| `IS31FL3733_I2C_ADDRESS_4` | (Optional) Address for the fourth RGB driver | |
-| `IS31FL3733_SYNC_1` | (Optional) Sync configuration for the first RGB driver | 0 |
-| `IS31FL3733_SYNC_2` | (Optional) Sync configuration for the second RGB driver | 0 |
-| `IS31FL3733_SYNC_3` | (Optional) Sync configuration for the third RGB driver | 0 |
-| `IS31FL3733_SYNC_4` | (Optional) Sync configuration for the fourth RGB driver | 0 |
-
-The IS31FL3733 IC's have on-chip resistors that can be enabled to allow for de-ghosting of the RGB matrix. By default these resistors are not enabled (`IS31FL3733_SWPULLUP`/`IS31FL3733_CSPULLUP` are given the value of `IS31FL3733_PUR_0R`), the values that can be set to enable de-ghosting are as follows:
-
-| `IS31FL3733_SWPULLUP/IS31FL3733_CSPULLUP` | Description |
-|----------------------|-------------|
-| `IS31FL3733_PUR_0R` | (default) Do not use the on-chip resistors/enable de-ghosting |
-| `IS31FL3733_PUR_05KR` | The 0.5k Ohm resistor used during blanking period (t_NOL) |
-| `IS31FL3733_PUR_3KR` | The 3k Ohm resistor used at all times |
-| `IS31FL3733_PUR_4KR` | The 4k Ohm resistor used at all times |
-| `IS31FL3733_PUR_8KR` | The 8k Ohm resistor used at all times |
-| `IS31FL3733_PUR_16KR` | The 16k Ohm resistor used at all times |
-| `IS31FL3733_PUR_32KR` | The 32k Ohm resistor used during blanking period (t_NOL) |
-
-Here is an example using 2 drivers.
-
-```c
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// The address will vary depending on your wiring:
-// 00 ADDRn <-> GND
-// 01 ADDRn <-> SCL
-// 10 ADDRn <-> SDA
-// 11 ADDRn <-> VCC
-// ADDR1 represents A1:A0 of the 7-bit address.
-// ADDR2 represents A3:A2 of the 7-bit address.
-// The result is: 0b101(ADDR2)(ADDR1)
-#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
-#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC
-
-#define DRIVER_1_LED_TOTAL 58
-#define DRIVER_2_LED_TOTAL 10
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-```
-
-::: warning
-Note the parentheses, this is so when `RGB_MATRIX_LED_COUNT` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`.
-:::
-
-Currently only 4 drivers are supported, but it would be trivial to support all 8 combinations.
-
-Define these arrays listing all the LEDs in your `.c`:
-
-```c
-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, SW1_CS1, SW1_CS2, SW1_CS3},
- ....
-}
-```
-
-Where `SWx_CSy` is the location of the LED in the matrix defined by [the datasheet](https://www.issi.com/WW/pdf/31FL3733.pdf) and the header file `drivers/led/issi/is31fl3733.h`. The `driver` is the index of the driver you defined in your `config.h` (`0`, `1`, `2`, or `3` for now).
-
----
-### IS31FL3736 {#is31fl3736}
-
-There is basic support for addressable RGB matrix lighting with the I2C IS31FL3736 RGB controller. To enable it, add this to your `rules.mk`:
-
-```make
-RGB_MATRIX_ENABLE = yes
-RGB_MATRIX_DRIVER = is31fl3736
-```
-You can use between 1 and 4 IS31FL3736 IC's. Do not specify `DRIVER_ADDR_` defines for IC's that are not present on your keyboard.
-
-Configure the hardware via your `config.h`:
-
-| Variable | Description | Default |
-|----------|-------------|---------|
-| `IS31FL3736_I2C_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
-| `IS31FL3736_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
-| `IS31FL3736_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3736B only | 0 |
-| `IS31FL3736_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF |
-| `IS31FL3736_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
-| `IS31FL3736_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
-| `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | |
-| `IS31FL3736_I2C_ADDRESS_1` | (Required) Address for the first RGB driver | |
-| `IS31FL3736_I2C_ADDRESS_2` | (Optional) Address for the second RGB driver | |
-| `IS31FL3736_I2C_ADDRESS_3` | (Optional) Address for the third RGB driver | |
-| `IS31FL3736_I2C_ADDRESS_4` | (Optional) Address for the fourth RGB driver | |
-
-The IS31FL3736 IC's have on-chip resistors that can be enabled to allow for de-ghosting of the RGB matrix. By default these resistors are not enabled (`IS31FL3736_SWPULLUP`/`IS31FL3736_CSPULLUP` are given the value of `IS31FL3736_PUR_0R`), the values that can be set to enable de-ghosting are as follows:
-
-| `IS31FL3736_SWPULLUP/IS31FL3736_CSPULLUP` | Description |
-|----------------------|-------------|
-| `IS31FL3736_PUR_0R` | (default) Do not use the on-chip resistors/enable de-ghosting |
-| `IS31FL3736_PUR_05KR` | The 0.5k Ohm resistor used during blanking period (t_NOL) |
-| `IS31FL3736_PUR_1KR` | The 1k Ohm resistor used during blanking period (t_NOL) |
-| `IS31FL3736_PUR_2KR` | The 2k Ohm resistor used during blanking period (t_NOL) |
-| `IS31FL3736_PUR_4KR` | The 4k Ohm resistor used during blanking period (t_NOL) |
-| `IS31FL3736_PUR_8KR` | The 8k Ohm resistor during blanking period (t_NOL) |
-| `IS31FL3736_PUR_16KR` | The 16k Ohm resistor during blanking period (t_NOL) |
-| `IS31FL3736_PUR_32KR` | The 32k Ohm resistor used during blanking period (t_NOL) |
-
-Here is an example using 2 drivers.
-
-```c
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// The address will vary depending on your wiring:
-// 00 ADDRn <-> GND
-// 01 ADDRn <-> SCL
-// 10 ADDRn <-> SDA
-// 11 ADDRn <-> VCC
-// ADDR1 represents A1:A0 of the 7-bit address.
-// ADDR2 represents A3:A2 of the 7-bit address.
-// The result is: 0b101(ADDR2)(ADDR1)
-#define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND
-#define IS31FL3736_I2C_ADDRESS_2 IS31FL3736_I2C_ADDRESS_GND_SCL
-
-#define DRIVER_1_LED_TOTAL 30
-#define DRIVER_2_LED_TOTAL 32
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-```
-::: warning
-Note the parentheses, this is so when `RGB_MATRIX_LED_COUNT` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`.
-:::
-
-Define these arrays listing all the LEDs in your `.c`:
-
-```c
-const is31fl3736_led_t PROGMEM g_is31fl3736_leds[IS31FL3736_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
- {0, SW1_CS1, SW1_CS2, SW1_CS3},
- ....
-}
-```
-### IS31FL3737 {#is31fl3737}
-
-There is basic support for addressable RGB matrix lighting with the I2C IS31FL3737 RGB controller. To enable it, add this to your `rules.mk`:
-
-```make
-RGB_MATRIX_ENABLE = yes
-RGB_MATRIX_DRIVER = is31fl3737
-```
-You can use between 1 and 4 IS31FL3737 IC's. Do not specify `DRIVER_ADDR_` defines for IC's that are not present on your keyboard.
-
-Configure the hardware via your `config.h`:
-
-| Variable | Description | Default |
-|----------|-------------|---------|
-| `IS31FL3737_I2C_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
-| `IS31FL3737_I2C_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
-| `IS31FL3737_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3737B only | 0 |
-| `IS31FL3737_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF |
-| `IS31FL3737_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
-| `IS31FL3737_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
-| `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | |
-| `IS31FL3737_I2C_ADDRESS_1` | (Required) Address for the first RGB driver | |
-| `IS31FL3737_I2C_ADDRESS_2` | (Optional) Address for the second RGB driver | |
-| `IS31FL3737_I2C_ADDRESS_3` | (Optional) Address for the third RGB driver | |
-| `IS31FL3737_I2C_ADDRESS_4` | (Optional) Address for the fourth RGB driver | |
-
-The IS31FL3737 IC's have on-chip resistors that can be enabled to allow for de-ghosting of the RGB matrix. By default these resistors are not enabled (`IS31FL3737_SWPULLUP`/`IS31FL3737_CSPULLUP` are given the value of `IS31FL3737_PUR_0R`), the values that can be set to enable de-ghosting are as follows:
-
-| `IS31FL3737_SWPULLUP/IS31FL3737_CSPULLUP` | Description |
-|----------------------|-------------|
-| `IS31FL3737_PUR_0R` | (default) Do not use the on-chip resistors/enable de-ghosting |
-| `IS31FL3737_PUR_05KR` | The 0.5k Ohm resistor used during blanking period (t_NOL) |
-| `IS31FL3737_PUR_1KR` | The 1k Ohm resistor used during blanking period (t_NOL) |
-| `IS31FL3737_PUR_2KR` | The 2k Ohm resistor used during blanking period (t_NOL) |
-| `IS31FL3737_PUR_4KR` | The 4k Ohm resistor used during blanking period (t_NOL) |
-| `IS31FL3737_PUR_8KR` | The 8k Ohm resistor during blanking period (t_NOL) |
-| `IS31FL3737_PUR_16KR` | The 16k Ohm resistor during blanking period (t_NOL) |
-| `IS31FL3737_PUR_32KR` | The 32k Ohm resistor used during blanking period (t_NOL) |
-
-Here is an example using 2 drivers.
-
-```c
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// The address will vary depending on your wiring:
-// 0000 ADDR <-> GND
-// 0101 ADDR <-> SCL
-// 1010 ADDR <-> SDA
-// 1111 ADDR <-> VCC
-// ADDR represents A3:A0 of the 7-bit address.
-// The result is: 0b101(ADDR)
-#define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND
-#define IS31FL3737_I2C_ADDRESS_2 IS31FL3737_I2C_ADDRESS_SCL
-
-#define DRIVER_1_LED_TOTAL 30
-#define DRIVER_2_LED_TOTAL 36
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-```
-::: warning
-Note the parentheses, this is so when `RGB_MATRIX_LED_COUNT` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`.
-:::
-
-Define these arrays listing all the LEDs in your `.c`:
-
-```c
-const is31fl3737_led_t PROGMEM g_is31fl3737_leds[IS31FL3737_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
- {0, SW1_CS1, SW1_CS2, SW1_CS3},
- ....
-}
-```
-
-Where `SWx_CSy` is the location of the LED in the matrix defined by [the datasheet](https://www.issi.com/WW/pdf/31FL3737.pdf) and the header file `drivers/led/issi/is31fl3737.h`. The `driver` is the index of the driver you defined in your `config.h` (Only `0`, `1`, `2`, or `3` for now).
-
----
-### IS31FLCOMMON {#is31flcommon}
-
-There is basic support for addressable RGB matrix lighting with a selection of I2C ISSI Lumissil RGB controllers through a shared common driver. To enable it, add this to your `rules.mk`:
-
-```makefile
-RGB_MATRIX_ENABLE = yes
-RGB_MATRIX_DRIVER =
-```
-
-Where `` is the applicable LED driver chip as below
-
-| Driver Name | Data Sheet | Capability |
-|-------------|------------|------------|
-| `IS31FL3742A` | [datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3742A_DS.pdf) | 60 RGB, 30x6 Matrix |
-| `IS31FL3743A` | [datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3743A_DS.pdf) | 66 RGB, 18x11 Matrix |
-| `IS31FL3745` | [datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3745_DS.pdf) | 48 RGB, 18x8 Matrix |
-| `IS31FL3746A` | [datasheet](https://www.lumissil.com/assets/pdf/core/IS31FL3746A_DS.pdf) | 24 RGB, 18x4 Matrix |
-
-You can use between 1 and 4 IC's. Do not specify `DRIVER_ADDR_` define for IC's if not present on your keyboard. The `DRIVER_ADDR_1` default assumes that all Address pins on the controller have been connected to GND. Drivers that have SYNC functionality have the default settings to disable if 1 driver. If more than 1 drivers then `DRIVER_ADDR_1` will be set to Master and the remaining ones set to Slave.
-
-Configure the hardware via your `config.h`:
-
-| Variable | Description | Default |
-|----------|-------------|---------|
-| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
-| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
-| `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | |
-| `DRIVER_ADDR_1` | (Optional) Address for the first RGB driver | |
-| `DRIVER_ADDR_` | (Required) Address for the additional RGB drivers | |
-| `ISSI_SSR_` | (Optional) Configuration for the Spread Spectrum Register | |
-| `ISSI_CONFIGURATION` | (Optional) Configuration for the Configuration Register | |
-| `ISSI_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF |
-| `ISSI_PULLDOWNUP` | (Optional) Configuration for the Pull Up & Pull Down Register | |
-| `ISSI_TEMP` | (Optional) Configuration for the Temperature Register | |
-| `ISSI_PWM_ENABLE` | (Optional) Configuration for the PWM Enable Register | |
-| `ISSI_PWM_SET` | (Optional) Configuration for the PWM Setting Register | |
-| `ISSI_SCAL_RED` | (Optional) Configuration for the RED LEDs in Scaling Registers | 0xFF |
-| `ISSI_SCAL_BLUE` | (Optional) Configuration for the BLUE LEDs in Scaling Registers | 0xFF |
-| `ISSI_SCAL_GREEN` | (Optional) Configuration for the GREEN LEDs in Scaling Registers | 0xFF |
-| `ISSI_MANUAL_SCALING` | (Optional) If you wish to configure the Scaling Registers manually | |
-
-
-Defaults
-
-| Variable | IS31FL3742A | IS31FL3743A | IS31FL3745 | IS31FL3746 |
-|----------|-------------|-------------|------------|------------|
-| `DRIVER_ADDR_1` | 0b0110000 | 0b0100000 | 0b0100000 | 0b1100000 |
-| `ISSI_SSR_1` | 0x00 | 0x00 / 0x60 | 0x00 / 0xC0 | 0x00 |
-| `ISSI_SSR_<2-4>` | 0x00 | 0x40 | 0x80 | 0x00 |
-| `ISSI_CONFIGURATION` | 0x31 | 0x01 | 0x31 | 0x01 |
-| `ISSI_PULLDOWNUP` | 0x55 | 0x33 | 0x33 | 0x33 |
-| `ISSI_TEMP` | N/A | 0x00 | 0x00 | 0x00 |
-| `ISSI_PWM_ENABLE` | N/A | N/A | N/A | 0x00 |
-| `ISSI_PWM_SET` | 0x00 | N/A | N/A | 0x00 |
-
-Here is an example using 2 drivers.
-
-```c
-#define DRIVER_ADDR_2 0b0100001
-
-#define DRIVER_1_LED_TOTAL 66
-#define DRIVER_2_LED_TOTAL 42
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-```
-
-::: warning
-Note the parentheses, this is so when `RGB_MATRIX_LED_COUNT` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`.
-:::
-
-Currently only 4 drivers are supported, but it would be trivial to support for more. Note that using a combination of different drivers is not supported. All drivers must be of the same model.
-
-Define these arrays listing all the LEDs in your `.c`:
-
-```c
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
- {0, SW1_CS1, SW1_CS2, SW1_CS3},
- ....
-}
-```
-
-Where `CSx_SWx` is the location of the LED in the matrix defined by the datasheet. The `driver` is the index of the driver you defined in your `config.h` (`0`, `1`, `2`, or `3` for now).
-
-`ISSI_MANUAL_SCALING` is used to override the Scaling for individual LED's. By default they will be set as per `ISSI_SCAL_`. In `config.h` set how many LED's you want to manually set scaling for.
-Eg `#define ISSI_MANUAL_SCALING 3`
-
-Then Define the array listing all the LEDs you want to override in your `.c`:
-
-```c
-const is31_led PROGMEM g_is31_scaling[ISSI_MANUAL_SCALING] = {
-/* LED Index
- * | R scaling
- * | | G scaling
- * | | | B scaling
- * | | | | */
- {5, 120, 155, 167},
- {9, 120, 155, 167},
- ....
-}
-```
-
-Where LED Index is the position of the LED in the `g_is31_leds` array. The `scaling` value between 0 and 255 to be written to the Scaling Register.
-
----
-
-### WS2812 {#ws2812}
-
-There is basic support for addressable RGB matrix lighting with a WS2811/WS2812{a,b,c} addressable LED strand. To enable it, add this to your `rules.mk`:
-
-```make
-RGB_MATRIX_ENABLE = yes
-RGB_MATRIX_DRIVER = ws2812
-```
-
-Configure the hardware via your `config.h`:
-
-```c
-// The pin connected to the data pin of the LEDs
-#define WS2812_DI_PIN D7
-// The number of LEDs connected
-#define RGB_MATRIX_LED_COUNT 70
-```
-
-::: tip
-There are additional configuration options for ARM controllers that offer increased performance over the default bitbang driver. Please see [WS2812 Driver](../drivers/ws2812) for more information.
-:::
-
----
-
-### APA102 {#apa102}
-
-There is basic support for APA102 based addressable LED strands. To enable it, add this to your `rules.mk`:
-
-```make
-RGB_MATRIX_ENABLE = yes
-RGB_MATRIX_DRIVER = apa102
-```
-
-Configure the hardware via your `config.h`:
-
-```c
-// The pin connected to the data pin of the LEDs
-#define APA102_DI_PIN D7
-// The pin connected to the clock pin of the LEDs
-#define APA102_CI_PIN D6
-// The number of LEDs connected
-#define RGB_MATRIX_LED_COUNT 70
-```
-
----
-### AW20216S {#aw20216s}
-There is basic support for addressable RGB matrix lighting with the SPI AW20216S RGB controller. To enable it, add this to your `rules.mk`:
-
-```make
-RGB_MATRIX_ENABLE = yes
-RGB_MATRIX_DRIVER = aw20216s
-```
-
-You can use up to 2 AW20216S IC's. Do not specify `DRIVER__xxx` defines for IC's that are not present on your keyboard. You can define the following items in `config.h`:
-
-| Variable | Description | Default |
-|----------|-------------|---------|
-| `AW20216S_CS_PIN_1` | (Required) MCU pin connected to first RGB driver chip select line | B13 |
-| `AW20216S_CS_PIN_2` | (Optional) MCU pin connected to second RGB driver chip select line | |
-| `AW20216S_EN_PIN_1` | (Required) MCU pin connected to first RGB driver hardware enable line | C13 |
-| `AW20216S_EN_PIN_2` | (Optional) MCU pin connected to second RGB driver hardware enable line | |
-| `DRIVER_1_LED_TOTAL` | (Required) How many RGB lights are connected to first RGB driver | |
-| `DRIVER_2_LED_TOTAL` | (Optional) How many RGB lights are connected to second RGB driver | |
-| `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | |
-| `AW20216S_SCALING_MAX` | (Optional) LED current scaling value (0-255, higher values mean LED is brighter at full PWM) | 150 |
-| `AW20216S_GLOBAL_CURRENT_MAX` | (Optional) Driver global current limit (0-255, higher values means the driver may consume more power) | 150 |
-| `AW20216S_SPI_MODE` | (Optional) Mode for SPI communication (0-3, defines polarity and phase of the clock) | 3 |
-| `AW20216S_SPI_DIVISOR` | (Optional) Clock divisor for SPI communication (powers of 2, smaller numbers means faster communication, should not be less than 4) | 4 |
-
-Here is an example using 2 drivers.
-
-```c
-#define AW20216S_CS_PIN_1 B13
-#define AW20216S_CS_PIN_2 B14
-// Hardware enable lines may be connected to the same pin
-#define AW20216S_EN_PIN_1 C13
-#define AW20216S_EN_PIN_2 C13
-
-#define DRIVER_1_LED_TOTAL 66
-#define DRIVER_2_LED_TOTAL 32
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-```
-
-::: warning
-Note the parentheses, this is so when `RGB_MATRIX_LED_COUNT` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`.
-:::
-
-Define these arrays listing all the LEDs in your `.c`:
-
-```c
-const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = {
-/* Each AW20216S channel is controlled by a register at some offset between 0x00
- * and 0xD7 inclusive.
- * See drivers/led/aw20216s.h for the mapping between register offsets and
- * driver pin locations.
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
- { 0, SW1_CS1, SW1_CS2, SW1_CS3 },
- { 0, SW1_CS4, SW1_CS5, SW1_CS6 },
- { 0, SW1_CS7, SW1_CS8, SW1_CS9 },
- { 0, SW1_CS10, SW1_CS11, SW1_CS12 },
- { 0, SW1_CS13, SW1_CS14, SW1_CS15 },
- ...
- { 1, SW1_CS1, SW1_CS2, SW1_CS3 },
- { 1, SW1_CS13, SW1_CS14, SW1_CS15 },
- { 1, SW1_CS16, SW1_CS17, SW1_CS18 },
- { 1, SW2_CS4, SW2_CS5, SW2_CS6 },
- ...
-};
-```
-
----
-
## Common Configuration {#common-configuration}
From this point forward the configuration is the same for all the drivers. The `led_config_t` struct provides a key electrical matrix to led index lookup table, what the physical position of each LED is on the board, and what type of key or usage the LED if the LED represents. Here is a brief example:
@@ -589,38 +81,21 @@ As mentioned earlier, the center of the keyboard by default is expected to be `{
## Keycodes {#keycodes}
-All RGB keycodes are currently shared with the RGBLIGHT system:
-
-|Key |Aliases |Description |
-|-------------------|----------|--------------------------------------------------------------------------------------|
-|`RGB_TOG` | |Toggle RGB lighting on or off |
-|`RGB_MODE_FORWARD` |`RGB_MOD` |Cycle through modes, reverse direction when Shift is held |
-|`RGB_MODE_REVERSE` |`RGB_RMOD`|Cycle through modes in reverse, forward direction when Shift is held |
-|`RGB_HUI` | |Increase hue, decrease hue when Shift is held |
-|`RGB_HUD` | |Decrease hue, increase hue when Shift is held |
-|`RGB_SAI` | |Increase saturation, decrease saturation when Shift is held |
-|`RGB_SAD` | |Decrease saturation, increase saturation when Shift is held |
-|`RGB_VAI` | |Increase value (brightness), decrease value when Shift is held |
-|`RGB_VAD` | |Decrease value (brightness), increase value when Shift is held |
-|`RGB_SPI` | |Increase effect speed (does not support eeprom yet), decrease speed when Shift is held|
-|`RGB_SPD` | |Decrease effect speed (does not support eeprom yet), increase speed when Shift is held|
-|`RGB_MODE_PLAIN` |`RGB_M_P` |Static (no animation) mode |
-|`RGB_MODE_BREATHE` |`RGB_M_B` |Breathing animation mode |
-|`RGB_MODE_RAINBOW` |`RGB_M_R` |Full gradient scrolling left to right (uses the `RGB_MATRIX_CYCLE_LEFT_RIGHT` mode) |
-|`RGB_MODE_SWIRL` |`RGB_M_SW`|Full gradient spinning pinwheel around center of keyboard (uses `RGB_MATRIX_CYCLE_PINWHEEL` mode) |
-
-* `RGB_MODE_*` keycodes will generally work, but not all of the modes are currently mapped to the correct effects for the RGB Matrix system.
-
-`RGB_MODE_PLAIN`, `RGB_MODE_BREATHE`, `RGB_MODE_RAINBOW`, and `RGB_MODE_SWIRL` are the only ones that are mapped properly. The rest don't have a direct equivalent, and are not mapped.
-
-::: tip
-`RGB_*` keycodes cannot be used with functions like `tap_code16(RGB_HUD)` as they're not USB HID keycodes. If you wish to replicate similar behaviour in custom code within your firmware (e.g. inside `encoder_update_user()` or `process_record_user()`), the equivalent [RGB functions](#functions) should be used instead.
-:::
-
-
-::: warning
-By default, if you have both the [RGB Light](rgblight) and the RGB Matrix feature enabled, these keycodes will work for both features, at the same time. You can disable the keycode functionality by defining the `*_DISABLE_KEYCODES` option for the specific feature.
-:::
+|Key |Aliases |Description |
+|-------------------------------|---------|-----------------------------------|
+|`QK_RGB_MATRIX_ON` |`RM_ON` |Turn on RGB Matrix |
+|`QK_RGB_MATRIX_OFF` |`RM_OFF` |Turn off RGB Matrix |
+|`QK_RGB_MATRIX_TOGGLE` |`RM_TOGG`|Toggle RGB Matrix on or off |
+|`QK_RGB_MATRIX_MODE_NEXT` |`RM_NEXT`|Cycle through animations |
+|`QK_RGB_MATRIX_MODE_PREVIOUS` |`RM_PREV`|Cycle through animations in reverse|
+|`QK_RGB_MATRIX_HUE_UP` |`RM_HUEU`|Cycle through hue |
+|`QK_RGB_MATRIX_HUE_DOWN` |`RM_HUED`|Cycle through hue in reverse |
+|`QK_RGB_MATRIX_SATURATION_UP` |`RM_SATU`|Increase the saturation |
+|`QK_RGB_MATRIX_SATURATION_DOWN`|`RM_SATD`|Decrease the saturation |
+|`QK_RGB_MATRIX_VALUE_UP` |`RM_VALU`|Increase the brightness level |
+|`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 |
## RGB Matrix Effects {#rgb-matrix-effects}
@@ -797,7 +272,7 @@ Solid reactive effects will pulse RGB light on key presses with user configurabl
#define RGB_MATRIX_SOLID_REACTIVE_GRADIENT_MODE
```
-Gradient mode will loop through the color wheel hues over time and its duration can be controlled with the effect speed keycodes (`RGB_SPI`/`RGB_SPD`).
+Gradient mode will loop through the color wheel hues over time and its duration can be controlled with the effect speed keycodes (`RM_SPDU`/`RM_SPDD`).
## Custom RGB Matrix Effects {#custom-rgb-matrix-effects}
@@ -903,8 +378,11 @@ These are defined in [`color.h`](https://github.com/qmk/qmk_firmware/blob/master
#define RGB_MATRIX_DEFAULT_SAT 255 // Sets the default saturation value, if none has been set
#define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set
#define RGB_MATRIX_DEFAULT_SPD 127 // Sets the default animation speed, if none has been set
+#define RGB_MATRIX_HUE_STEP 8 // The value by which to increment the hue per adjustment action
+#define RGB_MATRIX_SAT_STEP 16 // The value by which to increment the saturation per adjustment action
+#define RGB_MATRIX_VAL_STEP 16 // The value by which to increment the brightness per adjustment action
+#define RGB_MATRIX_SPD_STEP 16 // The value by which to increment the animation speed per adjustment action
#define RGB_MATRIX_DEFAULT_FLAGS LED_FLAG_ALL // Sets the default LED flags, if none has been set
-#define RGB_MATRIX_DISABLE_KEYCODES // disables control of rgb matrix by keycodes (must use code functions to control the feature)
#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
@@ -1004,18 +482,18 @@ This example sets the modifiers to be a specific color based on the layer state.
```c
bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
- HSV hsv = {0, 255, 255};
+ hsv_t hsv = {0, 255, 255};
if (layer_state_is(layer_state, 2)) {
- hsv = (HSV){130, 255, 255};
+ hsv = (hsv_t){130, 255, 255};
} else {
- hsv = (HSV){30, 255, 255};
+ hsv = (hsv_t){30, 255, 255};
}
if (hsv.v > rgb_matrix_get_val()) {
hsv.v = rgb_matrix_get_val();
}
- RGB rgb = hsv_to_rgb(hsv);
+ rgb_t rgb = hsv_to_rgb(hsv);
for (uint8_t i = led_min; i < led_max; i++) {
if (HAS_FLAGS(g_led_config.flags[i], 0x01)) { // 0x01 == LED_FLAG_MODIFIER
@@ -1381,13 +859,13 @@ Set the global effect hue, saturation, and value (brightness). New state is not
---
-### `HSV rgb_matrix_get_hsv(void)` {#api-rgb-matrix-get-hsv}
+### `hsv_t rgb_matrix_get_hsv(void)` {#api-rgb-matrix-get-hsv}
Get the current global effect hue, saturation, and value (brightness).
#### Return Value {#api-rgb-matrix-get-hsv-return}
-The current effect HSV as an `HSV` struct.
+The current effect HSV as an `hsv_t` struct.
---
diff --git a/docs/features/rgblight.md b/docs/features/rgblight.md
index 794398a0f95..43e3781f8d4 100644
--- a/docs/features/rgblight.md
+++ b/docs/features/rgblight.md
@@ -59,6 +59,10 @@ Changing the **Value** sets the overall brightness.
## Keycodes
+::: warning
+These keycodes also simultaneously control [RGB Matrix](rgb_matrix), if enabled. This behaviour is in the process of being deprecated, so during this time it is recommended to additionally include the dedicated RGB Matrix keycodes to your keymap, and add `#define RGB_MATRIX_DISABLE_SHARED_KEYCODES` to `config.h`.
+:::
+
|Key |Aliases |Description |
|------------------------------|----------|---------------------------------------------------------------------|
|`QK_UNDERGLOW_TOGGLE` |`UG_TOGG` |Toggle RGB lighting on or off |
@@ -87,24 +91,18 @@ Changing the **Value** sets the overall brightness.
These keycodes cannot be used with functions like `tap_code16()` as they are not USB HID keycodes. If you wish to replicate similar behaviour in custom code within your firmware (e.g. inside `encoder_update_user()` or `process_record_user()`), the equivalent [RGB functions](#functions) should be used instead.
:::
-
-::: warning
-By default, if you have both the RGB Light and the [RGB Matrix](rgb_matrix) feature enabled, these keycodes will work for both features, at the same time. You can disable the keycode functionality by defining the `*_DISABLE_KEYCODES` option for the specific feature.
-:::
-
## Configuration
Your RGB lighting can be configured by placing these `#define`s in your `config.h`:
|Define |Default |Description |
|---------------------------|----------------------------|---------------------------------------------------------------------------------------------------------------------------|
-|`RGBLIGHT_HUE_STEP` |`8` |The number of steps to cycle through the hue by |
-|`RGBLIGHT_SAT_STEP` |`17` |The number of steps to increment the saturation by |
-|`RGBLIGHT_VAL_STEP` |`17` |The number of steps to increment the brightness by |
+|`RGBLIGHT_HUE_STEP` |`8` |The value by which to increment the hue per adjustment action |
+|`RGBLIGHT_SAT_STEP` |`17` |The value by which to increment the saturation per adjustment action |
+|`RGBLIGHT_VAL_STEP` |`17` |The value by which to increment the brightness per adjustment action |
|`RGBLIGHT_LIMIT_VAL` |`255` |The maximum brightness level |
|`RGBLIGHT_SLEEP` |*Not defined* |If defined, the RGB lighting will be switched off when the host goes to sleep |
|`RGBLIGHT_SPLIT` |*Not defined* |If defined, synchronization functionality for split keyboards is added |
-|`RGBLIGHT_DISABLE_KEYCODES`|*Not defined* |If defined, disables the ability to control RGB Light from the keycodes. You must use code functions to control the feature|
|`RGBLIGHT_DEFAULT_MODE` |`RGBLIGHT_MODE_STATIC_LIGHT`|The default mode to use upon clearing the EEPROM |
|`RGBLIGHT_DEFAULT_HUE` |`0` (red) |The default hue to use upon clearing the EEPROM |
|`RGBLIGHT_DEFAULT_SAT` |`UINT8_MAX` (255) |The default saturation to use upon clearing the EEPROM |
diff --git a/docs/features/split_keyboard.md b/docs/features/split_keyboard.md
index 6efa1c2a35c..fbf5d3d3e2f 100644
--- a/docs/features/split_keyboard.md
+++ b/docs/features/split_keyboard.md
@@ -417,8 +417,8 @@ This allows you to specify a different set of pins for the matrix on the right s
This allows you to specify a different set of direct pins for the right side.
```c
-#define ENCODERS_PAD_A_RIGHT { encoder1a, encoder2a }
-#define ENCODERS_PAD_B_RIGHT { encoder1b, encoder2b }
+#define ENCODER_A_PINS_RIGHT { encoder1a, encoder2a }
+#define ENCODER_B_PINS_RIGHT { encoder1b, encoder2b }
```
This allows you to specify a different set of encoder pins for the right side.
@@ -444,7 +444,7 @@ This setting implies that `RGBLIGHT_SPLIT` is enabled, and will forcibly enable
#define SPLIT_USB_DETECT
```
-Enabling this option changes the startup behavior to listen for an active USB communication to delegate which part is master and which is slave. With this option enabled and theres's USB communication, then that half assumes it is the master, otherwise it assumes it is the slave.
+Enabling this option changes the startup behavior to listen for an active USB communication to delegate which part is master and which is slave. With this option enabled and active USB communication, then that half assumes it is the master, otherwise it assumes it is the slave.
Without this option, the master is the half that can detect voltage on the physical USB connection (VBUS detection).
diff --git a/docs/features/tap_dance.md b/docs/features/tap_dance.md
index 3c4040db224..8fdd83c18d1 100644
--- a/docs/features/tap_dance.md
+++ b/docs/features/tap_dance.md
@@ -273,12 +273,12 @@ Now, at the bottom of your `keymap.c` file, you'll need to add the following:
* How to figure out tap dance state: interrupted and pressed.
*
* Interrupted: If the state of a dance is "interrupted", that means that another key has been hit
- * under the tapping term. This is typically indicitive that you are trying to "tap" the key.
+ * under the tapping term. This is typically indicative that you are trying to "tap" the key.
*
* Pressed: Whether or not the key is still being pressed. If this value is true, that means the tapping term
* has ended, but the key is still being pressed down. This generally means the key is being "held".
*
- * One thing that is currenlty not possible with qmk software in regards to tap dance is to mimic the "permissive hold"
+ * One thing that is currently not possible with qmk software in regards to tap dance is to mimic the "permissive hold"
* feature. In general, advanced tap dances do not work well if they are used with commonly typed letters.
* For example "A". Tap dances are best used on non-letter keys that are not hit while typing letters.
*
@@ -290,7 +290,7 @@ Now, at the bottom of your `keymap.c` file, you'll need to add the following:
* Not a key that is used frequently to double tap, for example 'tab' is often double tapped in a terminal, or
* in a web form. So 'tab' would be a poor choice for a tap dance.
* Letters used in common words as a double. For example 'p' in 'pepper'. If a tap dance function existed on the
- * letter 'p', the word 'pepper' would be quite frustating to type.
+ * letter 'p', the word 'pepper' would be quite frustrating to type.
*
* For the third point, there does exist the 'TD_DOUBLE_SINGLE_TAP', however this is not fully tested
*
diff --git a/docs/features/wireless.md b/docs/features/wireless.md
new file mode 100644
index 00000000000..0d73ad3583e
--- /dev/null
+++ b/docs/features/wireless.md
@@ -0,0 +1,58 @@
+# Wireless / Bluetooth
+
+## Bluetooth Known Supported Hardware
+
+Currently Bluetooth support is limited to AVR based chips. For Bluetooth 2.1, QMK has support for RN-42 modules. For more recent BLE protocols, currently only the Adafruit Bluefruit SPI Friend is directly supported. BLE is needed to connect to iOS devices. Note iOS does not support mouse input.
+
+|Board |Bluetooth Protocol |Connection Type|rules.mk |Bluetooth Chip|
+|----------------------------------------------------------------|--------------------|---------------|---------------------------------|--------------|
+|Roving Networks RN-42 (Sparkfun Bluesmirf) |Bluetooth Classic |UART |`BLUETOOTH_DRIVER = rn42` |RN-42 |
+|[Bluefruit LE SPI Friend](https://www.adafruit.com/product/2633)|Bluetooth Low Energy|SPI |`BLUETOOTH_DRIVER = bluefruit_le`|nRF51822 |
+
+Not Supported Yet but possible:
+* [Bluefruit LE UART Friend](https://www.adafruit.com/product/2479). [Possible tmk implementation found in](https://github.com/tmk/tmk_keyboard/issues/514)
+* HC-05 boards flashed with RN-42 firmware. They apparently both use the CSR BC417 Chip. Flashing it with RN-42 firmware gives it HID capability.
+* Sparkfun Bluetooth Mate
+* HM-13 based boards
+
+### Adafruit BLE SPI Friend
+Currently The only bluetooth chipset supported by QMK is the Adafruit Bluefruit SPI Friend. It's a Nordic nRF51822 based chip running Adafruit's custom firmware. Data is transmitted via Adafruit's SDEP over Hardware SPI. The [Feather 32u4 Bluefruit LE](https://www.adafruit.com/product/2829) is supported as it's an AVR mcu connected via SPI to the Nordic BLE chip with Adafruit firmware. If Building a custom board with the SPI friend it would be easiest to just use the pin selection that the 32u4 feather uses but you can change the pins in the config.h options with the following defines:
+* `#define BLUEFRUIT_LE_RST_PIN D4`
+* `#define BLUEFRUIT_LE_CS_PIN B4`
+* `#define BLUEFRUIT_LE_IRQ_PIN E6`
+
+A Bluefruit UART friend can be converted to an SPI friend, however this [requires](https://github.com/qmk/qmk_firmware/issues/2274) some reflashing and soldering directly to the MDBT40 chip.
+
+
+## Bluetooth Rules.mk Options
+
+The currently supported Bluetooth chipsets do not support [N-Key Rollover (NKRO)](../reference_glossary#n-key-rollover-nkro), so `rules.mk` must contain `NKRO_ENABLE = no`.
+
+Add the following to your `rules.mk`:
+
+```make
+BLUETOOTH_ENABLE = yes
+BLUETOOTH_DRIVER = bluefruit_le # or rn42
+```
+
+## Bluetooth Keycodes
+
+This is used when multiple keyboard outputs can be selected. Currently this only allows for switching between USB and Bluetooth on keyboards that support both.
+
+| Key | Aliases | Description |
+|-----------------------------|-----------|-----------------------------------------------------------------------------------------------|
+| `QK_OUTPUT_AUTO` | `OU_AUTO` | Automatically switch to USB when plugged in, otherwise use wireless |
+| `QK_OUTPUT_NEXT` | `OU_NEXT` | Cycle forwards through USB, Bluetooth, and 2.4GHz (when available) **(not yet implemented)** |
+| `QK_OUTPUT_PREV` | `OU_PREV` | Cycle backwards through USB, Bluetooth, and 2.4GHz (when available) **(not yet implemented)** |
+| `QK_OUTPUT_NONE` | `OU_NONE` | Disable all output **(not yet implemented)** |
+| `QK_OUTPUT_USB` | `OU_USB` | Output to USB only |
+| `QK_OUTPUT_2P4GHZ` | `OU_2P4G` | Output to 2.4GHz only **(not yet implemented)** |
+| `QK_OUTPUT_BLUETOOTH` | `OU_BT` | Output to Bluetooth only |
+| `QK_BLUETOOTH_PROFILE_NEXT` | `BT_NEXT` | Move to the next Bluetooth profile **(not yet implemented)** |
+| `QK_BLUETOOTH_PROFILE_PREV` | `BT_PREV` | Move to the previous Bluetooth profile **(not yet implemented)** |
+| `QK_BLUETOOTH_UNPAIR` | `BT_UNPR` | Un-pair the current Bluetooth profile **(not yet implemented)** |
+| `QK_BLUETOOTH_PROFILE1` | `BT_PRF1` | Swap to Bluetooth profile #1 **(not yet implemented)** |
+| `QK_BLUETOOTH_PROFILE2` | `BT_PRF2` | Swap to Bluetooth profile #2 **(not yet implemented)** |
+| `QK_BLUETOOTH_PROFILE3` | `BT_PRF3` | Swap to Bluetooth profile #3 **(not yet implemented)** |
+| `QK_BLUETOOTH_PROFILE4` | `BT_PRF4` | Swap to Bluetooth profile #4 **(not yet implemented)** |
+| `QK_BLUETOOTH_PROFILE5` | `BT_PRF5` | Swap to Bluetooth profile #5 **(not yet implemented)** |
diff --git a/docs/flashing.md b/docs/flashing.md
index 798331eb23d..29dc780aaf0 100644
--- a/docs/flashing.md
+++ b/docs/flashing.md
@@ -53,7 +53,7 @@ QMK maintains [a fork of the LUFA DFU bootloader](https://github.com/qmk/lufa/tr
//#define QMK_LED E6
//#define QMK_SPEAKER C6
```
-Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic Lite](features/bootmagic), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader.
+Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic](features/bootmagic), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader.
The manufacturer and product strings are automatically pulled from `config.h`, with " Bootloader" appended to the product string.
@@ -209,7 +209,7 @@ To enable the additional features, add the following defines to your `config.h`:
//#define QMK_SPEAKER C6
```
-Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic Lite](features/bootmagic), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader.
+Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic](features/bootmagic), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader.
The manufacturer and product strings are automatically pulled from `config.h`, with " Bootloader" appended to the product string.
@@ -345,6 +345,39 @@ Flashing sequence:
3. Flash a .bin file
4. Reset the device into application mode (may be done automatically)
+## AT32 DFU
+
+All AT32 MCUs come preloaded with a factory bootloader that cannot be modified nor deleted.
+
+To ensure compatibility with the AT32-DFU bootloader, make sure this block is present in your `rules.mk`:
+
+```make
+# Bootloader selection
+BOOTLOADER = at32-dfu
+```
+
+Compatible flashers:
+
+* [dfu-util](https://dfu-util.sourceforge.net/) / `:dfu-util` target in QMK (recommended command line)
+ ```
+ dfu-util -a 0 -d 2E3C:DF11 -s 0x8000000:leave -D
+ ```
+
+Flashing sequence:
+
+1. Enter the bootloader using any of the following methods:
+ * Tap the `QK_BOOT` keycode
+ * If a reset circuit is present, tap the `RESET` button on the PCB; some boards may also have a toggle switch that must be flipped
+ * Otherwise, you need to bridge `BOOT0` to VCC (via `BOOT0` button or jumper), short `RESET` to GND (via `RESET` button or jumper), and then let go of the `BOOT0` bridge
+2. Wait for the OS to detect the device
+3. Flash a .bin file
+4. Reset the device into application mode (may be done automatically)
+
+### `make` Targets
+
+* `:dfu-util`: Waits until an AT32 bootloader device is available, and then flashes the firmware.
+* `:dfu-util-split-left` and `:dfu-util-split-right`: Flashes the firmware as with `:dfu-util`, but also sets the handedness setting in EEPROM.
+
## tinyuf2
Keyboards may opt into supporting the tinyuf2 bootloader. This is currently only supported on F303/F401/F411.
diff --git a/docs/getting_started_docker.md b/docs/getting_started_docker.md
index 6e69b17d347..42322397b4a 100644
--- a/docs/getting_started_docker.md
+++ b/docs/getting_started_docker.md
@@ -5,6 +5,7 @@ This project includes a Docker workflow that will allow you to build a new firmw
## Requirements
The main prerequisite is a working `docker` or `podman` install.
+
* [Docker CE](https://docs.docker.com/install/#supported-platforms)
* [Podman](https://podman.io/getting-started/installation)
@@ -18,6 +19,7 @@ cd qmk_firmware
```
Run the following command to build a keymap:
+
```
util/docker_build.sh :
# For example: util/docker_build.sh planck/rev6:default
@@ -32,6 +34,8 @@ util/docker_build.sh keyboard:keymap:target
# For example: util/docker_build.sh planck/rev6:default:flash
```
+Note that mass storage bootloaders are not supported by the `flash` target. In this case you will have to manually copy the firmware file to the keyboard.
+
You can also start the script without any parameters, in which case it will ask you to input the build parameters one by one, which you may find easier to use:
```
@@ -46,6 +50,13 @@ By default docker or podman are automatically detected and docker is preferred o
RUNTIME="podman" util/docker_build.sh keyboard:keymap:target
```
+If flashing is not required, it's possible to run the container as unprivileged (on Linux), and without docker-machine (on Windows/macOS):
+
+```
+SKIP_FLASHING_SUPPORT=1 util/docker_build.sh keyboard:keymap:target
+```
+
+
## FAQ
### Why can't I flash on Windows/macOS
diff --git a/docs/hand_wire.md b/docs/hand_wire.md
index 9aeee7512dc..be21cf2cc4f 100644
--- a/docs/hand_wire.md
+++ b/docs/hand_wire.md
@@ -231,7 +231,7 @@ Once you have confirmed that the keyboard is working, if you have used a seperat
If you found this fullfilling you could experiment by adding additional features such as [in switch LEDs](https://geekhack.org/index.php?topic=94258.0), [in switch RGB](https://www.reddit.com/r/MechanicalKeyboards/comments/5s1l5u/photoskeyboard_science_i_made_a_handwired_rgb/), [RGB underglow](https://medium.com/@DavidNZ/hand-wired-custom-keyboard-cdd14429c7b3#.7a1ovebsk) or even an [OLED display!](https://www.reddit.com/r/olkb/comments/5zy7og/adding_ssd1306_oled_display_to_your_build/)
-There are a lot of possibilities inside the firmware - explore [docs.qmk.fm](https://docs.qmk.fm) for a full feature list, and dive into the different keyboards to see how people use all of them. You can always stop by [the OLKB subreddit](https://reddit.com/r/olkb) or [QMK Discord](https://discord.gg/qmk) for help!
+There are a lot of possibilities inside the firmware - explore [the documentation](/) for a full feature list, and dive into the different keyboards to see how people use all of them. You can always stop by [the OLKB subreddit](https://reddit.com/r/olkb) or [QMK Discord](https://discord.gg/qmk) for help!
## Links to Other Guides
diff --git a/docs/hardware_keyboard_guidelines.md b/docs/hardware_keyboard_guidelines.md
index de67fa3bc39..7f17c46748d 100644
--- a/docs/hardware_keyboard_guidelines.md
+++ b/docs/hardware_keyboard_guidelines.md
@@ -111,7 +111,7 @@ The `post_config.h` file can be used for additional post-processing, depending o
#define USB_MAX_POWER_CONSUMPTION 400
#else
// fix iPhone and iPad power adapter issue
- // iOS device need lessthan 100
+ // iOS devices need less than 100
#define USB_MAX_POWER_CONSUMPTION 100
#endif
diff --git a/docs/keycodes.md b/docs/keycodes.md
index 95268952289..cf170721c81 100644
--- a/docs/keycodes.md
+++ b/docs/keycodes.md
@@ -290,15 +290,27 @@ See also: [Backlighting](features/backlight)
| `QK_BACKLIGHT_DOWN` | `BL_DOWN` | Decrease the backlight level |
| `QK_BACKLIGHT_TOGGLE_BREATHING` | `BL_BRTG` | Toggle backlight breathing |
-## Bluetooth {#bluetooth}
+## Wireless/Bluetooth {#bluetooth}
-See also: [Bluetooth](features/bluetooth)
+See also: [Wireless](features/wireless)
-|Key |Aliases |Description |
-|---------------------|---------|----------------------------------------------|
-|`QK_OUTPUT_AUTO` |`OU_AUTO`|Automatically switch between USB and Bluetooth|
-|`QK_OUTPUT_USB` |`OU_USB` |USB only |
-|`QK_OUTPUT_BLUETOOTH`|`OU_BT` |Bluetooth only |
+| Key | Aliases | Description |
+|-----------------------------|-----------|-----------------------------------------------------------------------------------------------|
+| `QK_OUTPUT_AUTO` | `OU_AUTO` | Automatically switch to USB when plugged in, otherwise use wireless |
+| `QK_OUTPUT_NEXT` | `OU_NEXT` | Cycle forwards through USB, Bluetooth, and 2.4GHz (when available) **(not yet implemented)** |
+| `QK_OUTPUT_PREV` | `OU_PREV` | Cycle backwards through USB, Bluetooth, and 2.4GHz (when available) **(not yet implemented)** |
+| `QK_OUTPUT_NONE` | `OU_NONE` | Disable all output **(not yet implemented)** |
+| `QK_OUTPUT_USB` | `OU_USB` | Output to USB only |
+| `QK_OUTPUT_2P4GHZ` | `OU_2P4G` | Output to 2.4GHz only **(not yet implemented)** |
+| `QK_OUTPUT_BLUETOOTH` | `OU_BT` | Output to Bluetooth only |
+| `QK_BLUETOOTH_PROFILE_NEXT` | `BT_NEXT` | Move to the next Bluetooth profile **(not yet implemented)** |
+| `QK_BLUETOOTH_PROFILE_PREV` | `BT_PREV` | Move to the previous Bluetooth profile **(not yet implemented)** |
+| `QK_BLUETOOTH_UNPAIR` | `BT_UNPR` | Un-pair the current Bluetooth profile **(not yet implemented)** |
+| `QK_BLUETOOTH_PROFILE1` | `BT_PRF1` | Swap to Bluetooth profile #1 **(not yet implemented)** |
+| `QK_BLUETOOTH_PROFILE2` | `BT_PRF2` | Swap to Bluetooth profile #2 **(not yet implemented)** |
+| `QK_BLUETOOTH_PROFILE3` | `BT_PRF3` | Swap to Bluetooth profile #3 **(not yet implemented)** |
+| `QK_BLUETOOTH_PROFILE4` | `BT_PRF4` | Swap to Bluetooth profile #4 **(not yet implemented)** |
+| `QK_BLUETOOTH_PROFILE5` | `BT_PRF5` | Swap to Bluetooth profile #5 **(not yet implemented)** |
## Caps Word {#caps-word}
@@ -375,13 +387,22 @@ See also: [Key Lock](features/key_lock)
|---------|--------------------------------------------------------------|
|`QK_LOCK`|Hold down the next key pressed, until the key is pressed again|
+## Layer Lock {#layer-lock}
+
+See also: [Layer Lock](features/layer_lock)
+
+|Key |Aliases |Description |
+|---------------|---------|----------------------------------|
+|`QK_LAYER_LOCK`|`QK_LLCK`|Locks or unlocks the highest layer|
+
## Layer Switching {#layer-switching}
See also: [Layer Switching](feature_layers#switching-and-toggling-layers)
|Key |Description |
|----------------|----------------------------------------------------------------------------------|
-|`DF(layer)` |Set the base (default) layer |
+|`DF(layer)` |Set the base (default) layer until the keyboard loses power |
+|`PDF(layer)` |Set the base (default) layer in EEPROM |
|`MO(layer)` |Momentarily turn on `layer` when pressed (requires `KC_TRNS` on destination layer)|
|`OSL(layer)` |Momentarily activates `layer` until a key is pressed. See [One Shot Keys](one_shot_keys) for details. |
|`LM(layer, mod)`|Momentarily turn on `layer` (like MO) with `mod` active as well. Where `mod` is a mods_bit. Mods can be viewed [here](mod_tap). Example Implementation: `LM(LAYER_1, MOD_LALT)`|
@@ -611,24 +632,27 @@ See also: [MIDI](features/midi)
See also: [Mouse Keys](features/mouse_keys)
-|Key |Aliases |Description |
-|----------------|---------|---------------------------|
-|`KC_MS_UP` |`KC_MS_U`|Mouse Cursor Up |
-|`KC_MS_DOWN` |`KC_MS_D`|Mouse Cursor Down |
-|`KC_MS_LEFT` |`KC_MS_L`|Mouse Cursor Left |
-|`KC_MS_RIGHT` |`KC_MS_R`|Mouse Cursor Right |
-|`KC_MS_BTN1` |`KC_BTN1`|Mouse Button 1 |
-|`KC_MS_BTN2` |`KC_BTN2`|Mouse Button 2 |
-|`KC_MS_BTN3` |`KC_BTN3`|Mouse Button 3 |
-|`KC_MS_BTN4` |`KC_BTN4`|Mouse Button 4 |
-|`KC_MS_BTN5` |`KC_BTN5`|Mouse Button 5 |
-|`KC_MS_WH_UP` |`KC_WH_U`|Mouse Wheel Up |
-|`KC_MS_WH_DOWN` |`KC_WH_D`|Mouse Wheel Down |
-|`KC_MS_WH_LEFT` |`KC_WH_L`|Mouse Wheel Left |
-|`KC_MS_WH_RIGHT`|`KC_WH_R`|Mouse Wheel Right |
-|`KC_MS_ACCEL0` |`KC_ACL0`|Set mouse acceleration to 0|
-|`KC_MS_ACCEL1` |`KC_ACL1`|Set mouse acceleration to 1|
-|`KC_MS_ACCEL2` |`KC_ACL2`|Set mouse acceleration to 2|
+|Key |Aliases |Description |
+|-------------------------|---------|---------------------------|
+|`QK_MOUSE_CURSOR_UP` |`MS_UP` |Mouse cursor up |
+|`QK_MOUSE_CURSOR_DOWN` |`MS_DOWN`|Mouse cursor down |
+|`QK_MOUSE_CURSOR_LEFT` |`MS_LEFT`|Mouse cursor left |
+|`QK_MOUSE_CURSOR_RIGHT` |`MS_RGHT`|Mouse cursor right |
+|`QK_MOUSE_BUTTON_1` |`MS_BTN1`|Mouse button 1 |
+|`QK_MOUSE_BUTTON_2` |`MS_BTN2`|Mouse button 2 |
+|`QK_MOUSE_BUTTON_3` |`MS_BTN3`|Mouse button 3 |
+|`QK_MOUSE_BUTTON_4` |`MS_BTN4`|Mouse button 4 |
+|`QK_MOUSE_BUTTON_5` |`MS_BTN5`|Mouse button 5 |
+|`QK_MOUSE_BUTTON_6` |`MS_BTN6`|Mouse button 6 |
+|`QK_MOUSE_BUTTON_7` |`MS_BTN7`|Mouse button 7 |
+|`QK_MOUSE_BUTTON_8` |`MS_BTN8`|Mouse button 8 |
+|`QK_MOUSE_WHEEL_UP` |`MS_WHLU`|Mouse wheel up |
+|`QK_MOUSE_WHEEL_DOWN` |`MS_WHLD`|Mouse wheel down |
+|`QK_MOUSE_WHEEL_LEFT` |`MS_WHLL`|Mouse wheel left |
+|`QK_MOUSE_WHEEL_RIGHT` |`MS_WHLR`|Mouse wheel right |
+|`QK_MOUSE_ACCELERATION_0`|`MS_ACL0`|Set mouse acceleration to 0|
+|`QK_MOUSE_ACCELERATION_1`|`MS_ACL1`|Set mouse acceleration to 1|
+|`QK_MOUSE_ACCELERATION_2`|`MS_ACL2`|Set mouse acceleration to 2|
## Modifiers {#modifiers}
@@ -725,23 +749,25 @@ See also: [RGB Lighting](features/rgblight)
|`RGB_MODE_RGBTEST` |`RGB_M_T` |Red, Green, Blue test animation mode (deprecated) |
|`RGB_MODE_TWINKLE` |`RGB_M_TW`|Twinkle animation mode (deprecated) |
-## RGB Matrix Lighting {#rgb-matrix-lighting}
+## RGB Matrix {#rgb-matrix}
-See also: [RGB Matrix Lighting](features/rgb_matrix)
+See also: [RGB Matrix](features/rgb_matrix)
-|Key |Aliases |Description |
-|-------------------|----------|--------------------------------------------------------------------------------------|
-|`RGB_TOG` | |Toggle RGB lighting on or off |
-|`RGB_MODE_FORWARD` |`RGB_MOD` |Cycle through modes, reverse direction when Shift is held |
-|`RGB_MODE_REVERSE` |`RGB_RMOD`|Cycle through modes in reverse, forward direction when Shift is held |
-|`RGB_HUI` | |Increase hue, decrease hue when Shift is held |
-|`RGB_HUD` | |Decrease hue, increase hue when Shift is held |
-|`RGB_SAI` | |Increase saturation, decrease saturation when Shift is held |
-|`RGB_SAD` | |Decrease saturation, increase saturation when Shift is held |
-|`RGB_VAI` | |Increase value (brightness), decrease value when Shift is held |
-|`RGB_VAD` | |Decrease value (brightness), increase value when Shift is held |
-|`RGB_SPI` | |Increase effect speed (does not support eeprom yet), decrease speed when Shift is held|
-|`RGB_SPD` | |Decrease effect speed (does not support eeprom yet), increase speed when Shift is held|
+|Key |Aliases |Description |
+|-------------------------------|---------|-----------------------------------|
+|`QK_RGB_MATRIX_ON` |`RM_ON` |Turn on RGB Matrix |
+|`QK_RGB_MATRIX_OFF` |`RM_OFF` |Turn off RGB Matrix |
+|`QK_RGB_MATRIX_TOGGLE` |`RM_TOGG`|Toggle RGB Matrix on or off |
+|`QK_RGB_MATRIX_MODE_NEXT` |`RM_NEXT`|Cycle through animations |
+|`QK_RGB_MATRIX_MODE_PREVIOUS` |`RM_PREV`|Cycle through animations in reverse|
+|`QK_RGB_MATRIX_HUE_UP` |`RM_HUEU`|Cycle through hue |
+|`QK_RGB_MATRIX_HUE_DOWN` |`RM_HUED`|Cycle through hue in reverse |
+|`QK_RGB_MATRIX_SATURATION_UP` |`RM_SATU`|Increase the saturation |
+|`QK_RGB_MATRIX_SATURATION_DOWN`|`RM_SATD`|Decrease the saturation |
+|`QK_RGB_MATRIX_VALUE_UP` |`RM_VALU`|Increase the brightness level |
+|`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 |
## US ANSI Shifted Symbols {#us-ansi-shifted-symbols}
diff --git a/docs/license_violations.md b/docs/license_violations.md
new file mode 100644
index 00000000000..0bc62102ed3
--- /dev/null
+++ b/docs/license_violations.md
@@ -0,0 +1,104 @@
+# License Violations
+
+QMK Firmware has seen its fair share of license violations, which hurts the community and frustrates the QMK maintainers.
+
+Typical non-compliance includes:
+
+* Not providing any source code
+* Providing "crippled" source code, such as a wired-only firmware for a wireless-capable board
+
+Boards from vendors who don't provide source code are proving to be a significant time sink as the QMK team and other support helpers volunteer their time trying to determine which board someone has before they can help -- and in these cases they can't help. Occasionally this is followed by abuse; something that QMK and its volunteers should not be subjected to, rather redirected to the vendor in question.
+
+The QMK team now actively directs support requests back to each vendor - vendors must provide their own product support for their boards. The QMK team are volunteers, the vendor must not expect the team to act as their support staff.
+
+## Offending Vendors
+
+The QMK team cannot tell you which boards you should or should not purchase, but please consider the lack of license compliance from the following vendors before making your decision. If you wish to look at the boards upstream QMK Firmware currently supports, you can search [here](https://browse.qmk.fm/).
+
+If you own a board from one of the following vendors already, consider asking them for the equivalent QMK source code if it's not already available. With enough customers demanding corresponding source code, vendors may start to change their policies.
+
+| Vendor | Reason |
+|------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Ajazz | Selling tri-mode boards based on QMK without sources. |
+| Alpaca / Apos | Selling wireless boards with "open" source code, but linking against closed-source wireless libraries. Crippled source code already unknowingly merged to QMK. |
+| Attack Shark | Selling tri-mode boards based on QMK without sources. (Clones of Ajazz?) |
+| BBB Keyboard | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. |
+| Chosfox | Selling L75 wired/wireless boards based on QMK without sources, just `via.json` provided. Raised on discord over multiple weeks without response. |
+| CIDOO | Selling wired boards based on QMK without sources, just `via.json` provided. |
+| ColorReco | Selling tri-mode boards based on QMK without sources. |
+| Darmoshark | Selling wired boards based on QMK without sources, just `via.json` provided. |
+| Epomaker | Lots of historical keyboards with `via.json` but no corresponding sources. Wireless code for a small handful provided, pending core cleanup for QMK upstreaming. Most other boards have source nowhere to be seen. |
+| Ergokbd (IFKB) | At least their crkbd clone ships with QMK+Vial, seemingly refuses to disclose sources despite multiple customers requesting them. |
+| iLovBee | Official 30-day copyright source code request issued Sep 11 2024 due to deception on PR, no response received. Ambiguity on PRs -- marketing says wireless, PR author said wired-only, then included wireless code anyway. Seemingly intentionally deceptive. |
+| KiiBOOM | Seems to use the same OEM as Epomaker, same problems. |
+| kprepublic | Makes no attempt to release source code, all boards in QMK are reverse-engineered, created, and supported by the community. New board variants magically appear without telling customers they're incompatible with existing QMK versions, in some cases bricking boards or requiring ISP flashing. |
+| Luminkey | Selling tri-mode boards based on QMK without sources, just `via.json` provided. |
+| Meletrix | Selling tri-mode boards based on QMK without sources, just `via.json` provided. |
+| mmd / Smartmmd / i-game.tech | Ambiguity on PRs -- marketing says wireless, PR author said wired-only, then included wireless code anyway. Seemingly intentionally deceptive. |
+| MyKeyClub | Community-supported JRIS75, vendor was contacted by community members and refused to cooperate. |
+| owlab | Selling wired based on QMK without sources, just `via.json` provided. Ambiguous as to whether or not wireless firmware is based on QMK, given that their configuration tool looks very similar to VIA. |
+| pressplayid | Selling wired and tri-mode boards based on QMK without sources, just `via.json` provided |
+| qwertykeys | Selling wired and tri-mode boards based on QMK without sources, just `via.json` provided. |
+| Redragon | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. |
+| Riccks | Selling tri-mode boards based on QMK without sources. |
+| Royal Kludge | PRs for fake boards in order to attain VIA compatibility identified. Lots of other keyboards with `via.json` but no corresponding sources, attempted upstreaming crippled firmware without wireless. Wireless code for some provided, pending core cleanup for QMK upstreaming. PRs including different manufacturer names as well. |
+| Shenzhen Hangsheng | PR submissions with crippled firmware, debating with maintainers about wireless despite marketing material clearly stating tri-mode. |
+| Tacworks | Selling tri-mode boards based on QMK, crippled firmware already merged into QMK without wireless without QMK team realising. |
+| TKD / Vertex | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. |
+| WOBKEY | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. |
+| Weikav | Selling tri-mode boards based on QMK without sources, just `via.json` provided. |
+| Womier | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. |
+| Wuque Studio | Selling wired and tri-mode boards based on QMK without sources, just `via.json` provided. |
+| XVX | Ambiguity on PRs -- marketing says wireless, PR author said wired-only. Seemingly intentionally deceptive. |
+| Yunzii | Selling tri-mode boards based on QMK without sources, just `via.json` provided. |
+| Zuoya | Selling tri-mode boards based on QMK without sources, just `via.json` provided. |
+
+::: danger Violations
+Links are not provided above as the QMK team does not wish to inadvertently promote purchases of boards in violation of QMK's license.
+:::
+
+## Licensing
+
+QMK Firmware's license requires full disclosure of source code for any firmware which is based on QMK. This includes any of the following scenarios:
+
+* Use of public QMK Firmware, but with "closed source" privately-held board definitions
+* Vendor-customised QMK Firmware, which the vendor keeps private for building their own boards
+* Any other non-QMK firmware which includes portions of QMK Firmware, such as adaptation of `via.c` into any other non-QMK firmware, even if used as a reference when translated to another programming language.
+
+As per the GPL license requirements, vendors must provide entire source code for the as-shipped firmware.
+
+QMK has traditionally been lenient with this clause -- providing source code to the QMK community is necessary but reproducing the exact build may not be possible. QMK has required functionally-equivalent source code to be made available. In rare cases exact code may be requested; vendors must keep copies regardless.
+
+At minimum, vendors must provide the source code through some distribution mechanism. This could potentially be an clearly available downloadable copy of the code online, a fork of QMK Firmware, or even a DVD accompanying the product in the box.
+
+If sources are unable to be provided in a timely fashion, QMK may revoke the vendor's license, effectively rendering them unable to leverage QMK.
+
+Vendors choosing to keep things closed-source because of a desire to have a "competitive edge" compared to other vendors is unacceptable to both QMK and the community, and is a breach of the QMK license. There's no reason to do so; any new or interesting vendor-specific feature will be quickly replicated by other vendors or the community anyway.
+
+## QMK PR Considerations
+
+Vendors who submit PRs to QMK Firmware whilst not providing full sources for all of their license-violating boards will be put on hold until source code for all violating boards is provided. Intentional deception may result in boards being removed from QMK and all future PRs for that manufacturer being denied outright.
+
+Submitting crippled source code in order to attain a merge into QMK Firmware to pave the way for VIA support is unacceptable. This includes submitting a wired-only firmware for a wireless-capable board, or any other PR which does not include key features as-advertised.
+
+Reusing the `VID` and `PID` for multiple boards (such as for two variants, wired and wireless) is an unacceptable scenario as this creates confusion for support. Many customers have flashed boards with the wrong firmware, which could have been avoided if vendors were obvious about their board identification mechanisms.
+
+If there is sufficient ambiguity about a board, supporting evidence will need to be presented to the QMK team. This may include impartial third parties who can demonstrate a board's existence and can confirm its feature set, such as well-known content producers; popular review sites or notable video creators may be leveraged. If such evidence is unavailable, as a last resort the vendor may be required to ship a fully functional board in full retail packaging to QMK maintainers for verification. Engineering samples will not be accepted, as one-off boards have been deceptively used in the past.
+
+PRs submitted to upstream QMK should not expect an instant merge just because source code has been provided -- code from OEMs has historically been of a quality lower than QMK standards, so as per the [PR checklist](pr_checklist) submitters should make the changes as small as possible and be prepared to change their implementation.
+
+## Detection
+
+If the QMK team identifies or is informed of a license violation from a vendor:
+
+* Any current and future PRs for that vendor will be indefinitely put on hold, preventing merge into QMK Firmware, thus preventing any out-of-the-box VIA support
+* Any existing keyboards from the vendor may be removed from QMK Firmware
+* Vendors will be added to the _offending vendors_ list above
+
+Repeated violations may result in that vendor being disallowed from contributing the QMK in its entirety. In the worst case, the QMK team may choose to revoke a vendor's license to use QMK Firmware outright.
+
+## Remediation
+
+Vendors must provide fully-featured source code for each of their identified violations, matching the feature capabilities of their as-shipped products. This will usually be in their own fork of QMK Firmware while awaiting a merge into upstream.
+
+Once all identified violations have been remediated, current and future PRs will no longer be on hold and the vendor will be removed from the offending vendors list above.
diff --git a/docs/mod_tap.md b/docs/mod_tap.md
index 37c2ba3473b..da2ecc9a854 100644
--- a/docs/mod_tap.md
+++ b/docs/mod_tap.md
@@ -2,7 +2,7 @@
The Mod-Tap key `MT(mod, kc)` acts like a modifier when held, and a regular keycode when tapped. In other words, you can have a key that sends Escape when you tap it, but functions as a Control or Shift key when you hold it down.
-The modifiers this keycode and `OSM()` accept are prefixed with `MOD_`, not `KC_`:
+The modifiers (`mod`) argument to the `MT()` macro are prefixed with `MOD_`, not `KC_`:
|Modifier |Description |
|----------|----------------------------------------|
diff --git a/docs/newbs.md b/docs/newbs.md
index 64593cbad12..95cde67f0cd 100644
--- a/docs/newbs.md
+++ b/docs/newbs.md
@@ -4,7 +4,7 @@ Your computer keyboard has a processor inside of it, similar to the one inside y
QMK tries to put a lot of power into your hands by making easy things easy, and hard things possible. You don't have to know how to program to create powerful keymaps — you only have to follow a few simple syntax rules.
-Not sure if your keyboard can run QMK? If it's a mechanical keyboard you built yourself chances are good it can. We support a [large number of hobbyist boards](https://qmk.fm/keyboards/). If your current keyboard can't run QMK there are a lot of choices out there for boards that do.
+Not sure if your keyboard can run QMK? If it's a mechanical keyboard you built yourself chances are good it can. We support a [large number of hobbyist boards](https://browse.qmk.fm/). If your current keyboard can't run QMK there are a lot of choices out there for boards that do.
::: tip Is This Guide For Me?
If the thought of programming intimidates you, please [take a look at our online GUI](newbs_building_firmware_configurator) instead.
diff --git a/docs/newbs_building_firmware.md b/docs/newbs_building_firmware.md
index f3afd6a8968..f5e529b9cee 100644
--- a/docs/newbs_building_firmware.md
+++ b/docs/newbs_building_firmware.md
@@ -42,7 +42,7 @@ Look at the output from that command, you should see something like this:
Ψ Created a new keymap called in: /home/me/qmk_firmware/keyboards/clueboard/66/rev3/keymaps/.
```
-This is the location of your new `keymap.c` file.
+This is the location of your new keymap file. Your keyboards default keymap file may be a `.json` file or a `.c` file. If your keymap is a `.json` file it can be converted to a `.c` file using QMK's [`json2c`](cli_commands#qmk-json2c) utility.
## Open `keymap.c` In Your Favorite Text Editor
diff --git a/docs/other_vscode.md b/docs/other_vscode.md
index 31208d8f3bf..ab2b23e96b4 100644
--- a/docs/other_vscode.md
+++ b/docs/other_vscode.md
@@ -177,12 +177,13 @@ You'll need to perform some modifications to the file above in order to target y
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: 
:::
-Optionally, the following modifications should also be made to the keyboard's `rules.mk` file to disable optimisations -- not strictly required but will ensure breakpoints and variable viewing works correctly:
+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:
```makefile
+# Enable debug information in the final binaries
+DEBUG_ENABLE = yes
# Disable optimisations for debugging purposes
LTO_ENABLE = no
OPT = g
-DEBUG = 3
```
At this point, you should build and flash your firmware through normal methods (`qmk compile ...` and `qmk flash ...`).
diff --git a/docs/porting_your_keyboard_to_qmk.md b/docs/porting_your_keyboard_to_qmk.md
index eb45790128d..737ec4a2cf3 100644
--- a/docs/porting_your_keyboard_to_qmk.md
+++ b/docs/porting_your_keyboard_to_qmk.md
@@ -4,52 +4,51 @@ This page describes the support for [Compatible Microcontrollers](compatible_mic
If you have not yet you should read the [Keyboard Guidelines](hardware_keyboard_guidelines) to get a sense of how keyboards fit into QMK.
-
QMK has a number of features to simplify working with keyboards. For most, you don't have to write a single line of code. To get started, run `qmk new-keyboard`:
```
$ qmk new-keyboard
Ψ Generating a new QMK keyboard directory
-Name Your Keyboard Project
-For more infomation, see:
-https://docs.qmk.fm/hardware_keyboard_guidelines#naming-your-keyboardproject
+Ψ Name Your Keyboard Project
+Ψ For more information, see:
+https://docs.qmk.fm/hardware_keyboard_guidelines#naming-your-keyboard-project
+Keyboard Name? mycoolkeeb
+Ψ Attribution
+Ψ Used for maintainer, copyright, etc.
+Your GitHub Username? [jsmith]
+Ψ More Attribution
+Ψ Used for maintainer, copyright, etc.
+Your Real Name? [John Smith]
+Ψ Pick Base Layout
+Ψ As a starting point, one of the common layouts can be used to
+bootstrap the process
+Default Layout?
+ 1. 60_abnt2
+ ...
+ 65. none of the above
+Please enter your choice: [65]
+Ψ What Powers Your Project
+Ψ Is your board using a separate development board, such as a Pro Micro,
+or is the microcontroller integrated onto the PCB?
-keyboard Name? mycoolkeeb
-
-Attribution
-Used for maintainer, copyright, etc
-
-Your GitHub Username? [jsmith]
-
-More Attribution
-Used for maintainer, copyright, etc
-
-Your Real Name? [John Smith]
-
-Pick Base Layout
-As a starting point, one of the common layouts can be used to bootstrap the process
-
-Default Layout?
- 1. 60_ansi
-...
- 50. tkl_iso
- 51. none of the above
-Please enter your choice: [51]
-
-What Powers Your Project
-For more infomation, see:
-https://docs.qmk.fm/#/compatible_microcontrollers
-
-MCU?
- 1. atmega32u4
-...
- 22. STM32F303
-Please enter your choice: [12]
+For more information, see:
+https://docs.qmk.fm/compatible_microcontrollers
+Using a Development Board? [y/n] y
+Ψ Select Development Board
+Ψ For more information, see:
+https://docs.qmk.fm/compatible_microcontrollers
+Development Board?
+ 1. bit_c_pro
+ ...
+ 14. promicro
+ ...
+ 18. svlinky
+Please enter your choice: [14]
Ψ Created a new keyboard called mycoolkeeb.
-Ψ To start working on things, `cd` into keyboards/mycoolkeeb,
-Ψ or open the directory in your preferred text editor.
-Ψ And build with qmk compile -kb mycoolkeeb -km default.
+Ψ Build Command: qmk compile -kb mycoolkeeb -km default.
+Ψ Project Location: /Users/jsmith/qmk_firmware/keyboards/mycoolkeeb.
+Ψ Now update the config files to match the hardware!
```
This will create all the files needed to support your new keyboard, and populate the settings with default values. Now you just need to customize it for your keyboard.
@@ -58,13 +57,13 @@ This will create all the files needed to support your new keyboard, and populate
This is where you'll describe your keyboard. Please follow the [Keyboard Readme Template](documentation_templates#keyboard-readmemd-template) when writing your `readme.md`. You're encouraged to place an image at the top of your `readme.md`, please use an external service such as [Imgur](https://imgur.com) to host the images.
-## `info.json`
+## `keyboard.json`
-The `info.json` file is where you configure the hardware and feature set for your keyboard. There are a lot of options that can be placed in that file, too many to list here. For a complete overview of available options see the [Data Driven Configuration Options](reference_info_json) page.
+The `keyboard.json` file is where you configure the hardware and feature set for your keyboard. There are a lot of options that can be placed in that file, too many to list here. For a complete overview of available options see the [Data Driven Configuration Options](reference_info_json) page.
### Hardware Configuration
-At the top of the `info.json` you'll find USB related settings. These control how your keyboard appears to the Operating System. If you don't have a good reason to change you should leave the `usb.vid` as `0xFEED`. For the `usb.pid` you should pick a number that is not yet in use.
+At the top of the `keyboard.json` you'll find USB related settings. These control how your keyboard appears to the Operating System. If you don't have a good reason to change you should leave the `usb.vid` as `0xFEED`. For the `usb.pid` you should pick a number that is not yet in use.
Do change the `manufacturer` and `keyboard_name` lines to accurately reflect your keyboard.
@@ -82,10 +81,11 @@ Do change the `manufacturer` and `keyboard_name` lines to accurately reflect you
Windows and macOS will display the `manufacturer` and `keyboard_name` in the list of USB devices. `lsusb` on Linux instead prefers the values in the list maintained by the [USB ID Repository](http://www.linux-usb.org/usb-ids.html). By default, it will only use `manufacturer` and `keyboard_name` if the list does not contain that `usb.vid` / `usb.pid`. `sudo lsusb -v` will show the values reported by the device, and they are also present in kernel logs after plugging it in.
:::
-
### Matrix Configuration
-The next section of the `info` file deals with your keyboard's matrix. The first thing you should define is which pins on your MCU are connected to rows and columns. To do so simply specify the names of those pins:
+The next section of the `keyboard.json` deals with your keyboard's matrix. The first thing you should define is which pins on your MCU are connected to rows and columns. To do so simply specify the names of those pins:
+
+#### Diode Matrix
```json
"matrix_pins": {
@@ -94,7 +94,7 @@ The next section of the `info` file deals with your keyboard's matrix. The first
},
```
-The size of the `matrix_pins.cols` and `matrix_pins.rows` arrays infer the size of the matrix (previously `MATRIX_ROWS` and `MATRIX_COLS`).
+The matrix dimensions are inferred from the length of the `matrix_pins.cols` and `matrix_pins.rows` arrays (previously specified explicitly in `config.h` with `MATRIX_ROWS` and `MATRIX_COLS`).
Finally, you can specify the direction your diodes point. This can be `COL2ROW` or `ROW2COL`.
@@ -103,54 +103,56 @@ Finally, you can specify the direction your diodes point. This can be `COL2ROW`
```
#### Direct Pin Matrix
-To configure a keyboard where each switch is connected to a separate pin and ground instead of sharing row and column pins, use `matrix_pins.direct`. The mapping defines the pins of each switch in rows and columns, from left to right. The size of the `matrix_pins.direct` array infers the size of the matrix. Use `NO_PIN` to fill in blank spaces. Overrides the behaviour of `diode_direction`, `matrix_pins.cols` and `matrix_pins.rows`.
+
+To configure a keyboard where each switch is connected to a separate pin and ground instead of sharing row and column pins, use `matrix_pins.direct`. This overrides the behaviour of `diode_direction`, `matrix_pins.cols` and `matrix_pins.rows`, and they should not be specified together.
```json
"matrix_pins": {
"direct": [
- ["F1", "E6", "B0", "B2", "B3" ],
- ["F5", "F0", "B1", "B7", "D2" ],
- ["F6", "F7", "C7", "D5", "D3" ],
- ["B5", "C6", "B6", "NO_PIN", "NO_PIN"]
+ ["F1", "E6", "B0", "B2", "B3"],
+ ["F5", "F0", "B1", "B7", "D2"],
+ ["F6", "F7", "C7", "D5", "D3"],
+ ["B5", "C6", "B6", null, null]
]
},
```
-### Layout macros
+Here, the matrix dimensions are inferred directly from the dimensions of the `matrix_pins.direct` array. Since there are no row or column pins to prescribe the matrix dimensions, you can arrange it however you like. Each "row" must contain the same number of "column"s; use `null` to fill in blank spaces, but try to minimize them.
-Next is configuring Layout Macro(s). These define the physical arrangement of keys, and its position within the matrix that a switch are connected to. This allows you to have a physical arrangement of keys that differs from the wiring matrix.
+### Layout Macros
+
+Next is configuring layout macro(s). These define the physical arrangement of keys, and their position within the matrix that switches are connected to. This allows you to have a physical arrangement of keys that differs from the wiring matrix.
```json
"layouts": {
"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 },
- { "matrix": [1, 2], "x": 2, "y": 1 },
- { "matrix": [1, 3], "x": 3, "y": 1 },
- { "matrix": [2, 0], "x": 0, "y": 2 },
- { "matrix": [2, 1], "x": 1, "y": 2 },
- { "matrix": [2, 2], "x": 2, "y": 2 },
- { "matrix": [2, 3], "x": 3, "y": 2 },
- { "matrix": [3, 0], "x": 0, "y": 3 },
- { "matrix": [3, 1], "x": 1, "y": 3 },
- { "matrix": [3, 2], "x": 2, "y": 3 },
- { "matrix": [3, 3], "x": 3, "y": 3 }
+ {"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},
+ {"matrix": [1, 2], "x": 2, "y": 1},
+ {"matrix": [1, 3], "x": 3, "y": 1},
+ {"matrix": [2, 0], "x": 0, "y": 2},
+ {"matrix": [2, 1], "x": 1, "y": 2},
+ {"matrix": [2, 2], "x": 2, "y": 2},
+ {"matrix": [2, 3], "x": 3, "y": 2},
+ {"matrix": [3, 0], "x": 0, "y": 3},
+ {"matrix": [3, 1], "x": 1, "y": 3},
+ {"matrix": [3, 2], "x": 2, "y": 3},
+ {"matrix": [3, 3], "x": 3, "y": 3}
]
}
}
-
```
-In the above example,
+In the above example,
* `LAYOUT_ortho_4x4` defines the name of the layout macro
- * It must conform to the [layout guidelines](hardware_keyboard_guidelines#ltkeyboard_namehgt)
-* `"matrix": [0, 0]` defines the electrical position
+ * It must conform to the [layout guidelines](hardware_keyboard_guidelines#keyboard-name-h)
+* `"matrix": [0, 0]` defines the matrix row and column that the key is associated with
::: tip
See also: [Split Keyboard Layout Macro](features/split_keyboard#layout-macro) and [Matrix to Physical Layout](understanding_qmk#matrix-to-physical-layout-map).
@@ -158,9 +160,10 @@ See also: [Split Keyboard Layout Macro](features/split_keyboard#layout-macro) an
## Additional Configuration
-There are a lot of features that can be turned on or off, configured or tuned. Some of these have yet to be migrated over to [Data Driven Configuration](data_driven_config). The following sections cover the process for when an `info.json` option is unavailable.
+There are a lot of features that can be turned on or off, configured or tuned. Some of these have yet to be migrated over to [Data Driven Configuration](data_driven_config). The following sections cover the process for when a data-driven option is unavailable.
### Configuration Options
+
For available options for `config.h`, you should see the [Config Options](config_options#the-configh-file) page for more details.
### Build Options
diff --git a/docs/pr_checklist.md b/docs/pr_checklist.md
index d95d459b069..268e3b1b116 100644
--- a/docs/pr_checklist.md
+++ b/docs/pr_checklist.md
@@ -44,12 +44,14 @@ If there are any inconsistencies with these recommendations, you're best off [cr
Note that personal keymap submissions will no longer be accepted. This section applies to manufacturer-supported keymaps. Please see this [issue](https://github.com/qmk/qmk_firmware/issues/22724) for more information.
:::
-- PRs for vendor specific keymaps will be permitted. The naming convention for these should be `default_${vendor}`, `via_${vendor}` i.e. `via_clueboard`.
- - vendor specific keymaps do not necessarily need to be "vanilla" and can be more richly featured than `default` or `via` stock keymaps.
+- PRs for vendor specific keymaps will be permitted. The naming convention for these should be `default_${vendor}` i.e. `default_clueboard`.
+ - vendor specific keymaps do not necessarily need to be "vanilla" and can be more richly featured than `default` stock keymaps.
- `#include QMK_KEYBOARD_H` preferred to including specific board files
- prefer layer enums to #defines
- custom keycode enums must have first entry = `QK_USER`
- some care with spacing (e.g., alignment on commas or first char of keycodes) makes for a much nicer-looking keymap. Spaces are preferred to tabs
+- keymaps should not enable VIA
+ - keymaps targeting VIA support should be submitted to the [VIA QMK Userspace](https://github.com/the-via/qmk_userspace_via) repository
## Keyboard PRs
@@ -136,12 +138,12 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard
- `keymaps/default/keymap.c`
- `QMKBEST`/`QMKURL` example macros removed
- if using `MO(1)` and `MO(2)` keycodes together to access a third layer, the [Tri Layer](features/tri_layer) feature should be used, rather than manually implementing this using `layer_on/off()` and `update_tri_layer()` functions in the keymap's `process_record_user()`.
-- default (and via) keymaps should be "pristine"
+- default keymaps should be "pristine"
- bare minimum to be used as a "clean slate" for another user to develop their own user-specific keymap
- what does pristine mean? no custom keycodes. no advanced features like tap dance or macros. basic mod taps and home row mods would be acceptable where their use is necessary
- standard layouts preferred in these keymaps, if possible
- should use [encoder map feature](features/encoders#encoder-map), rather than `encoder_update_user()`
- - default keymap should not enable VIA -- the VIA integration documentation requires a keymap called `via`
+ - default keymap should not enable VIA -- keymaps targeting VIA support should be submitted to the [VIA QMK Userspace](https://github.com/the-via/qmk_userspace_via) repository
- submitters can add an example (or bells-and-whistles) keymap showcasing capabilities in the same PR but it shouldn't be embedded in the 'default' keymap
- submitters can also have a "manufacturer-matching" keymap that mirrors existing functionality of the commercial product, if porting an existing board
- Do not include VIA json files in the PR. These do not belong in the QMK repository as they are not used by QMK firmware -- they belong in the [VIA Keyboard Repo](https://github.com/the-via/keyboards)
@@ -174,7 +176,7 @@ Also, specific to ChibiOS:
- all core PRs must now target `develop` branch, which will subsequently be merged back to `master` on the breaking changes timeline
- as indicated above, the smallest set of changes to core components should be included in each PR
- PRs containing multiple areas of change will be asked to be split up and raised separately
- - keyboard and keymap changes should only be included if they affect base keyboard builds, or the default-like `default`, `via`, `default_????` keymaps etc.
+ - keyboard and keymap changes should only be included if they affect base keyboard builds, or the default-like `default`, `default_????` keymaps etc.
- keymap modifications for anything other than the default-like keymaps **should not be included in the initial PR** in order to simplify the review process
- the core PR submitter should submit a followup PR affecting other keymaps after initial PR merge
- large-scale refactoring or consolidation PRs that affect other keymaps (such as renaming keycodes) should always be raised separately
diff --git a/docs/quantum_painter.md b/docs/quantum_painter.md
index 1d844d0f942..bbe89445161 100644
--- a/docs/quantum_painter.md
+++ b/docs/quantum_painter.md
@@ -28,6 +28,8 @@ Supported devices:
| ILI9341 | RGB LCD | 240x320 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ili9341_spi` |
| ILI9486 | RGB LCD | 320x480 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ili9486_spi` |
| ILI9488 | RGB LCD | 320x480 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ili9488_spi` |
+| LD7032 (SPI) | Monochrome OLED | 128x40 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ld7032_spi` |
+| LD7032 (I2C) | Monochrome OLED | 128x40 | I2C | `QUANTUM_PAINTER_DRIVERS += ld7032_i2c` |
| SSD1351 | RGB OLED | 128x128 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ssd1351_spi` |
| ST7735 | RGB LCD | 132x162, 80x160 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += st7735_spi` |
| ST7789 | RGB LCD | 240x320, 240x240 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += st7789_spi` |
@@ -478,6 +480,40 @@ Native color format mono2 is compatible with SH1106
SSD1306 and SH1106 are almost entirely identical, to the point of being indisinguishable by Quantum Painter. Enable SH1106 support in Quantum Painter and create SH1106 devices in firmware to perform drawing operations on SSD1306 displays.
+==== LD7032
+
+Enabling support for the LD7032 in Quantum Painter is done by adding the following to `rules.mk`:
+
+```make
+QUANTUM_PAINTER_ENABLE = yes
+# For SPI:
+QUANTUM_PAINTER_DRIVERS += ld7032_spi
+# For I2C:
+QUANTUM_PAINTER_DRIVERS += ld7032_i2c
+```
+
+Creating a SH1106 device in firmware can then be done with the following APIs:
+
+```c
+// SPI-based LD7032:
+painter_device_t qp_ld7032_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode);
+// I2C-based LD7032:
+painter_device_t qp_ld7032_make_i2c_device(uint16_t panel_width, uint16_t panel_height, uint8_t i2c_address);
+```
+
+The device handle returned from the `qp_ld7032_make_???_device` function can be used to perform all other drawing operations.
+
+The maximum number of displays of each type can be configured by changing the following in your `config.h` (default is 1):
+
+```c
+// 3 SPI displays:
+#define LD7032_NUM_SPI_DEVICES 3
+// 3 I2C displays:
+#define LD7032_NUM_I2C_DEVICES 3
+```
+
+Native color format mono2 is compatible with LD7032.
+
:::::
===== Surface
@@ -848,7 +884,7 @@ static painter_image_handle_t my_image;
void keyboard_post_init_kb(void) {
my_image = qp_load_image_mem(gfx_my_image);
if (my_image != NULL) {
- qp_drawimage(display, (239 - my_image->width), (319 - my_image->height), my_image);
+ qp_drawimage(display, (240 - my_image->width), (320 - my_image->height), my_image);
}
}
```
@@ -873,7 +909,7 @@ static deferred_token my_anim;
void keyboard_post_init_kb(void) {
my_image = qp_load_image_mem(gfx_my_image);
if (my_image != NULL) {
- my_anim = qp_animate(display, (239 - my_image->width), (319 - my_image->height), my_image);
+ my_anim = qp_animate(display, (240 - my_image->width), (320 - my_image->height), my_image);
}
}
```
@@ -965,7 +1001,7 @@ void keyboard_post_init_kb(void) {
if (my_font != NULL) {
static const char *text = "Hello from QMK!";
int16_t width = qp_textwidth(my_font, text);
- qp_drawtext(display, (239 - width), (319 - my_font->line_height), my_font, text);
+ qp_drawtext(display, (240 - width), (320 - my_font->line_height), my_font, text);
}
}
```
diff --git a/docs/ref_functions.md b/docs/ref_functions.md
index 577273c05d3..599515ebc1e 100644
--- a/docs/ref_functions.md
+++ b/docs/ref_functions.md
@@ -69,7 +69,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
Do you want to set the default layer, so that it's retained even after you unplug the board? If so, this is the function for you.
-To use this, you would use `set_single_persistent_default_layer(layer)`. If you have a name defined for your layer, you can use that instead (such as _QWERTY, _DVORAK or _COLEMAK).
+To do this, you would use `set_single_persistent_default_layer(layer)`. If you have a name defined for your layer, you can use that instead (such as _QWERTY, _DVORAK or _COLEMAK).
This will set the default layer, update the persistent settings, and play a tune if you have [Audio](features/audio) enabled on your board, and the default layer sounds set.
@@ -82,6 +82,8 @@ To configure the default layer sounds, you would want to define this in your `co
}
```
+If you do not require it to be retained after you unplug the board, use `set_single_default_layer(layer)` instead.
+
::: tip
There are a large number of predefined songs in [quantum/audio/song_list.h](https://github.com/qmk/qmk_firmware/blob/master/quantum/audio/song_list.h) that you can use.
@@ -99,7 +101,7 @@ To reset to the bootloader use `QK_BOOTLOADER` or `QK_BOOT` keycode or `reset_ke
## Wiping the EEPROM (Persistent Storage)
-If you're having issues with Audio, RGB Underglow, backlighting or keys acting weird, then you can reset the EEPROM (persistent setting storage). To force an EEPROM reset, use the [`EE_CLR` keycode](quantum_keycodes) or [Bootmagic Lite](features/bootmagic) functionality. If neither of those are an option, then you can use a custom macro to do so.
+If you're having issues with Audio, RGB Underglow, backlighting or keys acting weird, then you can reset the EEPROM (persistent setting storage). To force an EEPROM reset, use the [`EE_CLR` keycode](quantum_keycodes) or [Bootmagic](features/bootmagic) functionality. If neither of those are an option, then you can use a custom macro to do so.
To wipe the EEPROM, run `eeconfig_init()` from your function or macro to reset most of the settings to default.
diff --git a/docs/reference_configurator_support.md b/docs/reference_configurator_support.md
index dffed5c0c34..d0824c7705e 100644
--- a/docs/reference_configurator_support.md
+++ b/docs/reference_configurator_support.md
@@ -156,25 +156,25 @@ For more on the `info.json` files, see [`info.json` Format](reference_info_json)
The Configurator's API uses the layout macro and the JSON file we've given it to create a visual representation of the keyboard that has each visual object tied to a specific key, in sequence:
-key in layout macro | JSON object used
-:---: | :----
-k00 | {"label":"Num Lock", "x":0, "y":0}
-k01 | {"label":"/", "x":1, "y":0}
-k02 | {"label":"*", "x":2, "y":0}
-k03 | {"label":"-", "x":3, "y":0}
-k10 | {"label":"7", "x":0, "y":1}
-k11 | {"label":"8", "x":1, "y":1}
-k12 | {"label":"9", "x":2, "y":1}
-k13 | {"label":"+", "x":3, "y":1, "h":2}
-k20 | {"label":"4", "x":0, "y":2}
-k21 | {"label":"5", "x":1, "y":2}
-k22 | {"label":"6", "x":2, "y":2}
-k30 | {"label":"1", "x":0, "y":3}
-k31 | {"label":"2", "x":1, "y":3}
-k32 | {"label":"3", "x":2, "y":3}
-k33 | {"label":"Enter", "x":3, "y":3, "h":2}
-k40 | {"label":"0", "x":0, "y":4, "w":2}
-k42 | {"label":".", "x":2, "y":4}
+| Key in layout macro | JSON object used |
+| ------------------- | ---------------------------------------- |
+| k00 | `{"label":"Num Lock", "x":0, "y":0}` |
+| k01 | `{"label":"/", "x":1, "y":0}` |
+| k02 | `{"label":"*", "x":2, "y":0}` |
+| k03 | `{"label":"-", "x":3, "y":0}` |
+| k10 | `{"label":"7", "x":0, "y":1}` |
+| k11 | `{"label":"8", "x":1, "y":1}` |
+| k12 | `{"label":"9", "x":2, "y":1}` |
+| k13 | `{"label":"+", "x":3, "y":1, "h":2}` |
+| k20 | `{"label":"4", "x":0, "y":2}` |
+| k21 | `{"label":"5", "x":1, "y":2}` |
+| k22 | `{"label":"6", "x":2, "y":2}` |
+| k30 | `{"label":"1", "x":0, "y":3}` |
+| k31 | `{"label":"2", "x":1, "y":3}` |
+| k32 | `{"label":"3", "x":2, "y":3}` |
+| k33 | `{"label":"Enter", "x":3, "y":3, "h":2}` |
+| k40 | `{"label":"0", "x":0, "y":4, "w":2}` |
+| k42 | `{"label":".", "x":2, "y":4}` |
When a user selects the top-left key in the Configurator, and assigns Num Lock to it, the Configurator builds a keymap file with `KC_NUM` as the first key, and so on as the keymap is built. The `label` keys are not used; they are only for the user's reference in identifying specific keys when debugging the `info.json` file.
diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md
index 2db2cd14277..0f8f680b551 100644
--- a/docs/reference_info_json.md
+++ b/docs/reference_info_json.md
@@ -6,51 +6,51 @@ You can create `info.json` files at every level under `qmk_firmware/keyboards/String Required
* A free-form text string describing the keyboard. This will be used as the USB product string. Can include Unicode characters, escaped to ASCII eg. `\u03A8` (Ψ).
* Example: `"Clueboard 66%"`
-* `maintainer` (Required)
+* `maintainer` String Required
* GitHub username of the maintainer, or `qmk` for community maintained boards.
* Example: `"skullydazed"`
-* `manufacturer` (Required)
+* `manufacturer` String Required
* A free-form text string describing the keyboard's manufacturer. This will be used as the USB manufacturer string. Can include Unicode characters, escaped to ASCII eg. `\u03A8` (Ψ).
* Example: `"Clueboard"`
-* `url` (Required)
- * A URL to the keyboard's product page, [QMK.fm/keyboards](https://qmk.fm/keyboards) page, or other page describing information about the keyboard.
+* `url` String Required
+ * A URL to the keyboard's product page, [QMK Keyboards](https://browse.qmk.fm/) page, or other page describing information about the keyboard.
* Example: `"https://clueboard.co"`
-* `bootloader_instructions`
+* `bootloader_instructions` String
* Instructions for putting the keyboard into a mode that allows for firmware flashing.
* Example: `"Press the button marked RESET on the back of the PCB"`
-* `tags`
+* `tags` Array: String
* A list of tags describing the keyboard.
* Example: `["ortho", "split", "rgb"]`
## Hardware Configuration {#hardware-configuration}
-* `board`
+* `board` String
* Override the default ChibiOS board name (ARM-based keyboards only).
* Example: `"BLACKPILL_STM32_F411"`
-* `bootloader`
+* `bootloader` String
* The bootloader in use on the keyboard. Required if `development_board` is not specified.
-* `development_board`
+* `development_board` String
* The microcontroller development board, if applicable.
* Example: `"promicro"`
-* `pin_compatible`
+* `pin_compatible` String
* The form factor of the development board, if applicable. Must be one of `elite_c`, `promicro`.
-* `processor`
+* `processor` String
* The microcontroller in use on the keyboard. Required if `development_board` is not specified.
## Firmware Configuration {#firmware-configuration}
* `build`
- * `debounce_type`
+ * `debounce_type`String
* The debounce algorithm to use. Must be one of `asym_eager_defer_pk`, `custom`, `sym_defer_g`, `sym_defer_pk`, `sym_defer_pr`, `sym_eager_pk`, `sym_eager_pr`.
- * `firmware_format`
+ * `firmware_format`String
* The format of the final output binary. Must be one of `bin`, `hex`, `uf2`.
- * `lto`
+ * `lto`Boolean
* Enable Link-Time Optimization.
* Default: `false`
-* `features`
+* `features`Object: Boolean
* A dictionary of features to enable or disable.
* Example:
```json
@@ -61,36 +61,38 @@ You can create `info.json` files at every level under `qmk_firmware/keyboards/Boolean
* Enable locking switch support.
* Default: `false`
- * `resync`
+ * `resync` Boolean
* Keep switch state consistent with keyboard LED state.
* Default: `false`
- * `tap_capslock_delay`
+ * `tap_capslock_delay` Number
* The delay between keydown and keyup for Caps Lock tap events in milliseconds.
* Default: `80` (80 ms)
- * `tap_keycode_delay`
+ * `tap_keycode_delay` Number
* The delay between keydown and keyup for tap events in milliseconds.
* Default: `0` (no delay)
* `tapping`
- * `hold_on_other_key_press`
+ * `chordal_hold` Boolean
* Default: `false`
- * `hold_on_other_key_press_per_key`
+ * `hold_on_other_key_press` Boolean
* Default: `false`
- * `permissive_hold`
+ * `hold_on_other_key_press_per_key` Boolean
* Default: `false`
- * `permissive_hold_per_key`
+ * `permissive_hold` Boolean
* Default: `false`
- * `retro`
+ * `permissive_hold_per_key` Boolean
* Default: `false`
- * `retro_per_key`
+ * `retro` Boolean
* Default: `false`
- * `term`
+ * `retro_per_key` Boolean
+ * Default: `false`
+ * `term` Number
* Default: `200` (200 ms)
- * `term_per_key`
+ * `term_per_key` Boolean
* Default: `false`
- * `toggle`
+ * `toggle` Number
* Default: `5`
## APA102 {#apa102}
@@ -98,11 +100,11 @@ You can create `info.json` files at every level under `qmk_firmware/keyboards/Pin Required
* The GPIO pin connected to `CI` on the first LED in the chain.
- * `data_pin` (Required)
+ * `data_pin` Pin Required
* The GPIO pin connected to `DI` on the first LED in the chain.
- * `default_brightness`
+ * `default_brightness` Number
* The initial global brightness level (independent of the RGB data), from 0 to 31.
* Default: `31`
@@ -112,26 +114,26 @@ Configures the [Audio](features/audio) feature.
* `audio`
* `default`
- * `on`
+ * `on` Boolean
* The default audio enabled state.
* Default: `true`
- * `clicky`
+ * `clicky` Boolean
* The default audio clicky enabled state.
* Default: `true`
- * `driver`
+ * `driver` String
* The driver to use. Must be one of `dac_additive`, `dac_basic`, `pwm_software`, `pwm_hardware`.
- * `macro_beep`
+ * `macro_beep` Boolean
* Play a short beep for `\a` (ASCII `BEL`) characters in Send String macros.
* Default: `false`
- * `pins` (Required)
+ * `pins` Array: Pin Required
* The GPIO pin(s) connected to the speaker(s).
* `power_control`
- * `on_state`
+ * `on_state` 0|1
* The logical GPIO state required to turn the speaker on.
* Default: `1` (on = high)
- * `pin`
+ * `pin` Pin
* The GPIO pin connected to speaker power circuit.
- * `voices`
+ * `voices` Boolean
* Use multiple audio voices.
* Default: `false`
@@ -141,48 +143,48 @@ Configures the [Audio](features/audio) feature.
Configures the [Backlight](features/backlight) feature.
* `backlight`
- * `as_caps_lock`
+ * `as_caps_lock` Boolean
* Use the backlight as a Caps Lock indicator.
* Default: `false`
- * `breathing`
+ * `breathing` Boolean
* Whether backlight breathing is enabled.
* Default: `false`
- * `breathing_period`
+ * `breathing_period` Number
* The length of one backlight breathing cycle in seconds.
* Default: `6` (6 seconds)
* `default`
- * `on`
+ * `on` Boolean
* The default backlight enabled state.
* Default: `true`
- * `breathing`
+ * `breathing` Boolean
* The default backlight breathing state.
* Default: `false`
- * `brightness`
+ * `brightness` Number
* The default brightness level.
* Default: `max_brightness`
- * `driver`
+ * `driver` String
* The driver to use. Must be one of `custom`, `pwm`, `software`, `timer`.
* Default: `"pwm"`
- * `levels`
+ * `levels` Number
* The number of brightness levels (excluding off), from 1 to 31.
* Default: `3`
- * `max_brightness`
+ * `max_brightness` Number
* The maximum PWM value which brightness is scaled to, from 0 to 255.
* Default: `255`
- * `on_state`
+ * `on_state` 0|1
* The logical GPIO state required to turn the LEDs on.
* Default: `1` (on = high)
- * `pin`
+ * `pin` Pin
* The GPIO pin connected to the backlight circuit.
- * `pins`
+ * `pins` Array: Pin
* A list of GPIO pins connected to the backlight LEDs (`software` and `timer` drivers only).
-## Bluetooth {#bluetooth}
+## Wireless/Bluetooth {#bluetooth}
-Configures the [Bluetooth](features/bluetooth) feature.
+Configures the [Wireless](features/wireless) feature.
* `bluetooth`
- * `driver`
+ * `driver` String
* The driver to use. Must be one of `custom`, `bluefruit_le`, `rn42`.
## Bootmagic {#bootmagic}
@@ -190,10 +192,10 @@ Configures the [Bluetooth](features/bluetooth) feature.
Configures the [Bootmagic](features/bootmagic) feature.
* `bootmagic`
- * `enabled`
+ * `enabled` Boolean
* Enables the Bootmagic feature.
* Default: `false`
- * `matrix`
+ * `matrix` Matrix
* The matrix position of the key to check during startup. This should generally be set to the (physically) top left key.
* Default: `[0, 0]`
@@ -202,19 +204,19 @@ Configures the [Bootmagic](features/bootmagic) feature.
Configures the [Caps Word](features/caps_word) feature.
* `caps_word`
- * `both_shifts_turns_on`
+ * `both_shifts_turns_on` Boolean
* Activate Caps Word by pressing both Shift keys.
* Default: `false`
- * `double_tap_shift_turns_on`
+ * `double_tap_shift_turns_on` Boolean
* Activate Caps Word by pressing Left Shift twice.
* Default: `false`
- * `enabled`
+ * `enabled` Boolean
* Enables the Caps Word feature.
* Default: `false`
- * `idle_timeout`
+ * `idle_timeout` Number
* The amount of time before Caps Word automatically deactivates in milliseconds.
* Default: `5000` (5 seconds)
- * `invert_on_shift`
+ * `invert_on_shift` Boolean
* Invert shift state instead of deactivating Caps Word when Shift is pressed.
* Default: `false`
@@ -223,7 +225,7 @@ Configures the [Caps Word](features/caps_word) feature.
Configures the [Combo](features/combo) feature.
* `combo`
- * `term`
+ * `term` Number
* The amount of time to recognize a combo in milliseconds.
* Default: `50` (50 ms)
@@ -232,12 +234,12 @@ Configures the [Combo](features/combo) feature.
Configures the [DIP Switches](features/dip_switch) feature.
* `dip_switch`
- * `enabled`
+ * `enabled` Boolean
* Enable the DIP Switches feature.
* Default: `false`
- * `pins`
+ * `pins` Array: Pin
* A list of GPIO pins connected to the MCU.
- * `matrix_grid`
+ * `matrix_grid` Array: Matrix
* A list of matrix locations in the key matrix.
* Example: `[ [0,6], [1,6], [2,6] ]`
@@ -246,15 +248,15 @@ Configures the [DIP Switches](features/dip_switch) feature.
Configures the [EEPROM](drivers/eeprom) driver.
* `eeprom`
- * `driver`
+ * `driver` String
* The EEPROM backend to use. Must be one of `custom`, `i2c`, `legacy_stm32_flash`, `spi`, `transient`, `vendor`, `wear_leveling`.
* Default: `"vendor"`
* `wear_leveling`
- * `driver`
+ * `driver` String
* The driver to use. Must be one of `embedded_flash`, `legacy`, `rp2040_flash`, `spi_flash`, `custom`.
- * `backing_size`
+ * `backing_size` Number
* Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size.
- * `logical_size`
+ * `logical_size` Number
* Number of bytes “exposed” to the rest of QMK and denotes the size of the usable EEPROM.
## Encoder {#encoder}
@@ -262,13 +264,13 @@ Configures the [EEPROM](drivers/eeprom) driver.
Configures the [Encoder](features/encoders) feature.
* `encoder`
- * `rotary`
+ * `rotary` Array: Object
* A list of encoder objects.
- * `pin_a` (Required)
+ * `pin_a` Pin Required
* The GPIO pin connected to the encoder's `A` pin.
- * `pin_b` (Required)
+ * `pin_b` Pin Required
* The GPIO pin connected to the encoder's `B` pin.
- * `resolution`
+ * `resolution` Number
* The number of edge transitions on both pins required to register an input.
* Default: `4`
@@ -277,18 +279,18 @@ Configures the [Encoder](features/encoders) feature.
Configures the [LED Indicators](features/led_indicators) feature.
* `indicators`
- * `caps_lock`
+ * `caps_lock` Pin
* The GPIO pin connected to the Caps Lock LED.
- * `compose`
+ * `compose` Pin
* The GPIO pin connected to the Compose LED.
- * `kana`
+ * `kana` Pin
* The GPIO pin connected to the Kana LED.
- * `num_lock`
+ * `num_lock` Pin
* The GPIO pin connected to the Num Lock LED.
- * `on_state`
+ * `on_state` 0|1
* The logical GPIO state required to turn the LEDs on.
* Default: `1` (on = high)
- * `scroll_lock`
+ * `scroll_lock` Pin
* The GPIO pin connected to the Scroll Lock LED.
## Layouts {#layouts}
@@ -301,10 +303,10 @@ All key positions and rotations are specified in relation to the top-left corner
The ISO enter key is represented by a 1.25u×2uh key. Renderers which utilize info.json layout data (such as `qmk info -l` and the QMK Configurator) should display this key as expected.
-* `community_layouts`
+* `community_layouts` Array: String
* A list of community layouts supported by the keyboard.
* Example: `["60_ansi", "60_iso"]`
-* `layout_aliases`
+* `layout_aliases` Object: String
* A mapping of layout aliases to layout definitions.
* Example:
```json
@@ -313,34 +315,36 @@ The ISO enter key is represented by a 1.25u×2uh key. Renderers which utilize in
"LAYOUT_iso": "LAYOUT_60_iso"
}
```
-* `layouts`
+* `layouts` Object
* A dictionary of layouts supported by the keyboard.
- * `LAYOUT_`
- * `layout`
+ * `LAYOUT_` Object
+ * `layout` Array: Object
* A list of key dictionaries comprising the layout. Each key dictionary contains:
- * `matrix` (Required)
+ * `matrix` Matrix Required
* The matrix position for the key.
* Example: `[0, 4]` (row 0, column 4)
- * `x` (Required)
+ * `x` KeyUnit Required
* The absolute position of the key in the horizontal axis, in key units.
- * `y` (Required)
+ * `y` KeyUnit Required
* The absolute position of the key in the vertical axis, in key units.
- * `h`
+ * `h` KeyUnit
* The height of the key, in key units.
* Default: `1` (1u)
- * `label`
+ * `hand` String
+ * The handedness of the key for Chordal Hold, either `"L"` (left hand), `"R"` (right hand), or `"*"` (either or exempted handedness).
+ * `label` String
* What to name the key. This is *not* a key assignment as in the keymap, but should usually correspond to the keycode for the first layer of the default keymap.
* Example: `"Escape"`
- * `r`
+ * `r` Number
* The rotation angle in degrees. Currently not implemented.
- * `rx`
+ * `rx` Number
* The absolute X position of the rotation axis. Currently not implemented.
- * `ry`
+ * `ry` Number
* The absolute Y position of the rotation axis. Currently not implemented.
- * `w`
+ * `w` KeyUnit
* The width of the key, in key units.
* Default: `1` (1u)
- * `encoder`
+ * `encoder` Number
* The index of an encoder this key should be linked to
* Example: `{"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}`
@@ -349,13 +353,13 @@ The ISO enter key is represented by a 1.25u×2uh key. Renderers which utilize in
Configures the [Leader Key](features/leader_key) feature.
* `leader_key`
- * `timing`
+ * `timing` Boolean
* Reset the `timeout` on each keypress.
* Default: `false`
- * `strict_processing`
+ * `strict_processing` Boolean
* Do not extract the tap keycodes from Layer-Tap and Mod-Tap key events.
* Default: `false`
- * `timeout`
+ * `timeout` Number
* The amount of time to complete a leader sequence in milliseconds.
* Default: `300` (300 ms)
@@ -364,7 +368,7 @@ Configures the [Leader Key](features/leader_key) feature.
Configures the [LED Matrix](features/led_matrix) feature.
* `led_matrix`
- * `animations`
+ * `animations` Object: Boolean
* A dictionary of effects to enable or disable. Effects which are absent default to `false`.
* Example:
```json
@@ -374,82 +378,82 @@ Configures the [LED Matrix](features/led_matrix) feature.
"cycle_left_right": false
}
```
- * `center_point`
+ * `center_point` Array: Number
* The centroid (geometric center) of the LEDs. Used for certain effects.
* Default: `[112, 32]`
* `default`
- * `animation`
+ * `animation` String
* The default effect. Must be one of `led_matrix.animations`
* Default: `"solid"`
- * `on`
+ * `on` Boolean
* The default enabled state.
* Default: `true`
- * `val`
+ * `val` Number
* The default brightness level.
* Default: `max_brightness`
- * `speed`
+ * `speed` Number
* The default animation speed.
* Default: `128`
- * `driver` (Required)
+ * `driver` String Required
* The driver to use. Must be one of `custom`, `is31fl3218`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `snled27351`.
- * `layout` (Required)
+ * `layout` Array: Object Required
* List of LED configuration dictionaries. Each dictionary contains:
- * `flags` (Required)
+ * `flags` Number Required
* A bitfield of flags describing the type of LED.
- * `x` (Required)
+ * `x` Number Required
* The position of the LED in the horizontal axis, from 0 to 224.
- * `y` (Required)
+ * `y` Number Required
* The position of the LED in the vertical axis, from 0 to 64.
- * `matrix`
+ * `matrix` Matrix
* The key matrix position associated with the LED.
* Example: `[0, 2]`
* Example: `{"matrix": [2, 1], "x": 20, "y": 48, "flags": 2}`
- * `led_flush_limit`
+ * `led_flush_limit` Number
* Limits in milliseconds how frequently an animation will update the LEDs.
* Default: `16`
- * `led_process_limit`
+ * `led_process_limit` Number
* Limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness).
- * Default: `led_count / 5`
- * `max_brightness`
+ * Default: `(led_count + 4) / 5`
+ * `max_brightness` Number
* The maximum value which brightness is scaled to, from 0 to 255.
* Default: `255`
- * `react_on_keyup`
+ * `react_on_keyup` Boolean
* Animations react to keyup instead of keydown.
* Default: `false`
- * `sleep`
+ * `sleep` Boolean
* Turn off the LEDs when the host goes to sleep.
* Default: `false`
- * `speed_steps`
- * The number of speed adjustment steps.
+ * `speed_steps` Number
+ * The value by which to increment the speed.
* Default: `16`
- * `split_count`
+ * `split_count` Array: Number
* For split keyboards, the number of LEDs on each half.
* Example: `[16, 16]`
- * `timeout`
+ * `timeout` Number
* The LED activity timeout in milliseconds.
* Default: `0` (no timeout)
- * `val_steps`
- * The number of brightness adjustment steps.
+ * `val_steps` Number
+ * The value by which to increment the brightness.
* Default: `8`
## Matrix {#matrix}
-* `debounce`
+* `debounce` Number
* The debounce time in milliseconds.
* Default: `5` (5 ms)
-* `diode_direction`
+* `diode_direction` String
* Which way the diodes are "pointing". Unused for `matrix_pins.direct`. Must be one of `COL2ROW`, `ROW2COL`.
* `matrix_pins`
- * `cols`
+ * `cols` Array: Pin
* A list of GPIO pins connected to the matrix columns.
* Example: `["A0", "A1", "A2"]`
- * `custom`
+ * `custom` Boolean
* Whether to use a custom matrix scanning implementation.
* Default: `false`
- * `custom_lite`
+ * `custom_lite` Boolean
* Whether to use a "lite" custom matrix scanning implementation.
* Default: `false`
- * `direct`
+ * `direct` Array: Array: Pin
* A 2-dimensional list of GPIO pins connected to each keyswitch, forming the "matrix" rows and columns.
* Example:
```json
@@ -459,16 +463,16 @@ Configures the [LED Matrix](features/led_matrix) feature.
["C0", "C1", "C2"]
]
```
- * `ghost`
+ * `ghost` Boolean
* Whether the matrix has no anti-ghosting diodes.
* Default: `false`
- * `input_pressed_state`
+ * `input_pressed_state` 0|1
* The logical GPIO state of the input pins when a key is pressed.
* Default: `0` (pressed = low)
- * `io_delay`
+ * `io_delay` Number
* The amount of time to wait between row/col selection and col/row pin reading, in microseconds.
* Default: `30` (30 µs)
- * `rows`
+ * `rows` Array: Pin
* A list of GPIO pins connected to the matrix rows.
* Example: `["B0", "B1", "B2"]`
@@ -477,23 +481,23 @@ Configures the [LED Matrix](features/led_matrix) feature.
Configures the [Mouse Keys](features/mouse_keys) feature.
* `mouse_key`
- * `delay`
- * `enabled`
+ * `delay` Number
+ * `enabled` Boolean
* Enables the Mouse Keys feature.
* Default: `false`
- * `interval`
- * `max_speed`
- * `time_to_max`
- * `wheel_delay`
+ * `interval` Number
+ * `max_speed` Number
+ * `time_to_max` Number
+ * `wheel_delay` Number
## One Shot {#one-shot}
Configures [One Shot keys](one_shot_keys).
* `oneshot`
- * `tap_toggle`
+ * `tap_toggle` Number
* The number of times to tap the key in order to hold it.
- * `timeout`
+ * `timeout` Number
* The amount of time before the key is released in milliseconds.
## PS/2 {#ps2}
@@ -501,30 +505,30 @@ Configures [One Shot keys](one_shot_keys).
Configures the [PS/2](features/ps2_mouse) feature.
* `ps2`
- * `clock_pin`
+ * `clock_pin` Pin
* The GPIO pin connected to `CLK` on the PS/2 device.
- * `data_pin`
+ * `data_pin` Pin
* The GPIO pin connected to `DATA` on the PS/2 device.
- * `driver`
+ * `driver` String
* The PS/2 driver to use. Must be one of `busywait`, `interrupt`, `usart`, `vendor`.
* Default: `"busywait"`
- * `enabled`
+ * `enabled` Boolean
* Enable the PS/2 feature.
* Default: `false`
- * `mouse_enabled`
+ * `mouse_enabled` Boolean
* Enable the PS/2 mouse handling.
* Default: `false`
## QMK LUFA Bootloader {#qmk-lufa-bootloader}
* `qmk_lufa_bootloader`
- * `esc_input` (Required)
+ * `esc_input` Pin Required
* The GPIO pin connected to the designated "exit bootloader" key's row (if `COL2ROW`).
- * `esc_output` (Required)
+ * `esc_output` Pin Required
* The GPIO pin connected to the designated "exit bootloader" key's column (if `COL2ROW`).
- * `led`
+ * `led` Pin
* The GPIO pin connected to an LED to flash.
- * `speaker`
+ * `speaker` Pin
* The GPIO pin connected to a speaker to click (can also be used for a second LED).
## RGBLight {#rgblight}
@@ -532,9 +536,9 @@ Configures the [PS/2](features/ps2_mouse) feature.
Configures the [RGB Lighting](features/rgblight) feature.
* `rgblight`
- * `led_count` (Required)
+ * `led_count` Number Required
* The number of LEDs in the chain.
- * `animations`
+ * `animations` Object: Boolean
* A dictionary of effects to enable or disable. Effects which are absent default to `false`.
* Example:
```json
@@ -544,60 +548,60 @@ Configures the [RGB Lighting](features/rgblight) feature.
"snake": false
}
```
- * `brightness_steps`
- * The number of brightness adjustment steps.
+ * `brightness_steps` Number
+ * The value by which to increment the brightness.
* Default: `17`
* `default`
- * `animation`
+ * `animation` String
* The default effect. Must be one of `rgblight.animations`
* Default: `"static_light"`
- * `on`
+ * `on` Boolean
* The default enabled state.
* Default: `true`
- * `hue`
+ * `hue` Number
* The default hue value.
* Default: `0`
- * `sat`
+ * `sat` Number
* The default saturation value.
* Default: `255`
- * `val`
+ * `val` Number
* The default brightness level.
* Default: `max_brightness`
- * `speed`
+ * `speed` Number
* The default animation speed.
* Default: `0`
- * `driver`
+ * `driver` String
* The driver to use. Must be one of `apa102`, `custom`, `ws2812`.
* Default: `"ws2812"`
- * `hue_steps`
- * The number of hue adjustment steps.
+ * `hue_steps` Number
+ * The value by which to increment the hue.
* Default: `8`
* `layers`
- * `blink`
+ * `blink` Boolean
* Enable layer blinking API.
* Default: `false`
- * `enabled`
+ * `enabled` Boolean
* Enable RGB Lighting Layers.
* Default: `false`
- * `max`
+ * `max` Number
* The maximum layer count, from 1 to 32.
* Default: `8`
- * `led_map`
+ * `led_map` Array: Number
* Remap LED indices.
* Example: `[4, 3, 2, 1, 0]`
- * `max_brightness`
+ * `max_brightness` Number
* The maximum value which the HSV "V" component is scaled to, from 0 to 255.
* Default: `255`
- * `saturation_steps`
- * The number of saturation adjustment steps.
+ * `saturation_steps` Number
+ * The value by which to increment the suturation.
* Default: `17`
- * `sleep`
+ * `sleep` Boolean
* Turn off the LEDs when the host goes to sleep.
* Default: `false`
- * `split`
+ * `split` Boolean
* Enable synchronization between split halves.
* Default: `false`
- * `split_count`
+ * `split_count` Array: Number
* When `rgblight.split` is enabled, the number of LEDs on each half.
* Example: `[10, 10]`
@@ -606,7 +610,7 @@ Configures the [RGB Lighting](features/rgblight) feature.
Configures the [RGB Matrix](features/rgb_matrix) feature.
* `rgb_matrix`
- * `animations`
+ * `animations` Object: Boolean
* A dictionary of effects to enable or disable. Effects which are absent default to `false`.
* Example:
```json
@@ -616,74 +620,74 @@ Configures the [RGB Matrix](features/rgb_matrix) feature.
"cycle_left_right": false
}
```
- * `center_point`
+ * `center_point` Array: Number
* The centroid (geometric center) of the LEDs. Used for certain effects.
* Default: `[112, 32]`
* `default`
- * `animation`
+ * `animation` String
* The default effect. Must be one of `rgb_matrix.animations`
* Default: `"solid_color"`
- * `on`
+ * `on` Boolean
* The default enabled state.
* Default: `true`
- * `hue`
+ * `hue` Number
* The default hue value.
* Default: `0`
- * `sat`
+ * `sat` Number
* The default saturation value.
* Default: `255`
- * `val`
+ * `val` Number
* The default brightness level.
* Default: `max_brightness`
- * `speed`
+ * `speed` Number
* The default animation speed.
* Default: `128`
- * `driver` (Required)
+ * `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`
- * The number of hue adjustment steps.
+ * `hue_steps` Number
+ * The value by which to increment the hue.
* Default: `8`
- * `layout` (Required)
+ * `layout` Array: Object Required
* List of LED configuration dictionaries. Each dictionary contains:
- * `flags` (Required)
+ * `flags` Number Required
* A bitfield of flags describing the type of LED.
- * `x` (Required)
+ * `x` Number Required
* The position of the LED in the horizontal axis, from 0 to 224.
- * `y` (Required)
+ * `y` Number Required
* The position of the LED in the vertical axis, from 0 to 64.
- * `matrix`
+ * `matrix` Matrix
* The key matrix position associated with the LED.
* Example: `[0, 2]`
* Example: `{"matrix": [2, 1], "x": 20, "y": 48, "flags": 2}`
- * `led_flush_limit`
+ * `led_flush_limit` Number
* Limits in milliseconds how frequently an animation will update the LEDs.
* Default: `16`
- * `led_process_limit`
+ * `led_process_limit` Number
* Limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness).
- * Default: `led_count / 5`
- * `max_brightness`
+ * Default: `(led_count + 4) / 5`
+ * `max_brightness` Number
* The maximum value which the HSV "V" component is scaled to, from 0 to 255.
* Default: `255`
- * `react_on_keyup`
+ * `react_on_keyup` Boolean
* Animations react to keyup instead of keydown.
* Default: `false`
- * `sat_steps`
- * The number of saturation adjustment steps.
+ * `sat_steps` Number
+ * The value by which to increment the saturation.
* Default: `16`
- * `sleep`
+ * `sleep` Boolean
* Turn off the LEDs when the host goes to sleep.
* Default: `false`
- * `speed_steps`
- * The number of speed adjustment steps.
+ * `speed_steps` Number
+ * The value by which to increment the speed.
* Default: `16`
- * `split_count`
+ * `split_count` Array: Number
* For split keyboards, the number of LEDs on each half.
* Example: `[16, 16]`
- * `timeout`
+ * `timeout` Number
* The LED activity timeout in milliseconds.
* Default: `0` (no timeout)
- * `val_steps`
- * The number of brightness adjustment steps.
+ * `val_steps` Number
+ * The value by which to increment the brightness.
* Default: `16`
## Secure {#secure}
@@ -691,16 +695,16 @@ Configures the [RGB Matrix](features/rgb_matrix) feature.
Configures the [Secure](features/secure) feature.
* `secure`
- * `enabled`
+ * `enabled` Boolean
* Enable the Secure feature.
* Default: `false`
- * `idle_timeout`
+ * `idle_timeout` Number
* Timeout while unlocked before returning to the locked state. Set to `0` to disable.
* Default: `60000` (1 minute)
- * `unlock_sequence`
+ * `unlock_sequence` Array: Matrix
* A list of up to five matrix locations comprising the "unlock sequence".
* Example: `[[0, 0], [0, 1], [4, 3]]`
- * `unlock_timeout`
+ * `unlock_timeout` Number
* Timeout for the user to perform the unlock sequence. Set to `0` to disable.
* Default: `5000` (5 seconds)
@@ -716,7 +720,7 @@ Configures the [Split Keyboard](features/split_keyboard) feature.
* `right`
* `pins`
* See [DIP Switches](#dip-switch) config.
- * `enabled`
+ * `enabled` Boolean
* Enable the Split Keyboard feature.
* Default: `false`
* `encoder`
@@ -724,65 +728,69 @@ Configures the [Split Keyboard](features/split_keyboard) feature.
* `rotary`
* See [Encoder](#encoder) config.
* `handedness`
- * `pin`
+ * `pin` Pin
* The GPIO pin connected to determine handedness.
- * `matrix_grid`
+ * `matrix_grid` Array: Pin
* The GPIO pins of the matrix position which determines the handedness.
* Example: `["A1", "B5"]`
* `matrix_pins`
* `right`
* See [Matrix](#matrix) config.
- * `soft_serial_pin`
- * The GPIO pin to use (`serial` transport protocol only).
- * `soft_serial_speed`
+ * `serial`
+ * `driver` String
+ * The driver to use. Must be one of `bitbang`, `usart`, `vendor`.
+ * Default: `"bitbang"`
+ * `pin` Pin
+ * The GPIO pin to use for transmit and receive.
+ * `soft_serial_speed` Number
* The protocol speed, from `0` to `5` (`serial` transport protocol only).
* Default: `1`
* `transport`
- * `protocol`
+ * `protocol` String
* The split transport protocol to use. Must be one of `custom`, `i2c`, `serial`.
* `sync`
- * `activity`
+ * `activity` Boolean
* Mirror the activity timestamps to the secondary half.
* Default: `false`
- * `detected_os`
+ * `detected_os` Boolean
* Mirror the [detected OS](features/os_detection) to the secondary half.
* Default: `false`
- * `haptic`
+ * `haptic` Boolean
* Mirror the haptic state and process haptic feedback to the secondary half.
* Default: `false`
- * `layer_state`
+ * `layer_state` Boolean
* Mirror the layer state to the secondary half.
* Default: `false`
- * `indicators`
+ * `indicators` Boolean
* Mirror the indicator state to the secondary half.
* Default: `false`
- * `matrix_state`
+ * `matrix_state` Boolean
* Mirror the main/primary half's matrix state to the secondary half.
* Default: `false`
- * `modifiers`
+ * `modifiers` Boolean
* Mirror the modifier state to the secondary half.
* Default: `false`
- * `oled`
+ * `oled` Boolean
* Mirror the OLED on/off status to the secondary half.
* Default: `false`
- * `st7565`
+ * `st7565` Boolean
* Mirror the ST7565 on/off status to the secondary half.
* Default: `false`
- * `wpm`
+ * `wpm` Boolean
* Mirror the current WPM value to the secondary half.
* Default: `false`
- * `watchdog`
+ * `watchdog` Boolean
* Reboot the secondary half if it loses connection.
* Default: `false`
- * `watchdog_timeout`
+ * `watchdog_timeout` Number
* The amount of time to wait for communication from the primary half in milliseconds.
* `usb_detect`
- * `enabled`
+ * `enabled` Boolean
* Detect USB connection when determining split half roles.
- * `polling_interval`
+ * `polling_interval` Number
* The polling frequency in milliseconds.
* Default: `10` (10 ms)
- * `timeout`
+ * `timeout` Number
* The amount of time to wait for a USB connection in milliseconds.
* Default: `2000` (2 seconds)
@@ -791,48 +799,48 @@ Configures the [Split Keyboard](features/split_keyboard) feature.
Configures the [Stenography](features/stenography) feature.
* `stenography`
- * `enabled`
+ * `enabled` Boolean
* Enable the Stenography feature.
* Default: `false`
- * `protocol`
+ * `protocol` String
* The Steno protocol to use. Must be one of `all`, `geminipr`, `txbolt`.
* Default: `"all"`
## USB {#usb}
* `usb`
- * `device_version` (Required)
+ * `device_version` String Required
* A BCD version number in the format `MM.m.r` (up to `99.9.9`).
* Example: `"1.0.0"`
- * `pid` (Required)
+ * `pid` String Required
* The USB product ID as a four-digit hexadecimal number.
* Example: `"0x23B0"`
- * `vid` (Required)
+ * `vid` String Required
* The USB vendor ID as a four-digit hexadecimal number.
* Example: `"0xC1ED"`
- * `force_nkro`
+ * `force_nkro` Boolean
* Force NKRO to be active.
* Default: `false`
- * `max_power`
+ * `max_power` Number
* The maximum current draw the host should expect from the device. This does not control the actual current usage.
* Default: `500` (500 mA)
- * `no_startup_check`
+ * `no_startup_check` Boolean
* Disable USB suspend check after keyboard startup.
* Default: `false`
- * `polling_interval`
+ * `polling_interval` Number
* The frequency at which the host should poll the keyboard for reports.
* Default: `1` (1 ms/1000 Hz)
* `shared_endpoint`
- * `keyboard`
+ * `keyboard` Boolean
* Send keyboard reports through the "shared" USB endpoint.
* Default: `false`
- * `mouse`
+ * `mouse` Boolean
* Send mouse reports through the "shared" USB endpoint.
* Default: `true`
- * `suspend_wakeup_delay`
+ * `suspend_wakeup_delay` Number
* The amount of time to wait after sending a wakeup packet, in milliseconds.
* Default: `0` (disabled)
- * `wait_for_enumeration`
+ * `wait_for_enumeration` Boolean
* Force the keyboard to wait for USB enumeration before starting up.
* Default: `false`
@@ -841,17 +849,17 @@ Configures the [Stenography](features/stenography) feature.
Configures the [WS2812](drivers/ws2812) driver.
* `ws2812`
- * `driver`
+ * `driver` String
* The driver to use. Must be one of `bitbang`, `custom`, `i2c`, `pwm`, `spi`, `vendor`.
* Default: `"bitbang"`
- * `pin` (Required)
+ * `pin` Pin Required
* The GPIO pin connected to `DI` on the first LED in the chain (`bitbang`, `pwm`, `spi` and `vendor` drivers only).
- * `i2c_address`
+ * `i2c_address` String
* The I²C address of the WS2812 controller (`i2c` driver only).
* Default: `"0xB0"`
- * `i2c_timeout`
+ * `i2c_timeout` Number
* The I²C timeout in milliseconds (`i2c` driver only).
* Default: `100` (100 ms)
- * `rgbw`
+ * `rgbw` Boolean
* Enable RGBW LEDs.
* Default: `false`
diff --git a/docs/reference_keymap_extras.md b/docs/reference_keymap_extras.md
index 191e0d4ea8d..c8717736513 100644
--- a/docs/reference_keymap_extras.md
+++ b/docs/reference_keymap_extras.md
@@ -2,9 +2,31 @@
Keyboards are able to support a wide range of languages. However, this support is not actually achieved within the keyboard itself - instead, it sends numerical codes, which the operating system maps to the appropriate characters depending on the user's configured keyboard layout. By default (and per the HID spec), this is the US ANSI layout. For example, when a Swedish person presses the key with the `å` character printed on it, the keyboard is *actually* sending the keycode for `[`.
-Obviously, this can get confusing, so QMK provides language-specific keycode aliases for many keyboard layouts. These won't do much on their own - you still have to set the matching keyboard layout in your OS settings. Think of them more as keycap labels for your keymap.
+Obviously, this can get confusing, so QMK provides language-specific keycode aliases for many keyboard layouts. These are used in place of the `KC_` prefixed ones. They won't do much on their own - you still have to set the matching keyboard layout in your OS settings. Think of them more as keycap labels for your keymap. The language-specific keycode aliases are defined in the files listed in the [Keycodes Header](#header-files) column below.
-Simply `#include` one of the keycode headers below at the top of your `keymap.c`, and assign the keycodes defined in the header in place of the `KC_` prefixed ones.
+## Selecting Your Host Keyboard Layout
+
+To select a host keyboard layout, simply `#include` one of the [keycode headers](#header-files) below at the top of your `keymap.c`. Example:
+
+```c
+#include QMK_KEYBOARD_H
+
+#include "keymap_japanese.h" // [!code focus]
+```
+
+Alternatively, if using `keymap.json`, add the `host_language` key as shown in the following example. The available languages are those with a _Sendstring LUT Header_ entry in one of the [Header Files](#header-files) tables.
+
+```json
+{
+ "keyboard": "handwired/my_macropad",
+ "keymap": "my_keymap",
+ "host_language": "swedish", // [!code focus]
+ "layout": "LAYOUT_all",
+ "layers": [
+ ["SE_ARNG"]
+ ]
+}
+```
## Sendstring Support
@@ -33,6 +55,8 @@ These headers are located in [`quantum/keymap_extras/`](https://github.com/qmk/q
|English (US International) |`keymap_us_international.h` |`sendstring_us_international.h` |
|English (US International, Linux)|`keymap_us_international_linux.h`| |
|Estonian |`keymap_estonian.h` |`sendstring_estonian.h` |
+|EurKEY |`keymap_eurkey.h` | |
+|Farsi |`keymap_farsi.h` | |
|Finnish |`keymap_finnish.h` |`sendstring_finnish.h` |
|French |`keymap_french.h` |`sendstring_french.h` |
|French (AFNOR) |`keymap_french_afnor.h` |`sendstring_french_afnor.h` |
diff --git a/docs/syllabus.md b/docs/syllabus.md
index 3082f1ebd51..b68ded2d359 100644
--- a/docs/syllabus.md
+++ b/docs/syllabus.md
@@ -55,7 +55,7 @@ Everything below here requires a lot of foundational knowledge. Besides being ab
* **Advanced Features**
* [Unicode](features/unicode)
* [API](api_overview)
- * [Bootmagic Lite](features/bootmagic)
+ * [Bootmagic](features/bootmagic)
* **Hardware**
* [How Keyboards Work](how_keyboards_work)
* [How A Keyboard Matrix Works](how_a_matrix_works)
diff --git a/docs/tap_hold.md b/docs/tap_hold.md
index 9b7f6552cbf..254d5de5ec1 100644
--- a/docs/tap_hold.md
+++ b/docs/tap_hold.md
@@ -425,6 +425,169 @@ uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t *record) {
If `QUICK_TAP_TERM` is set higher than `TAPPING_TERM`, it will default to `TAPPING_TERM`.
:::
+## Chordal Hold
+
+Chordal Hold is intended to be used together with either Permissive Hold or Hold
+On Other Key Press. Chordal Hold is enabled by adding to your `config.h`:
+
+```c
+#define CHORDAL_HOLD
+```
+
+Chordal Hold implements, by default, an "opposite hands" rule. Suppose a
+tap-hold key is pressed and then, before the tapping term, another key is
+pressed. With Chordal Hold, the tap-hold key is settled as tapped if the two
+keys are on the same hand.
+
+Otherwise, if the keys are on opposite hands, Chordal Hold introduces no new
+behavior. Hold On Other Key Press or Permissive Hold may be used together with
+Chordal Hold to configure the behavior in the opposite hands case. With Hold On
+Other Key Press, an opposite hands chord is settled immediately as held. Or with
+Permissive Hold, an opposite hands chord is settled as held provided the other
+key is pressed and released (nested press) before releasing the tap-hold key.
+
+Chordal Hold may be useful to avoid accidental modifier activation with
+mod-taps, particularly in rolled keypresses when using home row mods.
+
+Notes:
+
+* Chordal Hold has no effect after the tapping term.
+
+* Combos are exempt from the opposite hands rule, since "handedness" is
+ ill-defined in this case. Even so, Chordal Hold's behavior involving combos
+ may be customized through the `get_chordal_hold()` callback.
+
+An example of a sequence that is affected by “chordal hold”:
+
+- `SFT_T(KC_A)` Down
+- `KC_C` Down
+- `KC_C` Up
+- `SFT_T(KC_A)` Up
+
+```
+ TAPPING_TERM
+ +---------------------------|--------+
+ | +----------------------+ | |
+ | | SFT_T(KC_A) | | |
+ | +----------------------+ | |
+ | +--------------+ | |
+ | | KC_C | | |
+ | +--------------+ | |
+ +---------------------------|--------+
+```
+
+If the two keys are on the same hand, then this will produce `ac` with
+`SFT_T(KC_A)` settled as tapped the moment that `KC_C` is pressed.
+
+If the two keys are on opposite hands and the `HOLD_ON_OTHER_KEY_PRESS` option
+enabled, this will produce `C` with `SFT_T(KC_A)` settled as held when `KC_C` is
+pressed.
+
+Or if the two keys are on opposite hands and the `PERMISSIVE_HOLD` option is
+enabled, this will produce `C` with `SFT_T(KC_A)` settled as held when that
+`KC_C` is released.
+
+### Chordal Hold Handedness
+
+Determining whether keys are on the same or opposite hands involves defining the
+"handedness" of each key position. By default, if nothing is specified,
+handedness is guessed based on keyboard geometry.
+
+Handedness may be specified with `chordal_hold_layout`. In keymap.c, define
+`chordal_hold_layout` in the following form:
+
+```c
+const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM =
+ LAYOUT(
+ 'L', 'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R', 'R',
+ 'L', 'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R', 'R',
+ 'L', 'L', 'L', 'L', 'L', 'L', 'R', 'R', 'R', 'R', 'R', 'R',
+ 'L', 'L', 'L', 'R', 'R', 'R'
+ );
+```
+
+Use the same `LAYOUT` macro as used to define your keymap layers. Each entry is
+a character indicating the handedness of one key, either `'L'` for left, `'R'`
+for right, or `'*'` to exempt keys from the "opposite hands rule." A key with
+`'*'` handedness may settle as held in chords with any other key. This could be
+used perhaps on thumb keys or other places where you want to allow same-hand
+chords.
+
+Keyboard makers may specify handedness in keyboard.json. Under `"layouts"`,
+specify the handedness of a key by adding a `"hand"` field with a value of
+either `"L"`, `"R"`, or `"*"`. Note that if `"layouts"` contains multiple
+layouts, only the first one is read. For example:
+
+```json
+{"matrix": [5, 6], "x": 0, "y": 5.5, "w": 1.25, "hand", "*"},
+```
+
+Alternatively, handedness may be defined functionally with
+`chordal_hold_handedness()`. For example, in keymap.c define:
+
+```c
+char chordal_hold_handedness(keypos_t key) {
+ if (key.col == 0 || key.col == MATRIX_COLS - 1) {
+ return '*'; // Exempt the outer columns.
+ }
+ // On split keyboards, typically, the first half of the rows are on the
+ // left, and the other half are on the right.
+ return key.row < MATRIX_ROWS / 2 ? 'L' : 'R';
+}
+```
+
+Given the matrix position of a key, the function should return `'L'`, `'R'`, or
+`'*'`. Adapt the logic in this function according to the keyboard's matrix.
+
+::: warning
+Note the matrix may have irregularities around larger keys, around the edges of
+the board, and around thumb clusters. You may find it helpful to use [this
+debugging example](faq_debug#which-matrix-position-is-this-keypress) to
+correspond physical keys to matrix positions.
+:::
+
+::: tip If you define both `chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS]` and
+`chordal_hold_handedness(keypos_t key)` for handedness, the latter takes
+precedence.
+:::
+
+
+### Per-chord customization
+
+Beyond the per-key configuration possible through handedness, Chordal Hold may
+be configured at a *per-chord* granularity for detailed tuning. In keymap.c,
+define `get_chordal_hold()`. Returning `true` allows the chord to be held, while
+returning `false` settles as tapped.
+
+For example:
+
+```c
+bool get_chordal_hold(uint16_t tap_hold_keycode, keyrecord_t* tap_hold_record,
+ uint16_t other_keycode, keyrecord_t* other_record) {
+ // Exceptionally allow some one-handed chords for hotkeys.
+ switch (tap_hold_keycode) {
+ case LCTL_T(KC_Z):
+ if (other_keycode == KC_C || other_keycode == KC_V) {
+ return true;
+ }
+ break;
+
+ case RCTL_T(KC_SLSH):
+ if (other_keycode == KC_N) {
+ return true;
+ }
+ break;
+ }
+ // Otherwise defer to the opposite hands rule.
+ return get_chordal_hold_default(tap_hold_record, other_record);
+}
+```
+
+As shown in the last line above, you may use
+`get_chordal_hold_default(tap_hold_record, other_record)` to get the default tap
+vs. hold decision according to the opposite hands rule.
+
+
## Retro Tapping
To enable `retro tapping`, add the following to your `config.h`:
diff --git a/drivers/eeprom/eeprom_custom.c-template b/drivers/eeprom/eeprom_custom.c-template
index 5f915f7fab5..fb1f0a3a974 100644
--- a/drivers/eeprom/eeprom_custom.c-template
+++ b/drivers/eeprom/eeprom_custom.c-template
@@ -23,6 +23,17 @@ void eeprom_driver_init(void) {
/* Any initialisation code */
}
+void eeprom_driver_format(bool erase) {
+ /* If erase=false, then only do the absolute minimum initialisation necessary
+ to make sure that the eeprom driver is usable. It doesn't need to guarantee
+ that the content of the eeprom is reset to any particular value. For many
+ eeprom drivers this may be a no-op.
+
+ If erase=true, then in addition to making sure the eeprom driver is in a
+ usable state, also make sure that it is erased.
+ */
+}
+
void eeprom_driver_erase(void) {
/* Wipe out the EEPROM, setting values to zero */
}
diff --git a/drivers/eeprom/eeprom_driver.c b/drivers/eeprom/eeprom_driver.c
index 885cf219811..1f3f96f0068 100644
--- a/drivers/eeprom/eeprom_driver.c
+++ b/drivers/eeprom/eeprom_driver.c
@@ -77,3 +77,9 @@ void eeprom_update_dword(uint32_t *addr, uint32_t value) {
eeprom_write_dword(addr, value);
}
}
+
+void eeprom_driver_format(bool erase) __attribute__((weak));
+void eeprom_driver_format(bool erase) {
+ (void)erase; /* The default implementation assumes that the eeprom must be erased in order to be usable. */
+ eeprom_driver_erase();
+}
diff --git a/drivers/eeprom/eeprom_driver.h b/drivers/eeprom/eeprom_driver.h
index 74592bc8f05..0c55c497d46 100644
--- a/drivers/eeprom/eeprom_driver.h
+++ b/drivers/eeprom/eeprom_driver.h
@@ -16,7 +16,9 @@
#pragma once
+#include
#include "eeprom.h"
void eeprom_driver_init(void);
+void eeprom_driver_format(bool erase);
void eeprom_driver_erase(void);
diff --git a/drivers/eeprom/eeprom_i2c.c b/drivers/eeprom/eeprom_i2c.c
index 0d3d5ccbe50..d29aff5f85f 100644
--- a/drivers/eeprom/eeprom_i2c.c
+++ b/drivers/eeprom/eeprom_i2c.c
@@ -36,6 +36,7 @@
#include "wait.h"
#include "i2c_master.h"
#include "eeprom.h"
+#include "eeprom_driver.h"
#include "eeprom_i2c.h"
// #define DEBUG_EEPROM_OUTPUT
@@ -62,6 +63,13 @@ void eeprom_driver_init(void) {
#endif
}
+void eeprom_driver_format(bool erase) {
+ /* i2c eeproms do not need to be formatted before use */
+ if (erase) {
+ eeprom_driver_erase();
+ }
+}
+
void eeprom_driver_erase(void) {
#if defined(CONSOLE_ENABLE) && defined(DEBUG_EEPROM_OUTPUT)
uint32_t start = timer_read32();
diff --git a/drivers/eeprom/eeprom_spi.c b/drivers/eeprom/eeprom_spi.c
index 51ba25deced..14f0afa68be 100644
--- a/drivers/eeprom/eeprom_spi.c
+++ b/drivers/eeprom/eeprom_spi.c
@@ -35,6 +35,7 @@
#include "timer.h"
#include "spi_master.h"
#include "eeprom.h"
+#include "eeprom_driver.h"
#include "eeprom_spi.h"
#define CMD_WREN 6
@@ -92,6 +93,13 @@ void eeprom_driver_init(void) {
spi_init();
}
+void eeprom_driver_format(bool erase) {
+ /* spi eeproms do not need to be formatted before use */
+ if (erase) {
+ eeprom_driver_erase();
+ }
+}
+
void eeprom_driver_erase(void) {
#if defined(CONSOLE_ENABLE) && defined(DEBUG_EEPROM_OUTPUT)
uint32_t start = timer_read32();
diff --git a/drivers/eeprom/eeprom_transient.c b/drivers/eeprom/eeprom_transient.c
index 9dc4289c271..d9f5db98532 100644
--- a/drivers/eeprom/eeprom_transient.c
+++ b/drivers/eeprom/eeprom_transient.c
@@ -30,8 +30,13 @@ size_t clamp_length(intptr_t offset, size_t len) {
return len;
}
-void eeprom_driver_init(void) {
- eeprom_driver_erase();
+void eeprom_driver_init(void) {}
+
+void eeprom_driver_format(bool erase) {
+ /* The transient eeprom driver doesn't necessarily need to be formatted before use, and it always starts up filled with zeros, due to placement in the .bss section */
+ if (erase) {
+ eeprom_driver_erase();
+ }
}
void eeprom_driver_erase(void) {
diff --git a/drivers/eeprom/eeprom_wear_leveling.c b/drivers/eeprom/eeprom_wear_leveling.c
index bd77eef35cc..24ca6c3c6b3 100644
--- a/drivers/eeprom/eeprom_wear_leveling.c
+++ b/drivers/eeprom/eeprom_wear_leveling.c
@@ -10,6 +10,12 @@ void eeprom_driver_init(void) {
wear_leveling_init();
}
+void eeprom_driver_format(bool erase) {
+ /* wear leveling requires the write log data structures to be erased before use. */
+ (void)erase;
+ eeprom_driver_erase();
+}
+
void eeprom_driver_erase(void) {
wear_leveling_erase();
}
diff --git a/drivers/encoder/encoder_quadrature.c b/drivers/encoder/encoder_quadrature.c
index cd589bf1e20..086f500391c 100644
--- a/drivers/encoder/encoder_quadrature.c
+++ b/drivers/encoder/encoder_quadrature.c
@@ -22,7 +22,7 @@
#endif
#undef ENCODER_DEFAULT_PIN_API_IMPL
-#if defined(ENCODERS_PAD_A) && defined(ENCODERS_PAD_B)
+#if defined(ENCODER_A_PINS) && defined(ENCODER_B_PINS)
// Inform the quadrature driver that it needs to implement pin init/read functions
# define ENCODER_DEFAULT_PIN_API_IMPL
#endif
@@ -34,8 +34,8 @@ __attribute__((weak)) uint8_t encoder_quadrature_read_pin(uint8_t index, bool pa
#ifdef ENCODER_DEFAULT_PIN_API_IMPL
-static pin_t encoders_pad_a[NUM_ENCODERS_MAX_PER_SIDE] = ENCODERS_PAD_A;
-static pin_t encoders_pad_b[NUM_ENCODERS_MAX_PER_SIDE] = ENCODERS_PAD_B;
+static pin_t encoders_pad_a[NUM_ENCODERS_MAX_PER_SIDE] = ENCODER_A_PINS;
+static pin_t encoders_pad_b[NUM_ENCODERS_MAX_PER_SIDE] = ENCODER_B_PINS;
__attribute__((weak)) void encoder_wait_pullup_charge(void) {
wait_us(100);
@@ -123,25 +123,25 @@ void encoder_driver_init(void) {
// here, but it's the simplest solution.
memset(encoder_state, 0, sizeof(encoder_state));
memset(encoder_pulses, 0, sizeof(encoder_pulses));
- const pin_t encoders_pad_a_left[] = ENCODERS_PAD_A;
- const pin_t encoders_pad_b_left[] = ENCODERS_PAD_B;
+ const pin_t encoders_pad_a_left[] = ENCODER_A_PINS;
+ const pin_t encoders_pad_b_left[] = ENCODER_B_PINS;
for (uint8_t i = 0; i < thisCount; i++) {
encoders_pad_a[i] = encoders_pad_a_left[i];
encoders_pad_b[i] = encoders_pad_b_left[i];
}
#endif
-#if defined(SPLIT_KEYBOARD) && defined(ENCODERS_PAD_A_RIGHT) && defined(ENCODERS_PAD_B_RIGHT)
+#if defined(SPLIT_KEYBOARD) && defined(ENCODER_A_PINS_RIGHT) && defined(ENCODER_B_PINS_RIGHT)
// Re-initialise the pads if it's the right-hand side
if (!isLeftHand) {
- const pin_t encoders_pad_a_right[] = ENCODERS_PAD_A_RIGHT;
- const pin_t encoders_pad_b_right[] = ENCODERS_PAD_B_RIGHT;
+ const pin_t encoders_pad_a_right[] = ENCODER_A_PINS_RIGHT;
+ const pin_t encoders_pad_b_right[] = ENCODER_B_PINS_RIGHT;
for (uint8_t i = 0; i < thisCount; i++) {
encoders_pad_a[i] = encoders_pad_a_right[i];
encoders_pad_b[i] = encoders_pad_b_right[i];
}
}
-#endif // defined(SPLIT_KEYBOARD) && defined(ENCODERS_PAD_A_RIGHT) && defined(ENCODERS_PAD_B_RIGHT)
+#endif // defined(SPLIT_KEYBOARD) && defined(ENCODER_A_PINS_RIGHT) && defined(ENCODER_B_PINS_RIGHT)
// Encoder resolutions is defined differently in config.h, so concatenate
#if defined(SPLIT_KEYBOARD) && defined(ENCODER_RESOLUTIONS)
diff --git a/drivers/flash/flash.h b/drivers/flash/flash.h
new file mode 100644
index 00000000000..4d624751398
--- /dev/null
+++ b/drivers/flash/flash.h
@@ -0,0 +1,126 @@
+// Copyright 2024 Nick Brassel (@tzarc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include
+#include
+#include
+
+/**
+ * @brief The status of a flash operation.
+ */
+enum {
+ FLASH_STATUS_SUCCESS = 0, //< The operation completed successfully.
+ FLASH_STATUS_ERROR = -1, //< An error occurred during the operation.
+ FLASH_STATUS_TIMEOUT = -2, //< The operation timed out.
+ FLASH_STATUS_BAD_ADDRESS = -3, //< The address is out of bounds.
+ FLASH_STATUS_BUSY = -4, //< The flash is busy.
+};
+
+/**
+ * @brief The status of a flash operation.
+ */
+typedef int16_t flash_status_t;
+
+/**
+ * @brief Initializes the flash driver.
+ *
+ * This function initializes the flash driver and prepares it for use.
+ * It should be called before any other flash-related functions are used.
+ */
+void flash_init(void);
+
+/**
+ * @brief Checks if the flash is busy.
+ *
+ * This function checks if the flash is currently busy with an operation.
+ *
+ * @return FLASH_STATUS_SUCCESS if the flash is not busy, FLASH_STATUS_BUSY if the flash is busy, or FLASH_STATUS_ERROR if an error occurred.
+ */
+flash_status_t flash_is_busy(void);
+
+/**
+ * @brief Initiates a chip erase operation.
+ *
+ * This function does not wait for the flash to become ready.
+ *
+ * @return FLASH_STATUS_SUCCESS if the erase command was successfully sent, FLASH_STATUS_TIMEOUT if the flash is busy, or FLASH_STATUS_ERROR if an error occurred.
+ */
+flash_status_t flash_begin_erase_chip(void);
+
+/**
+ * @brief Waits for the chip erase operation to complete.
+ *
+ * This function waits for the chip erase operation to complete.
+ *
+ * @return FLASH_STATUS_SUCCESS if the chip erase operation completed successfully, FLASH_STATUS_TIMEOUT if the flash was still busy, or FLASH_STATUS_ERROR if an error occurred.
+ */
+flash_status_t flash_wait_erase_chip(void);
+
+/**
+ * @brief Erases the entire flash memory chip.
+ *
+ * This function initiates an erase operation to erase the entire flash memory chip.
+ * It waits for the operation to complete.
+ *
+ * @return FLASH_STATUS_SUCCESS if the erase was successfully executed, FLASH_STATUS_TIMEOUT if the flash is busy, or FLASH_STATUS_ERROR if an error occurred.
+ */
+flash_status_t flash_erase_chip(void);
+
+/**
+ * @brief Erases a block of flash memory.
+ *
+ * This function initiates an erase operation to erase a block of flash memory.
+ * It waits for the operation to complete.
+ *
+ * @param addr The address of the block to erase.
+ *
+ * @return FLASH_STATUS_SUCCESS if the erase was successfully executed, FLASH_STATUS_TIMEOUT if the flash is busy, or FLASH_STATUS_ERROR if an error occurred.
+ */
+flash_status_t flash_erase_block(uint32_t addr);
+
+/**
+ * @brief Erases a sector of flash memory.
+ *
+ * This function initiates an erase operation to erase a sector of flash memory.
+ * It waits for the operation to complete.
+ *
+ * @param addr The address of the sector to erase.
+ *
+ * @return FLASH_STATUS_SUCCESS if the erase was successfully executed, FLASH_STATUS_TIMEOUT if the flash is busy, or FLASH_STATUS_ERROR if an error occurred.
+ */
+flash_status_t flash_erase_sector(uint32_t addr);
+
+/**
+ * @brief Reads a range of flash memory.
+ *
+ * This function reads a range of flash memory into a buffer.
+ *
+ * @param addr The address of the range to read.
+ * @param buf A pointer to the buffer to read the range into.
+ * @param len The length of the range to read.
+ *
+ * @return FLASH_STATUS_SUCCESS if the range was successfully read, FLASH_STATUS_BAD_ADDRESS if the address is out of bounds, FLASH_STATUS_TIMEOUT if the flash is busy, or FLASH_STATUS_ERROR if an error occurred.
+ */
+flash_status_t flash_read_range(uint32_t addr, void *buf, size_t len);
+
+/**
+ * @brief Writes a range of flash memory.
+ *
+ * This function writes a range of flash memory from a buffer.
+ *
+ * @param addr The address of the range to write.
+ * @param buf A pointer to the buffer to write to the range.
+ * @param len The length of the range to write.
+ *
+ * @return FLASH_STATUS_SUCCESS if the range was successfully written, FLASH_STATUS_BAD_ADDRESS if the address is out of bounds, FLASH_STATUS_TIMEOUT if the flash is busy, or FLASH_STATUS_ERROR if an error occurred.
+ */
+flash_status_t flash_write_range(uint32_t addr, const void *buf, size_t len);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/drivers/flash/flash_spi.c b/drivers/flash/flash_spi.c
index 0c0eb8a99e5..7226773ff41 100644
--- a/drivers/flash/flash_spi.c
+++ b/drivers/flash/flash_spi.c
@@ -1,22 +1,10 @@
-/*
-Copyright (C) 2021 Westberry Technology (ChangZhou) Corp., Ltd
-
-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 .
-*/
+// Copyright 2021 Westberry Technology (ChangZhou) Corp., Ltd
+// Copyright 2024 Nick Brassel (@tzarc)
+// SPDX-License-Identifier: GPL-2.0-or-later
#include
+#include "flash.h"
#include "util.h"
#include "wait.h"
#include "debug.h"
@@ -69,33 +57,43 @@ static bool spi_flash_start(void) {
return spi_start(EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN, EXTERNAL_FLASH_SPI_LSBFIRST, EXTERNAL_FLASH_SPI_MODE, EXTERNAL_FLASH_SPI_CLOCK_DIVISOR);
}
-static flash_status_t spi_flash_wait_while_busy(void) {
- uint32_t deadline = timer_read32() + EXTERNAL_FLASH_SPI_TIMEOUT;
+static flash_status_t spi_flash_wait_while_busy_multiplier(int multiplier) {
flash_status_t response = FLASH_STATUS_SUCCESS;
- uint8_t retval;
-
+ uint32_t deadline = timer_read32() + ((EXTERNAL_FLASH_SPI_TIMEOUT)*multiplier);
do {
- bool res = spi_flash_start();
- if (!res) {
- dprint("Failed to start SPI! [spi flash wait while busy]\n");
- return FLASH_STATUS_ERROR;
- }
-
- spi_write(FLASH_CMD_RDSR);
-
- retval = (uint8_t)spi_read();
-
- spi_stop();
-
if (timer_read32() >= deadline) {
response = FLASH_STATUS_TIMEOUT;
break;
}
- } while (retval & FLASH_FLAG_WIP);
+ response = flash_is_busy();
+ } while (response == FLASH_STATUS_BUSY);
return response;
}
+static flash_status_t spi_flash_wait_while_busy(void) {
+ return spi_flash_wait_while_busy_multiplier(1);
+}
+
+flash_status_t flash_is_busy(void) {
+ bool res = spi_flash_start();
+ if (!res) {
+ dprint("Failed to start SPI! [spi flash wait while busy]\n");
+ return FLASH_STATUS_ERROR;
+ }
+
+ spi_write(FLASH_CMD_RDSR);
+ spi_status_t status = spi_read();
+ spi_stop();
+
+ if (status < 0) {
+ return status;
+ }
+
+ uint8_t sr = (uint8_t)status;
+ return (sr & FLASH_FLAG_WIP) ? FLASH_STATUS_BUSY : FLASH_STATUS_SUCCESS;
+}
+
static flash_status_t spi_flash_write_enable(void) {
bool res = spi_flash_start();
if (!res) {
@@ -104,7 +102,6 @@ static flash_status_t spi_flash_write_enable(void) {
}
spi_write(FLASH_CMD_WREN);
-
spi_stop();
return FLASH_STATUS_SUCCESS;
@@ -118,7 +115,6 @@ static flash_status_t spi_flash_write_disable(void) {
}
spi_write(FLASH_CMD_WRDI);
-
spi_stop();
return FLASH_STATUS_SUCCESS;
@@ -166,7 +162,7 @@ void flash_init(void) {
spi_init();
}
-flash_status_t flash_erase_chip(void) {
+flash_status_t flash_begin_erase_chip(void) {
flash_status_t response = FLASH_STATUS_SUCCESS;
/* Wait for the write-in-progress bit to be cleared. */
@@ -191,17 +187,28 @@ flash_status_t flash_erase_chip(void) {
}
spi_write(FLASH_CMD_CE);
spi_stop();
+ return FLASH_STATUS_SUCCESS;
+}
- /* Wait for the write-in-progress bit to be cleared.*/
- response = spi_flash_wait_while_busy();
+flash_status_t flash_wait_erase_chip(void) {
+ flash_status_t response = spi_flash_wait_while_busy_multiplier(250); // Chip erase can take a long time, wait 250x the usual timeout
if (response != FLASH_STATUS_SUCCESS) {
dprint("Failed to check WIP flag! [spi flash erase chip]\n");
return response;
}
-
return response;
}
+flash_status_t flash_erase_chip(void) {
+ flash_status_t response = flash_begin_erase_chip();
+ if (response != FLASH_STATUS_SUCCESS) {
+ dprint("Failed to begin erase chip! [spi flash erase chip]\n");
+ return response;
+ }
+
+ return flash_wait_erase_chip();
+}
+
flash_status_t flash_erase_sector(uint32_t addr) {
flash_status_t response = FLASH_STATUS_SUCCESS;
@@ -282,7 +289,7 @@ flash_status_t flash_erase_block(uint32_t addr) {
return response;
}
-flash_status_t flash_read_block(uint32_t addr, void *buf, size_t len) {
+flash_status_t flash_read_range(uint32_t addr, void *buf, size_t len) {
flash_status_t response = FLASH_STATUS_SUCCESS;
uint8_t * read_buf = (uint8_t *)buf;
@@ -313,7 +320,7 @@ flash_status_t flash_read_block(uint32_t addr, void *buf, size_t len) {
return response;
}
-flash_status_t flash_write_block(uint32_t addr, const void *buf, size_t len) {
+flash_status_t flash_write_range(uint32_t addr, const void *buf, size_t len) {
flash_status_t response = FLASH_STATUS_SUCCESS;
uint8_t * write_buf = (uint8_t *)buf;
diff --git a/drivers/flash/flash_spi.h b/drivers/flash/flash_spi.h
index 87460fc210e..7a979daf0f7 100644
--- a/drivers/flash/flash_spi.h
+++ b/drivers/flash/flash_spi.h
@@ -17,6 +17,8 @@ along with this program. If not, see .
#pragma once
+#include "flash.h"
+
/* All the following default configurations are based on MX25L4006E Nor FLASH. */
/*
@@ -105,32 +107,3 @@ along with this program. If not, see .
The page count of the FLASH, calculated by total FLASH size and page size.
*/
#define EXTERNAL_FLASH_PAGE_COUNT ((EXTERNAL_FLASH_SIZE) / (EXTERNAL_FLASH_PAGE_SIZE))
-
-typedef int16_t flash_status_t;
-
-#define FLASH_STATUS_SUCCESS (0)
-#define FLASH_STATUS_ERROR (-1)
-#define FLASH_STATUS_TIMEOUT (-2)
-#define FLASH_STATUS_BAD_ADDRESS (-3)
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include
-
-void flash_init(void);
-
-flash_status_t flash_erase_chip(void);
-
-flash_status_t flash_erase_block(uint32_t addr);
-
-flash_status_t flash_erase_sector(uint32_t addr);
-
-flash_status_t flash_read_block(uint32_t addr, void *buf, size_t len);
-
-flash_status_t flash_write_block(uint32_t addr, const void *buf, size_t len);
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/drivers/haptic/solenoid.c b/drivers/haptic/solenoid.c
index 346b88bbc47..ed2a886854e 100644
--- a/drivers/haptic/solenoid.c
+++ b/drivers/haptic/solenoid.c
@@ -158,7 +158,7 @@ void solenoid_setup(void) {
#endif
gpio_write_pin(solenoid_pads[i], !solenoid_active_state[i]);
gpio_set_pin_output(solenoid_pads[i]);
- if ((!HAPTIC_OFF_IN_LOW_POWER) || (usb_device_state == USB_DEVICE_STATE_CONFIGURED)) {
+ if ((!HAPTIC_OFF_IN_LOW_POWER) || (usb_device_state_get_configure_state() == USB_DEVICE_STATE_CONFIGURED)) {
solenoid_fire(i);
}
}
diff --git a/drivers/i2c_master.h b/drivers/i2c_master.h
new file mode 100644
index 00000000000..dbe1cd42faa
--- /dev/null
+++ b/drivers/i2c_master.h
@@ -0,0 +1,141 @@
+// Copyright 2025 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include
+
+/**
+ * \file
+ *
+ * \defgroup i2c_master I2C Master API
+ *
+ * \brief API to communicate with I2C devices.
+ * \{
+ */
+
+typedef int16_t i2c_status_t;
+
+#define I2C_STATUS_SUCCESS (0)
+#define I2C_STATUS_ERROR (-1)
+#define I2C_STATUS_TIMEOUT (-2)
+
+#define I2C_TIMEOUT_IMMEDIATE (0)
+#define I2C_TIMEOUT_INFINITE (0xFFFF)
+
+/**
+ * \brief Initialize the I2C driver. This function must be called only once, before any of the below functions can be called.
+ *
+ * This function is weakly defined, meaning it can be overridden if necessary for your particular use case.
+ */
+void i2c_init(void);
+
+/**
+ * \brief Send multiple bytes to the selected I2C device.
+ *
+ * \param address The 7-bit I2C address of the device.
+ * \param data A pointer to the data to transmit.
+ * \param length The number of bytes to write. Take care not to overrun the length of `data`.
+ * \param timeout The time in milliseconds to wait for a response from the target device.
+ *
+ * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`.
+ */
+i2c_status_t i2c_transmit(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout);
+
+#if defined(__AVR__) || defined(__DOXYGEN__)
+/**
+ * \brief Send multiple bytes from PROGMEM to the selected I2C device.
+ *
+ * On ARM devices, this function is simply an alias for i2c_transmit(address, data, length, timeout).
+ *
+ * \param address The 7-bit I2C address of the device.
+ * \param data A pointer to the data to transmit.
+ * \param length The number of bytes to write. Take care not to overrun the length of `data`.
+ * \param timeout The time in milliseconds to wait for a response from the target device.
+ *
+ * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`.
+ */
+i2c_status_t i2c_transmit_P(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout);
+#else
+# define i2c_transmit_P(address, data, length, timeout) i2c_transmit(address, data, length, timeout)
+#endif
+
+/**
+ * \brief Receive multiple bytes from the selected I2C device.
+ *
+ * \param address The 7-bit I2C address of the device.
+ * \param data A pointer to a buffer to read into.
+ * \param length The number of bytes to read. Take care not to overrun the length of `data`.
+ * \param timeout The time in milliseconds to wait for a response from the target device.
+ *
+ * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`.
+ */
+i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout);
+
+/**
+ * \brief Write to a register with an 8-bit address on the I2C device.
+ *
+ * \param devaddr The 7-bit I2C address of the device.
+ * \param regaddr The register address to write to.
+ * \param data A pointer to the data to transmit.
+ * \param length The number of bytes to write. Take care not to overrun the length of `data`.
+ * \param timeout The time in milliseconds to wait for a response from the target device.
+ *
+ * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`.
+ */
+i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout);
+
+/**
+ * \brief Write to a register with a 16-bit address (big endian) on the I2C device.
+ *
+ * \param devaddr The 7-bit I2C address of the device.
+ * \param regaddr The register address to write to.
+ * \param data A pointer to the data to transmit.
+ * \param length The number of bytes to write. Take care not to overrun the length of `data`.
+ * \param timeout The time in milliseconds to wait for a response from the target device.
+ *
+ * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`.
+ */
+i2c_status_t i2c_write_register16(uint8_t devaddr, uint16_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout);
+
+/**
+ * \brief Read from a register with an 8-bit address on the I2C device.
+ *
+ * \param devaddr The 7-bit I2C address of the device.
+ * \param regaddr The register address to read from.
+ * \param data A pointer to a buffer to read into.
+ * \param length The number of bytes to read. Take care not to overrun the length of `data`.
+ * \param timeout The time in milliseconds to wait for a response from the target device.
+ *
+ * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`.
+ */
+i2c_status_t i2c_read_register(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout);
+
+/**
+ * \brief Read from a register with a 16-bit address (big endian) on the I2C device.
+ *
+ * \param devaddr The 7-bit I2C address of the device.
+ * \param regaddr The register address to read from.
+ * \param data A pointer to a buffer to read into.
+ * \param length The number of bytes to read. Take care not to overrun the length of `data`.
+ * \param timeout The time in milliseconds to wait for a response from the target device.
+ *
+ * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`.
+ */
+i2c_status_t i2c_read_register16(uint8_t devaddr, uint16_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout);
+
+/**
+ * \brief Ping the I2C bus for a specific address.
+ *
+ * On ChibiOS a "best effort" attempt is made by reading a single byte from register 0 at the given address. This should generally work except for I2C devices that do not not respond to a register 0 read request, which will result in a false negative result (unsuccessful response to ping attempt).
+ *
+ * This function is weakly defined, meaning it can be overridden if necessary for your particular use case.
+ *
+ * \param address The 7-bit I2C address of the device.
+ * \param timeout The time in milliseconds to wait for a response from the target device.
+ *
+ * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`.
+ */
+i2c_status_t i2c_ping_address(uint8_t address, uint16_t timeout);
+
+/** \} */
diff --git a/drivers/lcd/st7565.c b/drivers/lcd/st7565.c
index 4fce40edbe0..cf71c5e5a33 100644
--- a/drivers/lcd/st7565.c
+++ b/drivers/lcd/st7565.c
@@ -187,6 +187,8 @@ void st7565_render(void) {
st7565_send_data(&st7565_buffer[ST7565_BLOCK_SIZE * update_start], ST7565_BLOCK_SIZE);
+ spi_stop();
+
// Turn on display if it is off
st7565_on();
diff --git a/drivers/led/apa102.c b/drivers/led/apa102.c
index b171b07b12c..6a131533743 100644
--- a/drivers/led/apa102.c
+++ b/drivers/led/apa102.c
@@ -24,7 +24,7 @@
# elif defined(PROTOCOL_CHIBIOS)
# include "hal.h"
# include "chibios_config.h"
-# if defined(STM32F0XX) || defined(STM32F1XX) || defined(STM32F3XX) || defined(STM32F4XX) || defined(STM32L0XX) || defined(GD32VF103) || defined(MCU_RP)
+# if defined(STM32F0XX) || defined(STM32F1XX) || defined(STM32F3XX) || defined(STM32F4XX) || defined(STM32L0XX) || defined(AT32F415) || defined(GD32VF103) || defined(MCU_RP)
# define APA102_NOPS (100 / (1000000000L / (CPU_CLOCK / 4))) // This calculates how many loops of 4 nops to run to delay 100 ns
# else
# error APA102_NOPS configuration required
@@ -53,6 +53,7 @@
io_wait; \
} while (0)
+rgb_t apa102_leds[APA102_LED_COUNT];
uint8_t apa102_led_brightness = APA102_DEFAULT_BRIGHTNESS;
static void apa102_send_byte(uint8_t byte) {
@@ -121,14 +122,24 @@ void apa102_init(void) {
gpio_set_pin_output(APA102_CI_PIN);
}
-void apa102_setleds(rgb_led_t *start_led, uint16_t num_leds) {
- rgb_led_t *end = start_led + num_leds;
+void apa102_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
+ apa102_leds[index].r = red;
+ apa102_leds[index].g = green;
+ apa102_leds[index].b = blue;
+}
- apa102_start_frame();
- for (rgb_led_t *led = start_led; led < end; led++) {
- apa102_send_frame(led->r, led->g, led->b, apa102_led_brightness);
+void apa102_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
+ for (uint16_t i = 0; i < APA102_LED_COUNT; i++) {
+ apa102_set_color(i, red, green, blue);
}
- apa102_end_frame(num_leds);
+}
+
+void apa102_flush(void) {
+ apa102_start_frame();
+ for (uint8_t i = 0; i < APA102_LED_COUNT; i++) {
+ apa102_send_frame(apa102_leds[i].r, apa102_leds[i].g, apa102_leds[i].b, apa102_led_brightness);
+ }
+ apa102_end_frame(APA102_LED_COUNT);
}
void apa102_set_brightness(uint8_t brightness) {
diff --git a/drivers/led/apa102.h b/drivers/led/apa102.h
index 5e2f78658be..6fa3521a3a5 100644
--- a/drivers/led/apa102.h
+++ b/drivers/led/apa102.h
@@ -32,17 +32,8 @@
#define APA102_MAX_BRIGHTNESS 31
void apa102_init(void);
-
-/* User Interface
- *
- * Input:
- * start_led: An array of GRB data describing the LED colors
- * num_leds: The number of LEDs to write
- *
- * The functions will perform the following actions:
- * - Set the data-out pin as output
- * - Send out the LED data
- */
-void apa102_setleds(rgb_led_t *start_led, uint16_t num_leds);
+void apa102_set_color(int index, uint8_t red, uint8_t green, uint8_t blue);
+void apa102_set_color_all(uint8_t red, uint8_t green, uint8_t blue);
+void apa102_flush(void);
void apa102_set_brightness(uint8_t brightness);
diff --git a/drivers/led/aw20216s.h b/drivers/led/aw20216s.h
index b2c097125f9..79b980fcdb0 100644
--- a/drivers/led/aw20216s.h
+++ b/drivers/led/aw20216s.h
@@ -22,36 +22,6 @@
#include "gpio.h"
#include "util.h"
-// ======== DEPRECATED DEFINES - DO NOT USE ========
-#ifdef AW_SCALING_MAX
-# define AW20216S_SCALING_MAX AW_SCALING_MAX
-#endif
-#ifdef AW_GLOBAL_CURRENT_MAX
-# define AW20216S_GLOBAL_CURRENT_MAX AW_GLOBAL_CURRENT_MAX
-#endif
-#ifdef AW_SPI_MODE
-# define AW20216S_SPI_MODE AW_SPI_MODE
-#endif
-#ifdef AW_SPI_DIVISOR
-# define AW20216S_SPI_DIVISOR AW_SPI_DIVISOR
-#endif
-#ifdef DRIVER_1_CS
-# define AW20216S_CS_PIN_1 DRIVER_1_CS
-#endif
-#ifdef DRIVER_2_CS
-# define AW20216S_CS_PIN_2 DRIVER_2_CS
-#endif
-#ifdef DRIVER_1_EN
-# define AW20216S_EN_PIN DRIVER_1_EN
-#endif
-#ifdef AW20216S_EN_PIN_1
-# define AW20216S_EN_PIN AW20216S_EN_PIN_1
-#endif
-
-#define aw_led aw20216s_led_t
-#define g_aw_leds g_aw20216s_leds
-// ========
-
#define AW20216S_ID (0b1010 << 4)
#define AW20216S_WRITE 0
#define AW20216S_READ 1
@@ -328,233 +298,3 @@ void aw20216s_flush(void);
#define SW12_CS16 0xD5
#define SW12_CS17 0xD6
#define SW12_CS18 0xD7
-
-// DEPRECATED - DO NOT USE
-
-#define CS1_SW1 SW1_CS1
-#define CS2_SW1 SW1_CS2
-#define CS3_SW1 SW1_CS3
-#define CS4_SW1 SW1_CS4
-#define CS5_SW1 SW1_CS5
-#define CS6_SW1 SW1_CS6
-#define CS7_SW1 SW1_CS7
-#define CS8_SW1 SW1_CS8
-#define CS9_SW1 SW1_CS9
-#define CS10_SW1 SW1_CS10
-#define CS11_SW1 SW1_CS11
-#define CS12_SW1 SW1_CS12
-#define CS13_SW1 SW1_CS13
-#define CS14_SW1 SW1_CS14
-#define CS15_SW1 SW1_CS15
-#define CS16_SW1 SW1_CS16
-#define CS17_SW1 SW1_CS17
-#define CS18_SW1 SW1_CS18
-
-#define CS1_SW2 SW2_CS1
-#define CS2_SW2 SW2_CS2
-#define CS3_SW2 SW2_CS3
-#define CS4_SW2 SW2_CS4
-#define CS5_SW2 SW2_CS5
-#define CS6_SW2 SW2_CS6
-#define CS7_SW2 SW2_CS7
-#define CS8_SW2 SW2_CS8
-#define CS9_SW2 SW2_CS9
-#define CS10_SW2 SW2_CS10
-#define CS11_SW2 SW2_CS11
-#define CS12_SW2 SW2_CS12
-#define CS13_SW2 SW2_CS13
-#define CS14_SW2 SW2_CS14
-#define CS15_SW2 SW2_CS15
-#define CS16_SW2 SW2_CS16
-#define CS17_SW2 SW2_CS17
-#define CS18_SW2 SW2_CS18
-
-#define CS1_SW3 SW3_CS1
-#define CS2_SW3 SW3_CS2
-#define CS3_SW3 SW3_CS3
-#define CS4_SW3 SW3_CS4
-#define CS5_SW3 SW3_CS5
-#define CS6_SW3 SW3_CS6
-#define CS7_SW3 SW3_CS7
-#define CS8_SW3 SW3_CS8
-#define CS9_SW3 SW3_CS9
-#define CS10_SW3 SW3_CS10
-#define CS11_SW3 SW3_CS11
-#define CS12_SW3 SW3_CS12
-#define CS13_SW3 SW3_CS13
-#define CS14_SW3 SW3_CS14
-#define CS15_SW3 SW3_CS15
-#define CS16_SW3 SW3_CS16
-#define CS17_SW3 SW3_CS17
-#define CS18_SW3 SW3_CS18
-
-#define CS1_SW4 SW4_CS1
-#define CS2_SW4 SW4_CS2
-#define CS3_SW4 SW4_CS3
-#define CS4_SW4 SW4_CS4
-#define CS5_SW4 SW4_CS5
-#define CS6_SW4 SW4_CS6
-#define CS7_SW4 SW4_CS7
-#define CS8_SW4 SW4_CS8
-#define CS9_SW4 SW4_CS9
-#define CS10_SW4 SW4_CS10
-#define CS11_SW4 SW4_CS11
-#define CS12_SW4 SW4_CS12
-#define CS13_SW4 SW4_CS13
-#define CS14_SW4 SW4_CS14
-#define CS15_SW4 SW4_CS15
-#define CS16_SW4 SW4_CS16
-#define CS17_SW4 SW4_CS17
-#define CS18_SW4 SW4_CS18
-
-#define CS1_SW5 SW5_CS1
-#define CS2_SW5 SW5_CS2
-#define CS3_SW5 SW5_CS3
-#define CS4_SW5 SW5_CS4
-#define CS5_SW5 SW5_CS5
-#define CS6_SW5 SW5_CS6
-#define CS7_SW5 SW5_CS7
-#define CS8_SW5 SW5_CS8
-#define CS9_SW5 SW5_CS9
-#define CS10_SW5 SW5_CS10
-#define CS11_SW5 SW5_CS11
-#define CS12_SW5 SW5_CS12
-#define CS13_SW5 SW5_CS13
-#define CS14_SW5 SW5_CS14
-#define CS15_SW5 SW5_CS15
-#define CS16_SW5 SW5_CS16
-#define CS17_SW5 SW5_CS17
-#define CS18_SW5 SW5_CS18
-
-#define CS1_SW6 SW6_CS1
-#define CS2_SW6 SW6_CS2
-#define CS3_SW6 SW6_CS3
-#define CS4_SW6 SW6_CS4
-#define CS5_SW6 SW6_CS5
-#define CS6_SW6 SW6_CS6
-#define CS7_SW6 SW6_CS7
-#define CS8_SW6 SW6_CS8
-#define CS9_SW6 SW6_CS9
-#define CS10_SW6 SW6_CS10
-#define CS11_SW6 SW6_CS11
-#define CS12_SW6 SW6_CS12
-#define CS13_SW6 SW6_CS13
-#define CS14_SW6 SW6_CS14
-#define CS15_SW6 SW6_CS15
-#define CS16_SW6 SW6_CS16
-#define CS17_SW6 SW6_CS17
-#define CS18_SW6 SW6_CS18
-
-#define CS1_SW7 SW7_CS1
-#define CS2_SW7 SW7_CS2
-#define CS3_SW7 SW7_CS3
-#define CS4_SW7 SW7_CS4
-#define CS5_SW7 SW7_CS5
-#define CS6_SW7 SW7_CS6
-#define CS7_SW7 SW7_CS7
-#define CS8_SW7 SW7_CS8
-#define CS9_SW7 SW7_CS9
-#define CS10_SW7 SW7_CS10
-#define CS11_SW7 SW7_CS11
-#define CS12_SW7 SW7_CS12
-#define CS13_SW7 SW7_CS13
-#define CS14_SW7 SW7_CS14
-#define CS15_SW7 SW7_CS15
-#define CS16_SW7 SW7_CS16
-#define CS17_SW7 SW7_CS17
-#define CS18_SW7 SW7_CS18
-
-#define CS1_SW8 SW8_CS1
-#define CS2_SW8 SW8_CS2
-#define CS3_SW8 SW8_CS3
-#define CS4_SW8 SW8_CS4
-#define CS5_SW8 SW8_CS5
-#define CS6_SW8 SW8_CS6
-#define CS7_SW8 SW8_CS7
-#define CS8_SW8 SW8_CS8
-#define CS9_SW8 SW8_CS9
-#define CS10_SW8 SW8_CS10
-#define CS11_SW8 SW8_CS11
-#define CS12_SW8 SW8_CS12
-#define CS13_SW8 SW8_CS13
-#define CS14_SW8 SW8_CS14
-#define CS15_SW8 SW8_CS15
-#define CS16_SW8 SW8_CS16
-#define CS17_SW8 SW8_CS17
-#define CS18_SW8 SW8_CS18
-
-#define CS1_SW9 SW9_CS1
-#define CS2_SW9 SW9_CS2
-#define CS3_SW9 SW9_CS3
-#define CS4_SW9 SW9_CS4
-#define CS5_SW9 SW9_CS5
-#define CS6_SW9 SW9_CS6
-#define CS7_SW9 SW9_CS7
-#define CS8_SW9 SW9_CS8
-#define CS9_SW9 SW9_CS9
-#define CS10_SW9 SW9_CS10
-#define CS11_SW9 SW9_CS11
-#define CS12_SW9 SW9_CS12
-#define CS13_SW9 SW9_CS13
-#define CS14_SW9 SW9_CS14
-#define CS15_SW9 SW9_CS15
-#define CS16_SW9 SW9_CS16
-#define CS17_SW9 SW9_CS17
-#define CS18_SW9 SW9_CS18
-
-#define CS1_SW10 SW10_CS1
-#define CS2_SW10 SW10_CS2
-#define CS3_SW10 SW10_CS3
-#define CS4_SW10 SW10_CS4
-#define CS5_SW10 SW10_CS5
-#define CS6_SW10 SW10_CS6
-#define CS7_SW10 SW10_CS7
-#define CS8_SW10 SW10_CS8
-#define CS9_SW10 SW10_CS9
-#define CS10_SW10 SW10_CS10
-#define CS11_SW10 SW10_CS11
-#define CS12_SW10 SW10_CS12
-#define CS13_SW10 SW10_CS13
-#define CS14_SW10 SW10_CS14
-#define CS15_SW10 SW10_CS15
-#define CS16_SW10 SW10_CS16
-#define CS17_SW10 SW10_CS17
-#define CS18_SW10 SW10_CS18
-
-#define CS1_SW11 SW11_CS1
-#define CS2_SW11 SW11_CS2
-#define CS3_SW11 SW11_CS3
-#define CS4_SW11 SW11_CS4
-#define CS5_SW11 SW11_CS5
-#define CS6_SW11 SW11_CS6
-#define CS7_SW11 SW11_CS7
-#define CS8_SW11 SW11_CS8
-#define CS9_SW11 SW11_CS9
-#define CS10_SW11 SW11_CS10
-#define CS11_SW11 SW11_CS11
-#define CS12_SW11 SW11_CS12
-#define CS13_SW11 SW11_CS13
-#define CS14_SW11 SW11_CS14
-#define CS15_SW11 SW11_CS15
-#define CS16_SW11 SW11_CS16
-#define CS17_SW11 SW11_CS17
-#define CS18_SW11 SW11_CS18
-
-#define CS1_SW12 SW12_CS1
-#define CS2_SW12 SW12_CS2
-#define CS3_SW12 SW12_CS3
-#define CS4_SW12 SW12_CS4
-#define CS5_SW12 SW12_CS5
-#define CS6_SW12 SW12_CS6
-#define CS7_SW12 SW12_CS7
-#define CS8_SW12 SW12_CS8
-#define CS9_SW12 SW12_CS9
-#define CS10_SW12 SW12_CS10
-#define CS11_SW12 SW12_CS11
-#define CS12_SW12 SW12_CS12
-#define CS13_SW12 SW12_CS13
-#define CS14_SW12 SW12_CS14
-#define CS15_SW12 SW12_CS15
-#define CS16_SW12 SW12_CS16
-#define CS17_SW12 SW12_CS17
-#define CS18_SW12 SW12_CS18
diff --git a/drivers/led/issi/is31fl3731-mono.h b/drivers/led/issi/is31fl3731-mono.h
index e6e107d309b..cc59b45cb32 100644
--- a/drivers/led/issi/is31fl3731-mono.h
+++ b/drivers/led/issi/is31fl3731-mono.h
@@ -23,33 +23,6 @@
#include "progmem.h"
#include "util.h"
-// ======== DEPRECATED DEFINES - DO NOT USE ========
-#ifdef LED_DRIVER_ADDR_1
-# define IS31FL3731_I2C_ADDRESS_1 LED_DRIVER_ADDR_1
-#endif
-#ifdef LED_DRIVER_ADDR_2
-# define IS31FL3731_I2C_ADDRESS_2 LED_DRIVER_ADDR_2
-#endif
-#ifdef LED_DRIVER_ADDR_3
-# define IS31FL3731_I2C_ADDRESS_3 LED_DRIVER_ADDR_3
-#endif
-#ifdef LED_DRIVER_ADDR_4
-# define IS31FL3731_I2C_ADDRESS_4 LED_DRIVER_ADDR_4
-#endif
-#ifdef ISSI_TIMEOUT
-# define IS31FL3731_I2C_TIMEOUT ISSI_TIMEOUT
-#endif
-#ifdef ISSI_PERSISTENCE
-# define IS31FL3731_I2C_PERSISTENCE ISSI_PERSISTENCE
-#endif
-#ifdef ISSI_3731_DEGHOST
-# define IS31FL3731_DEGHOST ISSI_3731_DEGHOST
-#endif
-
-#define is31_led is31fl3731_led_t
-#define g_is31_leds g_is31fl3731_leds
-// ========
-
#define IS31FL3731_REG_COMMAND 0xFD
#define IS31FL3731_COMMAND_FRAME_1 0x00
#define IS31FL3731_COMMAND_FRAME_2 0x01
diff --git a/drivers/led/issi/is31fl3731.h b/drivers/led/issi/is31fl3731.h
index dc229c876dc..947b7dc8e9a 100644
--- a/drivers/led/issi/is31fl3731.h
+++ b/drivers/led/issi/is31fl3731.h
@@ -22,33 +22,6 @@
#include "progmem.h"
#include "util.h"
-// ======== DEPRECATED DEFINES - DO NOT USE ========
-#ifdef DRIVER_ADDR_1
-# define IS31FL3731_I2C_ADDRESS_1 DRIVER_ADDR_1
-#endif
-#ifdef DRIVER_ADDR_2
-# define IS31FL3731_I2C_ADDRESS_2 DRIVER_ADDR_2
-#endif
-#ifdef DRIVER_ADDR_3
-# define IS31FL3731_I2C_ADDRESS_3 DRIVER_ADDR_3
-#endif
-#ifdef DRIVER_ADDR_4
-# define IS31FL3731_I2C_ADDRESS_4 DRIVER_ADDR_4
-#endif
-#ifdef ISSI_TIMEOUT
-# define IS31FL3731_I2C_TIMEOUT ISSI_TIMEOUT
-#endif
-#ifdef ISSI_PERSISTENCE
-# define IS31FL3731_I2C_PERSISTENCE ISSI_PERSISTENCE
-#endif
-#ifdef ISSI_3731_DEGHOST
-# define IS31FL3731_DEGHOST ISSI_3731_DEGHOST
-#endif
-
-#define is31_led is31fl3731_led_t
-#define g_is31_leds g_is31fl3731_leds
-// ========
-
#define IS31FL3731_REG_COMMAND 0xFD
#define IS31FL3731_COMMAND_FRAME_1 0x00
#define IS31FL3731_COMMAND_FRAME_2 0x01
diff --git a/drivers/led/issi/is31fl3733-mono.h b/drivers/led/issi/is31fl3733-mono.h
index 3786b2ed712..40d340a70d5 100644
--- a/drivers/led/issi/is31fl3733-mono.h
+++ b/drivers/led/issi/is31fl3733-mono.h
@@ -25,38 +25,6 @@
#include "progmem.h"
#include "util.h"
-// ======== DEPRECATED DEFINES - DO NOT USE ========
-#ifdef ISSI_TIMEOUT
-# define IS31FL3733_I2C_TIMEOUT ISSI_TIMEOUT
-#endif
-#ifdef ISSI_PERSISTENCE
-# define IS31FL3733_I2C_PERSISTENCE ISSI_PERSISTENCE
-#endif
-#ifdef ISSI_PWM_FREQUENCY
-# define IS31FL3733_PWM_FREQUENCY ISSI_PWM_FREQUENCY
-#endif
-#ifdef ISSI_SWPULLUP
-# define IS31FL3733_SW_PULLUP ISSI_SWPULLUP
-#endif
-#ifdef ISSI_CSPULLUP
-# define IS31FL3733_CS_PULLDOWN ISSI_CSPULLUP
-#endif
-#ifdef ISSI_GLOBALCURRENT
-# define IS31FL3733_GLOBAL_CURRENT ISSI_GLOBALCURRENT
-#endif
-
-#define is31_led is31fl3733_led_t
-#define g_is31_leds g_is31fl3733_leds
-
-#define PUR_0R IS31FL3733_PUR_0_OHM
-#define PUR_05KR IS31FL3733_PUR_1K_OHM
-#define PUR_3KR IS31FL3733_PUR_2K_OHM
-#define PUR_4KR IS31FL3733_PUR_4K_OHM
-#define PUR_8KR IS31FL3733_PUR_8K_OHM
-#define PUR_16KR IS31FL3733_PUR_16K_OHM
-#define PUR_32KR IS31FL3733_PUR_32K_OHM
-// ========
-
#define IS31FL3733_REG_INTERRUPT_MASK 0xF0
#define IS31FL3733_REG_INTERRUPT_STATUS 0xF1
diff --git a/drivers/led/issi/is31fl3733.h b/drivers/led/issi/is31fl3733.h
index fb60c76c2de..8757d5ab074 100644
--- a/drivers/led/issi/is31fl3733.h
+++ b/drivers/led/issi/is31fl3733.h
@@ -24,62 +24,6 @@
#include "progmem.h"
#include "util.h"
-// ======== DEPRECATED DEFINES - DO NOT USE ========
-#ifdef DRIVER_ADDR_1
-# define IS31FL3733_I2C_ADDRESS_1 DRIVER_ADDR_1
-#endif
-#ifdef DRIVER_ADDR_2
-# define IS31FL3733_I2C_ADDRESS_2 DRIVER_ADDR_2
-#endif
-#ifdef DRIVER_ADDR_3
-# define IS31FL3733_I2C_ADDRESS_3 DRIVER_ADDR_3
-#endif
-#ifdef DRIVER_ADDR_4
-# define IS31FL3733_I2C_ADDRESS_4 DRIVER_ADDR_4
-#endif
-#ifdef DRIVER_SYNC_1
-# define IS31FL3733_SYNC_1 DRIVER_SYNC_1
-#endif
-#ifdef DRIVER_SYNC_2
-# define IS31FL3733_SYNC_2 DRIVER_SYNC_2
-#endif
-#ifdef DRIVER_SYNC_3
-# define IS31FL3733_SYNC_3 DRIVER_SYNC_3
-#endif
-#ifdef DRIVER_SYNC_4
-# define IS31FL3733_SYNC_4 DRIVER_SYNC_4
-#endif
-#ifdef ISSI_TIMEOUT
-# define IS31FL3733_I2C_TIMEOUT ISSI_TIMEOUT
-#endif
-#ifdef ISSI_PERSISTENCE
-# define IS31FL3733_I2C_PERSISTENCE ISSI_PERSISTENCE
-#endif
-#ifdef ISSI_PWM_FREQUENCY
-# define IS31FL3733_PWM_FREQUENCY ISSI_PWM_FREQUENCY
-#endif
-#ifdef ISSI_SWPULLUP
-# define IS31FL3733_SW_PULLUP ISSI_SWPULLUP
-#endif
-#ifdef ISSI_CSPULLUP
-# define IS31FL3733_CS_PULLDOWN ISSI_CSPULLUP
-#endif
-#ifdef ISSI_GLOBALCURRENT
-# define IS31FL3733_GLOBAL_CURRENT ISSI_GLOBALCURRENT
-#endif
-
-#define is31_led is31fl3733_led_t
-#define g_is31_leds g_is31fl3733_leds
-
-#define PUR_0R IS31FL3733_PUR_0_OHM
-#define PUR_05KR IS31FL3733_PUR_1K_OHM
-#define PUR_3KR IS31FL3733_PUR_2K_OHM
-#define PUR_4KR IS31FL3733_PUR_4K_OHM
-#define PUR_8KR IS31FL3733_PUR_8K_OHM
-#define PUR_16KR IS31FL3733_PUR_16K_OHM
-#define PUR_32KR IS31FL3733_PUR_32K_OHM
-// ========
-
#define IS31FL3733_REG_INTERRUPT_MASK 0xF0
#define IS31FL3733_REG_INTERRUPT_STATUS 0xF1
@@ -389,209 +333,3 @@ void is31fl3733_flush(void);
#define SW12_CS14 0xBD
#define SW12_CS15 0xBE
#define SW12_CS16 0xBF
-
-// DEPRECATED - DO NOT USE
-
-#define A_1 SW1_CS1
-#define A_2 SW1_CS2
-#define A_3 SW1_CS3
-#define A_4 SW1_CS4
-#define A_5 SW1_CS5
-#define A_6 SW1_CS6
-#define A_7 SW1_CS7
-#define A_8 SW1_CS8
-#define A_9 SW1_CS9
-#define A_10 SW1_CS10
-#define A_11 SW1_CS11
-#define A_12 SW1_CS12
-#define A_13 SW1_CS13
-#define A_14 SW1_CS14
-#define A_15 SW1_CS15
-#define A_16 SW1_CS16
-
-#define B_1 SW2_CS1
-#define B_2 SW2_CS2
-#define B_3 SW2_CS3
-#define B_4 SW2_CS4
-#define B_5 SW2_CS5
-#define B_6 SW2_CS6
-#define B_7 SW2_CS7
-#define B_8 SW2_CS8
-#define B_9 SW2_CS9
-#define B_10 SW2_CS10
-#define B_11 SW2_CS11
-#define B_12 SW2_CS12
-#define B_13 SW2_CS13
-#define B_14 SW2_CS14
-#define B_15 SW2_CS15
-#define B_16 SW2_CS16
-
-#define C_1 SW3_CS1
-#define C_2 SW3_CS2
-#define C_3 SW3_CS3
-#define C_4 SW3_CS4
-#define C_5 SW3_CS5
-#define C_6 SW3_CS6
-#define C_7 SW3_CS7
-#define C_8 SW3_CS8
-#define C_9 SW3_CS9
-#define C_10 SW3_CS10
-#define C_11 SW3_CS11
-#define C_12 SW3_CS12
-#define C_13 SW3_CS13
-#define C_14 SW3_CS14
-#define C_15 SW3_CS15
-#define C_16 SW3_CS16
-
-#define D_1 SW4_CS1
-#define D_2 SW4_CS2
-#define D_3 SW4_CS3
-#define D_4 SW4_CS4
-#define D_5 SW4_CS5
-#define D_6 SW4_CS6
-#define D_7 SW4_CS7
-#define D_8 SW4_CS8
-#define D_9 SW4_CS9
-#define D_10 SW4_CS10
-#define D_11 SW4_CS11
-#define D_12 SW4_CS12
-#define D_13 SW4_CS13
-#define D_14 SW4_CS14
-#define D_15 SW4_CS15
-#define D_16 SW4_CS16
-
-#define E_1 SW5_CS1
-#define E_2 SW5_CS2
-#define E_3 SW5_CS3
-#define E_4 SW5_CS4
-#define E_5 SW5_CS5
-#define E_6 SW5_CS6
-#define E_7 SW5_CS7
-#define E_8 SW5_CS8
-#define E_9 SW5_CS9
-#define E_10 SW5_CS10
-#define E_11 SW5_CS11
-#define E_12 SW5_CS12
-#define E_13 SW5_CS13
-#define E_14 SW5_CS14
-#define E_15 SW5_CS15
-#define E_16 SW5_CS16
-
-#define F_1 SW6_CS1
-#define F_2 SW6_CS2
-#define F_3 SW6_CS3
-#define F_4 SW6_CS4
-#define F_5 SW6_CS5
-#define F_6 SW6_CS6
-#define F_7 SW6_CS7
-#define F_8 SW6_CS8
-#define F_9 SW6_CS9
-#define F_10 SW6_CS10
-#define F_11 SW6_CS11
-#define F_12 SW6_CS12
-#define F_13 SW6_CS13
-#define F_14 SW6_CS14
-#define F_15 SW6_CS15
-#define F_16 SW6_CS16
-
-#define G_1 SW7_CS1
-#define G_2 SW7_CS2
-#define G_3 SW7_CS3
-#define G_4 SW7_CS4
-#define G_5 SW7_CS5
-#define G_6 SW7_CS6
-#define G_7 SW7_CS7
-#define G_8 SW7_CS8
-#define G_9 SW7_CS9
-#define G_10 SW7_CS10
-#define G_11 SW7_CS11
-#define G_12 SW7_CS12
-#define G_13 SW7_CS13
-#define G_14 SW7_CS14
-#define G_15 SW7_CS15
-#define G_16 SW7_CS16
-
-#define H_1 SW8_CS1
-#define H_2 SW8_CS2
-#define H_3 SW8_CS3
-#define H_4 SW8_CS4
-#define H_5 SW8_CS5
-#define H_6 SW8_CS6
-#define H_7 SW8_CS7
-#define H_8 SW8_CS8
-#define H_9 SW8_CS9
-#define H_10 SW8_CS10
-#define H_11 SW8_CS11
-#define H_12 SW8_CS12
-#define H_13 SW8_CS13
-#define H_14 SW8_CS14
-#define H_15 SW8_CS15
-#define H_16 SW8_CS16
-
-#define I_1 SW9_CS1
-#define I_2 SW9_CS2
-#define I_3 SW9_CS3
-#define I_4 SW9_CS4
-#define I_5 SW9_CS5
-#define I_6 SW9_CS6
-#define I_7 SW9_CS7
-#define I_8 SW9_CS8
-#define I_9 SW9_CS9
-#define I_10 SW9_CS10
-#define I_11 SW9_CS11
-#define I_12 SW9_CS12
-#define I_13 SW9_CS13
-#define I_14 SW9_CS14
-#define I_15 SW9_CS15
-#define I_16 SW9_CS16
-
-#define J_1 SW10_CS1
-#define J_2 SW10_CS2
-#define J_3 SW10_CS3
-#define J_4 SW10_CS4
-#define J_5 SW10_CS5
-#define J_6 SW10_CS6
-#define J_7 SW10_CS7
-#define J_8 SW10_CS8
-#define J_9 SW10_CS9
-#define J_10 SW10_CS10
-#define J_11 SW10_CS11
-#define J_12 SW10_CS12
-#define J_13 SW10_CS13
-#define J_14 SW10_CS14
-#define J_15 SW10_CS15
-#define J_16 SW10_CS16
-
-#define K_1 SW11_CS1
-#define K_2 SW11_CS2
-#define K_3 SW11_CS3
-#define K_4 SW11_CS4
-#define K_5 SW11_CS5
-#define K_6 SW11_CS6
-#define K_7 SW11_CS7
-#define K_8 SW11_CS8
-#define K_9 SW11_CS9
-#define K_10 SW11_CS10
-#define K_11 SW11_CS11
-#define K_12 SW11_CS12
-#define K_13 SW11_CS13
-#define K_14 SW11_CS14
-#define K_15 SW11_CS15
-#define K_16 SW11_CS16
-
-#define L_1 SW12_CS1
-#define L_2 SW12_CS2
-#define L_3 SW12_CS3
-#define L_4 SW12_CS4
-#define L_5 SW12_CS5
-#define L_6 SW12_CS6
-#define L_7 SW12_CS7
-#define L_8 SW12_CS8
-#define L_9 SW12_CS9
-#define L_10 SW12_CS10
-#define L_11 SW12_CS11
-#define L_12 SW12_CS12
-#define L_13 SW12_CS13
-#define L_14 SW12_CS14
-#define L_15 SW12_CS15
-#define L_16 SW12_CS16
diff --git a/drivers/led/issi/is31fl3736-mono.h b/drivers/led/issi/is31fl3736-mono.h
index 91c2e0420b9..73441ea551f 100644
--- a/drivers/led/issi/is31fl3736-mono.h
+++ b/drivers/led/issi/is31fl3736-mono.h
@@ -22,36 +22,6 @@
#include "progmem.h"
#include "util.h"
-// ======== DEPRECATED DEFINES - DO NOT USE ========
-#ifdef ISSI_TIMEOUT
-# define IS31FL3736_I2C_TIMEOUT ISSI_TIMEOUT
-#endif
-#ifdef ISSI_PERSISTENCE
-# define IS31FL3736_I2C_PERSISTENCE ISSI_PERSISTENCE
-#endif
-#ifdef ISSI_SWPULLUP
-# define IS31FL3736_SW_PULLUP ISSI_SWPULLUP
-#endif
-#ifdef ISSI_CSPULLUP
-# define IS31FL3736_CS_PULLDOWN ISSI_CSPULLUP
-#endif
-#ifdef ISSI_GLOBALCURRENT
-# define IS31FL3736_GLOBAL_CURRENT ISSI_GLOBALCURRENT
-#endif
-
-#define is31_led is31fl3736_led_t
-#define g_is31_leds g_is31fl3736_leds
-
-#define PUR_0R IS31FL3736_PUR_0_OHM
-#define PUR_05KR IS31FL3736_PUR_05K_OHM
-#define PUR_1KR IS31FL3736_PUR_1K_OHM
-#define PUR_2KR IS31FL3736_PUR_2K_OHM
-#define PUR_4KR IS31FL3736_PUR_4K_OHM
-#define PUR_8KR IS31FL3736_PUR_8K_OHM
-#define PUR_16KR IS31FL3736_PUR_16K_OHM
-#define PUR_32KR IS31FL3736_PUR_32K_OHM
-// ========
-
#define IS31FL3736_REG_INTERRUPT_MASK 0xF0
#define IS31FL3736_REG_INTERRUPT_STATUS 0xF1
@@ -259,113 +229,3 @@ void is31fl3736_flush(void);
#define SW12_CS6 0xBA
#define SW12_CS7 0xBC
#define SW12_CS8 0xBE
-
-// DEPRECATED - DO NOT USE
-
-#define A_1 SW1_CS1
-#define A_2 SW1_CS2
-#define A_3 SW1_CS3
-#define A_4 SW1_CS4
-#define A_5 SW1_CS5
-#define A_6 SW1_CS6
-#define A_7 SW1_CS7
-#define A_8 SW1_CS8
-
-#define B_1 SW2_CS1
-#define B_2 SW2_CS2
-#define B_3 SW2_CS3
-#define B_4 SW2_CS4
-#define B_5 SW2_CS5
-#define B_6 SW2_CS6
-#define B_7 SW2_CS7
-#define B_8 SW2_CS8
-
-#define C_1 SW3_CS1
-#define C_2 SW3_CS2
-#define C_3 SW3_CS3
-#define C_4 SW3_CS4
-#define C_5 SW3_CS5
-#define C_6 SW3_CS6
-#define C_7 SW3_CS7
-#define C_8 SW3_CS8
-
-#define D_1 SW4_CS1
-#define D_2 SW4_CS2
-#define D_3 SW4_CS3
-#define D_4 SW4_CS4
-#define D_5 SW4_CS5
-#define D_6 SW4_CS6
-#define D_7 SW4_CS7
-#define D_8 SW4_CS8
-
-#define E_1 SW5_CS1
-#define E_2 SW5_CS2
-#define E_3 SW5_CS3
-#define E_4 SW5_CS4
-#define E_5 SW5_CS5
-#define E_6 SW5_CS6
-#define E_7 SW5_CS7
-#define E_8 SW5_CS8
-
-#define F_1 SW6_CS1
-#define F_2 SW6_CS2
-#define F_3 SW6_CS3
-#define F_4 SW6_CS4
-#define F_5 SW6_CS5
-#define F_6 SW6_CS6
-#define F_7 SW6_CS7
-#define F_8 SW6_CS8
-
-#define G_1 SW7_CS1
-#define G_2 SW7_CS2
-#define G_3 SW7_CS3
-#define G_4 SW7_CS4
-#define G_5 SW7_CS5
-#define G_6 SW7_CS6
-#define G_7 SW7_CS7
-#define G_8 SW7_CS8
-
-#define H_1 SW8_CS1
-#define H_2 SW8_CS2
-#define H_3 SW8_CS3
-#define H_4 SW8_CS4
-#define H_5 SW8_CS5
-#define H_6 SW8_CS6
-#define H_7 SW8_CS7
-#define H_8 SW8_CS8
-
-#define I_1 SW9_CS1
-#define I_2 SW9_CS2
-#define I_3 SW9_CS3
-#define I_4 SW9_CS4
-#define I_5 SW9_CS5
-#define I_6 SW9_CS6
-#define I_7 SW9_CS7
-#define I_8 SW9_CS8
-
-#define J_1 SW10_CS1
-#define J_2 SW10_CS2
-#define J_3 SW10_CS3
-#define J_4 SW10_CS4
-#define J_5 SW10_CS5
-#define J_6 SW10_CS6
-#define J_7 SW10_CS7
-#define J_8 SW10_CS8
-
-#define K_1 SW11_CS1
-#define K_2 SW11_CS2
-#define K_3 SW11_CS3
-#define K_4 SW11_CS4
-#define K_5 SW11_CS5
-#define K_6 SW11_CS6
-#define K_7 SW11_CS7
-#define K_8 SW11_CS8
-
-#define L_1 SW12_CS1
-#define L_2 SW12_CS2
-#define L_3 SW12_CS3
-#define L_4 SW12_CS4
-#define L_5 SW12_CS5
-#define L_6 SW12_CS6
-#define L_7 SW12_CS7
-#define L_8 SW12_CS8
diff --git a/drivers/led/issi/is31fl3736.h b/drivers/led/issi/is31fl3736.h
index dae7b3c8121..f0eabad819c 100644
--- a/drivers/led/issi/is31fl3736.h
+++ b/drivers/led/issi/is31fl3736.h
@@ -22,48 +22,6 @@
#include "progmem.h"
#include "util.h"
-// ======== DEPRECATED DEFINES - DO NOT USE ========
-#ifdef DRIVER_ADDR_1
-# define IS31FL3736_I2C_ADDRESS_1 DRIVER_ADDR_1
-#endif
-#ifdef DRIVER_ADDR_2
-# define IS31FL3736_I2C_ADDRESS_2 DRIVER_ADDR_2
-#endif
-#ifdef DRIVER_ADDR_3
-# define IS31FL3736_I2C_ADDRESS_3 DRIVER_ADDR_3
-#endif
-#ifdef DRIVER_ADDR_4
-# define IS31FL3736_I2C_ADDRESS_4 DRIVER_ADDR_4
-#endif
-#ifdef ISSI_TIMEOUT
-# define IS31FL3736_I2C_TIMEOUT ISSI_TIMEOUT
-#endif
-#ifdef ISSI_PERSISTENCE
-# define IS31FL3736_I2C_PERSISTENCE ISSI_PERSISTENCE
-#endif
-#ifdef ISSI_SWPULLUP
-# define IS31FL3736_SW_PULLUP ISSI_SWPULLUP
-#endif
-#ifdef ISSI_CSPULLUP
-# define IS31FL3736_CS_PULLDOWN ISSI_CSPULLUP
-#endif
-#ifdef ISSI_GLOBALCURRENT
-# define IS31FL3736_GLOBAL_CURRENT ISSI_GLOBALCURRENT
-#endif
-
-#define is31_led is31fl3736_led_t
-#define g_is31_leds g_is31fl3736_leds
-
-#define PUR_0R IS31FL3736_PUR_0_OHM
-#define PUR_05KR IS31FL3736_PUR_0K5_OHM
-#define PUR_1KR IS31FL3736_PUR_1K_OHM
-#define PUR_2KR IS31FL3736_PUR_2K_OHM
-#define PUR_4KR IS31FL3736_PUR_4K_OHM
-#define PUR_8KR IS31FL3736_PUR_8K_OHM
-#define PUR_16KR IS31FL3736_PUR_16K_OHM
-#define PUR_32KR IS31FL3736_PUR_32K_OHM
-// ========
-
#define IS31FL3736_REG_INTERRUPT_MASK 0xF0
#define IS31FL3736_REG_INTERRUPT_STATUS 0xF1
diff --git a/drivers/led/issi/is31fl3737-mono.h b/drivers/led/issi/is31fl3737-mono.h
index 99151c1e7a7..40380f90062 100644
--- a/drivers/led/issi/is31fl3737-mono.h
+++ b/drivers/led/issi/is31fl3737-mono.h
@@ -24,36 +24,6 @@
#include "progmem.h"
#include "util.h"
-// ======== DEPRECATED DEFINES - DO NOT USE ========
-#ifdef ISSI_TIMEOUT
-# define IS31FL3737_I2C_TIMEOUT ISSI_TIMEOUT
-#endif
-#ifdef ISSI_PERSISTENCE
-# define IS31FL3737_I2C_PERSISTENCE ISSI_PERSISTENCE
-#endif
-#ifdef ISSI_PWM_FREQUENCY
-# define IS31FL3737_PWM_FREQUENCY ISSI_PWM_FREQUENCY
-#endif
-#ifdef ISSI_SWPULLUP
-# define IS31FL3737_SW_PULLUP ISSI_SWPULLUP
-#endif
-#ifdef ISSI_CSPULLUP
-# define IS31FL3737_CS_PULLDOWN ISSI_CSPULLUP
-#endif
-#ifdef ISSI_GLOBALCURRENT
-# define IS31FL3737_GLOBAL_CURRENT ISSI_GLOBALCURRENT
-#endif
-
-#define PUR_0R IS31FL3737_PUR_0_OHM
-#define PUR_05KR IS31FL3737_PUR_0K5_OHM
-#define PUR_1KR IS31FL3737_PUR_1K_OHM
-#define PUR_2KR IS31FL3737_PUR_2K_OHM
-#define PUR_4KR IS31FL3737_PUR_4K_OHM
-#define PUR_8KR IS31FL3737_PUR_8K_OHM
-#define PUR_16KR IS31FL3737_PUR_16K_OHM
-#define PUR_32KR IS31FL3737_PUR_32K_OHM
-// ========
-
#define IS31FL3737_REG_INTERRUPT_MASK 0xF0
#define IS31FL3737_REG_INTERRUPT_STATUS 0xF1
diff --git a/drivers/led/issi/is31fl3737.h b/drivers/led/issi/is31fl3737.h
index 735a3a1e308..c1a9306a87e 100644
--- a/drivers/led/issi/is31fl3737.h
+++ b/drivers/led/issi/is31fl3737.h
@@ -24,51 +24,6 @@
#include "progmem.h"
#include "util.h"
-// ======== DEPRECATED DEFINES - DO NOT USE ========
-#ifdef DRIVER_ADDR_1
-# define IS31FL3737_I2C_ADDRESS_1 DRIVER_ADDR_1
-#endif
-#ifdef DRIVER_ADDR_2
-# define IS31FL3737_I2C_ADDRESS_2 DRIVER_ADDR_2
-#endif
-#ifdef DRIVER_ADDR_3
-# define IS31FL3737_I2C_ADDRESS_3 DRIVER_ADDR_3
-#endif
-#ifdef DRIVER_ADDR_4
-# define IS31FL3737_I2C_ADDRESS_4 DRIVER_ADDR_4
-#endif
-#ifdef ISSI_TIMEOUT
-# define IS31FL3737_I2C_TIMEOUT ISSI_TIMEOUT
-#endif
-#ifdef ISSI_PERSISTENCE
-# define IS31FL3737_I2C_PERSISTENCE ISSI_PERSISTENCE
-#endif
-#ifdef ISSI_PWM_FREQUENCY
-# define IS31FL3737_PWM_FREQUENCY ISSI_PWM_FREQUENCY
-#endif
-#ifdef ISSI_SWPULLUP
-# define IS31FL3737_SW_PULLUP ISSI_SWPULLUP
-#endif
-#ifdef ISSI_CSPULLUP
-# define IS31FL3737_CS_PULLDOWN ISSI_CSPULLUP
-#endif
-#ifdef ISSI_GLOBALCURRENT
-# define IS31FL3737_GLOBAL_CURRENT ISSI_GLOBALCURRENT
-#endif
-
-#define is31_led is31fl3737_led_t
-#define g_is31_leds g_is31fl3737_leds
-
-#define PUR_0R IS31FL3737_PUR_0_OHM
-#define PUR_05KR IS31FL3737_PUR_0K5_OHM
-#define PUR_1KR IS31FL3737_PUR_1K_OHM
-#define PUR_2KR IS31FL3737_PUR_2K_OHM
-#define PUR_4KR IS31FL3737_PUR_4K_OHM
-#define PUR_8KR IS31FL3737_PUR_8K_OHM
-#define PUR_16KR IS31FL3737_PUR_16K_OHM
-#define PUR_32KR IS31FL3737_PUR_32K_OHM
-// ========
-
#define IS31FL3737_REG_INTERRUPT_MASK 0xF0
#define IS31FL3737_REG_INTERRUPT_STATUS 0xF1
@@ -314,161 +269,3 @@ void is31fl3737_flush(void);
#define SW12_CS10 0xBB
#define SW12_CS11 0xBC
#define SW12_CS12 0xBD
-
-// DEPRECATED - DO NOT USE
-
-#define A_1 SW1_CS1
-#define A_2 SW1_CS2
-#define A_3 SW1_CS3
-#define A_4 SW1_CS4
-#define A_5 SW1_CS5
-#define A_6 SW1_CS6
-#define A_7 SW1_CS7
-#define A_8 SW1_CS8
-#define A_9 SW1_CS9
-#define A_10 SW1_CS10
-#define A_11 SW1_CS11
-#define A_12 SW1_CS12
-
-#define B_1 SW2_CS1
-#define B_2 SW2_CS2
-#define B_3 SW2_CS3
-#define B_4 SW2_CS4
-#define B_5 SW2_CS5
-#define B_6 SW2_CS6
-#define B_7 SW2_CS7
-#define B_8 SW2_CS8
-#define B_9 SW2_CS9
-#define B_10 SW2_CS10
-#define B_11 SW2_CS11
-#define B_12 SW2_CS12
-
-#define C_1 SW3_CS1
-#define C_2 SW3_CS2
-#define C_3 SW3_CS3
-#define C_4 SW3_CS4
-#define C_5 SW3_CS5
-#define C_6 SW3_CS6
-#define C_7 SW3_CS7
-#define C_8 SW3_CS8
-#define C_9 SW3_CS9
-#define C_10 SW3_CS10
-#define C_11 SW3_CS11
-#define C_12 SW3_CS12
-
-#define D_1 SW4_CS1
-#define D_2 SW4_CS2
-#define D_3 SW4_CS3
-#define D_4 SW4_CS4
-#define D_5 SW4_CS5
-#define D_6 SW4_CS6
-#define D_7 SW4_CS7
-#define D_8 SW4_CS8
-#define D_9 SW4_CS9
-#define D_10 SW4_CS10
-#define D_11 SW4_CS11
-#define D_12 SW4_CS12
-
-#define E_1 SW5_CS1
-#define E_2 SW5_CS2
-#define E_3 SW5_CS3
-#define E_4 SW5_CS4
-#define E_5 SW5_CS5
-#define E_6 SW5_CS6
-#define E_7 SW5_CS7
-#define E_8 SW5_CS8
-#define E_9 SW5_CS9
-#define E_10 SW5_CS10
-#define E_11 SW5_CS11
-#define E_12 SW5_CS12
-
-#define F_1 SW6_CS1
-#define F_2 SW6_CS2
-#define F_3 SW6_CS3
-#define F_4 SW6_CS4
-#define F_5 SW6_CS5
-#define F_6 SW6_CS6
-#define F_7 SW6_CS7
-#define F_8 SW6_CS8
-#define F_9 SW6_CS9
-#define F_10 SW6_CS10
-#define F_11 SW6_CS11
-#define F_12 SW6_CS12
-
-#define G_1 SW7_CS1
-#define G_2 SW7_CS2
-#define G_3 SW7_CS3
-#define G_4 SW7_CS4
-#define G_5 SW7_CS5
-#define G_6 SW7_CS6
-#define G_7 SW7_CS7
-#define G_8 SW7_CS8
-#define G_9 SW7_CS9
-#define G_10 SW7_CS10
-#define G_11 SW7_CS11
-#define G_12 SW7_CS12
-
-#define H_1 SW8_CS1
-#define H_2 SW8_CS2
-#define H_3 SW8_CS3
-#define H_4 SW8_CS4
-#define H_5 SW8_CS5
-#define H_6 SW8_CS6
-#define H_7 SW8_CS7
-#define H_8 SW8_CS8
-#define H_9 SW8_CS9
-#define H_10 SW8_CS10
-#define H_11 SW8_CS11
-#define H_12 SW8_CS12
-
-#define I_1 SW9_CS1
-#define I_2 SW9_CS2
-#define I_3 SW9_CS3
-#define I_4 SW9_CS4
-#define I_5 SW9_CS5
-#define I_6 SW9_CS6
-#define I_7 SW9_CS7
-#define I_8 SW9_CS8
-#define I_9 SW9_CS9
-#define I_10 SW9_CS10
-#define I_11 SW9_CS11
-#define I_12 SW9_CS12
-
-#define J_1 SW10_CS1
-#define J_2 SW10_CS2
-#define J_3 SW10_CS3
-#define J_4 SW10_CS4
-#define J_5 SW10_CS5
-#define J_6 SW10_CS6
-#define J_7 SW10_CS7
-#define J_8 SW10_CS8
-#define J_9 SW10_CS9
-#define J_10 SW10_CS10
-#define J_11 SW10_CS11
-#define J_12 SW10_CS12
-
-#define K_1 SW11_CS1
-#define K_2 SW11_CS2
-#define K_3 SW11_CS3
-#define K_4 SW11_CS4
-#define K_5 SW11_CS5
-#define K_6 SW11_CS6
-#define K_7 SW11_CS7
-#define K_8 SW11_CS8
-#define K_9 SW11_CS9
-#define K_10 SW11_CS10
-#define K_11 SW11_CS11
-#define K_12 SW11_CS12
-
-#define L_1 SW12_CS1
-#define L_2 SW12_CS2
-#define L_3 SW12_CS3
-#define L_4 SW12_CS4
-#define L_5 SW12_CS5
-#define L_6 SW12_CS6
-#define L_7 SW12_CS7
-#define L_8 SW12_CS8
-#define L_9 SW12_CS9
-#define L_10 SW12_CS10
-#define L_11 SW12_CS11
-#define L_12 SW12_CS12
diff --git a/drivers/led/issi/is31fl3741-mono.h b/drivers/led/issi/is31fl3741-mono.h
index 6d4f70b1b35..d8797bda328 100644
--- a/drivers/led/issi/is31fl3741-mono.h
+++ b/drivers/led/issi/is31fl3741-mono.h
@@ -24,36 +24,6 @@
#include "progmem.h"
#include "util.h"
-// ======== DEPRECATED DEFINES - DO NOT USE ========
-#ifdef ISSI_TIMEOUT
-# define IS31FL3741_I2C_TIMEOUT ISSI_TIMEOUT
-#endif
-#ifdef ISSI_PERSISTENCE
-# define IS31FL3741_I2C_PERSISTENCE ISSI_PERSISTENCE
-#endif
-#ifdef ISSI_CONFIGURATION
-# define IS31FL3741_CONFIGURATION ISSI_CONFIGURATION
-#endif
-#ifdef ISSI_SWPULLUP
-# define IS31FL3741_SW_PULLUP ISSI_SWPULLUP
-#endif
-#ifdef ISSI_CSPULLUP
-# define IS31FL3741_CS_PULLDOWN ISSI_CSPULLUP
-#endif
-#ifdef ISSI_GLOBALCURRENT
-# define IS31FL3741_GLOBAL_CURRENT ISSI_GLOBALCURRENT
-#endif
-
-#define PUR_0R IS31FL3741_PUR_0_OHM
-#define PUR_05KR IS31FL3741_PUR_0K5_OHM
-#define PUR_1KR IS31FL3741_PUR_1K_OHM
-#define PUR_2KR IS31FL3741_PUR_2K_OHM
-#define PUR_4KR IS31FL3741_PUR_4K_OHM
-#define PUR_8KR IS31FL3741_PUR_8K_OHM
-#define PUR_16KR IS31FL3741_PUR_16K_OHM
-#define PUR_32KR IS31FL3741_PUR_32K_OHM
-// ========
-
#define IS31FL3741_REG_INTERRUPT_MASK 0xF0
#define IS31FL3741_REG_INTERRUPT_STATUS 0xF1
#define IS31FL3741_REG_ID 0xFC
@@ -514,374 +484,3 @@ void is31fl3741_flush(void);
#define SW9_CS37 0x1A8
#define SW9_CS38 0x1A9
#define SW9_CS39 0x1AA
-
-// DEPRECATED - DO NOT USE
-
-#define CS1_SW1 SW1_CS1
-#define CS2_SW1 SW1_CS2
-#define CS3_SW1 SW1_CS3
-#define CS4_SW1 SW1_CS4
-#define CS5_SW1 SW1_CS5
-#define CS6_SW1 SW1_CS6
-#define CS7_SW1 SW1_CS7
-#define CS8_SW1 SW1_CS8
-#define CS9_SW1 SW1_CS9
-#define CS10_SW1 SW1_CS10
-#define CS11_SW1 SW1_CS11
-#define CS12_SW1 SW1_CS12
-#define CS13_SW1 SW1_CS13
-#define CS14_SW1 SW1_CS14
-#define CS15_SW1 SW1_CS15
-#define CS16_SW1 SW1_CS16
-#define CS17_SW1 SW1_CS17
-#define CS18_SW1 SW1_CS18
-#define CS19_SW1 SW1_CS19
-#define CS20_SW1 SW1_CS20
-#define CS21_SW1 SW1_CS21
-#define CS22_SW1 SW1_CS22
-#define CS23_SW1 SW1_CS23
-#define CS24_SW1 SW1_CS24
-#define CS25_SW1 SW1_CS25
-#define CS26_SW1 SW1_CS26
-#define CS27_SW1 SW1_CS27
-#define CS28_SW1 SW1_CS28
-#define CS29_SW1 SW1_CS29
-#define CS30_SW1 SW1_CS30
-
-#define CS1_SW2 SW2_CS1
-#define CS2_SW2 SW2_CS2
-#define CS3_SW2 SW2_CS3
-#define CS4_SW2 SW2_CS4
-#define CS5_SW2 SW2_CS5
-#define CS6_SW2 SW2_CS6
-#define CS7_SW2 SW2_CS7
-#define CS8_SW2 SW2_CS8
-#define CS9_SW2 SW2_CS9
-#define CS10_SW2 SW2_CS10
-#define CS11_SW2 SW2_CS11
-#define CS12_SW2 SW2_CS12
-#define CS13_SW2 SW2_CS13
-#define CS14_SW2 SW2_CS14
-#define CS15_SW2 SW2_CS15
-#define CS16_SW2 SW2_CS16
-#define CS17_SW2 SW2_CS17
-#define CS18_SW2 SW2_CS18
-#define CS19_SW2 SW2_CS19
-#define CS20_SW2 SW2_CS20
-#define CS21_SW2 SW2_CS21
-#define CS22_SW2 SW2_CS22
-#define CS23_SW2 SW2_CS23
-#define CS24_SW2 SW2_CS24
-#define CS25_SW2 SW2_CS25
-#define CS26_SW2 SW2_CS26
-#define CS27_SW2 SW2_CS27
-#define CS28_SW2 SW2_CS28
-#define CS29_SW2 SW2_CS29
-#define CS30_SW2 SW2_CS30
-
-#define CS1_SW3 SW3_CS1
-#define CS2_SW3 SW3_CS2
-#define CS3_SW3 SW3_CS3
-#define CS4_SW3 SW3_CS4
-#define CS5_SW3 SW3_CS5
-#define CS6_SW3 SW3_CS6
-#define CS7_SW3 SW3_CS7
-#define CS8_SW3 SW3_CS8
-#define CS9_SW3 SW3_CS9
-#define CS10_SW3 SW3_CS10
-#define CS11_SW3 SW3_CS11
-#define CS12_SW3 SW3_CS12
-#define CS13_SW3 SW3_CS13
-#define CS14_SW3 SW3_CS14
-#define CS15_SW3 SW3_CS15
-#define CS16_SW3 SW3_CS16
-#define CS17_SW3 SW3_CS17
-#define CS18_SW3 SW3_CS18
-#define CS19_SW3 SW3_CS19
-#define CS20_SW3 SW3_CS20
-#define CS21_SW3 SW3_CS21
-#define CS22_SW3 SW3_CS22
-#define CS23_SW3 SW3_CS23
-#define CS24_SW3 SW3_CS24
-#define CS25_SW3 SW3_CS25
-#define CS26_SW3 SW3_CS26
-#define CS27_SW3 SW3_CS27
-#define CS28_SW3 SW3_CS28
-#define CS29_SW3 SW3_CS29
-#define CS30_SW3 SW3_CS30
-
-#define CS1_SW4 SW4_CS1
-#define CS2_SW4 SW4_CS2
-#define CS3_SW4 SW4_CS3
-#define CS4_SW4 SW4_CS4
-#define CS5_SW4 SW4_CS5
-#define CS6_SW4 SW4_CS6
-#define CS7_SW4 SW4_CS7
-#define CS8_SW4 SW4_CS8
-#define CS9_SW4 SW4_CS9
-#define CS10_SW4 SW4_CS10
-#define CS11_SW4 SW4_CS11
-#define CS12_SW4 SW4_CS12
-#define CS13_SW4 SW4_CS13
-#define CS14_SW4 SW4_CS14
-#define CS15_SW4 SW4_CS15
-#define CS16_SW4 SW4_CS16
-#define CS17_SW4 SW4_CS17
-#define CS18_SW4 SW4_CS18
-#define CS19_SW4 SW4_CS19
-#define CS20_SW4 SW4_CS20
-#define CS21_SW4 SW4_CS21
-#define CS22_SW4 SW4_CS22
-#define CS23_SW4 SW4_CS23
-#define CS24_SW4 SW4_CS24
-#define CS25_SW4 SW4_CS25
-#define CS26_SW4 SW4_CS26
-#define CS27_SW4 SW4_CS27
-#define CS28_SW4 SW4_CS28
-#define CS29_SW4 SW4_CS29
-#define CS30_SW4 SW4_CS30
-
-#define CS1_SW5 SW5_CS1
-#define CS2_SW5 SW5_CS2
-#define CS3_SW5 SW5_CS3
-#define CS4_SW5 SW5_CS4
-#define CS5_SW5 SW5_CS5
-#define CS6_SW5 SW5_CS6
-#define CS7_SW5 SW5_CS7
-#define CS8_SW5 SW5_CS8
-#define CS9_SW5 SW5_CS9
-#define CS10_SW5 SW5_CS10
-#define CS11_SW5 SW5_CS11
-#define CS12_SW5 SW5_CS12
-#define CS13_SW5 SW5_CS13
-#define CS14_SW5 SW5_CS14
-#define CS15_SW5 SW5_CS15
-#define CS16_SW5 SW5_CS16
-#define CS17_SW5 SW5_CS17
-#define CS18_SW5 SW5_CS18
-#define CS19_SW5 SW5_CS19
-#define CS20_SW5 SW5_CS20
-#define CS21_SW5 SW5_CS21
-#define CS22_SW5 SW5_CS22
-#define CS23_SW5 SW5_CS23
-#define CS24_SW5 SW5_CS24
-#define CS25_SW5 SW5_CS25
-#define CS26_SW5 SW5_CS26
-#define CS27_SW5 SW5_CS27
-#define CS28_SW5 SW5_CS28
-#define CS29_SW5 SW5_CS29
-#define CS30_SW5 SW5_CS30
-
-#define CS1_SW6 SW6_CS1
-#define CS2_SW6 SW6_CS2
-#define CS3_SW6 SW6_CS3
-#define CS4_SW6 SW6_CS4
-#define CS5_SW6 SW6_CS5
-#define CS6_SW6 SW6_CS6
-#define CS7_SW6 SW6_CS7
-#define CS8_SW6 SW6_CS8
-#define CS9_SW6 SW6_CS9
-#define CS10_SW6 SW6_CS10
-#define CS11_SW6 SW6_CS11
-#define CS12_SW6 SW6_CS12
-#define CS13_SW6 SW6_CS13
-#define CS14_SW6 SW6_CS14
-#define CS15_SW6 SW6_CS15
-#define CS16_SW6 SW6_CS16
-#define CS17_SW6 SW6_CS17
-#define CS18_SW6 SW6_CS18
-#define CS19_SW6 SW6_CS19
-#define CS20_SW6 SW6_CS20
-#define CS21_SW6 SW6_CS21
-#define CS22_SW6 SW6_CS22
-#define CS23_SW6 SW6_CS23
-#define CS24_SW6 SW6_CS24
-#define CS25_SW6 SW6_CS25
-#define CS26_SW6 SW6_CS26
-#define CS27_SW6 SW6_CS27
-#define CS28_SW6 SW6_CS28
-#define CS29_SW6 SW6_CS29
-#define CS30_SW6 SW6_CS30
-
-#define CS1_SW7 SW7_CS1
-#define CS2_SW7 SW7_CS2
-#define CS3_SW7 SW7_CS3
-#define CS4_SW7 SW7_CS4
-#define CS5_SW7 SW7_CS5
-#define CS6_SW7 SW7_CS6
-#define CS7_SW7 SW7_CS7
-#define CS8_SW7 SW7_CS8
-#define CS9_SW7 SW7_CS9
-#define CS10_SW7 SW7_CS10
-#define CS11_SW7 SW7_CS11
-#define CS12_SW7 SW7_CS12
-#define CS13_SW7 SW7_CS13
-#define CS14_SW7 SW7_CS14
-#define CS15_SW7 SW7_CS15
-#define CS16_SW7 SW7_CS16
-#define CS17_SW7 SW7_CS17
-#define CS18_SW7 SW7_CS18
-#define CS19_SW7 SW7_CS19
-#define CS20_SW7 SW7_CS20
-#define CS21_SW7 SW7_CS21
-#define CS22_SW7 SW7_CS22
-#define CS23_SW7 SW7_CS23
-#define CS24_SW7 SW7_CS24
-#define CS25_SW7 SW7_CS25
-#define CS26_SW7 SW7_CS26
-#define CS27_SW7 SW7_CS27
-#define CS28_SW7 SW7_CS28
-#define CS29_SW7 SW7_CS29
-#define CS30_SW7 SW7_CS30
-
-#define CS1_SW8 SW8_CS1
-#define CS2_SW8 SW8_CS2
-#define CS3_SW8 SW8_CS3
-#define CS4_SW8 SW8_CS4
-#define CS5_SW8 SW8_CS5
-#define CS6_SW8 SW8_CS6
-#define CS7_SW8 SW8_CS7
-#define CS8_SW8 SW8_CS8
-#define CS9_SW8 SW8_CS9
-#define CS10_SW8 SW8_CS10
-#define CS11_SW8 SW8_CS11
-#define CS12_SW8 SW8_CS12
-#define CS13_SW8 SW8_CS13
-#define CS14_SW8 SW8_CS14
-#define CS15_SW8 SW8_CS15
-#define CS16_SW8 SW8_CS16
-#define CS17_SW8 SW8_CS17
-#define CS18_SW8 SW8_CS18
-#define CS19_SW8 SW8_CS19
-#define CS20_SW8 SW8_CS20
-#define CS21_SW8 SW8_CS21
-#define CS22_SW8 SW8_CS22
-#define CS23_SW8 SW8_CS23
-#define CS24_SW8 SW8_CS24
-#define CS25_SW8 SW8_CS25
-#define CS26_SW8 SW8_CS26
-#define CS27_SW8 SW8_CS27
-#define CS28_SW8 SW8_CS28
-#define CS29_SW8 SW8_CS29
-#define CS30_SW8 SW8_CS30
-
-#define CS1_SW9 SW9_CS1
-#define CS2_SW9 SW9_CS2
-#define CS3_SW9 SW9_CS3
-#define CS4_SW9 SW9_CS4
-#define CS5_SW9 SW9_CS5
-#define CS6_SW9 SW9_CS6
-#define CS7_SW9 SW9_CS7
-#define CS8_SW9 SW9_CS8
-#define CS9_SW9 SW9_CS9
-#define CS10_SW9 SW9_CS10
-#define CS11_SW9 SW9_CS11
-#define CS12_SW9 SW9_CS12
-#define CS13_SW9 SW9_CS13
-#define CS14_SW9 SW9_CS14
-#define CS15_SW9 SW9_CS15
-#define CS16_SW9 SW9_CS16
-#define CS17_SW9 SW9_CS17
-#define CS18_SW9 SW9_CS18
-#define CS19_SW9 SW9_CS19
-#define CS20_SW9 SW9_CS20
-#define CS21_SW9 SW9_CS21
-#define CS22_SW9 SW9_CS22
-#define CS23_SW9 SW9_CS23
-#define CS24_SW9 SW9_CS24
-#define CS25_SW9 SW9_CS25
-#define CS26_SW9 SW9_CS26
-#define CS27_SW9 SW9_CS27
-#define CS28_SW9 SW9_CS28
-#define CS29_SW9 SW9_CS29
-#define CS30_SW9 SW9_CS30
-
-#define CS31_SW1 SW1_CS31
-#define CS32_SW1 SW1_CS32
-#define CS33_SW1 SW1_CS33
-#define CS34_SW1 SW1_CS34
-#define CS35_SW1 SW1_CS35
-#define CS36_SW1 SW1_CS36
-#define CS37_SW1 SW1_CS37
-#define CS38_SW1 SW1_CS38
-#define CS39_SW1 SW1_CS39
-
-#define CS31_SW2 SW2_CS31
-#define CS32_SW2 SW2_CS32
-#define CS33_SW2 SW2_CS33
-#define CS34_SW2 SW2_CS34
-#define CS35_SW2 SW2_CS35
-#define CS36_SW2 SW2_CS36
-#define CS37_SW2 SW2_CS37
-#define CS38_SW2 SW2_CS38
-#define CS39_SW2 SW2_CS39
-
-#define CS31_SW3 SW3_CS31
-#define CS32_SW3 SW3_CS32
-#define CS33_SW3 SW3_CS33
-#define CS34_SW3 SW3_CS34
-#define CS35_SW3 SW3_CS35
-#define CS36_SW3 SW3_CS36
-#define CS37_SW3 SW3_CS37
-#define CS38_SW3 SW3_CS38
-#define CS39_SW3 SW3_CS39
-
-#define CS31_SW4 SW4_CS31
-#define CS32_SW4 SW4_CS32
-#define CS33_SW4 SW4_CS33
-#define CS34_SW4 SW4_CS34
-#define CS35_SW4 SW4_CS35
-#define CS36_SW4 SW4_CS36
-#define CS37_SW4 SW4_CS37
-#define CS38_SW4 SW4_CS38
-#define CS39_SW4 SW4_CS39
-
-#define CS31_SW5 SW5_CS31
-#define CS32_SW5 SW5_CS32
-#define CS33_SW5 SW5_CS33
-#define CS34_SW5 SW5_CS34
-#define CS35_SW5 SW5_CS35
-#define CS36_SW5 SW5_CS36
-#define CS37_SW5 SW5_CS37
-#define CS38_SW5 SW5_CS38
-#define CS39_SW5 SW5_CS39
-
-#define CS31_SW6 SW6_CS31
-#define CS32_SW6 SW6_CS32
-#define CS33_SW6 SW6_CS33
-#define CS34_SW6 SW6_CS34
-#define CS35_SW6 SW6_CS35
-#define CS36_SW6 SW6_CS36
-#define CS37_SW6 SW6_CS37
-#define CS38_SW6 SW6_CS38
-#define CS39_SW6 SW6_CS39
-
-#define CS31_SW7 SW7_CS31
-#define CS32_SW7 SW7_CS32
-#define CS33_SW7 SW7_CS33
-#define CS34_SW7 SW7_CS34
-#define CS35_SW7 SW7_CS35
-#define CS36_SW7 SW7_CS36
-#define CS37_SW7 SW7_CS37
-#define CS38_SW7 SW7_CS38
-#define CS39_SW7 SW7_CS39
-
-#define CS31_SW8 SW8_CS31
-#define CS32_SW8 SW8_CS32
-#define CS33_SW8 SW8_CS33
-#define CS34_SW8 SW8_CS34
-#define CS35_SW8 SW8_CS35
-#define CS36_SW8 SW8_CS36
-#define CS37_SW8 SW8_CS37
-#define CS38_SW8 SW8_CS38
-#define CS39_SW8 SW8_CS39
-
-#define CS31_SW9 SW9_CS31
-#define CS32_SW9 SW9_CS32
-#define CS33_SW9 SW9_CS33
-#define CS34_SW9 SW9_CS34
-#define CS35_SW9 SW9_CS35
-#define CS36_SW9 SW9_CS36
-#define CS37_SW9 SW9_CS37
-#define CS38_SW9 SW9_CS38
-#define CS39_SW9 SW9_CS39
diff --git a/drivers/led/issi/is31fl3741.h b/drivers/led/issi/is31fl3741.h
index cc9637a4e80..343dffe0689 100644
--- a/drivers/led/issi/is31fl3741.h
+++ b/drivers/led/issi/is31fl3741.h
@@ -24,51 +24,6 @@
#include "progmem.h"
#include "util.h"
-// ======== DEPRECATED DEFINES - DO NOT USE ========
-#ifdef DRIVER_ADDR_1
-# define IS31FL3741_I2C_ADDRESS_1 DRIVER_ADDR_1
-#endif
-#ifdef DRIVER_ADDR_2
-# define IS31FL3741_I2C_ADDRESS_2 DRIVER_ADDR_2
-#endif
-#ifdef DRIVER_ADDR_3
-# define IS31FL3741_I2C_ADDRESS_3 DRIVER_ADDR_3
-#endif
-#ifdef DRIVER_ADDR_4
-# define IS31FL3741_I2C_ADDRESS_4 DRIVER_ADDR_4
-#endif
-#ifdef ISSI_TIMEOUT
-# define IS31FL3741_I2C_TIMEOUT ISSI_TIMEOUT
-#endif
-#ifdef ISSI_PERSISTENCE
-# define IS31FL3741_I2C_PERSISTENCE ISSI_PERSISTENCE
-#endif
-#ifdef ISSI_CONFIGURATION
-# define IS31FL3741_CONFIGURATION ISSI_CONFIGURATION
-#endif
-#ifdef ISSI_SWPULLUP
-# define IS31FL3741_SW_PULLUP ISSI_SWPULLUP
-#endif
-#ifdef ISSI_CSPULLUP
-# define IS31FL3741_CS_PULLDOWN ISSI_CSPULLUP
-#endif
-#ifdef ISSI_GLOBALCURRENT
-# define IS31FL3741_GLOBAL_CURRENT ISSI_GLOBALCURRENT
-#endif
-
-#define is31_led is31fl3741_led_t
-#define g_is31_leds g_is31fl3741_leds
-
-#define PUR_0R IS31FL3741_PUR_0_OHM
-#define PUR_05KR IS31FL3741_PUR_0K5_OHM
-#define PUR_1KR IS31FL3741_PUR_1K_OHM
-#define PUR_2KR IS31FL3741_PUR_2K_OHM
-#define PUR_4KR IS31FL3741_PUR_4K_OHM
-#define PUR_8KR IS31FL3741_PUR_8K_OHM
-#define PUR_16KR IS31FL3741_PUR_16K_OHM
-#define PUR_32KR IS31FL3741_PUR_32K_OHM
-// ========
-
#define IS31FL3741_REG_INTERRUPT_MASK 0xF0
#define IS31FL3741_REG_INTERRUPT_STATUS 0xF1
#define IS31FL3741_REG_ID 0xFC
@@ -531,374 +486,3 @@ void is31fl3741_flush(void);
#define SW9_CS37 0x1A8
#define SW9_CS38 0x1A9
#define SW9_CS39 0x1AA
-
-// DEPRECATED - DO NOT USE
-
-#define CS1_SW1 SW1_CS1
-#define CS2_SW1 SW1_CS2
-#define CS3_SW1 SW1_CS3
-#define CS4_SW1 SW1_CS4
-#define CS5_SW1 SW1_CS5
-#define CS6_SW1 SW1_CS6
-#define CS7_SW1 SW1_CS7
-#define CS8_SW1 SW1_CS8
-#define CS9_SW1 SW1_CS9
-#define CS10_SW1 SW1_CS10
-#define CS11_SW1 SW1_CS11
-#define CS12_SW1 SW1_CS12
-#define CS13_SW1 SW1_CS13
-#define CS14_SW1 SW1_CS14
-#define CS15_SW1 SW1_CS15
-#define CS16_SW1 SW1_CS16
-#define CS17_SW1 SW1_CS17
-#define CS18_SW1 SW1_CS18
-#define CS19_SW1 SW1_CS19
-#define CS20_SW1 SW1_CS20
-#define CS21_SW1 SW1_CS21
-#define CS22_SW1 SW1_CS22
-#define CS23_SW1 SW1_CS23
-#define CS24_SW1 SW1_CS24
-#define CS25_SW1 SW1_CS25
-#define CS26_SW1 SW1_CS26
-#define CS27_SW1 SW1_CS27
-#define CS28_SW1 SW1_CS28
-#define CS29_SW1 SW1_CS29
-#define CS30_SW1 SW1_CS30
-
-#define CS1_SW2 SW2_CS1
-#define CS2_SW2 SW2_CS2
-#define CS3_SW2 SW2_CS3
-#define CS4_SW2 SW2_CS4
-#define CS5_SW2 SW2_CS5
-#define CS6_SW2 SW2_CS6
-#define CS7_SW2 SW2_CS7
-#define CS8_SW2 SW2_CS8
-#define CS9_SW2 SW2_CS9
-#define CS10_SW2 SW2_CS10
-#define CS11_SW2 SW2_CS11
-#define CS12_SW2 SW2_CS12
-#define CS13_SW2 SW2_CS13
-#define CS14_SW2 SW2_CS14
-#define CS15_SW2 SW2_CS15
-#define CS16_SW2 SW2_CS16
-#define CS17_SW2 SW2_CS17
-#define CS18_SW2 SW2_CS18
-#define CS19_SW2 SW2_CS19
-#define CS20_SW2 SW2_CS20
-#define CS21_SW2 SW2_CS21
-#define CS22_SW2 SW2_CS22
-#define CS23_SW2 SW2_CS23
-#define CS24_SW2 SW2_CS24
-#define CS25_SW2 SW2_CS25
-#define CS26_SW2 SW2_CS26
-#define CS27_SW2 SW2_CS27
-#define CS28_SW2 SW2_CS28
-#define CS29_SW2 SW2_CS29
-#define CS30_SW2 SW2_CS30
-
-#define CS1_SW3 SW3_CS1
-#define CS2_SW3 SW3_CS2
-#define CS3_SW3 SW3_CS3
-#define CS4_SW3 SW3_CS4
-#define CS5_SW3 SW3_CS5
-#define CS6_SW3 SW3_CS6
-#define CS7_SW3 SW3_CS7
-#define CS8_SW3 SW3_CS8
-#define CS9_SW3 SW3_CS9
-#define CS10_SW3 SW3_CS10
-#define CS11_SW3 SW3_CS11
-#define CS12_SW3 SW3_CS12
-#define CS13_SW3 SW3_CS13
-#define CS14_SW3 SW3_CS14
-#define CS15_SW3 SW3_CS15
-#define CS16_SW3 SW3_CS16
-#define CS17_SW3 SW3_CS17
-#define CS18_SW3 SW3_CS18
-#define CS19_SW3 SW3_CS19
-#define CS20_SW3 SW3_CS20
-#define CS21_SW3 SW3_CS21
-#define CS22_SW3 SW3_CS22
-#define CS23_SW3 SW3_CS23
-#define CS24_SW3 SW3_CS24
-#define CS25_SW3 SW3_CS25
-#define CS26_SW3 SW3_CS26
-#define CS27_SW3 SW3_CS27
-#define CS28_SW3 SW3_CS28
-#define CS29_SW3 SW3_CS29
-#define CS30_SW3 SW3_CS30
-
-#define CS1_SW4 SW4_CS1
-#define CS2_SW4 SW4_CS2
-#define CS3_SW4 SW4_CS3
-#define CS4_SW4 SW4_CS4
-#define CS5_SW4 SW4_CS5
-#define CS6_SW4 SW4_CS6
-#define CS7_SW4 SW4_CS7
-#define CS8_SW4 SW4_CS8
-#define CS9_SW4 SW4_CS9
-#define CS10_SW4 SW4_CS10
-#define CS11_SW4 SW4_CS11
-#define CS12_SW4 SW4_CS12
-#define CS13_SW4 SW4_CS13
-#define CS14_SW4 SW4_CS14
-#define CS15_SW4 SW4_CS15
-#define CS16_SW4 SW4_CS16
-#define CS17_SW4 SW4_CS17
-#define CS18_SW4 SW4_CS18
-#define CS19_SW4 SW4_CS19
-#define CS20_SW4 SW4_CS20
-#define CS21_SW4 SW4_CS21
-#define CS22_SW4 SW4_CS22
-#define CS23_SW4 SW4_CS23
-#define CS24_SW4 SW4_CS24
-#define CS25_SW4 SW4_CS25
-#define CS26_SW4 SW4_CS26
-#define CS27_SW4 SW4_CS27
-#define CS28_SW4 SW4_CS28
-#define CS29_SW4 SW4_CS29
-#define CS30_SW4 SW4_CS30
-
-#define CS1_SW5 SW5_CS1
-#define CS2_SW5 SW5_CS2
-#define CS3_SW5 SW5_CS3
-#define CS4_SW5 SW5_CS4
-#define CS5_SW5 SW5_CS5
-#define CS6_SW5 SW5_CS6
-#define CS7_SW5 SW5_CS7
-#define CS8_SW5 SW5_CS8
-#define CS9_SW5 SW5_CS9
-#define CS10_SW5 SW5_CS10
-#define CS11_SW5 SW5_CS11
-#define CS12_SW5 SW5_CS12
-#define CS13_SW5 SW5_CS13
-#define CS14_SW5 SW5_CS14
-#define CS15_SW5 SW5_CS15
-#define CS16_SW5 SW5_CS16
-#define CS17_SW5 SW5_CS17
-#define CS18_SW5 SW5_CS18
-#define CS19_SW5 SW5_CS19
-#define CS20_SW5 SW5_CS20
-#define CS21_SW5 SW5_CS21
-#define CS22_SW5 SW5_CS22
-#define CS23_SW5 SW5_CS23
-#define CS24_SW5 SW5_CS24
-#define CS25_SW5 SW5_CS25
-#define CS26_SW5 SW5_CS26
-#define CS27_SW5 SW5_CS27
-#define CS28_SW5 SW5_CS28
-#define CS29_SW5 SW5_CS29
-#define CS30_SW5 SW5_CS30
-
-#define CS1_SW6 SW6_CS1
-#define CS2_SW6 SW6_CS2
-#define CS3_SW6 SW6_CS3
-#define CS4_SW6 SW6_CS4
-#define CS5_SW6 SW6_CS5
-#define CS6_SW6 SW6_CS6
-#define CS7_SW6 SW6_CS7
-#define CS8_SW6 SW6_CS8
-#define CS9_SW6 SW6_CS9
-#define CS10_SW6 SW6_CS10
-#define CS11_SW6 SW6_CS11
-#define CS12_SW6 SW6_CS12
-#define CS13_SW6 SW6_CS13
-#define CS14_SW6 SW6_CS14
-#define CS15_SW6 SW6_CS15
-#define CS16_SW6 SW6_CS16
-#define CS17_SW6 SW6_CS17
-#define CS18_SW6 SW6_CS18
-#define CS19_SW6 SW6_CS19
-#define CS20_SW6 SW6_CS20
-#define CS21_SW6 SW6_CS21
-#define CS22_SW6 SW6_CS22
-#define CS23_SW6 SW6_CS23
-#define CS24_SW6 SW6_CS24
-#define CS25_SW6 SW6_CS25
-#define CS26_SW6 SW6_CS26
-#define CS27_SW6 SW6_CS27
-#define CS28_SW6 SW6_CS28
-#define CS29_SW6 SW6_CS29
-#define CS30_SW6 SW6_CS30
-
-#define CS1_SW7 SW7_CS1
-#define CS2_SW7 SW7_CS2
-#define CS3_SW7 SW7_CS3
-#define CS4_SW7 SW7_CS4
-#define CS5_SW7 SW7_CS5
-#define CS6_SW7 SW7_CS6
-#define CS7_SW7 SW7_CS7
-#define CS8_SW7 SW7_CS8
-#define CS9_SW7 SW7_CS9
-#define CS10_SW7 SW7_CS10
-#define CS11_SW7 SW7_CS11
-#define CS12_SW7 SW7_CS12
-#define CS13_SW7 SW7_CS13
-#define CS14_SW7 SW7_CS14
-#define CS15_SW7 SW7_CS15
-#define CS16_SW7 SW7_CS16
-#define CS17_SW7 SW7_CS17
-#define CS18_SW7 SW7_CS18
-#define CS19_SW7 SW7_CS19
-#define CS20_SW7 SW7_CS20
-#define CS21_SW7 SW7_CS21
-#define CS22_SW7 SW7_CS22
-#define CS23_SW7 SW7_CS23
-#define CS24_SW7 SW7_CS24
-#define CS25_SW7 SW7_CS25
-#define CS26_SW7 SW7_CS26
-#define CS27_SW7 SW7_CS27
-#define CS28_SW7 SW7_CS28
-#define CS29_SW7 SW7_CS29
-#define CS30_SW7 SW7_CS30
-
-#define CS1_SW8 SW8_CS1
-#define CS2_SW8 SW8_CS2
-#define CS3_SW8 SW8_CS3
-#define CS4_SW8 SW8_CS4
-#define CS5_SW8 SW8_CS5
-#define CS6_SW8 SW8_CS6
-#define CS7_SW8 SW8_CS7
-#define CS8_SW8 SW8_CS8
-#define CS9_SW8 SW8_CS9
-#define CS10_SW8 SW8_CS10
-#define CS11_SW8 SW8_CS11
-#define CS12_SW8 SW8_CS12
-#define CS13_SW8 SW8_CS13
-#define CS14_SW8 SW8_CS14
-#define CS15_SW8 SW8_CS15
-#define CS16_SW8 SW8_CS16
-#define CS17_SW8 SW8_CS17
-#define CS18_SW8 SW8_CS18
-#define CS19_SW8 SW8_CS19
-#define CS20_SW8 SW8_CS20
-#define CS21_SW8 SW8_CS21
-#define CS22_SW8 SW8_CS22
-#define CS23_SW8 SW8_CS23
-#define CS24_SW8 SW8_CS24
-#define CS25_SW8 SW8_CS25
-#define CS26_SW8 SW8_CS26
-#define CS27_SW8 SW8_CS27
-#define CS28_SW8 SW8_CS28
-#define CS29_SW8 SW8_CS29
-#define CS30_SW8 SW8_CS30
-
-#define CS1_SW9 SW9_CS1
-#define CS2_SW9 SW9_CS2
-#define CS3_SW9 SW9_CS3
-#define CS4_SW9 SW9_CS4
-#define CS5_SW9 SW9_CS5
-#define CS6_SW9 SW9_CS6
-#define CS7_SW9 SW9_CS7
-#define CS8_SW9 SW9_CS8
-#define CS9_SW9 SW9_CS9
-#define CS10_SW9 SW9_CS10
-#define CS11_SW9 SW9_CS11
-#define CS12_SW9 SW9_CS12
-#define CS13_SW9 SW9_CS13
-#define CS14_SW9 SW9_CS14
-#define CS15_SW9 SW9_CS15
-#define CS16_SW9 SW9_CS16
-#define CS17_SW9 SW9_CS17
-#define CS18_SW9 SW9_CS18
-#define CS19_SW9 SW9_CS19
-#define CS20_SW9 SW9_CS20
-#define CS21_SW9 SW9_CS21
-#define CS22_SW9 SW9_CS22
-#define CS23_SW9 SW9_CS23
-#define CS24_SW9 SW9_CS24
-#define CS25_SW9 SW9_CS25
-#define CS26_SW9 SW9_CS26
-#define CS27_SW9 SW9_CS27
-#define CS28_SW9 SW9_CS28
-#define CS29_SW9 SW9_CS29
-#define CS30_SW9 SW9_CS30
-
-#define CS31_SW1 SW1_CS31
-#define CS32_SW1 SW1_CS32
-#define CS33_SW1 SW1_CS33
-#define CS34_SW1 SW1_CS34
-#define CS35_SW1 SW1_CS35
-#define CS36_SW1 SW1_CS36
-#define CS37_SW1 SW1_CS37
-#define CS38_SW1 SW1_CS38
-#define CS39_SW1 SW1_CS39
-
-#define CS31_SW2 SW2_CS31
-#define CS32_SW2 SW2_CS32
-#define CS33_SW2 SW2_CS33
-#define CS34_SW2 SW2_CS34
-#define CS35_SW2 SW2_CS35
-#define CS36_SW2 SW2_CS36
-#define CS37_SW2 SW2_CS37
-#define CS38_SW2 SW2_CS38
-#define CS39_SW2 SW2_CS39
-
-#define CS31_SW3 SW3_CS31
-#define CS32_SW3 SW3_CS32
-#define CS33_SW3 SW3_CS33
-#define CS34_SW3 SW3_CS34
-#define CS35_SW3 SW3_CS35
-#define CS36_SW3 SW3_CS36
-#define CS37_SW3 SW3_CS37
-#define CS38_SW3 SW3_CS38
-#define CS39_SW3 SW3_CS39
-
-#define CS31_SW4 SW4_CS31
-#define CS32_SW4 SW4_CS32
-#define CS33_SW4 SW4_CS33
-#define CS34_SW4 SW4_CS34
-#define CS35_SW4 SW4_CS35
-#define CS36_SW4 SW4_CS36
-#define CS37_SW4 SW4_CS37
-#define CS38_SW4 SW4_CS38
-#define CS39_SW4 SW4_CS39
-
-#define CS31_SW5 SW5_CS31
-#define CS32_SW5 SW5_CS32
-#define CS33_SW5 SW5_CS33
-#define CS34_SW5 SW5_CS34
-#define CS35_SW5 SW5_CS35
-#define CS36_SW5 SW5_CS36
-#define CS37_SW5 SW5_CS37
-#define CS38_SW5 SW5_CS38
-#define CS39_SW5 SW5_CS39
-
-#define CS31_SW6 SW6_CS31
-#define CS32_SW6 SW6_CS32
-#define CS33_SW6 SW6_CS33
-#define CS34_SW6 SW6_CS34
-#define CS35_SW6 SW6_CS35
-#define CS36_SW6 SW6_CS36
-#define CS37_SW6 SW6_CS37
-#define CS38_SW6 SW6_CS38
-#define CS39_SW6 SW6_CS39
-
-#define CS31_SW7 SW7_CS31
-#define CS32_SW7 SW7_CS32
-#define CS33_SW7 SW7_CS33
-#define CS34_SW7 SW7_CS34
-#define CS35_SW7 SW7_CS35
-#define CS36_SW7 SW7_CS36
-#define CS37_SW7 SW7_CS37
-#define CS38_SW7 SW7_CS38
-#define CS39_SW7 SW7_CS39
-
-#define CS31_SW8 SW8_CS31
-#define CS32_SW8 SW8_CS32
-#define CS33_SW8 SW8_CS33
-#define CS34_SW8 SW8_CS34
-#define CS35_SW8 SW8_CS35
-#define CS36_SW8 SW8_CS36
-#define CS37_SW8 SW8_CS37
-#define CS38_SW8 SW8_CS38
-#define CS39_SW8 SW8_CS39
-
-#define CS31_SW9 SW9_CS31
-#define CS32_SW9 SW9_CS32
-#define CS33_SW9 SW9_CS33
-#define CS34_SW9 SW9_CS34
-#define CS35_SW9 SW9_CS35
-#define CS36_SW9 SW9_CS36
-#define CS37_SW9 SW9_CS37
-#define CS38_SW9 SW9_CS38
-#define CS39_SW9 SW9_CS39
diff --git a/drivers/led/issi/is31fl3743a.h b/drivers/led/issi/is31fl3743a.h
index 48aeab46abd..bfff9040477 100644
--- a/drivers/led/issi/is31fl3743a.h
+++ b/drivers/led/issi/is31fl3743a.h
@@ -328,214 +328,3 @@ void is31fl3743a_flush(void);
#define SW11_CS16 0xC3
#define SW11_CS17 0xC4
#define SW11_CS18 0xC5
-
-// DEPRECATED - DO NOT USE
-
-#define CS1_SW1 SW1_CS1
-#define CS2_SW1 SW1_CS2
-#define CS3_SW1 SW1_CS3
-#define CS4_SW1 SW1_CS4
-#define CS5_SW1 SW1_CS5
-#define CS6_SW1 SW1_CS6
-#define CS7_SW1 SW1_CS7
-#define CS8_SW1 SW1_CS8
-#define CS9_SW1 SW1_CS9
-#define CS10_SW1 SW1_CS10
-#define CS11_SW1 SW1_CS11
-#define CS12_SW1 SW1_CS12
-#define CS13_SW1 SW1_CS13
-#define CS14_SW1 SW1_CS14
-#define CS15_SW1 SW1_CS15
-#define CS16_SW1 SW1_CS16
-#define CS17_SW1 SW1_CS17
-#define CS18_SW1 SW1_CS18
-
-#define CS1_SW2 SW2_CS1
-#define CS2_SW2 SW2_CS2
-#define CS3_SW2 SW2_CS3
-#define CS4_SW2 SW2_CS4
-#define CS5_SW2 SW2_CS5
-#define CS6_SW2 SW2_CS6
-#define CS7_SW2 SW2_CS7
-#define CS8_SW2 SW2_CS8
-#define CS9_SW2 SW2_CS9
-#define CS10_SW2 SW2_CS10
-#define CS11_SW2 SW2_CS11
-#define CS12_SW2 SW2_CS12
-#define CS13_SW2 SW2_CS13
-#define CS14_SW2 SW2_CS14
-#define CS15_SW2 SW2_CS15
-#define CS16_SW2 SW2_CS16
-#define CS17_SW2 SW2_CS17
-#define CS18_SW2 SW2_CS18
-
-#define CS1_SW3 SW3_CS1
-#define CS2_SW3 SW3_CS2
-#define CS3_SW3 SW3_CS3
-#define CS4_SW3 SW3_CS4
-#define CS5_SW3 SW3_CS5
-#define CS6_SW3 SW3_CS6
-#define CS7_SW3 SW3_CS7
-#define CS8_SW3 SW3_CS8
-#define CS9_SW3 SW3_CS9
-#define CS10_SW3 SW3_CS10
-#define CS11_SW3 SW3_CS11
-#define CS12_SW3 SW3_CS12
-#define CS13_SW3 SW3_CS13
-#define CS14_SW3 SW3_CS14
-#define CS15_SW3 SW3_CS15
-#define CS16_SW3 SW3_CS16
-#define CS17_SW3 SW3_CS17
-#define CS18_SW3 SW3_CS18
-
-#define CS1_SW4 SW4_CS1
-#define CS2_SW4 SW4_CS2
-#define CS3_SW4 SW4_CS3
-#define CS4_SW4 SW4_CS4
-#define CS5_SW4 SW4_CS5
-#define CS6_SW4 SW4_CS6
-#define CS7_SW4 SW4_CS7
-#define CS8_SW4 SW4_CS8
-#define CS9_SW4 SW4_CS9
-#define CS10_SW4 SW4_CS10
-#define CS11_SW4 SW4_CS11
-#define CS12_SW4 SW4_CS12
-#define CS13_SW4 SW4_CS13
-#define CS14_SW4 SW4_CS14
-#define CS15_SW4 SW4_CS15
-#define CS16_SW4 SW4_CS16
-#define CS17_SW4 SW4_CS17
-#define CS18_SW4 SW4_CS18
-
-#define CS1_SW5 SW5_CS1
-#define CS2_SW5 SW5_CS2
-#define CS3_SW5 SW5_CS3
-#define CS4_SW5 SW5_CS4
-#define CS5_SW5 SW5_CS5
-#define CS6_SW5 SW5_CS6
-#define CS7_SW5 SW5_CS7
-#define CS8_SW5 SW5_CS8
-#define CS9_SW5 SW5_CS9
-#define CS10_SW5 SW5_CS10
-#define CS11_SW5 SW5_CS11
-#define CS12_SW5 SW5_CS12
-#define CS13_SW5 SW5_CS13
-#define CS14_SW5 SW5_CS14
-#define CS15_SW5 SW5_CS15
-#define CS16_SW5 SW5_CS16
-#define CS17_SW5 SW5_CS17
-#define CS18_SW5 SW5_CS18
-
-#define CS1_SW6 SW6_CS1
-#define CS2_SW6 SW6_CS2
-#define CS3_SW6 SW6_CS3
-#define CS4_SW6 SW6_CS4
-#define CS5_SW6 SW6_CS5
-#define CS6_SW6 SW6_CS6
-#define CS7_SW6 SW6_CS7
-#define CS8_SW6 SW6_CS8
-#define CS9_SW6 SW6_CS9
-#define CS10_SW6 SW6_CS10
-#define CS11_SW6 SW6_CS11
-#define CS12_SW6 SW6_CS12
-#define CS13_SW6 SW6_CS13
-#define CS14_SW6 SW6_CS14
-#define CS15_SW6 SW6_CS15
-#define CS16_SW6 SW6_CS16
-#define CS17_SW6 SW6_CS17
-#define CS18_SW6 SW6_CS18
-
-#define CS1_SW7 SW7_CS1
-#define CS2_SW7 SW7_CS2
-#define CS3_SW7 SW7_CS3
-#define CS4_SW7 SW7_CS4
-#define CS5_SW7 SW7_CS5
-#define CS6_SW7 SW7_CS6
-#define CS7_SW7 SW7_CS7
-#define CS8_SW7 SW7_CS8
-#define CS9_SW7 SW7_CS9
-#define CS10_SW7 SW7_CS10
-#define CS11_SW7 SW7_CS11
-#define CS12_SW7 SW7_CS12
-#define CS13_SW7 SW7_CS13
-#define CS14_SW7 SW7_CS14
-#define CS15_SW7 SW7_CS15
-#define CS16_SW7 SW7_CS16
-#define CS17_SW7 SW7_CS17
-#define CS18_SW7 SW7_CS18
-
-#define CS1_SW8 SW8_CS1
-#define CS2_SW8 SW8_CS2
-#define CS3_SW8 SW8_CS3
-#define CS4_SW8 SW8_CS4
-#define CS5_SW8 SW8_CS5
-#define CS6_SW8 SW8_CS6
-#define CS7_SW8 SW8_CS7
-#define CS8_SW8 SW8_CS8
-#define CS9_SW8 SW8_CS9
-#define CS10_SW8 SW8_CS10
-#define CS11_SW8 SW8_CS11
-#define CS12_SW8 SW8_CS12
-#define CS13_SW8 SW8_CS13
-#define CS14_SW8 SW8_CS14
-#define CS15_SW8 SW8_CS15
-#define CS16_SW8 SW8_CS16
-#define CS17_SW8 SW8_CS17
-#define CS18_SW8 SW8_CS18
-
-#define CS1_SW9 SW9_CS1
-#define CS2_SW9 SW9_CS2
-#define CS3_SW9 SW9_CS3
-#define CS4_SW9 SW9_CS4
-#define CS5_SW9 SW9_CS5
-#define CS6_SW9 SW9_CS6
-#define CS7_SW9 SW9_CS7
-#define CS8_SW9 SW9_CS8
-#define CS9_SW9 SW9_CS9
-#define CS10_SW9 SW9_CS10
-#define CS11_SW9 SW9_CS11
-#define CS12_SW9 SW9_CS12
-#define CS13_SW9 SW9_CS13
-#define CS14_SW9 SW9_CS14
-#define CS15_SW9 SW9_CS15
-#define CS16_SW9 SW9_CS16
-#define CS17_SW9 SW9_CS17
-#define CS18_SW9 SW9_CS18
-
-#define CS1_SW10 SW10_CS1
-#define CS2_SW10 SW10_CS2
-#define CS3_SW10 SW10_CS3
-#define CS4_SW10 SW10_CS4
-#define CS5_SW10 SW10_CS5
-#define CS6_SW10 SW10_CS6
-#define CS7_SW10 SW10_CS7
-#define CS8_SW10 SW10_CS8
-#define CS9_SW10 SW10_CS9
-#define CS10_SW10 SW10_CS10
-#define CS11_SW10 SW10_CS11
-#define CS12_SW10 SW10_CS12
-#define CS13_SW10 SW10_CS13
-#define CS14_SW10 SW10_CS14
-#define CS15_SW10 SW10_CS15
-#define CS16_SW10 SW10_CS16
-#define CS17_SW10 SW10_CS17
-#define CS18_SW10 SW10_CS18
-
-#define CS1_SW11 SW11_CS1
-#define CS2_SW11 SW11_CS2
-#define CS3_SW11 SW11_CS3
-#define CS4_SW11 SW11_CS4
-#define CS5_SW11 SW11_CS5
-#define CS6_SW11 SW11_CS6
-#define CS7_SW11 SW11_CS7
-#define CS8_SW11 SW11_CS8
-#define CS9_SW11 SW11_CS9
-#define CS10_SW11 SW11_CS10
-#define CS11_SW11 SW11_CS11
-#define CS12_SW11 SW11_CS12
-#define CS13_SW11 SW11_CS13
-#define CS14_SW11 SW11_CS14
-#define CS15_SW11 SW11_CS15
-#define CS16_SW11 SW11_CS16
-#define CS17_SW11 SW11_CS17
-#define CS18_SW11 SW11_CS18
diff --git a/drivers/led/snled27351-mono.h b/drivers/led/snled27351-mono.h
index 43d39934cb3..b88ef25f764 100644
--- a/drivers/led/snled27351-mono.h
+++ b/drivers/led/snled27351-mono.h
@@ -21,37 +21,6 @@
#include "progmem.h"
#include "util.h"
-// ======== DEPRECATED DEFINES - DO NOT USE ========
-#ifdef CKLED2001_TIMEOUT
-# define SNLED27351_I2C_TIMEOUT CKLED2001_TIMEOUT
-#endif
-#ifdef CKLED2001_PERSISTENCE
-# define SNLED27351_I2C_PERSISTENCE CKLED2001_PERSISTENCE
-#endif
-#ifdef PHASE_CHANNEL
-# define SNLED27351_PHASE_CHANNEL PHASE_CHANNEL
-#endif
-#ifdef CKLED2001_CURRENT_TUNE
-# define SNLED27351_CURRENT_TUNE CKLED2001_CURRENT_TUNE
-#endif
-
-#define MSKPHASE_12CHANNEL SNLED27351_SCAN_PHASE_12_CHANNEL
-#define MSKPHASE_11CHANNEL SNLED27351_SCAN_PHASE_11_CHANNEL
-#define MSKPHASE_10CHANNEL SNLED27351_SCAN_PHASE_10_CHANNEL
-#define MSKPHASE_9CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
-#define MSKPHASE_8CHANNEL SNLED27351_SCAN_PHASE_8_CHANNEL
-#define MSKPHASE_7CHANNEL SNLED27351_SCAN_PHASE_7_CHANNEL
-#define MSKPHASE_6CHANNEL SNLED27351_SCAN_PHASE_6_CHANNEL
-#define MSKPHASE_5CHANNEL SNLED27351_SCAN_PHASE_5_CHANNEL
-#define MSKPHASE_4CHANNEL SNLED27351_SCAN_PHASE_4_CHANNEL
-#define MSKPHASE_3CHANNEL SNLED27351_SCAN_PHASE_3_CHANNEL
-#define MSKPHASE_2CHANNEL SNLED27351_SCAN_PHASE_2_CHANNEL
-#define MSKPHASE_1CHANNEL SNLED27351_SCAN_PHASE_1_CHANNEL
-
-#define ckled2001_led snled27351_led_t
-#define g_ckled2001_leds g_snled27351_leds
-// ========
-
#define SNLED27351_REG_COMMAND 0xFD
#define SNLED27351_COMMAND_LED_CONTROL 0x00
#define SNLED27351_COMMAND_PWM 0x01
@@ -378,209 +347,3 @@ void snled27351_sw_shutdown(uint8_t index);
#define CB12_CA14 0xBD
#define CB12_CA15 0xBE
#define CB12_CA16 0xBF
-
-// DEPRECATED - DO NOT USE
-
-#define A_1 CB1_CA1
-#define A_2 CB1_CA2
-#define A_3 CB1_CA3
-#define A_4 CB1_CA4
-#define A_5 CB1_CA5
-#define A_6 CB1_CA6
-#define A_7 CB1_CA7
-#define A_8 CB1_CA8
-#define A_9 CB1_CA9
-#define A_10 CB1_CA10
-#define A_11 CB1_CA11
-#define A_12 CB1_CA12
-#define A_13 CB1_CA13
-#define A_14 CB1_CA14
-#define A_15 CB1_CA15
-#define A_16 CB1_CA16
-
-#define B_1 CB2_CA1
-#define B_2 CB2_CA2
-#define B_3 CB2_CA3
-#define B_4 CB2_CA4
-#define B_5 CB2_CA5
-#define B_6 CB2_CA6
-#define B_7 CB2_CA7
-#define B_8 CB2_CA8
-#define B_9 CB2_CA9
-#define B_10 CB2_CA10
-#define B_11 CB2_CA11
-#define B_12 CB2_CA12
-#define B_13 CB2_CA13
-#define B_14 CB2_CA14
-#define B_15 CB2_CA15
-#define B_16 CB2_CA16
-
-#define C_1 CB3_CA1
-#define C_2 CB3_CA2
-#define C_3 CB3_CA3
-#define C_4 CB3_CA4
-#define C_5 CB3_CA5
-#define C_6 CB3_CA6
-#define C_7 CB3_CA7
-#define C_8 CB3_CA8
-#define C_9 CB3_CA9
-#define C_10 CB3_CA10
-#define C_11 CB3_CA11
-#define C_12 CB3_CA12
-#define C_13 CB3_CA13
-#define C_14 CB3_CA14
-#define C_15 CB3_CA15
-#define C_16 CB3_CA16
-
-#define D_1 CB4_CA1
-#define D_2 CB4_CA2
-#define D_3 CB4_CA3
-#define D_4 CB4_CA4
-#define D_5 CB4_CA5
-#define D_6 CB4_CA6
-#define D_7 CB4_CA7
-#define D_8 CB4_CA8
-#define D_9 CB4_CA9
-#define D_10 CB4_CA10
-#define D_11 CB4_CA11
-#define D_12 CB4_CA12
-#define D_13 CB4_CA13
-#define D_14 CB4_CA14
-#define D_15 CB4_CA15
-#define D_16 CB4_CA16
-
-#define E_1 CB5_CA1
-#define E_2 CB5_CA2
-#define E_3 CB5_CA3
-#define E_4 CB5_CA4
-#define E_5 CB5_CA5
-#define E_6 CB5_CA6
-#define E_7 CB5_CA7
-#define E_8 CB5_CA8
-#define E_9 CB5_CA9
-#define E_10 CB5_CA10
-#define E_11 CB5_CA11
-#define E_12 CB5_CA12
-#define E_13 CB5_CA13
-#define E_14 CB5_CA14
-#define E_15 CB5_CA15
-#define E_16 CB5_CA16
-
-#define F_1 CB6_CA1
-#define F_2 CB6_CA2
-#define F_3 CB6_CA3
-#define F_4 CB6_CA4
-#define F_5 CB6_CA5
-#define F_6 CB6_CA6
-#define F_7 CB6_CA7
-#define F_8 CB6_CA8
-#define F_9 CB6_CA9
-#define F_10 CB6_CA10
-#define F_11 CB6_CA11
-#define F_12 CB6_CA12
-#define F_13 CB6_CA13
-#define F_14 CB6_CA14
-#define F_15 CB6_CA15
-#define F_16 CB6_CA16
-
-#define G_1 CB7_CA1
-#define G_2 CB7_CA2
-#define G_3 CB7_CA3
-#define G_4 CB7_CA4
-#define G_5 CB7_CA5
-#define G_6 CB7_CA6
-#define G_7 CB7_CA7
-#define G_8 CB7_CA8
-#define G_9 CB7_CA9
-#define G_10 CB7_CA10
-#define G_11 CB7_CA11
-#define G_12 CB7_CA12
-#define G_13 CB7_CA13
-#define G_14 CB7_CA14
-#define G_15 CB7_CA15
-#define G_16 CB7_CA16
-
-#define H_1 CB8_CA1
-#define H_2 CB8_CA2
-#define H_3 CB8_CA3
-#define H_4 CB8_CA4
-#define H_5 CB8_CA5
-#define H_6 CB8_CA6
-#define H_7 CB8_CA7
-#define H_8 CB8_CA8
-#define H_9 CB8_CA9
-#define H_10 CB8_CA10
-#define H_11 CB8_CA11
-#define H_12 CB8_CA12
-#define H_13 CB8_CA13
-#define H_14 CB8_CA14
-#define H_15 CB8_CA15
-#define H_16 CB8_CA16
-
-#define I_1 CB9_CA1
-#define I_2 CB9_CA2
-#define I_3 CB9_CA3
-#define I_4 CB9_CA4
-#define I_5 CB9_CA5
-#define I_6 CB9_CA6
-#define I_7 CB9_CA7
-#define I_8 CB9_CA8
-#define I_9 CB9_CA9
-#define I_10 CB9_CA10
-#define I_11 CB9_CA11
-#define I_12 CB9_CA12
-#define I_13 CB9_CA13
-#define I_14 CB9_CA14
-#define I_15 CB9_CA15
-#define I_16 CB9_CA16
-
-#define J_1 CB10_CA1
-#define J_2 CB10_CA2
-#define J_3 CB10_CA3
-#define J_4 CB10_CA4
-#define J_5 CB10_CA5
-#define J_6 CB10_CA6
-#define J_7 CB10_CA7
-#define J_8 CB10_CA8
-#define J_9 CB10_CA9
-#define J_10 CB10_CA10
-#define J_11 CB10_CA11
-#define J_12 CB10_CA12
-#define J_13 CB10_CA13
-#define J_14 CB10_CA14
-#define J_15 CB10_CA15
-#define J_16 CB10_CA16
-
-#define K_1 CB11_CA1
-#define K_2 CB11_CA2
-#define K_3 CB11_CA3
-#define K_4 CB11_CA4
-#define K_5 CB11_CA5
-#define K_6 CB11_CA6
-#define K_7 CB11_CA7
-#define K_8 CB11_CA8
-#define K_9 CB11_CA9
-#define K_10 CB11_CA10
-#define K_11 CB11_CA11
-#define K_12 CB11_CA12
-#define K_13 CB11_CA13
-#define K_14 CB11_CA14
-#define K_15 CB11_CA15
-#define K_16 CB11_CA16
-
-#define L_1 CB12_CA1
-#define L_2 CB12_CA2
-#define L_3 CB12_CA3
-#define L_4 CB12_CA4
-#define L_5 CB12_CA5
-#define L_6 CB12_CA6
-#define L_7 CB12_CA7
-#define L_8 CB12_CA8
-#define L_9 CB12_CA9
-#define L_10 CB12_CA10
-#define L_11 CB12_CA11
-#define L_12 CB12_CA12
-#define L_13 CB12_CA13
-#define L_14 CB12_CA14
-#define L_15 CB12_CA15
-#define L_16 CB12_CA16
diff --git a/drivers/led/snled27351.h b/drivers/led/snled27351.h
index d902744d148..1b7f05c285f 100644
--- a/drivers/led/snled27351.h
+++ b/drivers/led/snled27351.h
@@ -21,49 +21,6 @@
#include "progmem.h"
#include "util.h"
-// ======== DEPRECATED DEFINES - DO NOT USE ========
-#ifdef DRIVER_ADDR_1
-# define SNLED27351_I2C_ADDRESS_1 DRIVER_ADDR_1
-#endif
-#ifdef DRIVER_ADDR_2
-# define SNLED27351_I2C_ADDRESS_2 DRIVER_ADDR_2
-#endif
-#ifdef DRIVER_ADDR_3
-# define SNLED27351_I2C_ADDRESS_3 DRIVER_ADDR_3
-#endif
-#ifdef DRIVER_ADDR_4
-# define SNLED27351_I2C_ADDRESS_4 DRIVER_ADDR_4
-#endif
-#ifdef CKLED2001_TIMEOUT
-# define SNLED27351_I2C_TIMEOUT CKLED2001_TIMEOUT
-#endif
-#ifdef CKLED2001_PERSISTENCE
-# define SNLED27351_I2C_PERSISTENCE CKLED2001_PERSISTENCE
-#endif
-#ifdef PHASE_CHANNEL
-# define SNLED27351_PHASE_CHANNEL PHASE_CHANNEL
-#endif
-#ifdef CKLED2001_CURRENT_TUNE
-# define SNLED27351_CURRENT_TUNE CKLED2001_CURRENT_TUNE
-#endif
-
-#define MSKPHASE_12CHANNEL SNLED27351_SCAN_PHASE_12_CHANNEL
-#define MSKPHASE_11CHANNEL SNLED27351_SCAN_PHASE_11_CHANNEL
-#define MSKPHASE_10CHANNEL SNLED27351_SCAN_PHASE_10_CHANNEL
-#define MSKPHASE_9CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
-#define MSKPHASE_8CHANNEL SNLED27351_SCAN_PHASE_8_CHANNEL
-#define MSKPHASE_7CHANNEL SNLED27351_SCAN_PHASE_7_CHANNEL
-#define MSKPHASE_6CHANNEL SNLED27351_SCAN_PHASE_6_CHANNEL
-#define MSKPHASE_5CHANNEL SNLED27351_SCAN_PHASE_5_CHANNEL
-#define MSKPHASE_4CHANNEL SNLED27351_SCAN_PHASE_4_CHANNEL
-#define MSKPHASE_3CHANNEL SNLED27351_SCAN_PHASE_3_CHANNEL
-#define MSKPHASE_2CHANNEL SNLED27351_SCAN_PHASE_2_CHANNEL
-#define MSKPHASE_1CHANNEL SNLED27351_SCAN_PHASE_1_CHANNEL
-
-#define ckled2001_led snled27351_led_t
-#define g_ckled2001_leds g_snled27351_leds
-// ========
-
#define SNLED27351_REG_COMMAND 0xFD
#define SNLED27351_COMMAND_LED_CONTROL 0x00
#define SNLED27351_COMMAND_PWM 0x01
@@ -392,209 +349,3 @@ void snled27351_sw_shutdown(uint8_t index);
#define CB12_CA14 0xBD
#define CB12_CA15 0xBE
#define CB12_CA16 0xBF
-
-// DEPRECATED - DO NOT USE
-
-#define A_1 CB1_CA1
-#define A_2 CB1_CA2
-#define A_3 CB1_CA3
-#define A_4 CB1_CA4
-#define A_5 CB1_CA5
-#define A_6 CB1_CA6
-#define A_7 CB1_CA7
-#define A_8 CB1_CA8
-#define A_9 CB1_CA9
-#define A_10 CB1_CA10
-#define A_11 CB1_CA11
-#define A_12 CB1_CA12
-#define A_13 CB1_CA13
-#define A_14 CB1_CA14
-#define A_15 CB1_CA15
-#define A_16 CB1_CA16
-
-#define B_1 CB2_CA1
-#define B_2 CB2_CA2
-#define B_3 CB2_CA3
-#define B_4 CB2_CA4
-#define B_5 CB2_CA5
-#define B_6 CB2_CA6
-#define B_7 CB2_CA7
-#define B_8 CB2_CA8
-#define B_9 CB2_CA9
-#define B_10 CB2_CA10
-#define B_11 CB2_CA11
-#define B_12 CB2_CA12
-#define B_13 CB2_CA13
-#define B_14 CB2_CA14
-#define B_15 CB2_CA15
-#define B_16 CB2_CA16
-
-#define C_1 CB3_CA1
-#define C_2 CB3_CA2
-#define C_3 CB3_CA3
-#define C_4 CB3_CA4
-#define C_5 CB3_CA5
-#define C_6 CB3_CA6
-#define C_7 CB3_CA7
-#define C_8 CB3_CA8
-#define C_9 CB3_CA9
-#define C_10 CB3_CA10
-#define C_11 CB3_CA11
-#define C_12 CB3_CA12
-#define C_13 CB3_CA13
-#define C_14 CB3_CA14
-#define C_15 CB3_CA15
-#define C_16 CB3_CA16
-
-#define D_1 CB4_CA1
-#define D_2 CB4_CA2
-#define D_3 CB4_CA3
-#define D_4 CB4_CA4
-#define D_5 CB4_CA5
-#define D_6 CB4_CA6
-#define D_7 CB4_CA7
-#define D_8 CB4_CA8
-#define D_9 CB4_CA9
-#define D_10 CB4_CA10
-#define D_11 CB4_CA11
-#define D_12 CB4_CA12
-#define D_13 CB4_CA13
-#define D_14 CB4_CA14
-#define D_15 CB4_CA15
-#define D_16 CB4_CA16
-
-#define E_1 CB5_CA1
-#define E_2 CB5_CA2
-#define E_3 CB5_CA3
-#define E_4 CB5_CA4
-#define E_5 CB5_CA5
-#define E_6 CB5_CA6
-#define E_7 CB5_CA7
-#define E_8 CB5_CA8
-#define E_9 CB5_CA9
-#define E_10 CB5_CA10
-#define E_11 CB5_CA11
-#define E_12 CB5_CA12
-#define E_13 CB5_CA13
-#define E_14 CB5_CA14
-#define E_15 CB5_CA15
-#define E_16 CB5_CA16
-
-#define F_1 CB6_CA1
-#define F_2 CB6_CA2
-#define F_3 CB6_CA3
-#define F_4 CB6_CA4
-#define F_5 CB6_CA5
-#define F_6 CB6_CA6
-#define F_7 CB6_CA7
-#define F_8 CB6_CA8
-#define F_9 CB6_CA9
-#define F_10 CB6_CA10
-#define F_11 CB6_CA11
-#define F_12 CB6_CA12
-#define F_13 CB6_CA13
-#define F_14 CB6_CA14
-#define F_15 CB6_CA15
-#define F_16 CB6_CA16
-
-#define G_1 CB7_CA1
-#define G_2 CB7_CA2
-#define G_3 CB7_CA3
-#define G_4 CB7_CA4
-#define G_5 CB7_CA5
-#define G_6 CB7_CA6
-#define G_7 CB7_CA7
-#define G_8 CB7_CA8
-#define G_9 CB7_CA9
-#define G_10 CB7_CA10
-#define G_11 CB7_CA11
-#define G_12 CB7_CA12
-#define G_13 CB7_CA13
-#define G_14 CB7_CA14
-#define G_15 CB7_CA15
-#define G_16 CB7_CA16
-
-#define H_1 CB8_CA1
-#define H_2 CB8_CA2
-#define H_3 CB8_CA3
-#define H_4 CB8_CA4
-#define H_5 CB8_CA5
-#define H_6 CB8_CA6
-#define H_7 CB8_CA7
-#define H_8 CB8_CA8
-#define H_9 CB8_CA9
-#define H_10 CB8_CA10
-#define H_11 CB8_CA11
-#define H_12 CB8_CA12
-#define H_13 CB8_CA13
-#define H_14 CB8_CA14
-#define H_15 CB8_CA15
-#define H_16 CB8_CA16
-
-#define I_1 CB9_CA1
-#define I_2 CB9_CA2
-#define I_3 CB9_CA3
-#define I_4 CB9_CA4
-#define I_5 CB9_CA5
-#define I_6 CB9_CA6
-#define I_7 CB9_CA7
-#define I_8 CB9_CA8
-#define I_9 CB9_CA9
-#define I_10 CB9_CA10
-#define I_11 CB9_CA11
-#define I_12 CB9_CA12
-#define I_13 CB9_CA13
-#define I_14 CB9_CA14
-#define I_15 CB9_CA15
-#define I_16 CB9_CA16
-
-#define J_1 CB10_CA1
-#define J_2 CB10_CA2
-#define J_3 CB10_CA3
-#define J_4 CB10_CA4
-#define J_5 CB10_CA5
-#define J_6 CB10_CA6
-#define J_7 CB10_CA7
-#define J_8 CB10_CA8
-#define J_9 CB10_CA9
-#define J_10 CB10_CA10
-#define J_11 CB10_CA11
-#define J_12 CB10_CA12
-#define J_13 CB10_CA13
-#define J_14 CB10_CA14
-#define J_15 CB10_CA15
-#define J_16 CB10_CA16
-
-#define K_1 CB11_CA1
-#define K_2 CB11_CA2
-#define K_3 CB11_CA3
-#define K_4 CB11_CA4
-#define K_5 CB11_CA5
-#define K_6 CB11_CA6
-#define K_7 CB11_CA7
-#define K_8 CB11_CA8
-#define K_9 CB11_CA9
-#define K_10 CB11_CA10
-#define K_11 CB11_CA11
-#define K_12 CB11_CA12
-#define K_13 CB11_CA13
-#define K_14 CB11_CA14
-#define K_15 CB11_CA15
-#define K_16 CB11_CA16
-
-#define L_1 CB12_CA1
-#define L_2 CB12_CA2
-#define L_3 CB12_CA3
-#define L_4 CB12_CA4
-#define L_5 CB12_CA5
-#define L_6 CB12_CA6
-#define L_7 CB12_CA7
-#define L_8 CB12_CA8
-#define L_9 CB12_CA9
-#define L_10 CB12_CA10
-#define L_11 CB12_CA11
-#define L_12 CB12_CA12
-#define L_13 CB12_CA13
-#define L_14 CB12_CA14
-#define L_15 CB12_CA15
-#define L_16 CB12_CA16
diff --git a/drivers/led/ws2812.c b/drivers/led/ws2812.c
new file mode 100644
index 00000000000..bf234c6f7dc
--- /dev/null
+++ b/drivers/led/ws2812.c
@@ -0,0 +1,15 @@
+// Copyright 2024 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "ws2812.h"
+
+#if defined(WS2812_RGBW)
+void ws2812_rgb_to_rgbw(ws2812_led_t *led) {
+ // Determine lowest value in all three colors, put that into
+ // the white channel and then shift all colors by that amount
+ led->w = MIN(led->r, MIN(led->g, led->b));
+ led->r -= led->w;
+ led->g -= led->w;
+ led->b -= led->w;
+}
+#endif
diff --git a/drivers/led/ws2812.h b/drivers/led/ws2812.h
new file mode 100644
index 00000000000..8013e5bd2dd
--- /dev/null
+++ b/drivers/led/ws2812.h
@@ -0,0 +1,97 @@
+/*
+ * 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
+
+#include "util.h"
+
+/*
+ * The WS2812 datasheets define T1H 900ns, T0H 350ns, T1L 350ns, T0L 900ns. Hence, by default, these
+ * are chosen to be conservative and avoid problems rather than for maximum throughput; in the code,
+ * this is done by default using a WS2812_TIMING parameter that accounts for the whole window (1250ns)
+ * and defining T1H and T0H; T1L and T0L are obtained by subtracting their low counterparts from the window.
+ *
+ * However, there are certain "WS2812"-like LEDs, like the SK6812s, which work in a similar
+ * communication topology but use different timings for the window and the T1L, T1H, T0L and T0H.
+ * This means that, albeit the same driver being applicable, the timings must be adapted.
+ */
+
+#ifndef WS2812_TIMING
+# define WS2812_TIMING 1250
+#endif
+
+#ifndef WS2812_T1H
+# define WS2812_T1H 900 // Width of a 1 bit in ns
+#endif
+
+#ifndef WS2812_T1L
+# define WS2812_T1L (WS2812_TIMING - WS2812_T1H) // Width of a 1 bit in ns
+#endif
+
+#ifndef WS2812_T0H
+# define WS2812_T0H 350 // Width of a 0 bit in ns
+#endif
+
+#ifndef WS2812_T0L
+# define WS2812_T0L (WS2812_TIMING - WS2812_T0H) // Width of a 0 bit in ns
+#endif
+
+/*
+ * Older WS2812s can handle a reset time (TRST) of 50us, but recent
+ * component revisions require a minimum of 280us.
+ */
+#if !defined(WS2812_TRST_US)
+# define WS2812_TRST_US 280
+#endif
+
+#if defined(RGBLIGHT_WS2812)
+# define WS2812_LED_COUNT RGBLIGHT_LED_COUNT
+#elif defined(RGB_MATRIX_WS2812)
+# define WS2812_LED_COUNT RGB_MATRIX_LED_COUNT
+#endif
+
+#define WS2812_BYTE_ORDER_RGB 0
+#define WS2812_BYTE_ORDER_GRB 1
+#define WS2812_BYTE_ORDER_BGR 2
+
+#ifndef WS2812_BYTE_ORDER
+# define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_GRB
+#endif
+
+typedef struct PACKED ws2812_led_t {
+#if (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_GRB)
+ uint8_t g;
+ uint8_t r;
+ uint8_t b;
+#elif (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_RGB)
+ uint8_t r;
+ uint8_t g;
+ uint8_t b;
+#elif (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_BGR)
+ uint8_t b;
+ uint8_t g;
+ uint8_t r;
+#endif
+#ifdef WS2812_RGBW
+ uint8_t w;
+#endif
+} ws2812_led_t;
+
+void ws2812_init(void);
+void ws2812_set_color(int index, uint8_t red, uint8_t green, uint8_t blue);
+void ws2812_set_color_all(uint8_t red, uint8_t green, uint8_t blue);
+void ws2812_flush(void);
+
+void ws2812_rgb_to_rgbw(ws2812_led_t *led);
diff --git a/drivers/painter/gc9a01/qp_gc9a01.c b/drivers/painter/gc9a01/qp_gc9a01.c
deleted file mode 100644
index fe6fa7a9d02..00000000000
--- a/drivers/painter/gc9a01/qp_gc9a01.c
+++ /dev/null
@@ -1,157 +0,0 @@
-// Copyright 2021 Paul Cotter (@gr1mr3aver)
-// Copyright 2023 Nick Brassel (@tzarc)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "qp_internal.h"
-#include "qp_comms.h"
-#include "qp_gc9a01.h"
-#include "qp_gc9a01_opcodes.h"
-#include "qp_tft_panel.h"
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// Driver storage
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-tft_panel_dc_reset_painter_device_t gc9a01_drivers[GC9A01_NUM_DEVICES] = {0};
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// Initialization
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-__attribute__((weak)) bool qp_gc9a01_init(painter_device_t device, painter_rotation_t rotation) {
- // A lot of these "unknown" opcodes are sourced from other OSS projects and are seemingly required for this display to function.
- // clang-format off
- const uint8_t gc9a01_init_sequence[] = {
- // Command, Delay, N, Data[N]
- GC9A01_SET_INTER_REG_ENABLE2, 0, 0,
- 0xEB, 0, 1, 0x14,
- GC9A01_SET_INTER_REG_ENABLE1, 0, 0,
- GC9A01_SET_INTER_REG_ENABLE2, 0, 0,
- 0xEB, 0, 1, 0x14,
- 0x84, 0, 1, 0x40,
- 0x85, 0, 1, 0xFF,
- 0x86, 0, 1, 0xFF,
- 0x87, 0, 1, 0xFF,
- 0x88, 0, 1, 0x0A,
- 0x89, 0, 1, 0x21,
- 0x8a, 0, 1, 0x00,
- 0x8b, 0, 1, 0x80,
- 0x8c, 0, 1, 0x01,
- 0x8d, 0, 1, 0x01,
- 0x8e, 0, 1, 0xFF,
- 0x8f, 0, 1, 0xFF,
- GC9A01_SET_FUNCTION_CTL, 0, 2, 0x00, 0x20,
- GC9A01_SET_PIX_FMT, 0, 1, 0x55,
- 0x90, 0, 4, 0x08, 0x08, 0x08, 0x08,
- 0xBD, 0, 1, 0x06,
- 0xBC, 0, 1, 0x00,
- 0xFF, 0, 3, 0x60, 0x01, 0x04,
- GC9A01_SET_POWER_CTL_2, 0, 1, 0x13,
- GC9A01_SET_POWER_CTL_3, 0, 1, 0x13,
- GC9A01_SET_POWER_CTL_4, 0, 1, 0x22,
- 0xBE, 0, 1, 0x11,
- 0xE1, 0, 2, 0x10, 0x0E,
- 0xDF, 0, 3, 0x21, 0x0C, 0x02,
- GC9A01_SET_GAMMA1, 0, 6, 0x45, 0x09, 0x08, 0x08, 0x26, 0x2A,
- GC9A01_SET_GAMMA2, 0, 6, 0x43, 0x70, 0x72, 0x36, 0x37, 0x6F,
- GC9A01_SET_GAMMA3, 0, 6, 0x45, 0x09, 0x08, 0x08, 0x26, 0x2A,
- GC9A01_SET_GAMMA4, 0, 6, 0x43, 0x70, 0x72, 0x36, 0x37, 0x6F,
- 0xED, 0, 2, 0x1B, 0x0B,
- 0xAE, 0, 1, 0x77,
- 0xCD, 0, 1, 0x63,
- 0x70, 0, 9, 0x07, 0x07, 0x04, 0x0E, 0x0F, 0x09, 0x07, 0x08, 0x03,
- GC9A01_SET_FRAME_RATE, 0, 1, 0x34,
- 0x62, 0, 12, 0x18, 0x0D, 0x71, 0xED, 0x70, 0x70, 0x18, 0x0F, 0x71, 0xEF, 0x70, 0x70,
- 0x63, 0, 12, 0x18, 0x11, 0x71, 0xF1, 0x70, 0x70, 0x18, 0x13, 0x71, 0xF3, 0x70, 0x70,
- 0x64, 0, 7, 0x28, 0x29, 0xF1, 0x01, 0xF1, 0x00, 0x07,
- 0x66, 0, 10, 0x3C, 0x00, 0xCD, 0x67, 0x45, 0x45, 0x10, 0x00, 0x00, 0x00,
- 0x67, 0, 10, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x01, 0x54, 0x10, 0x32, 0x98,
- 0x74, 0, 7, 0x10, 0x85, 0x80, 0x00, 0x00, 0x4E, 0x00,
- 0x98, 0, 2, 0x3E, 0x07,
- GC9A01_CMD_TEARING_OFF, 0, 0,
- GC9A01_CMD_INVERT_OFF, 0, 0,
- GC9A01_CMD_SLEEP_OFF, 120, 0,
- GC9A01_CMD_DISPLAY_ON, 20, 0
- };
- // clang-format on
-
- // clang-format on
- qp_comms_bulk_command_sequence(device, gc9a01_init_sequence, sizeof(gc9a01_init_sequence));
-
- // Configure the rotation (i.e. the ordering and direction of memory writes in GRAM)
- const uint8_t madctl[] = {
- [QP_ROTATION_0] = GC9A01_MADCTL_BGR,
- [QP_ROTATION_90] = GC9A01_MADCTL_BGR | GC9A01_MADCTL_MX | GC9A01_MADCTL_MV,
- [QP_ROTATION_180] = GC9A01_MADCTL_BGR | GC9A01_MADCTL_MX | GC9A01_MADCTL_MY,
- [QP_ROTATION_270] = GC9A01_MADCTL_BGR | GC9A01_MADCTL_MV | GC9A01_MADCTL_MY,
- };
- qp_comms_command_databyte(device, GC9A01_SET_MEM_ACS_CTL, madctl[rotation]);
-
- return true;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// Driver vtable
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-const tft_panel_dc_reset_painter_driver_vtable_t gc9a01_driver_vtable = {
- .base =
- {
- .init = qp_gc9a01_init,
- .power = qp_tft_panel_power,
- .clear = qp_tft_panel_clear,
- .flush = qp_tft_panel_flush,
- .pixdata = qp_tft_panel_pixdata,
- .viewport = qp_tft_panel_viewport,
- .palette_convert = qp_tft_panel_palette_convert_rgb565_swapped,
- .append_pixels = qp_tft_panel_append_pixels_rgb565,
- .append_pixdata = qp_tft_panel_append_pixdata,
- },
- .num_window_bytes = 2,
- .swap_window_coords = false,
- .opcodes =
- {
- .display_on = GC9A01_CMD_DISPLAY_ON,
- .display_off = GC9A01_CMD_DISPLAY_OFF,
- .set_column_address = GC9A01_SET_COL_ADDR,
- .set_row_address = GC9A01_SET_PAGE_ADDR,
- .enable_writes = GC9A01_SET_MEM,
- },
-};
-
-#ifdef QUANTUM_PAINTER_GC9A01_SPI_ENABLE
-// Factory function for creating a handle to the ILI9341 device
-painter_device_t qp_gc9a01_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode) {
- for (uint32_t i = 0; i < GC9A01_NUM_DEVICES; ++i) {
- tft_panel_dc_reset_painter_device_t *driver = &gc9a01_drivers[i];
- if (!driver->base.driver_vtable) {
- driver->base.driver_vtable = (const painter_driver_vtable_t *)&gc9a01_driver_vtable;
- driver->base.comms_vtable = (const painter_comms_vtable_t *)&spi_comms_with_dc_vtable;
- driver->base.native_bits_per_pixel = 16; // RGB565
- driver->base.panel_width = panel_width;
- driver->base.panel_height = panel_height;
- driver->base.rotation = QP_ROTATION_0;
- driver->base.offset_x = 0;
- driver->base.offset_y = 0;
-
- // SPI and other pin configuration
- driver->base.comms_config = &driver->spi_dc_reset_config;
- driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin;
- driver->spi_dc_reset_config.spi_config.divisor = spi_divisor;
- driver->spi_dc_reset_config.spi_config.lsb_first = false;
- driver->spi_dc_reset_config.spi_config.mode = spi_mode;
- driver->spi_dc_reset_config.dc_pin = dc_pin;
- driver->spi_dc_reset_config.reset_pin = reset_pin;
- driver->spi_dc_reset_config.command_params_uses_command_pin = false;
-
- if (!qp_internal_register_device((painter_device_t)driver)) {
- memset(driver, 0, sizeof(tft_panel_dc_reset_painter_device_t));
- return NULL;
- }
-
- return (painter_device_t)driver;
- }
- }
- return NULL;
-}
-
-#endif // QUANTUM_PAINTER_GC9A01_SPI_ENABLE
diff --git a/drivers/painter/gc9a01/qp_gc9a01_opcodes.h b/drivers/painter/gc9a01/qp_gc9a01_opcodes.h
deleted file mode 100644
index 828e42752b0..00000000000
--- a/drivers/painter/gc9a01/qp_gc9a01_opcodes.h
+++ /dev/null
@@ -1,77 +0,0 @@
-// Copyright 2021 Paul Cotter (@gr1mr3aver)
-// SPDX-License-Identifier: GPL-2.0-or-later
-#pragma once
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// Quantum Painter GC9A01 command opcodes
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// Level 1 command opcodes
-
-#define GC9A01_GET_ID_INFO 0x04 // Get ID information
-#define GC9A01_GET_STATUS 0x09 // Get status
-#define GC9A01_CMD_SLEEP_ON 0x10 // Enter sleep mode
-#define GC9A01_CMD_SLEEP_OFF 0x11 // Exit sleep mode
-#define GC9A01_CMD_PARTIAL_ON 0x12 // Enter partial mode
-#define GC9A01_CMD_PARTIAL_OFF 0x13 // Exit partial mode
-#define GC9A01_CMD_INVERT_ON 0x20 // Enter inverted mode
-#define GC9A01_CMD_INVERT_OFF 0x21 // Exit inverted mode
-#define GC9A01_CMD_DISPLAY_OFF 0x28 // Disable display
-#define GC9A01_CMD_DISPLAY_ON 0x29 // Enable display
-#define GC9A01_SET_COL_ADDR 0x2A // Set column address
-#define GC9A01_SET_PAGE_ADDR 0x2B // Set page address
-#define GC9A01_SET_MEM 0x2C // Set memory
-#define GC9A01_SET_PARTIAL_AREA 0x30 // Set partial area
-#define GC9A01_SET_VSCROLL 0x33 // Set vertical scroll def
-#define GC9A01_CMD_TEARING_ON 0x34 // Tearing line enabled
-#define GC9A01_CMD_TEARING_OFF 0x35 // Tearing line disabled
-#define GC9A01_SET_MEM_ACS_CTL 0x36 // Set mem access ctl
-#define GC9A01_SET_VSCROLL_ADDR 0x37 // Set vscroll start addr
-#define GC9A01_CMD_IDLE_OFF 0x38 // Exit idle mode
-#define GC9A01_CMD_IDLE_ON 0x39 // Enter idle mode
-#define GC9A01_SET_PIX_FMT 0x3A // Set pixel format
-#define GC9A01_SET_MEM_CONT 0x3C // Set memory continue
-#define GC9A01_SET_TEAR_SCANLINE 0x44 // Set tearing scanline
-#define GC9A01_GET_TEAR_SCANLINE 0x45 // Get tearing scanline
-#define GC9A01_SET_BRIGHTNESS 0x51 // Set brightness
-#define GC9A01_SET_DISPLAY_CTL 0x53 // Set display ctl
-#define GC9A01_GET_ID1 0xDA // Get ID1
-#define GC9A01_GET_ID2 0xDB // Get ID2
-#define GC9A01_GET_ID3 0xDC // Get ID3
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// Level 2 command opcodes
-
-#define GC9A01_SET_RGB_IF_SIG_CTL 0xB0 // RGB IF signal ctl
-#define GC9A01_SET_BLANKING_PORCH_CTL 0xB5 // Set blanking porch ctl
-#define GC9A01_SET_FUNCTION_CTL 0xB6 // Set function ctl
-#define GC9A01_SET_TEARING_EFFECT 0xBA // Set backlight ctl 3
-#define GC9A01_SET_IF_CTL 0xF6 // Set interface control
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// Level 3 command opcodes
-
-#define GC9A01_SET_FRAME_RATE 0xE8 // Set frame rate
-#define GC9A01_SET_SPI_2DATA 0xE9 // Set frame rate
-#define GC9A01_SET_POWER_CTL_1 0xC1 // Set power ctl 1
-#define GC9A01_SET_POWER_CTL_2 0xC3 // Set power ctl 2
-#define GC9A01_SET_POWER_CTL_3 0xC4 // Set power ctl 3
-#define GC9A01_SET_POWER_CTL_4 0xC9 // Set power ctl 4
-#define GC9A01_SET_POWER_CTL_7 0xA7 // Set power ctl 7
-#define GC9A01_SET_INTER_REG_ENABLE1 0xFE // Enable Inter Register 1
-#define GC9A01_SET_INTER_REG_ENABLE2 0xEF // Enable Inter Register 2
-#define GC9A01_SET_GAMMA1 0xF0 //
-#define GC9A01_SET_GAMMA2 0xF1
-#define GC9A01_SET_GAMMA3 0xF2
-#define GC9A01_SET_GAMMA4 0xF3
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// MADCTL Flags
-#define GC9A01_MADCTL_MY 0b10000000
-#define GC9A01_MADCTL_MX 0b01000000
-#define GC9A01_MADCTL_MV 0b00100000
-#define GC9A01_MADCTL_ML 0b00010000
-#define GC9A01_MADCTL_RGB 0b00000000
-#define GC9A01_MADCTL_BGR 0b00001000
-#define GC9A01_MADCTL_MH 0b00000100
diff --git a/drivers/painter/gc9xxx/qp_gc9107.c b/drivers/painter/gc9xxx/qp_gc9107.c
new file mode 100644
index 00000000000..108344da4f2
--- /dev/null
+++ b/drivers/painter/gc9xxx/qp_gc9107.c
@@ -0,0 +1,114 @@
+// Copyright 2024 Fernando Birra
+// SPDX-License-Identifier: GPL-2.0-or-later
+#include "qp_internal.h"
+#include "qp_comms.h"
+#include "qp_gc9107.h"
+#include "qp_gc9xxx_opcodes.h"
+#include "qp_gc9107_opcodes.h"
+#include "qp_tft_panel.h"
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Driver storage
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+tft_panel_dc_reset_painter_device_t gc9107_drivers[GC9107_NUM_DEVICES] = {0};
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Initialization
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+__attribute__((weak)) bool qp_gc9107_init(painter_device_t device, painter_rotation_t rotation) {
+ // A lot of these "unknown" opcodes are sourced from other OSS projects and are seemingly required for this display to function.
+ // clang-format off
+ const uint8_t gc9107_init_sequence[] = {
+ GC9XXX_SET_INTER_REG_ENABLE1, 5, 0,
+ GC9XXX_SET_INTER_REG_ENABLE2, 5, 0,
+ GC9107_SET_FUNCTION_CTL6, 0, 1, GC9107_ALLOW_SET_COMPLEMENT_RGB | 0x08 | GC9107_ALLOW_SET_FRAMERATE,
+ GC9107_SET_COMPLEMENT_RGB, 0, 1, GC9107_COMPLEMENT_WITH_LSB,
+ 0xAB, 0, 1, 0x0E,
+ GC9107_SET_FRAME_RATE, 0, 1, 0x19,
+ GC9XXX_SET_PIXEL_FORMAT, 0, 1, GC9107_PIXEL_FORMAT_16_BPP_IFPF,
+ GC9XXX_CMD_SLEEP_OFF, 120, 0,
+ GC9XXX_CMD_DISPLAY_ON, 20, 0
+ };
+
+ // clang-format on
+ qp_comms_bulk_command_sequence(device, gc9107_init_sequence, sizeof(gc9107_init_sequence));
+
+ // Configure the rotation (i.e. the ordering and direction of memory writes in GRAM)
+ const uint8_t madctl[] = {
+ [QP_ROTATION_0] = GC9XXX_MADCTL_BGR,
+ [QP_ROTATION_90] = GC9XXX_MADCTL_BGR | GC9XXX_MADCTL_MX | GC9XXX_MADCTL_MV,
+ [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;
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Driver vtable
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+const tft_panel_dc_reset_painter_driver_vtable_t gc9107_driver_vtable = {
+ .base =
+ {
+ .init = qp_gc9107_init,
+ .power = qp_tft_panel_power,
+ .clear = qp_tft_panel_clear,
+ .flush = qp_tft_panel_flush,
+ .pixdata = qp_tft_panel_pixdata,
+ .viewport = qp_tft_panel_viewport,
+ .palette_convert = qp_tft_panel_palette_convert_rgb565_swapped,
+ .append_pixels = qp_tft_panel_append_pixels_rgb565,
+ .append_pixdata = qp_tft_panel_append_pixdata,
+ },
+ .num_window_bytes = 2,
+ .swap_window_coords = false,
+ .opcodes =
+ {
+ .display_on = GC9XXX_CMD_DISPLAY_ON,
+ .display_off = GC9XXX_CMD_DISPLAY_OFF,
+ .set_column_address = GC9XXX_SET_COL_ADDR,
+ .set_row_address = GC9XXX_SET_ROW_ADDR,
+ .enable_writes = GC9XXX_SET_MEM,
+ },
+};
+
+#ifdef QUANTUM_PAINTER_GC9107_SPI_ENABLE
+// Factory function for creating a handle to the GC9107 device
+painter_device_t qp_gc9107_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode) {
+ for (uint32_t i = 0; i < GC9107_NUM_DEVICES; ++i) {
+ tft_panel_dc_reset_painter_device_t *driver = &gc9107_drivers[i];
+ if (!driver->base.driver_vtable) {
+ driver->base.driver_vtable = (const painter_driver_vtable_t *)&gc9107_driver_vtable;
+ driver->base.comms_vtable = (const painter_comms_vtable_t *)&spi_comms_with_dc_vtable;
+ driver->base.native_bits_per_pixel = 16; // RGB565
+ driver->base.panel_width = panel_width;
+ driver->base.panel_height = panel_height;
+ driver->base.rotation = QP_ROTATION_0;
+ driver->base.offset_x = 2;
+ driver->base.offset_y = 1;
+
+ // SPI and other pin configuration
+ driver->base.comms_config = &driver->spi_dc_reset_config;
+ driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin;
+ driver->spi_dc_reset_config.spi_config.divisor = spi_divisor;
+ driver->spi_dc_reset_config.spi_config.lsb_first = false;
+ driver->spi_dc_reset_config.spi_config.mode = spi_mode;
+ driver->spi_dc_reset_config.dc_pin = dc_pin;
+ driver->spi_dc_reset_config.reset_pin = reset_pin;
+ driver->spi_dc_reset_config.command_params_uses_command_pin = false;
+
+ if (!qp_internal_register_device((painter_device_t)driver)) {
+ memset(driver, 0, sizeof(tft_panel_dc_reset_painter_device_t));
+ return NULL;
+ }
+
+ return (painter_device_t)driver;
+ }
+ }
+ return NULL;
+}
+
+#endif // QUANTUM_PAINTER_GC9107_SPI_ENABLE
diff --git a/drivers/painter/gc9xxx/qp_gc9107.h b/drivers/painter/gc9xxx/qp_gc9107.h
new file mode 100644
index 00000000000..b0b08f76654
--- /dev/null
+++ b/drivers/painter/gc9xxx/qp_gc9107.h
@@ -0,0 +1,37 @@
+// Copyright 2024 Fernando Birra (@gr1mr3aver)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+#include "gpio.h"
+#include "qp_internal.h"
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Quantum Painter GC9107 configurables (add to your keyboard's config.h)
+
+#ifndef GC9107_NUM_DEVICES
+/**
+ * @def This controls the maximum number of GC9107 devices that Quantum Painter can communicate with at any one time.
+ * Increasing this number allows for multiple displays to be used.
+ */
+# define GC9107_NUM_DEVICES 1
+#endif
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Quantum Painter GC9107 device factories
+
+#ifdef QUANTUM_PAINTER_GC9107_SPI_ENABLE
+/**
+ * Factory method for an GC9107 SPI LCD device.
+ *
+ * @param panel_width[in] the width of the display panel
+ * @param panel_height[in] the height of the display panel
+ * @param chip_select_pin[in] the GPIO pin used for SPI chip select
+ * @param dc_pin[in] the GPIO pin used for D/C control
+ * @param reset_pin[in] the GPIO pin used for RST
+ * @param spi_divisor[in] the SPI divisor to use when communicating with the display
+ * @param spi_mode[in] the SPI mode to use when communicating with the display
+ * @return the device handle used with all drawing routines in Quantum Painter
+ */
+painter_device_t qp_gc9107_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode);
+
+#endif // QUANTUM_PAINTER_GC9107_SPI_ENABLE
diff --git a/drivers/painter/gc9xxx/qp_gc9107_opcodes.h b/drivers/painter/gc9xxx/qp_gc9107_opcodes.h
new file mode 100644
index 00000000000..e9b308eb49b
--- /dev/null
+++ b/drivers/painter/gc9xxx/qp_gc9107_opcodes.h
@@ -0,0 +1,135 @@
+// Copyright 2024 Fernando Birra
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Quantum Painter GC9107 command opcodes
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#define GC9107_GET_POWER_MODE 0x0A // Get power mode
+#define GC9107_GET_MADCTL 0x0B // Get MADCTL
+#define GC9107_GET_PIXEL_FMT 0x0C // Get pixel format
+#define GC9107_GET_IMAGE_FMT 0x0D // Get image format
+#define GC9107_GET_SIGNAL_MODE 0x0E // Get signal mode
+#define GC9107_GET_DIAG_RESULT 0x0F // Get self-diagnostic results
+
+#define GC9107_SET_FRAME_RATE 0xA8 // Set frame rate
+#define GC9107_SET_COMPLEMENT_RGB 0xAC // Set complement Principle RGB
+#define GC9107_SET_BLANK_PORCH 0xAD // Set blank porch control, 0;front_porch[6:0],0;back_porch[6:0]
+#define GC9107_SET_FUNCTION_CTL1 0xB1 // Set access to AVDD_VCL_CLK and VGH_VGL_CLK commands
+#define GC9107_SET_FUNCTION_CTL2 0xB2 // Set access to VGH, VGH control commands
+#define GC9107_SET_FUNCTION_CTL3 0xB3 // Set access to Gamma control commands
+#define GC9107_SET_DISPLAY_INVERSION 0xB4 // Set Display Inversion control
+#define GC9107_SET_FUNCTION_CTL6 0xB6 // Set access to commands SET_FRAME_RATE, SET_COMPLEMENT_RGB and SET_BLANK_PORCH
+#define GC9107_SET_CUSTOM_ID_INFO 0xD3 // Set customized display id information
+#define GC9107_AVDD_VCL_CLK 0xE3 // AVDD_CLK
+#define GC9107_SET_VGH 0xE8 // Set VGH
+#define GC9107_SET_VGL 0xE9 // Set VGL
+#define GC9107_SET_VGH_VGL_CLK 0xEA // Set VGH and VGL clock divisors
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// GC9107 Parameter constants
+
+// Parameter values for
+// GC9107_SET_PIXEL_FORMAT
+#define GC9107_PIXEL_FORMAT_12_BPP_IFPF (0b001 << 0) // 12 bits per pixel
+#define GC9107_PIXEL_FORMAT_16_BPP_IFPF (0b101 << 0) // 16 bits per pixel
+#define GC9107_PIXEL_FORMAT_18_BPP_IFPB (0b110 << 0) // 18 bits per pixel
+
+// Parameter values for
+// GC9107_SET_COMPLEMENT_RGB
+#define GC9107_COMPLEMENT_WITH_0 0x00 // R0 <- B0 <- 0, except if data is FFh
+#define GC9107_COMPLEMENT_WITH_1 0x40 // R0 <- B0 <- 1, except if data is 00h
+#define GC9107_COMPLEMENT_WITH_MSB 0x80 // R0 <- R5, B0 <- B5
+#define GC9107_COMPLEMENT_WITH_LSB 0xC0 // R0 <- B0 <- G0
+// Parameter masks for
+// GC9107_SET_FUNCTION_CTL1
+#define GC9107_ALLOW_AVDD_VCL_CLK 0b00001000 // Allow AVDD_VCL_CLK command
+// Parameter masks for
+// GC9107_SET_FUNCTION_CTL2
+#define GC9107_ALLOW_SET_VGH 0b00000001 // Allow GC9107_SET_VGH
+#define GC9107_ALLOW_SET_VGL 0b00000010 // Allow GC9107_SET_VGL
+#define GC9107_ALLOW_SET_VGH_VGL_CLK 0b00000100 // Allow GC9107_SET_VGH_VGL_CLK
+// Parameter masks for
+// GC9107_SET_FUNCTION_CTL3
+#define GC9107_ALLOW_SET_GAMMA1 0b00000001 // Allow GC9107_SET_GAMMA1
+#define GC9107_ALLOW_SET_GAMMA2 0b00000010 // Allow GC9107_SET_GAMMA2
+// Parameter mask for
+// GC9107_SET_FUNCTION_CTL6
+#define GC9107_ALLOW_SET_FRAMERATE 0b000000001 // Allow GC9107_SET_FRAME_RATE
+#define GC9107_ALLOW_SET_COMPLEMENT_RGB 0b000010000 // Allow GC9107_SET_COMPLEMENT_RGB
+#define GC9107_ALLOW_SET_BLANK_PORCH 0b000100000 // Allow GFC9107_SET_BLANK_PORCH
+// Parameter values for
+// AVDD_CLK_AD part (Most significant nibble)
+#define GC9107_AVDD_CLK_AD_2T 0x00
+#define GC9107_AVDD_CLK_AD_3T 0x10
+#define GC9107_AVDD_CLK_AD_4T 0x20
+#define GC9107_AVDD_CLK_AD_5T 0x30
+#define GC9107_AVDD_CLK_AD_6T 0x40
+#define GC9107_AVDD_CLK_AD_7T 0x50
+#define GC9107_AVDD_CLK_AD_8T 0x60
+#define GC9107_AVDD_CLK_AD_9T 0x70
+// Parameter values for
+// VCL_CLK_AD part (Least significant nibble)
+#define GC9107_VCL_CLK_AD_2T 0x00
+#define GC9107_VCL_CLK_AD_3T 0x01
+#define GC9107_VCL_CLK_AD_4T 0x02
+#define GC9107_VCL_CLK_AD_5T 0x03
+#define GC9107_VCL_CLK_AD_6T 0x04
+#define GC9107_VCL_CLK_AD_7T 0x05
+#define GC9107_VCL_CLK_AD_8T 0x06
+#define GC9107_VCL_CLK_AD_9T 0x07
+// Parameter values for
+// GC9107_SET_VGH
+#define GC9107_VGH_P100 0x20 // +10 V
+#define GC9107_VGH_P110 0x21 // +11 V
+#define GC9107_VGH_P120 0x22 // +12 V
+#define GC9107_VGH_P130 0x23 // +13 V
+#define GC9107_VGH_P140 0x24 // +14 V
+#define GC9107_VGH_P150 0x25 // +15 V
+// Parameter values for
+// GC9107_SET_VGL
+#define VGL_N_075 0x40 // -7.5 V
+#define VGL_N_085 0x41 // -8.5 V
+#define VGL_N_095 0x42 // -9.5 V
+#define VGL_N_100 0x43 // -10.0 V
+#define VGL_N_105 0x44 // -10.5 V
+#define VGL_N_110 0x45 // -11.0 V
+#define VGL_N_120 0x46 // -12.0 V
+#define VGL_N_130 0x47 // -13.0 V
+// Parameter masks for
+// GC9107_SET_VGH_VGL_CLK (VGH Divisor)
+#define GC9107_VGH_CLK_DIV_2 0x00 // Clock divisor = 2 -> 6.0 Mhz
+#define GC9107_VGH_CLK_DIV_3 0x10 // Clock divisor = 3 -> 4.0 Mhz
+#define GC9107_VGH_CLK_DIV_4 0x20 // Clock divisor = 4 -> 3.0 Mhz
+#define GC9107_VGH_CLK_DIV_5 0x30 // Clock divisor = 5 -> 2.4 Mhz
+#define GC9107_VGH_CLK_DIV_6 0x40 // Clock divisor = 6 -> 2.0 Mhz
+#define GC9107_VGH_CLK_DIV_7 0x50 // Clock divisor = 7 -> 1.7 Mhz
+#define GC9107_VGH_CLK_DIV_8 0x60 // Clock divisor = 8 -> 1.5 Mhz
+#define GC9107_VGH_CLK_DIV_9 0x70 // Clock divisor = 9 -> 1.3 Mhz
+#define GC9107_VGH_CLK_DIV_10 0x80 // Clock divisor = 10 -> 1.2 Mhz
+#define GC9107_VGH_CLK_DIV_12 0x90 // Clock divisor = 12 -> 1.0 Mhz
+#define GC9107_VGH_CLK_DIV_15 0xA0 // Clock divisor = 15 -> 0.8 Mhz
+#define GC9107_VGH_CLK_DIV_20 0xB0 // Clock divisor = 20 -> 0.6 Mhz
+#define GC9107_VGH_CLK_DIV_24 0xC0 // Clock divisor = 24 -> 0.5 Mhz
+#define GC9107_VGH_CLK_DIV_30 0xD0 // Clock divisor = 30 -> 0.4 Mhz
+#define GC9107_VGH_CLK_DIV_40 0xE0 // Clock divisor = 40 -> 0.3 Mhz
+#define GC9107_VGH_CLK_DIV_60 0xE0 // Clock divisor = 40 -> 0.2 Mhz
+// Parameter masks for
+// GC9107_SET_VGH_VGL_CLK (VGL Divisor)
+#define GC9107_VGL_CLK_DIV_2 0x00 // Clock divisor = 2 -> 6.0 Mhz
+#define GC9107_VGL_CLK_DIV_3 0x01 // Clock divisor = 3 -> 4.0 Mhz
+#define GC9107_VGL_CLK_DIV_4 0x02 // Clock divisor = 4 -> 3.0 Mhz
+#define GC9107_VGL_CLK_DIV_5 0x03 // Clock divisor = 5 -> 2.4 Mhz
+#define GC9107_VGL_CLK_DIV_6 0x04 // Clock divisor = 6 -> 2.0 Mhz
+#define GC9107_VGL_CLK_DIV_7 0x05 // Clock divisor = 7 -> 1.7 Mhz
+#define GC9107_VGL_CLK_DIV_8 0x06 // Clock divisor = 8 -> 1.5 Mhz
+#define GC9107_VGL_CLK_DIV_9 0x07 // Clock divisor = 9 -> 1.3 Mhz
+#define GC9107_VGL_CLK_DIV_10 0x08 // Clock divisor = 10 -> 1.2 Mhz
+#define GC9107_VGL_CLK_DIV_12 0x09 // Clock divisor = 12 -> 1.0 Mhz
+#define GC9107_VGL_CLK_DIV_15 0x0A // Clock divisor = 15 -> 0.8 Mhz
+#define GC9107_VGL_CLK_DIV_20 0x0B // Clock divisor = 20 -> 0.6 Mhz
+#define GC9107_VGL_CLK_DIV_24 0x0C // Clock divisor = 24 -> 0.5 Mhz
+#define GC9107_VGL_CLK_DIV_30 0x0D // Clock divisor = 30 -> 0.4 Mhz
+#define GC9107_VGL_CLK_DIV_40 0x0E // Clock divisor = 40 -> 0.3 Mhz
+#define GC9107_VGL_CLK_DIV_60 0x0E // Clock divisor = 40 -> 0.2 Mhz
diff --git a/drivers/painter/gc9xxx/qp_gc9a01.c b/drivers/painter/gc9xxx/qp_gc9a01.c
new file mode 100644
index 00000000000..f037a4cc87b
--- /dev/null
+++ b/drivers/painter/gc9xxx/qp_gc9a01.c
@@ -0,0 +1,127 @@
+// Copyright 2021 Paul Cotter (@gr1mr3aver)
+// Copyright 2023 Nick Brassel (@tzarc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "qp_internal.h"
+#include "qp_comms.h"
+#include "qp_gc9a01.h"
+#include "qp_gc9xxx_opcodes.h"
+#include "qp_gc9a01_opcodes.h"
+#include "qp_tft_panel.h"
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Driver storage
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+tft_panel_dc_reset_painter_device_t gc9a01_drivers[GC9A01_NUM_DEVICES] = {0};
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Initialization
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+__attribute__((weak)) bool qp_gc9a01_init(painter_device_t device, painter_rotation_t rotation) {
+ // A lot of these "unknown" opcodes are sourced from other OSS projects and are seemingly required for this display to function.
+ // clang-format off
+
+ const uint8_t gc9a01_init_sequence[] = {
+ // Command, Delay, N, Data[N]
+ GC9XXX_SET_INTER_REG_ENABLE1, 0, 0,
+ GC9XXX_SET_INTER_REG_ENABLE2, 0, 0,
+ 0x84, 0, 1, 0x40,
+ GC9A01_SET_FUNCTION_CTL, 0, 3, 0x00, GC9A01_SOURCE_OUTPUT_SCAN_DIRECTION_S360_TO_S1 | GC9A01_GATE_OUTPUT_SCAN_DIRECTION_G1_TO_G32, GC9A01_LCD_DRIVE_LINE_240, // Only works if the previous command is present (undocumented)
+ GC9A01_SET_POWER_CTL_2, 0, 1, 0x20,
+ GC9A01_SET_POWER_CTL_3, 0, 1, 0x20,
+ GC9A01_SET_POWER_CTL_4, 0, 1, 0x22,
+ GC9XXX_SET_GAMMA1, 0, 6, 0x45, 0x09, 0x08, 0x08, 0x26, 0x2A,
+ GC9XXX_SET_GAMMA2, 0, 6, 0x43, 0x70, 0x72, 0x36, 0x37, 0x6F,
+ GC9A01_SET_GAMMA3, 0, 6, 0x45, 0x09, 0x08, 0x08, 0x26, 0x2A,
+ GC9A01_SET_GAMMA4, 0, 6, 0x43, 0x70, 0x72, 0x36, 0x37, 0x6F,
+ 0x66, 0, 10, 0x3C, 0x00, 0xCD, 0x67, 0x45, 0x45, 0x10, 0x00, 0x00, 0x00,
+ 0x67, 0, 10, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x01, 0x54, 0x10, 0x32, 0x98,
+ GC9XXX_CMD_TEARING_ON, 0, 0,
+ GC9XXX_SET_PIXEL_FORMAT, 0, 1, GC9A01_PIXEL_FORMAT_16_BPP_DBI,
+ GC9XXX_CMD_INVERT_ON, 0, 0,
+ GC9XXX_CMD_SLEEP_OFF, 120, 0,
+ GC9XXX_CMD_DISPLAY_ON, 20, 0
+ };
+ // clang-format on
+
+ qp_comms_bulk_command_sequence(device, gc9a01_init_sequence, sizeof(gc9a01_init_sequence));
+
+ // Configure the rotation (i.e. the ordering and direction of memory writes in GRAM)
+ const uint8_t madctl[] = {
+ [QP_ROTATION_0] = GC9XXX_MADCTL_BGR,
+ [QP_ROTATION_90] = GC9XXX_MADCTL_BGR | GC9XXX_MADCTL_MX | GC9XXX_MADCTL_MV,
+ [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;
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Driver vtable
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+const tft_panel_dc_reset_painter_driver_vtable_t gc9a01_driver_vtable = {
+ .base =
+ {
+ .init = qp_gc9a01_init,
+ .power = qp_tft_panel_power,
+ .clear = qp_tft_panel_clear,
+ .flush = qp_tft_panel_flush,
+ .pixdata = qp_tft_panel_pixdata,
+ .viewport = qp_tft_panel_viewport,
+ .palette_convert = qp_tft_panel_palette_convert_rgb565_swapped,
+ .append_pixels = qp_tft_panel_append_pixels_rgb565,
+ .append_pixdata = qp_tft_panel_append_pixdata,
+ },
+ .num_window_bytes = 2,
+ .swap_window_coords = false,
+ .opcodes =
+ {
+ .display_on = GC9XXX_CMD_DISPLAY_ON,
+ .display_off = GC9XXX_CMD_DISPLAY_OFF,
+ .set_column_address = GC9XXX_SET_COL_ADDR,
+ .set_row_address = GC9XXX_SET_ROW_ADDR,
+ .enable_writes = GC9XXX_SET_MEM,
+ },
+};
+
+#ifdef QUANTUM_PAINTER_GC9A01_SPI_ENABLE
+// Factory function for creating a handle to the ILI9341 device
+painter_device_t qp_gc9a01_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode) {
+ for (uint32_t i = 0; i < GC9A01_NUM_DEVICES; ++i) {
+ tft_panel_dc_reset_painter_device_t *driver = &gc9a01_drivers[i];
+ if (!driver->base.driver_vtable) {
+ driver->base.driver_vtable = (const painter_driver_vtable_t *)&gc9a01_driver_vtable;
+ driver->base.comms_vtable = (const painter_comms_vtable_t *)&spi_comms_with_dc_vtable;
+ driver->base.native_bits_per_pixel = 16; // RGB565
+ driver->base.panel_width = panel_width;
+ driver->base.panel_height = panel_height;
+ driver->base.rotation = QP_ROTATION_0;
+ driver->base.offset_x = 0;
+ driver->base.offset_y = 0;
+
+ // SPI and other pin configuration
+ driver->base.comms_config = &driver->spi_dc_reset_config;
+ driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin;
+ driver->spi_dc_reset_config.spi_config.divisor = spi_divisor;
+ driver->spi_dc_reset_config.spi_config.lsb_first = false;
+ driver->spi_dc_reset_config.spi_config.mode = spi_mode;
+ driver->spi_dc_reset_config.dc_pin = dc_pin;
+ driver->spi_dc_reset_config.reset_pin = reset_pin;
+ driver->spi_dc_reset_config.command_params_uses_command_pin = false;
+
+ if (!qp_internal_register_device((painter_device_t)driver)) {
+ memset(driver, 0, sizeof(tft_panel_dc_reset_painter_device_t));
+ return NULL;
+ }
+
+ return (painter_device_t)driver;
+ }
+ }
+ return NULL;
+}
+
+#endif // QUANTUM_PAINTER_GC9A01_SPI_ENABLE
diff --git a/drivers/painter/gc9a01/qp_gc9a01.h b/drivers/painter/gc9xxx/qp_gc9a01.h
similarity index 100%
rename from drivers/painter/gc9a01/qp_gc9a01.h
rename to drivers/painter/gc9xxx/qp_gc9a01.h
diff --git a/drivers/painter/gc9xxx/qp_gc9a01_opcodes.h b/drivers/painter/gc9xxx/qp_gc9a01_opcodes.h
new file mode 100644
index 00000000000..5853902e683
--- /dev/null
+++ b/drivers/painter/gc9xxx/qp_gc9a01_opcodes.h
@@ -0,0 +1,104 @@
+// Copyright 2021 Paul Cotter (@gr1mr3aver)
+// Copyright 2024 Fernando Birra
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Quantum Painter GC9A01 command opcodes
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#define GC9A01_SET_MEM_CONT 0x3C // Set memory continue
+#define GC9A01_SET_BRIGHTNESS 0x51 // Set brightness
+#define GC9A01_SET_DISPLAY_CTL 0x53 // Set display ctl
+
+#define GC9A01_SET_RGB_IF_SIG_CTL 0xB0 // RGB IF signal ctl
+#define GC9A01_SET_BLANKING_PORCH_CTL 0xB5 // Set blanking porch ctl
+#define GC9A01_SET_FUNCTION_CTL 0xB6 // Set function ctl
+#define GC9A01_SET_TEARING_EFFECT 0xBA // Set tering effect control
+#define GC9A01_SET_POWER_CTL_7 0xA7 // Set power ctl 7
+#define GC9A01_SET_POWER_CTL_1 0xC1 // Set power ctl 1
+#define GC9A01_SET_POWER_CTL_2 0xC3 // Set power ctl 2
+#define GC9A01_SET_POWER_CTL_3 0xC4 // Set power ctl 3
+#define GC9A01_SET_POWER_CTL_4 0xC9 // Set power ctl 4
+#define GC9A01_SET_FRAME_RATE 0xE8 // Set frame rate
+#define GC9A01_SET_SPI_2DATA 0xE9 // Set frame rate
+#define GC9A01_SET_GAMMA3 0xF2 // Set gamma 3
+#define GC9A01_SET_GAMMA4 0xF3 // Set gamma 4
+#define GC9A01_SET_IF_CTL 0xF6 // Set interface control
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// GC9A01 MADCTL Flags
+#define GC9A01_MADCTL_MH 0b00000100
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// GC9A01 Parameter constants
+
+// Parameter values for
+// GC9A01_SET_PIXEL_FORMAT
+#define GC9A01_PIXEL_FORMAT_12_BPP_DBI (0b011 << 0) // 12 bits/pixel MCU interface format
+#define GC9A01_PIXEL_FORMAT_16_BPP_DBI (0b101 << 0) // 16 bits/pixel MCU interface format
+#define GC9A01_PIXEL_FORMAT_18_BPP_DBI (0b110 << 0) // 18 bits/pixel MCU interface format
+#define GC9A01_PIXEL_FORMAT_16_BPP_DPI (0b101 << 4) // 16 bits/pixel RGB interface format
+#define GC9A01_PIXEL_FORMAT_18_BPP_DPI (0b110 << 4) // 18 bits/pixel RGB interface format
+
+// Parameter values for
+// GC9A01_SET_FUNCTION_CTL (2nd parameter)
+#define GC9A01_SOURCE_OUTPUT_SCAN_DIRECTION_S1_TO_S360 0b00000000
+#define GC9A01_SOURCE_OUTPUT_SCAN_DIRECTION_S360_TO_S1 0b00100000
+#define GC9A01_GATE_OUTPUT_SCAN_DIRECTION_G1_TO_G32 0b00000000
+#define GC9A01_GATE_OUTPUT_SCAN_DIRECTION_G32_TO_G1 0b01000000
+#define GC9A01_SCAN_MODE_INTER 0x10
+
+// Parameter values for
+// GC9A01_SET_FUNCTION_CTL (3rd parameter)
+#define GC9A01_LCD_DRIVE_LINE_16 0x01
+#define GC9A01_LCD_DRIVE_LINE_24 0x02
+#define GC9A01_LCD_DRIVE_LINE_32 0x03
+#define GC9A01_LCD_DRIVE_LINE_40 0x04
+#define GC9A01_LCD_DRIVE_LINE_48 0x05
+#define GC9A01_LCD_DRIVE_LINE_56 0x06
+#define GC9A01_LCD_DRIVE_LINE_64 0x07
+#define GC9A01_LCD_DRIVE_LINE_72 0x08
+#define GC9A01_LCD_DRIVE_LINE_80 0x09
+#define GC9A01_LCD_DRIVE_LINE_88 0x0A
+#define GC9A01_LCD_DRIVE_LINE_96 0x0B
+#define GC9A01_LCD_DRIVE_LINE_104 0x0C
+#define GC9A01_LCD_DRIVE_LINE_112 0x0D
+#define GC9A01_LCD_DRIVE_LINE_120 0x0E
+#define GC9A01_LCD_DRIVE_LINE_128 0x0F
+#define GC9A01_LCD_DRIVE_LINE_136 0x10
+#define GC9A01_LCD_DRIVE_LINE_144 0x11
+#define GC9A01_LCD_DRIVE_LINE_152 0x12
+#define GC9A01_LCD_DRIVE_LINE_160 0x13
+#define GC9A01_LCD_DRIVE_LINE_168 0x14
+#define GC9A01_LCD_DRIVE_LINE_176 0x15
+#define GC9A01_LCD_DRIVE_LINE_184 0x16
+#define GC9A01_LCD_DRIVE_LINE_192 0x17
+#define GC9A01_LCD_DRIVE_LINE_200 0x18
+#define GC9A01_LCD_DRIVE_LINE_208 0x19
+#define GC9A01_LCD_DRIVE_LINE_216 0x1A
+#define GC9A01_LCD_DRIVE_LINE_224 0x1B
+#define GC9A01_LCD_DRIVE_LINE_232 0x1C
+#define GC9A01_LCD_DRIVE_LINE_240 0x1D
+
+// Parameter values for
+// GC9A01_SET_DISPLAY_CTL
+#define GC9A01_BRIGHTNESS_CONTROL_ON 0b00100000
+#define GC9A01_DIMMING_ON 0b00001000
+#define GC9A01_BACKLIGHT_ON 0b00000100
+#define GC9A01_BRIGHTNESS_CONTROL_OFF 0b00000000
+#define GC9A01_DIMMING_OFF 0b00000000
+#define GC9A01_BACKLIGHT_OFF 0b00000000
+
+// Parameter values for
+// GC9A01_SET_IF_CTL
+#define GC9A01_DISPLAY_MODE_INTERNAL_CLOCK 0b00000000
+#define GC9A01_DISPLAY_MODE_RGB_INTERFACE 0b00000100
+#define GC9A01_DISPLAY_MODE_VSYNC_INTERFACE 0b00001000
+#define GC9A01_DSISPLAY_MODE_DISABLED 0b00001100
+
+#define GC0A01_GRAM_INTERFACE_VSYNC 0b00000000
+#define GC9A01_GRAM_INTERFACE_RGB 0b00000010
+
+#define GC9A01_RGB_INTERFACE_MODE_1_TRANSFER 0b00000000
+#define GC9A01_RGB_INTERFACE_MODE_3_TRANSFER 0b00000001
\ No newline at end of file
diff --git a/drivers/painter/gc9xxx/qp_gc9xxx_opcodes.h b/drivers/painter/gc9xxx/qp_gc9xxx_opcodes.h
new file mode 100644
index 00000000000..7e0fbf9110b
--- /dev/null
+++ b/drivers/painter/gc9xxx/qp_gc9xxx_opcodes.h
@@ -0,0 +1,55 @@
+// Copyright 2021 Paul Cotter (@gr1mr3aver)
+// Copyright 2024 Fernando Birra
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Quantum Painter GC9xxx command opcodes
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#define GC9XXX_GET_ID_INFO 0x04 // Get ID information
+#define GC9XXX_GET_STATUS 0x09 // Get status
+
+#define GC9XXX_CMD_SLEEP_ON 0x10 // Enter sleep mode
+#define GC9XXX_CMD_SLEEP_OFF 0x11 // Exit sleep mode
+#define GC9XXX_CMD_PARTIAL_ON 0x12 // Enter partial mode
+#define GC9XXX_CMD_PARTIAL_OFF 0x13 // Exit partial mode
+
+#define GC9XXX_CMD_INVERT_OFF 0x20 // Exit inverted mode
+#define GC9XXX_CMD_INVERT_ON 0x21 // Enter inverted mode
+#define GC9XXX_CMD_DISPLAY_OFF 0x28 // Disable display
+#define GC9XXX_CMD_DISPLAY_ON 0x29 // Enable display
+#define GC9XXX_SET_COL_ADDR 0x2A // Set column address (MSB(StartCol),LSB(StartCol),MSB(EndCol),LSB(EndCol)
+#define GC9XXX_SET_ROW_ADDR 0x2B // Set row address (MSB(StartRow),LSB(StartRow),MSB(EndRow),LSB(EndRow)
+#define GC9XXX_SET_MEM 0x2C // Set (write) memory
+
+#define GC9XXX_SET_PARTIAL_AREA 0x30 // Set partial area (MSB(StartRow),LSB(StartRow),MSB(EndRow),LSB(EndRow)
+#define GC9XXX_SET_VSCROLL 0x33 // Set vertical scroll MSB(TFA),LSB(TFA),MSB(VSA),LSB(VSA)+ GC9107 extra param: MSB(BFA),LSB(BFA)
+#define GC9XXX_CMD_TEARING_OFF 0x34 // Tearing effect line OFF
+#define GC9XXX_CMD_TEARING_ON 0x35 // Tearing effect line ON
+#define GC9XXX_SET_MEM_ACS_CTL 0x36 // Set mem access ctl
+#define GC9XXX_SET_VSCROLL_ADDR 0x37 // Set vscroll start addr
+#define GC9XXX_CMD_IDLE_OFF 0x38 // Exit idle mode
+#define GC9XXX_CMD_IDLE_ON 0x39 // Enter idle mode
+#define GC9XXX_SET_PIXEL_FORMAT 0x3A // Set pixel format
+#define GC9XXX_SET_TEAR_SCANLINE 0x44 // Set tearing scanline (Scanline = LS bit of Param 1 (GC9A01) + Param 2(GC9XXX))
+#define GC9XXX_GET_TEAR_SCANLINE 0x45 // Get tearing scanline (Scanline = LS bit of Param 1 (GC9A01) + Param 2(GC9XXX))
+#define GC9XXX_GET_ID1 0xDA // Get ID1
+#define GC9XXX_GET_ID2 0xDB // Get ID2
+#define GC9XXX_GET_ID3 0xDC // Get ID3
+#define GC9XXX_SET_INTER_REG_ENABLE1 0xFE // Enable Inter Register 1
+#define GC9XXX_SET_INTER_REG_ENABLE2 0xEF // Enable Inter Register 2
+#define GC9XXX_SET_GAMMA1 0xF0 // Set gamma 1
+#define GC9XXX_SET_GAMMA2 0xF1 // Set gamma 2
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// MADCTL Flags
+#define GC9XXX_MADCTL_MY 0b10000000 // Mirror Y (row address order)
+#define GC9XXX_MADCTL_MX 0b01000000 // Mirror X (column address order)
+#define GC9XXX_MADCTL_MV 0b00100000 // Vertical Refresh Order (bottom to top)
+#define GC9XXX_MADCTL_ML 0b00010000
+#define GC9XXX_MADCTL_BGR 0b00001000
+#define GC9XXX_MADCTL_RGB 0b00000000
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// GC9XXX Parameter constants
diff --git a/drivers/painter/generic/qp_surface_rgb565.c b/drivers/painter/generic/qp_surface_rgb565.c
index 8883ed541d8..c5b351311a0 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 rgb = hsv_to_rgb_nocie((HSV){palette[i].hsv888.h, palette[i].hsv888.s, palette[i].hsv888.v});
+ 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/ld7032/qp_ld7032.c b/drivers/painter/ld7032/qp_ld7032.c
new file mode 100644
index 00000000000..f43ae8e60d7
--- /dev/null
+++ b/drivers/painter/ld7032/qp_ld7032.c
@@ -0,0 +1,411 @@
+// Copyright 2023 Nick Brassel (@tzarc)
+// Copyright 2023 Dasky (@daskygit)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "qp_internal.h"
+#include "qp_comms.h"
+#include "qp_oled_panel.h"
+#include "qp_ld7032.h"
+#include "qp_ld7032_opcodes.h"
+#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 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 {
+ painter_comms_vtable_t base; // must be first, so this object can be cast from the painter_comms_vtable_t* type
+ painter_driver_comms_send_command_func send_command;
+ painter_driver_comms_bulk_command_sequence bulk_command_sequence;
+ ld7032_driver_comms_send_command_and_data_func send_command_data;
+ ld7032_driver_comms_send_command_and_databuf_func send_command_databuf;
+} 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) {
+ uint8_t buf[2] = {cmd, data};
+ 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) {
+ uint8_t buf[32];
+ for (size_t i = 0; i < sequence_len;) {
+ uint8_t command = sequence[i];
+ uint8_t delay = sequence[i + 1];
+ 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 (delay > 0) {
+ wait_ms(delay);
+ }
+ i += (3 + num_bytes);
+ }
+}
+
+uint32_t ld7032_comms_i2c_send_command_and_databuf(painter_device_t device, uint8_t cmd, const void *data, uint32_t byte_count) {
+ uint8_t buf[byte_count + 1];
+ memset(buf, 0, sizeof(buf));
+ buf[0] = cmd;
+ memcpy(&buf[1], data, byte_count);
+ return qp_comms_send(device, buf, byte_count + 1);
+}
+
+// Power control
+bool qp_ld7032_power(painter_device_t device, bool power_on) {
+ painter_driver_t * driver = (painter_driver_t *)device;
+ ld7032_comms_with_command_vtable_t *comms_vtable = (ld7032_comms_with_command_vtable_t *)driver->comms_vtable;
+
+ comms_vtable->send_command_data(device, LD7032_DISP_ON_OFF, power_on ? 0x01 : 0x00);
+
+ return true;
+}
+
+// Screen clear
+bool qp_ld7032_clear(painter_device_t device) {
+ qp_rect(device, 0, 0, 127, 127, 0, 0, 0, true); // clear memory
+ painter_driver_t *driver = (painter_driver_t *)device;
+ driver->driver_vtable->init(device, driver->rotation); // Re-init the display
+ return true;
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Flush helpers
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+void ld7032_flush_0(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer, bool inverted) {
+ painter_driver_t * driver = (painter_driver_t *)device;
+ ld7032_comms_with_command_vtable_t *comms_vtable = (ld7032_comms_with_command_vtable_t *)driver->comms_vtable;
+
+ int x_start = dirty->l >> 3;
+ int x_end = dirty->r >> 3;
+ int y_start = dirty->t;
+ int y_end = dirty->b;
+ int x_length = (x_end - x_start) + 1;
+ uint8_t x_view_offset = driver->offset_x >> 3;
+ uint8_t y_view_offset = driver->offset_y;
+
+ for (int y_pos = y_start; y_pos <= y_end; y_pos++) {
+ int y_new_pos = y_pos;
+ if (inverted) {
+ y_new_pos = y_end - y_pos;
+ }
+ uint8_t packet[x_length];
+ memcpy(packet, &framebuffer[(y_pos * (driver->panel_width >> 3)) + x_start], x_length);
+ uint8_t x_write_start = MIN(x_start + x_view_offset, (128 >> 3));
+ uint8_t x_write_end = MIN(x_end + x_view_offset, (128 >> 3));
+ uint8_t y_write_start = MIN(y_new_pos + y_view_offset, 39);
+ uint8_t y_write_end = MIN(y_new_pos + y_view_offset, 39);
+
+ comms_vtable->send_command_data(device, LD7032_X_BOX_ADR_START, x_write_start);
+ comms_vtable->send_command_data(device, LD7032_X_BOX_ADR_END, x_write_end);
+ comms_vtable->send_command_data(device, LD7032_Y_BOX_ADR_START, y_write_start);
+ comms_vtable->send_command_data(device, LD7032_Y_BOX_ADR_END, y_write_end);
+ comms_vtable->send_command_databuf(device, LD7032_DATA_RW, packet, x_length);
+ }
+}
+
+void ld7032_flush_90(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer, bool inverted) {
+ painter_driver_t * driver = (painter_driver_t *)device;
+ ld7032_comms_with_command_vtable_t *comms_vtable = (ld7032_comms_with_command_vtable_t *)driver->comms_vtable;
+
+ int x_start = dirty->t >> 3;
+ int x_end = dirty->b >> 3;
+ int y_start = dirty->l;
+ int y_end = dirty->r;
+ int x_length = (x_end - x_start) + 1;
+ uint8_t x_view_offset = driver->offset_x >> 3;
+ uint8_t y_view_offset = driver->offset_y;
+
+ for (int y_pos = y_start; y_pos <= y_end; y_pos++) {
+ int y_new_pos = y_pos;
+ if (inverted) {
+ y_new_pos = y_end - y_pos;
+ }
+ uint8_t packet[x_length];
+ memset(packet, 0, sizeof(packet));
+ int count = 0;
+ for (int x_pos = x_start; x_pos <= x_end; x_pos++) {
+ for (int x = 0; x < 8; ++x) {
+ uint32_t pixel_num = (((x_pos << 3) + x) * driver->panel_height) + y_pos;
+ uint32_t byte_offset = pixel_num / 8;
+ uint8_t bit_offset = pixel_num % 8;
+ packet[count] |= ((framebuffer[byte_offset] & (1 << bit_offset)) >> bit_offset) << x;
+ }
+ count++;
+ }
+ uint8_t x_width = (driver->panel_width >> 3) - 1;
+ uint8_t x_write_start = MAX((int)x_width - x_end - x_view_offset, 0);
+ uint8_t x_write_end = MAX((int)x_width - x_start - x_view_offset, 0);
+ uint8_t y_write_start = MIN(y_new_pos + y_view_offset, 39);
+ uint8_t y_write_end = MIN(y_new_pos + y_view_offset, 39);
+
+ comms_vtable->send_command_data(device, LD7032_X_BOX_ADR_START, x_write_start);
+ comms_vtable->send_command_data(device, LD7032_X_BOX_ADR_END, x_write_end);
+ comms_vtable->send_command_data(device, LD7032_Y_BOX_ADR_START, y_write_start);
+ comms_vtable->send_command_data(device, LD7032_Y_BOX_ADR_END, y_write_end);
+ comms_vtable->send_command_databuf(device, LD7032_DATA_RW, packet, x_length);
+ }
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Driver storage
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+typedef struct ld7032_device_t {
+ oled_panel_painter_device_t oled;
+
+ uint8_t framebuffer[SURFACE_REQUIRED_BUFFER_BYTE_SIZE(128, 40, 1)];
+} ld7032_device_t;
+
+static ld7032_device_t ld7032_drivers[LD7032_NUM_DEVICES] = {0};
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Quantum Painter API implementations
+
+// Initialisation
+__attribute__((weak)) bool qp_ld7032_init(painter_device_t device, painter_rotation_t rotation) {
+ ld7032_device_t *driver = (ld7032_device_t *)device;
+
+ // Change the surface geometry based on the panel rotation
+ if (rotation == QP_ROTATION_90 || rotation == QP_ROTATION_270) {
+ driver->oled.surface.base.panel_width = driver->oled.base.panel_height;
+ driver->oled.surface.base.panel_height = driver->oled.base.panel_width;
+ } else {
+ driver->oled.surface.base.panel_width = driver->oled.base.panel_width;
+ driver->oled.surface.base.panel_height = driver->oled.base.panel_height;
+ }
+
+ // Init the internal surface
+ if (!qp_init(&driver->oled.surface.base, QP_ROTATION_0)) {
+ qp_dprintf("Failed to init internal surface in qp_ld7032_init\n");
+ return false;
+ }
+
+ // clang-format off
+ const uint8_t ld7032_init_sequence[] = {
+ // Command, Delay, N, Data[N]
+ LD7032_DISP_STBY_ON_OFF, 0, 1, 0x00,
+ LD7032_DISP_ON_OFF, 0, 1, 0x00,
+ LD7032_DFRAME, 0, 1, 0x05,
+ //LD7032_WRITE_DIRECTION, 0, 1, 0b00001000, // 0 Right, 1 Up, 2 Vertical, 3 Bit Order, 4-7 Unused
+ LD7032_DISP_DIRECTION, 0, 1, 0x00,
+ LD7032_PEAK_WIDTH, 0, 1, 0x1F,
+ LD7032_PEAK_DELAY, 0, 1, 0x05,
+ LD7032_SCAN_MODE, 0, 1, 0x01,
+ LD7032_DOT_CURRENT, 0, 1, 0x1f,
+ LD7032_VDD_SEL, 0, 1, 0x01,
+ };
+ // clang-format on
+
+ qp_comms_bulk_command_sequence(device, ld7032_init_sequence, sizeof(ld7032_init_sequence));
+
+ uint8_t display_y_start = 40 - driver->oled.base.panel_height;
+ uint8_t display_x_start = (128 - driver->oled.base.panel_width) / 2;
+
+ // clang-format off
+ uint8_t ld7032_memory_setup[] = {
+ // Command, Delay, N, Data[N]
+ LD7032_DISP_SIZE_X, 0, 2, 0x00, 0x7F,
+ LD7032_DISP_SIZE_Y, 0, 2, 0x00, 0x27,
+ LD7032_X_DISP_START, 0, 1, 0x0,
+ LD7032_Y_DISP_START, 0, 1, 0x0,
+ };
+ // clang-format on
+
+ ld7032_memory_setup[3] = display_x_start;
+ ld7032_memory_setup[4] = display_x_start + driver->oled.base.panel_width - 1;
+ ld7032_memory_setup[8] = display_y_start;
+ ld7032_memory_setup[9] = display_y_start + driver->oled.base.panel_height - 1;
+ 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));
+
+ uint8_t write_direction = 0;
+ switch (rotation) {
+ default:
+ case QP_ROTATION_0:
+ write_direction = 0b00001000;
+ break;
+ case QP_ROTATION_90:
+ write_direction = 0b00000001;
+ break;
+ case QP_ROTATION_180:
+ write_direction = 0b00000001;
+ break;
+ case QP_ROTATION_270:
+ write_direction = 0b00001000;
+ break;
+ }
+
+ 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);
+
+ qp_ld7032_power(device, true);
+
+ return true;
+}
+
+// Screen flush
+bool qp_ld7032_flush(painter_device_t device) {
+ ld7032_device_t *driver = (ld7032_device_t *)device;
+
+ if (!driver->oled.surface.dirty.is_dirty) {
+ return true;
+ }
+
+ switch (driver->oled.base.rotation) {
+ default:
+ case QP_ROTATION_0:
+ ld7032_flush_0(device, &driver->oled.surface.dirty, driver->framebuffer, false);
+ break;
+ case QP_ROTATION_180:
+ ld7032_flush_0(device, &driver->oled.surface.dirty, driver->framebuffer, true);
+ break;
+ case QP_ROTATION_90:
+ ld7032_flush_90(device, &driver->oled.surface.dirty, driver->framebuffer, false);
+ break;
+ case QP_ROTATION_270:
+ ld7032_flush_90(device, &driver->oled.surface.dirty, driver->framebuffer, true);
+ break;
+ }
+
+ // Clear the dirty area
+ qp_flush(&driver->oled.surface);
+
+ return true;
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Driver vtable
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+const painter_driver_vtable_t ld7032_driver_vtable = {
+ .init = qp_ld7032_init,
+ .power = qp_ld7032_power,
+ .clear = qp_ld7032_clear,
+ .flush = qp_ld7032_flush,
+ .pixdata = qp_oled_panel_passthru_pixdata,
+ .viewport = qp_oled_panel_passthru_viewport,
+ .palette_convert = qp_oled_panel_passthru_palette_convert,
+ .append_pixels = qp_oled_panel_passthru_append_pixels,
+ .append_pixdata = qp_oled_panel_passthru_append_pixdata,
+};
+
+#ifdef QUANTUM_PAINTER_LD7032_SPI_ENABLE
+
+const ld7032_comms_with_command_vtable_t ld7032_spi_comms_vtable = {
+ .base =
+ {
+ .comms_init = qp_comms_spi_dc_reset_init,
+ .comms_start = qp_comms_spi_start,
+ .comms_send = qp_comms_spi_dc_reset_send_data,
+ .comms_stop = qp_comms_spi_stop,
+ },
+ .send_command = qp_comms_spi_dc_reset_send_command,
+ .send_command_data = qp_comms_command_databyte,
+ .send_command_databuf = qp_comms_command_databuf,
+ .bulk_command_sequence = qp_comms_spi_dc_reset_bulk_command_sequence,
+};
+
+// Factory function for creating a handle to the LD7032 device
+painter_device_t qp_ld7032_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode) {
+ for (uint32_t i = 0; i < LD7032_NUM_DEVICES; ++i) {
+ ld7032_device_t *driver = &ld7032_drivers[i];
+ if (!driver->oled.base.driver_vtable) {
+ painter_device_t surface = qp_make_mono1bpp_surface_advanced(&driver->oled.surface, 1, panel_width, panel_height, driver->framebuffer);
+ if (!surface) {
+ return NULL;
+ }
+
+ // Setup the OLED device
+ driver->oled.base.driver_vtable = (const painter_driver_vtable_t *)&ld7032_driver_vtable;
+ driver->oled.base.comms_vtable = (const painter_comms_vtable_t *)&ld7032_spi_comms_vtable;
+ driver->oled.base.native_bits_per_pixel = 1; // 1bpp mono
+ driver->oled.base.panel_width = panel_width;
+ driver->oled.base.panel_height = panel_height;
+ driver->oled.base.rotation = QP_ROTATION_0;
+ driver->oled.base.offset_x = 0;
+ driver->oled.base.offset_y = 0;
+
+ // SPI and other pin configuration
+ driver->oled.base.comms_config = &driver->oled.spi_dc_reset_config;
+ driver->oled.spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin;
+ driver->oled.spi_dc_reset_config.spi_config.divisor = spi_divisor;
+ driver->oled.spi_dc_reset_config.spi_config.lsb_first = false;
+ driver->oled.spi_dc_reset_config.spi_config.mode = spi_mode;
+ driver->oled.spi_dc_reset_config.dc_pin = dc_pin;
+ driver->oled.spi_dc_reset_config.reset_pin = reset_pin;
+ driver->oled.spi_dc_reset_config.command_params_uses_command_pin = true;
+
+ if (!qp_internal_register_device((painter_device_t)driver)) {
+ memset(driver, 0, sizeof(ld7032_device_t));
+ return NULL;
+ }
+
+ return (painter_device_t)driver;
+ }
+ }
+ return NULL;
+}
+
+#endif // QUANTUM_PAINTER_LD7032_SPI_ENABLE
+
+#ifdef QUANTUM_PAINTER_LD7032_I2C_ENABLE
+
+const ld7032_comms_with_command_vtable_t ld7032_i2c_comms_vtable = {
+ .base =
+ {
+ .comms_init = qp_comms_i2c_init,
+ .comms_start = qp_comms_i2c_start,
+ .comms_send = qp_comms_i2c_send_data,
+ .comms_stop = qp_comms_i2c_stop,
+ },
+ .send_command = NULL,
+ .send_command_data = ld7032_comms_i2c_send_command_and_data,
+ .send_command_databuf = ld7032_comms_i2c_send_command_and_databuf,
+ .bulk_command_sequence = ld7032_comms_i2c_bulk_command_sequence,
+};
+
+// Factory function for creating a handle to the LD7032 device
+painter_device_t qp_ld7032_make_i2c_device(uint16_t panel_width, uint16_t panel_height, uint8_t i2c_address) {
+ for (uint32_t i = 0; i < LD7032_NUM_DEVICES; ++i) {
+ ld7032_device_t *driver = &ld7032_drivers[i];
+ if (!driver->oled.base.driver_vtable) {
+ painter_device_t surface = qp_make_mono1bpp_surface_advanced(&driver->oled.surface, 1, panel_width, panel_height, driver->framebuffer);
+ if (!surface) {
+ return NULL;
+ }
+
+ // Setup the OLED device
+ driver->oled.base.driver_vtable = (const painter_driver_vtable_t *)&ld7032_driver_vtable;
+ driver->oled.base.comms_vtable = (const painter_comms_vtable_t *)&ld7032_i2c_comms_vtable;
+ driver->oled.base.native_bits_per_pixel = 1; // 1bpp mono
+ driver->oled.base.panel_width = panel_width;
+ driver->oled.base.panel_height = panel_height;
+ driver->oled.base.rotation = QP_ROTATION_0;
+ driver->oled.base.offset_x = 0;
+ driver->oled.base.offset_y = 0;
+
+ // I2C configuration
+ driver->oled.base.comms_config = &driver->oled.i2c_config;
+ driver->oled.i2c_config.chip_address = i2c_address;
+
+ if (!qp_internal_register_device((painter_device_t)driver)) {
+ memset(driver, 0, sizeof(ld7032_device_t));
+ return NULL;
+ }
+
+ return (painter_device_t)driver;
+ }
+ }
+ return NULL;
+}
+
+#endif // QUANTUM_PAINTER_LD7032_SPI_ENABLE
diff --git a/drivers/painter/ld7032/qp_ld7032.h b/drivers/painter/ld7032/qp_ld7032.h
new file mode 100644
index 00000000000..967eb7999cc
--- /dev/null
+++ b/drivers/painter/ld7032/qp_ld7032.h
@@ -0,0 +1,66 @@
+// Copyright 2023 Nick Brassel (@tzarc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+#include "gpio.h"
+#include "qp_internal.h"
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Quantum Painter LD7032 configurables (add to your keyboard's config.h)
+
+#if defined(QUANTUM_PAINTER_LD7032_SPI_ENABLE) && !defined(LD7032_NUM_SPI_DEVICES)
+/**
+ * @def This controls the maximum number of SPI LD7032 devices that Quantum Painter can communicate with at any one time.
+ * Increasing this number allows for multiple displays to be used.
+ */
+# define LD7032_NUM_SPI_DEVICES 1
+#else
+# define LD7032_NUM_SPI_DEVICES 0
+#endif
+
+#if defined(QUANTUM_PAINTER_LD7032_I2C_ENABLE) && !defined(LD7032_NUM_I2C_DEVICES)
+/**
+ * @def This controls the maximum number of I2C LD7032 devices that Quantum Painter can communicate with at any one time.
+ * Increasing this number allows for multiple displays to be used.
+ */
+# define LD7032_NUM_I2C_DEVICES 1
+#else
+# define LD7032_NUM_I2C_DEVICES 0
+#endif
+
+#define LD7032_NUM_DEVICES ((LD7032_NUM_SPI_DEVICES) + (LD7032_NUM_I2C_DEVICES))
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Quantum Painter LD7032 device factories
+
+#ifdef QUANTUM_PAINTER_LD7032_SPI_ENABLE
+
+/**
+ * Factory method for an LD7032 SPI LCD device.
+ *
+ * @param panel_width[in] the width of the display in pixels (usually 128)
+ * @param panel_height[in] the height of the display in pixels (usually 64)
+ * @param chip_select_pin[in] the GPIO pin used for SPI chip select
+ * @param dc_pin[in] the GPIO pin used for D/C control
+ * @param reset_pin[in] the GPIO pin used for RST
+ * @param spi_divisor[in] the SPI divisor to use when communicating with the display
+ * @param spi_mode[in] the SPI mode to use when communicating with the display
+ * @return the device handle used with all drawing routines in Quantum Painter
+ */
+painter_device_t qp_ld7032_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode);
+
+#endif // QUANTUM_PAINTER_LD7032_SPI_ENABLE
+
+#ifdef QUANTUM_PAINTER_LD7032_I2C_ENABLE
+
+/**
+ * Factory method for an LD7032 I2C LCD device.
+ *
+ * @param panel_width[in] the width of the display in pixels (usually 128)
+ * @param panel_height[in] the height of the display in pixels (usually 64)
+ * @param i2c_address[in] the I2C address to use
+ * @return the device handle used with all drawing routines in Quantum Painter
+ */
+painter_device_t qp_ld7032_make_i2c_device(uint16_t panel_width, uint16_t panel_height, uint8_t i2c_address);
+
+#endif // QUANTUM_PAINTER_LD7032_I2C_ENABLE
\ No newline at end of file
diff --git a/drivers/painter/ld7032/qp_ld7032_opcodes.h b/drivers/painter/ld7032/qp_ld7032_opcodes.h
new file mode 100644
index 00000000000..08ab77d6f86
--- /dev/null
+++ b/drivers/painter/ld7032/qp_ld7032_opcodes.h
@@ -0,0 +1,45 @@
+// Copyright 2023 Dasky (@daskygit)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+typedef enum {
+ LD7032_SOFTRES = 0x01,
+ LD7032_DISP_ON_OFF = 0x02,
+ LD7032_DATA_RW = 0x08,
+ LD7032_DISP_DIRECTION = 0x09,
+ LD7032_IFMODE = 0x0D,
+ LD7032_PEAK_WIDTH = 0x10,
+ LD7032_DOT_CURRENT = 0x12,
+ LD7032_SCAN_MODE = 0x13,
+ LD7032_DISP_STBY_ON_OFF = 0x14,
+ LD7032_PEAK_DELAY = 0x16,
+ LD7032_ROW_SCAN = 0x17,
+ LD7032_PRE_C_WIDTH = 0x18,
+ LD7032_DFRAME = 0x1A,
+ LD7032_DATA_REVERSE = 0x1C,
+ LD7032_WRITE_DIRECTION = 0x1D,
+ LD7032_READREG = 0x20,
+ LD7032_DISP_SIZE_X = 0x30,
+ LD7032_DISP_SIZE_Y = 0x32,
+ LD7032_X_BOX_ADR_START = 0x34,
+ LD7032_X_BOX_ADR_END = 0x35,
+ LD7032_Y_BOX_ADR_START = 0x36,
+ LD7032_Y_BOX_ADR_END = 0x37,
+ LD7032_X_DISP_START = 0x38,
+ LD7032_Y_DISP_START = 0x39,
+ LD7032_XTALK_EN = 0x3A,
+ LD7032_XTALK_REF = 0x3B,
+ LD7032_AGING_EN = 0x3C,
+ LD7032_VDD_SEL = 0x3D,
+ LD7032_TESTCNT0 = 0x3E,
+ LD7032_VCC_R_SEL = 0x3F,
+ LD7032_PRE_C_SELECT = 0x44,
+ LD7032_ROW_OVERLAP = 0x48,
+ LD7032_S_SLEEP_TIMER = 0xC0,
+ LD7032_S_SLEEP_START = 0xC2,
+ LD7032_S_STEP_TIMER = 0xC3,
+ LD7032_S_STEP_UNIT = 0xC4,
+ LD7032_S_CONDITION = 0xCC,
+ LD7032_S_START_STOP = 0xCD,
+ LD7032_S_SELECT = 0xCE,
+ LD7032_TESTCNT1 = 0xF0, //-0xFF
+} ld7032_opcodes;
\ No newline at end of file
diff --git a/drivers/painter/sh1107/qp_sh1107.c b/drivers/painter/sh1107/qp_sh1107.c
new file mode 100644
index 00000000000..f4cbd49e402
--- /dev/null
+++ b/drivers/painter/sh1107/qp_sh1107.c
@@ -0,0 +1,218 @@
+#include "qp_internal.h"
+#include "qp_comms.h"
+#include "qp_surface_internal.h"
+#include "qp_oled_panel.h"
+#include "qp_sh1107.h"
+#include "qp_sh1107_opcodes.h"
+#include "qp_surface.h"
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Driver storage
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+typedef struct sh1107_device_t {
+ oled_panel_painter_device_t oled;
+
+ uint8_t framebuffer[SURFACE_REQUIRED_BUFFER_BYTE_SIZE(128, 128, 1)];
+} sh1107_device_t;
+
+static sh1107_device_t sh1107_drivers[SH1107_NUM_DEVICES] = {0};
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Quantum Painter API implementations
+
+// Initialisation
+__attribute__((weak)) bool qp_sh1107_init(painter_device_t device, painter_rotation_t rotation) {
+ sh1107_device_t *driver = (sh1107_device_t *)device;
+
+ // Change the surface geometry based on the panel rotation
+ if (rotation == QP_ROTATION_90 || rotation == QP_ROTATION_270) {
+ driver->oled.surface.base.panel_width = driver->oled.base.panel_height;
+ driver->oled.surface.base.panel_height = driver->oled.base.panel_width;
+ } else {
+ driver->oled.surface.base.panel_width = driver->oled.base.panel_width;
+ driver->oled.surface.base.panel_height = driver->oled.base.panel_height;
+ }
+
+ // Init the internal surface
+ if (!qp_init(&driver->oled.surface.base, QP_ROTATION_0)) {
+ qp_dprintf("Failed to init internal surface in qp_sh1107_init\n");
+ return false;
+ }
+
+ // clang-format off
+ uint8_t sh1107_init_sequence[] = {
+ // Command, Delay, N, Data[N]
+ SH1107_SET_MUX_RATIO, 0, 1, 0x7F, // 1/128 duty
+ SH1107_DISPLAY_OFFSET, 0, 1, 0x00,
+ SH1107_SET_START_LINE, 0, 1, 0x00, // Different from SH1106
+ SH1107_SET_SEGMENT_REMAP_INV, 0, 0,
+ SH1107_COM_SCAN_DIR_DEC, 0, 0,
+ SH1107_COM_PADS_HW_CFG, 0, 1, 0x12,
+ SH1107_SET_CONTRAST, 0, 1, 0x7F,
+ SH1107_ALL_ON_RESUME, 0, 0,
+ SH1107_NON_INVERTING_DISPLAY, 0, 0,
+ SH1107_SET_OSC_DIVFREQ, 0, 1, 0x80,
+ SH1107_SET_CHARGE_PUMP, 0, 1, 0x14,
+ SH1107_DISPLAY_ON, 0, 0,
+ };
+ // clang-format on
+
+ // If the display width is anything other than the default 128 pixels, change SH1107_SET_MUX_RATIO data byte to the correct value.
+ if (driver->oled.base.panel_width != 128) {
+ sh1107_init_sequence[3] = driver->oled.base.panel_width - 1;
+ }
+
+ // If the display width is less than the default 128 pixels, change SH1107_DISPLAY_OFFSET to use the center columns.
+ if (driver->oled.base.panel_width < 128) {
+ sh1107_init_sequence[7] = (128U - driver->oled.base.panel_width) / 2;
+ }
+
+ // For smaller displays, change SH1107_COM_PADS_HW_CFG data byte from alternative (0x12) to sequential (0x02) configuration
+ if (driver->oled.base.panel_height <= 64) {
+ sh1107_init_sequence[20] = 0x02;
+ }
+
+ qp_comms_bulk_command_sequence(device, sh1107_init_sequence, sizeof(sh1107_init_sequence));
+ return true;
+}
+
+// Screen flush
+bool qp_sh1107_flush(painter_device_t device) {
+ sh1107_device_t *driver = (sh1107_device_t *)device;
+
+ if (!driver->oled.surface.dirty.is_dirty) {
+ return true;
+ }
+
+ switch (driver->oled.base.rotation) {
+ default:
+ case QP_ROTATION_0:
+ qp_oled_panel_page_column_flush_rot0(device, &driver->oled.surface.dirty, driver->framebuffer);
+ break;
+ case QP_ROTATION_90:
+ qp_oled_panel_page_column_flush_rot90(device, &driver->oled.surface.dirty, driver->framebuffer);
+ break;
+ case QP_ROTATION_180:
+ qp_oled_panel_page_column_flush_rot180(device, &driver->oled.surface.dirty, driver->framebuffer);
+ break;
+ case QP_ROTATION_270:
+ qp_oled_panel_page_column_flush_rot270(device, &driver->oled.surface.dirty, driver->framebuffer);
+ break;
+ }
+
+ // Clear the dirty area
+ qp_flush(&driver->oled.surface);
+
+ return true;
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Driver vtable
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+const oled_panel_painter_driver_vtable_t sh1107_driver_vtable = {
+ .base =
+ {
+ .init = qp_sh1107_init,
+ .power = qp_oled_panel_power,
+ .clear = qp_oled_panel_clear,
+ .flush = qp_sh1107_flush,
+ .pixdata = qp_oled_panel_passthru_pixdata,
+ .viewport = qp_oled_panel_passthru_viewport,
+ .palette_convert = qp_oled_panel_passthru_palette_convert,
+ .append_pixels = qp_oled_panel_passthru_append_pixels,
+ .append_pixdata = qp_oled_panel_passthru_append_pixdata,
+ },
+ .opcodes =
+ {
+ .display_on = SH1107_DISPLAY_ON,
+ .display_off = SH1107_DISPLAY_OFF,
+ .set_page = SH1107_PAGE_ADDR,
+ .set_column_lsb = SH1107_SETCOLUMN_LSB,
+ .set_column_msb = SH1107_SETCOLUMN_MSB,
+ },
+};
+
+#ifdef QUANTUM_PAINTER_SH1107_SPI_ENABLE
+// Factory function for creating a handle to the SH1107 device
+painter_device_t qp_sh1107_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode) {
+ for (uint32_t i = 0; i < SH1107_NUM_DEVICES; ++i) {
+ sh1107_device_t *driver = &sh1107_drivers[i];
+ if (!driver->oled.base.driver_vtable) {
+ painter_device_t surface = qp_make_mono1bpp_surface_advanced(&driver->oled.surface, 1, panel_width, panel_height, driver->framebuffer);
+ if (!surface) {
+ return NULL;
+ }
+
+ // Setup the OLED device
+ driver->oled.base.driver_vtable = (const painter_driver_vtable_t *)&sh1107_driver_vtable;
+ driver->oled.base.comms_vtable = (const painter_comms_vtable_t *)&spi_comms_with_dc_vtable;
+ driver->oled.base.native_bits_per_pixel = 1; // 1bpp mono
+ driver->oled.base.panel_width = panel_width;
+ driver->oled.base.panel_height = panel_height;
+ driver->oled.base.rotation = QP_ROTATION_0;
+ driver->oled.base.offset_x = 0;
+ driver->oled.base.offset_y = 0;
+
+ // SPI and other pin configuration
+ driver->oled.base.comms_config = &driver->oled.spi_dc_reset_config;
+ driver->oled.spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin;
+ driver->oled.spi_dc_reset_config.spi_config.divisor = spi_divisor;
+ driver->oled.spi_dc_reset_config.spi_config.lsb_first = false;
+ driver->oled.spi_dc_reset_config.spi_config.mode = spi_mode;
+ driver->oled.spi_dc_reset_config.dc_pin = dc_pin;
+ driver->oled.spi_dc_reset_config.reset_pin = reset_pin;
+ driver->oled.spi_dc_reset_config.command_params_uses_command_pin = true;
+
+ if (!qp_internal_register_device((painter_device_t)driver)) {
+ memset(driver, 0, sizeof(sh1107_device_t));
+ return NULL;
+ }
+
+ return (painter_device_t)driver;
+ }
+ }
+ return NULL;
+}
+
+#endif // QUANTUM_PAINTER_SH1107_SPI_ENABLE
+
+#ifdef QUANTUM_PAINTER_SH1107_I2C_ENABLE
+// Factory function for creating a handle to the SH1107 device
+painter_device_t qp_sh1107_make_i2c_device(uint16_t panel_width, uint16_t panel_height, uint8_t i2c_address) {
+ for (uint32_t i = 0; i < SH1107_NUM_DEVICES; ++i) {
+ sh1107_device_t *driver = &sh1107_drivers[i];
+ if (!driver->oled.base.driver_vtable) {
+ // Instantiate the surface
+ painter_device_t surface = qp_make_mono1bpp_surface_advanced(&driver->oled.surface, 1, panel_width, panel_height, driver->framebuffer);
+ if (!surface) {
+ return NULL;
+ }
+
+ // Setup the OLED device
+ driver->oled.base.driver_vtable = (const painter_driver_vtable_t *)&sh1107_driver_vtable;
+ driver->oled.base.comms_vtable = (const painter_comms_vtable_t *)&i2c_comms_cmddata_vtable;
+ driver->oled.base.native_bits_per_pixel = 1; // 1bpp mono
+ driver->oled.base.panel_width = panel_width;
+ driver->oled.base.panel_height = panel_height;
+ driver->oled.base.rotation = QP_ROTATION_0;
+ driver->oled.base.offset_x = 0;
+ driver->oled.base.offset_y = 0;
+
+ // I2C configuration
+ driver->oled.base.comms_config = &driver->oled.i2c_config;
+ driver->oled.i2c_config.chip_address = i2c_address;
+
+ if (!qp_internal_register_device((painter_device_t)driver)) {
+ memset(driver, 0, sizeof(sh1107_device_t));
+ return NULL;
+ }
+
+ return (painter_device_t)driver;
+ }
+ }
+ return NULL;
+}
+
+#endif // QUANTUM_PAINTER_SH1107_I2C_ENABLE
diff --git a/drivers/painter/sh1107/qp_sh1107.h b/drivers/painter/sh1107/qp_sh1107.h
new file mode 100644
index 00000000000..2b866d7dc85
--- /dev/null
+++ b/drivers/painter/sh1107/qp_sh1107.h
@@ -0,0 +1,64 @@
+#pragma once
+
+#include "gpio.h"
+#include "qp_internal.h"
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Quantum Painter SH1107 configurables (add to your keyboard's config.h)
+
+#if defined(QUANTUM_PAINTER_SH1107_SPI_ENABLE) && !defined(SH1107_NUM_SPI_DEVICES)
+/**
+ * @def This controls the maximum number of SPI SH1107 devices that Quantum Painter can communicate with at any one time.
+ * Increasing this number allows for multiple displays to be used.
+ */
+# define SH1107_NUM_SPI_DEVICES 1
+#else
+# define SH1107_NUM_SPI_DEVICES 0
+#endif
+
+#if defined(QUANTUM_PAINTER_SH1107_I2C_ENABLE) && !defined(SH1107_NUM_I2C_DEVICES)
+/**
+ * @def This controls the maximum number of I2C SH1107 devices that Quantum Painter can communicate with at any one time.
+ * Increasing this number allows for multiple displays to be used.
+ */
+# define SH1107_NUM_I2C_DEVICES 1
+#else
+# define SH1107_NUM_I2C_DEVICES 0
+#endif
+
+#define SH1107_NUM_DEVICES ((SH1107_NUM_SPI_DEVICES) + (SH1107_NUM_I2C_DEVICES))
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Quantum Painter SH1107 device factories
+
+#ifdef QUANTUM_PAINTER_SH1107_SPI_ENABLE
+
+/**
+ * Factory method for an SH1107 SPI LCD device.
+ *
+ * @param panel_width[in] the width of the display in pixels (usually 64)
+ * @param panel_height[in] the height of the display in pixels (usually 128)
+ * @param chip_select_pin[in] the GPIO pin used for SPI chip select
+ * @param dc_pin[in] the GPIO pin used for D/C control
+ * @param reset_pin[in] the GPIO pin used for RST
+ * @param spi_divisor[in] the SPI divisor to use when communicating with the display
+ * @param spi_mode[in] the SPI mode to use when communicating with the display
+ * @return the device handle used with all drawing routines in Quantum Painter
+ */
+painter_device_t qp_sh1107_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode);
+
+#endif // QUANTUM_PAINTER_SH1107_SPI_ENABLE
+
+#ifdef QUANTUM_PAINTER_SH1107_I2C_ENABLE
+
+/**
+ * Factory method for an SH1107 I2C LCD device.
+ *
+ * @param panel_width[in] the width of the display in pixels (usually 64)
+ * @param panel_height[in] the height of the display in pixels (usually 128)
+ * @param i2c_address[in] the I2C address to use
+ * @return the device handle used with all drawing routines in Quantum Painter
+ */
+painter_device_t qp_sh1107_make_i2c_device(uint16_t panel_width, uint16_t panel_height, uint8_t i2c_address);
+
+#endif // QUANTUM_PAINTER_SH1107_I2C_ENABLE
diff --git a/drivers/painter/sh1107/qp_sh1107_opcodes.h b/drivers/painter/sh1107/qp_sh1107_opcodes.h
new file mode 100644
index 00000000000..818bf409289
--- /dev/null
+++ b/drivers/painter/sh1107/qp_sh1107_opcodes.h
@@ -0,0 +1,25 @@
+// Copyright 2024 Steve Branam (@smbranam)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+#define SH1107_DISPLAY_ON 0xAF
+#define SH1107_DISPLAY_OFF 0xAE
+#define SH1107_SET_OSC_DIVFREQ 0xD5
+#define SH1107_SET_MUX_RATIO 0xA8
+#define SH1107_DISPLAY_OFFSET 0xD3
+#define SH1107_SET_START_LINE 0xDC // Key/sole difference from SH1106 (which uses 0x40)
+#define SH1107_SET_CHARGE_PUMP 0x8D
+#define SH1107_SET_SEGMENT_REMAP_NORMAL 0xA0
+#define SH1107_SET_SEGMENT_REMAP_INV 0xA1
+#define SH1107_COM_SCAN_DIR_INC 0xC0
+#define SH1107_COM_SCAN_DIR_DEC 0xC8
+#define SH1107_COM_PADS_HW_CFG 0xDA
+#define SH1107_SET_CONTRAST 0x81
+#define SH1107_SET_PRECHARGE_PERIOD 0xD9
+#define SH1107_VCOM_DESELECT_LEVEL 0xDB
+#define SH1107_ALL_ON_RESUME 0xA4
+#define SH1107_NON_INVERTING_DISPLAY 0xA6
+#define SH1107_DEACTIVATE_SCROLL 0x2E
+#define SH1107_SETCOLUMN_LSB 0x00
+#define SH1107_SETCOLUMN_MSB 0x10
+#define SH1107_PAGE_ADDR 0xB0
diff --git a/drivers/painter/tft_panel/qp_tft_panel.c b/drivers/painter/tft_panel/qp_tft_panel.c
index 16dba9d6a63..c8e33343d44 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 rgb = hsv_to_rgb_nocie((HSV){palette[i].hsv888.h, palette[i].hsv888.s, palette[i].hsv888.v});
+ 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,7 @@ 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) {
- RGB rgb = hsv_to_rgb_nocie((HSV){palette[i].hsv888.h, palette[i].hsv888.s, palette[i].hsv888.v});
+ 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;
diff --git a/drivers/sensors/adns5050.c b/drivers/sensors/adns5050.c
index 97daa8db099..1768c9f3b4a 100644
--- a/drivers/sensors/adns5050.c
+++ b/drivers/sensors/adns5050.c
@@ -21,6 +21,7 @@
#include "wait.h"
#include "debug.h"
#include "gpio.h"
+#include "pointing_device_internal.h"
// Registers
// clang-format off
@@ -45,6 +46,15 @@
#define REG_MOTION_BURST 0x63
// clang-format on
+const pointing_device_driver_t adns5050_pointing_device_driver = {
+ .init = adns5050_init,
+ .get_report = adns5050_get_report,
+ .set_cpi = adns5050_set_cpi,
+ .get_cpi = adns5050_get_cpi,
+};
+
+static bool powered_down = false;
+
void adns5050_init(void) {
// Initialize the ADNS serial pins.
gpio_set_pin_output(ADNS5050_SCLK_PIN);
@@ -59,6 +69,8 @@ void adns5050_init(void) {
// this ensures that the adns is actuall ready after reset.
wait_ms(55);
+ powered_down = false;
+
// read a burst from the adns and then discard it.
// gets the adns ready for write commands
// (for example, setting the dpi).
@@ -163,6 +175,10 @@ report_adns5050_t adns5050_read_burst(void) {
data.dx = 0;
data.dy = 0;
+ if (powered_down) {
+ return data;
+ }
+
adns5050_serial_write(REG_MOTION_BURST);
// We don't need a minimum tSRAD here. That's because a 4ms wait time is
@@ -211,3 +227,22 @@ bool adns5050_check_signature(void) {
return (pid == 0x12 && rid == 0x01 && pid2 == 0x26);
}
+
+void adns5050_power_down(void) {
+ if (!powered_down) {
+ powered_down = true;
+ adns5050_write_reg(REG_MOUSE_CONTROL, 0b10);
+ }
+}
+
+report_mouse_t adns5050_get_report(report_mouse_t mouse_report) {
+ report_adns5050_t data = adns5050_read_burst();
+
+ if (data.dx != 0 || data.dy != 0) {
+ pd_dprintf("Raw ] X: %d, Y: %d\n", data.dx, data.dy);
+ mouse_report.x = (mouse_xy_report_t)data.dx;
+ mouse_report.y = (mouse_xy_report_t)data.dy;
+ }
+
+ return mouse_report;
+}
diff --git a/drivers/sensors/adns5050.h b/drivers/sensors/adns5050.h
index 8ef0f7cc7ce..4dfcbc3c70d 100644
--- a/drivers/sensors/adns5050.h
+++ b/drivers/sensors/adns5050.h
@@ -21,6 +21,7 @@
#include
#include
+#include "pointing_device.h"
// CPI values
// clang-format off
@@ -69,6 +70,8 @@ typedef struct {
int8_t dy;
} report_adns5050_t;
+const pointing_device_driver_t adns5050_pointing_device_driver;
+
// A bunch of functions to implement the ADNS5050-specific serial protocol.
// Note that the "serial.h" driver is insufficient, because it does not
// manually manipulate a serial clock signal.
@@ -83,3 +86,5 @@ void adns5050_set_cpi(uint16_t cpi);
uint16_t adns5050_get_cpi(void);
int8_t convert_twoscomp(uint8_t data);
bool adns5050_check_signature(void);
+void adns5050_power_down(void);
+report_mouse_t adns5050_get_report(report_mouse_t mouse_report);
diff --git a/drivers/sensors/adns9800.c b/drivers/sensors/adns9800.c
index f34529ee90d..0dbc528351c 100644
--- a/drivers/sensors/adns9800.c
+++ b/drivers/sensors/adns9800.c
@@ -15,7 +15,6 @@
*/
#include "spi_master.h"
-#include "adns9800_srom_A6.h"
#include "adns9800.h"
#include "wait.h"
@@ -67,16 +66,32 @@
#define REG_SROM_Load_Burst 0x62
#define REG_Pixel_Burst 0x64
-#define MIN_CPI 200
-#define MAX_CPI 8200
-#define CPI_STEP 200
-#define CLAMP_CPI(value) value MAX_CPI ? MAX_CPI : value
-#define US_BETWEEN_WRITES 120
-#define US_BETWEEN_READS 20
-#define US_BEFORE_MOTION 100
-#define MSB1 0x80
+#define MIN_CPI 200
+#define MAX_CPI 8200
+#define CPI_STEP 200
+#define CLAMP_CPI(value) value MAX_CPI ? MAX_CPI : value
+#define US_BETWEEN_WRITES 120
+#define US_BETWEEN_READS 20
+#define US_DELAY_AFTER_ADDR 100
+#define US_BEFORE_MOTION 100
+#define MSB1 0x80
// clang-format on
+const pointing_device_driver_t adns9800_pointing_device_driver = {
+ .init = adns9800_init,
+ .get_report = adns9800_get_report_driver,
+ .set_cpi = adns9800_set_cpi,
+ .get_cpi = adns9800_get_cpi,
+};
+
+uint16_t __attribute__((weak)) adns9800_srom_get_length(void) {
+ return 0;
+}
+
+uint8_t __attribute__((weak)) adns9800_srom_get_byte(uint16_t position) {
+ return 0;
+}
+
void adns9800_spi_start(void) {
spi_start(ADNS9800_CS_PIN, false, ADNS9800_SPI_MODE, ADNS9800_SPI_DIVISOR);
}
@@ -92,6 +107,7 @@ void adns9800_write(uint8_t reg_addr, uint8_t data) {
uint8_t adns9800_read(uint8_t reg_addr) {
adns9800_spi_start();
spi_write(reg_addr & 0x7f);
+ wait_us(US_DELAY_AFTER_ADDR);
uint8_t data = spi_read();
spi_stop();
wait_us(US_BETWEEN_READS);
@@ -115,37 +131,48 @@ void adns9800_init(void) {
adns9800_read(REG_Delta_Y_L);
adns9800_read(REG_Delta_Y_H);
- // upload firmware
+ if (adns9800_srom_get_length() != 0) {
+ // upload firmware
- // 3k firmware mode
- adns9800_write(REG_Configuration_IV, 0x02);
+ // 3k firmware mode
+ adns9800_write(REG_Configuration_IV, 0x02);
- // enable initialisation
- adns9800_write(REG_SROM_Enable, 0x1d);
+ // enable initialisation
+ adns9800_write(REG_SROM_Enable, 0x1d);
- // wait a frame
- wait_ms(10);
+ // wait a frame
+ wait_ms(10);
- // start SROM download
- adns9800_write(REG_SROM_Enable, 0x18);
+ // start SROM download
+ adns9800_write(REG_SROM_Enable, 0x18);
- // write the SROM file
+ // write the SROM file
- adns9800_spi_start();
+ adns9800_spi_start();
- spi_write(REG_SROM_Load_Burst | 0x80);
- wait_us(15);
-
- // send all bytes of the firmware
- for (uint16_t i = 0; i < FIRMWARE_LENGTH; i++) {
- spi_write(pgm_read_byte(firmware_data + i));
+ spi_write(REG_SROM_Load_Burst | 0x80);
wait_us(15);
+
+ // send all bytes of the firmware
+ for (uint16_t i = 0; i < adns9800_srom_get_length(); i++) {
+ spi_write(adns9800_srom_get_byte(i));
+ wait_us(15);
+ }
+
+ spi_stop();
+
+ wait_ms(10);
+ } else {
+ // write reset value to REG_Configuration_IV
+ adns9800_write(REG_Configuration_IV, 0x0);
+
+ // write reset value to REG_SROM_Enable
+ adns9800_write(REG_SROM_Enable, 0x0);
+
+ // wait a frame
+ wait_ms(10);
}
- spi_stop();
-
- wait_ms(10);
-
// enable laser
uint8_t laser_ctrl0 = adns9800_read(REG_LASER_CTRL0);
adns9800_write(REG_LASER_CTRL0, laser_ctrl0 & 0xf0);
@@ -216,3 +243,12 @@ report_adns9800_t adns9800_get_report(void) {
return report;
}
+
+report_mouse_t adns9800_get_report_driver(report_mouse_t mouse_report) {
+ report_adns9800_t sensor_report = adns9800_get_report();
+
+ mouse_report.x = CONSTRAIN_HID_XY(sensor_report.x);
+ mouse_report.y = CONSTRAIN_HID_XY(sensor_report.y);
+
+ return mouse_report;
+}
diff --git a/drivers/sensors/adns9800.h b/drivers/sensors/adns9800.h
index 3f1a005789f..023f31b1323 100644
--- a/drivers/sensors/adns9800.h
+++ b/drivers/sensors/adns9800.h
@@ -17,6 +17,7 @@
#pragma once
#include
+#include "pointing_device.h"
#ifndef ADNS9800_CPI
# define ADNS9800_CPI 1600
@@ -60,6 +61,8 @@ typedef struct {
int16_t y;
} report_adns9800_t;
+const pointing_device_driver_t adns9800_pointing_device_driver;
+
void adns9800_init(void);
config_adns9800_t adns9800_get_config(void);
void adns9800_set_config(config_adns9800_t);
@@ -67,3 +70,4 @@ uint16_t adns9800_get_cpi(void);
void adns9800_set_cpi(uint16_t cpi);
/* Reads and clears the current delta values on the ADNS sensor */
report_adns9800_t adns9800_get_report(void);
+report_mouse_t adns9800_get_report_driver(report_mouse_t mouse_report);
diff --git a/drivers/sensors/adns9800_srom_A6.h b/drivers/sensors/adns9800_srom_A6.h
deleted file mode 100644
index e698a401b94..00000000000
--- a/drivers/sensors/adns9800_srom_A6.h
+++ /dev/null
@@ -1,202 +0,0 @@
-#pragma once
-
-#include "progmem.h"
-
-#define FIRMWARE_LENGTH 3070
-
-// clang-format off
-
-const uint8_t firmware_data[FIRMWARE_LENGTH] PROGMEM = {
- 0x03, 0xA6, 0x68, 0x1E, 0x7D, 0x10, 0x7E, 0x7E, 0x5F, 0x1C, 0xB8, 0xF2, 0x47, 0x0C, 0x7B, 0x74,
- 0x4B, 0x14, 0x8B, 0x75, 0x66, 0x51, 0x0B, 0x8C, 0x76, 0x74, 0x4B, 0x14, 0xAA, 0xD6, 0x0F, 0x9C,
- 0xBA, 0xF6, 0x6E, 0x3F, 0xDD, 0x38, 0xD5, 0x02, 0x80, 0x9B, 0x82, 0x6D, 0x58, 0x13, 0xA4, 0xAB,
- 0xB5, 0xC9, 0x10, 0xA2, 0xC6, 0x0A, 0x7F, 0x5D, 0x19, 0x91, 0xA0, 0xA3, 0xCE, 0xEB, 0x3E, 0xC9,
- 0xF1, 0x60, 0x42, 0xE7, 0x4C, 0xFB, 0x74, 0x6A, 0x56, 0x2E, 0xBF, 0xDD, 0x38, 0xD3, 0x05, 0x88,
- 0x92, 0xA6, 0xCE, 0xFF, 0x5D, 0x38, 0xD1, 0xCF, 0xEF, 0x58, 0xCB, 0x65, 0x48, 0xF0, 0x35, 0x85,
- 0xA9, 0xB2, 0x8F, 0x5E, 0xF3, 0x80, 0x94, 0x97, 0x7E, 0x75, 0x97, 0x87, 0x73, 0x13, 0xB0, 0x8A,
- 0x69, 0xD4, 0x0A, 0xDE, 0xC1, 0x79, 0x59, 0x36, 0xDB, 0x9D, 0xD6, 0xB8, 0x15, 0x6F, 0xCE, 0x3C,
- 0x72, 0x32, 0x45, 0x88, 0xDF, 0x6C, 0xA5, 0x6D, 0xE8, 0x76, 0x96, 0x14, 0x74, 0x20, 0xDC, 0xF4,
- 0xFA, 0x37, 0x6A, 0x27, 0x32, 0xE3, 0x29, 0xBF, 0xC4, 0xC7, 0x06, 0x9D, 0x58, 0xE7, 0x87, 0x7C,
- 0x2E, 0x9F, 0x6E, 0x49, 0x07, 0x5D, 0x23, 0x64, 0x54, 0x83, 0x6E, 0xCB, 0xB7, 0x77, 0xF7, 0x2B,
- 0x6E, 0x0F, 0x2E, 0x66, 0x12, 0x60, 0x55, 0x65, 0xFC, 0x43, 0xB3, 0x58, 0x73, 0x5B, 0xE8, 0x67,
- 0x04, 0x43, 0x02, 0xDE, 0xB3, 0x89, 0xA0, 0x6D, 0x3A, 0x27, 0x79, 0x64, 0x5B, 0x0C, 0x16, 0x9E,
- 0x66, 0xB1, 0x8B, 0x87, 0x0C, 0x5D, 0xF2, 0xB6, 0x3D, 0x71, 0xDF, 0x42, 0x03, 0x8A, 0x06, 0x8D,
- 0xEF, 0x1D, 0xA8, 0x96, 0x5C, 0xED, 0x31, 0x61, 0x5C, 0xA1, 0x34, 0xF6, 0x8C, 0x08, 0x60, 0x33,
- 0x07, 0x00, 0x3E, 0x79, 0x95, 0x1B, 0x43, 0x7F, 0xFE, 0xB6, 0xA6, 0xD4, 0x9D, 0x76, 0x72, 0xBF,
- 0xAD, 0xC0, 0x15, 0xE8, 0x37, 0x31, 0xA3, 0x72, 0x63, 0x52, 0x1D, 0x1C, 0x5D, 0x51, 0x1B, 0xE1,
- 0xA9, 0xED, 0x60, 0x32, 0x3E, 0xA9, 0x50, 0x28, 0x53, 0x06, 0x59, 0xE2, 0xFC, 0xE7, 0x02, 0x64,
- 0x39, 0x21, 0x56, 0x4A, 0xA5, 0x40, 0x80, 0x81, 0xD5, 0x5A, 0x60, 0x7B, 0x68, 0x84, 0xF1, 0xE0,
- 0xB1, 0xB6, 0x5B, 0xDF, 0xA8, 0x1D, 0x6D, 0x65, 0x20, 0xC0, 0xA2, 0xB9, 0xD9, 0xBB, 0x00, 0xA6,
- 0xDB, 0x8B, 0x01, 0x53, 0x91, 0xFE, 0xC4, 0x51, 0x85, 0xB0, 0x96, 0x7F, 0xFD, 0x51, 0xDD, 0x14,
- 0x03, 0x67, 0x2E, 0x75, 0x1C, 0x76, 0xD3, 0x6E, 0xDD, 0x99, 0x55, 0x76, 0xE5, 0xAB, 0x23, 0xFC,
- 0x4A, 0xD5, 0xC6, 0xE8, 0x2E, 0xCA, 0x8A, 0xB3, 0xF6, 0x8C, 0x6C, 0xB0, 0xE9, 0xF2, 0xE7, 0x9E,
- 0x69, 0x41, 0xED, 0xF1, 0x6D, 0xD2, 0x86, 0xD8, 0x7E, 0xCB, 0x5D, 0x47, 0x6C, 0x85, 0x6A, 0x23,
- 0xED, 0x20, 0x40, 0x93, 0xB4, 0x20, 0xC7, 0xA5, 0xC9, 0xAF, 0x03, 0x15, 0xAC, 0x19, 0xE5, 0x2A,
- 0x36, 0xDF, 0x6D, 0xC5, 0x8C, 0x80, 0x07, 0xCE, 0x92, 0x0C, 0xD8, 0x06, 0x62, 0x0F, 0xDD, 0x48,
- 0x46, 0x1A, 0x53, 0xC7, 0x8A, 0x8C, 0x5D, 0x5D, 0xB4, 0xA1, 0x02, 0xD3, 0xA9, 0xB8, 0xF3, 0x94,
- 0x8F, 0x3F, 0xE5, 0x54, 0xD4, 0x11, 0x65, 0xB2, 0x5E, 0x09, 0x0B, 0x81, 0xE3, 0x75, 0xA7, 0x89,
- 0x81, 0x39, 0x6C, 0x46, 0xF6, 0x06, 0x9F, 0x27, 0x3B, 0xB6, 0x2D, 0x5F, 0x1D, 0x4B, 0xD4, 0x7B,
- 0x1D, 0x61, 0x74, 0x89, 0xE4, 0xE3, 0xBD, 0x98, 0x1B, 0xC4, 0x51, 0x3B, 0xA4, 0xFA, 0xE0, 0x92,
- 0xF7, 0xBE, 0xF2, 0x4D, 0xBB, 0xFF, 0xAD, 0x4F, 0x6D, 0x68, 0xC2, 0x79, 0x40, 0xAA, 0x9B, 0x8F,
- 0x0C, 0x32, 0x4B, 0x5F, 0x3E, 0xAB, 0x59, 0x98, 0xB3, 0xF5, 0x1D, 0xAC, 0x5E, 0xBC, 0x78, 0xD3,
- 0x01, 0x6C, 0x64, 0x15, 0x2F, 0xD8, 0x71, 0xA6, 0x2D, 0x45, 0xE1, 0x22, 0x42, 0xE4, 0x4E, 0x04,
- 0x3C, 0x7D, 0xF4, 0x40, 0x21, 0xB4, 0x67, 0x05, 0xA8, 0xE2, 0xF3, 0x72, 0x87, 0x4C, 0x7D, 0xD9,
- 0x1B, 0x65, 0x97, 0xF3, 0xC2, 0xE3, 0xE4, 0xC8, 0xD2, 0xDE, 0xF6, 0xEF, 0xDC, 0xBB, 0x44, 0x08,
- 0x5E, 0xE2, 0x45, 0x27, 0x01, 0xB0, 0xF6, 0x43, 0xE7, 0x3A, 0xF6, 0xDC, 0x9D, 0xED, 0xF3, 0xC5,
- 0x0C, 0xB8, 0x9C, 0x98, 0x3A, 0xD8, 0x36, 0xEE, 0x96, 0x72, 0x67, 0xE7, 0x81, 0x91, 0xD5, 0x05,
- 0x0A, 0xE0, 0x82, 0xD5, 0x8F, 0xE8, 0xF9, 0xB0, 0xC9, 0xCF, 0x93, 0xE7, 0x04, 0xC5, 0xBC, 0x2B,
- 0x43, 0x56, 0x7E, 0xE8, 0x67, 0x7C, 0xE5, 0xFB, 0x49, 0xAD, 0x5E, 0x9F, 0x25, 0x13, 0xDE, 0x6E,
- 0x6E, 0xE9, 0xF1, 0xEC, 0x87, 0x0B, 0x59, 0x81, 0x76, 0x84, 0x76, 0xB3, 0x24, 0xAF, 0x30, 0xFD,
- 0x27, 0x8B, 0xAB, 0xD8, 0x00, 0x8B, 0x9B, 0x0C, 0xD2, 0xB2, 0x4E, 0x5E, 0x9D, 0x1D, 0x96, 0x01,
- 0x00, 0x67, 0xC1, 0x5F, 0x02, 0x20, 0xFD, 0x45, 0x6A, 0x01, 0x60, 0x58, 0x45, 0xCA, 0x47, 0x21,
- 0x90, 0x5A, 0xC4, 0x43, 0x26, 0x1A, 0xD7, 0xA5, 0x4A, 0xB2, 0x5D, 0x2B, 0x35, 0x49, 0xFB, 0xA5,
- 0x17, 0x92, 0x21, 0x1E, 0x93, 0x96, 0x67, 0xA2, 0x7E, 0x36, 0x7A, 0xDE, 0x5F, 0xBE, 0x7A, 0x58,
- 0x9D, 0xF8, 0x78, 0xA3, 0xFA, 0xC8, 0xD5, 0x17, 0xF0, 0x21, 0x97, 0x8C, 0x80, 0xB5, 0x4B, 0x3B,
- 0xBD, 0xBB, 0x41, 0x21, 0xA8, 0x50, 0x67, 0xF7, 0xE7, 0x19, 0x80, 0x10, 0x8E, 0xCE, 0x04, 0x18,
- 0x3F, 0x51, 0x6B, 0x77, 0xD8, 0x9E, 0x16, 0xAF, 0xEC, 0xEF, 0x48, 0x16, 0x4D, 0x9E, 0x85, 0x38,
- 0x18, 0x3E, 0xD4, 0x28, 0x87, 0x60, 0x2A, 0xF6, 0x7F, 0x09, 0x86, 0x6F, 0x9C, 0x3C, 0x3A, 0xFF,
- 0xAB, 0xD0, 0x61, 0xA2, 0x97, 0x0D, 0x71, 0x94, 0x7E, 0xFD, 0xB9, 0x80, 0x02, 0x89, 0x6A, 0xB3,
- 0x84, 0x6C, 0x2A, 0x77, 0x62, 0xBE, 0x0B, 0xF4, 0xAF, 0xAC, 0x7B, 0x7C, 0x8E, 0xCA, 0x01, 0xBA,
- 0x71, 0x78, 0x94, 0xFD, 0xB5, 0x39, 0xA4, 0x4D, 0x2F, 0x78, 0xCF, 0xCA, 0x92, 0x0C, 0x1A, 0x99,
- 0x48, 0x4C, 0x11, 0x96, 0xB5, 0x4E, 0x41, 0x28, 0xE4, 0xA6, 0xFE, 0x4B, 0x72, 0x91, 0xE7, 0xD4,
- 0xDD, 0x9F, 0x12, 0xE6, 0x29, 0x38, 0xCE, 0x45, 0xAE, 0x02, 0xB8, 0x24, 0xAE, 0xBD, 0xE9, 0x66,
- 0x08, 0x62, 0xA2, 0x2C, 0x2B, 0x00, 0xE2, 0x23, 0xD9, 0xC4, 0x48, 0xE4, 0xD3, 0xAC, 0xBB, 0x34,
- 0xC7, 0xF0, 0xE3, 0x4F, 0xB9, 0x30, 0xEA, 0xA2, 0x12, 0xF1, 0x30, 0x2C, 0x36, 0xDE, 0x48, 0xF2,
- 0xB0, 0x4C, 0x43, 0x3F, 0x2E, 0x58, 0xE4, 0x20, 0xE3, 0x58, 0xCD, 0x31, 0x22, 0xF0, 0xA2, 0x2A,
- 0xE6, 0x19, 0x90, 0x55, 0x86, 0xF6, 0x55, 0x79, 0xD1, 0xD7, 0x46, 0x2F, 0xC0, 0xDC, 0x99, 0xE8,
- 0xF3, 0x6A, 0xDF, 0x7F, 0xEB, 0x24, 0x4A, 0x1E, 0x5A, 0x75, 0xDE, 0x2F, 0x5C, 0x19, 0x61, 0x03,
- 0x53, 0x54, 0x6A, 0x3B, 0x18, 0x70, 0xB6, 0x4F, 0xF1, 0x9C, 0x0A, 0x59, 0x9D, 0x19, 0x92, 0x65,
- 0x8C, 0x83, 0x14, 0x2D, 0x44, 0x8A, 0x75, 0xA9, 0xF5, 0x90, 0xD2, 0x66, 0x4E, 0xFA, 0x69, 0x0F,
- 0x5B, 0x0B, 0x98, 0x65, 0xC8, 0x11, 0x42, 0x59, 0x7F, 0xDD, 0x1B, 0x75, 0x17, 0x31, 0x4C, 0x75,
- 0x58, 0xEB, 0x58, 0x63, 0x7D, 0xF2, 0xA6, 0xC2, 0x6E, 0xB7, 0x3F, 0x3E, 0x5E, 0x47, 0xAD, 0xB7,
- 0x04, 0xE8, 0x05, 0xF8, 0xB2, 0xCF, 0x19, 0xF3, 0xD2, 0x85, 0xFE, 0x3E, 0x3E, 0xB1, 0x62, 0x08,
- 0x2C, 0x10, 0x07, 0x0D, 0x73, 0x90, 0x17, 0xFA, 0x9B, 0x56, 0x02, 0x75, 0xF9, 0x51, 0xE0, 0xE9,
- 0x1A, 0x7B, 0x9F, 0xB3, 0xF3, 0x98, 0xB8, 0x1C, 0x9C, 0xE1, 0xD5, 0x35, 0xAE, 0xC8, 0x60, 0x48,
- 0x11, 0x09, 0x94, 0x6B, 0xD0, 0x8B, 0x15, 0xBC, 0x05, 0x68, 0xD3, 0x54, 0x8A, 0x51, 0x39, 0x5C,
- 0x42, 0x76, 0xCE, 0xD8, 0xAD, 0x89, 0x30, 0xC9, 0x05, 0x1C, 0xCC, 0x94, 0x3F, 0x0F, 0x90, 0x6F,
- 0x72, 0x2D, 0x85, 0x64, 0x9A, 0xB9, 0x23, 0xF9, 0x0B, 0xC3, 0x7C, 0x39, 0x0F, 0x97, 0x07, 0x97,
- 0xDA, 0x58, 0x48, 0x33, 0x05, 0x23, 0xB8, 0x82, 0xE8, 0xD3, 0x53, 0x89, 0xAF, 0x33, 0x80, 0x22,
- 0x84, 0x0C, 0x95, 0x5C, 0x67, 0xB8, 0x77, 0x0C, 0x5C, 0xA2, 0x5F, 0x3D, 0x58, 0x0F, 0x27, 0xF3,
- 0x2F, 0xAE, 0x48, 0xBD, 0x0B, 0x6F, 0x54, 0xFB, 0x67, 0x4C, 0xEA, 0x32, 0x27, 0xF1, 0xFA, 0xE2,
- 0xB0, 0xEC, 0x0B, 0x15, 0xB4, 0x70, 0xF6, 0x5C, 0xDD, 0x71, 0x60, 0xC3, 0xC1, 0xA8, 0x32, 0x65,
- 0xAC, 0x7A, 0x77, 0x41, 0xE5, 0xA9, 0x6B, 0x11, 0x81, 0xFA, 0x34, 0x8D, 0xFB, 0xC1, 0x80, 0x6E,
- 0xC4, 0x60, 0x30, 0x07, 0xD4, 0x8B, 0x67, 0xBD, 0xAA, 0x8C, 0x9C, 0x64, 0xAC, 0xDB, 0x0B, 0x24,
- 0x8B, 0x63, 0x6F, 0xE6, 0xBC, 0xE7, 0x33, 0xA4, 0x4A, 0x4C, 0xA7, 0x9F, 0x43, 0x53, 0xD2, 0xBB,
- 0x8F, 0x43, 0xC7, 0x3D, 0x78, 0x68, 0x3F, 0xA5, 0x3D, 0xCA, 0x69, 0x84, 0xA6, 0x97, 0x2D, 0xC0,
- 0x7D, 0x31, 0x34, 0x55, 0x1D, 0x07, 0xB1, 0x5F, 0x40, 0x5C, 0x93, 0xB0, 0xBC, 0x7C, 0xB0, 0xBC,
- 0xE7, 0x12, 0xEE, 0x6B, 0x2B, 0xD3, 0x4D, 0x67, 0x70, 0x3A, 0x9A, 0xF2, 0x3C, 0x7C, 0x81, 0xFA,
- 0xD7, 0xD9, 0x90, 0x91, 0x81, 0xB8, 0xB1, 0xF3, 0x48, 0x6A, 0x26, 0x4F, 0x0C, 0xCE, 0xB0, 0x9E,
- 0xFD, 0x4A, 0x3A, 0xAF, 0xAC, 0x5B, 0x3F, 0xBF, 0x44, 0x5A, 0xA3, 0x19, 0x1E, 0x4B, 0xE7, 0x36,
- 0x6A, 0xD7, 0x20, 0xAE, 0xD7, 0x7D, 0x3B, 0xE7, 0xFF, 0x3A, 0x86, 0x2E, 0xD0, 0x4A, 0x3E, 0xAF,
- 0x9F, 0x8E, 0x01, 0xBF, 0xF8, 0x4F, 0xC1, 0xE8, 0x6F, 0x74, 0xE1, 0x45, 0xD3, 0xF7, 0x04, 0x6A,
- 0x4B, 0x9D, 0xEC, 0x33, 0x27, 0x76, 0xD7, 0xC5, 0xE1, 0xB0, 0x3B, 0x0E, 0x23, 0xEC, 0xF0, 0x86,
- 0xD2, 0x1A, 0xBF, 0x3D, 0x04, 0x62, 0xB3, 0x6C, 0xB2, 0xEB, 0x17, 0x05, 0xA6, 0x0A, 0x8A, 0x7E,
- 0x83, 0x1C, 0xB6, 0x37, 0x09, 0xC6, 0x0B, 0x70, 0x3C, 0xB5, 0x93, 0x81, 0xD8, 0x93, 0xA0, 0x5F,
- 0x1E, 0x08, 0xE2, 0xC6, 0xE5, 0xC9, 0x72, 0xF1, 0xF1, 0xC1, 0xED, 0xD5, 0x58, 0x93, 0x83, 0xF8,
- 0x65, 0x67, 0x2E, 0x0D, 0xA9, 0xF1, 0x64, 0x12, 0xE6, 0x4C, 0xEA, 0x15, 0x3F, 0x8C, 0x1A, 0xB6,
- 0xBF, 0xF6, 0xB9, 0x52, 0x35, 0x09, 0xB0, 0xE6, 0xF7, 0xCD, 0xF1, 0xA5, 0xAA, 0x81, 0xD1, 0x81,
- 0x6F, 0xB4, 0xA9, 0x66, 0x1F, 0xFC, 0x48, 0xC0, 0xB6, 0xD1, 0x8B, 0x06, 0x2F, 0xF6, 0xEF, 0x1F,
- 0x0A, 0xE6, 0xCE, 0x3A, 0x4A, 0x55, 0xBF, 0x6D, 0xF9, 0x4D, 0xD4, 0x08, 0x45, 0x4B, 0xC3, 0x66,
- 0x19, 0x92, 0x10, 0xE1, 0x17, 0x8E, 0x28, 0x91, 0x16, 0xBF, 0x3C, 0xEE, 0xA3, 0xA6, 0x99, 0x92,
- 0x10, 0xE1, 0xF6, 0xCC, 0xAC, 0xB8, 0x65, 0x0B, 0x43, 0x66, 0xF8, 0xE3, 0xE5, 0x3F, 0x24, 0x89,
- 0x47, 0x5D, 0x78, 0x43, 0xD0, 0x61, 0x17, 0xBD, 0x5B, 0x64, 0x54, 0x08, 0x45, 0x59, 0x93, 0xF6,
- 0x95, 0x8A, 0x41, 0x51, 0x62, 0x4B, 0x51, 0x02, 0x30, 0x73, 0xC7, 0x87, 0xC5, 0x4B, 0xA2, 0x97,
- 0x0F, 0xE8, 0x46, 0x5F, 0x7E, 0x2A, 0xE1, 0x30, 0x20, 0xB0, 0xFA, 0xE7, 0xCE, 0x61, 0x42, 0x57,
- 0x6E, 0x21, 0xF3, 0x7A, 0xEC, 0xE3, 0x25, 0xC7, 0x25, 0xF3, 0x67, 0xA7, 0x57, 0x40, 0x00, 0x02,
- 0xCF, 0x1C, 0x80, 0x77, 0x67, 0xBD, 0x70, 0xA1, 0x19, 0x92, 0x31, 0x75, 0x93, 0x27, 0x27, 0xB6,
- 0x82, 0xE4, 0xEB, 0x1D, 0x78, 0x48, 0xE7, 0xA5, 0x5E, 0x57, 0xEF, 0x64, 0x28, 0x64, 0x1B, 0xF6,
- 0x11, 0xB2, 0x03, 0x9D, 0xB9, 0x18, 0x02, 0x27, 0xF7, 0xBE, 0x9D, 0x55, 0xFC, 0x00, 0xD2, 0xC7,
- 0xAE, 0xAD, 0x0B, 0xC5, 0xE9, 0x42, 0x41, 0x48, 0xD8, 0x32, 0xCF, 0xF6, 0x0F, 0xF5, 0xBC, 0x97,
- 0xC6, 0x99, 0x47, 0x76, 0xBD, 0x89, 0x06, 0x0F, 0x63, 0x0C, 0x51, 0xD4, 0x5E, 0xEA, 0x48, 0xA8,
- 0xA2, 0x56, 0x1C, 0x79, 0x84, 0x86, 0x40, 0x88, 0x41, 0x76, 0x55, 0xFC, 0xC2, 0xD7, 0xFD, 0xC9,
- 0xC7, 0x80, 0x61, 0x35, 0xA7, 0x43, 0x20, 0xF7, 0xEB, 0x6C, 0x66, 0x13, 0xB0, 0xEC, 0x02, 0x75,
- 0x3E, 0x4B, 0xAF, 0xB9, 0x5D, 0x40, 0xDA, 0xD6, 0x6E, 0x2D, 0x39, 0x54, 0xC2, 0x95, 0x35, 0x54,
- 0x25, 0x72, 0xE1, 0x78, 0xB8, 0xEB, 0xC1, 0x16, 0x58, 0x0F, 0x9C, 0x9B, 0xB4, 0xEA, 0x37, 0xEC,
- 0x3B, 0x11, 0xBA, 0xD5, 0x8A, 0xA9, 0xE3, 0x98, 0x00, 0x51, 0x1C, 0x14, 0xE0, 0x40, 0x96, 0xE5,
- 0xE9, 0xF2, 0x21, 0x22, 0xB1, 0x23, 0x60, 0x78, 0xD3, 0x17, 0xF8, 0x7A, 0xA5, 0xA8, 0xBA, 0x20,
- 0xD3, 0x15, 0x1E, 0x32, 0xE4, 0x5E, 0x15, 0x48, 0xAE, 0xA9, 0xE5, 0xB8, 0x33, 0xEC, 0xE8, 0xA2,
- 0x42, 0xAC, 0xBF, 0x10, 0x84, 0x53, 0x87, 0x19, 0xB4, 0x5F, 0x76, 0x4D, 0x01, 0x9D, 0x56, 0x74,
- 0xD9, 0x5C, 0x97, 0xE7, 0x88, 0xEA, 0x3A, 0xBF, 0xDC, 0x4C, 0x33, 0x8A, 0x16, 0xB9, 0x5B, 0xFA,
- 0xD8, 0x42, 0xA7, 0xBB, 0x3C, 0x04, 0x27, 0x78, 0x49, 0x81, 0x2A, 0x5A, 0x7D, 0x7C, 0x23, 0xA8,
- 0xBA, 0xF7, 0x9A, 0x9F, 0xD2, 0x66, 0x3E, 0x38, 0x3C, 0x75, 0xF9, 0xD1, 0x30, 0x26, 0x30, 0x6E,
- 0x5A, 0x6E, 0xDC, 0x6A, 0x69, 0x32, 0x50, 0x33, 0x47, 0x9E, 0xA4, 0xA8, 0x64, 0x66, 0xF0, 0x8A,
- 0xE4, 0xFD, 0x27, 0x6F, 0x51, 0x25, 0x8B, 0x43, 0x74, 0xC9, 0x8E, 0xBD, 0x88, 0x31, 0xBE, 0xEC,
- 0x65, 0xD2, 0xCB, 0x8D, 0x5A, 0x13, 0x48, 0x16, 0x8C, 0x61, 0x0B, 0x11, 0xF6, 0xC6, 0x66, 0xAE,
- 0xC3, 0xCC, 0x0C, 0xD2, 0xE1, 0x9F, 0x82, 0x41, 0x3F, 0x56, 0xF9, 0x73, 0xEF, 0xDC, 0x30, 0x50,
- 0xCF, 0xB6, 0x7F, 0xBC, 0xD0, 0xB3, 0x10, 0xAB, 0x24, 0xE4, 0xEC, 0xAD, 0x18, 0x8C, 0x39, 0x2D,
- 0x30, 0x4C, 0xC5, 0x40, 0x0D, 0xF6, 0xAC, 0xD6, 0x18, 0x5D, 0x96, 0xBF, 0x5F, 0x71, 0x75, 0x96,
- 0x22, 0x97, 0x0F, 0x02, 0x94, 0x6E, 0xA6, 0xAE, 0x6D, 0x8F, 0x1E, 0xCA, 0x12, 0x9B, 0x2A, 0x1C,
- 0xCE, 0xA9, 0xEE, 0xFD, 0x12, 0x8E, 0xFC, 0xED, 0x09, 0x33, 0xBA, 0xF4, 0x1A, 0x15, 0xF6, 0x9D,
- 0x87, 0x16, 0x43, 0x7C, 0x78, 0x57, 0xE1, 0x44, 0xC9, 0xEB, 0x1F, 0x58, 0x4D, 0xC1, 0x49, 0x11,
- 0x5C, 0xB2, 0x11, 0xA8, 0x55, 0x16, 0xF1, 0xC6, 0x50, 0xE9, 0x87, 0x89, 0xF6, 0xCF, 0xD8, 0x9C,
- 0x51, 0xA7, 0xBC, 0x5B, 0x31, 0x6D, 0x4D, 0x51, 0xD0, 0x4C, 0xBC, 0x0D, 0x58, 0x2D, 0x7B, 0x88,
- 0x7A, 0xF9, 0x8E, 0xD6, 0x40, 0x4D, 0xBB, 0xBE, 0xC4, 0xE5, 0x07, 0xFC, 0xD9, 0x7B, 0x6D, 0xA6,
- 0x42, 0x57, 0x8F, 0x02, 0x94, 0x4F, 0xE4, 0x2A, 0x65, 0xE2, 0x19, 0x5A, 0x50, 0xE1, 0x25, 0x65,
- 0x4A, 0x60, 0xC2, 0xCD, 0xA8, 0xEC, 0x05, 0x2E, 0x87, 0x7B, 0x95, 0xB7, 0x4F, 0xA0, 0x0B, 0x1B,
- 0x4A, 0x7F, 0x92, 0xC8, 0x90, 0xEE, 0x89, 0x1E, 0x10, 0xD2, 0x85, 0xE4, 0x9F, 0x63, 0xC8, 0x12,
- 0xBB, 0x4E, 0xB8, 0xCF, 0x0A, 0xEC, 0x18, 0x4E, 0xE6, 0x7C, 0xB3, 0x33, 0x26, 0xC7, 0x1F, 0xD2,
- 0x04, 0x23, 0xEA, 0x07, 0x0C, 0x5F, 0x90, 0xBD, 0xA7, 0x6A, 0x0F, 0x4A, 0xD6, 0x10, 0x01, 0x3C,
- 0x12, 0x29, 0x2E, 0x96, 0xC0, 0x4D, 0xBB, 0xBE, 0xE5, 0xA7, 0x83, 0xD5, 0x6A, 0x3C, 0xE3, 0x5B,
- 0xB8, 0xF2, 0x5C, 0x6D, 0x1F, 0xA6, 0xF3, 0x12, 0x24, 0xF6, 0xD6, 0x3B, 0x10, 0x14, 0x09, 0x07,
- 0x82, 0xE8, 0x30, 0x6A, 0x99, 0xDC, 0x95, 0x01, 0x9C, 0xD4, 0x68, 0x3B, 0xCA, 0x98, 0x12, 0xAB,
- 0x77, 0x25, 0x15, 0x7D, 0x10, 0x32, 0x45, 0x98, 0xCD, 0x7A, 0xDF, 0x71, 0x8A, 0x75, 0xC1, 0x1C,
- 0xD4, 0x68, 0x25, 0xEB, 0xBB, 0x54, 0x27, 0x6F, 0x2A, 0xF7, 0xB9, 0x98, 0x03, 0x27, 0xDE, 0x24,
- 0xA8, 0xBB, 0x98, 0xC2, 0x84, 0xFF, 0x9B, 0x51, 0xD8, 0x53, 0x50, 0xDA, 0xF5, 0x88, 0xAA, 0x87,
- 0x2F, 0xAE, 0xD6, 0xEA, 0x6B, 0xDE, 0xC8, 0xD7, 0xA7, 0x28, 0x65, 0x81, 0xE8, 0xB2, 0x3B, 0x1D,
- 0x4F, 0x75, 0x8F, 0x9F, 0x7A, 0x74, 0x8E, 0xC1, 0x5F, 0x9A, 0xA8, 0x9D, 0xFA, 0x03, 0xA3, 0x71,
- 0x9B, 0x37, 0x6D, 0xD5, 0x0B, 0xF5, 0xE1, 0xA1, 0x1B, 0x01, 0x6A, 0xC6, 0x67, 0xAA, 0xEA, 0x2C,
- 0x9D, 0xA4, 0xD2, 0x6E, 0xFC, 0xDE, 0x2E, 0x7F, 0x94, 0x69, 0xE5, 0x4A, 0xE0, 0x01, 0x48, 0x3C,
- 0x6B, 0xF7, 0x1E, 0xB6, 0x0B, 0x5F, 0xF9, 0x2E, 0x07, 0xC5, 0xE8, 0xAE, 0x37, 0x1B, 0xBC, 0x3C,
- 0xD8, 0xD5, 0x0B, 0x91, 0x9E, 0x80, 0x24, 0xF5, 0x06, 0x0C, 0x0E, 0x98, 0x07, 0x96, 0x2D, 0x19,
- 0xDC, 0x58, 0x93, 0xCC, 0xFB, 0x4E, 0xEB, 0xBD, 0x0F, 0xF5, 0xAF, 0x01, 0xFA, 0xF1, 0x7C, 0x43,
- 0x8C, 0xB8, 0x56, 0x3E, 0xBE, 0x77, 0x4E, 0x2B, 0xF7, 0xBB, 0xB7, 0x45, 0x47, 0xCD, 0xCC, 0xA6,
- 0x4C, 0x72, 0x7B, 0x6A, 0x2A, 0x70, 0x13, 0x07, 0xFD, 0xB8, 0x9C, 0x98, 0x3A, 0xD8, 0x23, 0x67,
- 0x5B, 0x34, 0xD5, 0x14, 0x0C, 0xAB, 0x77, 0x1F, 0xF8, 0x3D, 0x5A, 0x9F, 0x92, 0xB7, 0x2C, 0xAD,
- 0x31, 0xDE, 0x61, 0x07, 0xB3, 0x6B, 0xF7, 0x38, 0x15, 0x95, 0x46, 0x14, 0x48, 0x53, 0x69, 0x52,
- 0x66, 0x07, 0x6D, 0x83, 0x71, 0x8A, 0x67, 0x25, 0x20, 0x0F, 0xFE, 0xD7, 0x02, 0xD7, 0x6E, 0x2C,
- 0xD2, 0x1A, 0x0A, 0x5D, 0xFD, 0x0F, 0x74, 0xE3, 0xA4, 0x36, 0x07, 0x9A, 0xDF, 0xD4, 0x79, 0xBF,
- 0xEF, 0x59, 0xC0, 0x44, 0x52, 0x87, 0x9A, 0x6E, 0x1D, 0x0E, 0xEE, 0xDE, 0x2E, 0x1A, 0xA9, 0x8F,
- 0x3A, 0xC9, 0xBA, 0xEC, 0x99, 0x78, 0x2D, 0x55, 0x6B, 0x14, 0xC2, 0x06, 0xD5, 0xFC, 0x93, 0x53,
- 0x4D, 0x11, 0x8C, 0xF8, 0xFA, 0x79, 0x7C, 0xA6, 0x64, 0xAE, 0x61, 0xB8, 0x7B, 0x94, 0x56, 0xA6,
- 0x39, 0x78, 0x9A, 0xE5, 0xC7, 0xDF, 0x18, 0x63, 0x23, 0x9C, 0xFA, 0x66, 0xBB, 0xB7, 0x5A, 0x27,
- 0x4C, 0xD1, 0xA1, 0x83, 0x22, 0xB3, 0x52, 0x49, 0x35, 0xB0, 0x22, 0x83, 0x59, 0x12, 0x00, 0x16,
- 0x98, 0xDD, 0xAD, 0xC2, 0x94, 0xF9, 0xD3, 0x7B, 0x64, 0x7F, 0x44, 0x3E, 0x3C, 0x8B, 0x9A, 0x83,
- 0x9C, 0x69, 0x6B, 0xE4, 0xDF, 0x9F, 0xED, 0x54, 0x1F, 0xE5, 0x5D, 0x7A, 0x05, 0x82, 0xB3, 0xDD,
- 0xEF, 0xFC, 0x53, 0x96, 0xB0, 0x2C, 0x5A, 0xF8, 0xDF, 0x9C, 0x8B, 0x16, 0x4E, 0xDF, 0xDA, 0x4D,
- 0x09, 0x09, 0x69, 0x50, 0x03, 0x65, 0xD8, 0x73, 0x70, 0xE8, 0x86, 0xBF, 0xBB, 0x35, 0xCE, 0xB2,
- 0x46, 0xCB, 0x02, 0x00, 0x5B, 0xB4, 0xE2, 0xC6, 0x8F, 0x2F, 0x98, 0xAF, 0x87, 0x4B, 0x48, 0x45,
- 0xED, 0xCC, 0x1D, 0xE6, 0x58, 0xD6, 0xF2, 0x50, 0x25, 0x9F, 0x52, 0xC7, 0xCB, 0x8A, 0x17, 0x9D,
- 0x5B, 0xE5, 0xC8, 0xD7, 0x72, 0xB7, 0x52, 0xB2, 0xC4, 0x98, 0xE3, 0x7A, 0x17, 0x3E, 0xC6, 0x60,
- 0xA7, 0x97, 0xB0, 0xCF, 0x18, 0x81, 0x53, 0x84, 0x4C, 0xD5, 0x17, 0x32, 0x03, 0x13, 0x39, 0x51,
- 0x09, 0x10, 0xE3, 0x77, 0x49, 0x4F, 0x62, 0x01, 0xBF, 0x8C, 0x9A, 0xE0, 0x41, 0x9E, 0x89, 0x74,
- 0x36, 0xF9, 0x96, 0x86, 0x2E, 0x96, 0x1C, 0x4A, 0xB7, 0x2B, 0x4A, 0x97, 0xBC, 0x99, 0x40, 0xA3,
- 0xE0, 0x3D, 0xC8, 0xAD, 0x2F, 0xDF, 0x4F, 0x2C, 0xC4, 0x69, 0x82, 0x9F, 0x9B, 0x81, 0x0C, 0x61,
- 0x5C, 0xA5, 0x9D, 0x8C, 0x89, 0xC0, 0x2C, 0xB4, 0x4A, 0x33, 0x4E, 0xEB, 0xA2, 0x56, 0x40, 0xC0,
- 0xC2, 0x46, 0xAF, 0x6A, 0xFC, 0x67, 0xD1, 0x80, 0x5E, 0xC5, 0x6D, 0x84, 0x43, 0x27, 0x3F, 0x55,
- 0x15, 0x96, 0x6A, 0xA0, 0xA5, 0xDA, 0xB7, 0xFF, 0xB7, 0x75, 0x6E, 0x4C, 0x49, 0x91, 0x9D, 0x22,
- 0xA3, 0x46, 0xEA, 0xED, 0x9A, 0x00, 0xE2, 0x32, 0xC3, 0xD6, 0xA9, 0x71, 0x20, 0x55, 0xA3, 0x19,
- 0xED, 0xF8, 0x4F, 0xA7, 0x12, 0x9C, 0x66, 0x87, 0xAF, 0x4E, 0xB7, 0xF0, 0xDB, 0xBF, 0xEF, 0xF0,
- 0xF6, 0xAF, 0xEA, 0xDA, 0x09, 0xFE, 0xDE, 0x38, 0x5C, 0xA5, 0xA2, 0xDF, 0x99, 0x45, 0xA8, 0xE4,
- 0xE7, 0x92, 0xAC, 0x67, 0xAA, 0x4F, 0xBF, 0x77, 0x3E, 0xA2, 0x40, 0x49, 0x22, 0x4A, 0x1E, 0x3B,
- 0xAA, 0x70, 0x7F, 0x95, 0xAF, 0x37, 0x4B, 0xFC, 0x99, 0xE2, 0xE0, 0xBA, 0xD7, 0x34, 0xCE, 0x55,
- 0x88, 0x5B, 0x84, 0x1B, 0x57, 0xC4, 0x80, 0x03, 0x53, 0xC9, 0x2F, 0x93, 0x04, 0x4D, 0xD5, 0x96,
- 0xE5, 0x70, 0xA6, 0x6E, 0x63, 0x5D, 0x9D, 0x6C, 0xDB, 0x02, 0x0A, 0xA9, 0xDA, 0x8B, 0x53, 0xDC,
- 0xD9, 0x9A, 0xC5, 0x94, 0x2C, 0x91, 0x92, 0x2A, 0xDE, 0xBB, 0x8B, 0x13, 0xB9, 0x19, 0x96, 0x64,
- 0xCC, 0xF2, 0x64, 0x39, 0xB7, 0x75, 0x49, 0xE9, 0x86, 0xC2, 0x86, 0x62, 0xD9, 0x24, 0xD3, 0x81,
- 0x35, 0x49, 0xFC, 0xA0, 0xA5, 0xA0, 0x93, 0x05, 0x64, 0xB4, 0x1A, 0x57, 0xCE, 0x0C, 0x90, 0x02,
- 0x27, 0xC5, 0x7A, 0x2B, 0x5D, 0xAE, 0x3E, 0xD5, 0xDD, 0x10, 0x7C, 0x14, 0xEA, 0x3A, 0x08, 0xAC,
- 0x72, 0x4E, 0x90, 0x3D, 0x3B, 0x7C, 0x86, 0x2E, 0xEB, 0xD4, 0x06, 0x70, 0xE6, 0xC7, 0xFB, 0x5F,
- 0xBD, 0x18, 0xF4, 0x11, 0xA4, 0x1A, 0x93, 0xC3, 0xBE, 0xD9, 0xFB, 0x26, 0x48, 0x2F, 0x37, 0x3C,
- 0xD0, 0x03, 0x47, 0x1A, 0xF7, 0x62, 0x19, 0x24, 0x5C, 0xF4, 0xA8, 0x92, 0x20, 0x7A, 0xF2, 0x9E,
- 0x2A, 0xC5, 0x95, 0xA2, 0xFB, 0xA4, 0xEA, 0x85, 0xD8, 0x56, 0xB7, 0x70, 0xD1, 0x60, 0x30, 0xA5,
- 0x30, 0x82, 0x70, 0xDC, 0x7A, 0x65, 0x8A, 0x36, 0x3F, 0x5B, 0x0C, 0xAE, 0x54, 0x7C, 0xD3, 0x57,
- 0x84, 0x7B, 0x3A, 0x65, 0x18, 0x81, 0xEE, 0x05, 0x9B, 0x44, 0x4D, 0xB8, 0xDA, 0xA2, 0xA1, 0xC9,
- 0x15, 0xD3, 0x73, 0x03, 0x0E, 0x43, 0xE9, 0x8E, 0x15, 0xF9, 0xBE, 0xC6, 0xC5, 0x8A, 0xE5, 0xC0,
- 0x1E, 0xC2, 0x37, 0x9E, 0x2A, 0x26, 0xA5, 0xA0, 0xBD, 0x24, 0x5F, 0xB9, 0xC1, 0xAB, 0x34, 0x48,
- 0xB9, 0x5D, 0x98, 0xB4, 0x65, 0x18, 0xF3, 0x63, 0x19, 0x44, 0x1B, 0x11, 0x16, 0xFF, 0xDC, 0xF1,
- 0x79, 0x08, 0x86, 0x0F, 0x52, 0x98, 0x73, 0xC4, 0x92, 0x90, 0x2B, 0x47, 0x09, 0xD0, 0x43, 0x6C,
- 0x2F, 0x20, 0xEB, 0xDC, 0xDA, 0xC5, 0x08, 0x7B, 0x94, 0x42, 0x30, 0x6A, 0xC7, 0xDA, 0x8C, 0xC3,
- 0x76, 0xA7, 0xA5, 0xCC, 0x62, 0x13, 0x00, 0x60, 0x31, 0x58, 0x44, 0x9B, 0xF5, 0x64, 0x14, 0xF5,
- 0x11, 0xC5, 0x54, 0x52, 0x83, 0xD4, 0x73, 0x01, 0x16, 0x0E, 0xB3, 0x7A, 0x29, 0x69, 0x35, 0x56,
- 0xD4, 0xEE, 0x8A, 0x17, 0xA2, 0x99, 0x24, 0x9C, 0xD7, 0x8F, 0xDB, 0x55, 0xB5, 0x3E
-};
diff --git a/drivers/sensors/analog_joystick.c b/drivers/sensors/analog_joystick.c
index 15b35a45f25..93bbaa1b51b 100644
--- a/drivers/sensors/analog_joystick.c
+++ b/drivers/sensors/analog_joystick.c
@@ -20,6 +20,14 @@
#include "wait.h"
#include "timer.h"
#include
+#include "pointing_device_internal.h"
+
+const pointing_device_driver_t analog_joystick_pointing_device_driver = {
+ .init = analog_joystick_init,
+ .get_report = analog_joystick_get_report,
+ .set_cpi = NULL,
+ .get_cpi = NULL,
+};
// Set Parameters
#ifndef ANALOG_JOYSTICK_AUTO_AXIS
@@ -145,3 +153,16 @@ void analog_joystick_init(void) {
maxAxisValues[1] = yOrigin + 100;
#endif
}
+
+report_mouse_t analog_joystick_get_report(report_mouse_t mouse_report) {
+ report_analog_joystick_t data = analog_joystick_read();
+
+ pd_dprintf("Raw ] X: %d, Y: %d\n", data.x, data.y);
+
+ mouse_report.x = data.x;
+ mouse_report.y = data.y;
+
+ mouse_report.buttons = pointing_device_handle_buttons(mouse_report.buttons, data.button, POINTING_DEVICE_BUTTON1);
+
+ return mouse_report;
+}
diff --git a/drivers/sensors/analog_joystick.h b/drivers/sensors/analog_joystick.h
index 6892a08817f..c84da83db13 100644
--- a/drivers/sensors/analog_joystick.h
+++ b/drivers/sensors/analog_joystick.h
@@ -18,6 +18,7 @@
#include
#include
+#include "pointing_device.h"
#ifndef ANALOG_JOYSTICK_X_AXIS_PIN
# error No pin specified for X Axis
@@ -42,6 +43,8 @@
# define ANALOG_JOYSTICK_SPEED_MAX 2
#endif
+const pointing_device_driver_t analog_joystick_pointing_device_driver;
+
typedef struct {
int8_t x;
int8_t y;
@@ -49,3 +52,4 @@ typedef struct {
} report_analog_joystick_t;
report_analog_joystick_t analog_joystick_read(void);
void analog_joystick_init(void);
+report_mouse_t analog_joystick_get_report(report_mouse_t mouse_report);
diff --git a/drivers/sensors/azoteq_iqs5xx.c b/drivers/sensors/azoteq_iqs5xx.c
index 367873eb062..ae26ee60cfd 100644
--- a/drivers/sensors/azoteq_iqs5xx.c
+++ b/drivers/sensors/azoteq_iqs5xx.c
@@ -17,6 +17,7 @@
#define AZOTEQ_IQS5XX_REG_PREVIOUS_CYCLE_TIME 0x000C
#define AZOTEQ_IQS5XX_REG_SYSTEM_CONTROL_1 0x0432
#define AZOTEQ_IQS5XX_REG_REPORT_RATE_ACTIVE 0x057A
+#define AZOTEQ_IQS5XX_REG_IDLE_MODE_TIMEOUT 0x0586
#define AZOTEQ_IQS5XX_REG_SYSTEM_CONFIG_0 0x058E
#define AZOTEQ_IQS5XX_REG_SYSTEM_CONFIG_1 0x058F
#define AZOTEQ_IQS5XX_REG_X_RESOLUTION 0x066E
@@ -77,6 +78,10 @@
#ifndef AZOTEQ_IQS5XX_ZOOM_CONSECUTIVE_DISTANCE
# define AZOTEQ_IQS5XX_ZOOM_CONSECUTIVE_DISTANCE 0x19
#endif
+#ifndef AZOTEQ_IQS5XX_EVENT_MODE
+// Event mode can't be used until the pointing code has changed (stuck buttons)
+# define AZOTEQ_IQS5XX_EVENT_MODE false
+#endif
#if defined(AZOTEQ_IQS5XX_TPS43)
# define AZOTEQ_IQS5XX_WIDTH_MM 43
@@ -98,6 +103,13 @@
#define AZOTEQ_IQS5XX_INCH_TO_RESOLUTION_Y(inch) (DIVIDE_UNSIGNED_ROUND((inch) * (uint32_t)AZOTEQ_IQS5XX_HEIGHT_MM * 10, 254))
#define AZOTEQ_IQS5XX_RESOLUTION_Y_TO_INCH(px) (DIVIDE_UNSIGNED_ROUND((px) * (uint32_t)254, AZOTEQ_IQS5XX_HEIGHT_MM * 10))
+const pointing_device_driver_t azoteq_iqs5xx_pointing_device_driver = {
+ .init = azoteq_iqs5xx_init,
+ .get_report = azoteq_iqs5xx_get_report,
+ .set_cpi = azoteq_iqs5xx_set_cpi,
+ .get_cpi = azoteq_iqs5xx_get_cpi,
+};
+
static uint16_t azoteq_iqs5xx_product_number = AZOTEQ_IQS5XX_UNKNOWN;
static struct {
@@ -105,12 +117,6 @@ static struct {
uint16_t resolution_y;
} azoteq_iqs5xx_device_resolution_t;
-i2c_status_t azoteq_iqs5xx_wake(void) {
- uint8_t data = 0;
- i2c_status_t status = i2c_read_register16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_PREVIOUS_CYCLE_TIME, (uint8_t *)&data, sizeof(data), 1);
- wait_us(150);
- return status;
-}
i2c_status_t azoteq_iqs5xx_end_session(void) {
const uint8_t END_BYTE = 1; // any data
return i2c_write_register16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_END_COMMS, &END_BYTE, 1, AZOTEQ_IQS5XX_TIMEOUT_MS);
@@ -312,3 +318,99 @@ void azoteq_iqs5xx_setup_resolution(void) {
azoteq_iqs5xx_device_resolution_t.resolution_y = AZOTEQ_IQS5XX_RESOLUTION_Y;
#endif
}
+
+static i2c_status_t azoteq_iqs5xx_init_status = 1;
+
+void azoteq_iqs5xx_init(void) {
+ i2c_init();
+ i2c_ping_address(AZOTEQ_IQS5XX_ADDRESS, 1); // wake
+ azoteq_iqs5xx_reset_suspend(true, false, true);
+ wait_ms(100);
+ i2c_ping_address(AZOTEQ_IQS5XX_ADDRESS, 1); // wake
+ if (azoteq_iqs5xx_get_product() != AZOTEQ_IQS5XX_UNKNOWN) {
+ azoteq_iqs5xx_setup_resolution();
+ azoteq_iqs5xx_init_status = azoteq_iqs5xx_set_report_rate(AZOTEQ_IQS5XX_REPORT_RATE, AZOTEQ_IQS5XX_ACTIVE, false);
+ azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_report_rate(AZOTEQ_IQS5XX_REPORT_RATE, AZOTEQ_IQS5XX_IDLE, false);
+ azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_report_rate(AZOTEQ_IQS5XX_REPORT_RATE, AZOTEQ_IQS5XX_IDLE_TOUCH, false);
+
+ uint8_t no_timeout = 255;
+ azoteq_iqs5xx_init_status |= i2c_write_register16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_IDLE_MODE_TIMEOUT, &no_timeout, 1, AZOTEQ_IQS5XX_TIMEOUT_MS); // Don't enter LP1, LP2 states
+ azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_event_mode(AZOTEQ_IQS5XX_EVENT_MODE, false);
+ azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_reati(true, false);
+#if defined(AZOTEQ_IQS5XX_ROTATION_90)
+ azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(false, true, true, true, false);
+#elif defined(AZOTEQ_IQS5XX_ROTATION_180)
+ azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(true, true, false, true, false);
+#elif defined(AZOTEQ_IQS5XX_ROTATION_270)
+ azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(true, false, true, true, false);
+#else
+ azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(false, false, false, true, false);
+#endif
+ azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_gesture_config(true);
+ wait_ms(AZOTEQ_IQS5XX_REPORT_RATE + 1);
+ }
+};
+
+report_mouse_t azoteq_iqs5xx_get_report(report_mouse_t mouse_report) {
+ report_mouse_t temp_report = {0};
+
+ if (azoteq_iqs5xx_init_status == I2C_STATUS_SUCCESS) {
+ azoteq_iqs5xx_base_data_t base_data = {0};
+ i2c_status_t status = azoteq_iqs5xx_get_base_data(&base_data);
+ bool ignore_movement = false;
+
+ if (status == I2C_STATUS_SUCCESS) {
+#ifdef POINTING_DEVICE_DEBUG
+ if (base_data.previous_cycle_time > AZOTEQ_IQS5XX_REPORT_RATE) {
+ pd_dprintf("IQS5XX - previous cycle time missed, took: %dms\n", base_data.previous_cycle_time);
+ }
+#endif
+ if (base_data.gesture_events_0.single_tap || base_data.gesture_events_0.press_and_hold) {
+ pd_dprintf("IQS5XX - Single tap/hold.\n");
+ temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON1);
+ } else if (base_data.gesture_events_1.two_finger_tap) {
+ pd_dprintf("IQS5XX - Two finger tap.\n");
+ temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON2);
+ } else if (base_data.gesture_events_0.swipe_x_neg) {
+ pd_dprintf("IQS5XX - X-.\n");
+ temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON4);
+ ignore_movement = true;
+ } else if (base_data.gesture_events_0.swipe_x_pos) {
+ pd_dprintf("IQS5XX - X+.\n");
+ temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON5);
+ ignore_movement = true;
+ } else if (base_data.gesture_events_0.swipe_y_neg) {
+ pd_dprintf("IQS5XX - Y-.\n");
+ temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON6);
+ ignore_movement = true;
+ } else if (base_data.gesture_events_0.swipe_y_pos) {
+ pd_dprintf("IQS5XX - Y+.\n");
+ temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON3);
+ ignore_movement = true;
+ } else if (base_data.gesture_events_1.zoom) {
+ if (AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l) < 0) {
+ pd_dprintf("IQS5XX - Zoom out.\n");
+ temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON7);
+ } else if (AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l) > 0) {
+ pd_dprintf("IQS5XX - Zoom in.\n");
+ temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON8);
+ }
+ } else if (base_data.gesture_events_1.scroll) {
+ pd_dprintf("IQS5XX - Scroll.\n");
+ temp_report.h = CONSTRAIN_HID(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l));
+ temp_report.v = CONSTRAIN_HID(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.y.h, base_data.y.l));
+ }
+ if (base_data.number_of_fingers == 1 && !ignore_movement) {
+ temp_report.x = CONSTRAIN_HID_XY(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l));
+ temp_report.y = CONSTRAIN_HID_XY(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.y.h, base_data.y.l));
+ }
+
+ } else {
+ pd_dprintf("IQS5XX - get report failed, i2c status: %d \n", status);
+ }
+ } else {
+ pd_dprintf("IQS5XX - Init failed, i2c status: %d \n", azoteq_iqs5xx_init_status);
+ }
+
+ return temp_report;
+}
diff --git a/drivers/sensors/azoteq_iqs5xx.h b/drivers/sensors/azoteq_iqs5xx.h
index 704ec2bab3b..e1e8b67b312 100644
--- a/drivers/sensors/azoteq_iqs5xx.h
+++ b/drivers/sensors/azoteq_iqs5xx.h
@@ -173,9 +173,12 @@ typedef struct {
# define AZOTEQ_IQS5XX_REPORT_RATE 10
#endif
#if !defined(POINTING_DEVICE_TASK_THROTTLE_MS) && !defined(POINTING_DEVICE_MOTION_PIN)
-# define POINTING_DEVICE_TASK_THROTTLE_MS AZOTEQ_IQS5XX_REPORT_RATE
+// Polling the Azoteq isn't recommended, ensuring we only poll after the report is ready stops any unexpected NACKs
+# define POINTING_DEVICE_TASK_THROTTLE_MS AZOTEQ_IQS5XX_REPORT_RATE + 1
#endif
+const pointing_device_driver_t azoteq_iqs5xx_pointing_device_driver;
+
void azoteq_iqs5xx_init(void);
i2c_status_t azoteq_iqs5xx_wake(void);
report_mouse_t azoteq_iqs5xx_get_report(report_mouse_t mouse_report);
diff --git a/drivers/sensors/cirque_pinnacle.c b/drivers/sensors/cirque_pinnacle.c
index 9afc9df8044..893cb98bf05 100644
--- a/drivers/sensors/cirque_pinnacle.c
+++ b/drivers/sensors/cirque_pinnacle.c
@@ -4,6 +4,7 @@
// refer to documentation: Gen2 and Gen3 (Pinnacle ASIC) at https://www.cirque.com/documentation
#include "cirque_pinnacle.h"
+#include "cirque_pinnacle_gestures.h"
#include "wait.h"
#include "timer.h"
@@ -350,3 +351,144 @@ pinnacle_data_t cirque_pinnacle_read_data(void) {
result.valid = true;
return result;
}
+
+#ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE
+static bool cursor_glide_enable = true;
+
+static cursor_glide_context_t glide = {.config = {
+ .coef = 102, /* Good default friction coef */
+ .interval = 10, /* 100sps */
+ .trigger_px = 10, /* Default threshold in case of hover, set to 0 if you'd like */
+ }};
+
+void cirque_pinnacle_enable_cursor_glide(bool enable) {
+ cursor_glide_enable = enable;
+}
+
+void cirque_pinnacle_configure_cursor_glide(float trigger_px) {
+ glide.config.trigger_px = trigger_px;
+}
+#endif
+
+#if CIRQUE_PINNACLE_POSITION_MODE
+
+# ifdef POINTING_DEVICE_AUTO_MOUSE_ENABLE
+static bool is_touch_down;
+
+bool auto_mouse_activation(report_mouse_t mouse_report) {
+ return is_touch_down || mouse_report.x != 0 || mouse_report.y != 0 || mouse_report.h != 0 || mouse_report.v != 0 || mouse_report.buttons;
+}
+# endif
+
+report_mouse_t cirque_pinnacle_get_report(report_mouse_t mouse_report) {
+ uint16_t scale = cirque_pinnacle_get_scale();
+ pinnacle_data_t touchData = cirque_pinnacle_read_data();
+ mouse_xy_report_t report_x = 0, report_y = 0;
+ static uint16_t x = 0, y = 0, last_scale = 0;
+
+# if defined(CIRQUE_PINNACLE_TAP_ENABLE)
+ mouse_report.buttons = pointing_device_handle_buttons(mouse_report.buttons, false, POINTING_DEVICE_BUTTON1);
+# endif
+# ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE
+ cursor_glide_t glide_report = {0};
+
+ if (cursor_glide_enable) {
+ glide_report = cursor_glide_check(&glide);
+ }
+# endif
+
+ if (!touchData.valid) {
+# ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE
+ if (cursor_glide_enable && glide_report.valid) {
+ report_x = glide_report.dx;
+ report_y = glide_report.dy;
+ goto mouse_report_update;
+ }
+# endif
+ return mouse_report;
+ }
+
+ if (touchData.touchDown) {
+ pd_dprintf("cirque_pinnacle touchData x=%4d y=%4d z=%2d\n", touchData.xValue, touchData.yValue, touchData.zValue);
+ }
+
+# ifdef POINTING_DEVICE_AUTO_MOUSE_ENABLE
+ is_touch_down = touchData.touchDown;
+# endif
+
+ // Scale coordinates to arbitrary X, Y resolution
+ cirque_pinnacle_scale_data(&touchData, scale, scale);
+
+ if (!cirque_pinnacle_gestures(&mouse_report, touchData)) {
+ if (last_scale && scale == last_scale && x && y && touchData.xValue && touchData.yValue) {
+ report_x = CONSTRAIN_HID_XY((int16_t)(touchData.xValue - x));
+ report_y = CONSTRAIN_HID_XY((int16_t)(touchData.yValue - y));
+ }
+ x = touchData.xValue;
+ y = touchData.yValue;
+ last_scale = scale;
+
+# ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE
+ if (cursor_glide_enable) {
+ if (touchData.touchDown) {
+ cursor_glide_update(&glide, report_x, report_y, touchData.zValue);
+ } else if (!glide_report.valid) {
+ glide_report = cursor_glide_start(&glide);
+ if (glide_report.valid) {
+ report_x = glide_report.dx;
+ report_y = glide_report.dy;
+ }
+ }
+ }
+# endif
+ }
+
+# ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE
+mouse_report_update:
+# endif
+ mouse_report.x = report_x;
+ mouse_report.y = report_y;
+
+ return mouse_report;
+}
+
+uint16_t cirque_pinnacle_get_cpi(void) {
+ return CIRQUE_PINNACLE_PX_TO_INCH(cirque_pinnacle_get_scale());
+}
+void cirque_pinnacle_set_cpi(uint16_t cpi) {
+ cirque_pinnacle_set_scale(CIRQUE_PINNACLE_INCH_TO_PX(cpi));
+}
+
+// clang-format off
+const pointing_device_driver_t cirque_pinnacle_pointing_device_driver = {
+ .init = cirque_pinnacle_init,
+ .get_report = cirque_pinnacle_get_report,
+ .set_cpi = cirque_pinnacle_set_cpi,
+ .get_cpi = cirque_pinnacle_get_cpi
+};
+// clang-format on
+#else
+report_mouse_t cirque_pinnacle_get_report(report_mouse_t mouse_report) {
+ pinnacle_data_t touchData = cirque_pinnacle_read_data();
+
+ // Scale coordinates to arbitrary X, Y resolution
+ cirque_pinnacle_scale_data(&touchData, cirque_pinnacle_get_scale(), cirque_pinnacle_get_scale());
+
+ if (touchData.valid) {
+ mouse_report.buttons = touchData.buttons;
+ mouse_report.x = CONSTRAIN_HID_XY(touchData.xDelta);
+ mouse_report.y = CONSTRAIN_HID_XY(touchData.yDelta);
+ mouse_report.v = touchData.wheelCount;
+ }
+ return mouse_report;
+}
+
+// clang-format off
+const pointing_device_driver_t cirque_pinnacle_pointing_device_driver = {
+ .init = cirque_pinnacle_init,
+ .get_report = cirque_pinnacle_get_report,
+ .set_cpi = cirque_pinnacle_set_scale,
+ .get_cpi = cirque_pinnacle_get_scale
+};
+// clang-format on
+#endif
diff --git a/drivers/sensors/cirque_pinnacle.h b/drivers/sensors/cirque_pinnacle.h
index 8717b329911..1a17e539a40 100644
--- a/drivers/sensors/cirque_pinnacle.h
+++ b/drivers/sensors/cirque_pinnacle.h
@@ -6,6 +6,7 @@
#include
#include
#include "pointing_device_internal.h"
+#include "pointing_device.h"
#ifndef CIRQUE_PINNACLE_TIMEOUT
# define CIRQUE_PINNACLE_TIMEOUT 20 // I2C timeout in milliseconds
@@ -109,6 +110,10 @@ typedef struct {
#endif
} pinnacle_data_t;
+#define cirque_pinnacle_i2c_pointing_device_driver cirque_pinnacle_pointing_device_driver
+#define cirque_pinnacle_spi_pointing_device_driver cirque_pinnacle_pointing_device_driver
+const pointing_device_driver_t cirque_pinnacle_pointing_device_driver;
+
void cirque_pinnacle_init(void);
void cirque_pinnacle_calibrate(void);
void cirque_pinnacle_cursor_smoothing(bool enable);
@@ -116,3 +121,6 @@ pinnacle_data_t cirque_pinnacle_read_data(void);
void cirque_pinnacle_scale_data(pinnacle_data_t* coordinates, uint16_t xResolution, uint16_t yResolution);
uint16_t cirque_pinnacle_get_scale(void);
void cirque_pinnacle_set_scale(uint16_t scale);
+uint16_t cirque_pinnacle_get_cpi(void);
+void cirque_pinnacle_set_cpi(uint16_t cpi);
+report_mouse_t cirque_pinnacle_get_report(report_mouse_t mouse_report);
diff --git a/drivers/sensors/cirque_pinnacle_gestures.h b/drivers/sensors/cirque_pinnacle_gestures.h
index d2aa206b2be..1412c86f7eb 100644
--- a/drivers/sensors/cirque_pinnacle_gestures.h
+++ b/drivers/sensors/cirque_pinnacle_gestures.h
@@ -28,7 +28,7 @@ typedef struct {
# ifndef CIRQUE_PINNACLE_TAPPING_TERM
# include "action.h"
# include "action_tapping.h"
-# define CIRQUE_PINNACLE_TAPPING_TERM GET_TAPPING_TERM(KC_BTN1, &(keyrecord_t){})
+# define CIRQUE_PINNACLE_TAPPING_TERM GET_TAPPING_TERM(QK_MOUSE_BUTTON_1, &(keyrecord_t){})
# endif
# ifndef CIRQUE_PINNACLE_TOUCH_DEBOUNCE
# define CIRQUE_PINNACLE_TOUCH_DEBOUNCE (CIRQUE_PINNACLE_TAPPING_TERM * 8)
diff --git a/drivers/sensors/paw3204.c b/drivers/sensors/paw3204.c
index 28c47522ed5..475821f175c 100644
--- a/drivers/sensors/paw3204.c
+++ b/drivers/sensors/paw3204.c
@@ -20,6 +20,7 @@
#include "wait.h"
#include "debug.h"
#include "gpio.h"
+#include "pointing_device_internal.h"
#define REG_PID1 0x00
#define REG_PID2 0x01
@@ -50,6 +51,13 @@ void paw3204_serial_write(uint8_t reg_addr);
uint8_t paw3204_read_reg(uint8_t reg_addr);
void paw3204_write_reg(uint8_t reg_addr, uint8_t data);
+const pointing_device_driver_t paw3204_pointing_device_driver = {
+ .init = paw3204_init,
+ .get_report = paw3204_get_report,
+ .set_cpi = paw3204_set_cpi,
+ .get_cpi = paw3204_get_cpi,
+};
+
void paw3204_init(void) {
gpio_set_pin_output(PAW3204_SCLK_PIN); // setclockpin to output
gpio_set_pin_input_high(PAW3204_SDIO_PIN); // set datapin input high
@@ -170,3 +178,15 @@ uint16_t paw3204_get_cpi(void) {
uint8_t read_pid_paw3204(void) {
return paw3204_read_reg(REG_PID1);
}
+
+report_mouse_t paw3204_get_report(report_mouse_t mouse_report) {
+ report_paw3204_t data = paw3204_read();
+ if (data.isMotion) {
+ pd_dprintf("Raw ] X: %d, Y: %d\n", data.x, data.y);
+
+ mouse_report.x = data.x;
+ mouse_report.y = data.y;
+ }
+
+ return mouse_report;
+}
diff --git a/drivers/sensors/paw3204.h b/drivers/sensors/paw3204.h
index 7f487d90dce..a4bb8e16a67 100644
--- a/drivers/sensors/paw3204.h
+++ b/drivers/sensors/paw3204.h
@@ -18,6 +18,7 @@
#include
#include
+#include "pointing_device.h"
#ifndef PAW3204_SCLK_PIN
# ifdef POINTING_DEVICE_SCLK_PIN
@@ -40,6 +41,8 @@ typedef struct {
bool isMotion;
} report_paw3204_t;
+const pointing_device_driver_t paw3204_pointing_device_driver;
+
/**
* @brief Initializes the sensor so it is in a working state and ready to
* be polled for data.
@@ -74,3 +77,5 @@ void paw3204_set_cpi(uint16_t cpi);
* @return uint16_t Current CPI value of the sensor
*/
uint16_t paw3204_get_cpi(void);
+
+report_mouse_t paw3204_get_report(report_mouse_t mouse_report);
diff --git a/drivers/sensors/pimoroni_trackball.c b/drivers/sensors/pimoroni_trackball.c
index 9c6d26d73de..afbe3d5b77f 100644
--- a/drivers/sensors/pimoroni_trackball.c
+++ b/drivers/sensors/pimoroni_trackball.c
@@ -33,6 +33,13 @@
static uint16_t precision = 128;
+const pointing_device_driver_t pimoroni_trackball_pointing_device_driver = {
+ .init = pimoroni_trackball_device_init,
+ .get_report = pimoroni_trackball_get_report,
+ .set_cpi = pimoroni_trackball_set_cpi,
+ .get_cpi = pimoroni_trackball_get_cpi,
+};
+
uint16_t pimoroni_trackball_get_cpi(void) {
return (precision * 125);
}
@@ -61,8 +68,8 @@ void pimoroni_trackball_set_rgbw(uint8_t r, uint8_t g, uint8_t b, uint8_t w) {
pd_dprintf("Trackball RGBW i2c_status_t: %d\n", status);
}
-i2c_status_t read_pimoroni_trackball(pimoroni_data_t* data) {
- i2c_status_t status = i2c_read_register(PIMORONI_TRACKBALL_ADDRESS << 1, PIMORONI_TRACKBALL_REG_LEFT, (uint8_t*)data, sizeof(*data), PIMORONI_TRACKBALL_TIMEOUT);
+i2c_status_t read_pimoroni_trackball(pimoroni_data_t *data) {
+ i2c_status_t status = i2c_read_register(PIMORONI_TRACKBALL_ADDRESS << 1, PIMORONI_TRACKBALL_REG_LEFT, (uint8_t *)data, sizeof(*data), PIMORONI_TRACKBALL_TIMEOUT);
#ifdef POINTING_DEVICE_DEBUG
static uint16_t d_timer;
@@ -92,3 +99,50 @@ int16_t pimoroni_trackball_get_offsets(uint8_t negative_dir, uint8_t positive_di
uint16_t magnitude = (scale * offset * offset * precision) >> 7;
return isnegative ? -(int16_t)(magnitude) : (int16_t)(magnitude);
}
+
+mouse_xy_report_t pimoroni_trackball_adapt_values(xy_clamp_range_t *offset) {
+ if (*offset > XY_REPORT_MAX) {
+ *offset -= XY_REPORT_MAX;
+ return (mouse_xy_report_t)XY_REPORT_MAX;
+ } else if (*offset < XY_REPORT_MIN) {
+ *offset += XY_REPORT_MAX;
+ return (mouse_xy_report_t)XY_REPORT_MIN;
+ } else {
+ mouse_xy_report_t temp_return = *offset;
+ *offset = 0;
+ return temp_return;
+ }
+}
+
+report_mouse_t pimoroni_trackball_get_report(report_mouse_t mouse_report) {
+ static uint16_t debounce = 0;
+ static uint8_t error_count = 0;
+ pimoroni_data_t pimoroni_data = {0};
+ static xy_clamp_range_t x_offset = 0, y_offset = 0;
+
+ if (error_count < PIMORONI_TRACKBALL_ERROR_COUNT) {
+ i2c_status_t status = read_pimoroni_trackball(&pimoroni_data);
+
+ if (status == I2C_STATUS_SUCCESS) {
+ error_count = 0;
+
+ if (!(pimoroni_data.click & 128)) {
+ mouse_report.buttons = pointing_device_handle_buttons(mouse_report.buttons, false, POINTING_DEVICE_BUTTON1);
+ if (!debounce) {
+ x_offset += pimoroni_trackball_get_offsets(pimoroni_data.right, pimoroni_data.left, PIMORONI_TRACKBALL_SCALE);
+ y_offset += pimoroni_trackball_get_offsets(pimoroni_data.down, pimoroni_data.up, PIMORONI_TRACKBALL_SCALE);
+ mouse_report.x = pimoroni_trackball_adapt_values(&x_offset);
+ mouse_report.y = pimoroni_trackball_adapt_values(&y_offset);
+ } else {
+ debounce--;
+ }
+ } else {
+ mouse_report.buttons = pointing_device_handle_buttons(mouse_report.buttons, true, POINTING_DEVICE_BUTTON1);
+ debounce = PIMORONI_TRACKBALL_DEBOUNCE_CYCLES;
+ }
+ } else {
+ error_count++;
+ }
+ }
+ return mouse_report;
+}
diff --git a/drivers/sensors/pimoroni_trackball.h b/drivers/sensors/pimoroni_trackball.h
index 749f381bbd6..1904214a74a 100644
--- a/drivers/sensors/pimoroni_trackball.h
+++ b/drivers/sensors/pimoroni_trackball.h
@@ -19,6 +19,7 @@
#include
#include "report.h"
#include "i2c_master.h"
+#include "pointing_device.h"
#ifndef PIMORONI_TRACKBALL_ADDRESS
# define PIMORONI_TRACKBALL_ADDRESS 0x0A
@@ -49,9 +50,12 @@ typedef struct {
uint8_t click;
} pimoroni_data_t;
-void pimoroni_trackball_device_init(void);
-void pimoroni_trackball_set_rgbw(uint8_t red, uint8_t green, uint8_t blue, uint8_t white);
-int16_t pimoroni_trackball_get_offsets(uint8_t negative_dir, uint8_t positive_dir, uint8_t scale);
-uint16_t pimoroni_trackball_get_cpi(void);
-void pimoroni_trackball_set_cpi(uint16_t cpi);
-i2c_status_t read_pimoroni_trackball(pimoroni_data_t* data);
+const pointing_device_driver_t pimoroni_trackball_pointing_device_driver;
+
+void pimoroni_trackball_device_init(void);
+void pimoroni_trackball_set_rgbw(uint8_t red, uint8_t green, uint8_t blue, uint8_t white);
+int16_t pimoroni_trackball_get_offsets(uint8_t negative_dir, uint8_t positive_dir, uint8_t scale);
+uint16_t pimoroni_trackball_get_cpi(void);
+void pimoroni_trackball_set_cpi(uint16_t cpi);
+i2c_status_t read_pimoroni_trackball(pimoroni_data_t* data);
+report_mouse_t pimoroni_trackball_get_report(report_mouse_t mouse_report);
diff --git a/drivers/sensors/pmw3320.c b/drivers/sensors/pmw3320.c
index f19fbfd1ab4..74fefd4c53d 100644
--- a/drivers/sensors/pmw3320.c
+++ b/drivers/sensors/pmw3320.c
@@ -21,6 +21,14 @@
#include "wait.h"
#include "debug.h"
#include "gpio.h"
+#include "pointing_device_internal.h"
+
+const pointing_device_driver_t pmw3320_pointing_device_drivera = {
+ .init = pmw3320_init,
+ .get_report = pmw3320_get_report,
+ .set_cpi = pmw3320_set_cpi,
+ .get_cpi = pmw3320_get_cpi,
+};
void pmw3320_init(void) {
// Initialize sensor serial pins.
@@ -190,3 +198,15 @@ bool pmw3320_check_signature(void) {
return (pid == 0x3b && pid2 == 0xc4);
}
+
+report_mouse_t pmw3320_get_report(report_mouse_t mouse_report) {
+ report_pmw3320_t data = pmw3320_read_burst();
+
+ if (data.dx != 0 || data.dy != 0) {
+ pd_dprintf("Raw ] X: %d, Y: %d\n", data.dx, data.dy);
+ mouse_report.x = (mouse_xy_report_t)data.dx;
+ mouse_report.y = (mouse_xy_report_t)data.dy;
+ }
+
+ return mouse_report;
+}
diff --git a/drivers/sensors/pmw3320.h b/drivers/sensors/pmw3320.h
index a1fd5469196..cfff25bd8a6 100644
--- a/drivers/sensors/pmw3320.h
+++ b/drivers/sensors/pmw3320.h
@@ -21,6 +21,7 @@
#include
#include
+#include "pointing_device.h"
#define constrain(amt, low, high) ((amt) < (low) ? (low) : ((amt) > (high) ? (high) : (amt)))
@@ -54,6 +55,8 @@ typedef struct {
int8_t dy;
} report_pmw3320_t;
+const pointing_device_driver_t pmw3320_pointing_device_driver;
+
// A bunch of functions to implement the PMW3320-specific serial protocol.
// Mostly taken from ADNS5050 driver.
// Note that the "serial.h" driver is insufficient, because it does not
@@ -69,6 +72,7 @@ void pmw3320_set_cpi(uint16_t cpi);
uint16_t pmw3320_get_cpi(void);
int8_t convert_twoscomp(uint8_t data);
bool pmw3320_check_signature(void);
+report_mouse_t pmw3320_get_report(report_mouse_t mouse_report);
#if !defined(PMW3320_CPI)
# define PMW3320_CPI 1000
diff --git a/drivers/sensors/pmw3360.c b/drivers/sensors/pmw3360.c
index 8408daa9451..fb710591d3a 100644
--- a/drivers/sensors/pmw3360.c
+++ b/drivers/sensors/pmw3360.c
@@ -31,265 +31,4 @@ void pmw33xx_set_cpi(uint8_t sensor, uint16_t cpi) {
}
// PID, Inverse PID, SROM version
-const uint8_t pmw33xx_firmware_signature[3] PROGMEM = {0x42, 0xBD, 0x04};
-
-// Firmware Blob for PMW3360
-// clang-format off
-const uint8_t pmw33xx_firmware_data[PMW33XX_FIRMWARE_LENGTH] PROGMEM = {
- 0x01, 0x04, 0x8E, 0x96, 0x6E, 0x77, 0x3E, 0xFE, 0x7E, 0x5F, 0x1D, 0xB8, 0xF2, 0x66, 0x4E, 0xFF,
- 0x5D, 0x19, 0xB0, 0xC2, 0x04, 0x69, 0x54, 0x2A, 0xD6, 0x2E, 0xBF, 0xDD, 0x19, 0xB0, 0xC3, 0xE5,
- 0x29, 0xB1, 0xE0, 0x23, 0xA5, 0xA9, 0xB1, 0xC1, 0x00, 0x82, 0x67, 0x4C, 0x1A, 0x97, 0x8D, 0x79,
- 0x51, 0x20, 0xC7, 0x06, 0x8E, 0x7C, 0x7C, 0x7A, 0x76, 0x4F, 0xFD, 0x59, 0x30, 0xE2, 0x46, 0x0E,
- 0x9E, 0xBE, 0xDF, 0x1D, 0x99, 0x91, 0xA0, 0xA5, 0xA1, 0xA9, 0xD0, 0x22, 0xC6, 0xEF, 0x5C, 0x1B,
- 0x95, 0x89, 0x90, 0xA2, 0xA7, 0xCC, 0xFB, 0x55, 0x28, 0xB3, 0xE4, 0x4A, 0xF7, 0x6C, 0x3B, 0xF4,
- 0x6A, 0x56, 0x2E, 0xDE, 0x1F, 0x9D, 0xB8, 0xD3, 0x05, 0x88, 0x92, 0xA6, 0xCE, 0x1E, 0xBE, 0xDF,
- 0x1D, 0x99, 0xB0, 0xE2, 0x46, 0xEF, 0x5C, 0x07, 0x11, 0x5D, 0x98, 0x0B, 0x9D, 0x94, 0x97, 0xEE,
- 0x4E, 0x45, 0x33, 0x6B, 0x44, 0xC7, 0x29, 0x56, 0x27, 0x30, 0xC6, 0xA7, 0xD5, 0xF2, 0x56, 0xDF,
- 0xB4, 0x38, 0x62, 0xCB, 0xA0, 0xB6, 0xE3, 0x0F, 0x84, 0x06, 0x24, 0x05, 0x65, 0x6F, 0x76, 0x89,
- 0xB5, 0x77, 0x41, 0x27, 0x82, 0x66, 0x65, 0x82, 0xCC, 0xD5, 0xE6, 0x20, 0xD5, 0x27, 0x17, 0xC5,
- 0xF8, 0x03, 0x23, 0x7C, 0x5F, 0x64, 0xA5, 0x1D, 0xC1, 0xD6, 0x36, 0xCB, 0x4C, 0xD4, 0xDB, 0x66,
- 0xD7, 0x8B, 0xB1, 0x99, 0x7E, 0x6F, 0x4C, 0x36, 0x40, 0x06, 0xD6, 0xEB, 0xD7, 0xA2, 0xE4, 0xF4,
- 0x95, 0x51, 0x5A, 0x54, 0x96, 0xD5, 0x53, 0x44, 0xD7, 0x8C, 0xE0, 0xB9, 0x40, 0x68, 0xD2, 0x18,
- 0xE9, 0xDD, 0x9A, 0x23, 0x92, 0x48, 0xEE, 0x7F, 0x43, 0xAF, 0xEA, 0x77, 0x38, 0x84, 0x8C, 0x0A,
- 0x72, 0xAF, 0x69, 0xF8, 0xDD, 0xF1, 0x24, 0x83, 0xA3, 0xF8, 0x4A, 0xBF, 0xF5, 0x94, 0x13, 0xDB,
- 0xBB, 0xD8, 0xB4, 0xB3, 0xA0, 0xFB, 0x45, 0x50, 0x60, 0x30, 0x59, 0x12, 0x31, 0x71, 0xA2, 0xD3,
- 0x13, 0xE7, 0xFA, 0xE7, 0xCE, 0x0F, 0x63, 0x15, 0x0B, 0x6B, 0x94, 0xBB, 0x37, 0x83, 0x26, 0x05,
- 0x9D, 0xFB, 0x46, 0x92, 0xFC, 0x0A, 0x15, 0xD1, 0x0D, 0x73, 0x92, 0xD6, 0x8C, 0x1B, 0x8C, 0xB8,
- 0x55, 0x8A, 0xCE, 0xBD, 0xFE, 0x8E, 0xFC, 0xED, 0x09, 0x12, 0x83, 0x91, 0x82, 0x51, 0x31, 0x23,
- 0xFB, 0xB4, 0x0C, 0x76, 0xAD, 0x7C, 0xD9, 0xB4, 0x4B, 0xB2, 0x67, 0x14, 0x09, 0x9C, 0x7F, 0x0C,
- 0x18, 0xBA, 0x3B, 0xD6, 0x8E, 0x14, 0x2A, 0xE4, 0x1B, 0x52, 0x9F, 0x2B, 0x7D, 0xE1, 0xFB, 0x6A,
- 0x33, 0x02, 0xFA, 0xAC, 0x5A, 0xF2, 0x3E, 0x88, 0x7E, 0xAE, 0xD1, 0xF3, 0x78, 0xE8, 0x05, 0xD1,
- 0xE3, 0xDC, 0x21, 0xF6, 0xE1, 0x9A, 0xBD, 0x17, 0x0E, 0xD9, 0x46, 0x9B, 0x88, 0x03, 0xEA, 0xF6,
- 0x66, 0xBE, 0x0E, 0x1B, 0x50, 0x49, 0x96, 0x40, 0x97, 0xF1, 0xF1, 0xE4, 0x80, 0xA6, 0x6E, 0xE8,
- 0x77, 0x34, 0xBF, 0x29, 0x40, 0x44, 0xC2, 0xFF, 0x4E, 0x98, 0xD3, 0x9C, 0xA3, 0x32, 0x2B, 0x76,
- 0x51, 0x04, 0x09, 0xE7, 0xA9, 0xD1, 0xA6, 0x32, 0xB1, 0x23, 0x53, 0xE2, 0x47, 0xAB, 0xD6, 0xF5,
- 0x69, 0x5C, 0x3E, 0x5F, 0xFA, 0xAE, 0x45, 0x20, 0xE5, 0xD2, 0x44, 0xFF, 0x39, 0x32, 0x6D, 0xFD,
- 0x27, 0x57, 0x5C, 0xFD, 0xF0, 0xDE, 0xC1, 0xB5, 0x99, 0xE5, 0xF5, 0x1C, 0x77, 0x01, 0x75, 0xC5,
- 0x6D, 0x58, 0x92, 0xF2, 0xB2, 0x47, 0x00, 0x01, 0x26, 0x96, 0x7A, 0x30, 0xFF, 0xB7, 0xF0, 0xEF,
- 0x77, 0xC1, 0x8A, 0x5D, 0xDC, 0xC0, 0xD1, 0x29, 0x30, 0x1E, 0x77, 0x38, 0x7A, 0x94, 0xF1, 0xB8,
- 0x7A, 0x7E, 0xEF, 0xA4, 0xD1, 0xAC, 0x31, 0x4A, 0xF2, 0x5D, 0x64, 0x3D, 0xB2, 0xE2, 0xF0, 0x08,
- 0x99, 0xFC, 0x70, 0xEE, 0x24, 0xA7, 0x7E, 0xEE, 0x1E, 0x20, 0x69, 0x7D, 0x44, 0xBF, 0x87, 0x42,
- 0xDF, 0x88, 0x3B, 0x0C, 0xDA, 0x42, 0xC9, 0x04, 0xF9, 0x45, 0x50, 0xFC, 0x83, 0x8F, 0x11, 0x6A,
- 0x72, 0xBC, 0x99, 0x95, 0xF0, 0xAC, 0x3D, 0xA7, 0x3B, 0xCD, 0x1C, 0xE2, 0x88, 0x79, 0x37, 0x11,
- 0x5F, 0x39, 0x89, 0x95, 0x0A, 0x16, 0x84, 0x7A, 0xF6, 0x8A, 0xA4, 0x28, 0xE4, 0xED, 0x83, 0x80,
- 0x3B, 0xB1, 0x23, 0xA5, 0x03, 0x10, 0xF4, 0x66, 0xEA, 0xBB, 0x0C, 0x0F, 0xC5, 0xEC, 0x6C, 0x69,
- 0xC5, 0xD3, 0x24, 0xAB, 0xD4, 0x2A, 0xB7, 0x99, 0x88, 0x76, 0x08, 0xA0, 0xA8, 0x95, 0x7C, 0xD8,
- 0x38, 0x6D, 0xCD, 0x59, 0x02, 0x51, 0x4B, 0xF1, 0xB5, 0x2B, 0x50, 0xE3, 0xB6, 0xBD, 0xD0, 0x72,
- 0xCF, 0x9E, 0xFD, 0x6E, 0xBB, 0x44, 0xC8, 0x24, 0x8A, 0x77, 0x18, 0x8A, 0x13, 0x06, 0xEF, 0x97,
- 0x7D, 0xFA, 0x81, 0xF0, 0x31, 0xE6, 0xFA, 0x77, 0xED, 0x31, 0x06, 0x31, 0x5B, 0x54, 0x8A, 0x9F,
- 0x30, 0x68, 0xDB, 0xE2, 0x40, 0xF8, 0x4E, 0x73, 0xFA, 0xAB, 0x74, 0x8B, 0x10, 0x58, 0x13, 0xDC,
- 0xD2, 0xE6, 0x78, 0xD1, 0x32, 0x2E, 0x8A, 0x9F, 0x2C, 0x58, 0x06, 0x48, 0x27, 0xC5, 0xA9, 0x5E,
- 0x81, 0x47, 0x89, 0x46, 0x21, 0x91, 0x03, 0x70, 0xA4, 0x3E, 0x88, 0x9C, 0xDA, 0x33, 0x0A, 0xCE,
- 0xBC, 0x8B, 0x8E, 0xCF, 0x9F, 0xD3, 0x71, 0x80, 0x43, 0xCF, 0x6B, 0xA9, 0x51, 0x83, 0x76, 0x30,
- 0x82, 0xC5, 0x6A, 0x85, 0x39, 0x11, 0x50, 0x1A, 0x82, 0xDC, 0x1E, 0x1C, 0xD5, 0x7D, 0xA9, 0x71,
- 0x99, 0x33, 0x47, 0x19, 0x97, 0xB3, 0x5A, 0xB1, 0xDF, 0xED, 0xA4, 0xF2, 0xE6, 0x26, 0x84, 0xA2,
- 0x28, 0x9A, 0x9E, 0xDF, 0xA6, 0x6A, 0xF4, 0xD6, 0xFC, 0x2E, 0x5B, 0x9D, 0x1A, 0x2A, 0x27, 0x68,
- 0xFB, 0xC1, 0x83, 0x21, 0x4B, 0x90, 0xE0, 0x36, 0xDD, 0x5B, 0x31, 0x42, 0x55, 0xA0, 0x13, 0xF7,
- 0xD0, 0x89, 0x53, 0x71, 0x99, 0x57, 0x09, 0x29, 0xC5, 0xF3, 0x21, 0xF8, 0x37, 0x2F, 0x40, 0xF3,
- 0xD4, 0xAF, 0x16, 0x08, 0x36, 0x02, 0xFC, 0x77, 0xC5, 0x8B, 0x04, 0x90, 0x56, 0xB9, 0xC9, 0x67,
- 0x9A, 0x99, 0xE8, 0x00, 0xD3, 0x86, 0xFF, 0x97, 0x2D, 0x08, 0xE9, 0xB7, 0xB3, 0x91, 0xBC, 0xDF,
- 0x45, 0xC6, 0xED, 0x0F, 0x8C, 0x4C, 0x1E, 0xE6, 0x5B, 0x6E, 0x38, 0x30, 0xE4, 0xAA, 0xE3, 0x95,
- 0xDE, 0xB9, 0xE4, 0x9A, 0xF5, 0xB2, 0x55, 0x9A, 0x87, 0x9B, 0xF6, 0x6A, 0xB2, 0xF2, 0x77, 0x9A,
- 0x31, 0xF4, 0x7A, 0x31, 0xD1, 0x1D, 0x04, 0xC0, 0x7C, 0x32, 0xA2, 0x9E, 0x9A, 0xF5, 0x62, 0xF8,
- 0x27, 0x8D, 0xBF, 0x51, 0xFF, 0xD3, 0xDF, 0x64, 0x37, 0x3F, 0x2A, 0x6F, 0x76, 0x3A, 0x7D, 0x77,
- 0x06, 0x9E, 0x77, 0x7F, 0x5E, 0xEB, 0x32, 0x51, 0xF9, 0x16, 0x66, 0x9A, 0x09, 0xF3, 0xB0, 0x08,
- 0xA4, 0x70, 0x96, 0x46, 0x30, 0xFF, 0xDA, 0x4F, 0xE9, 0x1B, 0xED, 0x8D, 0xF8, 0x74, 0x1F, 0x31,
- 0x92, 0xB3, 0x73, 0x17, 0x36, 0xDB, 0x91, 0x30, 0xD6, 0x88, 0x55, 0x6B, 0x34, 0x77, 0x87, 0x7A,
- 0xE7, 0xEE, 0x06, 0xC6, 0x1C, 0x8C, 0x19, 0x0C, 0x48, 0x46, 0x23, 0x5E, 0x9C, 0x07, 0x5C, 0xBF,
- 0xB4, 0x7E, 0xD6, 0x4F, 0x74, 0x9C, 0xE2, 0xC5, 0x50, 0x8B, 0xC5, 0x8B, 0x15, 0x90, 0x60, 0x62,
- 0x57, 0x29, 0xD0, 0x13, 0x43, 0xA1, 0x80, 0x88, 0x91, 0x00, 0x44, 0xC7, 0x4D, 0x19, 0x86, 0xCC,
- 0x2F, 0x2A, 0x75, 0x5A, 0xFC, 0xEB, 0x97, 0x2A, 0x70, 0xE3, 0x78, 0xD8, 0x91, 0xB0, 0x4F, 0x99,
- 0x07, 0xA3, 0x95, 0xEA, 0x24, 0x21, 0xD5, 0xDE, 0x51, 0x20, 0x93, 0x27, 0x0A, 0x30, 0x73, 0xA8,
- 0xFF, 0x8A, 0x97, 0xE9, 0xA7, 0x6A, 0x8E, 0x0D, 0xE8, 0xF0, 0xDF, 0xEC, 0xEA, 0xB4, 0x6C, 0x1D,
- 0x39, 0x2A, 0x62, 0x2D, 0x3D, 0x5A, 0x8B, 0x65, 0xF8, 0x90, 0x05, 0x2E, 0x7E, 0x91, 0x2C, 0x78,
- 0xEF, 0x8E, 0x7A, 0xC1, 0x2F, 0xAC, 0x78, 0xEE, 0xAF, 0x28, 0x45, 0x06, 0x4C, 0x26, 0xAF, 0x3B,
- 0xA2, 0xDB, 0xA3, 0x93, 0x06, 0xB5, 0x3C, 0xA5, 0xD8, 0xEE, 0x8F, 0xAF, 0x25, 0xCC, 0x3F, 0x85,
- 0x68, 0x48, 0xA9, 0x62, 0xCC, 0x97, 0x8F, 0x7F, 0x2A, 0xEA, 0xE0, 0x15, 0x0A, 0xAD, 0x62, 0x07,
- 0xBD, 0x45, 0xF8, 0x41, 0xD8, 0x36, 0xCB, 0x4C, 0xDB, 0x6E, 0xE6, 0x3A, 0xE7, 0xDA, 0x15, 0xE9,
- 0x29, 0x1E, 0x12, 0x10, 0xA0, 0x14, 0x2C, 0x0E, 0x3D, 0xF4, 0xBF, 0x39, 0x41, 0x92, 0x75, 0x0B,
- 0x25, 0x7B, 0xA3, 0xCE, 0x39, 0x9C, 0x15, 0x64, 0xC8, 0xFA, 0x3D, 0xEF, 0x73, 0x27, 0xFE, 0x26,
- 0x2E, 0xCE, 0xDA, 0x6E, 0xFD, 0x71, 0x8E, 0xDD, 0xFE, 0x76, 0xEE, 0xDC, 0x12, 0x5C, 0x02, 0xC5,
- 0x3A, 0x4E, 0x4E, 0x4F, 0xBF, 0xCA, 0x40, 0x15, 0xC7, 0x6E, 0x8D, 0x41, 0xF1, 0x10, 0xE0, 0x4F,
- 0x7E, 0x97, 0x7F, 0x1C, 0xAE, 0x47, 0x8E, 0x6B, 0xB1, 0x25, 0x31, 0xB0, 0x73, 0xC7, 0x1B, 0x97,
- 0x79, 0xF9, 0x80, 0xD3, 0x66, 0x22, 0x30, 0x07, 0x74, 0x1E, 0xE4, 0xD0, 0x80, 0x21, 0xD6, 0xEE,
- 0x6B, 0x6C, 0x4F, 0xBF, 0xF5, 0xB7, 0xD9, 0x09, 0x87, 0x2F, 0xA9, 0x14, 0xBE, 0x27, 0xD9, 0x72,
- 0x50, 0x01, 0xD4, 0x13, 0x73, 0xA6, 0xA7, 0x51, 0x02, 0x75, 0x25, 0xE1, 0xB3, 0x45, 0x34, 0x7D,
- 0xA8, 0x8E, 0xEB, 0xF3, 0x16, 0x49, 0xCB, 0x4F, 0x8C, 0xA1, 0xB9, 0x36, 0x85, 0x39, 0x75, 0x5D,
- 0x08, 0x00, 0xAE, 0xEB, 0xF6, 0xEA, 0xD7, 0x13, 0x3A, 0x21, 0x5A, 0x5F, 0x30, 0x84, 0x52, 0x26,
- 0x95, 0xC9, 0x14, 0xF2, 0x57, 0x55, 0x6B, 0xB1, 0x10, 0xC2, 0xE1, 0xBD, 0x3B, 0x51, 0xC0, 0xB7,
- 0x55, 0x4C, 0x71, 0x12, 0x26, 0xC7, 0x0D, 0xF9, 0x51, 0xA4, 0x38, 0x02, 0x05, 0x7F, 0xB8, 0xF1,
- 0x72, 0x4B, 0xBF, 0x71, 0x89, 0x14, 0xF3, 0x77, 0x38, 0xD9, 0x71, 0x24, 0xF3, 0x00, 0x11, 0xA1,
- 0xD8, 0xD4, 0x69, 0x27, 0x08, 0x37, 0x35, 0xC9, 0x11, 0x9D, 0x90, 0x1C, 0x0E, 0xE7, 0x1C, 0xFF,
- 0x2D, 0x1E, 0xE8, 0x92, 0xE1, 0x18, 0x10, 0x95, 0x7C, 0xE0, 0x80, 0xF4, 0x96, 0x43, 0x21, 0xF9,
- 0x75, 0x21, 0x64, 0x38, 0xDD, 0x9F, 0x1E, 0x95, 0x16, 0xDA, 0x56, 0x1D, 0x4F, 0x9A, 0x53, 0xB2,
- 0xE2, 0xE4, 0x18, 0xCB, 0x6B, 0x1A, 0x65, 0xEB, 0x56, 0xC6, 0x3B, 0xE5, 0xFE, 0xD8, 0x26, 0x3F,
- 0x3A, 0x84, 0x59, 0x72, 0x66, 0xA2, 0xF3, 0x75, 0xFF, 0xFB, 0x60, 0xB3, 0x22, 0xAD, 0x3F, 0x2D,
- 0x6B, 0xF9, 0xEB, 0xEA, 0x05, 0x7C, 0xD8, 0x8F, 0x6D, 0x2C, 0x98, 0x9E, 0x2B, 0x93, 0xF1, 0x5E,
- 0x46, 0xF0, 0x87, 0x49, 0x29, 0x73, 0x68, 0xD7, 0x7F, 0xF9, 0xF0, 0xE5, 0x7D, 0xDB, 0x1D, 0x75,
- 0x19, 0xF3, 0xC4, 0x58, 0x9B, 0x17, 0x88, 0xA8, 0x92, 0xE0, 0xBE, 0xBD, 0x8B, 0x1D, 0x8D, 0x9F,
- 0x56, 0x76, 0xAD, 0xAF, 0x29, 0xE2, 0xD9, 0xD5, 0x52, 0xF6, 0xB5, 0x56, 0x35, 0x57, 0x3A, 0xC8,
- 0xE1, 0x56, 0x43, 0x19, 0x94, 0xD3, 0x04, 0x9B, 0x6D, 0x35, 0xD8, 0x0B, 0x5F, 0x4D, 0x19, 0x8E,
- 0xEC, 0xFA, 0x64, 0x91, 0x0A, 0x72, 0x20, 0x2B, 0xBC, 0x1A, 0x4A, 0xFE, 0x8B, 0xFD, 0xBB, 0xED,
- 0x1B, 0x23, 0xEA, 0xAD, 0x72, 0x82, 0xA1, 0x29, 0x99, 0x71, 0xBD, 0xF0, 0x95, 0xC1, 0x03, 0xDD,
- 0x7B, 0xC2, 0xB2, 0x3C, 0x28, 0x54, 0xD3, 0x68, 0xA4, 0x72, 0xC8, 0x66, 0x96, 0xE0, 0xD1, 0xD8,
- 0x7F, 0xF8, 0xD1, 0x26, 0x2B, 0xF7, 0xAD, 0xBA, 0x55, 0xCA, 0x15, 0xB9, 0x32, 0xC3, 0xE5, 0x88,
- 0x97, 0x8E, 0x5C, 0xFB, 0x92, 0x25, 0x8B, 0xBF, 0xA2, 0x45, 0x55, 0x7A, 0xA7, 0x6F, 0x8B, 0x57,
- 0x5B, 0xCF, 0x0E, 0xCB, 0x1D, 0xFB, 0x20, 0x82, 0x77, 0xA8, 0x8C, 0xCC, 0x16, 0xCE, 0x1D, 0xFA,
- 0xDE, 0xCC, 0x0B, 0x62, 0xFE, 0xCC, 0xE1, 0xB7, 0xF0, 0xC3, 0x81, 0x64, 0x73, 0x40, 0xA0, 0xC2,
- 0x4D, 0x89, 0x11, 0x75, 0x33, 0x55, 0x33, 0x8D, 0xE8, 0x4A, 0xFD, 0xEA, 0x6E, 0x30, 0x0B, 0xD7,
- 0x31, 0x2C, 0xDE, 0x47, 0xE3, 0xBF, 0xF8, 0x55, 0x42, 0xE2, 0x7F, 0x59, 0xE5, 0x17, 0xEF, 0x99,
- 0x34, 0x69, 0x91, 0xB1, 0x23, 0x8E, 0x20, 0x87, 0x2D, 0xA8, 0xFE, 0xD5, 0x8A, 0xF3, 0x84, 0x3A,
- 0xF0, 0x37, 0xE4, 0x09, 0x00, 0x54, 0xEE, 0x67, 0x49, 0x93, 0xE4, 0x81, 0x70, 0xE3, 0x90, 0x4D,
- 0xEF, 0xFE, 0x41, 0xB7, 0x99, 0x7B, 0xC1, 0x83, 0xBA, 0x62, 0x12, 0x6F, 0x7D, 0xDE, 0x6B, 0xAF,
- 0xDA, 0x16, 0xF9, 0x55, 0x51, 0xEE, 0xA6, 0x0C, 0x2B, 0x02, 0xA3, 0xFD, 0x8D, 0xFB, 0x30, 0x17,
- 0xE4, 0x6F, 0xDF, 0x36, 0x71, 0xC4, 0xCA, 0x87, 0x25, 0x48, 0xB0, 0x47, 0xEC, 0xEA, 0xB4, 0xBF,
- 0xA5, 0x4D, 0x9B, 0x9F, 0x02, 0x93, 0xC4, 0xE3, 0xE4, 0xE8, 0x42, 0x2D, 0x68, 0x81, 0x15, 0x0A,
- 0xEB, 0x84, 0x5B, 0xD6, 0xA8, 0x74, 0xFB, 0x7D, 0x1D, 0xCB, 0x2C, 0xDA, 0x46, 0x2A, 0x76, 0x62,
- 0xCE, 0xBC, 0x5C, 0x9E, 0x8B, 0xE7, 0xCF, 0xBE, 0x78, 0xF5, 0x7C, 0xEB, 0xB3, 0x3A, 0x9C, 0xAA,
- 0x6F, 0xCC, 0x72, 0xD1, 0x59, 0xF2, 0x11, 0x23, 0xD6, 0x3F, 0x48, 0xD1, 0xB7, 0xCE, 0xB0, 0xBF,
- 0xCB, 0xEA, 0x80, 0xDE, 0x57, 0xD4, 0x5E, 0x97, 0x2F, 0x75, 0xD1, 0x50, 0x8E, 0x80, 0x2C, 0x66,
- 0x79, 0xBF, 0x72, 0x4B, 0xBD, 0x8A, 0x81, 0x6C, 0xD3, 0xE1, 0x01, 0xDC, 0xD2, 0x15, 0x26, 0xC5,
- 0x36, 0xDA, 0x2C, 0x1A, 0xC0, 0x27, 0x94, 0xED, 0xB7, 0x9B, 0x85, 0x0B, 0x5E, 0x80, 0x97, 0xC5,
- 0xEC, 0x4F, 0xEC, 0x88, 0x5D, 0x50, 0x07, 0x35, 0x47, 0xDC, 0x0B, 0x3B, 0x3D, 0xDD, 0x60, 0xAF,
- 0xA8, 0x5D, 0x81, 0x38, 0x24, 0x25, 0x5D, 0x5C, 0x15, 0xD1, 0xDE, 0xB3, 0xAB, 0xEC, 0x05, 0x69,
- 0xEF, 0x83, 0xED, 0x57, 0x54, 0xB8, 0x64, 0x64, 0x11, 0x16, 0x32, 0x69, 0xDA, 0x9F, 0x2D, 0x7F,
- 0x36, 0xBB, 0x44, 0x5A, 0x34, 0xE8, 0x7F, 0xBF, 0x03, 0xEB, 0x00, 0x7F, 0x59, 0x68, 0x22, 0x79,
- 0xCF, 0x73, 0x6C, 0x2C, 0x29, 0xA7, 0xA1, 0x5F, 0x38, 0xA1, 0x1D, 0xF0, 0x20, 0x53, 0xE0, 0x1A,
- 0x63, 0x14, 0x58, 0x71, 0x10, 0xAA, 0x08, 0x0C, 0x3E, 0x16, 0x1A, 0x60, 0x22, 0x82, 0x7F, 0xBA,
- 0xA4, 0x43, 0xA0, 0xD0, 0xAC, 0x1B, 0xD5, 0x6B, 0x64, 0xB5, 0x14, 0x93, 0x31, 0x9E, 0x53, 0x50,
- 0xD0, 0x57, 0x66, 0xEE, 0x5A, 0x4F, 0xFB, 0x03, 0x2A, 0x69, 0x58, 0x76, 0xF1, 0x83, 0xF7, 0x4E,
- 0xBA, 0x8C, 0x42, 0x06, 0x60, 0x5D, 0x6D, 0xCE, 0x60, 0x88, 0xAE, 0xA4, 0xC3, 0xF1, 0x03, 0xA5,
- 0x4B, 0x98, 0xA1, 0xFF, 0x67, 0xE1, 0xAC, 0xA2, 0xB8, 0x62, 0xD7, 0x6F, 0xA0, 0x31, 0xB4, 0xD2,
- 0x77, 0xAF, 0x21, 0x10, 0x06, 0xC6, 0x9A, 0xFF, 0x1D, 0x09, 0x17, 0x0E, 0x5F, 0xF1, 0xAA, 0x54,
- 0x34, 0x4B, 0x45, 0x8A, 0x87, 0x63, 0xA6, 0xDC, 0xF9, 0x24, 0x30, 0x67, 0xC6, 0xB2, 0xD6, 0x61,
- 0x33, 0x69, 0xEE, 0x50, 0x61, 0x57, 0x28, 0xE7, 0x7E, 0xEE, 0xEC, 0x3A, 0x5A, 0x73, 0x4E, 0xA8,
- 0x8D, 0xE4, 0x18, 0xEA, 0xEC, 0x41, 0x64, 0xC8, 0xE2, 0xE8, 0x66, 0xB6, 0x2D, 0xB6, 0xFB, 0x6A,
- 0x6C, 0x16, 0xB3, 0xDD, 0x46, 0x43, 0xB9, 0x73, 0x00, 0x6A, 0x71, 0xED, 0x4E, 0x9D, 0x25, 0x1A,
- 0xC3, 0x3C, 0x4A, 0x95, 0x15, 0x99, 0x35, 0x81, 0x14, 0x02, 0xD6, 0x98, 0x9B, 0xEC, 0xD8, 0x23,
- 0x3B, 0x84, 0x29, 0xAF, 0x0C, 0x99, 0x83, 0xA6, 0x9A, 0x34, 0x4F, 0xFA, 0xE8, 0xD0, 0x3C, 0x4B,
- 0xD0, 0xFB, 0xB6, 0x68, 0xB8, 0x9E, 0x8F, 0xCD, 0xF7, 0x60, 0x2D, 0x7A, 0x22, 0xE5, 0x7D, 0xAB,
- 0x65, 0x1B, 0x95, 0xA7, 0xA8, 0x7F, 0xB6, 0x77, 0x47, 0x7B, 0x5F, 0x8B, 0x12, 0x72, 0xD0, 0xD4,
- 0x91, 0xEF, 0xDE, 0x19, 0x50, 0x3C, 0xA7, 0x8B, 0xC4, 0xA9, 0xB3, 0x23, 0xCB, 0x76, 0xE6, 0x81,
- 0xF0, 0xC1, 0x04, 0x8F, 0xA3, 0xB8, 0x54, 0x5B, 0x97, 0xAC, 0x19, 0xFF, 0x3F, 0x55, 0x27, 0x2F,
- 0xE0, 0x1D, 0x42, 0x9B, 0x57, 0xFC, 0x4B, 0x4E, 0x0F, 0xCE, 0x98, 0xA9, 0x43, 0x57, 0x03, 0xBD,
- 0xE7, 0xC8, 0x94, 0xDF, 0x6E, 0x36, 0x73, 0x32, 0xB4, 0xEF, 0x2E, 0x85, 0x7A, 0x6E, 0xFC, 0x6C,
- 0x18, 0x82, 0x75, 0x35, 0x90, 0x07, 0xF3, 0xE4, 0x9F, 0x3E, 0xDC, 0x68, 0xF3, 0xB5, 0xF3, 0x19,
- 0x80, 0x92, 0x06, 0x99, 0xA2, 0xE8, 0x6F, 0xFF, 0x2E, 0x7F, 0xAE, 0x42, 0xA4, 0x5F, 0xFB, 0xD4,
- 0x0E, 0x81, 0x2B, 0xC3, 0x04, 0xFF, 0x2B, 0xB3, 0x74, 0x4E, 0x36, 0x5B, 0x9C, 0x15, 0x00, 0xC6,
- 0x47, 0x2B, 0xE8, 0x8B, 0x3D, 0xF1, 0x9C, 0x03, 0x9A, 0x58, 0x7F, 0x9B, 0x9C, 0xBF, 0x85, 0x49,
- 0x79, 0x35, 0x2E, 0x56, 0x7B, 0x41, 0x14, 0x39, 0x47, 0x83, 0x26, 0xAA, 0x07, 0x89, 0x98, 0x11,
- 0x1B, 0x86, 0xE7, 0x73, 0x7A, 0xD8, 0x7D, 0x78, 0x61, 0x53, 0xE9, 0x79, 0xF5, 0x36, 0x8D, 0x44,
- 0x92, 0x84, 0xF9, 0x13, 0x50, 0x58, 0x3B, 0xA4, 0x6A, 0x36, 0x65, 0x49, 0x8E, 0x3C, 0x0E, 0xF1,
- 0x6F, 0xD2, 0x84, 0xC4, 0x7E, 0x8E, 0x3F, 0x39, 0xAE, 0x7C, 0x84, 0xF1, 0x63, 0x37, 0x8E, 0x3C,
- 0xCC, 0x3E, 0x44, 0x81, 0x45, 0xF1, 0x4B, 0xB9, 0xED, 0x6B, 0x36, 0x5D, 0xBB, 0x20, 0x60, 0x1A,
- 0x0F, 0xA3, 0xAA, 0x55, 0x77, 0x3A, 0xA9, 0xAE, 0x37, 0x4D, 0xBA, 0xB8, 0x86, 0x6B, 0xBC, 0x08,
- 0x50, 0xF6, 0xCC, 0xA4, 0xBD, 0x1D, 0x40, 0x72, 0xA5, 0x86, 0xFA, 0xE2, 0x10, 0xAE, 0x3D, 0x58,
- 0x4B, 0x97, 0xF3, 0x43, 0x74, 0xA9, 0x9E, 0xEB, 0x21, 0xB7, 0x01, 0xA4, 0x86, 0x93, 0x97, 0xEE,
- 0x2F, 0x4F, 0x3B, 0x86, 0xA1, 0x41, 0x6F, 0x41, 0x26, 0x90, 0x78, 0x5C, 0x7F, 0x30, 0x38, 0x4B,
- 0x3F, 0xAA, 0xEC, 0xED, 0x5C, 0x6F, 0x0E, 0xAD, 0x43, 0x87, 0xFD, 0x93, 0x35, 0xE6, 0x01, 0xEF,
- 0x41, 0x26, 0x90, 0x99, 0x9E, 0xFB, 0x19, 0x5B, 0xAD, 0xD2, 0x91, 0x8A, 0xE0, 0x46, 0xAF, 0x65,
- 0xFA, 0x4F, 0x84, 0xC1, 0xA1, 0x2D, 0xCF, 0x45, 0x8B, 0xD3, 0x85, 0x50, 0x55, 0x7C, 0xF9, 0x67,
- 0x88, 0xD4, 0x4E, 0xE9, 0xD7, 0x6B, 0x61, 0x54, 0xA1, 0xA4, 0xA6, 0xA2, 0xC2, 0xBF, 0x30, 0x9C,
- 0x40, 0x9F, 0x5F, 0xD7, 0x69, 0x2B, 0x24, 0x82, 0x5E, 0xD9, 0xD6, 0xA7, 0x12, 0x54, 0x1A, 0xF7,
- 0x55, 0x9F, 0x76, 0x50, 0xA9, 0x95, 0x84, 0xE6, 0x6B, 0x6D, 0xB5, 0x96, 0x54, 0xD6, 0xCD, 0xB3,
- 0xA1, 0x9B, 0x46, 0xA7, 0x94, 0x4D, 0xC4, 0x94, 0xB4, 0x98, 0xE3, 0xE1, 0xE2, 0x34, 0xD5, 0x33,
- 0x16, 0x07, 0x54, 0xCD, 0xB7, 0x77, 0x53, 0xDB, 0x4F, 0x4D, 0x46, 0x9D, 0xE9, 0xD4, 0x9C, 0x8A,
- 0x36, 0xB6, 0xB8, 0x38, 0x26, 0x6C, 0x0E, 0xFF, 0x9C, 0x1B, 0x43, 0x8B, 0x80, 0xCC, 0xB9, 0x3D,
- 0xDA, 0xC7, 0xF1, 0x8A, 0xF2, 0x6D, 0xB8, 0xD7, 0x74, 0x2F, 0x7E, 0x1E, 0xB7, 0xD3, 0x4A, 0xB4,
- 0xAC, 0xFC, 0x79, 0x48, 0x6C, 0xBC, 0x96, 0xB6, 0x94, 0x46, 0x57, 0x2D, 0xB0, 0xA3, 0xFC, 0x1E,
- 0xB9, 0x52, 0x60, 0x85, 0x2D, 0x41, 0xD0, 0x43, 0x01, 0x1E, 0x1C, 0xD5, 0x7D, 0xFC, 0xF3, 0x96,
- 0x0D, 0xC7, 0xCB, 0x2A, 0x29, 0x9A, 0x93, 0xDD, 0x88, 0x2D, 0x37, 0x5D, 0xAA, 0xFB, 0x49, 0x68,
- 0xA0, 0x9C, 0x50, 0x86, 0x7F, 0x68, 0x56, 0x57, 0xF9, 0x79, 0x18, 0x39, 0xD4, 0xE0, 0x01, 0x84,
- 0x33, 0x61, 0xCA, 0xA5, 0xD2, 0xD6, 0xE4, 0xC9, 0x8A, 0x4A, 0x23, 0x44, 0x4E, 0xBC, 0xF0, 0xDC,
- 0x24, 0xA1, 0xA0, 0xC4, 0xE2, 0x07, 0x3C, 0x10, 0xC4, 0xB5, 0x25, 0x4B, 0x65, 0x63, 0xF4, 0x80,
- 0xE7, 0xCF, 0x61, 0xB1, 0x71, 0x82, 0x21, 0x87, 0x2C, 0xF5, 0x91, 0x00, 0x32, 0x0C, 0xEC, 0xA9,
- 0xB5, 0x9A, 0x74, 0x85, 0xE3, 0x36, 0x8F, 0x76, 0x4F, 0x9C, 0x6D, 0xCE, 0xBC, 0xAD, 0x0A, 0x4B,
- 0xED, 0x76, 0x04, 0xCB, 0xC3, 0xB9, 0x33, 0x9E, 0x01, 0x93, 0x96, 0x69, 0x7D, 0xC5, 0xA2, 0x45,
- 0x79, 0x9B, 0x04, 0x5C, 0x84, 0x09, 0xED, 0x88, 0x43, 0xC7, 0xAB, 0x93, 0x14, 0x26, 0xA1, 0x40,
- 0xB5, 0xCE, 0x4E, 0xBF, 0x2A, 0x42, 0x85, 0x3E, 0x2C, 0x3B, 0x54, 0xE8, 0x12, 0x1F, 0x0E, 0x97,
- 0x59, 0xB2, 0x27, 0x89, 0xFA, 0xF2, 0xDF, 0x8E, 0x68, 0x59, 0xDC, 0x06, 0xBC, 0xB6, 0x85, 0x0D,
- 0x06, 0x22, 0xEC, 0xB1, 0xCB, 0xE5, 0x04, 0xE6, 0x3D, 0xB3, 0xB0, 0x41, 0x73, 0x08, 0x3F, 0x3C,
- 0x58, 0x86, 0x63, 0xEB, 0x50, 0xEE, 0x1D, 0x2C, 0x37, 0x74, 0xA9, 0xD3, 0x18, 0xA3, 0x47, 0x6E,
- 0x93, 0x54, 0xAD, 0x0A, 0x5D, 0xB8, 0x2A, 0x55, 0x5D, 0x78, 0xF6, 0xEE, 0xBE, 0x8E, 0x3C, 0x76,
- 0x69, 0xB9, 0x40, 0xC2, 0x34, 0xEC, 0x2A, 0xB9, 0xED, 0x7E, 0x20, 0xE4, 0x8D, 0x00, 0x38, 0xC7,
- 0xE6, 0x8F, 0x44, 0xA8, 0x86, 0xCE, 0xEB, 0x2A, 0xE9, 0x90, 0xF1, 0x4C, 0xDF, 0x32, 0xFB, 0x73,
- 0x1B, 0x6D, 0x92, 0x1E, 0x95, 0xFE, 0xB4, 0xDB, 0x65, 0xDF, 0x4D, 0x23, 0x54, 0x89, 0x48, 0xBF,
- 0x4A, 0x2E, 0x70, 0xD6, 0xD7, 0x62, 0xB4, 0x33, 0x29, 0xB1, 0x3A, 0x33, 0x4C, 0x23, 0x6D, 0xA6,
- 0x76, 0xA5, 0x21, 0x63, 0x48, 0xE6, 0x90, 0x5D, 0xED, 0x90, 0x95, 0x0B, 0x7A, 0x84, 0xBE, 0xB8,
- 0x0D, 0x5E, 0x63, 0x0C, 0x62, 0x26, 0x4C, 0x14, 0x5A, 0xB3, 0xAC, 0x23, 0xA4, 0x74, 0xA7, 0x6F,
- 0x33, 0x30, 0x05, 0x60, 0x01, 0x42, 0xA0, 0x28, 0xB7, 0xEE, 0x19, 0x38, 0xF1, 0x64, 0x80, 0x82,
- 0x43, 0xE1, 0x41, 0x27, 0x1F, 0x1F, 0x90, 0x54, 0x7A, 0xD5, 0x23, 0x2E, 0xD1, 0x3D, 0xCB, 0x28,
- 0xBA, 0x58, 0x7F, 0xDC, 0x7C, 0x91, 0x24, 0xE9, 0x28, 0x51, 0x83, 0x6E, 0xC5, 0x56, 0x21, 0x42,
- 0xED, 0xA0, 0x56, 0x22, 0xA1, 0x40, 0x80, 0x6B, 0xA8, 0xF7, 0x94, 0xCA, 0x13, 0x6B, 0x0C, 0x39,
- 0xD9, 0xFD, 0xE9, 0xF3, 0x6F, 0xA6, 0x9E, 0xFC, 0x70, 0x8A, 0xB3, 0xBC, 0x59, 0x3C, 0x1E, 0x1D,
- 0x6C, 0xF9, 0x7C, 0xAF, 0xF9, 0x88, 0x71, 0x95, 0xEB, 0x57, 0x00, 0xBD, 0x9F, 0x8C, 0x4F, 0xE1,
- 0x24, 0x83, 0xC5, 0x22, 0xEA, 0xFD, 0xD3, 0x0C, 0xE2, 0x17, 0x18, 0x7C, 0x6A, 0x4C, 0xDE, 0x77,
- 0xB4, 0x53, 0x9B, 0x4C, 0x81, 0xCD, 0x23, 0x60, 0xAA, 0x0E, 0x25, 0x73, 0x9C, 0x02, 0x79, 0x32,
- 0x30, 0xDF, 0x74, 0xDF, 0x75, 0x19, 0xF4, 0xA5, 0x14, 0x5C, 0xF7, 0x7A, 0xA8, 0xA5, 0x91, 0x84,
- 0x7C, 0x60, 0x03, 0x06, 0x3B, 0xCD, 0x50, 0xB6, 0x27, 0x9C, 0xFE, 0xB1, 0xDD, 0xCC, 0xD3, 0xB0,
- 0x59, 0x24, 0xB2, 0xCA, 0xE2, 0x1C, 0x81, 0x22, 0x9D, 0x07, 0x8F, 0x8E, 0xB9, 0xBE, 0x4E, 0xFA,
- 0xFC, 0x39, 0x65, 0xBA, 0xBF, 0x9D, 0x12, 0x37, 0x5E, 0x97, 0x7E, 0xF3, 0x89, 0xF5, 0x5D, 0xF5,
- 0xE3, 0x09, 0x8C, 0x62, 0xB5, 0x20, 0x9D, 0x0C, 0x53, 0x8A, 0x68, 0x1B, 0xD2, 0x8F, 0x75, 0x17,
- 0x5D, 0xD4, 0xE5, 0xDA, 0x75, 0x62, 0x19, 0x14, 0x6A, 0x26, 0x2D, 0xEB, 0xF8, 0xAF, 0x37, 0xF0,
- 0x6C, 0xA4, 0x55, 0xB1, 0xBC, 0xE2, 0x33, 0xC0, 0x9A, 0xCA, 0xB0, 0x11, 0x49, 0x4F, 0x68, 0x9B,
- 0x3B, 0x6B, 0x3C, 0xCC, 0x13, 0xF6, 0xC7, 0x85, 0x61, 0x68, 0x42, 0xAE, 0xBB, 0xDD, 0xCD, 0x45,
- 0x16, 0x29, 0x1D, 0xEA, 0xDB, 0xC8, 0x03, 0x94, 0x3C, 0xEE, 0x4F, 0x82, 0x11, 0xC3, 0xEC, 0x28,
- 0xBD, 0x97, 0x05, 0x99, 0xDE, 0xD7, 0xBB, 0x5E, 0x22, 0x1F, 0xD4, 0xEB, 0x64, 0xD9, 0x92, 0xD9,
- 0x85, 0xB7, 0x6A, 0x05, 0x6A, 0xE4, 0x24, 0x41, 0xF1, 0xCD, 0xF0, 0xD8, 0x3F, 0xF8, 0x9E, 0x0E,
- 0xCD, 0x0B, 0x7A, 0x70, 0x6B, 0x5A, 0x75, 0x0A, 0x6A, 0x33, 0x88, 0xEC, 0x17, 0x75, 0x08, 0x70,
- 0x10, 0x2F, 0x24, 0xCF, 0xC4, 0xE9, 0x42, 0x00, 0x61, 0x94, 0xCA, 0x1F, 0x3A, 0x76, 0x06, 0xFA,
- 0xD2, 0x48, 0x81, 0xF0, 0x77, 0x60, 0x03, 0x45, 0xD9, 0x61, 0xF4, 0xA4, 0x6F, 0x3D, 0xD9, 0x30,
- 0xC3, 0x04, 0x6B, 0x54, 0x2A, 0xB7, 0xEC, 0x3B, 0xF4, 0x4B, 0xF5, 0x68, 0x52, 0x26, 0xCE, 0xFF,
- 0x5D, 0x19, 0x91, 0xA0, 0xA3, 0xA5, 0xA9, 0xB1, 0xE0, 0x23, 0xC4, 0x0A, 0x77, 0x4D, 0xF9, 0x51,
- 0x20, 0xA3, 0xA5, 0xA9, 0xB1, 0xC1, 0x00, 0x82, 0x86, 0x8E, 0x7F, 0x5D, 0x19, 0x91, 0xA0, 0xA3,
- 0xC4, 0xEB, 0x54, 0x0B, 0x75, 0x68, 0x52, 0x07, 0x8C, 0x9A, 0x97, 0x8D, 0x79, 0x70, 0x62, 0x46,
- 0xEF, 0x5C, 0x1B, 0x95, 0x89, 0x71, 0x41, 0xE1, 0x21, 0xA1, 0xA1, 0xA1, 0xC0, 0x02, 0x67, 0x4C,
- 0x1A, 0xB6, 0xCF, 0xFD, 0x78, 0x53, 0x24, 0xAB, 0xB5, 0xC9, 0xF1, 0x60, 0x23, 0xA5, 0xC8, 0x12,
- 0x87, 0x6D, 0x58, 0x13, 0x85, 0x88, 0x92, 0x87, 0x6D, 0x58, 0x32, 0xC7, 0x0C, 0x9A, 0x97, 0xAC,
- 0xDA, 0x36, 0xEE, 0x5E, 0x3E, 0xDF, 0x1D, 0xB8, 0xF2, 0x66, 0x2F, 0xBD, 0xF8, 0x72, 0x47, 0xED,
- 0x58, 0x13, 0x85, 0x88, 0x92, 0x87, 0x8C, 0x7B, 0x55, 0x09, 0x90, 0xA2, 0xC6, 0xEF, 0x3D, 0xF8,
- 0x53, 0x24, 0xAB, 0xD4, 0x2A, 0xB7, 0xEC, 0x5A, 0x36, 0xEE, 0x5E, 0x3E, 0xDF, 0x3C, 0xFA, 0x76,
- 0x4F, 0xFD, 0x59, 0x30, 0xE2, 0x46, 0xEF, 0x3D, 0xF8, 0x53, 0x05, 0x69, 0x31, 0xC1, 0x00, 0x82,
- 0x86, 0x8E, 0x7F, 0x5D, 0x19, 0xB0, 0xE2, 0x27, 0xCC, 0xFB, 0x74, 0x4B, 0x14, 0x8B, 0x94, 0x8B,
- 0x75, 0x68, 0x33, 0xC5, 0x08, 0x92, 0x87, 0x8C, 0x9A, 0xB6, 0xCF, 0x1C, 0xBA, 0xD7, 0x0D, 0x98,
- 0xB2, 0xE6, 0x2F, 0xDC, 0x1B, 0x95, 0x89, 0x71, 0x60, 0x23, 0xC4, 0x0A, 0x96, 0x8F, 0x9C, 0xBA,
- 0xF6, 0x6E, 0x3F, 0xFC, 0x5B, 0x15, 0xA8, 0xD2, 0x26, 0xAF, 0xBD, 0xF8, 0x72, 0x66, 0x2F, 0xDC,
- 0x1B, 0xB4, 0xCB, 0x14, 0x8B, 0x94, 0xAA, 0xB7, 0xCD, 0xF9, 0x51, 0x01, 0x80, 0x82, 0x86, 0x6F,
- 0x3D, 0xD9, 0x30, 0xE2, 0x27, 0xCC, 0xFB, 0x74, 0x4B, 0x14, 0xAA, 0xB7, 0xCD, 0xF9, 0x70, 0x43,
- 0x04, 0x6B, 0x35, 0xC9, 0xF1, 0x60, 0x23, 0xA5, 0xC8, 0xF3, 0x45, 0x08, 0x92, 0x87, 0x6D, 0x58,
- 0x32, 0xE6, 0x2F, 0xBD, 0xF8, 0x72, 0x66, 0x4E, 0x1E, 0xBE, 0xFE, 0x7E, 0x7E, 0x7E, 0x5F, 0x1D,
- 0x99, 0x91, 0xA0, 0xA3, 0xC4, 0x0A, 0x77, 0x4D, 0x18, 0x93, 0xA4, 0xAB, 0xD4, 0x0B, 0x75, 0x49,
- 0x10, 0xA2, 0xC6, 0xEF, 0x3D, 0xF8, 0x53, 0x24, 0xAB, 0xB5, 0xE8, 0x33, 0xE4, 0x4A, 0x16, 0xAE,
- 0xDE, 0x1F, 0xBC, 0xDB, 0x15, 0xA8, 0xB3, 0xC5, 0x08, 0x73, 0x45, 0xE9, 0x31, 0xC1, 0xE1, 0x21,
- 0xA1, 0xA1, 0xA1, 0xC0, 0x02, 0x86, 0x6F, 0x5C, 0x3A, 0xD7, 0x0D, 0x98, 0x93, 0xA4, 0xCA, 0x16,
- 0xAE, 0xDE, 0x1F, 0x9D, 0x99, 0xB0, 0xE2, 0x46, 0xEF, 0x3D, 0xF8, 0x72, 0x47, 0x0C, 0x9A, 0xB6,
- 0xCF, 0xFD, 0x59, 0x11, 0xA0, 0xA3, 0xA5, 0xC8, 0xF3, 0x45, 0x08, 0x92, 0x87, 0x6D, 0x39, 0xF0,
- 0x43, 0x04, 0x8A, 0x96, 0xAE, 0xDE, 0x3E, 0xDF, 0x1D, 0x99, 0x91, 0xA0, 0xC2, 0x06, 0x6F, 0x3D,
- 0xF8, 0x72, 0x47, 0x0C, 0x9A, 0x97, 0x8D, 0x98, 0x93, 0x85, 0x88, 0x73, 0x45, 0xE9, 0x31, 0xE0,
- 0x23, 0xA5, 0xA9, 0xD0, 0x03, 0x84, 0x8A, 0x96, 0xAE, 0xDE, 0x1F, 0xBC, 0xDB, 0x15, 0xA8, 0xD2,
- 0x26, 0xCE, 0xFF, 0x5D, 0x19, 0x91, 0x81, 0x80, 0x82, 0x67, 0x2D, 0xD8, 0x13, 0xA4, 0xAB, 0xD4,
- 0x0B, 0x94, 0xAA, 0xB7, 0xCD, 0xF9, 0x51, 0x20, 0xA3, 0xA5, 0xC8, 0xF3, 0x45, 0xE9, 0x50, 0x22,
- 0xC6, 0xEF, 0x5C, 0x3A, 0xD7, 0x0D, 0x98, 0x93, 0x85, 0x88, 0x73, 0x64, 0x4A, 0xF7, 0x4D, 0xF9,
- 0x51, 0x20, 0xA3, 0xC4, 0x0A, 0x96, 0xAE, 0xDE, 0x3E, 0xFE, 0x7E, 0x7E, 0x7E, 0x5F, 0x3C, 0xFA,
- 0x76, 0x4F, 0xFD, 0x78, 0x72, 0x66, 0x2F, 0xBD, 0xD9, 0x30, 0xC3, 0xE5, 0x48, 0x12, 0x87, 0x8C,
- 0x7B, 0x55, 0x28, 0xD2, 0x07, 0x8C, 0x9A, 0x97, 0xAC, 0xDA, 0x17, 0x8D, 0x79, 0x51, 0x20, 0xA3,
- 0xC4, 0xEB, 0x54, 0x0B, 0x94, 0x8B, 0x94, 0xAA, 0xD6, 0x2E, 0xBF, 0xFC, 0x5B, 0x15, 0xA8, 0xD2,
- 0x26, 0xAF, 0xDC, 0x1B, 0xB4, 0xEA, 0x37, 0xEC, 0x3B, 0xF4, 0x6A, 0x37, 0xCD, 0x18, 0x93, 0x85,
- 0x69, 0x31, 0xC1, 0xE1, 0x40, 0xE3, 0x25, 0xC8, 0x12, 0x87, 0x8C, 0x9A, 0xB6, 0xCF, 0xFD, 0x59,
- 0x11, 0xA0, 0xC2, 0x06, 0x8E, 0x7F, 0x5D, 0x38, 0xF2, 0x47, 0x0C, 0x7B, 0x74, 0x6A, 0x37, 0xEC,
- 0x5A, 0x36, 0xEE, 0x3F, 0xFC, 0x7A, 0x76, 0x4F, 0x1C, 0x9B, 0x95, 0x89, 0x71, 0x41, 0x00, 0x63,
- 0x44, 0xEB, 0x54, 0x2A, 0xD6, 0x0F, 0x9C, 0xBA, 0xD7, 0x0D, 0x98, 0x93, 0x85, 0x69, 0x31, 0xC1,
- 0x00, 0x82, 0x86, 0x8E, 0x9E, 0xBE, 0xDF, 0x3C, 0xFA, 0x57, 0x2C, 0xDA, 0x36, 0xEE, 0x3F, 0xFC,
- 0x5B, 0x15, 0x89, 0x71, 0x41, 0x00, 0x82, 0x86, 0x8E, 0x7F, 0x5D, 0x38, 0xF2, 0x47, 0xED, 0x58,
- 0x13, 0xA4, 0xCA, 0xF7, 0x4D, 0xF9, 0x51, 0x01, 0x80, 0x63, 0x44, 0xEB, 0x54, 0x2A, 0xD6, 0x2E,
- 0xBF, 0xDD, 0x19, 0x91, 0xA0, 0xA3, 0xA5, 0xA9, 0xB1, 0xE0, 0x42, 0x06, 0x8E, 0x7F, 0x5D, 0x19,
- 0x91, 0xA0, 0xA3, 0xC4, 0x0A, 0x96, 0x8F, 0x7D, 0x78, 0x72, 0x47, 0x0C, 0x7B, 0x74, 0x6A, 0x56,
- 0x2E, 0xDE, 0x1F, 0xBC, 0xFA, 0x57, 0x0D, 0x79, 0x51, 0x01, 0x61, 0x21, 0xA1, 0xC0, 0xE3, 0x25,
- 0xA9, 0xB1, 0xC1, 0xE1, 0x40, 0x02, 0x67, 0x4C, 0x1A, 0x97, 0x8D, 0x98, 0x93, 0xA4, 0xAB, 0xD4,
- 0x2A, 0xD6, 0x0F, 0x9C, 0x9B, 0xB4, 0xCB, 0x14, 0xAA, 0xB7, 0xCD, 0xF9, 0x51, 0x20, 0xA3, 0xC4,
- 0xEB, 0x35, 0xC9, 0xF1, 0x60, 0x42, 0x06, 0x8E, 0x7F, 0x7C, 0x7A, 0x76, 0x6E, 0x3F, 0xFC, 0x7A,
- 0x76, 0x6E, 0x5E, 0x3E, 0xFE, 0x7E, 0x5F, 0x3C, 0xDB, 0x15, 0x89, 0x71, 0x41, 0xE1, 0x21, 0xC0,
- 0xE3, 0x44, 0xEB, 0x54, 0x2A, 0xB7, 0xCD, 0xF9, 0x70, 0x62, 0x27, 0xAD, 0xD8, 0x32, 0xC7, 0x0C,
- 0x7B, 0x74, 0x4B, 0x14, 0xAA, 0xB7, 0xEC, 0x3B, 0xD5, 0x28, 0xD2, 0x07, 0x6D, 0x39, 0xD1, 0x20,
- 0xC2, 0xE7, 0x4C, 0x1A, 0x97, 0x8D, 0x98, 0xB2, 0xC7, 0x0C, 0x59, 0x28, 0xF3, 0x9B
-};
+const uint8_t pmw33xx_firmware_signature[2] PROGMEM = {0x42, 0xBD};
diff --git a/drivers/sensors/pmw3389.c b/drivers/sensors/pmw3389.c
index 10e578edac6..85d2c8a4296 100644
--- a/drivers/sensors/pmw3389.c
+++ b/drivers/sensors/pmw3389.c
@@ -28,285 +28,5 @@ void pmw33xx_set_cpi(uint8_t sensor, uint16_t cpi) {
pmw33xx_write(sensor, REG_Resolution_L, cpival & 0xFF);
}
-// PID, Inverse PID, SROM version
-const uint8_t pmw33xx_firmware_signature[3] PROGMEM = {0x42, 0xBD, 0x04};
-
-// Firmware Blob for PMW3389
-// clang-format off
-const uint8_t pmw33xx_firmware_data[PMW33XX_FIRMWARE_LENGTH] PROGMEM = {
- 0x01, 0xe8, 0xba, 0x26, 0x0b, 0xb2, 0xbe, 0xfe, 0x7e, 0x5f, 0x3c, 0xdb, 0x15, 0xa8, 0xb3,
- 0xe4, 0x2b, 0xb5, 0xe8, 0x53, 0x07, 0x6d, 0x3b, 0xd1, 0x20, 0xc2, 0x06, 0x6f, 0x3d, 0xd9,
- 0x11, 0xa0, 0xc2, 0xe7, 0x2d, 0xb9, 0xd1, 0x20, 0xa3, 0xa5, 0xc8, 0xf3, 0x64, 0x4a, 0xf7,
- 0x4d, 0x18, 0x93, 0xa4, 0xca, 0xf7, 0x6c, 0x5a, 0x36, 0xee, 0x5e, 0x3e, 0xfe, 0x7e, 0x7e,
- 0x5f, 0x1d, 0x99, 0xb0, 0xc3, 0xe5, 0x29, 0xd3, 0x03, 0x65, 0x48, 0x12, 0x87, 0x6d, 0x58,
- 0x32, 0xe6, 0x2f, 0xdc, 0x3a, 0xf2, 0x4f, 0xfd, 0x59, 0x11, 0x81, 0x61, 0x21, 0xc0, 0x02,
- 0x86, 0x8e, 0x7f, 0x5d, 0x38, 0xf2, 0x47, 0x0c, 0x7b, 0x55, 0x28, 0xb3, 0xe4, 0x4a, 0x16,
- 0xab, 0xbf, 0xdd, 0x38, 0xf2, 0x66, 0x4e, 0xff, 0x5d, 0x19, 0x91, 0xa0, 0xa3, 0xa5, 0xc8,
- 0x12, 0xa6, 0xaf, 0xdc, 0x3a, 0xd1, 0x41, 0x60, 0x75, 0x58, 0x24, 0x92, 0xd4, 0x72, 0x6c,
- 0xe0, 0x2f, 0xfd, 0x23, 0x8d, 0x1c, 0x5b, 0xb2, 0x97, 0x36, 0x3d, 0x0b, 0xa2, 0x49, 0xb1,
- 0x58, 0xf2, 0x1f, 0xc0, 0xcb, 0xf8, 0x41, 0x4f, 0xcd, 0x1e, 0x6b, 0x39, 0xa7, 0x2b, 0xe9,
- 0x30, 0x16, 0x83, 0xd2, 0x0e, 0x47, 0x8f, 0xe3, 0xb1, 0xdf, 0xa2, 0x15, 0xdb, 0x5d, 0x30,
- 0xc5, 0x1a, 0xab, 0x31, 0x99, 0xf3, 0xfa, 0xb2, 0x86, 0x69, 0xad, 0x7a, 0xe8, 0xa7, 0x18,
- 0x6a, 0xcc, 0xc8, 0x65, 0x23, 0x87, 0xa8, 0x5f, 0xf5, 0x21, 0x59, 0x75, 0x09, 0x71, 0x45,
- 0x55, 0x25, 0x4b, 0xda, 0xa1, 0xc3, 0xf7, 0x41, 0xab, 0x59, 0xd9, 0x74, 0x12, 0x55, 0x5f,
- 0xbc, 0xaf, 0xd9, 0xfd, 0xb0, 0x1e, 0xa3, 0x0f, 0xff, 0xde, 0x11, 0x16, 0x6a, 0xae, 0x0e,
- 0xe1, 0x5d, 0x3c, 0x10, 0x43, 0x9a, 0xa1, 0x0b, 0x24, 0x8f, 0x0d, 0x7f, 0x0b, 0x5e, 0x4c,
- 0x42, 0xa4, 0x84, 0x2c, 0x40, 0xd0, 0x55, 0x39, 0xe6, 0x4b, 0xf8, 0x9b, 0x2f, 0xdc, 0x28,
- 0xff, 0xfa, 0xb5, 0x85, 0x19, 0xe5, 0x28, 0xa1, 0x77, 0xaa, 0x73, 0xf3, 0x03, 0xc7, 0x62,
- 0xa6, 0x91, 0x18, 0xc9, 0xb0, 0xcd, 0x05, 0xdc, 0xca, 0x81, 0x26, 0x1a, 0x47, 0x40, 0xda,
- 0x36, 0x7d, 0x6a, 0x53, 0xc8, 0x5a, 0x77, 0x5d, 0x19, 0xa4, 0x1b, 0x23, 0x83, 0xd0, 0xb2,
- 0xaa, 0x0e, 0xbf, 0x77, 0x4e, 0x3a, 0x3b, 0x59, 0x00, 0x31, 0x0d, 0x02, 0x1b, 0x88, 0x7a,
- 0xd4, 0xbd, 0x9d, 0xcc, 0x58, 0x04, 0x69, 0xf6, 0x3b, 0xca, 0x42, 0xe2, 0xfd, 0xc3, 0x3d,
- 0x39, 0xc5, 0xd0, 0x71, 0xe4, 0xc8, 0xb7, 0x3e, 0x3f, 0xc8, 0xe9, 0xca, 0xc9, 0x3f, 0x04,
- 0x4e, 0x1b, 0x79, 0xca, 0xa5, 0x61, 0xc2, 0xed, 0x1d, 0xa6, 0xda, 0x5a, 0xe9, 0x7f, 0x65,
- 0x8c, 0xbe, 0x12, 0x6e, 0xa4, 0x5b, 0x33, 0x2f, 0x84, 0x28, 0x9c, 0x1c, 0x88, 0x2d, 0xff,
- 0x07, 0xbf, 0xa6, 0xd7, 0x5a, 0x88, 0x86, 0xb0, 0x3f, 0xf6, 0x31, 0x5b, 0x11, 0x6d, 0xf5,
- 0x58, 0xeb, 0x58, 0x02, 0x9e, 0xb5, 0x9a, 0xb1, 0xff, 0x25, 0x9d, 0x8b, 0x4f, 0xb6, 0x0a,
- 0xf9, 0xea, 0x3e, 0x3f, 0x21, 0x09, 0x65, 0x21, 0x22, 0xfe, 0x3d, 0x4e, 0x11, 0x5b, 0x9e,
- 0x5a, 0x59, 0x8b, 0xdd, 0xd8, 0xce, 0xd6, 0xd9, 0x59, 0xd2, 0x1e, 0xfd, 0xef, 0x0d, 0x1b,
- 0xd9, 0x61, 0x7f, 0xd7, 0x2d, 0xad, 0x62, 0x09, 0xe5, 0x22, 0x63, 0xea, 0xc7, 0x31, 0xd9,
- 0xa1, 0x38, 0x80, 0x5c, 0xa7, 0x32, 0x82, 0xec, 0x1b, 0xa2, 0x49, 0x5a, 0x06, 0xd2, 0x7c,
- 0xc9, 0x96, 0x57, 0xbb, 0x17, 0x75, 0xfc, 0x7a, 0x8f, 0x0d, 0x77, 0xb5, 0x7a, 0x8e, 0x3e,
- 0xf4, 0xba, 0x2f, 0x69, 0x13, 0x26, 0xd6, 0xd9, 0x21, 0x60, 0x2f, 0x21, 0x3e, 0x87, 0xee,
- 0xfd, 0x87, 0x16, 0x0d, 0xc8, 0x08, 0x00, 0x25, 0x71, 0xac, 0x2c, 0x03, 0x2a, 0x37, 0x2d,
- 0xb3, 0x34, 0x09, 0x91, 0xe3, 0x06, 0x2c, 0x38, 0x37, 0x95, 0x3b, 0x17, 0x7a, 0xaf, 0xac,
- 0x99, 0x55, 0xab, 0x41, 0x39, 0x5f, 0x8e, 0xa6, 0x43, 0x80, 0x03, 0x88, 0x6f, 0x7d, 0xbd,
- 0x5a, 0xb4, 0x2b, 0x32, 0x23, 0x5a, 0xa9, 0x31, 0x32, 0x39, 0x4c, 0x5b, 0xf4, 0x6b, 0xaf,
- 0x66, 0x6f, 0x3c, 0x8e, 0x2d, 0x82, 0x97, 0x9f, 0x4a, 0x01, 0xdc, 0x99, 0x98, 0x00, 0xec,
- 0x38, 0x7a, 0x79, 0x70, 0xa6, 0x85, 0xd6, 0x21, 0x63, 0x0d, 0x45, 0x9a, 0x2e, 0x5e, 0xa7,
- 0xb1, 0xea, 0x66, 0x6a, 0xbc, 0x62, 0x2d, 0x7b, 0x7d, 0x85, 0xea, 0x95, 0x2f, 0xc0, 0xe8,
- 0x6f, 0x35, 0xa0, 0x3a, 0x02, 0x25, 0xbc, 0xb2, 0x5f, 0x5c, 0x43, 0x96, 0xcc, 0x26, 0xd2,
- 0x16, 0xb4, 0x96, 0x73, 0xd7, 0x13, 0xc7, 0xae, 0x53, 0x15, 0x31, 0x89, 0x68, 0x66, 0x6d,
- 0x2c, 0x92, 0x1f, 0xcc, 0x5b, 0xa7, 0x8f, 0x5d, 0xbb, 0xc9, 0xdb, 0xe8, 0x3b, 0x9d, 0x61,
- 0x74, 0x8b, 0x05, 0xa1, 0x58, 0x52, 0x68, 0xee, 0x3d, 0x39, 0x79, 0xa0, 0x9b, 0xdd, 0xe1,
- 0x55, 0xc9, 0x60, 0xeb, 0xad, 0xb8, 0x5b, 0xc2, 0x5a, 0xb5, 0x2c, 0x18, 0x55, 0xa9, 0x50,
- 0xc3, 0xf6, 0x72, 0x5f, 0xcc, 0xe2, 0xf4, 0x55, 0xb5, 0xd6, 0xb5, 0x4a, 0x99, 0xa5, 0x28,
- 0x74, 0x97, 0x18, 0xe8, 0xc0, 0x84, 0x89, 0x50, 0x03, 0x86, 0x4d, 0x1a, 0xb7, 0x09, 0x90,
- 0xa2, 0x01, 0x04, 0xbb, 0x73, 0x62, 0xcb, 0x97, 0x22, 0x70, 0x5d, 0x52, 0x41, 0x8e, 0xd9,
- 0x90, 0x15, 0xaa, 0xab, 0x0a, 0x31, 0x65, 0xb4, 0xda, 0xd0, 0xee, 0x24, 0xc9, 0x41, 0x91,
- 0x1e, 0xbc, 0x46, 0x70, 0x40, 0x9d, 0xda, 0x0e, 0x2a, 0xe4, 0xb2, 0x4c, 0x9f, 0xf2, 0xfc,
- 0xf3, 0x84, 0x17, 0x44, 0x1e, 0xd7, 0xca, 0x23, 0x1f, 0x3f, 0x5a, 0x22, 0x3d, 0xaf, 0x9b,
- 0x2d, 0xfc, 0x41, 0xad, 0x26, 0xb4, 0x45, 0x67, 0x0b, 0x80, 0x0e, 0xf9, 0x61, 0x37, 0xec,
- 0x3b, 0xf4, 0x4b, 0x14, 0xdf, 0x5a, 0x0c, 0x3a, 0x50, 0x0b, 0x14, 0x0c, 0x72, 0xae, 0xc6,
- 0xc5, 0xec, 0x35, 0x53, 0x2d, 0x59, 0xed, 0x91, 0x74, 0xe2, 0xc4, 0xc8, 0xf2, 0x25, 0x6b,
- 0x97, 0x6f, 0xc9, 0x76, 0xce, 0xa9, 0xb1, 0x99, 0x8f, 0x5a, 0x92, 0x3b, 0xc4, 0x8d, 0x54,
- 0x50, 0x40, 0x72, 0xd6, 0x90, 0x83, 0xfc, 0xe5, 0x49, 0x8b, 0x17, 0xf5, 0xfd, 0x6b, 0x8d,
- 0x32, 0x02, 0xe9, 0x0a, 0xfe, 0xbf, 0x00, 0x6b, 0xa3, 0xad, 0x5f, 0x09, 0x4b, 0x97, 0x2b,
- 0x00, 0x58, 0x65, 0x2e, 0x07, 0x49, 0x0a, 0x3b, 0x6b, 0x2e, 0x50, 0x6c, 0x1d, 0xac, 0xb7,
- 0x6a, 0x26, 0xd8, 0x13, 0xa4, 0xca, 0x16, 0xae, 0xab, 0x93, 0xb9, 0x1c, 0x1c, 0xb4, 0x47,
- 0x6a, 0x38, 0x36, 0x17, 0x27, 0xc9, 0x7f, 0xc7, 0x64, 0xcb, 0x89, 0x58, 0xc5, 0x61, 0xc2,
- 0xc6, 0xea, 0x15, 0x0b, 0x34, 0x0c, 0x5d, 0x61, 0x76, 0x6e, 0x2b, 0x62, 0x40, 0x92, 0xa3,
- 0x6c, 0xef, 0xf4, 0xe4, 0xc3, 0xa1, 0xa8, 0xf5, 0x94, 0x79, 0x0d, 0xd1, 0x3d, 0xcb, 0x3d,
- 0x40, 0xb6, 0xd0, 0xf0, 0x10, 0x54, 0xd8, 0x47, 0x25, 0x51, 0xc5, 0x41, 0x79, 0x00, 0xe5,
- 0xa0, 0x72, 0xde, 0xbb, 0x3b, 0x62, 0x17, 0xf6, 0xbc, 0x5d, 0x00, 0x76, 0x2e, 0xa7, 0x3b,
- 0xb6, 0xf1, 0x98, 0x72, 0x59, 0x2a, 0x73, 0xb0, 0x21, 0xd6, 0x49, 0xe0, 0xc0, 0xd5, 0xeb,
- 0x02, 0x7d, 0x4b, 0x41, 0x28, 0x70, 0x2d, 0xec, 0x2b, 0x71, 0x1f, 0x0b, 0xb9, 0x71, 0x63,
- 0x06, 0xe6, 0xbc, 0x60, 0xbb, 0xf4, 0x9a, 0x62, 0x43, 0x09, 0x18, 0x4e, 0x93, 0x06, 0x4d,
- 0x76, 0xfa, 0x7f, 0xbd, 0x02, 0xe4, 0x50, 0x91, 0x12, 0xe5, 0x86, 0xff, 0x64, 0x1e, 0xaf,
- 0x7e, 0xb3, 0xb2, 0xde, 0x89, 0xc1, 0xa2, 0x6f, 0x40, 0x7b, 0x41, 0x51, 0x63, 0xea, 0x25,
- 0xd1, 0x97, 0x57, 0x92, 0xa8, 0x45, 0xa1, 0xa5, 0x45, 0x21, 0x43, 0x7f, 0x83, 0x15, 0x29,
- 0xd0, 0x30, 0x53, 0x32, 0xb4, 0x5a, 0x17, 0x96, 0xbc, 0xc2, 0x68, 0xa9, 0xb7, 0xaf, 0xac,
- 0xdf, 0xf1, 0xe3, 0x89, 0xba, 0x24, 0x79, 0x54, 0xc6, 0x14, 0x07, 0x1c, 0x1e, 0x0d, 0x3a,
- 0x6b, 0xe5, 0x3d, 0x4e, 0x10, 0x60, 0x96, 0xec, 0x6c, 0xda, 0x47, 0xae, 0x03, 0x25, 0x39,
- 0x1d, 0x74, 0xc8, 0xac, 0x6a, 0xf2, 0x6b, 0x05, 0x2a, 0x9a, 0xe7, 0xe8, 0x92, 0xd6, 0xc2,
- 0x6d, 0xfa, 0xe8, 0xa7, 0x9d, 0x5f, 0x48, 0xc9, 0x75, 0xf1, 0x66, 0x6a, 0xdb, 0x5d, 0x9a,
- 0xcd, 0x27, 0xdd, 0xb9, 0x24, 0x04, 0x9c, 0x18, 0xc2, 0x6d, 0x0c, 0x91, 0x34, 0x48, 0x42,
- 0x6f, 0xe9, 0x59, 0x70, 0xc4, 0x7e, 0x81, 0x0e, 0x32, 0x0a, 0x93, 0x48, 0xb0, 0xc0, 0x15,
- 0x9e, 0x05, 0xac, 0x36, 0x16, 0xcb, 0x59, 0x65, 0xa0, 0x83, 0xdf, 0x3e, 0xda, 0xfb, 0x1d,
- 0x1a, 0xdb, 0x65, 0xec, 0x9a, 0xc6, 0xc3, 0x8e, 0x3c, 0x45, 0xfd, 0xc8, 0xf5, 0x1c, 0x6a,
- 0x67, 0x0d, 0x8f, 0x99, 0x7d, 0x30, 0x21, 0x8c, 0xea, 0x22, 0x87, 0x65, 0xc9, 0xb2, 0x4c,
- 0xe4, 0x1b, 0x46, 0xba, 0x54, 0xbd, 0x7c, 0xca, 0xd5, 0x8f, 0x5b, 0xa5, 0x01, 0x04, 0xd8,
- 0x0a, 0x16, 0xbf, 0xb9, 0x50, 0x2e, 0x37, 0x2f, 0x64, 0xf3, 0x70, 0x11, 0x02, 0x05, 0x31,
- 0x9b, 0xa0, 0xb2, 0x01, 0x5e, 0x4f, 0x19, 0xc9, 0xd4, 0xea, 0xa1, 0x79, 0x54, 0x53, 0xa7,
- 0xde, 0x2f, 0x49, 0xd3, 0xd1, 0x63, 0xb5, 0x03, 0x15, 0x4e, 0xbf, 0x04, 0xb3, 0x26, 0x8b,
- 0x20, 0xb2, 0x45, 0xcf, 0xcd, 0x5b, 0x82, 0x32, 0x88, 0x61, 0xa7, 0xa8, 0xb2, 0xa0, 0x72,
- 0x96, 0xc0, 0xdb, 0x2b, 0xe2, 0x5f, 0xba, 0xe3, 0xf5, 0x8a, 0xde, 0xf1, 0x18, 0x01, 0x16,
- 0x40, 0xd9, 0x86, 0x12, 0x09, 0x18, 0x1b, 0x05, 0x0c, 0xb1, 0xb5, 0x47, 0xe2, 0x43, 0xab,
- 0xfe, 0x92, 0x63, 0x7e, 0x95, 0x2b, 0xf0, 0xaf, 0xe1, 0xf1, 0xc3, 0x4a, 0xff, 0x2b, 0x09,
- 0xbb, 0x4a, 0x0e, 0x9a, 0xc4, 0xd8, 0x64, 0x7d, 0x83, 0xa0, 0x4f, 0x44, 0xdb, 0xc4, 0xa8,
- 0x58, 0xef, 0xfc, 0x9e, 0x77, 0xf9, 0xa6, 0x8f, 0x58, 0x8b, 0x12, 0xf4, 0xe9, 0x81, 0x12,
- 0x47, 0x51, 0x41, 0x83, 0xef, 0xf6, 0x73, 0xbc, 0x8e, 0x0f, 0x4c, 0x8f, 0x4e, 0x69, 0x90,
- 0x77, 0x29, 0x5d, 0x92, 0xb0, 0x6d, 0x06, 0x67, 0x29, 0x60, 0xbd, 0x4b, 0x17, 0xc8, 0x89,
- 0x69, 0x28, 0x29, 0xd6, 0x78, 0xcb, 0x11, 0x4c, 0xba, 0x8b, 0x68, 0xae, 0x7e, 0x9f, 0xef,
- 0x95, 0xda, 0xe2, 0x9e, 0x7f, 0xe9, 0x55, 0xe5, 0xe1, 0xe2, 0xb7, 0xe6, 0x5f, 0xbb, 0x2c,
- 0xa2, 0xe6, 0xee, 0xc7, 0x0a, 0x60, 0xa9, 0xd1, 0x80, 0xdf, 0x7f, 0xd6, 0x97, 0xab, 0x1d,
- 0x22, 0x25, 0xfc, 0x79, 0x23, 0xe0, 0xae, 0xc5, 0xef, 0x16, 0xa4, 0xa1, 0x0f, 0x92, 0xa9,
- 0xc7, 0xe3, 0x3a, 0x55, 0xdf, 0x62, 0x49, 0xd9, 0xf5, 0x84, 0x49, 0xc5, 0x90, 0x34, 0xd3,
- 0xe1, 0xac, 0x99, 0x21, 0xb1, 0x02, 0x76, 0x4a, 0xfa, 0xd4, 0xbb, 0xa4, 0x9c, 0xa2, 0xe2,
- 0xcb, 0x3d, 0x3b, 0x14, 0x75, 0x60, 0xd1, 0x02, 0xb4, 0xa3, 0xb4, 0x72, 0x06, 0xf9, 0x19,
- 0x9c, 0xe2, 0xe4, 0xa7, 0x0f, 0x25, 0x88, 0xc6, 0x86, 0xd6, 0x8c, 0x74, 0x4e, 0x6e, 0xfc,
- 0xa8, 0x48, 0x9e, 0xa7, 0x9d, 0x1a, 0x4b, 0x37, 0x09, 0xc8, 0xb0, 0x10, 0xbe, 0x6f, 0xfe,
- 0xa3, 0xc4, 0x7a, 0xb5, 0x3d, 0xe8, 0x30, 0xf1, 0x0d, 0xa0, 0xb2, 0x44, 0xfc, 0x9b, 0x8c,
- 0xf8, 0x61, 0xed, 0x81, 0xd1, 0x62, 0x11, 0xb4, 0xe1, 0xd5, 0x39, 0x52, 0x89, 0xd3, 0xa8,
- 0x49, 0x31, 0xdf, 0xb6, 0xf9, 0x91, 0xf4, 0x1c, 0x9d, 0x09, 0x95, 0x40, 0x56, 0xe7, 0xe3,
- 0xcd, 0x5c, 0x92, 0xc1, 0x1d, 0x6b, 0xe9, 0x78, 0x6f, 0x8e, 0x94, 0x42, 0x66, 0xa2, 0xaa,
- 0xd3, 0xc8, 0x2e, 0xe3, 0xf6, 0x07, 0x72, 0x0b, 0x6b, 0x1e, 0x7b, 0xb9, 0x7c, 0xe0, 0xa0,
- 0xbc, 0xd9, 0x25, 0xdf, 0x87, 0xa8, 0x5f, 0x9c, 0xcc, 0xf0, 0xdb, 0x42, 0x8e, 0x07, 0x31,
- 0x13, 0x01, 0x66, 0x32, 0xd1, 0xb8, 0xd6, 0xe3, 0x5e, 0x12, 0x76, 0x61, 0xd3, 0x38, 0x89,
- 0xe6, 0x17, 0x6f, 0xa5, 0xf2, 0x71, 0x0e, 0xa5, 0xe2, 0x88, 0x30, 0xbb, 0xbe, 0x8a, 0xea,
- 0xc7, 0x62, 0xc4, 0xcf, 0xb8, 0xcd, 0x33, 0x8d, 0x3d, 0x3e, 0xb5, 0x60, 0x3a, 0x03, 0x92,
- 0xe4, 0x6d, 0x1b, 0xe0, 0xb4, 0x84, 0x08, 0x55, 0x88, 0xa7, 0x3a, 0xb9, 0x3d, 0x43, 0xc3,
- 0xc0, 0xfa, 0x07, 0x6a, 0xca, 0x94, 0xad, 0x99, 0x55, 0xf1, 0xf1, 0xc0, 0x23, 0x87, 0x1d,
- 0x3d, 0x1c, 0xd1, 0x66, 0xa0, 0x57, 0x10, 0x52, 0xa2, 0x7f, 0xbe, 0xf9, 0x88, 0xb6, 0x02,
- 0xbf, 0x08, 0x23, 0xa9, 0x0c, 0x63, 0x17, 0x2a, 0xae, 0xf5, 0xf7, 0xb7, 0x21, 0x83, 0x92,
- 0x31, 0x23, 0x0d, 0x20, 0xc3, 0xc2, 0x05, 0x21, 0x62, 0x8e, 0x45, 0xe8, 0x14, 0xc1, 0xda,
- 0x75, 0xb8, 0xf8, 0x92, 0x01, 0xd0, 0x5d, 0x18, 0x9f, 0x99, 0x11, 0x19, 0xf5, 0x35, 0xe8,
- 0x7f, 0x20, 0x88, 0x8c, 0x05, 0x75, 0xf5, 0xd7, 0x40, 0x17, 0xbb, 0x1e, 0x36, 0x52, 0xd9,
- 0xa4, 0x9c, 0xc2, 0x9d, 0x42, 0x81, 0xd8, 0xc7, 0x8a, 0xe7, 0x4c, 0x81, 0xe0, 0xb7, 0x57,
- 0xed, 0x48, 0x8b, 0xf0, 0x97, 0x15, 0x61, 0xd9, 0x2c, 0x7c, 0x45, 0xaf, 0xc2, 0xcd, 0xfc,
- 0xaa, 0x13, 0xad, 0x59, 0xcc, 0xb2, 0xb2, 0x6e, 0xdd, 0x63, 0x9c, 0x32, 0x0f, 0xec, 0x83,
- 0xbe, 0x78, 0xac, 0x91, 0x44, 0x1a, 0x1f, 0xea, 0xfd, 0x5d, 0x8e, 0xb4, 0xc0, 0x84, 0xd4,
- 0xac, 0xb4, 0x87, 0x5f, 0xac, 0xef, 0xdf, 0xcd, 0x12, 0x56, 0xc8, 0xcd, 0xfe, 0xc5, 0xda,
- 0xd3, 0xc1, 0x69, 0xf3, 0x61, 0x05, 0xea, 0x25, 0xe2, 0x12, 0x05, 0x8f, 0x39, 0x08, 0x08,
- 0x7c, 0x37, 0xb6, 0x7e, 0x5b, 0xd8, 0xb1, 0x0e, 0xf2, 0xdb, 0x4b, 0xf1, 0xad, 0x90, 0x01,
- 0x57, 0xcd, 0xa0, 0xb4, 0x52, 0xe8, 0xf3, 0xd7, 0x8a, 0xbd, 0x4f, 0x9f, 0x21, 0x40, 0x72,
- 0xa4, 0xfc, 0x0b, 0x01, 0x2b, 0x2f, 0xb6, 0x4c, 0x95, 0x2d, 0x35, 0x33, 0x41, 0x6b, 0xa0,
- 0x93, 0xe7, 0x2c, 0xf2, 0xd3, 0x72, 0x8b, 0xf4, 0x4f, 0x15, 0x3c, 0xaf, 0xd6, 0x12, 0xde,
- 0x3f, 0x83, 0x3f, 0xff, 0xf8, 0x7f, 0xf6, 0xcc, 0xa6, 0x7f, 0xc9, 0x9a, 0x6e, 0x1f, 0xc1,
- 0x0c, 0xfb, 0xee, 0x9c, 0xe7, 0xaf, 0xc9, 0x26, 0x54, 0xef, 0xb0, 0x39, 0xef, 0xb2, 0xe9,
- 0x23, 0xc4, 0xef, 0xd1, 0xa1, 0xa4, 0x25, 0x24, 0x6f, 0x8d, 0x6a, 0xe5, 0x8a, 0x32, 0x3a,
- 0xaf, 0xfc, 0xda, 0xce, 0x18, 0x25, 0x42, 0x07, 0x4d, 0x45, 0x8b, 0xdf, 0x85, 0xcf, 0x55,
- 0xb2, 0x24, 0xfe, 0x9c, 0x69, 0x74, 0xa7, 0x6e, 0xa0, 0xce, 0xc0, 0x39, 0xf4, 0x86, 0xc6,
- 0x8d, 0xae, 0xb9, 0x48, 0x64, 0x13, 0x0b, 0x40, 0x81, 0xa2, 0xc9, 0xa8, 0x85, 0x51, 0xee,
- 0x9f, 0xcf, 0xa2, 0x8c, 0x19, 0x52, 0x48, 0xe2, 0xc1, 0xa8, 0x58, 0xb4, 0x10, 0x24, 0x06,
- 0x58, 0x51, 0xfc, 0xb9, 0x12, 0xec, 0xfd, 0x73, 0xb4, 0x6d, 0x84, 0xfa, 0x06, 0x8b, 0x05,
- 0x0b, 0x2d, 0xd6, 0xd6, 0x1f, 0x29, 0x82, 0x9f, 0x19, 0x12, 0x1e, 0xb2, 0x04, 0x8f, 0x7f,
- 0x4d, 0xbd, 0x30, 0x2e, 0xe3, 0xe0, 0x88, 0x29, 0xc5, 0x93, 0xd6, 0x6c, 0x1f, 0x29, 0x45,
- 0x91, 0xa7, 0x58, 0xcd, 0x05, 0x17, 0xd6, 0x6d, 0xb3, 0xca, 0x66, 0xcc, 0x3c, 0x4a, 0x74,
- 0xfd, 0x08, 0x10, 0xa6, 0x99, 0x92, 0x10, 0xd2, 0x85, 0xab, 0x6e, 0x1d, 0x0e, 0x8b, 0x26,
- 0x46, 0xd1, 0x6c, 0x84, 0xc0, 0x26, 0x43, 0x59, 0x68, 0xf0, 0x13, 0x1d, 0xfb, 0xe3, 0xd1,
- 0xd2, 0xb4, 0x71, 0x9e, 0xf2, 0x59, 0x6a, 0x33, 0x29, 0x79, 0xd2, 0xd7, 0x26, 0xf1, 0xae,
- 0x78, 0x9e, 0x1f, 0x0f, 0x3f, 0xe3, 0xe8, 0xd0, 0x27, 0x78, 0x77, 0xf6, 0xac, 0x9c, 0x56,
- 0x39, 0x73, 0x8a, 0x6b, 0x2f, 0x34, 0x78, 0xb1, 0x11, 0xdb, 0xa4, 0x5c, 0x80, 0x01, 0x71,
- 0x6a, 0xc2, 0xd1, 0x2e, 0x5e, 0x76, 0x28, 0x70, 0x93, 0xae, 0x3e, 0x78, 0xb0, 0x1f, 0x0f,
- 0xda, 0xbf, 0xfb, 0x8a, 0x67, 0x65, 0x4f, 0x91, 0xed, 0x49, 0x75, 0x78, 0x62, 0xa2, 0x93,
- 0xb5, 0x70, 0x7f, 0x4d, 0x08, 0x4e, 0x79, 0x61, 0xa8, 0x5f, 0x7f, 0xb4, 0x65, 0x9f, 0x91,
- 0x54, 0x3a, 0xe8, 0x50, 0x33, 0xd3, 0xd5, 0x8a, 0x7c, 0xf3, 0x9e, 0x8b, 0x77, 0x7b, 0xc6,
- 0xc6, 0x0c, 0x45, 0x95, 0x1f, 0xb0, 0xd0, 0x0b, 0x27, 0x4a, 0xfd, 0xc7, 0xf7, 0x0d, 0x5a,
- 0x43, 0xc9, 0x7d, 0x35, 0xb0, 0x7d, 0xc4, 0x9c, 0x57, 0x1e, 0x76, 0x0d, 0xf1, 0x95, 0x30,
- 0x71, 0xcc, 0xb3, 0x66, 0x3b, 0x63, 0xa8, 0x6c, 0xa3, 0x43, 0xa0, 0x24, 0xcc, 0xb7, 0x53,
- 0xfe, 0xfe, 0xbc, 0x6e, 0x60, 0x89, 0xaf, 0x16, 0x21, 0xc8, 0x91, 0x6a, 0x89, 0xce, 0x80,
- 0x2c, 0xf1, 0x59, 0xce, 0xc3, 0x60, 0x61, 0x3b, 0x0b, 0x19, 0xfe, 0x99, 0xac, 0x65, 0x90,
- 0x15, 0x12, 0x05, 0xac, 0x7e, 0xff, 0x98, 0x7b, 0x66, 0x64, 0x0e, 0x4b, 0x5b, 0xaa, 0x8d,
- 0x3b, 0xd2, 0x56, 0xcf, 0x99, 0x39, 0xee, 0x22, 0x81, 0xd0, 0x60, 0x06, 0x66, 0x20, 0x81,
- 0x48, 0x3c, 0x6f, 0x3a, 0x77, 0xba, 0xcb, 0x52, 0xac, 0x79, 0x56, 0xaf, 0xe9, 0x16, 0x17,
- 0x0a, 0xa3, 0x82, 0x08, 0xd5, 0x3c, 0x97, 0xcb, 0x09, 0xff, 0x7f, 0xf9, 0x4f, 0x60, 0x05,
- 0xb9, 0x53, 0x26, 0xaa, 0xb8, 0x50, 0xaa, 0x19, 0x25, 0xae, 0x5f, 0xea, 0x8a, 0xd0, 0x89,
- 0x12, 0x80, 0x43, 0x50, 0x24, 0x12, 0x21, 0x14, 0xcd, 0x77, 0xeb, 0x21, 0xcc, 0x5c, 0x09,
- 0x64, 0xf3, 0xc7, 0xcb, 0xc5, 0x4b, 0xc3, 0xe7, 0xed, 0xe7, 0x86, 0x2c, 0x1d, 0x8e, 0x19,
- 0x52, 0x9b, 0x2a, 0x0c, 0x18, 0x72, 0x0b, 0x1e, 0x1b, 0xb0, 0x0f, 0x42, 0x99, 0x04, 0xae,
- 0xd5, 0xb7, 0x89, 0x1a, 0xb9, 0x4f, 0xd6, 0xaf, 0xf3, 0xc9, 0x93, 0x6f, 0xb0, 0x60, 0x83,
- 0x6e, 0x6b, 0xd1, 0x5f, 0x3f, 0x1a, 0x83, 0x1e, 0x24, 0x00, 0x87, 0xb5, 0x3e, 0xdb, 0xf9,
- 0x4d, 0xa7, 0x16, 0x2e, 0x19, 0x5b, 0x8f, 0x1b, 0x0d, 0x47, 0x72, 0x42, 0xe9, 0x0a, 0x11,
- 0x08, 0x2d, 0x88, 0x1c, 0xbc, 0xc7, 0xb4, 0xbe, 0x29, 0x4d, 0x03, 0x5e, 0xec, 0xdf, 0xf3,
- 0x3d, 0x2f, 0xe8, 0x1d, 0x9a, 0xd2, 0xd1, 0xab, 0x41, 0x3d, 0x87, 0x11, 0x45, 0xb0, 0x0d,
- 0x46, 0xf5, 0xe8, 0x95, 0x62, 0x1c, 0x68, 0xf7, 0xa6, 0x5b, 0x39, 0x4e, 0xbf, 0x47, 0xba,
- 0x5d, 0x7f, 0xb7, 0x6a, 0xf4, 0xba, 0x1d, 0x69, 0xf6, 0xa4, 0xe7, 0xe4, 0x6b, 0x3b, 0x0d,
- 0x23, 0x16, 0x4a, 0xb2, 0x68, 0xf0, 0xb2, 0x0d, 0x09, 0x17, 0x6a, 0x63, 0x8c, 0x83, 0xd3,
- 0xbd, 0x05, 0xc9, 0xf6, 0xf0, 0xa1, 0x31, 0x0b, 0x2c, 0xac, 0x83, 0xac, 0x80, 0x34, 0x32,
- 0xb4, 0xec, 0xd0, 0xbc, 0x54, 0x82, 0x9a, 0xc8, 0xf6, 0xa0, 0x7d, 0xc6, 0x79, 0x73, 0xf4,
- 0x20, 0x99, 0xf3, 0xb4, 0x01, 0xde, 0x91, 0x27, 0xf2, 0xc0, 0xdc, 0x81, 0x00, 0x4e, 0x7e,
- 0x07, 0x99, 0xc8, 0x3a, 0x51, 0xbc, 0x38, 0xd6, 0x8a, 0xa2, 0xde, 0x3b, 0x6a, 0x8c, 0x1a,
- 0x7c, 0x81, 0x0f, 0x3a, 0x1f, 0xe4, 0x05, 0x7b, 0x20, 0x35, 0x6b, 0xa5, 0x6a, 0xa7, 0xe7,
- 0xbc, 0x9c, 0x20, 0xec, 0x00, 0x15, 0xe2, 0x51, 0xaf, 0x77, 0xeb, 0x29, 0x3c, 0x7d, 0x2e,
- 0x00, 0x5c, 0x81, 0x21, 0xfa, 0x35, 0x6f, 0x40, 0xef, 0xfb, 0xd1, 0x3f, 0xcc, 0x9d, 0x55,
- 0x53, 0xfb, 0x5a, 0xa5, 0x56, 0x89, 0x0b, 0x52, 0xeb, 0x57, 0x73, 0x4f, 0x1b, 0x67, 0x24,
- 0xcb, 0xb8, 0x6a, 0x10, 0x69, 0xd6, 0xfb, 0x52, 0x40, 0xff, 0x20, 0xa5, 0xf3, 0x72, 0xe1,
- 0x3d, 0xa4, 0x8c, 0x81, 0x66, 0x16, 0x0d, 0x5d, 0xad, 0xa8, 0x50, 0x25, 0x78, 0x31, 0x77,
- 0x0c, 0x57, 0xe4, 0xe9, 0x15, 0x2d, 0xdb, 0x07, 0x87, 0xc8, 0xb0, 0x43, 0xde, 0xfc, 0xfe,
- 0xa9, 0xeb, 0xf5, 0xb0, 0xd3, 0x7b, 0xe9, 0x1f, 0x6e, 0xca, 0xe4, 0x03, 0x95, 0xc5, 0xd1,
- 0x59, 0x72, 0x63, 0xf0, 0x86, 0x54, 0xe8, 0x16, 0x62, 0x0b, 0x35, 0x29, 0xc2, 0x68, 0xd0,
- 0xd6, 0x3e, 0x90, 0x60, 0x57, 0x1d, 0xc9, 0xed, 0x3f, 0xed, 0xb0, 0x2f, 0x7e, 0x97, 0x02,
- 0x51, 0xec, 0xee, 0x6f, 0x82, 0x74, 0x76, 0x7f, 0xfb, 0xd6, 0xc4, 0xc3, 0xdd, 0xe8, 0xb1,
- 0x60, 0xfc, 0xc6, 0xb9, 0x0d, 0x6a, 0x33, 0x78, 0xc6, 0xc1, 0xbf, 0x86, 0x2c, 0x50, 0xcc,
- 0x9a, 0x70, 0x8e, 0x7b, 0xec, 0xab, 0x95, 0xac, 0x53, 0xa0, 0x4b, 0x07, 0x88, 0xaf, 0x42,
- 0xed, 0x19, 0x8d, 0xf6, 0x32, 0x17, 0x48, 0x47, 0x1d, 0x41, 0x6f, 0xfe, 0x2e, 0xa7, 0x8f,
- 0x4b, 0xa0, 0x51, 0xf3, 0xbf, 0x02, 0x0a, 0x48, 0x58, 0xf7, 0xa1, 0x6d, 0xea, 0xa5, 0x13,
- 0x5a, 0x5b, 0xea, 0x0c, 0x9e, 0x52, 0x4f, 0x9e, 0xb9, 0x71, 0x7f, 0x23, 0x83, 0xda, 0x1b,
- 0x86, 0x9a, 0x41, 0x29, 0xda, 0x70, 0xe7, 0x64, 0xa1, 0x7b, 0xd5, 0x0a, 0x22, 0x0d, 0x5c,
- 0x40, 0xc4, 0x81, 0x07, 0x25, 0x35, 0x4a, 0x1c, 0x10, 0xdb, 0x45, 0x0a, 0xff, 0x36, 0xd4,
- 0xe0, 0xeb, 0x5f, 0x68, 0xd6, 0x67, 0xc6, 0xd0, 0x8b, 0x76, 0x1a, 0x7d, 0x59, 0x42, 0xa1,
- 0xcb, 0x96, 0x4d, 0x84, 0x09, 0x9a, 0x3d, 0xe0, 0x52, 0x85, 0x6e, 0x48, 0x90, 0x85, 0x2a,
- 0x63, 0xb2, 0x69, 0xd2, 0x00, 0x43, 0x31, 0x37, 0xb3, 0x52, 0xaf, 0x62, 0xfa, 0xc1, 0xe0,
- 0x03, 0xfb, 0x62, 0xaa, 0x88, 0xc9, 0xb2, 0x2c, 0xd5, 0xa8, 0xf5, 0xa5, 0x4c, 0x12, 0x59,
- 0x4e, 0x06, 0x5e, 0x9b, 0x15, 0x66, 0x11, 0xb2, 0x27, 0x92, 0xdc, 0x98, 0x59, 0xde, 0xdf,
- 0xfa, 0x9a, 0x32, 0x2e, 0xc0, 0x5d, 0x3c, 0x33, 0x41, 0x6d, 0xaf, 0xb2, 0x25, 0x23, 0x14,
- 0xa5, 0x7b, 0xc7, 0x9b, 0x68, 0xf3, 0xda, 0xeb, 0xe3, 0xa9, 0xe2, 0x6f, 0x0e, 0x1d, 0x1c,
- 0xba, 0x55, 0xb6, 0x34, 0x6a, 0x93, 0x1f, 0x1f, 0xb8, 0x34, 0xc8, 0x84, 0x08, 0xb1, 0x6b,
- 0x6a, 0x28, 0x74, 0x74, 0xe5, 0xeb, 0x75, 0xe9, 0x7c, 0xd8, 0xba, 0xd8, 0x42, 0xa5, 0xee,
- 0x1f, 0x80, 0xd9, 0x96, 0xb2, 0x2e, 0xe7, 0xbf, 0xba, 0xeb, 0xd1, 0x69, 0xbb, 0x8f, 0xfd,
- 0x5a, 0x63, 0x8f, 0x39, 0x7f, 0xdf, 0x1d, 0x37, 0xd2, 0x18, 0x35, 0x9d, 0xb6, 0xcc, 0xe4,
- 0x27, 0x81, 0x89, 0x38, 0x38, 0x68, 0x33, 0xe7, 0x78, 0xd8, 0x76, 0xf5, 0xee, 0xd0, 0x4a,
- 0x07, 0x69, 0x19, 0x7a, 0xad, 0x18, 0xb1, 0x94, 0x61, 0x45, 0x53, 0xa2, 0x48, 0xda, 0x96,
- 0x4a, 0xf9, 0xee, 0x94, 0x2a, 0x1f, 0x6e, 0x18, 0x3c, 0x92, 0x46, 0xd1, 0x1a, 0x28, 0x18,
- 0x32, 0x1f, 0x3a, 0x45, 0xbe, 0x04, 0x35, 0x92, 0xe5, 0xa3, 0xcb, 0xb5, 0x2e, 0x32, 0x43,
- 0xac, 0x65, 0x17, 0x89, 0x99, 0x15, 0x03, 0x9e, 0xb1, 0x23, 0x2f, 0xed, 0x76, 0x4d, 0xd8,
- 0xac, 0x21, 0x40, 0xc4, 0x99, 0x4e, 0x65, 0x71, 0x2c, 0xb3, 0x45, 0xab, 0xfb, 0xe7, 0x72,
- 0x39, 0x56, 0x30, 0x6d, 0xfb, 0x74, 0xeb, 0x99, 0xf3, 0xcd, 0x57, 0x5c, 0x78, 0x75, 0xe9,
- 0x8d, 0xc3, 0xa2, 0xfb, 0x5d, 0xe0, 0x90, 0xc5, 0x55, 0xad, 0x91, 0x53, 0x4e, 0x9e, 0xbd,
- 0x8c, 0x49, 0xa4, 0xa4, 0x69, 0x10, 0x0c, 0xc5, 0x76, 0xe9, 0x25, 0x86, 0x8d, 0x66, 0x23,
- 0xa8, 0xdb, 0x5c, 0xe8, 0xd9, 0x30, 0xe1, 0x15, 0x7b, 0xc0, 0x99, 0x0f, 0x03, 0xec, 0xaa,
- 0x12, 0xef, 0xce, 0xd4, 0xea, 0x55, 0x5c, 0x08, 0x86, 0xf4, 0xf4, 0xb0, 0x83, 0x42, 0x95,
- 0x37, 0xb6, 0x38, 0xe0, 0x2b, 0x54, 0x89, 0xbd, 0x4e, 0x20, 0x9d, 0x3f, 0xc3, 0x4b, 0xb7,
- 0xec, 0xfa, 0x5a, 0x14, 0x03, 0xcb, 0x64, 0xc8, 0x34, 0x4a, 0x4b, 0x6e, 0xf8, 0x6e, 0x56,
- 0xf6, 0xdd, 0x5f, 0xa1, 0x24, 0xe2, 0xd4, 0xd0, 0x82, 0x64, 0x1f, 0x8e, 0x9b, 0xfa, 0xb4,
- 0xcb, 0xdb, 0x0a, 0xe8, 0x15, 0xfc, 0x15, 0xab, 0x4b, 0x18, 0xbf, 0xd4, 0x42, 0x14, 0x48,
- 0x82, 0x85, 0xdd, 0xeb, 0x49, 0x1b, 0x0b, 0x0b, 0x05, 0xe9, 0xb4, 0xa1, 0x33, 0x0a, 0x5d,
- 0x0e, 0x6c, 0x4b, 0xc0, 0xd6, 0x6c, 0x7c, 0xfb, 0x69, 0x0b, 0x53, 0x19, 0xe4, 0xf3, 0x35,
- 0xfc, 0xbe, 0xa1, 0x34, 0x02, 0x09, 0x4f, 0x74, 0x86, 0x92, 0xcd, 0x5d, 0x1a, 0xc1, 0x27,
- 0x0c, 0xf2, 0xc5, 0xcf, 0xdd, 0x23, 0x93, 0x02, 0xbd, 0x41, 0x5e, 0x42, 0xf0, 0xa0, 0x9d,
- 0x0c, 0x72, 0xc8, 0xec, 0x32, 0x0a, 0x8a, 0xfd, 0x3d, 0x5a, 0x41, 0x27, 0x0c, 0x88, 0x59,
- 0xad, 0x94, 0x2e, 0xef, 0x5d, 0x8f, 0xc7, 0xdf, 0x66, 0xe4, 0xdd, 0x56, 0x6c, 0x7b, 0xca,
- 0x55, 0x81, 0xae, 0xae, 0x5c, 0x1b, 0x1a, 0xab, 0xae, 0x99, 0x8d, 0xcc, 0x42, 0x97, 0x59,
- 0xf4, 0x14, 0x3f, 0x75, 0xc6, 0xd1, 0x88, 0xba, 0xaa, 0x84, 0x4a, 0xd0, 0x34, 0x08, 0x3b,
- 0x7d, 0xdb, 0x15, 0x06, 0xb0, 0x5c, 0xbd, 0x40, 0xf5, 0xa8, 0xec, 0xae, 0x36, 0x40, 0xdd,
- 0x90, 0x1c, 0x3e, 0x0d, 0x7e, 0x73, 0xc7, 0xc2, 0xc5, 0x6a, 0xff, 0x52, 0x05, 0x7f, 0xbe,
- 0xd0, 0x92, 0xfd, 0xb3, 0x6f, 0xff, 0x5d, 0xb7, 0x97, 0x64, 0x73, 0x7b, 0xca, 0xd1, 0x98,
- 0x24, 0x6b, 0x0b, 0x01, 0x68, 0xdd, 0x27, 0x85, 0x85, 0xb5, 0x83, 0xc1, 0xe0, 0x50, 0x64,
- 0xc7, 0xaf, 0xf1, 0xc6, 0x4d, 0xb1, 0xef, 0xc9, 0xb4, 0x0a, 0x6d, 0x65, 0xf3, 0x47, 0xcc,
- 0xa3, 0x02, 0x21, 0x0c, 0xbe, 0x22, 0x29, 0x05, 0xcf, 0x5f, 0xe8, 0x94, 0x6c, 0xe5, 0xdc,
- 0xc4, 0xdf, 0xbe, 0x3e, 0xa8, 0xb4, 0x18, 0xb0, 0x99, 0xb8, 0x6f, 0xff, 0x5d, 0xb9, 0xfd,
- 0x3b, 0x5d, 0x16, 0xbf, 0x3e, 0xd8, 0xb3, 0xd8, 0x08, 0x34, 0xf6, 0x47, 0x35, 0x5b, 0x72,
- 0x1a, 0x33, 0xad, 0x52, 0x5d, 0xb8, 0xd0, 0x77, 0xc6, 0xab, 0xba, 0x55, 0x09, 0x5f, 0x02,
- 0xf8, 0xd4, 0x5f, 0x53, 0x06, 0x91, 0xcd, 0x74, 0x42, 0xae, 0x54, 0x91, 0x81, 0x62, 0x13,
- 0x6f, 0xd8, 0xa9, 0x77, 0xc3, 0x6c, 0xcb, 0xf1, 0x29, 0x5a, 0xcc, 0xda, 0x35, 0xbd, 0x52,
- 0x23, 0xbe, 0x59, 0xeb, 0x12, 0x6d, 0xb7, 0x53, 0xee, 0xfc, 0xb4, 0x1b, 0x13, 0x5e, 0xba,
- 0x16, 0x7c, 0xc5, 0xf3, 0xe3, 0x6d, 0x07, 0x78, 0xf5, 0x2b, 0x21, 0x05, 0x88, 0x4c, 0xc0,
- 0xa1, 0xe3, 0x36, 0x10, 0xf8, 0x1b, 0xd8, 0x17, 0xfb, 0x6a, 0x4e, 0xd8, 0xb3, 0x47, 0x2d,
- 0x99, 0xbd, 0xbb, 0x5d, 0x37, 0x7d, 0xba, 0xf1, 0xe1, 0x7c, 0xc0, 0xc5, 0x54, 0x62, 0x7f,
- 0xcf, 0x5a, 0x4a, 0x93, 0xcc, 0xf1, 0x1b, 0x34, 0xc8, 0xa6, 0x05, 0x4c, 0x55, 0x8b, 0x54,
- 0x84, 0xd5, 0x77, 0xeb, 0xc0, 0x6d, 0x3a, 0x29, 0xbd, 0x75, 0x61, 0x09, 0x9a, 0x2c, 0xbb,
- 0xf7, 0x18, 0x79, 0x34, 0x90, 0x24, 0xa5, 0x81, 0x70, 0x87, 0xc5, 0x02, 0x7c, 0xba, 0xd4,
- 0x5e, 0x14, 0x8e, 0xe4, 0xed, 0xa2, 0x61, 0x6a, 0xb9, 0x6e, 0xb5, 0x4a, 0xb9, 0x01, 0x46,
- 0xf4, 0xcf, 0xbc, 0x09, 0x2f, 0x27, 0x4b, 0xbd, 0x86, 0x7a, 0x10, 0xe1, 0xd4, 0xc8, 0xd9,
- 0x20, 0x8d, 0x8a, 0x63, 0x00, 0x63, 0x44, 0xeb, 0x54, 0x0b, 0x75, 0x49, 0x10, 0xa2, 0xa7,
- 0xad, 0xb9, 0xd1, 0x01, 0x80, 0x63, 0x25, 0xc8, 0x12, 0xa6, 0xce, 0x1e, 0xbe, 0xfe, 0x7e,
- 0x5f, 0x3c, 0xdb, 0x34, 0xea, 0x37, 0xec, 0x3b, 0xd5, 0x28, 0xd2, 0x07, 0x8c, 0x9a, 0xb6,
- 0xee, 0x5e, 0x3e, 0xdf, 0x1d, 0x99, 0xb0, 0xe2, 0x46, 0xef, 0x5c, 0x1b, 0xb4, 0xea, 0x56,
- 0x2e, 0xde, 0x1f, 0x9d, 0xb8, 0xd3, 0x24, 0xab, 0xd4, 0x2a, 0xd6, 0x2e, 0xde, 0x1f, 0x9d,
- 0xb8, 0xf2, 0x66, 0x2f, 0xbd, 0xf8, 0x72, 0x66, 0x4e, 0x1e, 0x9f, 0x9d, 0xb8, 0xf2, 0x47,
- 0x0c, 0x9a, 0xb6, 0xee, 0x3f, 0xfc, 0x7a, 0x57, 0x0d, 0x79, 0x70, 0x62, 0x27, 0xad, 0xb9,
- 0xd1, 0x01, 0x61, 0x40, 0x02, 0x67, 0x2d, 0xd8, 0x32, 0xe6, 0x2f, 0xdc, 0x3a, 0xd7, 0x2c,
- 0xbb, 0xf4, 0x4b, 0xf5, 0x49, 0xf1, 0x60, 0x23, 0xc4, 0x0a, 0x77, 0x4d, 0xf9, 0x51, 0x01,
- 0x80, 0x63, 0x25, 0xa9, 0xb1, 0xe0, 0x42, 0xe7, 0x4c, 0x1a, 0x97, 0xac, 0xbb, 0xf4, 0x6a,
- 0x37, 0xcd, 0x18, 0xb2, 0xe6, 0x2f, 0xdc, 0x1b, 0x95, 0xa8, 0xd2, 0x07, 0x6d, 0x58, 0x32,
- 0xe6, 0x4e, 0x1e, 0x9f, 0xbc, 0xfa, 0x57, 0x0d, 0x79, 0x51, 0x20, 0xc2, 0x06, 0x6f, 0x5c,
- 0x1b, 0x95, 0xa8, 0xb3, 0xc5, 0xe9, 0x31, 0xe0, 0x23, 0xc4, 0x0a, 0x77, 0x4d, 0x18, 0x93,
- 0x85, 0x69, 0x31, 0xc1, 0xe1, 0x21, 0xc0, 0xe3, 0x44, 0x0a, 0x77, 0x6c, 0x5a, 0x17, 0x8d,
- 0x98, 0x93, 0xa4, 0xab, 0xd4, 0x2a, 0xb7, 0xec, 0x5a, 0x17, 0xac, 0xbb, 0xf4, 0x4b, 0x14,
- 0xaa, 0xb7, 0xec, 0x3b, 0xd5, 0x28, 0xb3, 0xc5, 0xe9, 0x31, 0xc1, 0x00, 0x82, 0x67, 0x4c,
- 0xfb, 0x55, 0x28, 0xd2, 0x26, 0xaf, 0xbd, 0xd9, 0x11, 0x81, 0x61, 0x21, 0xa1, 0xa1, 0xc0,
- 0x02, 0x86, 0x6f, 0x5c, 0x1b, 0xb4, 0xcb, 0x14, 0x8b, 0x94, 0xaa, 0xd6, 0x2e, 0xbf, 0xdd,
- 0x19, 0xb0, 0xe2, 0x46, 0x0e, 0x7f, 0x7c, 0x5b, 0x15, 0x89, 0x90, 0x83, 0x84, 0x6b, 0x54,
- 0x0b, 0x75, 0x68, 0x52, 0x07, 0x6d, 0x58, 0x32, 0xc7, 0xed, 0x58, 0x32, 0xc7, 0xed, 0x58,
- 0x32, 0xe6, 0x4e, 0xff, 0x7c, 0x7a, 0x76, 0x6e, 0x3f, 0xdd, 0x38, 0xd3, 0x05, 0x88, 0x92,
- 0xa6, 0xaf, 0xdc, 0x1b, 0xb4, 0xcb, 0xf5, 0x68, 0x52, 0x07, 0x8c, 0x7b, 0x55, 0x09, 0x90,
- 0x83, 0x84, 0x6b, 0x54, 0x2a, 0xb7, 0xec, 0x3b, 0xd5, 0x09, 0x90, 0xa2, 0xc6, 0x0e, 0x7f,
- 0x7c, 0x7a, 0x57, 0x0d, 0x98, 0xb2, 0xc7, 0xed, 0x58, 0x32, 0xc7, 0x0c, 0x7b, 0x74, 0x4b,
- 0x14, 0x8b, 0x94, 0xaa, 0xb7, 0xcd, 0x18, 0x93, 0xa4, 0xca, 0x16, 0xae, 0xbf, 0xdd, 0x19,
- 0xb0, 0xe2, 0x46, 0x0e, 0x7f, 0x5d, 0x19, 0x91, 0x81, 0x80, 0x63, 0x44, 0xeb, 0x35, 0xc9,
- 0x10, 0x83, 0x65, 0x48, 0x12, 0xa6, 0xce, 0x1e, 0x9f, 0xbc, 0xdb, 0x15, 0x89, 0x71, 0x60,
- 0x23, 0xc4, 0xeb, 0x54, 0x2a, 0xb7, 0xec, 0x5a, 0x36, 0xcf, 0x81, 0x10, 0xac, 0x74
-};
-
-// clang-format off
+// PID, Inverse PID
+const uint8_t pmw33xx_firmware_signature[2] PROGMEM = {0x42, 0xBD};
diff --git a/drivers/sensors/pmw3389.h b/drivers/sensors/pmw3389.h
index fafd1e20469..a7028f84b1a 100644
--- a/drivers/sensors/pmw3389.h
+++ b/drivers/sensors/pmw3389.h
@@ -17,8 +17,6 @@
#define PMW33XX_CPI_MIN 50
#define PMW33XX_CPI_MAX 16000
-#define PMW33XX_FIRMWARE_LENGTH 4094
-
// PMW3389 register addresses
// clang-format off
#define REG_Product_ID 0x00
diff --git a/drivers/sensors/pmw33xx_common.c b/drivers/sensors/pmw33xx_common.c
index 82a7ec32973..f3285ec4972 100644
--- a/drivers/sensors/pmw33xx_common.c
+++ b/drivers/sensors/pmw33xx_common.c
@@ -15,8 +15,7 @@
#include "spi_master.h"
#include "progmem.h"
-extern const uint8_t pmw33xx_firmware_data[PMW33XX_FIRMWARE_LENGTH] PROGMEM;
-extern const uint8_t pmw33xx_firmware_signature[3] PROGMEM;
+extern const uint8_t pmw33xx_firmware_signature[2] PROGMEM;
static const pin_t cs_pins_left[] = PMW33XX_CS_PINS;
static const pin_t cs_pins_right[] = PMW33XX_CS_PINS_RIGHT;
@@ -27,6 +26,21 @@ static bool in_burst_right[ARRAY_SIZE(cs_pins_right)] = {0};
bool __attribute__((cold)) pmw33xx_upload_firmware(uint8_t sensor);
bool __attribute__((cold)) pmw33xx_check_signature(uint8_t sensor);
+const pointing_device_driver_t pmw33xx_pointing_device_driver = {
+ .init = pmw33xx_init_wrapper,
+ .get_report = pmw33xx_get_report,
+ .set_cpi = pmw33xx_set_cpi_wrapper,
+ .get_cpi = pmw33xx_get_cpi_wrapper,
+};
+
+uint16_t __attribute__((weak)) pmw33xx_srom_get_length(void) {
+ return 0;
+}
+
+uint8_t __attribute__((weak)) pmw33xx_srom_get_byte(uint16_t position) {
+ return 0;
+}
+
void pmw33xx_set_cpi_all_sensors(uint16_t cpi) {
for (uint8_t sensor = 0; sensor < pmw33xx_number_of_sensors; sensor++) {
pmw33xx_set_cpi(sensor, cpi);
@@ -89,10 +103,9 @@ uint8_t pmw33xx_read(uint8_t sensor, uint8_t reg_addr) {
}
bool pmw33xx_check_signature(uint8_t sensor) {
- uint8_t signature_dump[3] = {
+ uint8_t signature_dump[2] = {
pmw33xx_read(sensor, REG_Product_ID),
pmw33xx_read(sensor, REG_Inverse_Product_ID),
- pmw33xx_read(sensor, REG_SROM_ID),
};
return memcmp(pmw33xx_firmware_signature, signature_dump, sizeof(signature_dump)) == 0;
@@ -115,10 +128,12 @@ bool pmw33xx_upload_firmware(uint8_t sensor) {
spi_write(REG_SROM_Load_Burst | 0x80);
wait_us(15);
- for (size_t i = 0; i < PMW33XX_FIRMWARE_LENGTH; i++) {
- spi_write(pgm_read_byte(pmw33xx_firmware_data + i));
+ for (size_t i = 0; i < pmw33xx_srom_get_length(); i++) {
+ spi_write(pmw33xx_srom_get_byte(i));
wait_us(15);
}
+
+ spi_stop();
wait_us(200);
pmw33xx_read(sensor, REG_SROM_ID);
@@ -154,9 +169,13 @@ bool pmw33xx_init(uint8_t sensor) {
pmw33xx_read(sensor, REG_Delta_Y_L);
pmw33xx_read(sensor, REG_Delta_Y_H);
- if (!pmw33xx_upload_firmware(sensor)) {
- pd_dprintf("PMW33XX (%d): firmware upload failed!\n", sensor);
- return false;
+ if (pmw33xx_srom_get_length() != 0) {
+ if (!pmw33xx_upload_firmware(sensor)) {
+ pd_dprintf("PMW33XX (%d): firmware upload failed!\n", sensor);
+ return false;
+ }
+ } else {
+ pd_dprintf("PMW33XX (%d): firmware upload skipped.\n", sensor);
}
spi_stop();
@@ -200,7 +219,7 @@ pmw33xx_report_t pmw33xx_read_burst(uint8_t sensor) {
spi_write(REG_Motion_Burst);
wait_us(35); // waits for tSRAD_MOTBR
- spi_receive((uint8_t*)&report, sizeof(report));
+ spi_receive((uint8_t *)&report, sizeof(report));
// panic recovery, sometimes burst mode works weird.
if (report.motion.w & 0b111) {
@@ -216,3 +235,38 @@ pmw33xx_report_t pmw33xx_read_burst(uint8_t sensor) {
return report;
}
+
+void pmw33xx_init_wrapper(void) {
+ pmw33xx_init(0);
+}
+
+void pmw33xx_set_cpi_wrapper(uint16_t cpi) {
+ pmw33xx_set_cpi(0, cpi);
+}
+
+uint16_t pmw33xx_get_cpi_wrapper(void) {
+ return pmw33xx_get_cpi(0);
+}
+
+report_mouse_t pmw33xx_get_report(report_mouse_t mouse_report) {
+ pmw33xx_report_t report = pmw33xx_read_burst(0);
+ static bool in_motion = false;
+
+ if (report.motion.b.is_lifted) {
+ return mouse_report;
+ }
+
+ if (!report.motion.b.is_motion) {
+ in_motion = false;
+ return mouse_report;
+ }
+
+ if (!in_motion) {
+ in_motion = true;
+ pd_dprintf("PWM3360 (0): starting motion\n");
+ }
+
+ mouse_report.x = CONSTRAIN_HID_XY(report.delta_x);
+ mouse_report.y = CONSTRAIN_HID_XY(report.delta_y);
+ return mouse_report;
+}
diff --git a/drivers/sensors/pmw33xx_common.h b/drivers/sensors/pmw33xx_common.h
index b30ee3d5966..22e35c33275 100644
--- a/drivers/sensors/pmw33xx_common.h
+++ b/drivers/sensors/pmw33xx_common.h
@@ -14,6 +14,7 @@
#include
#include "spi_master.h"
#include "util.h"
+#include "pointing_device.h"
#if defined(POINTING_DEVICE_DRIVER_pmw3360)
# include "pmw3360.h"
@@ -102,6 +103,10 @@ _Static_assert(sizeof((pmw33xx_report_t){0}.motion) == 1, "pmw33xx_report_t.moti
#define CONSTRAIN(amt, low, high) ((amt) < (low) ? (low) : ((amt) > (high) ? (high) : (amt)))
+#define pmw3360_pointing_device_driver pmw33xx_pointing_device_driver;
+#define pmw3389_pointing_device_driver pmw33xx_pointing_device_driver;
+const pointing_device_driver_t pmw33xx_pointing_device_driver;
+
/**
* @brief Initializes the given sensor so it is in a working state and ready to
* be polled for data.
@@ -170,3 +175,8 @@ uint8_t pmw33xx_read(uint8_t sensor, uint8_t reg_addr);
* @return false Write failed, do not proceed operation
*/
bool pmw33xx_write(uint8_t sensor, uint8_t reg_addr, uint8_t data);
+
+void pmw33xx_init_wrapper(void);
+void pmw33xx_set_cpi_wrapper(uint16_t cpi);
+uint16_t pmw33xx_get_cpi_wrapper(void);
+report_mouse_t pmw33xx_get_report(report_mouse_t mouse_report);
diff --git a/drivers/spi_master.h b/drivers/spi_master.h
new file mode 100644
index 00000000000..d206b812bfd
--- /dev/null
+++ b/drivers/spi_master.h
@@ -0,0 +1,116 @@
+// Copyright 2025 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include
+#include
+#include "gpio.h"
+
+/**
+ * \file
+ *
+ * \defgroup spi_master SPI Master API
+ *
+ * \brief API to communicate with SPI devices.
+ * \{
+ */
+
+// Hardware SS pin is defined in the header so that user code can refer to it
+#ifdef __AVR__
+# if defined(__AVR_AT90USB162__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__)
+# define SPI_SS_PIN B0
+# elif defined(__AVR_ATmega32A__)
+# define SPI_SS_PIN B4
+# elif defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328__)
+# define SPI_SS_PIN B2
+# endif
+#endif
+
+typedef int16_t spi_status_t;
+
+#define SPI_STATUS_SUCCESS (0)
+#define SPI_STATUS_ERROR (-1)
+#define SPI_STATUS_TIMEOUT (-2)
+
+#define SPI_TIMEOUT_IMMEDIATE (0)
+#define SPI_TIMEOUT_INFINITE (0xFFFF)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct spi_start_config_t {
+ pin_t slave_pin;
+ bool lsb_first;
+ uint8_t mode;
+ uint16_t divisor;
+ bool cs_active_low;
+} spi_start_config_t;
+
+/**
+ * \brief Initialize the SPI driver. This function must be called only once, before any of the below functions can be called.
+ */
+void spi_init(void);
+
+/**
+ * \brief Start an SPI transaction.
+ *
+ * \param slavePin The GPIO pin connected to the desired device's `SS` line.
+ * \param lsbFirst Determines the endianness of the transmission. If `true`, the least significant bit of each byte is sent first.
+ * \param mode The SPI mode to use.
+ * \param divisor The SPI clock divisor.
+ *
+ * \return `true` if the operation was successful, otherwise `false` if the supplied parameters are invalid or the SPI peripheral is already in use.
+ */
+bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor);
+
+bool spi_start_extended(spi_start_config_t *start_config);
+
+/**
+ * \brief Write a byte to the selected SPI device.
+ *
+ * \param data The byte to write.
+ *
+ * \return `SPI_STATUS_TIMEOUT` if the timeout period elapses, or `SPI_STATUS_SUCCESS`.
+ */
+spi_status_t spi_write(uint8_t data);
+
+/**
+ * \brief Read a byte from the selected SPI device.
+ *
+ * \return `SPI_STATUS_TIMEOUT` if the timeout period elapses, otherwise the byte read from the device.
+ */
+spi_status_t spi_read(void);
+
+/**
+ * \brief Send multiple bytes to the selected SPI device.
+ *
+ * \param data A pointer to the data to write from.
+ * \param length The number of bytes to write. Take care not to overrun the length of `data`.
+ *
+ * \return `SPI_STATUS_TIMEOUT` if the timeout period elapses, `SPI_STATUS_ERROR` if some other error occurs, otherwise `SPI_STATUS_SUCCESS`.
+ */
+spi_status_t spi_transmit(const uint8_t *data, uint16_t length);
+
+/**
+ * \brief Receive multiple bytes from the selected SPI device.
+ *
+ * \param data A pointer to a buffer to read into.
+ * \param length The number of bytes to read. Take care not to overrun the length of `data`.
+ *
+ * \return `SPI_STATUS_TIMEOUT` if the timeout period elapses, `SPI_STATUS_ERROR` if some other error occurs, otherwise `SPI_STATUS_SUCCESS`.
+ */
+spi_status_t spi_receive(uint8_t *data, uint16_t length);
+
+/**
+ * \brief End the current SPI transaction. This will deassert the slave select pin and reset the endianness, mode and divisor configured by `spi_start()`.
+ *
+ */
+void spi_stop(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+/** \} */
diff --git a/drivers/uart.h b/drivers/uart.h
new file mode 100644
index 00000000000..c5068c86e1c
--- /dev/null
+++ b/drivers/uart.h
@@ -0,0 +1,62 @@
+// Copyright 2025 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include
+#include
+
+/**
+ * \file
+ *
+ * \defgroup uart UART API
+ *
+ * \brief API to communicate with UART devices.
+ * \{
+ */
+
+/**
+ * \brief Initialize the UART driver. This function must be called only once, before any of the below functions can be called.
+ *
+ * \param baud The baud rate to transmit and receive at. This may depend on the device you are communicating with. Common values are 1200, 2400, 4800, 9600, 19200, 38400, 57600, and 115200.
+ */
+void uart_init(uint32_t baud);
+
+/**
+ * \brief Transmit a single byte.
+ *
+ * \param data The byte to write.
+ */
+void uart_write(uint8_t data);
+
+/**
+ * \brief Receive a single byte.
+ *
+ * \return The byte read from the receive buffer. This function will block if the buffer is empty (ie. no data to read).
+ */
+uint8_t uart_read(void);
+
+/**
+ * \brief Transmit multiple bytes.
+ *
+ * \param data A pointer to the data to write from.
+ * \param length The number of bytes to write. Take care not to overrun the length of `data`.
+ */
+void uart_transmit(const uint8_t *data, uint16_t length);
+
+/**
+ * \brief Receive multiple bytes.
+ *
+ * \param data A pointer to a buffer to read into.
+ * \param length The number of bytes to read. Take care not to overrun the length of `data`.
+ */
+void uart_receive(uint8_t *data, uint16_t length);
+
+/**
+ * \brief Return whether the receive buffer contains data. Call this function to determine if `uart_read()` will return data immediately.
+ *
+ * \return true if there is data available to read.
+ */
+bool uart_available(void);
+
+/** \} */
diff --git a/drivers/wear_leveling/wear_leveling_flash_spi.c b/drivers/wear_leveling/wear_leveling_flash_spi.c
index 6191f8bf095..304aed1641f 100644
--- a/drivers/wear_leveling/wear_leveling_flash_spi.c
+++ b/drivers/wear_leveling/wear_leveling_flash_spi.c
@@ -58,7 +58,7 @@ bool backing_store_read(uint32_t address, backing_store_int_t *value) {
bool backing_store_read_bulk(uint32_t address, backing_store_int_t *values, size_t item_count) {
bs_dprintf("Read ");
uint32_t offset = (WEAR_LEVELING_EXTERNAL_FLASH_BLOCK_OFFSET) * (EXTERNAL_FLASH_BLOCK_SIZE) + address;
- flash_status_t status = flash_read_block(offset, values, sizeof(backing_store_int_t) * item_count);
+ flash_status_t status = flash_read_range(offset, values, sizeof(backing_store_int_t) * item_count);
if (status == FLASH_STATUS_SUCCESS) {
for (size_t i = 0; i < item_count; ++i) {
values[i] = ~values[i];
@@ -88,7 +88,7 @@ bool backing_store_write_bulk(uint32_t address, backing_store_int_t *values, siz
}
// Write out the block
- if (flash_write_block(offset, temp, sizeof(backing_store_int_t) * this_loop) != FLASH_STATUS_SUCCESS) {
+ if (flash_write_range(offset, temp, sizeof(backing_store_int_t) * this_loop) != FLASH_STATUS_SUCCESS) {
return false;
}
diff --git a/drivers/ws2812.h b/drivers/ws2812.h
deleted file mode 100644
index 993cce8ce45..00000000000
--- a/drivers/ws2812.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * 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
-
-#include "quantum/color.h"
-
-/*
- * The WS2812 datasheets define T1H 900ns, T0H 350ns, T1L 350ns, T0L 900ns. Hence, by default, these
- * are chosen to be conservative and avoid problems rather than for maximum throughput; in the code,
- * this is done by default using a WS2812_TIMING parameter that accounts for the whole window (1250ns)
- * and defining T1H and T0H; T1L and T0L are obtained by subtracting their low counterparts from the window.
- *
- * However, there are certain "WS2812"-like LEDs, like the SK6812s, which work in a similar
- * communication topology but use different timings for the window and the T1L, T1H, T0L and T0H.
- * This means that, albeit the same driver being applicable, the timings must be adapted.
- */
-
-#ifndef WS2812_TIMING
-# define WS2812_TIMING 1250
-#endif
-
-#ifndef WS2812_T1H
-# define WS2812_T1H 900 // Width of a 1 bit in ns
-#endif
-
-#ifndef WS2812_T1L
-# define WS2812_T1L (WS2812_TIMING - WS2812_T1H) // Width of a 1 bit in ns
-#endif
-
-#ifndef WS2812_T0H
-# define WS2812_T0H 350 // Width of a 0 bit in ns
-#endif
-
-#ifndef WS2812_T0L
-# define WS2812_T0L (WS2812_TIMING - WS2812_T0H) // Width of a 0 bit in ns
-#endif
-
-/*
- * Older WS2812s can handle a reset time (TRST) of 50us, but recent
- * component revisions require a minimum of 280us.
- */
-#if !defined(WS2812_TRST_US)
-# define WS2812_TRST_US 280
-#endif
-
-#if defined(RGBLIGHT_WS2812)
-# define WS2812_LED_COUNT RGBLIGHT_LED_COUNT
-#elif defined(RGB_MATRIX_WS2812)
-# define WS2812_LED_COUNT RGB_MATRIX_LED_COUNT
-#endif
-
-void ws2812_init(void);
-
-/* User Interface
- *
- * Input:
- * ledarray: An array of GRB data describing the LED colors
- * number_of_leds: The number of LEDs to write
- *
- * The functions will perform the following actions:
- * - Set the data-out pin as output
- * - Send out the LED data
- * - Wait 50us to reset the LEDs
- */
-void ws2812_setleds(rgb_led_t *ledarray, uint16_t number_of_leds);
diff --git a/keyboards/0_sixty/keymaps/via/config.h b/keyboards/0_sixty/keymaps/via/config.h
deleted file mode 100644
index 5894d7b2982..00000000000
--- a/keyboards/0_sixty/keymaps/via/config.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2021 Vinam Arora
- *
- * 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 DYNAMIC_KEYMAP_LAYER_COUNT 7
-/* This is 4 by default. ProMicro's memory doesn't seem to be able to
- * support more than 7 dynamic keymap layers
- */
diff --git a/keyboards/0_sixty/keymaps/via/keymap.c b/keyboards/0_sixty/keymaps/via/keymap.c
deleted file mode 100644
index d308956ee7d..00000000000
--- a/keyboards/0_sixty/keymaps/via/keymap.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/* Copyright 2020 Vinam Arora
- *
- * 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
-
-// 4 layers, because that is what VIA can support by default
-enum zero_sixty_layers {
- _QWERTY,
- _LOWER,
- _RAISE,
- _ADJUST,
- _EMPTY1, // Just to initialize dynamic layers in VIA
- _EMPTY2,
- _EMPTY3,
-};
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-#define ADJUST MO(_ADJUST)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Caps | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT_ortho_5x12(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_DEL,
- KC_ESC, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
- KC_CAPS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_ortho_5x12(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______,
- _______, _______, _______, _______, _______, _______, _______, ADJUST, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_ortho_5x12(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
- _______, _______, _______, _______, ADJUST, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Adjust
- * ,-----------------------------------------------------------------------------------.
- * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | Reset| | | | | | | | | | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_ortho_5x12(
- 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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Transparent layers, only to initialize VIA's dynamic layers */
-
-[_EMPTY1] = LAYOUT_ortho_5x12(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-[_EMPTY2] = LAYOUT_ortho_5x12(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-[_EMPTY3] = LAYOUT_ortho_5x12(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-};
diff --git a/keyboards/0_sixty/keymaps/via/rules.mk b/keyboards/0_sixty/keymaps/via/rules.mk
deleted file mode 100644
index eb5b445ddf1..00000000000
--- a/keyboards/0_sixty/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-MOUSEKEY_ENABLE = yes
diff --git a/keyboards/0_sixty/rules.mk b/keyboards/0_sixty/rules.mk
deleted file mode 100644
index a0d06a89dd7..00000000000
--- a/keyboards/0_sixty/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DEFAULT_FOLDER = 0_sixty/base
diff --git a/keyboards/0xc7/61key/keymaps/via/keymap.c b/keyboards/0xc7/61key/keymaps/via/keymap.c
deleted file mode 100644
index cc8e40c196e..00000000000
--- a/keyboards/0xc7/61key/keymaps/via/keymap.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright 2021 0xC7
- *
- * 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_APP, KC_RCTL
- ),
- [1] = LAYOUT_60_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_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_TRNS,
- KC_TRNS, KC_TRNS, QK_LOCK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, C(A(KC_DEL))
- ),
- [2] = LAYOUT_60_ansi(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [3] = LAYOUT_60_ansi(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- )
-};
\ No newline at end of file
diff --git a/keyboards/0xc7/61key/keymaps/via/rules.mk b/keyboards/0xc7/61key/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3e..00000000000
--- a/keyboards/0xc7/61key/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/0xcb/1337/1337.c b/keyboards/0xcb/1337/1337.c
deleted file mode 100644
index d5937540b2c..00000000000
--- a/keyboards/0xcb/1337/1337.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
-Copyright 2021 0xCB - Conor Burns
-
-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/0xcb/1337/keyboard.json b/keyboards/0xcb/1337/keyboard.json
index f264d4ed065..b2ef00906b1 100644
--- a/keyboards/0xcb/1337/keyboard.json
+++ b/keyboards/0xcb/1337/keyboard.json
@@ -9,6 +9,9 @@
"device_version": "0.0.1"
},
"backlight": {
+ "default": {
+ "brightness": 5
+ },
"pin": "B5",
"levels": 7,
"breathing": true
diff --git a/keyboards/0xcb/1337/keymaps/default/keymap.c b/keyboards/0xcb/1337/keymaps/default/keymap.c
index 3f05c97da95..f3e9e9ad14f 100644
--- a/keyboards/0xcb/1337/keymaps/default/keymap.c
+++ b/keyboards/0xcb/1337/keymaps/default/keymap.c
@@ -35,9 +35,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, TO(2)
),
[_RGB] = LAYOUT(
- RGB_HUI, RGB_HUD, RGB_MOD,
- RGB_SAI, RGB_SAD, TO(1),
- RGB_SPI, RGB_SPD, TO(3)
+ UG_HUEU, UG_HUED, UG_NEXT,
+ UG_SATU, UG_SATD, TO(1),
+ UG_SPDU, UG_SPDD, TO(3)
),
[_BLED] = LAYOUT(
BL_STEP, BL_BRTG, BL_TOGG,
diff --git a/keyboards/0xcb/1337/keymaps/via/keymap.c b/keyboards/0xcb/1337/keymaps/via/keymap.c
deleted file mode 100644
index f6f32b7ba1e..00000000000
--- a/keyboards/0xcb/1337/keymaps/via/keymap.c
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
-Copyright 2021 0xCB - Conor Burns
-
-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
-// clang-format off
-enum layer_names {
- _HOME,
- _MISC,
- _RGB,
- _BLED
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[_HOME] = LAYOUT(
- KC_MPRV, KC_MNXT, KC_MPLY,
- KC_PGUP, KC_PGDN, TO(3),
- KC_HOME, KC_END, TO(1)
-),
-[_MISC] = LAYOUT(
- _______, _______, _______,
- _______, _______, TO(0),
- _______, _______, TO(2)
-),
-[_RGB] = LAYOUT(
- RGB_HUI, RGB_HUD, RGB_MOD,
- RGB_SAI, RGB_SAD, TO(1),
- RGB_SPI, RGB_SPD, TO(3)
-),
-[_BLED] = LAYOUT(
- BL_STEP, BL_BRTG, BL_TOGG,
- BL_ON, BL_OFF, TO(2),
- BL_UP, BL_DOWN, TO(0)
-)
-};
-// clang-format on
-
-/* rotary encoder (SW3) - add more else if blocks for more granular layer control */
-#ifdef ENCODER_ENABLE
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (IS_LAYER_ON(_RGB)) {
- #ifdef RGBLIGHT_ENABLE
- if (clockwise) {
- rgblight_increase_val();
- } else {
- rgblight_decrease_val();
- }
- #endif
- } else if (IS_LAYER_ON(_BLED)) {
- if (clockwise) {
- backlight_increase();
- } else {
- backlight_decrease();
- }
- } else {
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- }
- return true;
-}
-#endif
-
-/* oled stuff :) */
-#ifdef OLED_ENABLE
-uint16_t startup_timer;
-
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- startup_timer = timer_read();
- return rotation;
-}
-
-static void render_logo(void) {
- static const char PROGMEM raw_logo[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 1, 2, 4, 2, 1, 1, 1, 1, 1, 1,255, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 1, 1, 1, 1, 1, 1, 2, 4, 2, 1, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5,248, 5, 2, 0, 0, 0, 0, 0, 0,128,192,192,224,224,112,120, 56, 63, 28, 14, 14, 14,254, 14, 14, 30, 28, 63, 56,120,112,224,224,192,128, 0, 0, 0, 0, 0, 0, 0, 2, 5,248, 5, 2, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,160, 19,162, 66, 66, 66, 66, 66, 66, 66,255,255,255, 0, 0, 0,252,254,254,192,192,192,192,255, 0, 0, 0, 62, 62, 60, 60, 0, 0, 1,255,255,255, 66, 66, 66, 66, 66, 66, 66,162, 19,160, 64, 0,
- 0, 0, 0,128, 64, 64, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,192, 64, 64,192,128, 0, 0,192, 64, 64,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 64,192, 0, 0, 0, 0, 0,128,192, 64, 64,192,128, 0, 0,128,192, 64, 64,192,128, 0, 0, 64, 64, 64, 64, 64,192, 0, 0, 0, 0, 0,249, 8, 8, 8, 8, 8, 8, 8, 8,127,255,255,192,128,128, 15, 31, 31, 1, 1, 1, 1,255, 0, 0, 0, 30, 30, 14, 14,128,192,192,255,255,127, 8, 8, 8, 8, 8, 8, 8, 8,249, 0, 0, 0,
- 0, 0, 31, 49, 64, 78, 64, 49, 31, 0, 0, 97, 22, 8, 22, 97, 0, 0, 31, 49, 96, 64, 64, 96, 32, 0, 0,127, 68, 68,100, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64,127, 64, 64, 0, 0, 0, 32,100, 68, 68,110, 59, 0, 0, 32,100, 68, 68,110, 59, 0, 0, 0, 0, 0,126, 3, 1, 0, 0, 0, 8, 20, 35, 20, 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 7, 15,254, 30, 28, 28, 28,255, 28, 28, 28, 30,254, 15, 7, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 10, 17, 10, 4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 40, 68, 40, 16, 16, 16, 16, 16, 16, 31, 0, 0, 16, 40, 71, 40, 16, 0, 0, 31, 16, 16, 16, 16, 16, 16, 40, 68, 40, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- };
- oled_write_raw_P(raw_logo, sizeof(raw_logo));
-}
-static void render_logo_font(void) {
- static const char PROGMEM qmk_logo[] = {
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4,
- 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4,
- 0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0,
- 0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0x00
- };
-
- oled_write_P(qmk_logo, false);
-}
-/* Shows the name of the current layer and locks for the host (CAPS etc.) */
-static void render_info(void) {
- oled_write_P(PSTR("Layer: "), false);
-
- switch (get_highest_layer(layer_state)) {
- case _HOME:
- oled_write_ln_P(PSTR("HOME"), false);
- break;
- case _MISC:
- oled_write_ln_P(PSTR("MISC"), false);
- break;
- case _RGB:
- oled_write_ln_P(PSTR("RGB"), false);
- break;
- case _BLED:
- oled_write_ln_P(PSTR("Backlight"), false);
- break;
- default:
- oled_write_ln_P(PSTR("Undefined"), false);
- }
- led_t led_state = host_keyboard_led_state();
- oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
- oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
- oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
-}
-static void render_rgbled_status(void) {
- char string[4];
- if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) {
- uint16_t m = rgblight_get_mode();
- string[3] = '\0';
- string[2] = '0' + m % 10;
- string[1] = ( m /= 10) % 10 ? '0' + (m) % 10 : (m / 10) % 10 ? '0' : ' ';
- string[0] = m / 10 ? '0' + m / 10 : ' ';
- oled_write_P(PSTR("Conf:"), false);
- oled_write(string, false);
- uint16_t h = rgblight_get_hue()/RGBLIGHT_HUE_STEP;
- string[3] = '\0';
- string[2] = '0' + h % 10;
- string[1] = ( h /= 10) % 10 ? '0' + (h) % 10 : (h / 10) % 10 ? '0' : ' ';
- string[0] = h / 10 ? '0' + h / 10 : ' ';
- oled_write_P(PSTR(","), false);
- oled_write(string, false);
- uint16_t s = rgblight_get_sat()/RGBLIGHT_SAT_STEP;
- string[3] = '\0';
- string[2] = '0' + s % 10;
- string[1] = ( s /= 10) % 10 ? '0' + (s) % 10 : (s / 10) % 10 ? '0' : ' ';
- string[0] = s / 10 ? '0' + s / 10 : ' ';
- oled_write_P(PSTR(","), false);
- oled_write(string, false);
- uint16_t v = rgblight_get_val()/RGBLIGHT_VAL_STEP;
- string[3] = '\0';
- string[2] = '0' + v % 10;
- string[1] = ( v /= 10) % 10 ? '0' + (v) % 10 : (v / 10) % 10 ? '0' : ' ';
- string[0] = v / 10 ? '0' + v / 10 : ' ';
- oled_write_P(PSTR(","), false);
- oled_write(string, false);
- oled_write_ln_P(PSTR("\n MOD HUE SAT VAR"), false);
- } else {
- oled_write_ln_P(PSTR("\n"), false);
- }
-}
-bool oled_task_user(void) {
- static bool finished_timer = false;
- if (!finished_timer && (timer_elapsed(startup_timer) < 1000)) {
- render_logo();
- } else {
- if (!finished_timer) {
- oled_clear();
- finished_timer = true;
- }
- render_info();
- render_rgbled_status();
- render_logo_font();
- }
- return false;
-}
-#endif
diff --git a/keyboards/0xcb/1337/keymaps/via/rules.mk b/keyboards/0xcb/1337/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/0xcb/1337/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/0xcb/splaytoraid/keymaps/default/keymap.c b/keyboards/0xcb/splaytoraid/keymaps/default/keymap.c
index dbc7e417f76..6a82f2ca745 100644
--- a/keyboards/0xcb/splaytoraid/keymaps/default/keymap.c
+++ b/keyboards/0xcb/splaytoraid/keymaps/default/keymap.c
@@ -44,6 +44,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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(RGB_VAD, RGB_VAI) },
+ [_RAISE] = { ENCODER_CCW_CW(UG_VALD, UG_VALU) },
[_ADJUST] = { ENCODER_CCW_CW(KC_RGHT, KC_LEFT) }
};
diff --git a/keyboards/0xcb/splaytoraid/keymaps/via/keymap.c b/keyboards/0xcb/splaytoraid/keymaps/via/keymap.c
deleted file mode 100644
index 852417922e7..00000000000
--- a/keyboards/0xcb/splaytoraid/keymaps/via/keymap.c
+++ /dev/null
@@ -1,48 +0,0 @@
-// 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(RGB_VAD, RGB_VAI) },
- [_ADJUST] = { ENCODER_CCW_CW(KC_RGHT, KC_LEFT) }
-};
diff --git a/keyboards/0xcb/splaytoraid/keymaps/via/rules.mk b/keyboards/0xcb/splaytoraid/keymaps/via/rules.mk
deleted file mode 100644
index f1adcab005e..00000000000
--- a/keyboards/0xcb/splaytoraid/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/0xcb/splaytoraid/rules.mk b/keyboards/0xcb/splaytoraid/rules.mk
deleted file mode 100644
index 65884dec4f9..00000000000
--- a/keyboards/0xcb/splaytoraid/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DEFAULT_FOLDER = 0xcb/splaytoraid/rp2040_ce
diff --git a/keyboards/0xcb/static/keymaps/via/keymap.c b/keyboards/0xcb/static/keymaps/via/keymap.c
deleted file mode 100644
index 2a8b2d7c25f..00000000000
--- a/keyboards/0xcb/static/keymaps/via/keymap.c
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
-Copyright 2021 0xCB - Conor Burns
-
-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
-// clang-format off
-enum layer_names {
- _HOME,
- _FN2,
- _FN3,
- _FN4
-};
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[_HOME] = LAYOUT_all(
- KC_MPLY,
- QK_GESC, 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_ENT,
- SC_LSPO, 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, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), MO(2)
-),
-[_FN2] = LAYOUT_all(
- QK_BOOT,
- 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-[_FN3] = LAYOUT_all(
- EE_CLR,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-[_FN4] = LAYOUT_all(
- _______,
- _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MSTP, KC_INS, KC_HOME, KC_DEL, KC_END, _______,
- _______, _______, KC_BRID, KC_BRIU, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-};
-// clang-format on
-
-/*layer switcher */
-layer_state_t layer_state_set_user(layer_state_t state) {
-state = update_tri_layer_state(state, _FN2, _FN3, _FN4);
-return state;
-}
-/* rotary encoder (MX12) - add different functions for layers here */
-#ifdef ENCODER_ENABLE
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (IS_LAYER_ON(_FN4)) {
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- } else if (IS_LAYER_ON(_FN3)) {
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- } else if (IS_LAYER_ON(_FN2)) {
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- } else {
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- }
- return true;
-}
-#endif
-
-/* oled stuff :) */
-#ifdef OLED_ENABLE
-uint16_t startup_timer = 0;
-
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- startup_timer = timer_read();
- return rotation;
-}
-static void render_logo(void) {
- static const char PROGMEM raw_logo[] = {
- 0, 8, 0,192,194,192,192, 60, 60, 44, 60,188, 60, 60, 60, 60, 44, 61, 60,192,192,192,208, 1, 0,252,252,180,252, 60, 60, 44, 60,252,253,252,252, 60, 60, 44, 60,244,220,252,252, 0, 0, 16, 0, 0, 0,192,192, 65,192, 60, 60, 52, 60,192,193,192,192, 16, 0, 0,144, 4, 0,252,125,244, 60, 60, 60, 60, 61,252,252,244,252, 60, 60, 60, 61,248,108,252, 0, 0, 61, 60,188, 60, 52,252,252,220,252, 61, 60, 60, 52, 0, 0,192,210, 64,192, 60, 60, 44, 61, 60, 60, 60, 61, 52, 60, 60, 60,192,192, 64,196, 0, 4, 0,
- 0, 16, 0, 61, 63, 55, 63,192, 64,192,196,192,192,192,200,192,196,192,192, 3, 3, 2, 11, 0, 0, 35, 3, 3, 3, 0, 64, 2, 0,255,255,253,247, 0, 0, 0, 32, 1, 0, 1, 65, 8, 0,189,244,252,236, 3,130, 3, 1, 0, 68, 0, 0, 3, 34,131, 3,252,252,236,252, 0, 32, 17, 1, 1, 0, 0, 32, 0, 2,255,255,127,247, 0, 1, 0, 8, 1, 1, 1, 0, 0, 0, 16, 0, 64, 0,255,191,255,251, 0,129, 0, 2, 32, 0,255,255,239,255, 0, 0, 2, 0, 0, 0, 8, 64, 0, 1, 0, 0, 3, 35, 3, 3, 0, 8, 0,
- 1, 16, 0,192, 64,194,192, 3, 67, 3, 3, 9, 3, 3, 3, 3, 2, 83, 3,252,252,188,244, 0, 2, 32, 0, 0, 2, 0,144, 0, 0,255,255,237,255, 0, 16, 0, 0, 0, 64, 2, 0,128, 0,255,123,255,255, 60, 52, 60, 60, 60, 60, 60, 60, 44, 60, 56, 60,239,255,126,255, 0, 2, 32, 0, 0, 34, 0, 0, 16, 0,255,255,255,223, 0, 0, 4, 0, 0, 0, 33, 0, 0, 17, 0, 0, 0, 0,255,255,239,255, 0,128, 0, 0, 72, 0,255,253,247,255, 0, 0, 1, 0,144, 0, 4, 0, 32, 0, 0, 2,192,192,192,200, 0, 16, 0,
- 64, 4, 0, 3, 7, 3, 3, 60, 60, 52,188, 60, 61, 60, 60, 60, 60, 44, 60, 67, 3, 3, 3, 0, 0, 64, 0, 0, 4, 0, 0, 16, 0, 47, 63, 62, 63, 0, 0,132, 0, 0, 0, 0,128, 8, 0,255,255,111,127, 0, 0, 0, 2,128, 0, 0, 0, 64, 4, 0,128,127,127,107,127, 0, 32, 0, 0, 0, 66, 0, 0, 0,136, 55, 63, 61, 63, 0, 0, 0, 2, 0, 64, 0,136, 0, 0, 60, 44,189, 60, 63, 63, 63, 59, 60, 60,172, 60, 0, 64, 3, 2, 3,131, 60, 44, 60, 60, 60, 60,188, 60, 56, 44, 60, 60, 3, 3,131, 2, 0, 32, 2,
- };
- oled_write_raw_P(raw_logo, sizeof(raw_logo));
-}
-/* Shows the name of the current layer and locks for the host (CAPS etc.) */
-static void render_layer(void) {
- led_t led_state = host_keyboard_led_state();
- // clang-format off
- static const char PROGMEM logo[][3][7] = {
- {{0x97, 0x98, 0x99, 0x9A, 0}, {0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0}, {0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0}}, /* l num CB */
- {{0xB7, 0xB8, 0xB9, 0xBA, 0}, {0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0}, {0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0}}, /* 1 num CB */
- {{0xD7, 0xD8, 0xD9, 0xDA, 0}, {0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0}, {0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0}}, /* 1 cap CB */
- {{0xF7, 0xF8, 0xF9, 0xFA, 0}, {0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0}, {0xFB, 0xFC, 0xFD, 0xFE, 0xFF, 0}}, /* l cap CB */
- {{0xB7, 0xC0, 0xC1, 0xBA, 0}, {0xB7, 0xC2, 0xC3, 0xBA, 0}, {0xB7, 0xC4, 0xC5, 0xBA, 0}}, /* 2 3 4 */
- {{0xD7, 0xE0, 0xE1, 0xDA, 0}, {0xD7, 0xE2, 0xE3, 0xDA, 0}, {0xD7, 0xE4, 0xE5, 0xDA, 0}}, /* 2 3 4 */
- };
- // clang-format on
- oled_set_cursor(0, 0);
- oled_write_P(logo[0][0], false);
- oled_set_cursor(0, 3);
- oled_write_P(logo[3][0], false);
- switch (get_highest_layer(layer_state)) {
- case _HOME:
- oled_set_cursor(0, 1);
- oled_write_P(logo[1][0], false);
- oled_set_cursor(0, 2);
- oled_write_P(logo[2][0], false);
- break;
- case _FN2:
- oled_set_cursor(0, 1);
- oled_write_P(logo[4][0], false);
- oled_set_cursor(0, 2);
- oled_write_P(logo[5][0], false);
- break;
- case _FN3:
- oled_set_cursor(0, 1);
- oled_write_P(logo[4][1], false);
- oled_set_cursor(0, 2);
- oled_write_P(logo[5][1], false);
- break;
- case _FN4:
- oled_set_cursor(0, 1);
- oled_write_P(logo[4][2], false);
- oled_set_cursor(0, 2);
- oled_write_P(logo[5][2], false);
- break;
- default:
- oled_set_cursor(0, 1);
- oled_write_P(PSTR(" "), false);
- oled_set_cursor(0, 2);
- oled_write_P(PSTR(" "), false);
- }
- oled_set_cursor(8, 0);
- oled_write_P(led_state.num_lock ? logo[0][1] : PSTR(" "), false);
- oled_set_cursor(8, 1);
- oled_write_P(led_state.num_lock ? logo[1][1] : PSTR(" "), false);
- oled_set_cursor(8, 2);
- oled_write_P(led_state.caps_lock ? logo[2][1] : PSTR(" "), false);
- oled_set_cursor(8, 3);
- oled_write_P(led_state.caps_lock ? logo[3][1] : PSTR(" "), false);
-
- oled_set_cursor(16, 0);
- oled_write_P(logo[0][2], false);
- oled_set_cursor(16, 1);
- oled_write_P(logo[1][2], false);
- oled_set_cursor(16, 2);
- oled_write_P(logo[2][2], false);
- oled_set_cursor(16, 3);
- oled_write_P(logo[3][2], false);
-}
-
-bool oled_task_user(void) {
- static bool finished_timer = false;
- if (!finished_timer && (timer_elapsed(startup_timer) < 3000)) {
- render_logo();
- } else {
- if (!finished_timer) {
- oled_clear();
- finished_timer = true;
- }
- render_layer();
- }
- return false;
-}
-#endif
-
-/* Resets via on eep reset - thank you drashna! */
-void eeconfig_init_kb(void) {
- via_eeprom_set_valid(false);
- via_init();
- eeconfig_init_user();
-}
diff --git a/keyboards/0xcb/static/keymaps/via/rules.mk b/keyboards/0xcb/static/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/0xcb/static/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/0xcb/tutelpad/keymaps/via/keymap.c b/keyboards/0xcb/tutelpad/keymaps/via/keymap.c
deleted file mode 100644
index c617fce75ec..00000000000
--- a/keyboards/0xcb/tutelpad/keymaps/via/keymap.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2022 ItsFiremanSam
- *
- * 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] = {
- /* Base */
- [0] = LAYOUT(
- KC_1, KC_2, KC_3, KC_4,
- KC_5, LT(1, KC_6), LT(1, KC_7), LT(1, KC_8)
- ),
-
- [1] = LAYOUT(
- _______, _______, _______, _______,
- _______, _______, _______, _______
- ),
-
- [2] = LAYOUT(
- _______, _______, _______, _______,
- _______, _______, _______, _______
- ),
-
- [3] = LAYOUT(
- _______, _______, _______, _______,
- _______, _______, _______, _______
- ),
-};
\ No newline at end of file
diff --git a/keyboards/0xcb/tutelpad/keymaps/via/rules.mk b/keyboards/0xcb/tutelpad/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3e..00000000000
--- a/keyboards/0xcb/tutelpad/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/10bleoledhub/keymaps/default/keymap.c b/keyboards/10bleoledhub/keymaps/default/keymap.c
index baeba010262..0f905bd79ae 100644
--- a/keyboards/10bleoledhub/keymaps/default/keymap.c
+++ b/keyboards/10bleoledhub/keymaps/default/keymap.c
@@ -27,11 +27,11 @@ along with this program. If not, see .*/
* .-------.
* |NUMLOCK|
* |-----------------------.
- * |RGB_TOG|RGB_MOD|RGB_M_K|
+ * |UG_TOGG|UG_NEXT|RGB_M_K|
* |-------|-------|-------|
- * |RGB_SAI|RGB_SAD|RGB_HUI|
+ * |UG_SATU|UG_SATD|UG_HUEU|
* |-------|-------|-------|
- * |RGB_VAI|RGB_VAD|RGB_SPI|
+ * |UG_VALU|UG_VALD|UG_SPDU|
* .-----------------------.
*/
@@ -44,9 +44,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_P1, KC_P2, KC_P3),
[1] = LAYOUT(
KC_NUM,
- RGB_TOG, RGB_MOD, RGB_M_K,
- RGB_SAI, RGB_SAD, RGB_HUI,
- RGB_VAI, RGB_VAD, RGB_SPI),
+ UG_TOGG, UG_NEXT, RGB_M_K,
+ UG_SATU, UG_SATD, UG_HUEU,
+ UG_VALU, UG_VALD, UG_SPDU),
};
static void render_logo(void) {
diff --git a/keyboards/10bleoledhub/keymaps/via/keymap.c b/keyboards/10bleoledhub/keymaps/via/keymap.c
deleted file mode 100644
index 09c53df5bd8..00000000000
--- a/keyboards/10bleoledhub/keymaps/via/keymap.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
-Copyright 2020 haierwangwei2005
-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 .*/
-/* Keymap _0: (Base Layer) Default Layer
-
- * .-----.
- * |PGUP |
- * |-----------------.
- * | 7 | 8 | 9 |
- * |-----|-----|-----|
- * | 4 | 5 | 6 |
- * |-----|-----|-----|
- * | 1 | 2 | 3 |
- * .-----------------.
- */
- /* Keymap _1: (Second Layer) second Layer
-
- * .-------.
- * |NUMLOCK|
- * |-----------------------.
- * |RGB_TOG|RGB_MOD|RGB_M_K|
- * |-------|-------|-------|
- * |RGB_SAI|RGB_SAD|RGB_HUI|
- * |-------|-------|-------|
- * |RGB_VAI|RGB_VAD|RGB_SPI|
- * .-----------------------.
-*/
-
-#include QMK_KEYBOARD_H
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(
- KC_PGUP,
- KC_KP_7, KC_KP_8, MO(1),
- KC_P4, KC_P5, KC_P6,
- KC_P1, KC_P2, KC_P3),
- [1] = LAYOUT(
- KC_NUM,
- RGB_TOG, RGB_MOD, RGB_M_K,
- RGB_SAI, RGB_SAD, RGB_HUI,
- RGB_VAI, RGB_VAD, RGB_SPI),
-};
-
-static void render_logo(void) {
- static const char PROGMEM qmk_logo[] = {0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0};
- oled_write_P(qmk_logo, false);
-}
-
-#ifdef OLED_ENABLE
-bool oled_task_user(void) {
- render_logo();
- return false;
-}
-#endif
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (index == 0) { /* First encoder */
- if (clockwise) {
- tap_code(KC_PGDN);
- } else {
- tap_code(KC_PGUP);
- }
- }
- return true;
-}
-
-
-void matrix_init_user(void) { render_logo(); }
diff --git a/keyboards/10bleoledhub/keymaps/via/rules.mk b/keyboards/10bleoledhub/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc9..00000000000
--- a/keyboards/10bleoledhub/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/1k/config.h b/keyboards/1k/config.h
index 0d0cd3712a7..fcd7fe6f94b 100644
--- a/keyboards/1k/config.h
+++ b/keyboards/1k/config.h
@@ -32,3 +32,5 @@
#define USB_INTR_ENABLE_BIT PCIE
#define USB_INTR_PENDING_BIT PCIF
#define USB_INTR_VECTOR SIG_PIN_CHANGE
+
+#define WS2812_LED_COUNT 1
diff --git a/keyboards/1k/keymaps/default/keymap.c b/keyboards/1k/keymaps/default/keymap.c
index 3261a9f922c..11c5db9dd60 100644
--- a/keyboards/1k/keymaps/default/keymap.c
+++ b/keyboards/1k/keymaps/default/keymap.c
@@ -6,13 +6,13 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_ortho_1x1(
- RGB_HUI
+ UG_HUEU
)
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
switch (keycode) {
- case RGB_HUI:
+ case QK_UNDERGLOW_HUE_UP:
rgblite_increase_hue();
break;
}
diff --git a/keyboards/1k/keymaps/default/rgblite.h b/keyboards/1k/keymaps/default/rgblite.h
index 2e0b898699c..217ab37956b 100644
--- a/keyboards/1k/keymaps/default/rgblite.h
+++ b/keyboards/1k/keymaps/default/rgblite.h
@@ -10,15 +10,15 @@ static inline void rgblite_init(void) {
ws2812_init();
}
-static inline void rgblite_setrgb(RGB rgb) {
- rgb_led_t leds[RGBLIGHT_LED_COUNT] = {{.r = rgb.r, .g = rgb.g, .b = rgb.b}};
- ws2812_setleds(leds, RGBLIGHT_LED_COUNT);
+static inline void rgblite_setrgb(rgb_t rgb) {
+ ws2812_set_color_all(rgb.r, rgb.g, rgb.b);
+ ws2812_flush();
}
static void rgblite_increase_hue(void) {
static uint8_t state = 0;
- HSV hsv = { 255, 255, 255 };
+ hsv_t hsv = { 255, 255, 255 };
hsv.h = state;
state = (state + 8) % 256;
diff --git a/keyboards/1upkeyboards/1up60hse/keymaps/default/keymap.c b/keyboards/1upkeyboards/1up60hse/keymaps/default/keymap.c
index c5db49007dd..0dfc8fab4e8 100644
--- a/keyboards/1upkeyboards/1up60hse/keymaps/default/keymap.c
+++ b/keyboards/1upkeyboards/1up60hse/keymaps/default/keymap.c
@@ -75,8 +75,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[2] = LAYOUT_60_ansi(
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, QK_BOOT,
BL_TOGG, BL_UP, BL_DOWN,BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS,
+ UG_TOGG, UG_NEXT, UG_HUEU, UG_SATU, UG_VALU, UG_SPDU, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, UG_PREV, UG_HUED, UG_SATD, UG_VALD, UG_SPDD, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
};
diff --git a/keyboards/1upkeyboards/1up60hse/keymaps/via/keymap.c b/keyboards/1upkeyboards/1up60hse/keymaps/via/keymap.c
deleted file mode 100644
index 001319637bd..00000000000
--- a/keyboards/1upkeyboards/1up60hse/keymaps/via/keymap.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/* Copyright 2018 MechMerlin
- * Copyright 2018 Logan Huskins
- *
- * 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] = {
- /* Qwerty
- * ,-----------------------------------------------------------------------------------------.
- * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace |
- * |-----------------------------------------------------------------------------------------+
- * | 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 | Space | Alt | GUI | L1 | Ctrl |
- * `-----------------------------------------------------------------------------------------'
- */
- [0] = 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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL
- ),
-
- /* Function
- * ,-----------------------------------------------------------------------------------------.
- * | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Del |
- * |-----------------------------------------------------------------------------------------+
- * | | | Up | | | | | | | |PrtSc|ScrLk|Pause| |
- * |-----------------------------------------------------------------------------------------+
- * | |Left |Down |Right| | | | | | Ins |Home |PgUp | |
- * |-----------------------------------------------------------------------------------------+
- * | |VolUp|VolDn|VolMu| | | | | | End |PgDn | |
- * |-----------------------------------------------------------------------------------------+
- * | | | | | | L2 | | |
- * `-----------------------------------------------------------------------------------------'
- */
- [1] = 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_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS,
- KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS
- ),
-
- /* RGB
- * ,-----------------------------------------------------------------------------------------.
- * | | | | | | | | | | | | | | Reset |
- * |-----------------------------------------------------------------------------------------+
- * | BL Tog |BLInc|BLDec|BLStp| | | | | | | | | | |
- * |-----------------------------------------------------------------------------------------+
- * | RGB Tog |Mode |Hue I|Sat I|Val I|Spd I|Plain|Breat|Rnbow|Swirl| | | |
- * |-----------------------------------------------------------------------------------------+
- * | |RMode|Hue D|Sat D|Val D|Spd D|Snake|Knigh|Xmas |Gradi| | |
- * |-----------------------------------------------------------------------------------------+
- * | | | | | | | | |
- * `-----------------------------------------------------------------------------------------'
- */
- [2] = LAYOUT_60_ansi(
- 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, QK_BOOT,
- BL_TOGG, BL_UP, BL_DOWN,BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [3] = LAYOUT_60_ansi(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
-};
diff --git a/keyboards/1upkeyboards/1up60hse/keymaps/via/rules.mk b/keyboards/1upkeyboards/1up60hse/keymaps/via/rules.mk
deleted file mode 100644
index 44a2bc49cc5..00000000000
--- a/keyboards/1upkeyboards/1up60hse/keymaps/via/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
-
-CONSOLE_ENABLE = no
diff --git a/keyboards/1upkeyboards/1up60hte/keyboard.json b/keyboards/1upkeyboards/1up60hte/keyboard.json
index 53e91017ddc..7f8a660d80f 100644
--- a/keyboards/1upkeyboards/1up60hte/keyboard.json
+++ b/keyboards/1upkeyboards/1up60hte/keyboard.json
@@ -62,11 +62,15 @@
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"layout_aliases": {
- "LAYOUT_tsangan": "LAYOUT_60_tsangan_hhkb"
+ "LAYOUT_tsangan": "LAYOUT_60_ansi_tsangan_split_bs_rshift",
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
- "community_layouts": ["60_hhkb", "60_tsangan_hhkb"],
+ "community_layouts": [
+ "60_hhkb",
+ "60_ansi_tsangan_split_bs_rshift"
+ ],
"layouts": {
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
diff --git a/keyboards/1upkeyboards/1up60hte/keymaps/default/keymap.c b/keyboards/1upkeyboards/1up60hte/keymaps/default/keymap.c
index 9d46809b2b3..bc21fb2c4ae 100644
--- a/keyboards/1upkeyboards/1up60hte/keymaps/default/keymap.c
+++ b/keyboards/1upkeyboards/1up60hte/keymaps/default/keymap.c
@@ -17,7 +17,7 @@ along with this program. If not, see .
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_60_tsangan_hhkb(
+ [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
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_GRV,
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_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_ENT,
@@ -25,11 +25,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL
),
- [1] = LAYOUT_60_tsangan_hhkb(
+ [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
QK_BOOT, 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_CAPS, BL_TOGG, BL_DOWN, BL_UP, BL_STEP, _______, _______, _______, _______, KC_SCRL, KC_PAUS, KC_UP, _______, KC_CLR,
- _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, RGB_VAD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
- _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, KC_END, KC_PGDN, KC_DOWN, _______, _______,
+ _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, UG_VALD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
+ _______, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, KC_END, KC_PGDN, KC_DOWN, _______, _______,
_______, _______, _______, _______, _______, _______, _______
)
};
diff --git a/keyboards/1upkeyboards/1up60hte/keymaps/hhkb/keymap.c b/keyboards/1upkeyboards/1up60hte/keymaps/hhkb/keymap.c
index b1b5d06f5a5..7ffbec6813b 100644
--- a/keyboards/1upkeyboards/1up60hte/keymaps/hhkb/keymap.c
+++ b/keyboards/1upkeyboards/1up60hte/keymaps/hhkb/keymap.c
@@ -28,8 +28,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[1] = LAYOUT_60_hhkb(
QK_BOOT, 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_CAPS, BL_TOGG, BL_DOWN, BL_UP, BL_STEP, _______, _______, _______, _______, KC_SCRL, KC_PAUS, KC_UP, _______, KC_CLR,
- _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, RGB_VAD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
- _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, KC_END, KC_PGDN, KC_DOWN, _______, _______,
+ _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, UG_VALD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
+ _______, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, KC_END, KC_PGDN, KC_DOWN, _______, _______,
_______, _______, _______, _______, _______
)
};
diff --git a/keyboards/1upkeyboards/1up60hte/keymaps/via/keymap.c b/keyboards/1upkeyboards/1up60hte/keymaps/via/keymap.c
deleted file mode 100644
index 7f9a3d26c7d..00000000000
--- a/keyboards/1upkeyboards/1up60hte/keymaps/via/keymap.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
-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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_60_tsangan_hhkb(
- 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_GRV,
- 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_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_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
- ),
-
- [1] = LAYOUT_60_tsangan_hhkb(
- QK_BOOT, 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_CAPS, BL_TOGG, BL_DOWN, BL_UP, BL_STEP, _______, _______, _______, _______, KC_SCRL, KC_PAUS, KC_UP, _______, KC_CLR,
- _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, RGB_VAD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
- _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, KC_END, KC_PGDN, KC_DOWN, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
- ),
-
- [2] = LAYOUT_60_tsangan_hhkb(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
- ),
-
- [3] = LAYOUT_60_tsangan_hhkb(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
- ),
-};
diff --git a/keyboards/1upkeyboards/1up60hte/keymaps/via/rules.mk b/keyboards/1upkeyboards/1up60hte/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/1upkeyboards/1up60hte/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/1upkeyboards/1up60rgb/keymaps/tsangan/keymap.c b/keyboards/1upkeyboards/1up60rgb/keymaps/tsangan/keymap.c
index a634d913b2c..689d699265f 100644
--- a/keyboards/1upkeyboards/1up60rgb/keymaps/tsangan/keymap.c
+++ b/keyboards/1upkeyboards/1up60rgb/keymaps/tsangan/keymap.c
@@ -13,7 +13,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
QK_BOOT, 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, BL_TOGG, BL_DOWN,BL_UP, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_UP, 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_LEFT, KC_RGHT, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_DOWN, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, KC_TRNS, KC_DOWN, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
};
diff --git a/keyboards/1upkeyboards/1up60rgb/keymaps/via/keymap.c b/keyboards/1upkeyboards/1up60rgb/keymaps/via/keymap.c
deleted file mode 100644
index 28fb50f5747..00000000000
--- a/keyboards/1upkeyboards/1up60rgb/keymaps/via/keymap.c
+++ /dev/null
@@ -1,34 +0,0 @@
-#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_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_ENT,
- KC_LSFT, 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_RSFT,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL),
-
- [1] = LAYOUT_all(
- QK_BOOT, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
- [2] = LAYOUT_all(
- 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,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
- [3] = LAYOUT_all(
- 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,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
-
-};
-
diff --git a/keyboards/1upkeyboards/1up60rgb/keymaps/via/rules.mk b/keyboards/1upkeyboards/1up60rgb/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc9..00000000000
--- a/keyboards/1upkeyboards/1up60rgb/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/1upkeyboards/1upocarina/keymaps/default/keymap.c b/keyboards/1upkeyboards/1upocarina/keymaps/default/keymap.c
index 86e3f440fee..ff93f51ee4f 100644
--- a/keyboards/1upkeyboards/1upocarina/keymaps/default/keymap.c
+++ b/keyboards/1upkeyboards/1upocarina/keymaps/default/keymap.c
@@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[1] = LAYOUT_1x5(
- RGB_TOG, RGB_MOD, KC_TRNS, RGB_VAD, RGB_VAI
+ RM_TOGG, RM_NEXT, KC_TRNS, RM_VALD, RM_VALU
)
};
diff --git a/keyboards/1upkeyboards/1upocarina/keymaps/via/keymap.c b/keyboards/1upkeyboards/1upocarina/keymaps/via/keymap.c
deleted file mode 100644
index 86e3f440fee..00000000000
--- a/keyboards/1upkeyboards/1upocarina/keymaps/via/keymap.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright 2023 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_1x5(
- KC_Z, KC_X, LT(1, KC_ESC), KC_C, KC_V
- ),
-
- [1] = LAYOUT_1x5(
- RGB_TOG, RGB_MOD, KC_TRNS, RGB_VAD, RGB_VAI
- )
-};
-
-#if defined(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_TRNS, KC_TRNS)}
-};
-#endif
diff --git a/keyboards/1upkeyboards/1upocarina/keymaps/via/rules.mk b/keyboards/1upkeyboards/1upocarina/keymaps/via/rules.mk
deleted file mode 100644
index bf70b1f3e09..00000000000
--- a/keyboards/1upkeyboards/1upocarina/keymaps/via/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
-
-ENCODER_MAP_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/1upkeyboards/1upslider8/1upslider8.c b/keyboards/1upkeyboards/1upslider8/1upslider8.c
index e6d6698ee9b..2d69c64c0ad 100644
--- a/keyboards/1upkeyboards/1upslider8/1upslider8.c
+++ b/keyboards/1upkeyboards/1upslider8/1upslider8.c
@@ -33,7 +33,6 @@ void slider(void) {
void housekeeping_task_kb(void) {
slider();
- housekeeping_task_user();
}
static uint32_t oled_logo_timer = 0;
diff --git a/keyboards/1upkeyboards/1upslider8/keymaps/default/keymap.c b/keyboards/1upkeyboards/1upslider8/keymaps/default/keymap.c
index 9e39f9d3e38..2f0ac1976e9 100644
--- a/keyboards/1upkeyboards/1upslider8/keymaps/default/keymap.c
+++ b/keyboards/1upkeyboards/1upslider8/keymaps/default/keymap.c
@@ -18,7 +18,7 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
- RGB_TOG,
+ RM_TOGG,
KC_1, KC_2, KC_3, KC_4,
KC_5, KC_6, KC_7, KC_8
)
@@ -26,6 +26,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [0] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD)}
+ [0] = { ENCODER_CCW_CW(RM_PREV, RM_NEXT)}
};
#endif
diff --git a/keyboards/1upkeyboards/1upslider8/keymaps/via/keymap.c b/keyboards/1upkeyboards/1upslider8/keymaps/via/keymap.c
deleted file mode 100644
index 4178e7de58d..00000000000
--- a/keyboards/1upkeyboards/1upslider8/keymaps/via/keymap.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright 2023 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(
- RGB_TOG,
- KC_1, KC_2, KC_3, KC_4,
- KC_5, KC_6, KC_7, KC_8
- )
-};
-
-#if defined(ENCODER_MAP_ENABLE)
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [0] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD)}
-};
-#endif
diff --git a/keyboards/1upkeyboards/1upslider8/keymaps/via/rules.mk b/keyboards/1upkeyboards/1upslider8/keymaps/via/rules.mk
deleted file mode 100644
index 15a5eaf11a1..00000000000
--- a/keyboards/1upkeyboards/1upslider8/keymaps/via/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-VIA_ENABLE = yes
-
-ENCODER_MAP_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/1upkeyboards/1upsuper16v3/keymaps/default/keymap.c b/keyboards/1upkeyboards/1upsuper16v3/keymaps/default/keymap.c
index e7be96bd813..79c99fd7db4 100644
--- a/keyboards/1upkeyboards/1upsuper16v3/keymaps/default/keymap.c
+++ b/keyboards/1upkeyboards/1upsuper16v3/keymaps/default/keymap.c
@@ -24,9 +24,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
MO(1), KC_P0, KC_PDOT, KC_PENT
),
[1] = LAYOUT_ortho_4x4(
- RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI,
- RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD,
- RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS,
+ 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
)
};
diff --git a/keyboards/1upkeyboards/1upsuper16v3/keymaps/via/keymap.c b/keyboards/1upkeyboards/1upsuper16v3/keymaps/via/keymap.c
deleted file mode 100644
index e7be96bd813..00000000000
--- a/keyboards/1upkeyboards/1upsuper16v3/keymaps/via/keymap.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2023 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(
- RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI,
- RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD,
- RGB_SPD, RGB_SPI, 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(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
- [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
-};
-#endif
diff --git a/keyboards/1upkeyboards/1upsuper16v3/keymaps/via/rules.mk b/keyboards/1upkeyboards/1upsuper16v3/keymaps/via/rules.mk
deleted file mode 100644
index bf70b1f3e09..00000000000
--- a/keyboards/1upkeyboards/1upsuper16v3/keymaps/via/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
-
-ENCODER_MAP_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/1upkeyboards/pi40/keymaps/default/keymap.c b/keyboards/1upkeyboards/pi40/keymaps/default/keymap.c
index bc0d37eca05..72445452bc1 100644
--- a/keyboards/1upkeyboards/pi40/keymaps/default/keymap.c
+++ b/keyboards/1upkeyboards/pi40/keymaps/default/keymap.c
@@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-----------------------------------------------------------------------------------'
*/
[_ONE] = LAYOUT_ortho_4x12 (
- RGB_TOG,
+ RM_TOGG,
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_ESC, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
@@ -107,7 +107,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
[_FOUR] = LAYOUT_ortho_4x12 (
KC_MUTE,
- _______, QK_BOOT, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL ,
+ _______, QK_BOOT, _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, KC_DEL ,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
@@ -116,7 +116,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [_ONE] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) },
+ [_ONE] = { ENCODER_CCW_CW(RM_PREV, RM_NEXT) },
[_TWO] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_THREE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_FOUR] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }
diff --git a/keyboards/1upkeyboards/pi40/keymaps/via/keymap.c b/keyboards/1upkeyboards/pi40/keymaps/via/keymap.c
deleted file mode 100644
index e8a14d493f1..00000000000
--- a/keyboards/1upkeyboards/pi40/keymaps/via/keymap.c
+++ /dev/null
@@ -1,268 +0,0 @@
-/* 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
-
-enum layer_names {
- _ONE = 0,
- _TWO,
- _THREE,
- _FOUR,
- _FIVE,
- _SIX,
- _SEVEN,
- _EIGHT,
- _NINE,
- _TEN
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* Qwerty
- * ╱⎺⎺⎺⎺╲
- * |RGBTOG|
- * ╲⎽⎽⎽⎽╱
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | A | S | D | F | G | H | J | K | L | ; | ' |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * |Adjust| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
- [_ONE] = LAYOUT_ortho_4x12 (
- RGB_TOG,
- 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_ESC, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
- MO(3), KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
- ),
-
- /* Lower
- * ╱⎺⎺⎺⎺╲
- * | MUTE |
- * ╲⎽⎽⎽⎽╱
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
- [_TWO] = LAYOUT_ortho_4x12 (
- KC_MUTE,
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
- ),
-
- /* Raise
- * ╱⎺⎺⎺⎺╲
- * | MUTE |
- * ╲⎽⎽⎽⎽╱
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | Mute | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
- [_THREE] = LAYOUT_ortho_4x12 (
- KC_MUTE,
- KC_GRV, 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
- ),
-
- /* Adjust (Lower + Raise)
- * ╱⎺⎺⎺⎺╲
- * | MUTE |
- * v-----------------------RGB CONTROL------------------v ╲⎽⎽⎽⎽╱
- * ,-----------------------------------------------------------------------------------.
- * | | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | Mute | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
- [_FOUR] = LAYOUT_ortho_4x12 (
- KC_MUTE,
- _______, QK_BOOT, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL ,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- /* Placeholder
- * ╱⎺⎺⎺⎺╲
- * | |
- * ╲⎽⎽⎽⎽╱
- * ,-----------------------------------------------------------------------------------.
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
- [_FIVE] = LAYOUT_ortho_4x12 (
- _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- /* Placeholder
- * ╱⎺⎺⎺⎺╲
- * | |
- * ╲⎽⎽⎽⎽╱
- * ,-----------------------------------------------------------------------------------.
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
- [_SIX] = LAYOUT_ortho_4x12 (
- _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- /* Placeholder
- * ╱⎺⎺⎺⎺╲
- * | |
- * ╲⎽⎽⎽⎽╱
- * ,-----------------------------------------------------------------------------------.
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
- [_SEVEN] = LAYOUT_ortho_4x12 (
- _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- /* Placeholder
- * ╱⎺⎺⎺⎺╲
- * | |
- * ╲⎽⎽⎽⎽╱
- * ,-----------------------------------------------------------------------------------.
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
- [_EIGHT] = LAYOUT_ortho_4x12 (
- _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- /* Placeholder
- * ╱⎺⎺⎺⎺╲
- * | |
- * ╲⎽⎽⎽⎽╱
- * ,-----------------------------------------------------------------------------------.
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
- [_NINE] = LAYOUT_ortho_4x12 (
- _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- /* Placeholder
- * ╱⎺⎺⎺⎺╲
- * | |
- * ╲⎽⎽⎽⎽╱
- * ,-----------------------------------------------------------------------------------.
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
- [_TEN] = LAYOUT_ortho_4x12 (
- _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
-
-#if defined(ENCODER_MAP_ENABLE)
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [_ONE] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) },
- [_TWO] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
- [_THREE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
- [_FOUR] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
- [_FIVE] = { ENCODER_CCW_CW(_______, _______) },
- [_SIX] = { ENCODER_CCW_CW(_______, _______) },
- [_SEVEN] = { ENCODER_CCW_CW(_______, _______) },
- [_EIGHT] = { ENCODER_CCW_CW(_______, _______) },
- [_NINE] = { ENCODER_CCW_CW(_______, _______) },
- [_TEN] = { ENCODER_CCW_CW(_______, _______) },
-};
-#endif
diff --git a/keyboards/1upkeyboards/pi40/keymaps/via/rules.mk b/keyboards/1upkeyboards/pi40/keymaps/via/rules.mk
deleted file mode 100644
index bf70b1f3e09..00000000000
--- a/keyboards/1upkeyboards/pi40/keymaps/via/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
-
-ENCODER_MAP_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/1upkeyboards/pi40/rules.mk b/keyboards/1upkeyboards/pi40/rules.mk
deleted file mode 100644
index 48aea570e01..00000000000
--- a/keyboards/1upkeyboards/pi40/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DEFAULT_FOLDER = 1upkeyboards/pi40/mit_v1_0
diff --git a/keyboards/1upkeyboards/pi50/keymaps/default/keymap.c b/keyboards/1upkeyboards/pi50/keymaps/default/keymap.c
index bd66c00bff8..40b3c520e0b 100644
--- a/keyboards/1upkeyboards/pi50/keymaps/default/keymap.c
+++ b/keyboards/1upkeyboards/pi50/keymaps/default/keymap.c
@@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-----------------------------------------------------------------------------------'
*/
[_ONE] = LAYOUT_ortho_5x12 (
- RGB_TOG,
+ RM_TOGG,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_DEL,
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
@@ -128,7 +128,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [_ONE] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) },
+ [_ONE] = { ENCODER_CCW_CW(RM_PREV, RM_NEXT) },
[_TWO] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_THREE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_FOUR] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }
diff --git a/keyboards/1upkeyboards/pi50/keymaps/via/keymap.c b/keyboards/1upkeyboards/pi50/keymaps/via/keymap.c
deleted file mode 100644
index b800a9a68b8..00000000000
--- a/keyboards/1upkeyboards/pi50/keymaps/via/keymap.c
+++ /dev/null
@@ -1,286 +0,0 @@
-/* Copyright 2023 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
-
-enum layer_names {
- _ONE = 0,
- _TWO,
- _THREE,
- _FOUR,
- _FIVE,
- _SIX,
- _SEVEN,
- _EIGHT,
- _NINE,
- _TEN
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* Qwerty
- * ╱⎺⎺⎺⎺╲
- * |RGBTOG|
- * ╲⎽⎽⎽⎽╱
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * |Adjust| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
- [_ONE] = LAYOUT_ortho_5x12 (
- RGB_TOG,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_DEL,
- KC_ESC, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
- MO(3), KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
- ),
-
- /* Lower
- * ╱⎺⎺⎺⎺╲
- * | MUTE |
- * ╲⎽⎽⎽⎽╱
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
- [_TWO] = LAYOUT_ortho_5x12 (
- KC_MUTE,
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
- ),
-
- /* Raise
- * ╱⎺⎺⎺⎺╲
- * | MUTE |
- * ╲⎽⎽⎽⎽╱
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | Pg Up| Pg Dn| |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
- [_THREE] = LAYOUT_ortho_5x12 (
- KC_MUTE,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
- ),
-
- /* Adjust (Lower + Raise)
- * ╱⎺⎺⎺⎺╲
- * | MUTE |
- * v-----------------------RGB CONTROL------------------v ╲⎽⎽⎽⎽╱
- * ,-----------------------------------------------------------------------------------.
- * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | Reset| Debug| | | | | | | | | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | |Aud cy|Aud on|AudOff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
- [_FOUR] = LAYOUT_ortho_5x12 (
- KC_MUTE,
- 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, DB_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
- _______, _______, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______,
- _______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- /* Placeholder
- * ╱⎺⎺⎺⎺╲
- * | |
- * ╲⎽⎽⎽⎽╱
- * ,-----------------------------------------------------------------------------------.
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
- [_FIVE] = LAYOUT_ortho_5x12 (
- _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- /* Placeholder
- * ╱⎺⎺⎺⎺╲
- * | |
- * ╲⎽⎽⎽⎽╱
- * ,-----------------------------------------------------------------------------------.
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
- [_SIX] = LAYOUT_ortho_5x12 (
- _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- /* Placeholder
- * ╱⎺⎺⎺⎺╲
- * | |
- * ╲⎽⎽⎽⎽╱
- * ,-----------------------------------------------------------------------------------.
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
- [_SEVEN] = LAYOUT_ortho_5x12 (
- _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- /* Placeholder
- * ╱⎺⎺⎺⎺╲
- * | |
- * ╲⎽⎽⎽⎽╱
- * ,-----------------------------------------------------------------------------------.
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
- [_EIGHT] = LAYOUT_ortho_5x12 (
- _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- /* Placeholder
- * ╱⎺⎺⎺⎺╲
- * | |
- * ╲⎽⎽⎽⎽╱
- * ,-----------------------------------------------------------------------------------.
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
- [_NINE] = LAYOUT_ortho_5x12 (
- _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- /* Placeholder
- * ╱⎺⎺⎺⎺╲
- * | |
- * ╲⎽⎽⎽⎽╱
- * ,-----------------------------------------------------------------------------------.
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
- [_TEN] = LAYOUT_ortho_5x12 (
- _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
-
-#if defined(ENCODER_MAP_ENABLE)
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [_ONE] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) },
- [_TWO] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
- [_THREE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
- [_FOUR] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
- [_FIVE] = { ENCODER_CCW_CW(_______, _______) },
- [_SIX] = { ENCODER_CCW_CW(_______, _______) },
- [_SEVEN] = { ENCODER_CCW_CW(_______, _______) },
- [_EIGHT] = { ENCODER_CCW_CW(_______, _______) },
- [_NINE] = { ENCODER_CCW_CW(_______, _______) },
- [_TEN] = { ENCODER_CCW_CW(_______, _______) },
-};
-#endif
diff --git a/keyboards/1upkeyboards/pi50/keymaps/via/rules.mk b/keyboards/1upkeyboards/pi50/keymaps/via/rules.mk
deleted file mode 100644
index bf70b1f3e09..00000000000
--- a/keyboards/1upkeyboards/pi50/keymaps/via/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
-
-ENCODER_MAP_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/1upkeyboards/pi50/rules.mk b/keyboards/1upkeyboards/pi50/rules.mk
deleted file mode 100644
index a9660074af5..00000000000
--- a/keyboards/1upkeyboards/pi50/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DEFAULT_FOLDER = 1upkeyboards/pi50/grid
diff --git a/keyboards/1upkeyboards/pi60/keyboard.json b/keyboards/1upkeyboards/pi60/keyboard.json
index 45c3876a6b6..ca3007ee76d 100644
--- a/keyboards/1upkeyboards/pi60/keyboard.json
+++ b/keyboards/1upkeyboards/pi60/keyboard.json
@@ -104,15 +104,20 @@
},
"community_layouts": [
"60_ansi",
+ "60_ansi_arrow",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
- "60_tsangan_hhkb",
+ "60_ansi_tsangan_split_bs_rshift",
"60_hhkb",
- "60_ansi_arrow",
"60_iso",
+ "60_iso_arrow",
"60_iso_split_bs_rshift",
- "60_iso_tsangan"
+ "60_iso_tsangan",
+ "60_iso_tsangan_split_bs_rshift"
],
+ "layout_aliases": {
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
@@ -394,7 +399,7 @@
{"label": "RCtrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}
]
},
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
diff --git a/keyboards/1upkeyboards/pi60/keymaps/default/keymap.c b/keyboards/1upkeyboards/pi60/keymaps/default/keymap.c
index 8a83e83b529..5d1c82a0233 100644
--- a/keyboards/1upkeyboards/pi60/keymaps/default/keymap.c
+++ b/keyboards/1upkeyboards/pi60/keymaps/default/keymap.c
@@ -37,8 +37,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[2] = LAYOUT_all(
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,
- RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, RGB_M_SN,RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, KC_TRNS,
+ RM_TOGG, RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, RM_PREV, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, RGB_M_SN,RGB_M_K, RGB_M_X, RGB_M_G, 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/1upkeyboards/pi60/keymaps/via/keymap.c b/keyboards/1upkeyboards/pi60/keymaps/via/keymap.c
deleted file mode 100644
index e9af7a7138b..00000000000
--- a/keyboards/1upkeyboards/pi60/keymaps/via/keymap.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/* 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_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_BSPC, KC_GRV,
- 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_TRNS, KC_ENT,
- KC_LSFT, KC_TRNS, 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_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_TRNS, KC_APP, KC_RCTL
- ),
-
- [1] = LAYOUT_all(
- 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_TRNS,
- KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, 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
- ),
-
- [2] = LAYOUT_all(
- 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,
- RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, RGB_M_SN,RGB_M_K, RGB_M_X, RGB_M_G, 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
- ),
-
- [3] = LAYOUT_all(
- 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,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [4] = LAYOUT_all(
- 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,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [5] = LAYOUT_all(
- 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,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [6] = LAYOUT_all(
- 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,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [7] = LAYOUT_all(
- 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,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [8] = LAYOUT_all(
- 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,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [9] = LAYOUT_all(
- 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,
- KC_TRNS, KC_TRNS, KC_TRNS, 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] = {
- [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
- [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
- [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
- [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
- [4] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
- [5] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
- [6] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
- [7] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
- [8] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
- [9] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
-};
-#endif
diff --git a/keyboards/1upkeyboards/pi60/keymaps/via/rules.mk b/keyboards/1upkeyboards/pi60/keymaps/via/rules.mk
deleted file mode 100644
index aaf0497be13..00000000000
--- a/keyboards/1upkeyboards/pi60/keymaps/via/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
-ENCODER_MAP_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/1upkeyboards/pi60_hse/keymaps/default/keymap.c b/keyboards/1upkeyboards/pi60_hse/keymaps/default/keymap.c
index 22e1a4c0d99..ddb7f98869f 100644
--- a/keyboards/1upkeyboards/pi60_hse/keymaps/default/keymap.c
+++ b/keyboards/1upkeyboards/pi60_hse/keymaps/default/keymap.c
@@ -37,8 +37,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[2] = LAYOUT_60_ansi_split_bs_rshift(
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,
- RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, RGB_M_SN,RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, KC_TRNS,
+ RM_TOGG, RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, RM_PREV, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, RGB_M_SN,RGB_M_K, RGB_M_X, RGB_M_G, 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/1upkeyboards/pi60_hse/keymaps/via/keymap.c b/keyboards/1upkeyboards/pi60_hse/keymaps/via/keymap.c
deleted file mode 100644
index 781ef455c38..00000000000
--- a/keyboards/1upkeyboards/pi60_hse/keymaps/via/keymap.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/* 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_60_ansi_split_bs_rshift(
- 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_GRV,
- 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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL
- ),
-
- [1] = LAYOUT_60_ansi_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, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS,
- KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS
- ),
-
- [2] = LAYOUT_60_ansi_split_bs_rshift(
- 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,
- RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, RGB_M_SN,RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [3] = LAYOUT_60_ansi_split_bs_rshift(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [4] = LAYOUT_60_ansi_split_bs_rshift(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [5] = LAYOUT_60_ansi_split_bs_rshift(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [6] = LAYOUT_60_ansi_split_bs_rshift(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [7] = LAYOUT_60_ansi_split_bs_rshift(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [8] = LAYOUT_60_ansi_split_bs_rshift(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [9] = LAYOUT_60_ansi_split_bs_rshift(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- )
-};
diff --git a/keyboards/1upkeyboards/pi60_hse/keymaps/via/rules.mk b/keyboards/1upkeyboards/pi60_hse/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc9..00000000000
--- a/keyboards/1upkeyboards/pi60_hse/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/1upkeyboards/pi60_rgb/keymaps/via/keymap.c b/keyboards/1upkeyboards/pi60_rgb/keymaps/via/keymap.c
deleted file mode 100644
index f158a50d8be..00000000000
--- a/keyboards/1upkeyboards/pi60_rgb/keymaps/via/keymap.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/* 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_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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL
- ),
-
- [1] = 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_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS,
- KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS
- ),
-
- [2] = LAYOUT_60_ansi(
- 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,
- RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, RGB_M_SN,RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [3] = LAYOUT_60_ansi(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [4] = LAYOUT_60_ansi(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [5] = LAYOUT_60_ansi(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [6] = LAYOUT_60_ansi(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [7] = LAYOUT_60_ansi(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [8] = LAYOUT_60_ansi(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [9] = LAYOUT_60_ansi(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- )
-};
diff --git a/keyboards/1upkeyboards/pi60_rgb/keymaps/via/rules.mk b/keyboards/1upkeyboards/pi60_rgb/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc9..00000000000
--- a/keyboards/1upkeyboards/pi60_rgb/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/1upkeyboards/pi60_rgb_v2/keymaps/via/keymap.c b/keyboards/1upkeyboards/pi60_rgb_v2/keymaps/via/keymap.c
deleted file mode 100644
index 5ed2ca48cde..00000000000
--- a/keyboards/1upkeyboards/pi60_rgb_v2/keymaps/via/keymap.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* 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_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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL
- ),
-
- [1] = 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_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS,
- KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS
- ),
-
- [2] = LAYOUT_60_ansi(
- 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,
- RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, RGB_M_SN,RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- )
-};
diff --git a/keyboards/1upkeyboards/pi60_rgb_v2/keymaps/via/rules.mk b/keyboards/1upkeyboards/pi60_rgb_v2/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc9..00000000000
--- a/keyboards/1upkeyboards/pi60_rgb_v2/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/1upkeyboards/super16/keymaps/default/keymap.c b/keyboards/1upkeyboards/super16/keymaps/default/keymap.c
index 4414a658c5d..640687c7908 100644
--- a/keyboards/1upkeyboards/super16/keymaps/default/keymap.c
+++ b/keyboards/1upkeyboards/super16/keymaps/default/keymap.c
@@ -17,9 +17,9 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_ortho_4x4( /* Base */
- RGB_TOG, KC_1, KC_U, KC_P,
- RGB_MOD, KC_1, KC_U, KC_P,
- RGB_TOG, KC_1, KC_U, KC_P,
- RGB_MOD, KC_1, KC_U, KC_P
+ RM_TOGG, KC_1, KC_U, KC_P,
+ RM_NEXT, KC_1, KC_U, KC_P,
+ RM_TOGG, KC_1, KC_U, KC_P,
+ RM_NEXT, KC_1, KC_U, KC_P
),
};
diff --git a/keyboards/1upkeyboards/super16/keymaps/via/keymap.c b/keyboards/1upkeyboards/super16/keymaps/via/keymap.c
deleted file mode 100644
index 3557a5ddb0c..00000000000
--- a/keyboards/1upkeyboards/super16/keymaps/via/keymap.c
+++ /dev/null
@@ -1,37 +0,0 @@
-#include QMK_KEYBOARD_H
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_ortho_4x4(
- KC_7, KC_8, KC_9, KC_ASTR,
- KC_4, KC_5, KC_6, KC_SLSH,
- KC_1, KC_2, KC_3, KC_MINS,
- KC_0, KC_ENT, KC_DOT, MO(1)
- ),
-
- [1] = LAYOUT_ortho_4x4(
- QK_BOOT, 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
- ),
-
- [2] = LAYOUT_ortho_4x4(
- 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
- ),
-
- [3] = LAYOUT_ortho_4x4(
- 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/1upkeyboards/super16/keymaps/via/rules.mk b/keyboards/1upkeyboards/super16/keymaps/via/rules.mk
deleted file mode 100644
index 7fe9493aff8..00000000000
--- a/keyboards/1upkeyboards/super16/keymaps/via/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
-RGB_MATRIX_ENABLE = no
-RGBLIGHT_ENABLE = yes
diff --git a/keyboards/1upkeyboards/super16v2/keymaps/default/keymap.c b/keyboards/1upkeyboards/super16v2/keymaps/default/keymap.c
index ba6d6c4d719..ac30909566d 100644
--- a/keyboards/1upkeyboards/super16v2/keymaps/default/keymap.c
+++ b/keyboards/1upkeyboards/super16v2/keymaps/default/keymap.c
@@ -25,9 +25,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[1] = LAYOUT_ortho_4x4( /* Fn Layer */
- RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI,
- RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD,
- RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS,
+ 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
),
};
diff --git a/keyboards/1upkeyboards/super16v2/keymaps/via/keymap.c b/keyboards/1upkeyboards/super16v2/keymaps/via/keymap.c
deleted file mode 100644
index 0475107aed4..00000000000
--- a/keyboards/1upkeyboards/super16v2/keymaps/via/keymap.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* 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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_ortho_4x4( /* Base */
- 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( /* Fn Layer */
- RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI,
- RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT
- ),
-
- [2] = LAYOUT_ortho_4x4(
- 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
- ),
-
- [3] = LAYOUT_ortho_4x4(
- 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/1upkeyboards/super16v2/keymaps/via/rules.mk b/keyboards/1upkeyboards/super16v2/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc9..00000000000
--- a/keyboards/1upkeyboards/super16v2/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/1upkeyboards/sweet16/keymaps/via/keymap.c b/keyboards/1upkeyboards/sweet16/keymaps/via/keymap.c
deleted file mode 100644
index 3557a5ddb0c..00000000000
--- a/keyboards/1upkeyboards/sweet16/keymaps/via/keymap.c
+++ /dev/null
@@ -1,37 +0,0 @@
-#include QMK_KEYBOARD_H
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_ortho_4x4(
- KC_7, KC_8, KC_9, KC_ASTR,
- KC_4, KC_5, KC_6, KC_SLSH,
- KC_1, KC_2, KC_3, KC_MINS,
- KC_0, KC_ENT, KC_DOT, MO(1)
- ),
-
- [1] = LAYOUT_ortho_4x4(
- QK_BOOT, 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
- ),
-
- [2] = LAYOUT_ortho_4x4(
- 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
- ),
-
- [3] = LAYOUT_ortho_4x4(
- 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/1upkeyboards/sweet16/keymaps/via/rules.mk b/keyboards/1upkeyboards/sweet16/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc9..00000000000
--- a/keyboards/1upkeyboards/sweet16/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/1upkeyboards/sweet16/rules.mk b/keyboards/1upkeyboards/sweet16/rules.mk
deleted file mode 100644
index 7d269ac93f5..00000000000
--- a/keyboards/1upkeyboards/sweet16/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DEFAULT_FOLDER = 1upkeyboards/sweet16/v1
diff --git a/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.c b/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.c
index 14168ee7004..6ccf21e18ff 100644
--- a/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.c
+++ b/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.c
@@ -25,9 +25,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[1] = LAYOUT_ortho_4x4(
- RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI,
- RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD,
- RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS,
+ 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
)
};
@@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#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(RGB_VAD, RGB_VAI) },
+ [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/via/keymap.c b/keyboards/1upkeyboards/sweet16v2/keymaps/via/keymap.c
deleted file mode 100644
index b77ed6e2562..00000000000
--- a/keyboards/1upkeyboards/sweet16v2/keymaps/via/keymap.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/* 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(
- RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI,
- RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD,
- RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT
- ),
-
- [2] = LAYOUT_ortho_4x4(
- 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
- ),
-
- [3] = LAYOUT_ortho_4x4(
- 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
- ),
-
- [4] = LAYOUT_ortho_4x4(
- 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
- ),
-
- [5] = LAYOUT_ortho_4x4(
- 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
- ),
-
- [6] = LAYOUT_ortho_4x4(
- 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
- ),
-
- [7] = LAYOUT_ortho_4x4(
- 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
- ),
-
- [8] = LAYOUT_ortho_4x4(
- 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
- ),
-
- [9] = LAYOUT_ortho_4x4(
- 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
- ),
-};
-
-
-#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(KC_VOLD, KC_VOLU) },
- [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
- [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
- [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
- [4] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
- [5] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
- [6] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
- [7] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
- [8] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
- [9] = { 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/via/rules.mk b/keyboards/1upkeyboards/sweet16v2/keymaps/via/rules.mk
deleted file mode 100644
index 1189f4ad192..00000000000
--- a/keyboards/1upkeyboards/sweet16v2/keymaps/via/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
-ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/25keys/aleth42/keymaps/default/keymap.c b/keyboards/25keys/aleth42/keymaps/default/keymap.c
index 27987555f0c..4ad6c0d85e2 100644
--- a/keyboards/25keys/aleth42/keymaps/default/keymap.c
+++ b/keyboards/25keys/aleth42/keymaps/default/keymap.c
@@ -99,8 +99,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
[_ADJUST] = LAYOUT(
KC_MUTE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- _______, BL_TOGG, BL_STEP, BL_UP, AG_NORM, RGB_TOG, RGB_HUI, AG_SWAP, RGB_SAI, RGB_VAI, KC_F12,
- KC_CAPS, QK_BOOT, BL_BRTG, BL_DOWN, _______, RGB_MOD, RGB_HUD, _______, RGB_SAD, RGB_VAD, _______,
+ _______, BL_TOGG, BL_STEP, BL_UP, AG_NORM, UG_TOGG, UG_HUEU, AG_SWAP, UG_SATU, UG_VALU, KC_F12,
+ KC_CAPS, QK_BOOT, BL_BRTG, BL_DOWN, _______, UG_NEXT, UG_HUED, _______, UG_SATD, UG_VALD, _______,
KC_SLEP, _______, _______, _______, _______, _______, _______, _______
),
};
diff --git a/keyboards/25keys/aleth42/keymaps/via/config.h b/keyboards/25keys/aleth42/keymaps/via/config.h
deleted file mode 100644
index f664d664f67..00000000000
--- a/keyboards/25keys/aleth42/keymaps/via/config.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2020 monksoffunk
- *
- * 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 TAPPING_TERM 200
-#define PERMISSIVE_HOLD
-#define ENCODER_RESOLUTION 2
\ No newline at end of file
diff --git a/keyboards/25keys/aleth42/keymaps/via/keymap.c b/keyboards/25keys/aleth42/keymaps/via/keymap.c
deleted file mode 100644
index d7b8be65d63..00000000000
--- a/keyboards/25keys/aleth42/keymaps/via/keymap.c
+++ /dev/null
@@ -1,150 +0,0 @@
-/* Copyright 2020 monksoffunk
- *
- * 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
-
-// Defines names for use in layer keycodes and the keymap
-enum layer_names {
- _QWERTY,
- _LOWER,
- _RAISE,
- _ADJUST,
-};
-
-// Defines the keycodes used by our macros in process_record_user
-enum custom_keycodes {
- QWERTY = SAFE_RANGE,
- LOWER,
- RAISE,
- ADJUST,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Default Layer
- * ,-----------------------------------------------------------.
- * | Esc| Q | W | E | R | T | Y | U | I | O | P | BS |
- * |-----------------------------------------------------------|
- * | Tab | A | S | D | F | G | H | J | K | L | Ent |
- * |-----------------------------------------------------------|
- * | LSft | Z | X | C | V | B | N | M | , | . |fn(/)|
- * |-----------------------------------------------------------|
- * | Esc | LAlt| LGui| spc fn0 | spc fn1 |RGui|RAlt|RCtl|
- * `-----------------------------------------------------------'
- */
- [_QWERTY] = LAYOUT(
- KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- MT(MOD_LCTL, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, LT(_ADJUST, KC_SLSH),
- MT(MOD_LCTL, KC_ESC), KC_LALT , KC_LGUI, LT(_LOWER, KC_SPC), LT(_RAISE, KC_SPC), KC_RGUI, KC_RALT, KC_RCTL
- ),
-
- /* Lower Layer
- * ,-----------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del|
- * |-----------------------------------------------------------|
- * | | | | | | | _ | + | { | } | Pipe |
- * |-----------------------------------------------------------|
- * | | | | | | | | ; | ' | Up | |
- * |-----------------------------------------------------------|
- * | | | | | |Left|Down|Right |
- * `-----------------------------------------------------------'
- */
- [_LOWER] = LAYOUT(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
- _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, KC_UP, _______,
- _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- /* Raise Layer
- * ,-----------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del|
- * |-----------------------------------------------------------|
- * | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | Pipe |
- * |-----------------------------------------------------------|
- * | F7 | F8 | F9 | F10| F11| F12| \ | \ | | | |
- * |-----------------------------------------------------------|
- * | | | | | | | | |
- * `-----------------------------------------------------------'
- */
- [_RAISE] = LAYOUT(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- /* Adjust Layer
- * ,-----------------------------------------------------------.
- * |Mute| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10|F11 |
- * |-----------------------------------------------------------|
- * | |BTOG |BSTP|BINC| MAC|RGBTOG|HUI|WIN|SAI|VAI| F12 |
- * |-----------------------------------------------------------|
- * | Caps |Reset|BBRE|BDEC| |RMOD|HUD | |SAD|VAD | |
- * |-----------------------------------------------------------|
- * |SLEEP| | | | | | | |
- * `-----------------------------------------------------------'
- */
- [_ADJUST] = LAYOUT(
- KC_MUTE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- _______, BL_TOGG, BL_STEP, BL_UP, AG_NORM, RGB_TOG, RGB_HUI, AG_SWAP, RGB_SAI, RGB_VAI, KC_F12,
- KC_CAPS, QK_BOOT, BL_BRTG, BL_DOWN, _______, RGB_MOD, RGB_HUD, _______, RGB_SAD, RGB_VAD, _______,
- KC_SLEP, _______, _______, _______, _______, _______, _______, _______
- ),
-};
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (index == 0) { /* Left encoder */
- switch (get_highest_layer(layer_state)) {
- case _QWERTY:
- if (clockwise) {
- tap_code(KC_TAB);
- } else {
- tap_code16(S(KC_TAB));
- }
- break;
- case _RAISE:
- if (clockwise) {
- // tap_code(KC_VOLU);
- if(keymap_config.swap_lalt_lgui==false){
- tap_code(KC_LNG2);
- }else {
- tap_code16(A(KC_GRV));
- }
- } else {
- if(keymap_config.swap_lalt_lgui==false){
- tap_code(KC_LNG1);
- } else {
- tap_code16(A(KC_GRV));
- }
- }
- break;
- case _ADJUST:
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- }
-
- } else if (index == 1) { /* Right encoder */
- if (clockwise) {
- tap_code(KC_PGDN);
- } else {
- tap_code(KC_PGUP);
- }
- }
- return true;
-}
diff --git a/keyboards/25keys/aleth42/keymaps/via/readme.md b/keyboards/25keys/aleth42/keymaps/via/readme.md
deleted file mode 100644
index 01f2cfee34d..00000000000
--- a/keyboards/25keys/aleth42/keymaps/via/readme.md
+++ /dev/null
@@ -1,56 +0,0 @@
-# The VIA keymap for aleth42
-
-Default Layer
-
- ,-----------------------------------------------------------.
- | Esc| Q | W | E | R | T | Y | U | I | O | P | BS |
- |-----------------------------------------------------------|
- | Tab*| A | S | D | F | G | H | J | K | L | Ent |
- |-----------------------------------------------------------|
- | LSft | Z | X | C | V | B | N | M | , | . |fn(/)|
- |-----------------------------------------------------------|
- | Esc* | LAlt| LGui| spc fn0 | spc fn1 |RGui|RAlt|RCtl|
- `-----------------------------------------------------------'
-
-Tab* would activate Left Control when held, and send Tab when tapped.
-
-Esc* would activate Left Control when held, and send Escape when tapped.
-
-Esc* is useful with a rotary encoder @ upper-left Esc location.
-
-Lower Layer = fn0
-
- ,-----------------------------------------------------------.
- | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del|
- |-----------------------------------------------------------|
- | | | | | | | _ | + | { | } | Pipe |
- |-----------------------------------------------------------|
- | | | | | | | | ; | ' | Up | |
- |-----------------------------------------------------------|
- | | | | | |Left|Down|Right |
- `-----------------------------------------------------------'
-
-Raise Layer = fn1
-
- ,-----------------------------------------------------------.
- | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del|
- |-----------------------------------------------------------|
- | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | Pipe |
- |-----------------------------------------------------------|
- | F7 | F8 | F9 | F10| F11| F12| \ | \ | | | |
- |-----------------------------------------------------------|
- | | | | | | | | |
- `-----------------------------------------------------------'
-
-Adjust Layer = fn
-
- ,-----------------------------------------------------------.
- |Mute| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10|F11 |
- |-----------------------------------------------------------|
- | |BTOG |BSTP|BINC| MAC|RGBTOG|HUI|WIN|SAI|VAI| F12 |
- |-----------------------------------------------------------|
- | Caps |Reset|BBRE|BDEC| |RMOD|HUD | |SAD|VAD | |
- |-----------------------------------------------------------|
- |SLEEP| | | | | | | |
- `-----------------------------------------------------------'
-
diff --git a/keyboards/25keys/aleth42/keymaps/via/rules.mk b/keyboards/25keys/aleth42/keymaps/via/rules.mk
deleted file mode 100644
index 35a31dea8ed..00000000000
--- a/keyboards/25keys/aleth42/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-CONSOLE_ENABLE = no
diff --git a/keyboards/25keys/aleth42/rules.mk b/keyboards/25keys/aleth42/rules.mk
deleted file mode 100644
index 8034ad54407..00000000000
--- a/keyboards/25keys/aleth42/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DEFAULT_FOLDER = 25keys/aleth42/rev1
diff --git a/keyboards/25keys/cassette42/keymaps/default/keymap.c b/keyboards/25keys/cassette42/keymaps/default/keymap.c
index 4943be9c7b3..92892cdc52e 100644
--- a/keyboards/25keys/cassette42/keymaps/default/keymap.c
+++ b/keyboards/25keys/cassette42/keymaps/default/keymap.c
@@ -34,10 +34,10 @@ enum layer_number {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// LAYOUT(LeftEncoder, RightEncoder, LeftSwitch, CenterLeftSwitch, CenterRightSwitch, RightSwitch)
[_AUDIO] = LAYOUT(KC_MUTE, KC_ENT, LT(_HUE, KC_MPRV), LT(_SAT, KC_MPLY), LT(_VAL, KC_MNXT), LT(_MODE, KC_SPC)),
- [_HUE] = LAYOUT(RGB_TOG, RGBRST, _______, _______, RGB_HUD, RGB_HUI),
- [_SAT] = LAYOUT(_______, _______, _______, _______, RGB_SAD, RGB_SAI),
- [_VAL] = LAYOUT(_______, _______, RGB_VAD, RGB_VAI, _______, RGB_VAI),
- [_MODE] = LAYOUT(_______, WRTROM, RGB_RMOD, RGB_MOD, RGB_MOD, _______),
+ [_HUE] = LAYOUT(UG_TOGG, RGBRST, _______, _______, UG_HUED, UG_HUEU),
+ [_SAT] = LAYOUT(_______, _______, _______, _______, UG_SATD, UG_SATU),
+ [_VAL] = LAYOUT(_______, _______, UG_VALD, UG_VALU, _______, UG_VALU),
+ [_MODE] = LAYOUT(_______, WRTROM, UG_PREV, UG_NEXT, UG_NEXT, _______),
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
diff --git a/keyboards/25keys/zinc/keymaps/default/keymap.c b/keyboards/25keys/zinc/keymaps/default/keymap.c
index 2b523b4cde1..4c4a6a5f3e7 100644
--- a/keyboards/25keys/zinc/keymaps/default/keymap.c
+++ b/keyboards/25keys/zinc/keymaps/default/keymap.c
@@ -23,10 +23,7 @@ enum layer_number {
};
enum custom_keycodes {
- QWERTY = SAFE_RANGE,
- COLEMAK,
- DVORAK,
- LOWER,
+ LOWER = SAFE_RANGE,
RAISE,
ADJUST,
BACKLIT,
@@ -35,12 +32,9 @@ enum custom_keycodes {
RGBRST
};
-enum macro_keycodes {
- KC_SAMPLEMACRO,
-};
-
-//Macros
-#define M_SAMPLE M(KC_SAMPLEMACRO)
+#define QWERTY PDF(_QWERTY)
+#define COLEMAK PDF(_COLEMAK)
+#define DVORAK PDF(_DVORAK)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
@@ -146,8 +140,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
[_ADJUST] = LAYOUT_ortho_4x12(
_______, QK_BOOT, RGBRST, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, KC_INS,
- _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, AG_NORM, AG_SWAP, KC_MINS, KC_EQL, KC_PSCR, KC_SCRL, KC_PAUS,
- RGB_RMOD,RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, KC_PGUP, _______,
+ _______, UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, AG_NORM, AG_SWAP, KC_MINS, KC_EQL, KC_PSCR, KC_SCRL, KC_PAUS,
+ UG_PREV, UG_NEXT, UG_HUED, UG_SATD, UG_VALD, _______, _______, _______, _______, _______, KC_PGUP, _______,
_______, _______, _______, EISU, EISU, EISU, KANA, KANA, KANA, KC_HOME, KC_PGDN, KC_END
)
};
@@ -169,25 +163,6 @@ void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
- }
- return false;
- break;
- case COLEMAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_COLEMAK);
- }
- return false;
- break;
- case DVORAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_DVORAK);
- }
- return false;
- break;
-
case LOWER:
if (record->event.pressed) {
//not sure how to have keyboard check mode and set it to a variable, so my work around
@@ -246,7 +221,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
break;
//led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released
- case RGB_RMOD:
+ case QK_UNDERGLOW_MODE_PREVIOUS:
#if defined(RGBLIGHT_ENABLE)
if (record->event.pressed) {
rgblight_mode_noeeprom(RGB_current_config.mode);
@@ -257,7 +232,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#endif
break;
- case RGB_MOD:
+ case QK_UNDERGLOW_MODE_NEXT:
#if defined(RGBLIGHT_ENABLE)
if (record->event.pressed) {
rgblight_mode_noeeprom(RGB_current_config.mode);
diff --git a/keyboards/25keys/zinc/keymaps/via/config.h b/keyboards/25keys/zinc/keymaps/via/config.h
deleted file mode 100644
index 58c10815593..00000000000
--- a/keyboards/25keys/zinc/keymaps/via/config.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2018 monksoffunk
-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 DYNAMIC_KEYMAP_LAYER_COUNT 5
-
-#define RGBLIGHT_LAYERS
-
-// place overrides here
-// Selection of RGBLIGHT MODE to use.
-#if defined(LED_ANIMATIONS)
-# define RGBLIGHT_EFFECT_BREATHING
-# define RGBLIGHT_EFFECT_RAINBOW_MOOD
-# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-# define RGBLIGHT_EFFECT_SNAKE
-# define RGBLIGHT_EFFECT_KNIGHT
-# define RGBLIGHT_EFFECT_CHRISTMAS
-# define RGBLIGHT_EFFECT_STATIC_GRADIENT
-# define RGBLIGHT_EFFECT_RGB_TEST
-# define RGBLIGHT_EFFECT_ALTERNATING
-# define RGBLIGHT_EFFECT_TWINKLE
-#endif
diff --git a/keyboards/25keys/zinc/keymaps/via/keymap.c b/keyboards/25keys/zinc/keymaps/via/keymap.c
deleted file mode 100644
index 18de3e74fbe..00000000000
--- a/keyboards/25keys/zinc/keymaps/via/keymap.c
+++ /dev/null
@@ -1,203 +0,0 @@
-/* Copyright 2020 monksoffunk
- *
- * 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 RGBLIGHT_ENABLE
-//Following line allows macro to read current RGB settings
-
-// Light LEDs 6 to 9 and 12 to 15 red when caps lock is active. Hard to ignore!
-const rgblight_segment_t PROGMEM capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {12, 1, HSV_RED} // Light 4 LEDs, starting with LED 6
-);
-// Light LEDs 9 & 10 in cyan when keyboard layer 1 is active
-const rgblight_segment_t PROGMEM lower_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {24, 6, HSV_GOLDENROD}
-);
-// Light LEDs 11 & 12 in purple when keyboard layer 2 is active
-const rgblight_segment_t PROGMEM raise_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {54, 6, HSV_GOLDENROD}
-);
-
-// Now define the array of layers. Later layers take precedence
-const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST(
- capslock_layer,
- lower_layer,
- raise_layer
-);
-
-void keyboard_post_init_user(void) {
- // Enable the LED layers
- rgblight_layers = rgb_layers;
-}
-#endif
-
-extern uint8_t is_master;
-
-// 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.
-enum layer_number {
- _QWERTY = 0,
- _LOWER,
- _RAISE,
- _ADJUST,
- _ADJUST2
-};
-
-enum custom_keycodes {
- QWERTY = SAFE_RANGE,
- KANA,
- EISU,
- ADJUST,
- RGBRST
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Qwerty
- * ,-----------------------------------------. ,-----------------------------------------.
- * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | | N | M | , | . | / |Enter |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Esc |ADJUST| Win | Alt |LOWER |Space | | Space| RAISE| Left | Down | Up | Right|
- * `-----------------------------------------' `-----------------------------------------'
- */
- [_QWERTY] = LAYOUT_ortho_4x12(
- 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
- KC_ESC, MO(_ADJUST), KC_LGUI, KC_LALT, MO(_LOWER), KC_SPC, KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
- ),
-
- /* Lower
- * ,-----------------------------------------. ,-----------------------------------------.
- * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | | | - | _ | + | { | } | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | | | | | | Home | End | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------' `-----------------------------------------'
- */
- [_LOWER] = LAYOUT_ortho_4x12(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
- _______, _______, _______, _______, _______, _______, KC_MINS, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_END, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
- ),
-
- /* Raise
- * ,-----------------------------------------. ,-----------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | | F12 | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------' `-----------------------------------------'
- */
- [_RAISE] = LAYOUT_ortho_4x12(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
- ),
-
- /* Adjust (Lower + Raise)
- * ,-----------------------------------------. ,-----------------------------------------.
- * | | Reset|RGBRST|Aud on|Audoff| | | |Qwerty|Colemk|Dvorak| | Ins |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | |RGB ON| HUE+ | SAT+ | VAL+ | Mac | | Win | - | = |Print |ScLock|Pause |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * |MODE R| MODE | HUE- | SAT- | VAL- | | | | | | |PageUp| |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | EISU | EISU | EISU | | KANA | KANA | Home |PageDn|PageUp| End |
- * `-----------------------------------------' `-----------------------------------------'
- */
- [_ADJUST] = LAYOUT_ortho_4x12(
- _______, QK_BOOT, RGBRST, _______, _______, _______, _______, QWERTY, _______, _______, _______, KC_INS,
- _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, AG_NORM, AG_SWAP, KC_MINS, KC_EQL, KC_PSCR, KC_SCRL, KC_PAUS,
- RGB_RMOD,RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, KC_PGUP, _______,
- _______, _______, _______, EISU, EISU, EISU, KANA, KANA, KANA, KC_HOME, KC_PGDN, KC_END
- ),
-
- [_ADJUST2] = LAYOUT_ortho_4x12(
- _______, QK_BOOT, RGBRST, _______, _______, _______, _______, QWERTY, _______, _______, _______, KC_INS,
- _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, AG_NORM, AG_SWAP, KC_MINS, KC_EQL, KC_PSCR, KC_SCRL, KC_PAUS,
- RGB_RMOD,RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, KC_PGUP, _______,
- _______, _______, _______, EISU, EISU, EISU, KANA, KANA, KANA, KC_HOME, KC_PGDN, KC_END
- )
-};
-
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case EISU:
- if (record->event.pressed) {
- if(keymap_config.swap_lalt_lgui==false){
- register_code(KC_LNG2);
- } else {
- SEND_STRING(SS_LALT("`"));
- }
- } else {
- unregister_code(KC_LNG2);
- }
- return false;
- case KANA:
- if (record->event.pressed) {
- if(keymap_config.swap_lalt_lgui==false){
- register_code(KC_LNG1);
- } else {
- SEND_STRING(SS_LALT("`"));
- }
- } else {
- unregister_code(KC_LNG1);
- }
- return false;
- case RGBRST:
-#ifdef RGBLIGHT_ENABLE
- if (record->event.pressed) {
- eeconfig_update_rgblight_default();
- rgblight_enable();
- }
-#endif
- break;
- }
- return true;
-}
-
-
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST2);
-#ifdef RGBLIGHT_LAYERS
- // Both layers will light up if both kb layers are active
- rgblight_set_layer_state(1, layer_state_cmp(state, 1));
- rgblight_set_layer_state(2, layer_state_cmp(state, 2));
-#endif
- return state;
-}
-
-bool led_update_user(led_t led_state) {
- rgblight_set_layer_state(0, led_state.caps_lock);
- return true;
-}
diff --git a/keyboards/25keys/zinc/keymaps/via/readme_en.md b/keyboards/25keys/zinc/keymaps/via/readme_en.md
deleted file mode 100644
index 3c73a18d88b..00000000000
--- a/keyboards/25keys/zinc/keymaps/via/readme_en.md
+++ /dev/null
@@ -1,115 +0,0 @@
-# The VIA Zinc Layout
-## layout
-
-### Qwerty
-
-```
- ,-----------------------------------------. ,-----------------------------------------.
- | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- | Shift| Z | X | C | V | B | | N | M | , | . | / |Enter |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- | Esc | Fn | Alt | Win |Lower |Space | | Space| Raise| Left | Down | Up | Right|
- `------------------------------------------ ------------------------------------------'
-```
-
-### Lower
-```
- ,-----------------------------------------. ,-----------------------------------------.
- | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- | | | | | | | | - | _ | + | { | } | | |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- | | | | | | | | | | | Home | End | |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- | | | | | | | | | | Next | Vol- | Vol+ | Play |
- `-----------------------------------------' `-----------------------------------------'
-```
-
-### RAISE
-```
- ,-----------------------------------------. ,-----------------------------------------.
- | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- | | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- | | F7 | F8 | F9 | F10 | F11 | | F12 | | | | |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- | | | | | | | | | | Next | Vol- | Vol+ | Play |
- `-----------------------------------------' `-----------------------------------------'
-```
-
-### Adjust
-```
- ,-----------------------------------------. ,-----------------------------------------.
- | | Reset|RGBRST|Aud on|Audoff| | | |Qwerty|Colemk|Dvorak| | Ins |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- | |RGB ON| HUE+ | SAT+ | VAL+ | Mac | | Win | - | = |Print |ScLock|Pause |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- |MODE R|RGBMOD| HUE- | SAT- | VAL- | | | | | | |PageUp| |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- | | | | EISU | EISU | EISU | | KANA | KANA | KANA | Home |PageDn| End |
- `-----------------------------------------' `-----------------------------------------'
-```
-
-### Adjust2 (Lower + Raise)
-```
- ,-----------------------------------------. ,-----------------------------------------.
- | | Reset|RGBRST|Aud on|Audoff| | | |Qwerty|Colemk|Dvorak| | Ins |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- | |RGB ON| HUE+ | SAT+ | VAL+ | Mac | | Win | - | = |Print |ScLock|Pause |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- |MODE R|RGBMOD| HUE- | SAT- | VAL- | | | | | | |PageUp| |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- | | | | EISU | EISU | EISU | | KANA | KANA | KANA | Home |PageDn| End |
- `-----------------------------------------' `-----------------------------------------'
-```
-## Compile
-
-go to qmk top directory.
-
-```
-$ cd qmk_firmware
-```
-make with `zinc:`
-
-```
-$ make zinc:default
-```
-
-To make and flash with `:flash`
-
-```
-$ make zinc:default:flash
-```
-
-
-## Customize
-
-You can customize from the command line.
-
-```
-# Zinc keyboard 'default' keymap: convenient command line option
-make ZINC= zinc:defualt
-# option= back | under | both | cont | na | ios
-# ex.
-# make ZINC=under zinc:via
-# make ZINC=under,ios zinc:via
-# make ZINC=back zinc:via
-# make ZINC=back,na zinc:via
-# make zinc:via
-```
-
-Or edit `qmk_firmware/keyboards/zinc/rev1/keymaps/~/rules.mk` directly.
-
-```
-# Zinc keyboard customize
-LED_BACK_ENABLE = no # LED backlight (Enable SK6812mini backlight)
-LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight)
-LED_BOTH_ENABLE = no # LED backlight and underglow
-LED_RGB_CONT = no # LED continuous backlight or/and underglow between left Zinc and right Zinc
-LED_ANIMATIONS = yes # LED animations
-IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
-```
diff --git a/keyboards/25keys/zinc/keymaps/via/readme_jp.md b/keyboards/25keys/zinc/keymaps/via/readme_jp.md
deleted file mode 100644
index a929eb07dd9..00000000000
--- a/keyboards/25keys/zinc/keymaps/via/readme_jp.md
+++ /dev/null
@@ -1,149 +0,0 @@
-# The VIA Zinc Layout
-## 配列
-
-### Qwerty配列
-
-```
- ,-----------------------------------------. ,-----------------------------------------.
- | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- | Shift| Z | X | C | V | B | | N | M | , | . | / |Enter |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- | Esc | Fn | Alt | Win |Lower |Space | | Space| Raise| Left | Down | Up | Right|
- `------------------------------------------ ------------------------------------------'
-```
-
- ### Lower
-```
- ,-----------------------------------------. ,-----------------------------------------.
- | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- | | | | | | | | - | _ | + | { | } | | |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- | | | | | | | | | | | Home | End | |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- | | | | | | | | | | Next | Vol- | Vol+ | Play |
- `-----------------------------------------' `-----------------------------------------'
-```
-
-### RAISE
-```
- ,-----------------------------------------. ,-----------------------------------------.
- | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- | | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- | | F7 | F8 | F9 | F10 | F11 | | F12 | | | | |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- | | | | | | | | | | Next | Vol- | Vol+ | Play |
- `-----------------------------------------' `-----------------------------------------'
-```
-
-### Adjust
-```
- ,-----------------------------------------. ,-----------------------------------------.
- | | Reset|RGBRST|Aud on|Audoff| | | |Qwerty|Colemk|Dvorak| | Ins |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- | |RGB ON| HUE+ | SAT+ | VAL+ | Mac | | Win | - | = |Print |ScLock|Pause |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- |MODE R|RGBMOD| HUE- | SAT- | VAL- | | | | | | |PageUp| |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- | | | | EISU | EISU | EISU | | KANA | KANA | KANA | Home |PageDn| End |
- `-----------------------------------------' `-----------------------------------------'
-```
-
-### Adjust2 (Lower + Raise)
-```
- ,-----------------------------------------. ,-----------------------------------------.
- | | Reset|RGBRST|Aud on|Audoff| | | |Qwerty|Colemk|Dvorak| | Ins |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- | |RGB ON| HUE+ | SAT+ | VAL+ | Mac | | Win | - | = |Print |ScLock|Pause |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- |MODE R|RGBMOD| HUE- | SAT- | VAL- | | | | | | |PageUp| |
- |------+------+------+------+------+------| |------+------+------+------+------+------|
- | | | | EISU | EISU | EISU | | KANA | KANA | KANA | Home |PageDn| End |
- `-----------------------------------------' `-----------------------------------------'
-```
-※AdjustとAdjust2は同じものが入っています。このデータの冗長化は、VIA Configuratorでの変更を容易にするために実装を単純化する必要があったためです。Adjust2はLowerとRaiseの同時押しの際に有効になるレイヤーです
-
-
-## コンパイルの仕方
-
-コンパイルは、qmk_firmware のトップディレクトリで行います。
-
-```
-$ cd qmk_firmware
-```
-qmk_firmwareでは各キーボードのコンパイルは、`<キーボード名>:<キーマップ名>`という指定で行います。
-
-```
-$ make zinc:via
-```
-
-キーボードへの書き込みまで同時に行うには下記のように`:avrdude`を付けます。
-
-```
-$ make zinc:via:avrdude
-```
-
-コンパイル結果と中間生成物を消去したい場合は以下のようにします。
-
-```
-$ make zinc:via:clean
-```
-
-## カスタマイズ
-
-コマンドラインからオプションを指定してビルドすることが出来ます。
-ただしVIAキーマップではオプションなしでbothが指定されますので、ほとんどの場合はオプション記述なしでmake zinc:viaとします。
-
-```
-# Zinc keyboard 'via' keymap: convenient command line option
-make ZINC= zinc:via
-# option= back | under | both | cont | na | ios
-# ex.
-# make ZINC=under zinc:via
-# make ZINC=under,ios zinc:via
-# make ZINC=back zinc:via
-# make ZINC=back,na zinc:via
-# make zinc:via
-```
-
-あるいは`qmk_firmware/keyboards/zinc/rev1/keymaps/~/rules.mk` の以下の部分を直接編集して機能を有効化してください。
-
-```
-# Zinc keyboard customize
-LED_BACK_ENABLE = no # LED backlight (Enable SK6812mini backlight)
-LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight)
-LED_BOTH_ENABLE = yes # LED backlight and underglow
-LED_RGB_CONT = yes # LED continuous backlight or/and underglow between left Zinc and right Zinc
-LED_ANIMATIONS = yes # LED animations
-IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
-```
-
-## RGB backlight を有効にする
-
-rules.mk の下記の部分を編集して no を yes に変更してください。
-```
-LED_BACK_ENABLE = yes # LED backlight (Enable SK6812mini backlight)
-```
-※VIAキーマップではオプションなしでbothが指定されます
-
-## RGB Underglow を有効にする
-
-rules.mk の下記の部分を編集して no を yes に変更してください。
-```
-LED_UNDERGLOW_ENABLE = yes # LED underglow (Enable WS2812 RGB underlight.)
-```
-※VIAキーマップではオプションなしでbothが指定されます
-
-## iPad/iPhoneサポートを有効にする。
-
-rules.mk の下記の部分を編集して no を yes に変更してください。
-RBG Underglow や RGBバックライトの輝度を抑えて、iPad, iPhone にも接続できるようになります。
-
-```
-IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
-```
diff --git a/keyboards/25keys/zinc/keymaps/via/rules.mk b/keyboards/25keys/zinc/keymaps/via/rules.mk
deleted file mode 100644
index dfd1d5bfeb9..00000000000
--- a/keyboards/25keys/zinc/keymaps/via/rules.mk
+++ /dev/null
@@ -1,111 +0,0 @@
-VIA_ENABLE = yes
-EXTRAKEY_ENABLE = yes
-
-define ZINC_CUSTOMISE_MSG
- $(info Zinc customize)
- $(info - LED_BACK_ENABLE=$(LED_BACK_ENABLE))
- $(info - LED_UNDERGLOW_ENABLE=$(LED_UNDERGLOW_ENABLE))
- $(info - LED_BOTH_ENABLE=$(LED_BOTH_ENABLE))
- $(info - LED_RGB_CONT=$(LED_RGB_CONT))
- $(info - RGB_MATRIX=$(RGB_MATRIX))
- $(info - LED_ANIMATION=$(LED_ANIMATIONS))
- $(info - IOS_DEVICE_ENABLE=$(IOS_DEVICE_ENABLE))
-endef
-
-# Zinc keyboard customize
-LED_BACK_ENABLE = no # LED backlight (Enable SK6812mini backlight)
-LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight)
-LED_BOTH_ENABLE = yes # LED backlight and underglow
-LED_RGB_CONT = yes # LED continuous backlight or/and underglow between left Zinc and right Zinc
-RGB_MATRIX = no # RGB LED Matrix
-RGB_MATRIX_SPLIT_RIGHT = no # RGB Matrix for RIGHT Hand
-LED_ANIMATIONS = yes # LED animations
-IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
-LTO_ENABLE = no # if firmware size over limit, try this option
-
-#### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE.
-#### Do not enable these with audio at the same time.
-
-### Zinc keyboard 'default' keymap: convenient command line option
-## make ZINC= zinc:defualt
-## option= back | under | both | cont | matrix | na | ios
-## ex.
-## make ZINC=under zinc:defualt
-## make ZINC=under,ios zinc:defualt
-## make ZINC=back zinc:default
-## make ZINC=back,na zinc:default
-## make ZINC=back,ios zinc:default
-
-ifneq ($(strip $(ZINC)),)
- ifeq ($(findstring back,$(ZINC)), back)
- LED_BACK_ENABLE = yes
- endif
- ifeq ($(findstring under,$(ZINC)), under)
- LED_UNDERGLOW_ENABLE = yes
- endif
- ifeq ($(findstring both,$(ZINC)), both)
- LED_BOTH_ENABLE = yes
- endif
- ifeq ($(findstring cont,$(ZINC)), cont)
- LED_RGB_CONT = yes
- endif
- ifeq ($(findstring matrix,$(ZINC)), matrix)
- RGB_MATRIX = yes
- endif
- ifeq ($(findstring right,$(ZINC)), right)
- RGB_MATRIX_SPLIT_RIGHT = yes
- endif
- ifeq ($(findstring na,$(ZINC)), na)
- LED_ANIMATIONS = no
- endif
- ifeq ($(findstring ios,$(ZINC)), ios)
- IOS_DEVICE_ENABLE = yes
- endif
- $(eval $(call ZINC_CUSTOMISE_MSG))
- $(info )
-endif
-
-ifeq ($(strip $(LED_BACK_ENABLE)), yes)
- RGBLIGHT_ENABLE = yes
- ifeq ($(strip $(LED_UNDERGLOW_ENABLE)), yes)
- OPT_DEFS += -DRGBLED_BOTH
- $(info LED_BOTH_ENABLE option is enabled instead of LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE)
- else
- OPT_DEFS += -DRGBLED_BACK
- endif
-else ifeq ($(strip $(LED_UNDERGLOW_ENABLE)), yes)
- RGBLIGHT_ENABLE = yes
-else
- RGBLIGHT_ENABLE = no
-endif
-
-ifeq ($(strip $(LED_BOTH_ENABLE)), yes)
- RGBLIGHT_ENABLE = yes
- OPT_DEFS += -DRGBLED_BOTH
-endif
-
-ifeq ($(strip $(LED_RGB_CONT)), yes)
- OPT_DEFS += -DRGBLED_CONT
-endif
-
-ifeq ($(strip $(RGB_MATRIX)), yes)
- RGBLIGHT_ENABLE = no
- RGB_MATRIX_ENABLE = WS2812
-endif
-
-ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes)
- OPT_DEFS += -DIOS_DEVICE_ENABLE
-endif
-
-ifeq ($(strip $(LED_ANIMATIONS)), yes)
- OPT_DEFS += -DLED_ANIMATIONS
-endif
-
-ifeq ($(strip $(RGB_MATRIX_SPLIT_RIGHT)), yes)
- OPT_DEFS += -DRGB_MATRIX_SPLIT_RIGHT
-endif
-
-# Uncomment these for debugging
-# $(info -- RGBLIGHT_ENABLE=$(RGBLIGHT_ENABLE))
-# $(info -- OPT_DEFS=$(OPT_DEFS))
-# $(info )
diff --git a/keyboards/25keys/zinc/rev1/config.h b/keyboards/25keys/zinc/rev1/config.h
index 27755e64c6a..8d7fd3e26b3 100644
--- a/keyboards/25keys/zinc/rev1/config.h
+++ b/keyboards/25keys/zinc/rev1/config.h
@@ -19,11 +19,6 @@ along with this program. If not, see .
#define QUICK_TAP_TERM 0
-/* Select hand configuration */
-#define MASTER_LEFT
-//#define MASTER_RIGHT
-//#define EE_HANDS
-
/*
* Feature disable options
* These options are also useful to firmware size reduction.
diff --git a/keyboards/25keys/zinc/rev1/keyboard.json b/keyboards/25keys/zinc/rev1/keyboard.json
index c1bead2d8ab..fd11273c181 100644
--- a/keyboards/25keys/zinc/rev1/keyboard.json
+++ b/keyboards/25keys/zinc/rev1/keyboard.json
@@ -22,7 +22,9 @@
},
"split": {
"enabled": true,
- "soft_serial_pin": "D2"
+ "serial": {
+ "pin": "D2"
+ }
},
"tapping": {
"term": 100
diff --git a/keyboards/25keys/zinc/reva/config.h b/keyboards/25keys/zinc/reva/config.h
index 27755e64c6a..8d7fd3e26b3 100644
--- a/keyboards/25keys/zinc/reva/config.h
+++ b/keyboards/25keys/zinc/reva/config.h
@@ -19,11 +19,6 @@ along with this program. If not, see .
#define QUICK_TAP_TERM 0
-/* Select hand configuration */
-#define MASTER_LEFT
-//#define MASTER_RIGHT
-//#define EE_HANDS
-
/*
* Feature disable options
* These options are also useful to firmware size reduction.
diff --git a/keyboards/25keys/zinc/reva/keyboard.json b/keyboards/25keys/zinc/reva/keyboard.json
index 01d2291c491..dedc8f22f85 100644
--- a/keyboards/25keys/zinc/reva/keyboard.json
+++ b/keyboards/25keys/zinc/reva/keyboard.json
@@ -22,7 +22,9 @@
},
"split": {
"enabled": true,
- "soft_serial_pin": "D2"
+ "serial": {
+ "pin": "D2"
+ }
},
"tapping": {
"term": 100
diff --git a/keyboards/25keys/zinc/rules.mk b/keyboards/25keys/zinc/rules.mk
deleted file mode 100644
index 1edcb0a3455..00000000000
--- a/keyboards/25keys/zinc/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DEFAULT_FOLDER = 25keys/zinc/rev1
diff --git a/keyboards/3keyecosystem/2key2/keymaps/via/keymap.c b/keyboards/3keyecosystem/2key2/keymaps/via/keymap.c
deleted file mode 100644
index 7400a9c622e..00000000000
--- a/keyboards/3keyecosystem/2key2/keymaps/via/keymap.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright 2021 John Mueller
- *
- * 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
-
-// Defines names for use in layer keycodes and the keymap
-enum layer_names {
- _BASE
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Base */
- [_BASE] = LAYOUT(
- KC_A, KC_B
- ),
-
- [1] = LAYOUT(
- KC_TRNS, KC_TRNS
- ),
-
- [2] = LAYOUT(
- KC_TRNS, KC_TRNS
- ),
-
- [3] = LAYOUT(
- KC_TRNS, KC_TRNS
- )
- };
diff --git a/keyboards/3keyecosystem/2key2/keymaps/via/rules.mk b/keyboards/3keyecosystem/2key2/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/3keyecosystem/2key2/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/40percentclub/25/config.h b/keyboards/40percentclub/25/config.h
deleted file mode 100644
index 1710ba42ee9..00000000000
--- a/keyboards/40percentclub/25/config.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright 2018
- *
- * 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
-
-/* Select hand configuration */
-#define MASTER_LEFT
-//#define MASTER_RIGHT
-//#define EE_HANDS
-
-/*
- * 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/40percentclub/25/keyboard.json b/keyboards/40percentclub/25/keyboard.json
index aede80ef172..e23d0578c3f 100644
--- a/keyboards/40percentclub/25/keyboard.json
+++ b/keyboards/40percentclub/25/keyboard.json
@@ -28,7 +28,9 @@
},
"split": {
"enabled": true,
- "soft_serial_pin": "D0"
+ "serial": {
+ "pin": "D0"
+ }
},
"processor": "atmega32u4",
"bootloader": "caterina",
diff --git a/keyboards/40percentclub/4x4/keymaps/via/keymap.c b/keyboards/40percentclub/4x4/keymaps/via/keymap.c
deleted file mode 100644
index 6c340e3eac8..00000000000
--- a/keyboards/40percentclub/4x4/keymaps/via/keymap.c
+++ /dev/null
@@ -1,105 +0,0 @@
- /* Copyright 2021 Milan Düwel
- *
- * 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
-
-enum custom_layers {
- PAD,
- _QW,
- NUM,
- DIR
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Single 4x4 board only
- * .-----------------------------------.
- * | 7 | 8 | 9 | / |
- * |--------+--------+--------+--------|
- * | 4 | 5 | 6 | * |
- * |--------+--------+--------+--------|
- * | 1 | 2 | 3 | - |
- * |--------+--------+--------+--------|
- * | 0 | QWERTY | . | + |
- * '-----------------------------------'
- */
-
- [PAD] = LAYOUT_ortho_4x4(
- KC_KP_7, KC_KP_8, KC_KP_9, KC_PSLS,
- KC_KP_4, KC_KP_5, KC_KP_6, KC_PAST,
- KC_KP_1, KC_KP_2, KC_KP_3, KC_PMNS,
- KC_KP_0, DF(_QW), KC_KP_DOT, KC_PPLS
- ),
-
-/* QWERTY
- * .-----------------------------------------------------------------------------------------------------------------------------------------------.
- * | ESC | Q | W | E | R | T | Y | U | I | O | P | BACKSP | 7 | 8 | 9 | / |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | TAB | A | S | D | F | G | H | J | K | L | ; | ' | 4 | 5 | 6 | * |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | SHIFT | Z | X | C | V | B | N | M | , | . | / | ENT/SFT| 1 | 2 | 3 | - |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | LCTRL | LGUI | ALT | ALT | NUM | SHIFT | SPACE | DIR | RGUI | RALT | DEL | CTRL | 0 | 0 | . | + |
- * '-----------------------------------------------------------------------------------------------------------------------------------------------'
- */
-
- [_QW] = LAYOUT_ortho_4x16(
- 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_KP_7, KC_KP_8, KC_KP_9, KC_PSLS,
- 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_KP_4, KC_KP_5, KC_KP_6, KC_PAST,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT), KC_KP_1, KC_KP_2, KC_KP_3, KC_PMNS,
- KC_LCTL, KC_LGUI, KC_LALT, KC_LALT, MO(NUM), KC_LSFT, KC_SPC, MO(DIR), KC_RGUI, KC_RALT, KC_DEL, KC_RCTL, KC_KP_0, KC_KP_0, KC_KP_DOT, KC_PPLS
- ),
-
-/* NUMBERS
- * .-----------------------------------------------------------------------------------------------------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | NUMLOCK| / | * | - | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | | + | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | F11 | F12 | | | | ENTER | SHIFT | RGUI | ./ALT | BKSC | | | | ENTER | |
- * | | | | | | | | | | |CTRLhold| | | | | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | | | | | | ENTER | SHIFT | | | | | | | | |
- * '-----------------------------------------------------------------------------------------------------------------------------------------------'
- */
-
- [NUM] = LAYOUT_ortho_4x16(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, _______,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, KC_PPLS, _______,
- _______, KC_F11, KC_F12, _______, _______, _______, KC_ENT, KC_RSFT, KC_RGUI, ALT_T(KC_DOT), CTL_T(KC_BSPC), _______, _______, _______, KC_PENT, _______,
- _______, _______, _______, _______, _______, _______, KC_ENT, KC_RSFT, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
-/* DIRECTIONS
- * .-----------------------------------------------------------------------------------------------------------------------------------------------.
- * | QK_BOOT | TAB | up | | INS | CTRL | SHIFT | PgUp | Home | - | = | DEL | | | | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | CAPSLK | left | down | right | PrScr | SHIFT | CTRL | PgDn | End | [ | ] | \ | | | | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | P-Brk | | | | | | | RGUI | ALT | | | | | | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | KEYPAD | | | | | | | | | | | | | | | |
- * '-----------------------------------------------------------------------------------------------------------------------------------------------'
- */
-
- [DIR] = LAYOUT_ortho_4x16(
- QK_BOOT, KC_TAB, KC_UP, _______, KC_INS, KC_LCTL, KC_LSFT, KC_PGUP, KC_HOME, KC_MINS, KC_EQL, KC_DEL, _______, _______, _______, _______,
- KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PSCR, KC_LSFT, KC_LCTL, KC_PGDN, KC_END, KC_LBRC, KC_RBRC, KC_BSLS, _______, _______, _______, _______,
- _______, KC_PAUS, _______, _______, _______, _______, _______, _______, KC_RGUI, KC_RALT, _______, _______, _______, _______, _______, _______,
- DF(PAD), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
-};
diff --git a/keyboards/40percentclub/4x4/keymaps/via/rules.mk b/keyboards/40percentclub/4x4/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/40percentclub/4x4/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/40percentclub/5x5/keymaps/via/keymap.c b/keyboards/40percentclub/5x5/keymaps/via/keymap.c
deleted file mode 100644
index 95f385e1358..00000000000
--- a/keyboards/40percentclub/5x5/keymaps/via/keymap.c
+++ /dev/null
@@ -1,117 +0,0 @@
- /* Copyright 2021 Milan Düwel
- *
- * 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
-
-enum custom_layers {
- PAD,
- _QW,
- NUM,
- DIR
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Single 5x5 board only
- * .--------------------------------------------.
- * | QWERTY | / | * | - | |
- * |--------+--------+--------+--------+--------|
- * | 7 | 8 | 9 | + | |
- * |--------+--------+--------+--------+--------|
- * | 4 | 5 | 6 | + | |
- * |--------+--------+--------+--------+--------|
- * | 1 | 2 | 3 | ENTER | |
- * |--------+--------+--------+--------+--------|
- * | 0 | 0 | . | ENTER | |
- * '--------------------------------------------'
- */
-
- [PAD] = LAYOUT_ortho_5x5(
- DF(_QW), KC_PSLS, KC_PAST, KC_PMNS, _______,
- KC_KP_7, KC_KP_8, KC_KP_9, KC_PPLS, _______,
- KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______,
- KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, _______,
- KC_KP_0, KC_KP_0, KC_KP_DOT, KC_PENT, _______
- ),
-
-/* QWERTY
- * .--------------------------------------------------------------------------------------------------------------------------------------.
- * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | ESC | Q | W | E | R | T | Y | U | I | O | P | BACKSP | 7 | 8 | 9 |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | TAB | A | S | D | F | G | H | J | K | L | ; | ' | 4 | 5 | 6 |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | SHIFT | Z | X | C | V | B | N | M | , | . | / | ENT/SFT| 1 | 2 | 3 |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | LCTRL | LGUI | ALT | ALT | NUM | SHIFT | SPACE | DIR | RGUI | RALT | DEL | CTRL | 0 | 0 | . |
- * '--------------------------------------------------------------------------------------------------------------------------------------'
- */
-
- [_QW] = LAYOUT_ortho_5x15(
- _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, _______,
- 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_KP_7, KC_KP_8, KC_KP_9,
- 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_KP_4, KC_KP_5, KC_KP_6,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT), KC_KP_1, KC_KP_2, KC_KP_3,
- KC_LCTL, KC_LGUI, KC_LALT, KC_LALT, MO(NUM), KC_LSFT, KC_SPC, MO(DIR), KC_RGUI, KC_RALT, KC_DEL, KC_RCTL, KC_KP_0, KC_KP_0, KC_KP_DOT
- ),
-
-/* NUMBERS
- * .--------------------------------------------------------------------------------------------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | NUMLOCK| / | * | - |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | | + |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | F11 | F12 | | | | ENTER | SHIFT | RGUI | ./ALT | BKSC | | | | ENTER |
- * | | | | | | | | | | |CTRLhold| | | | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | | | | | | ENTER | SHIFT | | | | | | | |
- * '--------------------------------------------------------------------------------------------------------------------------------------'
- */
-
- [NUM] = LAYOUT_ortho_5x15(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, KC_PPLS,
- _______, KC_F11, KC_F12, _______, _______, _______, KC_ENT, KC_RSFT, KC_RGUI, ALT_T(KC_DOT), CTL_T(KC_BSPC), _______, _______, _______, KC_PENT,
- _______, _______, _______, _______, _______, _______, KC_ENT, KC_RSFT, _______, _______, _______, _______, _______, _______, _______
- ),
-
-/* DIRECTIONS
- * .--------------------------------------------------------------------------------------------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | QK_BOOT | TAB | up | | INS | CTRL | SHIFT | PgUp | Home | - | = | DEL | | | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | CAPSLK | left | down | right | PrScr | SHIFT | CTRL | PgDn | End | [ | ] | \ | | | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | P-Brk | | | | | | | RGUI | ALT | | | | | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | KEYPAD | | | | | | | | | | | | | | |
- * '--------------------------------------------------------------------------------------------------------------------------------------'
- */
-
- [DIR] = LAYOUT_ortho_5x15(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- QK_BOOT, KC_TAB, KC_UP, _______, KC_INS, KC_LCTL, KC_LSFT, KC_PGUP, KC_HOME, KC_MINS, KC_EQL, KC_DEL, _______, _______, _______,
- KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PSCR, KC_LSFT, KC_LCTL, KC_PGDN, KC_END, KC_LBRC, KC_RBRC, KC_BSLS, _______, _______, _______,
- _______, KC_PAUS, _______, _______, _______, _______, _______, _______, KC_RGUI, KC_RALT, _______, _______, _______, _______, _______,
- DF(PAD), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
-};
diff --git a/keyboards/40percentclub/5x5/keymaps/via/rules.mk b/keyboards/40percentclub/5x5/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/40percentclub/5x5/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/40percentclub/6lit/config.h b/keyboards/40percentclub/6lit/config.h
deleted file mode 100644
index 1710ba42ee9..00000000000
--- a/keyboards/40percentclub/6lit/config.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright 2018
- *
- * 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
-
-/* Select hand configuration */
-#define MASTER_LEFT
-//#define MASTER_RIGHT
-//#define EE_HANDS
-
-/*
- * 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/40percentclub/6lit/keyboard.json b/keyboards/40percentclub/6lit/keyboard.json
index 06ffc890d2b..52a8914d7d7 100644
--- a/keyboards/40percentclub/6lit/keyboard.json
+++ b/keyboards/40percentclub/6lit/keyboard.json
@@ -28,7 +28,9 @@
},
"split": {
"enabled": true,
- "soft_serial_pin": "D0"
+ "serial": {
+ "pin": "D0"
+ }
},
"processor": "atmega32u4",
"bootloader": "caterina",
diff --git a/keyboards/40percentclub/foobar/config.h b/keyboards/40percentclub/foobar/config.h
deleted file mode 100644
index 1710ba42ee9..00000000000
--- a/keyboards/40percentclub/foobar/config.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright 2018
- *
- * 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
-
-/* Select hand configuration */
-#define MASTER_LEFT
-//#define MASTER_RIGHT
-//#define EE_HANDS
-
-/*
- * 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/40percentclub/foobar/keyboard.json b/keyboards/40percentclub/foobar/keyboard.json
index 0a2769e04a6..ec568b23827 100644
--- a/keyboards/40percentclub/foobar/keyboard.json
+++ b/keyboards/40percentclub/foobar/keyboard.json
@@ -28,7 +28,9 @@
},
"split": {
"enabled": true,
- "soft_serial_pin": "D0"
+ "serial": {
+ "pin": "D0"
+ }
},
"processor": "atmega32u4",
"bootloader": "caterina",
diff --git a/keyboards/40percentclub/gherkin/keymaps/via/keymap.c b/keyboards/40percentclub/gherkin/keymaps/via/keymap.c
deleted file mode 100644
index d119e6ae913..00000000000
--- a/keyboards/40percentclub/gherkin/keymaps/via/keymap.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
-Copyright 2021 keebnewb
-
-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_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,
- KC_Z, KC_X, KC_C, KC_V, KC_BSPC, KC_SPC, KC_B, KC_N, KC_M, KC_ENT
- ),
-
- [1] = LAYOUT_ortho_3x10(
- 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_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [2] = LAYOUT_ortho_3x10(
- 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
- ),
-
- [3] = LAYOUT_ortho_3x10(
- 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/40percentclub/gherkin/keymaps/via/rules.mk b/keyboards/40percentclub/gherkin/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc9..00000000000
--- a/keyboards/40percentclub/gherkin/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/40percentclub/half_n_half/keyboard.json b/keyboards/40percentclub/half_n_half/keyboard.json
index 3e0c646a500..4f18d235b22 100644
--- a/keyboards/40percentclub/half_n_half/keyboard.json
+++ b/keyboards/40percentclub/half_n_half/keyboard.json
@@ -28,7 +28,9 @@
},
"split": {
"enabled": true,
- "soft_serial_pin": "D0"
+ "serial": {
+ "pin": "D0"
+ }
},
"processor": "atmega32u4",
"bootloader": "caterina",
diff --git a/keyboards/40percentclub/i75/rules.mk b/keyboards/40percentclub/i75/rules.mk
deleted file mode 100644
index 48b04275501..00000000000
--- a/keyboards/40percentclub/i75/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DEFAULT_FOLDER = 40percentclub/i75/promicro
diff --git a/keyboards/40percentclub/luddite/keymaps/default/keymap.c b/keyboards/40percentclub/luddite/keymaps/default/keymap.c
index 71a1c389765..7aba5fc4dbd 100644
--- a/keyboards/40percentclub/luddite/keymaps/default/keymap.c
+++ b/keyboards/40percentclub/luddite/keymaps/default/keymap.c
@@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_FN1] = LAYOUT_60_ansi(
QK_GESC, 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_BSPC,
- RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_UP, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_GRV, _______, _______, _______, _______, _______, _______, _______
diff --git a/keyboards/40percentclub/luddite/keymaps/via/keymap.c b/keyboards/40percentclub/luddite/keymaps/via/keymap.c
deleted file mode 100644
index f8e876250a6..00000000000
--- a/keyboards/40percentclub/luddite/keymaps/via/keymap.c
+++ /dev/null
@@ -1,35 +0,0 @@
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_60_ansi(
- 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_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,
- LT(1,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, MT(MOD_RSFT,KC_UP),
- KC_LCTL, KC_LGUI, KC_LALT , KC_SPC, KC_RALT, LT(1,KC_LEFT), LT(2,KC_DOWN), MT(MOD_RCTL,KC_RGHT)
- ),
-
- [1] = LAYOUT_60_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_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_HOME, KC_END, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_TRNS,
- KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_INS, KC_DEL, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MENU, KC_TRNS
- ),
-
- [2] = LAYOUT_60_ansi(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_TOGG, BL_UP, BL_DOWN,KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT,
- KC_TRNS, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, 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
- ),
-
- [3] = LAYOUT_60_ansi(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- )
-};
diff --git a/keyboards/40percentclub/luddite/keymaps/via/rules.mk b/keyboards/40percentclub/luddite/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc9..00000000000
--- a/keyboards/40percentclub/luddite/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/40percentclub/mf68/keymaps/via/keymap.c b/keyboards/40percentclub/mf68/keymaps/via/keymap.c
deleted file mode 100644
index efd595ac18b..00000000000
--- a/keyboards/40percentclub/mf68/keymaps/via/keymap.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* 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 QMK_KEYBOARD_H
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_68_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_INS, 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_DEL, 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, MO(1), KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [1] = LAYOUT_68_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_BSPC, KC_VOLU, KC_HOME,
- _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, BL_STEP, _______, KC_VOLD, KC_END,
- _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, KC_MUTE,
- _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT
- ),
- [2] = LAYOUT_68_ansi(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [3] = LAYOUT_68_ansi(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/40percentclub/mf68/keymaps/via/rules.mk b/keyboards/40percentclub/mf68/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc9..00000000000
--- a/keyboards/40percentclub/mf68/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/40percentclub/nano/keymaps/default/keymap.c b/keyboards/40percentclub/nano/keymaps/default/keymap.c
index 9ce282a28a1..b5055a30b6f 100644
--- a/keyboards/40percentclub/nano/keymaps/default/keymap.c
+++ b/keyboards/40percentclub/nano/keymaps/default/keymap.c
@@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[_FN] = LAYOUT(
- KC_F, _______, RGB_HUI, _______,
- RGB_TOG, RGB_MOD, RGB_HUD, _______
+ KC_F, _______, UG_HUEU, _______,
+ UG_TOGG, UG_NEXT, UG_HUED, _______
)
};
diff --git a/keyboards/40percentclub/nein/keymaps/default/keymap.c b/keyboards/40percentclub/nein/keymaps/default/keymap.c
index 3275b1b746c..0b3563ba611 100644
--- a/keyboards/40percentclub/nein/keymaps/default/keymap.c
+++ b/keyboards/40percentclub/nein/keymaps/default/keymap.c
@@ -23,7 +23,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[1] = LAYOUT_ortho_3x3(
QK_BOOT, _______, KC_STOP,
- _______, _______, RGB_MOD,
+ _______, _______, _______,
KC_MPRV, _______, KC_MNXT
),
};
diff --git a/keyboards/40percentclub/nein/keymaps/via/keymap.c b/keyboards/40percentclub/nein/keymaps/via/keymap.c
deleted file mode 100644
index 463788718b6..00000000000
--- a/keyboards/40percentclub/nein/keymaps/via/keymap.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2019
- *
- * 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_3x3(
- KC_MUTE, KC_HOME, KC_MPLY,
- MO(1), KC_UP, KC_END,
- KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [1] = LAYOUT_ortho_3x3(
- QK_BOOT, _______, KC_STOP,
- _______, _______, RGB_MOD,
- KC_MPRV, _______, KC_MNXT
- ),
- [2] = LAYOUT_ortho_3x3(
- _______, _______, _______,
- _______, _______, _______,
- _______, _______, _______
- ),
- [3] = LAYOUT_ortho_3x3(
- _______, _______, _______,
- _______, _______, _______,
- _______, _______, _______
- ),
-};
diff --git a/keyboards/40percentclub/nein/keymaps/via/rules.mk b/keyboards/40percentclub/nein/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc9..00000000000
--- a/keyboards/40percentclub/nein/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/40percentclub/nori/keymaps/default/keymap.c b/keyboards/40percentclub/nori/keymaps/default/keymap.c
index 03f8c157878..1c7405f2aca 100644
--- a/keyboards/40percentclub/nori/keymaps/default/keymap.c
+++ b/keyboards/40percentclub/nori/keymaps/default/keymap.c
@@ -13,16 +13,14 @@ enum layer_names {
_ADJUST
};
-enum custom_keycodes {
- QWERTY = SAFE_RANGE,
- COLEMAK,
- DVORAK,
-};
-
#define LOWER MO(_LOWER)
#define RAISE MO(_RAISE)
#define ADJUST MO(_ADJUST)
+#define QWERTY PDF(_QWERTY)
+#define COLEMAK PDF(_COLEMAK)
+#define DVORAK PDF(_DVORAK)
+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
* ,-----------------------------------------------------------------------------------.
@@ -138,24 +136,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
layer_state_t layer_state_set_user(layer_state_t state) {
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
- }
- return false;
- case COLEMAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_COLEMAK);
- }
- return false;
- case DVORAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_DVORAK);
- }
- return false;
- }
- return true;
-}
diff --git a/keyboards/40percentclub/polyandry/rules.mk b/keyboards/40percentclub/polyandry/rules.mk
deleted file mode 100644
index 3064c8202cb..00000000000
--- a/keyboards/40percentclub/polyandry/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DEFAULT_FOLDER = 40percentclub/polyandry/promicro
diff --git a/keyboards/40percentclub/sixpack/keymaps/via/keymap.c b/keyboards/40percentclub/sixpack/keymaps/via/keymap.c
deleted file mode 100644
index e2eaaa1d0a4..00000000000
--- a/keyboards/40percentclub/sixpack/keymaps/via/keymap.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* 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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* Default 2x3 layout with 6 Layers
- * .--------------------------.
- * | MUTE | UP | PLAY |
- * |--------+--------+--------+
- * | LEFT | DOWN | RIGHT |
- * '--------------------------'
- */
-
- [0] = LAYOUT_ortho_2x3(KC_MUTE, KC_UP , KC_MPLY,
- KC_LEFT, KC_DOWN, KC_RGHT),
- [1] = LAYOUT_ortho_2x3(KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS),
- [2] = LAYOUT_ortho_2x3(KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS),
- [3] = LAYOUT_ortho_2x3(KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS),
-
-};
diff --git a/keyboards/40percentclub/sixpack/keymaps/via/rules.mk b/keyboards/40percentclub/sixpack/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/40percentclub/sixpack/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/40percentclub/tomato/keymaps/default/keymap.c b/keyboards/40percentclub/tomato/keymaps/default/keymap.c
index 728dc25a9a5..528f995a7ee 100644
--- a/keyboards/40percentclub/tomato/keymaps/default/keymap.c
+++ b/keyboards/40percentclub/tomato/keymaps/default/keymap.c
@@ -86,14 +86,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* ,-------------------------------------------------------------------------------.
* | Calc | Web | Mail |Explore| | | | | | |
* |-------------------------------------------------------------------------------|
- * |RGB_TOG|RGB_MOD|RGB_HUI|RGB_HUD|xxxxxxx|xxxxxxx|RGB_SAI|RGB_SAD|RGB_VAI|RGB_VAD|
+ * |UG_TOGG|UG_NEXT|UG_HUEU|UG_HUED|xxxxxxx|xxxxxxx|UG_SATU|UG_SATD|UG_VALU|UG_VALD|
* |-------------------------------------------------------------------------------|
* | | | | | Flash | | | | | |
* '-------------------------------------------------------------------------------'
*/
LAYOUT_ortho_3x10
( KC_CALC,KC_WSCH,KC_MAIL,KC_MYCM,_______,_______,_______,_______,_______,_______
- , RGB_TOG,RGB_MOD,RGB_HUI,RGB_HUD,XXXXXXX,XXXXXXX,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD
+ , UG_TOGG,UG_NEXT,UG_HUEU,UG_HUED,XXXXXXX,XXXXXXX,UG_SATU,UG_SATD,UG_VALU,UG_VALD
, _______,_______,_______,_______,QK_BOOT,_______,_______,_______,_______,_______
),
};
diff --git a/keyboards/40percentclub/ut47/keymaps/rgb/keymap.c b/keyboards/40percentclub/ut47/keymaps/rgb/keymap.c
index 75dba3a2d42..86ceefaafbe 100644
--- a/keyboards/40percentclub/ut47/keymaps/rgb/keymap.c
+++ b/keyboards/40percentclub/ut47/keymaps/rgb/keymap.c
@@ -52,7 +52,7 @@ LAYOUT(
LAYOUT( /* Tab */
KC_ESC, KC_CALC, KC_WHOM, KC_MAIL, KC_MYCM, _______, _______, _______, _______, _______, KC_PSCR, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______,
+ _______, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R
),
};
diff --git a/keyboards/40percentclub/ut47/ut47.c b/keyboards/40percentclub/ut47/ut47.c
index d5675e1047c..867d8c02024 100644
--- a/keyboards/40percentclub/ut47/ut47.c
+++ b/keyboards/40percentclub/ut47/ut47.c
@@ -19,6 +19,8 @@
void matrix_init_kb(void) {
uart_init(9600);
+
+ matrix_init_user();
}
#endif
diff --git a/keyboards/45_ats/keymaps/via/keymap.c b/keyboards/45_ats/keymaps/via/keymap.c
deleted file mode 100644
index 3d4b74ab40d..00000000000
--- a/keyboards/45_ats/keymaps/via/keymap.c
+++ /dev/null
@@ -1,108 +0,0 @@
- /*
- Copyright 2020 Alec Penland
- Copyright 2020 Garret Gartner
-
- 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
-
-// Layer names
-enum ats_layers{
- // - Base layer:
- _BASE,
- // - Symbols, numbers, and functions:
- _FN,
- // - Alternate Function layer:
- _LN
-};
-
-#define RS_SLS RSFT_T(KC_SLSH)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Default QWERTY layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐
- * │Esc│ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │Del│BkS│ │PgU│
- * ├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ ├───┤
- * │Tab │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ' │Enter │ │PgD│
- * ├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┘ ├───┤
- * │LShift│ Z │ X │ C │ V │ B │ N │ M │ , │ . │Sft/│ ┌───┐ │CAP│
- * ├────┬─┴─┬─┴──┬┴───┴───┴─┬─┴───┴──┬┴───┼───┴┬───┘ │ ↑ │ └───┘
- * │LCtl│OS │LAlt│ Fn │ Space │RAlt│ Ln │ ┌───┼───┼───┐
- * └────┴───┴────┴──────────┴────────┴────┴────┘ │ ← │ ↓ │ → │
- * └───┴───┴───┘
- */
- [_BASE] = LAYOUT_split_space(
- KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, KC_PGUP,
- KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOTE, KC_ENT, KC_PGDN,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RS_SLS, KC_UP, KC_CAPS,
- KC_LCTL, KC_LGUI, KC_LALT, MO(_FN), KC_SPACE, KC_RALT, MO(_LN), KC_LEFT, KC_DOWN, KC_RIGHT
- ),
- /* Main Numbers, Symbols & Function Layer (MOMENTARY)
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐
- * │ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ [ │ ] │ \ │ │ │Hme│
- * ├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ ├───┤
- * │ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ │ │End│
- * ├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┘ ├───┤
- * │ │ ( │ ) │ ; │ . │ │ - │ + │ * │ / │ = │ ┌───┐ │ │
- * ├────┬─┴─┬─┴──┬┴───┴───┴─┬─┴───┴──┬┴───┼───┴┬───┘ │ │ └───┘
- * │ │ │ │ │ │ │ │ ┌───┼───┼───┐
- * └────┴───┴────┴──────────┴────────┴────┴────┘ │ │ │ │
- * └───┴───┴───┘
- */
- [_FN] = LAYOUT_split_space(
- _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LBRC, KC_RBRC, KC_BSLS, _______, KC_HOME,
- _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_ENTER, KC_END,
- _______, KC_LPRN, KC_RPRN, KC_SCLN, KC_DOT, _______, KC_MINS, KC_PLUS, KC_ASTR, KC_SLSH, KC_EQL, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- /* ALTERNATE Function layer (MOMENTARY)
- * ┌────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┐
- * │ PWR│F1 │F2 │F3 │F4 │F5 │F6 │ │ │ │ │PRV│NXT│ │VL+│
- * ├────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ ├───┤
- * │ SLP │F7 │F8 │F9 │F10│F11│F12│ │ │ │ │ PLAY │ │VL-│
- * ├─────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┘ ├───┤
- * │ WAKE │ │ │ │ │ │ │ │ │ │ │ ┌───┐ │ │
- * ├────┬──┴─┬─┴──┬┴───┴───┴─┬─┴───┴──┬┴───┼───┴┬───┘ │ │ └───┘
- * │RSET│ │ │ │ │ │ │ ┌───┼───┼───┐
- * └────┴────┴────┴──────────┴────────┴────┴────┘ │ │ │ │
- * └───┴───┴───┘
- */
- [_LN] = LAYOUT_split_space(
- KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLU,
- KC_SLEP, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, KC_MPLY, KC_VOLD,
- KC_WAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
-
-//function for layer indicator LED
-layer_state_t layer_state_set_user(layer_state_t state) {
- gpio_write_pin(D0, layer_state_cmp(state, 0));
- gpio_write_pin(D1, layer_state_cmp(state, 1));
- gpio_write_pin(D2, layer_state_cmp(state, 2));
- return state;
-}
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (index == 0) {
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- }
- return true;
-}
diff --git a/keyboards/45_ats/keymaps/via/rules.mk b/keyboards/45_ats/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/45_ats/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/4pplet/aekiso60/keymaps/via/keymap.c b/keyboards/4pplet/aekiso60/keymaps/via/keymap.c
deleted file mode 100644
index 7fda2345c35..00000000000
--- a/keyboards/4pplet/aekiso60/keymaps/via/keymap.c
+++ /dev/null
@@ -1,34 +0,0 @@
-#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_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_LCTL, 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, KC_RSFT, MO(1),
- KC_LCTL, KC_LGUI, KC_LALT, _______, KC_SPC, _______, KC_RALT, KC_RGUI, KC_RCTL
- ),
- [1] = LAYOUT_all(
- KC_EXEC, 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_BSPC, KC_UP, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, _______,
- KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_MUTE, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_INS, KC_PENT,
- _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_PPLS, KC_PMNS, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
- QK_BOOT, _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, _______
- ),
- [2] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [3] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/4pplet/aekiso60/keymaps/via/rules.mk b/keyboards/4pplet/aekiso60/keymaps/via/rules.mk
deleted file mode 100644
index c4b503281b3..00000000000
--- a/keyboards/4pplet/aekiso60/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-RGBLIGHT_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/4pplet/bootleg/keymaps/via/keymap.c b/keyboards/4pplet/bootleg/keymaps/via/keymap.c
deleted file mode 100644
index 3a817590e97..00000000000
--- a/keyboards/4pplet/bootleg/keymaps/via/keymap.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-// main layer
-[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_NO, 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_LCTL, 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_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, MO(1)),
-// basic function layer
-[1] = LAYOUT_all(
- QK_BOOT, 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, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, 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),
-// extra layer for VIA
-[2] = LAYOUT_all(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-// extra layer for VIA
-[3] = LAYOUT_all(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
-};
diff --git a/keyboards/4pplet/bootleg/keymaps/via/rules.mk b/keyboards/4pplet/bootleg/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/4pplet/bootleg/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/4pplet/eagle_viper_rep/rev_a/keyboard.json b/keyboards/4pplet/eagle_viper_rep/rev_a/keyboard.json
index 18d8ba5d8aa..59a518b9713 100644
--- a/keyboards/4pplet/eagle_viper_rep/rev_a/keyboard.json
+++ b/keyboards/4pplet/eagle_viper_rep/rev_a/keyboard.json
@@ -64,12 +64,16 @@
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
- "60_tsangan_hhkb",
+ "60_ansi_tsangan_split_bs_rshift",
"60_hhkb",
"60_iso",
"60_iso_split_bs_rshift",
- "60_iso_tsangan"
+ "60_iso_tsangan",
+ "60_iso_tsangan_split_bs_rshift"
],
+ "layout_aliases": {
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
@@ -352,7 +356,7 @@
{"label": "Ctrl", "matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
]
},
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [1, 0], "x": 1, "y": 0},
diff --git a/keyboards/4pplet/eagle_viper_rep/rev_a/keymaps/via/keymap.c b/keyboards/4pplet/eagle_viper_rep/rev_a/keymaps/via/keymap.c
deleted file mode 100644
index d8aa29c890b..00000000000
--- a/keyboards/4pplet/eagle_viper_rep/rev_a/keymaps/via/keymap.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
-Copyright 2021 Stefan Sundin "4pplet" <4pplet@protonmail.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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-// main layer
-[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_GRV,
- 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_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_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, KC_RSFT, MO(1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, KC_RALT, KC_RGUI, MO(1)),
-// basic function layer
-[1] = LAYOUT_all(
- QK_BOOT, 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, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, 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),
-// extra layer for VIA
-[2] = LAYOUT_all(
- 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,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-// extra layer for VIA
-[3] = LAYOUT_all(
- 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,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-// extra layer for VIA
-[4] = LAYOUT_all(
- 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,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
-};
diff --git a/keyboards/4pplet/eagle_viper_rep/rev_a/keymaps/via/rules.mk b/keyboards/4pplet/eagle_viper_rep/rev_a/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/4pplet/eagle_viper_rep/rev_a/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/4pplet/eagle_viper_rep/rev_b/keyboard.json b/keyboards/4pplet/eagle_viper_rep/rev_b/keyboard.json
index e0356d5dad5..bf7d11f74ba 100644
--- a/keyboards/4pplet/eagle_viper_rep/rev_b/keyboard.json
+++ b/keyboards/4pplet/eagle_viper_rep/rev_b/keyboard.json
@@ -64,17 +64,19 @@
"processor": "STM32F072",
"bootloader": "stm32-dfu",
"layout_aliases": {
- "LAYOUT": "LAYOUT_all"
+ "LAYOUT": "LAYOUT_all",
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"community_layouts": [
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
- "60_tsangan_hhkb",
+ "60_ansi_tsangan_split_bs_rshift",
"60_hhkb",
"60_iso",
"60_iso_split_bs_rshift",
- "60_iso_tsangan"
+ "60_iso_tsangan",
+ "60_iso_tsangan_split_bs_rshift"
],
"layouts": {
"LAYOUT_all": {
@@ -360,7 +362,7 @@
{"label": "Ctrl", "matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
]
},
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "1", "matrix": [1, 0], "x": 1, "y": 0},
diff --git a/keyboards/4pplet/eagle_viper_rep/rev_b/keymaps/via/keymap.c b/keyboards/4pplet/eagle_viper_rep/rev_b/keymaps/via/keymap.c
deleted file mode 100644
index a53bbe73456..00000000000
--- a/keyboards/4pplet/eagle_viper_rep/rev_b/keymaps/via/keymap.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
-Copyright 2022 Stefan Sundin "4pplet" <4pplet@protonmail.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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-// main layer
-[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_GRV,
- 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_BSPC,
- 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, KC_RSFT, MO(1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RALT, KC_RGUI, MO(1)),
-// basic function layer
-[1] = LAYOUT_all(
- QK_BOOT, 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, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, 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),
-// extra layer for VIA
-[2] = LAYOUT_all(
- 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,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-// extra layer for VIA
-[3] = LAYOUT_all(
- 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,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-// extra layer for VIA
-[4] = LAYOUT_all(
- 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,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
-};
diff --git a/keyboards/4pplet/eagle_viper_rep/rev_b/keymaps/via/rules.mk b/keyboards/4pplet/eagle_viper_rep/rev_b/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/4pplet/eagle_viper_rep/rev_b/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/4pplet/ibe60/keymaps/via/keymap.c b/keyboards/4pplet/ibe60/keymaps/via/keymap.c
deleted file mode 100644
index 710b5ce8497..00000000000
--- a/keyboards/4pplet/ibe60/keymaps/via/keymap.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
-Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-// main layer
-[0] = LAYOUT_60_hhkb(
- 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_GRV,
- 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_BSPC,
- 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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI),
-// basic function layer
-[1] = LAYOUT_60_hhkb(
- QK_BOOT, 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, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, 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/4pplet/ibe60/keymaps/via/rules.mk b/keyboards/4pplet/ibe60/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/4pplet/ibe60/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/4pplet/perk60_iso/keymaps/default/keymap.c b/keyboards/4pplet/perk60_iso/keymaps/default/keymap.c
index d720096ad31..6c2698b4f89 100644
--- a/keyboards/4pplet/perk60_iso/keymaps/default/keymap.c
+++ b/keyboards/4pplet/perk60_iso/keymaps/default/keymap.c
@@ -29,6 +29,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
QK_BOOT, 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_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, RM_TOGG, RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, RGB_M_P, RGB_M_B, RGB_M_R, 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/4pplet/perk60_iso/keymaps/via/keymap.c b/keyboards/4pplet/perk60_iso/keymaps/via/keymap.c
deleted file mode 100644
index cda76050562..00000000000
--- a/keyboards/4pplet/perk60_iso/keymaps/via/keymap.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-Copyright 2022 Stefan Sundin "4pplet" <4pplet@protonmail.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 QMK_KEYBOARD_H
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-// main layer// main layer
-[0] = LAYOUT_60_iso(
- 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_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, KC_RSFT,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL),
- // basic function layer
-[1] = LAYOUT_60_iso(
- QK_BOOT, 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_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
-[2] = LAYOUT_60_iso(
- 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_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, 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),
-
-[3] = LAYOUT_60_iso(
- 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_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, 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/4pplet/perk60_iso/keymaps/via/rules.mk b/keyboards/4pplet/perk60_iso/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/4pplet/perk60_iso/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/4pplet/steezy60/keymaps/via/keymap.c b/keyboards/4pplet/steezy60/keymaps/via/keymap.c
deleted file mode 100644
index d6a1151fcfd..00000000000
--- a/keyboards/4pplet/steezy60/keymaps/via/keymap.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-Copyright 2023 Stefan Sundin "4pplet"
-
-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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUBS, KC_ENT,
- KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, KC_NO,
- KC_LCTL, KC_LGUI, KC_NO, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_NO, KC_APP, MO(1)),
-
-[1] = LAYOUT_all(
- QK_BOOT, 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_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ),
-
-[2] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ),
-
-[3] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ )
-};
diff --git a/keyboards/4pplet/steezy60/keymaps/via/rules.mk b/keyboards/4pplet/steezy60/keymaps/via/rules.mk
deleted file mode 100644
index c4b503281b3..00000000000
--- a/keyboards/4pplet/steezy60/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-RGBLIGHT_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/4pplet/steezy60/rev_a/keyboard.json b/keyboards/4pplet/steezy60/rev_a/keyboard.json
index ffd44642230..bbc3d1601b8 100644
--- a/keyboards/4pplet/steezy60/rev_a/keyboard.json
+++ b/keyboards/4pplet/steezy60/rev_a/keyboard.json
@@ -18,11 +18,11 @@
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
+ "60_ansi_tsangan_split_bs_rshift",
"60_hhkb",
"60_iso",
"60_iso_split_bs_rshift",
- "60_iso_tsangan",
- "60_tsangan_hhkb"
+ "60_iso_tsangan"
],
"diode_direction": "COL2ROW",
"matrix_pins": {
@@ -57,6 +57,9 @@
"ws2812": {
"pin": "D3"
},
+ "layout_aliases": {
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
@@ -591,7 +594,7 @@
{"label": "Ctrl", "matrix": [4, 11], "w": 1.5, "x": 13.5, "y": 4}
]
},
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
diff --git a/keyboards/4pplet/steezy60/rev_b/keyboard.json b/keyboards/4pplet/steezy60/rev_b/keyboard.json
index 8ff41bd1561..810f7f8cb95 100644
--- a/keyboards/4pplet/steezy60/rev_b/keyboard.json
+++ b/keyboards/4pplet/steezy60/rev_b/keyboard.json
@@ -14,11 +14,11 @@
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
+ "60_ansi_tsangan_split_bs_rshift",
"60_hhkb",
"60_iso",
"60_iso_split_bs_rshift",
- "60_iso_tsangan",
- "60_tsangan_hhkb"
+ "60_iso_tsangan"
],
"diode_direction": "COL2ROW",
"matrix_pins": {
@@ -53,6 +53,9 @@
"ws2812": {
"pin": "A8"
},
+ "layout_aliases": {
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
@@ -587,7 +590,7 @@
{"label": "Ctrl", "matrix": [4, 11], "w": 1.5, "x": 13.5, "y": 4}
]
},
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
diff --git a/keyboards/4pplet/unextended_std/keymaps/via/keymap.c b/keyboards/4pplet/unextended_std/keymaps/via/keymap.c
deleted file mode 100644
index a99489b426e..00000000000
--- a/keyboards/4pplet/unextended_std/keymaps/via/keymap.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-Copyright 2023 Stefan Sundin "4pplet" <4pplet@protonmail.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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-// main layer
-[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_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_LCTL, 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, KC_RSFT, KC_UP,
- MO(1), KC_LALT, KC_LGUI, KC_GRV, KC_SPC, KC_BSLS, KC_LEFT, KC_RIGHT,KC_DOWN, KC_UP),
-// basic function layer
-[1] = LAYOUT_all(
- QK_BOOT, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_CAPS, KC_LEFT, KC_DOWN, KC_RIGHT, 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),
-// extra layer for VIA
-[2] = LAYOUT_all(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-// extra layer for VIA
-[3] = LAYOUT_all(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
-};
diff --git a/keyboards/4pplet/unextended_std/keymaps/via/rules.mk b/keyboards/4pplet/unextended_std/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/4pplet/unextended_std/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/4pplet/waffling60/rev_a/keymaps/via/keymap.c b/keyboards/4pplet/waffling60/rev_a/keymaps/via/keymap.c
deleted file mode 100644
index ce9a461e77a..00000000000
--- a/keyboards/4pplet/waffling60/rev_a/keymaps/via/keymap.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-// main layer
-[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_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_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_SLSH, KC_RSFT, MO(1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, MO(1)),
-// basic function layer
-[1] = LAYOUT(
- QK_BOOT, 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, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, 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),
-// extra layer for VIA
-[2] = LAYOUT(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-// extra layer for VIA
-[3] = LAYOUT(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
-};
diff --git a/keyboards/4pplet/waffling60/rev_a/keymaps/via/rules.mk b/keyboards/4pplet/waffling60/rev_a/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/4pplet/waffling60/rev_a/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/4pplet/waffling60/rev_b/keymaps/via/keymap.c b/keyboards/4pplet/waffling60/rev_b/keymaps/via/keymap.c
deleted file mode 100644
index ce9a461e77a..00000000000
--- a/keyboards/4pplet/waffling60/rev_b/keymaps/via/keymap.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-// main layer
-[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_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_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_SLSH, KC_RSFT, MO(1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, MO(1)),
-// basic function layer
-[1] = LAYOUT(
- QK_BOOT, 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, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, 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),
-// extra layer for VIA
-[2] = LAYOUT(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-// extra layer for VIA
-[3] = LAYOUT(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
-};
diff --git a/keyboards/4pplet/waffling60/rev_b/keymaps/via/rules.mk b/keyboards/4pplet/waffling60/rev_b/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/4pplet/waffling60/rev_b/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/4pplet/waffling60/rev_c/keymaps/via/keymap.c b/keyboards/4pplet/waffling60/rev_c/keymaps/via/keymap.c
deleted file mode 100644
index ce9a461e77a..00000000000
--- a/keyboards/4pplet/waffling60/rev_c/keymaps/via/keymap.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-// main layer
-[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_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_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_SLSH, KC_RSFT, MO(1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, MO(1)),
-// basic function layer
-[1] = LAYOUT(
- QK_BOOT, 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, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, 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),
-// extra layer for VIA
-[2] = LAYOUT(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-// extra layer for VIA
-[3] = LAYOUT(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
-};
diff --git a/keyboards/4pplet/waffling60/rev_c/keymaps/via/rules.mk b/keyboards/4pplet/waffling60/rev_c/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/4pplet/waffling60/rev_c/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/4pplet/waffling60/rev_d/keymaps/via/keymap.c b/keyboards/4pplet/waffling60/rev_d/keymaps/via/keymap.c
deleted file mode 100644
index 8035665ce45..00000000000
--- a/keyboards/4pplet/waffling60/rev_d/keymaps/via/keymap.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-// main layer
-[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_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_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, KC_RSFT, MO(1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, MO(1)),
-// basic function layer
-[1] = LAYOUT(
- QK_BOOT, 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, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, 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),
-// extra layer for VIA
-[2] = LAYOUT(
- 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,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-// extra layer for VIA
-[3] = LAYOUT(
- 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,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
-};
diff --git a/keyboards/4pplet/waffling60/rev_d/keymaps/via/rules.mk b/keyboards/4pplet/waffling60/rev_d/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/4pplet/waffling60/rev_d/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/4pplet/waffling60/rev_d_ansi/keymaps/via/keymap.c b/keyboards/4pplet/waffling60/rev_d_ansi/keymaps/via/keymap.c
deleted file mode 100644
index 29299cac6a3..00000000000
--- a/keyboards/4pplet/waffling60/rev_d_ansi/keymaps/via/keymap.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-Copyright 2022 Stefan Sundin "4pplet" <4pplet@protonmail.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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-// main layer
-[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_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_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_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL),
-// basic function layer
-[1] = LAYOUT(
- QK_BOOT, 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_UP, 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_LEFT, KC_DOWN, KC_RIGHT, 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),
-// extra layer for VIA
-[2] = LAYOUT(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-// extra layer for VIA
-[3] = LAYOUT(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
-};
diff --git a/keyboards/4pplet/waffling60/rev_d_ansi/keymaps/via/rules.mk b/keyboards/4pplet/waffling60/rev_d_ansi/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/4pplet/waffling60/rev_d_ansi/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/4pplet/waffling60/rev_d_iso/keymaps/via/keymap.c b/keyboards/4pplet/waffling60/rev_d_iso/keymaps/via/keymap.c
deleted file mode 100644
index b6945a706d8..00000000000
--- a/keyboards/4pplet/waffling60/rev_d_iso/keymaps/via/keymap.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-Copyright 2022 Stefan Sundin "4pplet" <4pplet@protonmail.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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-// main layer
-[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_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, KC_RSFT, MO(1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL),
-// basic function layer
-[1] = LAYOUT_all(
- QK_BOOT, 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_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, 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),
-// extra layer for VIA
-[2] = LAYOUT_all(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-// extra layer for VIA
-[3] = LAYOUT_all(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
-};
diff --git a/keyboards/4pplet/waffling60/rev_d_iso/keymaps/via/rules.mk b/keyboards/4pplet/waffling60/rev_d_iso/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/4pplet/waffling60/rev_d_iso/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/4pplet/waffling60/rev_e/keyboard.json b/keyboards/4pplet/waffling60/rev_e/keyboard.json
index 4cd2501bbd4..9adf6dada3a 100644
--- a/keyboards/4pplet/waffling60/rev_e/keyboard.json
+++ b/keyboards/4pplet/waffling60/rev_e/keyboard.json
@@ -49,7 +49,19 @@
"ws2812": {
"pin": "A8"
},
- "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_tsangan_hhkb"],
+ "community_layouts": [
+ "60_ansi",
+ "60_ansi_split_bs_rshift",
+ "60_ansi_tsangan",
+ "60_ansi_tsangan_split_bs_rshift",
+ "60_hhkb",
+ "60_iso",
+ "60_iso_split_bs_rshift",
+ "60_iso_tsangan"
+ ],
+ "layout_aliases": {
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
+ },
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
@@ -510,7 +522,7 @@
{"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
]
},
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
diff --git a/keyboards/4pplet/waffling60/rev_e/keymaps/via/keymap.c b/keyboards/4pplet/waffling60/rev_e/keymaps/via/keymap.c
deleted file mode 100644
index 8b1bb6a2c4b..00000000000
--- a/keyboards/4pplet/waffling60/rev_e/keymaps/via/keymap.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
-Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-// main layer
-[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_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, KC_RSFT, MO(1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL),
-// basic function layer
-[1] = LAYOUT_all(
- QK_BOOT, 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, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, 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)
-};
-#if defined(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_BRID, KC_BRIU) }
-};
-#endif
diff --git a/keyboards/4pplet/waffling60/rev_e/keymaps/via/rules.mk b/keyboards/4pplet/waffling60/rev_e/keymaps/via/rules.mk
deleted file mode 100644
index f1adcab005e..00000000000
--- a/keyboards/4pplet/waffling60/rev_e/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/4pplet/waffling60/rev_e_ansi/keyboard.json b/keyboards/4pplet/waffling60/rev_e_ansi/keyboard.json
index a1b5d0e11eb..15d3c7cfe9e 100644
--- a/keyboards/4pplet/waffling60/rev_e_ansi/keyboard.json
+++ b/keyboards/4pplet/waffling60/rev_e_ansi/keyboard.json
@@ -50,9 +50,12 @@
"pin": "A8"
},
"community_layouts": [
- "60_tsangan_hhkb",
+ "60_ansi_tsangan_split_bs_rshift",
"60_hhkb"
],
+ "layout_aliases": {
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
@@ -122,7 +125,7 @@
{"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
diff --git a/keyboards/4pplet/waffling60/rev_e_ansi/keymaps/via/keymap.c b/keyboards/4pplet/waffling60/rev_e_ansi/keymaps/via/keymap.c
deleted file mode 100644
index 706428c00e7..00000000000
--- a/keyboards/4pplet/waffling60/rev_e_ansi/keymaps/via/keymap.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
-Copyright 2023 Stefan Sundin "4pplet"
-
-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] = {
-// main layer
-[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_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_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL),
-// basic function layer
-[1] = LAYOUT_all(
- QK_BOOT, 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, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, 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)
-};
-#if defined(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_BRID, KC_BRIU) }
-};
-#endif
diff --git a/keyboards/4pplet/waffling60/rev_e_ansi/keymaps/via/rules.mk b/keyboards/4pplet/waffling60/rev_e_ansi/keymaps/via/rules.mk
deleted file mode 100644
index f1adcab005e..00000000000
--- a/keyboards/4pplet/waffling60/rev_e_ansi/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/4pplet/waffling60/rev_e_iso/keymaps/via/keymap.c b/keyboards/4pplet/waffling60/rev_e_iso/keymaps/via/keymap.c
deleted file mode 100644
index 3254764a0c5..00000000000
--- a/keyboards/4pplet/waffling60/rev_e_iso/keymaps/via/keymap.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
-Copyright 2023 Stefan Sundin "4pplet" <4pplet@protonmail.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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-// main layer
-[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_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, KC_RSFT, MO(1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL),
-// basic function layer
-[1] = LAYOUT_all(
- QK_BOOT, 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_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, 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),
-};
-
-#if defined(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_BRID, KC_BRIU) }
-};
-#endif
diff --git a/keyboards/4pplet/waffling60/rev_e_iso/keymaps/via/rules.mk b/keyboards/4pplet/waffling60/rev_e_iso/keymaps/via/rules.mk
deleted file mode 100644
index f1adcab005e..00000000000
--- a/keyboards/4pplet/waffling60/rev_e_iso/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/4pplet/waffling80/keymaps/via/keymap.c b/keyboards/4pplet/waffling80/keymaps/via/keymap.c
deleted file mode 100644
index 843c93d70d0..00000000000
--- a/keyboards/4pplet/waffling80/keymaps/via/keymap.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
-Copyright 2022 Stefan Sundin "4pplet"
-
-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] = {
- // main layer
- [0] = LAYOUT_all(
- KC_ESC, KC_F1, 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_GRV, KC_BSPC, KC_INS, KC_HOME, 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_DEL , KC_END, 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_NUBS, 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_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, MO(1), KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT,
- MO(1), MO(1)), // extra keys for alps dual action switches
- // basic function layer
- [1] = LAYOUT_all(
- QK_BOOT, 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, 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), // extra keys for alps dual action switches
-
- [2] = LAYOUT_all(
- QK_BOOT, 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, 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), // extra keys for alps dual action switches
-
- [3] = LAYOUT_all(
- QK_BOOT, 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, 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) // extra keys for alps dual action switches
-};
diff --git a/keyboards/4pplet/waffling80/keymaps/via/rules.mk b/keyboards/4pplet/waffling80/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/4pplet/waffling80/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/4pplet/waffling80/readme.md b/keyboards/4pplet/waffling80/readme.md
index 3eb0745b3f3..356990dd28c 100644
--- a/keyboards/4pplet/waffling80/readme.md
+++ b/keyboards/4pplet/waffling80/readme.md
@@ -8,6 +8,8 @@ A TKL PCB attempting a87 compatibility with different switch and layout-options.
Make example for this keyboard (after setting up your build environment):
make 4pplet/waffling80/rev_a:default
+ make 4pplet/waffling80/rev_b:default
+ make 4pplet/waffling80/rev_b_ansi: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).
diff --git a/keyboards/4pplet/waffling80/rev_b_ansi/config.h b/keyboards/4pplet/waffling80/rev_b_ansi/config.h
new file mode 100644
index 00000000000..036d08cc73c
--- /dev/null
+++ b/keyboards/4pplet/waffling80/rev_b_ansi/config.h
@@ -0,0 +1,19 @@
+/*
+Copyright 2022 Stefan Sundin "4pplet"
+
+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 WS2812_EXTERNAL_PULLUP
diff --git a/keyboards/4pplet/waffling80/rev_b_ansi/keyboard.json b/keyboards/4pplet/waffling80/rev_b_ansi/keyboard.json
new file mode 100644
index 00000000000..5a449e5e7cb
--- /dev/null
+++ b/keyboards/4pplet/waffling80/rev_b_ansi/keyboard.json
@@ -0,0 +1,29 @@
+{
+ "keyboard_name": "waffling80 Rev B ANSI HS",
+ "usb": {
+ "pid": "0x0017",
+ "device_version": "0.0.1"
+ },
+ "rgblight": {
+ "saturation_steps": 8,
+ "brightness_steps": 8,
+ "led_count": 2
+ },
+ "features": {
+ "bootmagic": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgblight": true
+ },
+ "ws2812": {
+ "pin": "A8"
+ },
+ "matrix_pins": {
+ "cols": ["B2", "B1", "B0", "A7", "A6", "A3", "B9", "B8"],
+ "rows": ["B13", "B12", "A5", "A4", "A2", "A1", "F0", "C15", "C13", "C14", "F1", "A0"]
+ },
+ "diode_direction": "COL2ROW",
+ "processor": "STM32F072",
+ "bootloader": "stm32-dfu"
+}
diff --git a/keyboards/4pplet/waffling80/rev_b_ansi/readme.md b/keyboards/4pplet/waffling80/rev_b_ansi/readme.md
new file mode 100644
index 00000000000..f374f8c89b5
--- /dev/null
+++ b/keyboards/4pplet/waffling80/rev_b_ansi/readme.md
@@ -0,0 +1,18 @@
+# waffling80
+
+A TKL PCB attempting a87 and a88 compatibility with different switch and layout-options.
+
+* Keyboard Maintainer: [4pplet](https://github.com/4pplet)
+* Hardware Supported: [waffling80](https://github.com/4pplet/waffling80)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make 4pplet/waffling80/rev_b_ansi: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).
+
+How to enter bootloader (DFU):
+* Hold the reset-header for a few seconds on the back of the PCB for keyboard to enter DFU. When in DFU, it's ready to flash the firmware.
+
+Alternative option if the firmware is already pre-flashed:
+* Unplug your keyboard, hold down the Esc key, plug in your keyboard and wait a second before releasing the keys. The keyboard will enter DFU and is ready to flash the firmware.
diff --git a/keyboards/4pplet/waffling80/rev_b_ansi/rev_b_ansi.c b/keyboards/4pplet/waffling80/rev_b_ansi/rev_b_ansi.c
new file mode 100644
index 00000000000..9e617eaa7aa
--- /dev/null
+++ b/keyboards/4pplet/waffling80/rev_b_ansi/rev_b_ansi.c
@@ -0,0 +1,47 @@
+/*
+Copyright 2024 Stefan Sundin "4pplet"
+
+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 "rev_b_ansi.h"
+
+bool led_update_kb(led_t led_state) {
+ bool res = led_update_user(led_state);
+ if (SCROLL_LOCK_ENABLE && res) {
+ if(led_state.scroll_lock) {
+ #ifdef SCROLL_LOCK_COLOR
+ rgblight_sethsv_at(SCROLL_LOCK_COLOR, 0);
+ #else
+ rgblight_sethsv_at(rgblight_get_hue(),rgblight_get_sat(),rgblight_get_val(), 0);
+ #endif
+ }
+ else {
+ rgblight_sethsv_at(HSV_OFF, 0);
+ }
+ }
+ if (CAPS_LOCK_ENABLE && res) {
+ if(led_state.caps_lock) {
+ #ifdef CAPS_LOCK_COLOR
+ rgblight_sethsv_at(CAPS_LOCK_COLOR, 1);
+ #else
+ rgblight_sethsv_at(rgblight_get_hue(),rgblight_get_sat(),rgblight_get_val(), 1);
+ #endif
+ }
+ else{
+ rgblight_sethsv_at(HSV_OFF, 1);
+ }
+ }
+ return res;
+}
+
diff --git a/keyboards/4pplet/waffling80/rev_b_ansi/rev_b_ansi.h b/keyboards/4pplet/waffling80/rev_b_ansi/rev_b_ansi.h
new file mode 100644
index 00000000000..c8d4c8b9714
--- /dev/null
+++ b/keyboards/4pplet/waffling80/rev_b_ansi/rev_b_ansi.h
@@ -0,0 +1,26 @@
+/*
+Copyright 2022 Stefan Sundin "4pplet"
+
+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 CAPS_LOCK_ENABLE 1
+#define SCROLL_LOCK_ENABLE 1
+
+// If colors are defined, they will be static. If not defined, color for incicators can be set in VIA.
+//#define CAPS_LOCK_COLOR HSV_GREEN
+//#define SCROLL_LOCK_COLOR HSV_GREEN
+
+#include "quantum.h"
diff --git a/keyboards/4pplet/waffling80/rev_b_ansi/rules.mk b/keyboards/4pplet/waffling80/rev_b_ansi/rules.mk
new file mode 100644
index 00000000000..04fe1eba2ac
--- /dev/null
+++ b/keyboards/4pplet/waffling80/rev_b_ansi/rules.mk
@@ -0,0 +1,2 @@
+# Wildcard to allow APM32 MCU
+DFU_SUFFIX_ARGS = -p FFFF -v FFFF
diff --git a/keyboards/4pplet/yakiimo/keymaps/via/keymap.c b/keyboards/4pplet/yakiimo/keymaps/via/keymap.c
deleted file mode 100644
index 6255c4bcf9d..00000000000
--- a/keyboards/4pplet/yakiimo/keymaps/via/keymap.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-Copyright 2022 Stefan Sundin "4pplet"
-
-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] = {
-// main layer
-[0] = LAYOUT_all(
- 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_BSLS, KC_BSPC, KC_INS, KC_HOME, 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_DEL , KC_END, 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_NUBS, 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_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-// basic function layer
-[1] = LAYOUT_all(
- QK_BOOT, 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, 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),
-// extra layer for VIA
-[2] = LAYOUT_all(
- QK_BOOT, 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, 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),
-
-// extra layer for VIA
-[3] = LAYOUT_all(
- QK_BOOT, 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, 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/4pplet/yakiimo/keymaps/via/rules.mk b/keyboards/4pplet/yakiimo/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/4pplet/yakiimo/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/5keys/keyboard.json b/keyboards/5keys/keyboard.json
new file mode 100644
index 00000000000..7a40d1014d6
--- /dev/null
+++ b/keyboards/5keys/keyboard.json
@@ -0,0 +1,34 @@
+{
+ "manufacturer": "mikiya418",
+ "keyboard_name": "5keys",
+ "maintainer": "mikiya418",
+ "development_board": "promicro",
+ "features": {
+ "bootmagic": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": false
+ },
+ "matrix_pins": {
+ "direct": [
+ ["F4","F5","F6","F7","B1"]
+ ]
+ },
+ "url": "",
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x0001",
+ "vid": "0x4D4B"
+ },
+ "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}
+ ]
+ }
+ }
+}
diff --git a/keyboards/5keys/keymaps/default/keymap.c b/keyboards/5keys/keymaps/default/keymap.c
new file mode 100644
index 00000000000..878ae4286b9
--- /dev/null
+++ b/keyboards/5keys/keymaps/default/keymap.c
@@ -0,0 +1,21 @@
+/* Copylight 2024 mikiya418.
+ *
+ * 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] = {
+
+ [0] = LAYOUT(
+ KC_WBAK, KC_WFWD, LSG_T(KC_S), G(KC_L), MO(1)
+ )
+};
diff --git a/keyboards/5keys/readme.md b/keyboards/5keys/readme.md
new file mode 100644
index 00000000000..e14792d82bb
--- /dev/null
+++ b/keyboards/5keys/readme.md
@@ -0,0 +1,27 @@
+# 5keys
+
+
+
+This keyboard is a macro keyboard with five keys.
+
+* Keyboard Maintainer: [mikiya418](https://github.com/mikiya418)
+* Hardware Supported: 5keys PCBs, Pro Micro
+* Hardware Availability: [Thingiverse](https://www.thingiverse.com/thing:6834908)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make 5keys:default
+
+Flashing example for this keyboard:
+
+ make 5keys: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**: 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
diff --git a/keyboards/7c8/framework/keymaps/via/config.h b/keyboards/7c8/framework/keymaps/via/config.h
deleted file mode 100644
index 2dfd41f7cf8..00000000000
--- a/keyboards/7c8/framework/keymaps/via/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2020 Steven 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 .
- */
-
-/* VIA specific defines to increase dynamic layer count */
-#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 3
-#define DYNAMIC_KEYMAP_LAYER_COUNT 5
-
-/* defining an extra row for encoder assignment in VIA */
-#undef MATRIX_ROWS
-#define MATRIX_ROWS 11
\ No newline at end of file
diff --git a/keyboards/7c8/framework/keymaps/via/keymap.c b/keyboards/7c8/framework/keymaps/via/keymap.c
deleted file mode 100644
index ccc8955d269..00000000000
--- a/keyboards/7c8/framework/keymaps/via/keymap.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/* Copyright 2020 Steven 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 QMK_KEYBOARD_H
-
-enum framework_layers {
- _BASE,
- _LOWER,
- _RAISE,
- _BOTH,
- _FN
-};
-
-enum framework_keycodes {
- LOWER = SAFE_RANGE,
- RAISE,
- BOTH,
- FN
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[_BASE] = framework_via(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MEDIA_PLAY_PAUSE,
- 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_ESC, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
- KC_LCTL, KC_LGUI, KC_LALT, MO(_FN), MO(_LOWER), KC_SPC, KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
- KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP
-),
-
-[_LOWER] = framework_via(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, _______,
- _______, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS,
- KC_DEL, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, MO(_BOTH), KC_HOME, KC_PGDN, KC_PGUP, KC_END,
- C(S(KC_TAB)), C(KC_TAB)
-),
-
-[_RAISE] = framework_via(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, MO(_BOTH), _______, _______, _______, _______, _______, _______, _______,
- C(KC_LEFT), C(KC_RIGHT)
-),
-
-[_BOTH] = framework_via(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, DB_TOGG,
- C(KC_Z), C(KC_Y)
-),
-
-[_FN] = framework_via(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_MS_WH_LEFT, KC_MS_WH_RIGHT
-)
-};
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- uint8_t layer = get_highest_layer(layer_state);
- if (index == 0) {
- if (clockwise) {
- tap_code16(dynamic_keymap_get_keycode(layer, 10, 1));
- } else {
- tap_code16(dynamic_keymap_get_keycode(layer, 10, 0));
- }
- }
- return true;
-}
diff --git a/keyboards/7c8/framework/keymaps/via/rules.mk b/keyboards/7c8/framework/keymaps/via/rules.mk
deleted file mode 100644
index 9905283151c..00000000000
--- a/keyboards/7c8/framework/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LEADER_ENABLE = no
diff --git a/keyboards/8pack/keymaps/default/keymap.c b/keyboards/8pack/keymaps/default/keymap.c
index a50ad14a0a1..4d6adfb583f 100644
--- a/keyboards/8pack/keymaps/default/keymap.c
+++ b/keyboards/8pack/keymaps/default/keymap.c
@@ -6,7 +6,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_A, KC_S, KC_D, KC_F
),
[1] = LAYOUT(
- RGB_TOG, RGB_RMOD, RGB_MOD, KC_NO,
+ UG_TOGG, UG_PREV, UG_NEXT, KC_NO,
QK_BOOT, BL_DOWN, BL_UP, BL_TOGG
)
};
diff --git a/keyboards/8pack/rules.mk b/keyboards/8pack/rules.mk
deleted file mode 100644
index 81024a71199..00000000000
--- a/keyboards/8pack/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DEFAULT_FOLDER = 8pack/rev12
diff --git a/keyboards/a_dux/keyboard.json b/keyboards/a_dux/keyboard.json
index c4089fb035c..97c8610155d 100644
--- a/keyboards/a_dux/keyboard.json
+++ b/keyboards/a_dux/keyboard.json
@@ -25,7 +25,6 @@
},
"split": {
"enabled": true,
- "soft_serial_pin": "D1",
"bootmagic": {
"matrix": [4, 4]
},
@@ -38,6 +37,9 @@
["B5", "B4", null, null, null]
]
}
+ },
+ "serial": {
+ "pin": "D1"
}
},
"community_layouts": ["split_3x5_2"],
diff --git a/keyboards/a_jazz/akc084/keyboard.json b/keyboards/a_jazz/akc084/keyboard.json
new file mode 100644
index 00000000000..a8290ea75f4
--- /dev/null
+++ b/keyboards/a_jazz/akc084/keyboard.json
@@ -0,0 +1,128 @@
+{
+ "manufacturer": "a-jazz",
+ "keyboard_name": "akc084",
+ "maintainer": "Feng",
+ "bootloader": "stm32duino",
+ "diode_direction": "ROW2COL",
+ "encoder": {
+ "rotary": [
+ {"pin_a": "A6", "pin_b": "A7"}
+ ]
+ },
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": true,
+ "encoder": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true
+ },
+ "indicators": {
+ "caps_lock": "A9",
+ "scroll_lock": "A10"
+ },
+ "matrix_pins": {
+ "cols": ["B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10", "B11", "B12", "B13"],
+ "rows": ["A0", "A1", "A2", "A3", "A4", "A5", "A8"]
+ },
+ "processor": "STM32F103",
+ "usb": {
+ "device_version": "1.0.1",
+ "no_startup_check": true,
+ "pid": "0x0084",
+ "vid": "0x414A",
+ "wait_for_enumeration": false
+ },
+ "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": [0, 13], "x": 13, "y": 0},
+ {"matrix": [3, 13], "x": 14, "y": 0},
+ {"matrix": [4, 12], "x": 15, "y": 0},
+ {"matrix": [6, 12], "x": 16, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1},
+ {"matrix": [1, 1], "x": 1, "y": 1},
+ {"matrix": [1, 2], "x": 2, "y": 1},
+ {"matrix": [1, 3], "x": 3, "y": 1},
+ {"matrix": [1, 4], "x": 4, "y": 1},
+ {"matrix": [1, 5], "x": 5, "y": 1},
+ {"matrix": [1, 6], "x": 6, "y": 1},
+ {"matrix": [1, 7], "x": 7, "y": 1},
+ {"matrix": [1, 8], "x": 8, "y": 1},
+ {"matrix": [1, 9], "x": 9, "y": 1},
+ {"matrix": [1, 10], "x": 10, "y": 1},
+ {"matrix": [1, 11], "x": 11, "y": 1},
+ {"matrix": [1, 12], "x": 12, "y": 1},
+ {"matrix": [1, 13], "x": 13, "y": 1, "w": 2},
+ {"matrix": [4, 13], "x": 15, "y": 1},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2},
+ {"matrix": [2, 2], "x": 2.5, "y": 2},
+ {"matrix": [2, 3], "x": 3.5, "y": 2},
+ {"matrix": [2, 4], "x": 4.5, "y": 2},
+ {"matrix": [2, 5], "x": 5.5, "y": 2},
+ {"matrix": [2, 6], "x": 6.5, "y": 2},
+ {"matrix": [2, 7], "x": 7.5, "y": 2},
+ {"matrix": [2, 8], "x": 8.5, "y": 2},
+ {"matrix": [2, 9], "x": 9.5, "y": 2},
+ {"matrix": [2, 10], "x": 10.5, "y": 2},
+ {"matrix": [2, 11], "x": 11.5, "y": 2},
+ {"matrix": [2, 12], "x": 12.5, "y": 2},
+ {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5},
+ {"matrix": [5, 11], "x": 15, "y": 2},
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3},
+ {"matrix": [3, 2], "x": 2.75, "y": 3},
+ {"matrix": [3, 3], "x": 3.75, "y": 3},
+ {"matrix": [3, 4], "x": 4.75, "y": 3},
+ {"matrix": [3, 5], "x": 5.75, "y": 3},
+ {"matrix": [3, 6], "x": 6.75, "y": 3},
+ {"matrix": [3, 7], "x": 7.75, "y": 3},
+ {"matrix": [3, 8], "x": 8.75, "y": 3},
+ {"matrix": [3, 9], "x": 9.75, "y": 3},
+ {"matrix": [3, 10], "x": 10.75, "y": 3},
+ {"matrix": [3, 11], "x": 11.75, "y": 3},
+ {"matrix": [3, 12], "x": 12.75, "y": 3, "w": 2.25},
+ {"matrix": [5, 12], "x": 15, "y": 3},
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25},
+ {"matrix": [4, 1], "x": 2.25, "y": 4},
+ {"matrix": [4, 2], "x": 3.25, "y": 4},
+ {"matrix": [4, 3], "x": 4.25, "y": 4},
+ {"matrix": [4, 4], "x": 5.25, "y": 4},
+ {"matrix": [4, 5], "x": 6.25, "y": 4},
+ {"matrix": [4, 6], "x": 7.25, "y": 4},
+ {"matrix": [4, 7], "x": 8.25, "y": 4},
+ {"matrix": [4, 8], "x": 9.25, "y": 4},
+ {"matrix": [4, 9], "x": 10.25, "y": 4},
+ {"matrix": [4, 10], "x": 11.25, "y": 4},
+ {"matrix": [4, 11], "x": 12.25, "y": 4, "w": 1.75},
+ {"matrix": [5, 7], "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, 3], "x": 3.75, "y": 5, "w": 6.25},
+ {"matrix": [5, 4], "x": 10, "y": 5},
+ {"matrix": [5, 5], "x": 11, "y": 5},
+ {"matrix": [5, 6], "x": 12, "y": 5},
+ {"matrix": [5, 8], "x": 13, "y": 5},
+ {"matrix": [5, 9], "x": 14, "y": 5},
+ {"matrix": [5, 10], "x": 15, "y": 5}
+ ]
+ }
+ }
+}
diff --git a/keyboards/a_jazz/akc084/keymaps/default/keymap.c b/keyboards/a_jazz/akc084/keymaps/default/keymap.c
new file mode 100644
index 00000000000..2bd7992707f
--- /dev/null
+++ b/keyboards/a_jazz/akc084/keymaps/default/keymap.c
@@ -0,0 +1,43 @@
+/* Copyright 2024 Feng
+ *
+ * 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
+
+#if defined(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(_______, _______) }
+};
+#endif
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ 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_PAUS, KC_DEL, KC_MUTE,
+ 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_HOME,
+ 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_ENT, KC_PGDN,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
+ ),
+ [1] = LAYOUT(
+ _______, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_MYCM, KC_CALC, _______, _______, KC_SCRL, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, GU_TOGG, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+};
\ No newline at end of file
diff --git a/keyboards/a_jazz/akc084/readme.md b/keyboards/a_jazz/akc084/readme.md
new file mode 100644
index 00000000000..4be104f5817
--- /dev/null
+++ b/keyboards/a_jazz/akc084/readme.md
@@ -0,0 +1,23 @@
+# A-JAZZ AKC084 (AKP846)
+
+A customizable 84keys keyboard
+
+
+* Keyboard Maintainer: [Feng](https://github.com/fenggx-a-jazz)
+* Hardware Supported: [a-jazz](https://www.a-jazz.com)
+* Hardware Availability: [a-jazz](https://ajazzstore.com/collections/all/products/ajazz-akp846)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make a_jazz/akc084:default
+
+Flashing example for this keyboard:
+
+ make a_jazz/akc084:default:flash
+
+See the build environment setup and the make instructions for more information. Brand new to QMK? Start with our Complete Newbs Guide.
+
+## Bootloader ESC the bootloader in 3 ways:
+* **Bootmagic reset: Hold down Esc in the keyboard then replug
+* **Physical reset button: Briefly press the button on the back of the PCB
+* **Keycode in layout: Press the key mapped to QK_BOOT
diff --git a/keyboards/a_jazz/akc084/rules.mk b/keyboards/a_jazz/akc084/rules.mk
new file mode 100644
index 00000000000..5fae5866fd5
--- /dev/null
+++ b/keyboards/a_jazz/akc084/rules.mk
@@ -0,0 +1 @@
+MCU_LDSCRIPT = STM32F103xB
diff --git a/keyboards/abacus/keymaps/default/keymap.json b/keyboards/abacus/keymaps/default/keymap.json
index e4fcc9a6a02..4c997658bf7 100644
--- a/keyboards/abacus/keymaps/default/keymap.json
+++ b/keyboards/abacus/keymaps/default/keymap.json
@@ -5,6 +5,6 @@
"layers": [
["KC_ESCAPE", "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_BSLS", "KC_LSFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMMA", "KC_DOT", "KC_UP", "KC_DELETE", "KC_LCTL", "KC_LGUI", "MO(1)", "KC_SPACE", "KC_ENTER", "MO(2)", "KC_LEFT", "KC_DOWN", "KC_RIGHT"],
["KC_GRAVE", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_LBRC", "KC_RBRC", "KC_QUOTE", "KC_SLASH", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MINUS", "KC_EQUAL", "KC_TRNS", "KC_TRNS", "KC_LALT", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_HOME", "KC_TRNS", "KC_END"],
- ["KC_GRV", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_TRNS", "KC_TRNS", "KC_F11", "KC_F12", "RGB_M_P", "RGB_M_B", "RGB_M_R", "RGB_M_SW", "RGB_M_SN", "RGB_M_K", "RGB_M_G", "KC_NO", "RGB_TOG", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_HUI", "KC_CAPS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"]
+ ["KC_GRV", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_TRNS", "KC_TRNS", "KC_F11", "KC_F12", "RGB_M_P", "RGB_M_B", "RGB_M_R", "RGB_M_SW", "RGB_M_SN", "RGB_M_K", "RGB_M_K", "KC_NO", "UG_TOGG", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "UG_HUEU", "KC_CAPS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"]
]
}
diff --git a/keyboards/abatskeyboardclub/nayeon/keymaps/via/config.h b/keyboards/abatskeyboardclub/nayeon/keymaps/via/config.h
deleted file mode 100644
index 52983591bf0..00000000000
--- a/keyboards/abatskeyboardclub/nayeon/keymaps/via/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2022 Ramon Imbao
- *
- * 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 RGBLIGHT_LAYERS
-#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
diff --git a/keyboards/abatskeyboardclub/nayeon/keymaps/via/keymap.c b/keyboards/abatskeyboardclub/nayeon/keymaps/via/keymap.c
deleted file mode 100644
index 069bc6d14c0..00000000000
--- a/keyboards/abatskeyboardclub/nayeon/keymaps/via/keymap.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright 2022 Ramon Imbao
- *
- * 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, KC_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [1] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [2] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [3] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/abatskeyboardclub/nayeon/keymaps/via/rules.mk b/keyboards/abatskeyboardclub/nayeon/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/abatskeyboardclub/nayeon/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/abko/ak84bt/keymaps/default/keymap.c b/keyboards/abko/ak84bt/keymaps/default/keymap.c
index 48fab8614b0..6e4c85ac142 100644
--- a/keyboards/abko/ak84bt/keymaps/default/keymap.c
+++ b/keyboards/abko/ak84bt/keymaps/default/keymap.c
@@ -33,10 +33,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[_FnLay] = LAYOUT(
QK_BOOT, KC_MY_COMPUTER, KC_WWW_HOME, KC_CALCULATOR, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_MAIL, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RM_NEXT,
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, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAI, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, XXXXXXX, _______, XXXXXXX, RGB_SPD, RGB_VAD, RGB_SPI
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RM_VALU, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, RM_TOGG, XXXXXXX, _______, XXXXXXX, RM_SPDD, RM_VALD, RM_SPDU
)
};
diff --git a/keyboards/abstract/ellipse/keymaps/default/keymap.c b/keyboards/abstract/ellipse/keymaps/default/keymap.c
index dbcba36f5cf..27b3e1e70a0 100644
--- a/keyboards/abstract/ellipse/keymaps/default/keymap.c
+++ b/keyboards/abstract/ellipse/keymaps/default/keymap.c
@@ -22,7 +22,7 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT( /* Base */
- KC_A, RGB_TOG, KC_C,
+ KC_A, UG_TOGG, KC_C,
KC_X, KC_Y, KC_Z
)
};
diff --git a/keyboards/acekeyboard/titan60/keymaps/default/keymap.c b/keyboards/acekeyboard/titan60/keymaps/default/keymap.c
index bd3bc0d6ed1..8b662e1a9de 100644
--- a/keyboards/acekeyboard/titan60/keymaps/default/keymap.c
+++ b/keyboards/acekeyboard/titan60/keymaps/default/keymap.c
@@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[1] = 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,
- RGB_TOG, RGB_RMOD,KC_UP, RGB_MOD, RGB_M_R, RGB_M_T, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, BS_SWAP,
+ UG_TOGG, UG_PREV, KC_UP, UG_NEXT, RGB_M_R, RGB_M_T, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, BS_SWAP,
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS,
BL_TOGG, BL_DOWN, BL_UP, KC_CALC, KC_MPLY, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_END, KC_PGDN, KC_TRNS,
KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
diff --git a/keyboards/acekeyboard/titan60/keymaps/iso/keymap.c b/keyboards/acekeyboard/titan60/keymaps/iso/keymap.c
index fce3fb3feb6..af6252e6e26 100644
--- a/keyboards/acekeyboard/titan60/keymaps/iso/keymap.c
+++ b/keyboards/acekeyboard/titan60/keymaps/iso/keymap.c
@@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[1] = LAYOUT_60_iso(
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,
- RGB_TOG, RGB_RMOD,KC_UP, RGB_MOD, RGB_M_R, RGB_M_T, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, BS_SWAP,
+ UG_TOGG, UG_PREV, KC_UP, UG_NEXT, RGB_M_R, RGB_M_T, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, BS_SWAP,
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS,
BL_TOGG, BL_DOWN, BL_UP, KC_CALC, KC_MPLY, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_END, KC_PGDN, KC_TRNS, KC_TRNS,
KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
diff --git a/keyboards/acekeyboard/titan60/keymaps/tsangan/keymap.c b/keyboards/acekeyboard/titan60/keymaps/tsangan/keymap.c
index f73b2db5fb9..86232743c5f 100644
--- a/keyboards/acekeyboard/titan60/keymaps/tsangan/keymap.c
+++ b/keyboards/acekeyboard/titan60/keymaps/tsangan/keymap.c
@@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[1] = LAYOUT_60_tsangan(
KC_SLEP, 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,
- RGB_TOG, RGB_RMOD, RGB_MOD, RGB_M_R, RGB_M_T, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, KC_TRNS, KC_CLR,
+ UG_TOGG, UG_PREV, UG_NEXT, RGB_M_R, RGB_M_T, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, KC_TRNS, KC_CLR,
KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_TRNS,
BL_TOGG, BL_DOWN, BL_UP, KC_CALC, KC_MPLY, KC_MNXT, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_STOP, KC_TRNS, KC_TRNS
diff --git a/keyboards/acekeyboard/titan60/keymaps/via/keymap.c b/keyboards/acekeyboard/titan60/keymaps/via/keymap.c
deleted file mode 100644
index 687e5f4ea8c..00000000000
--- a/keyboards/acekeyboard/titan60/keymaps/via/keymap.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /*
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
- * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
- * │ 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 │ │ Alt│ GUI│Fn │Ctrl│
- * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
- */
- [0] = 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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL
- ),
-
- [1] = LAYOUT_60_ansi(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [2] = LAYOUT_60_ansi(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [3] = LAYOUT_60_ansi(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- )
-};
diff --git a/keyboards/acekeyboard/titan60/keymaps/via/rules.mk b/keyboards/acekeyboard/titan60/keymaps/via/rules.mk
deleted file mode 100644
index 5f615ff62b7..00000000000
--- a/keyboards/acekeyboard/titan60/keymaps/via/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
-
diff --git a/keyboards/acheron/apollo/87h/delta/keymaps/default/keymap.c b/keyboards/acheron/apollo/87h/delta/keymaps/default/keymap.c
index 3ad45e36794..94f049f55c4 100755
--- a/keyboards/acheron/apollo/87h/delta/keymaps/default/keymap.c
+++ b/keyboards/acheron/apollo/87h/delta/keymaps/default/keymap.c
@@ -30,8 +30,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
QK_BOOT, 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, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, RM_TOGG, RM_NEXT, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, 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
),
[2] = LAYOUT_tkl_ansi(
diff --git a/keyboards/acheron/apollo/87h/delta/keymaps/via/keymap.c b/keyboards/acheron/apollo/87h/delta/keymaps/via/keymap.c
deleted file mode 100755
index 3ad45e36794..00000000000
--- a/keyboards/acheron/apollo/87h/delta/keymaps/via/keymap.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-Copyright 2020 Á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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_tkl_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_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_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, MO(1) , KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [1] = LAYOUT_tkl_ansi(
- QK_BOOT, 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, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, 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
- ),
- [2] = LAYOUT_tkl_ansi(
- QK_BOOT, 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, 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
- ),
- [3] = LAYOUT_tkl_ansi(
- QK_BOOT, 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, 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/acheron/apollo/87h/delta/keymaps/via/rules.mk b/keyboards/acheron/apollo/87h/delta/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/acheron/apollo/87h/delta/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/acheron/apollo/87h/delta/mcuconf.h b/keyboards/acheron/apollo/87h/delta/mcuconf.h
index 652fecfc8aa..0000e33889a 100644
--- a/keyboards/acheron/apollo/87h/delta/mcuconf.h
+++ b/keyboards/acheron/apollo/87h/delta/mcuconf.h
@@ -18,8 +18,5 @@
#include_next
-#undef STM32_PWM_USE_ADVANCED
-#define STM32_PWM_USE_ADVANCED TRUE
-
#undef STM32_PWM_USE_TIM1
#define STM32_PWM_USE_TIM1 TRUE
diff --git a/keyboards/acheron/apollo/87h/gamma/keymaps/default/keymap.c b/keyboards/acheron/apollo/87h/gamma/keymaps/default/keymap.c
index 3ad45e36794..94f049f55c4 100755
--- a/keyboards/acheron/apollo/87h/gamma/keymaps/default/keymap.c
+++ b/keyboards/acheron/apollo/87h/gamma/keymaps/default/keymap.c
@@ -30,8 +30,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
QK_BOOT, 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, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, RM_TOGG, RM_NEXT, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, 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
),
[2] = LAYOUT_tkl_ansi(
diff --git a/keyboards/acheron/apollo/87h/gamma/keymaps/via/keymap.c b/keyboards/acheron/apollo/87h/gamma/keymaps/via/keymap.c
deleted file mode 100755
index 8b6e77a5b5a..00000000000
--- a/keyboards/acheron/apollo/87h/gamma/keymaps/via/keymap.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-Copyright 2020 Á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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_tkl_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_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_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, MO(1) , KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [1] = LAYOUT_tkl_ansi(
- QK_BOOT, 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, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, 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
- ),
- [2] = LAYOUT_tkl_ansi(
- QK_BOOT, 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, 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
- ),
- [3] = LAYOUT_tkl_ansi(
- QK_BOOT, 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, 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/acheron/apollo/87h/gamma/keymaps/via/rules.mk b/keyboards/acheron/apollo/87h/gamma/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/acheron/apollo/87h/gamma/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/acheron/apollo/87htsc/keymaps/default/keymap.c b/keyboards/acheron/apollo/87htsc/keymaps/default/keymap.c
index f814960810b..44404bbc4c2 100755
--- a/keyboards/acheron/apollo/87htsc/keymaps/default/keymap.c
+++ b/keyboards/acheron/apollo/87htsc/keymaps/default/keymap.c
@@ -30,8 +30,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
QK_BOOT, 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, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, RM_TOGG, RM_NEXT, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, 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
),
[2] = LAYOUT_tkl_ansi_tsangan(
diff --git a/keyboards/acheron/apollo/87htsc/keymaps/via/keymap.c b/keyboards/acheron/apollo/87htsc/keymaps/via/keymap.c
deleted file mode 100755
index f814960810b..00000000000
--- a/keyboards/acheron/apollo/87htsc/keymaps/via/keymap.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-Copyright 2020 Á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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_tkl_ansi_tsangan(
- 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_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_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_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [1] = LAYOUT_tkl_ansi_tsangan(
- QK_BOOT, 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, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, 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
- ),
- [2] = LAYOUT_tkl_ansi_tsangan(
- QK_BOOT, 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, 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
- ),
- [3] = LAYOUT_tkl_ansi_tsangan(
- QK_BOOT, 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, 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/acheron/apollo/87htsc/keymaps/via/rules.mk b/keyboards/acheron/apollo/87htsc/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/acheron/apollo/87htsc/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/acheron/apollo/87htsc/mcuconf.h b/keyboards/acheron/apollo/87htsc/mcuconf.h
index 652fecfc8aa..0000e33889a 100644
--- a/keyboards/acheron/apollo/87htsc/mcuconf.h
+++ b/keyboards/acheron/apollo/87htsc/mcuconf.h
@@ -18,8 +18,5 @@
#include_next
-#undef STM32_PWM_USE_ADVANCED
-#define STM32_PWM_USE_ADVANCED TRUE
-
#undef STM32_PWM_USE_TIM1
#define STM32_PWM_USE_TIM1 TRUE
diff --git a/keyboards/acheron/apollo/88htsc/keymaps/default/keymap.c b/keyboards/acheron/apollo/88htsc/keymaps/default/keymap.c
index abed7e6fbe6..023ddef74c5 100755
--- a/keyboards/acheron/apollo/88htsc/keymaps/default/keymap.c
+++ b/keyboards/acheron/apollo/88htsc/keymaps/default/keymap.c
@@ -30,8 +30,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
QK_BOOT, 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, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, RM_TOGG, RM_NEXT, RM_HUED, RM_SATD, RM_VALD, RM_SPDD, 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
),
[2] = LAYOUT_tkl_f13_ansi_tsangan(
diff --git a/keyboards/acheron/apollo/88htsc/keymaps/via/keymap.c b/keyboards/acheron/apollo/88htsc/keymaps/via/keymap.c
deleted file mode 100755
index abed7e6fbe6..00000000000
--- a/keyboards/acheron/apollo/88htsc/keymaps/via/keymap.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-Copyright 2020 Á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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_tkl_f13_ansi_tsangan(
- 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_F13 , 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_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_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_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [1] = LAYOUT_tkl_f13_ansi_tsangan(
- QK_BOOT, 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, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, 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
- ),
- [2] = LAYOUT_tkl_f13_ansi_tsangan(
- QK_BOOT, 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, 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
- ),
- [3] = LAYOUT_tkl_f13_ansi_tsangan(
- QK_BOOT, 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, 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/acheron/apollo/88htsc/keymaps/via/rules.mk b/keyboards/acheron/apollo/88htsc/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/acheron/apollo/88htsc/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/acheron/apollo/88htsc/mcuconf.h b/keyboards/acheron/apollo/88htsc/mcuconf.h
index 652fecfc8aa..0000e33889a 100644
--- a/keyboards/acheron/apollo/88htsc/mcuconf.h
+++ b/keyboards/acheron/apollo/88htsc/mcuconf.h
@@ -18,8 +18,5 @@
#include_next
-#undef STM32_PWM_USE_ADVANCED
-#define STM32_PWM_USE_ADVANCED TRUE
-
#undef STM32_PWM_USE_TIM1
#define STM32_PWM_USE_TIM1 TRUE
diff --git a/keyboards/acheron/arctic/keyboard.json b/keyboards/acheron/arctic/keyboard.json
index cc686be5fa2..5b5768a490c 100644
--- a/keyboards/acheron/arctic/keyboard.json
+++ b/keyboards/acheron/arctic/keyboard.json
@@ -29,6 +29,9 @@
"diode_direction": "COL2ROW",
"processor": "STM32F072",
"bootloader": "stm32-dfu",
+ "layout_aliases": {
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
+ },
"layouts": {
"LAYOUT_60_ansi_tsangan": {
"layout": [
@@ -98,7 +101,7 @@
{"matrix": [4, 11], "x": 13.5, "y": 4, "w": 1.5}
]
},
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
diff --git a/keyboards/acheron/arctic/keymaps/default/keymap.c b/keyboards/acheron/arctic/keymaps/default/keymap.c
index 041b814bb99..dc5b32a5f1f 100755
--- a/keyboards/acheron/arctic/keymaps/default/keymap.c
+++ b/keyboards/acheron/arctic/keymaps/default/keymap.c
@@ -17,13 +17,13 @@ along with this program. If not, see .
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_60_tsangan_hhkb(
+ [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_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_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(1) , KC_RCTL ),
- [1] = LAYOUT_60_tsangan_hhkb(
+ [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_TRNS, KC_TRNS, KC_DEL, KC_DEL,
KC_TRNS, KC_TRNS, KC_UP , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS,
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_PGUP, KC_TRNS,
diff --git a/keyboards/acheron/athena/alpha/alpha.c b/keyboards/acheron/athena/alpha/alpha.c
index 8fe47eff821..4dea24b93d6 100644
--- a/keyboards/acheron/athena/alpha/alpha.c
+++ b/keyboards/acheron/athena/alpha/alpha.c
@@ -24,6 +24,8 @@ void board_init(void) {
void keyboard_post_init_kb(void){
// Defining the backlight pin (A6) as an floating (no pullup or pulldown resistor) opendrain output pin
palSetLineMode(BACKLIGHT_PIN, PAL_MODE_ALTERNATE(2) | PAL_STM32_OTYPE_OPENDRAIN | PAL_STM32_OSPEED_HIGHEST | PAL_STM32_PUPDR_FLOATING);
+
+ keyboard_post_init_user();
}
void led_init_ports(void) {
diff --git a/keyboards/acheron/athena/alpha/keymaps/via/keymap.c b/keyboards/acheron/athena/alpha/keymaps/via/keymap.c
deleted file mode 100644
index f17c1234b7d..00000000000
--- a/keyboards/acheron/athena/alpha/keymaps/via/keymap.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright 2020 Gondolindrim
- *
- * 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( /* Base */
- 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_F13 , KC_PSCR, KC_SCRL, KC_PAUS,
- KC_TILD, 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_INS , KC_HOME, 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_DEL , KC_END , KC_PGDN,
- KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_COLN, 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, KC_RSFT, MO(1) , KC_UP ,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RGUI, MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
-),
-[1] = LAYOUT_all(
- QK_BOOT, 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, 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
-),
-[2] = LAYOUT_all(
- 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, 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
-),
-[3] = LAYOUT_all(
- 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, 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/acheron/athena/alpha/keymaps/via/rules.mk b/keyboards/acheron/athena/alpha/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/acheron/athena/alpha/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/acheron/athena/alpha/mcuconf.h b/keyboards/acheron/athena/alpha/mcuconf.h
index 63f1e30e641..c35579fe1c7 100644
--- a/keyboards/acheron/athena/alpha/mcuconf.h
+++ b/keyboards/acheron/athena/alpha/mcuconf.h
@@ -21,9 +21,6 @@
#undef STM32_I2C_USE_I2C1
#define STM32_I2C_USE_I2C1 TRUE
-#undef STM32_PWM_USE_ADVANCED
-#define STM32_PWM_USE_ADVANCED TRUE
-
#undef STM32_PWM_USE_TIM3
#define STM32_PWM_USE_TIM3 TRUE
diff --git a/keyboards/acheron/athena/beta/keymaps/via/keymap.c b/keyboards/acheron/athena/beta/keymaps/via/keymap.c
deleted file mode 100644
index f17c1234b7d..00000000000
--- a/keyboards/acheron/athena/beta/keymaps/via/keymap.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright 2020 Gondolindrim
- *
- * 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( /* Base */
- 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_F13 , KC_PSCR, KC_SCRL, KC_PAUS,
- KC_TILD, 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_INS , KC_HOME, 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_DEL , KC_END , KC_PGDN,
- KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_COLN, 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, KC_RSFT, MO(1) , KC_UP ,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RGUI, MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
-),
-[1] = LAYOUT_all(
- QK_BOOT, 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, 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
-),
-[2] = LAYOUT_all(
- 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, 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
-),
-[3] = LAYOUT_all(
- 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, 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/acheron/athena/beta/keymaps/via/rules.mk b/keyboards/acheron/athena/beta/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/acheron/athena/beta/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/acheron/athena/beta/mcuconf.h b/keyboards/acheron/athena/beta/mcuconf.h
index 63f1e30e641..c35579fe1c7 100644
--- a/keyboards/acheron/athena/beta/mcuconf.h
+++ b/keyboards/acheron/athena/beta/mcuconf.h
@@ -21,9 +21,6 @@
#undef STM32_I2C_USE_I2C1
#define STM32_I2C_USE_I2C1 TRUE
-#undef STM32_PWM_USE_ADVANCED
-#define STM32_PWM_USE_ADVANCED TRUE
-
#undef STM32_PWM_USE_TIM3
#define STM32_PWM_USE_TIM3 TRUE
diff --git a/keyboards/acheron/austin/austin.c b/keyboards/acheron/austin/austin.c
deleted file mode 100644
index 9a69d1c0865..00000000000
--- a/keyboards/acheron/austin/austin.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#include "quantum.h"
-
-void keyboard_pre_init_kb(void) {
- gpio_set_pin_output(A0);
- gpio_set_pin_output(A1);
- gpio_set_pin_output(A2);
-
- keyboard_pre_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- if (led_update_user(led_state)) {
- gpio_write_pin(A2, led_state.num_lock);
- gpio_write_pin(A0, led_state.caps_lock);
- gpio_write_pin(A1, led_state.scroll_lock);
- }
- return true;
-}
diff --git a/keyboards/acheron/austin/keyboard.json b/keyboards/acheron/austin/keyboard.json
index bee675472c9..a3df5dd75d3 100755
--- a/keyboards/acheron/austin/keyboard.json
+++ b/keyboards/acheron/austin/keyboard.json
@@ -33,6 +33,11 @@
"levels": 6,
"breathing": true
},
+ "indicators": {
+ "caps_lock": "A0",
+ "num_lock": "A2",
+ "scroll_lock": "A1"
+ },
"processor": "STM32F072",
"bootloader": "stm32-dfu",
"layouts": {
diff --git a/keyboards/acheron/austin/keymaps/via/config.h b/keyboards/acheron/austin/keymaps/via/config.h
deleted file mode 100644
index a3b77a5b4d0..00000000000
--- a/keyboards/acheron/austin/keymaps/via/config.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-
-#define DYNAMIC_KEYMAP_LAYER_COUNT 3
diff --git a/keyboards/acheron/austin/keymaps/via/keymap.c b/keyboards/acheron/austin/keymaps/via/keymap.c
deleted file mode 100644
index fd47f936e84..00000000000
--- a/keyboards/acheron/austin/keymaps/via/keymap.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
-Copyright 2012,2013 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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_all(
- 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_HOME, KC_END , KC_DEL ,
- 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_INS , 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_PGUP, 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_PGDN, KC_P4 , KC_P5 , KC_P6 ,
- KC_LSFT, 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, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0 , KC_P0 , KC_PDOT
- ),
-
- [1] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [2] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/acheron/austin/keymaps/via/rules.mk b/keyboards/acheron/austin/keymaps/via/rules.mk
deleted file mode 100644
index 666e72557b0..00000000000
--- a/keyboards/acheron/austin/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
diff --git a/keyboards/acheron/elongate/beta/keymaps/default/keymap.c b/keyboards/acheron/elongate/beta/keymaps/default/keymap.c
index c1c6dad6b6c..dd77ecf5eca 100644
--- a/keyboards/acheron/elongate/beta/keymaps/default/keymap.c
+++ b/keyboards/acheron/elongate/beta/keymaps/default/keymap.c
@@ -29,6 +29,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[2] = LAYOUT( /* Base */
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, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_M_T, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, UG_TOGG, UG_NEXT, UG_PREV, RGB_M_T, 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_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
};
diff --git a/keyboards/acheron/elongate/beta/keymaps/via/config.h b/keyboards/acheron/elongate/beta/keymaps/via/config.h
deleted file mode 100644
index a3b77a5b4d0..00000000000
--- a/keyboards/acheron/elongate/beta/keymaps/via/config.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-
-#define DYNAMIC_KEYMAP_LAYER_COUNT 3
diff --git a/keyboards/acheron/elongate/beta/keymaps/via/keymap.c b/keyboards/acheron/elongate/beta/keymaps/via/keymap.c
deleted file mode 100644
index c1c6dad6b6c..00000000000
--- a/keyboards/acheron/elongate/beta/keymaps/via/keymap.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright 2020 Gondolindrim
- *
- * 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( /* Base */
- 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_P7, KC_P8, KC_P9,
- KC_SCRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENTER, KC_P4, KC_P5, KC_P6,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, MO(1) , KC_UP, KC_P1, KC_P2, KC_P3,
- KC_LCTL, KC_LWIN, KC_LALT, LT(2, KC_SPACE), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_DOT),
-[1] = LAYOUT( /* Base */
- KC_F1, KC_F2, KC_F2, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_NUM, KC_SCRL, KC_CAPS,
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RSFT, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_SLSH, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_HOME, KC_PGDN, KC_END , KC_TRNS, KC_TRNS),
-[2] = LAYOUT( /* Base */
- 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, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_M_T, 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_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-};
diff --git a/keyboards/acheron/elongate/beta/keymaps/via/rules.mk b/keyboards/acheron/elongate/beta/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/acheron/elongate/beta/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/acheron/elongate/delta/delta.c b/keyboards/acheron/elongate/delta/delta.c
index 98b60bae614..839151521a2 100755
--- a/keyboards/acheron/elongate/delta/delta.c
+++ b/keyboards/acheron/elongate/delta/delta.c
@@ -74,4 +74,6 @@ layer_state_t layer_state_set_kb(layer_state_t state) {
// Since the keyboard starts at layer 0, the init function starts LED4 as lit up.
void keyboard_post_init_kb(void){
gpio_write_pin(LED4_PIN, 0);
+
+ keyboard_post_init_user();
}
diff --git a/keyboards/acheron/elongate/delta/keymaps/default/keymap.c b/keyboards/acheron/elongate/delta/keymaps/default/keymap.c
index c182e653b7d..f909c66a41e 100755
--- a/keyboards/acheron/elongate/delta/keymaps/default/keymap.c
+++ b/keyboards/acheron/elongate/delta/keymaps/default/keymap.c
@@ -30,9 +30,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_HOME, KC_PGDN, KC_END , KC_TRNS, KC_TRNS
),
[2] = LAYOUT( /* Base */
- QK_BOOT , 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,
+ QK_BOOT, 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, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_M_T, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, UG_TOGG, UG_NEXT, UG_PREV, RGB_M_T, 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_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[3] = LAYOUT( /* Base */
diff --git a/keyboards/acheron/elongate/delta/keymaps/via/keymap.c b/keyboards/acheron/elongate/delta/keymaps/via/keymap.c
deleted file mode 100755
index c182e653b7d..00000000000
--- a/keyboards/acheron/elongate/delta/keymaps/via/keymap.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Copyright 2020 Gondolindrim
- *
- * 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
-#define SPC_L2 LT(2, KC_SPACE)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = LAYOUT( /* Base */
- 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_KP_7, KC_KP_8, KC_KP_9,
- KC_TAB , KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENTER, KC_KP_4, KC_KP_5, KC_KP_6,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, MO(1) , KC_UP, KC_KP_1, KC_KP_2, KC_KP_3,
- KC_LCTL, KC_LWIN, KC_LALT, SPC_L2, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_KP_0, KC_DOT
-),
-[1] = LAYOUT( /* Base */
- KC_F1, KC_F2, KC_F2, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_NUM, KC_SCRL, KC_CAPS,
- KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_SLSH, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_HOME, KC_PGDN, KC_END , KC_TRNS, KC_TRNS
-),
-[2] = LAYOUT( /* Base */
- QK_BOOT , 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, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_M_T, 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_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
-),
-[3] = LAYOUT( /* Base */
- 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_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
-)
-};
diff --git a/keyboards/acheron/elongate/delta/keymaps/via/rules.mk b/keyboards/acheron/elongate/delta/keymaps/via/rules.mk
deleted file mode 100755
index 1e5b99807cb..00000000000
--- a/keyboards/acheron/elongate/delta/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/acheron/shark/alpha/keymaps/via/keymap.c b/keyboards/acheron/shark/alpha/keymaps/via/keymap.c
deleted file mode 100644
index 77343b2e6da..00000000000
--- a/keyboards/acheron/shark/alpha/keymaps/via/keymap.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/* Copyright 2019
- *
- * 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
-
-enum layers {
- _QWERTY = 0,
- _LOWER,
- _RAISE,
- _ADJUST,
-};
-
-#define LOWER TL_LOWR
-#define RAISE TL_UPPR
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | Alt | GUI | |Lower | Space| Space|Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT_ortho_4x12(
- 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_ESC, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
- KC_LCTL, KC_LALT, KC_LGUI, _______, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | | \ | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_ortho_4x12(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, BL_TOGG, BL_UP , BL_DOWN, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_ortho_4x12(
- KC_GRV, 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | | Reset| | | | | | | | | | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_ortho_4x12(
- _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, BL_TOGG, BL_UP, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______
-)
-};
diff --git a/keyboards/acheron/shark/alpha/keymaps/via/rules.mk b/keyboards/acheron/shark/alpha/keymaps/via/rules.mk
deleted file mode 100644
index 666e72557b0..00000000000
--- a/keyboards/acheron/shark/alpha/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
diff --git a/keyboards/acheron/shark/beta/keymaps/via/keymap.c b/keyboards/acheron/shark/beta/keymaps/via/keymap.c
deleted file mode 100644
index 5cf5ac40da9..00000000000
--- a/keyboards/acheron/shark/beta/keymaps/via/keymap.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright 2019
- *
- * 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_4x12(
- 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_ESC , 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_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_ENT ,
- KC_LCTL , KC_LALT , KC_LGUI , KC_NO , MO(1) , KC_SPC , KC_SPC , MO(2) , KC_LEFT , KC_DOWN , KC_UP , KC_RGHT
- ),
- [1] = LAYOUT_ortho_4x12(
- 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
- ),
- [2] = LAYOUT_ortho_4x12(
- 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
- ),
- [3] = LAYOUT_ortho_4x12(
- 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/acheron/shark/beta/keymaps/via/rules.mk b/keyboards/acheron/shark/beta/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/acheron/shark/beta/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/acheron/shark/beta/mcuconf.h b/keyboards/acheron/shark/beta/mcuconf.h
index 63f1e30e641..c35579fe1c7 100644
--- a/keyboards/acheron/shark/beta/mcuconf.h
+++ b/keyboards/acheron/shark/beta/mcuconf.h
@@ -21,9 +21,6 @@
#undef STM32_I2C_USE_I2C1
#define STM32_I2C_USE_I2C1 TRUE
-#undef STM32_PWM_USE_ADVANCED
-#define STM32_PWM_USE_ADVANCED TRUE
-
#undef STM32_PWM_USE_TIM3
#define STM32_PWM_USE_TIM3 TRUE
diff --git a/keyboards/acheron/themis/87h/keymaps/default/keymap.c b/keyboards/acheron/themis/87h/keymaps/default/keymap.c
index 4728331f05f..c0526158096 100755
--- a/keyboards/acheron/themis/87h/keymaps/default/keymap.c
+++ b/keyboards/acheron/themis/87h/keymaps/default/keymap.c
@@ -30,8 +30,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
QK_BOOT, 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, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_HUEU, UG_SATU, UG_VALU, UG_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, UG_TOGG, UG_NEXT, UG_HUED, UG_SATD, UG_VALD, UG_SPDD, 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/acheron/themis/87h/keymaps/via/keymap.c b/keyboards/acheron/themis/87h/keymaps/via/keymap.c
deleted file mode 100755
index 4728331f05f..00000000000
--- a/keyboards/acheron/themis/87h/keymaps/via/keymap.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
-Copyright 2020 Á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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_tkl_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_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_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, MO(1) , KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [1] = LAYOUT_tkl_ansi(
- QK_BOOT, 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, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, 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/acheron/themis/87h/keymaps/via/rules.mk b/keyboards/acheron/themis/87h/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/acheron/themis/87h/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/acheron/themis/87h/mcuconf.h b/keyboards/acheron/themis/87h/mcuconf.h
index 3d1d05c307c..ff2280716d6 100644
--- a/keyboards/acheron/themis/87h/mcuconf.h
+++ b/keyboards/acheron/themis/87h/mcuconf.h
@@ -18,8 +18,5 @@
#include_next
-#undef STM32_PWM_USE_ADVANCED
-#define STM32_PWM_USE_ADVANCED TRUE
-
#undef STM32_PWM_USE_TIM1
#define STM32_PWM_USE_TIM1 TRUE
diff --git a/keyboards/acheron/themis/87htsc/keymaps/default/keymap.c b/keyboards/acheron/themis/87htsc/keymaps/default/keymap.c
index 7b29220ec8d..03d812c2d0d 100755
--- a/keyboards/acheron/themis/87htsc/keymaps/default/keymap.c
+++ b/keyboards/acheron/themis/87htsc/keymaps/default/keymap.c
@@ -30,8 +30,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
QK_BOOT, 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, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_HUEU, UG_SATU, UG_VALU, UG_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, UG_TOGG, UG_NEXT, UG_HUED, UG_SATD, UG_VALD, UG_SPDD, 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/acheron/themis/87htsc/keymaps/via/keymap.c b/keyboards/acheron/themis/87htsc/keymaps/via/keymap.c
deleted file mode 100755
index 7b29220ec8d..00000000000
--- a/keyboards/acheron/themis/87htsc/keymaps/via/keymap.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
-Copyright 2023 Gondolindrim
-
-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_tkl_ansi_tsangan(
- 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_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_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_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [1] = LAYOUT_tkl_ansi_tsangan(
- QK_BOOT, 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, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, 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/acheron/themis/87htsc/keymaps/via/rules.mk b/keyboards/acheron/themis/87htsc/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/acheron/themis/87htsc/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/acheron/themis/87htsc/mcuconf.h b/keyboards/acheron/themis/87htsc/mcuconf.h
index 3d1d05c307c..ff2280716d6 100644
--- a/keyboards/acheron/themis/87htsc/mcuconf.h
+++ b/keyboards/acheron/themis/87htsc/mcuconf.h
@@ -18,8 +18,5 @@
#include_next
-#undef STM32_PWM_USE_ADVANCED
-#define STM32_PWM_USE_ADVANCED TRUE
-
#undef STM32_PWM_USE_TIM1
#define STM32_PWM_USE_TIM1 TRUE
diff --git a/keyboards/acheron/themis/88htsc/keymaps/default/keymap.c b/keyboards/acheron/themis/88htsc/keymaps/default/keymap.c
index 725b294b0d6..7c47546ba70 100755
--- a/keyboards/acheron/themis/88htsc/keymaps/default/keymap.c
+++ b/keyboards/acheron/themis/88htsc/keymaps/default/keymap.c
@@ -30,8 +30,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
QK_BOOT, 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, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_HUEU, UG_SATU, UG_VALU, UG_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, UG_TOGG, UG_NEXT, UG_HUED, UG_SATD, UG_VALD, UG_SPDD, 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/acheron/themis/88htsc/keymaps/via/keymap.c b/keyboards/acheron/themis/88htsc/keymaps/via/keymap.c
deleted file mode 100755
index 725b294b0d6..00000000000
--- a/keyboards/acheron/themis/88htsc/keymaps/via/keymap.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
-Copyright 2023 Gondolindrim
-
-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_tkl_f13_ansi_tsangan(
- 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_F13, 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_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_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_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [1] = LAYOUT_tkl_f13_ansi_tsangan(
- QK_BOOT, 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, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, 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/acheron/themis/88htsc/keymaps/via/rules.mk b/keyboards/acheron/themis/88htsc/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/acheron/themis/88htsc/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/acheron/themis/88htsc/mcuconf.h b/keyboards/acheron/themis/88htsc/mcuconf.h
index 3d1d05c307c..ff2280716d6 100644
--- a/keyboards/acheron/themis/88htsc/mcuconf.h
+++ b/keyboards/acheron/themis/88htsc/mcuconf.h
@@ -18,8 +18,5 @@
#include_next
-#undef STM32_PWM_USE_ADVANCED
-#define STM32_PWM_USE_ADVANCED TRUE
-
#undef STM32_PWM_USE_TIM1
#define STM32_PWM_USE_TIM1 TRUE
diff --git a/keyboards/ada/ada1800mini/keymaps/default/keymap.c b/keyboards/ada/ada1800mini/keymaps/default/keymap.c
index ae77741f68e..6ec737309c6 100644
--- a/keyboards/ada/ada1800mini/keymaps/default/keymap.c
+++ b/keyboards/ada/ada1800mini/keymaps/default/keymap.c
@@ -29,8 +29,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[1] = LAYOUT(
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, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_DEL, _______, _______, _______,
- _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_SCLN, KC_QUOT, _______, _______, _______, _______,
- _______, RGB_TOG, RGB_MOD, _______, _______, _______, KC_COMM, KC_DOT, KC_SLSH, _______, _______, _______, _______, KC_VOLU,
+ _______, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, _______, KC_SCLN, KC_QUOT, _______, _______, _______, _______,
+ _______, UG_TOGG, UG_NEXT, _______, _______, _______, KC_COMM, KC_DOT, KC_SLSH, _______, _______, _______, _______, KC_VOLU,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______
),
diff --git a/keyboards/ada/infinity81/keymaps/default/keymap.c b/keyboards/ada/infinity81/keymaps/default/keymap.c
index 69bb3ce722f..2f7a9e65c23 100644
--- a/keyboards/ada/infinity81/keymaps/default/keymap.c
+++ b/keyboards/ada/infinity81/keymaps/default/keymap.c
@@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
QK_BOOT, 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, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, UG_SATU, UG_SATD, UG_VALU, UG_VALD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, 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/adafruit/macropad/keymaps/via/keymap.c b/keyboards/adafruit/macropad/keymaps/via/keymap.c
deleted file mode 100644
index cb2e480025a..00000000000
--- a/keyboards/adafruit/macropad/keymaps/via/keymap.c
+++ /dev/null
@@ -1,137 +0,0 @@
-/* Copyright 2022 Jose Pablo Ramirez
- *
- * 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(
- LT(1,KC_MUTE),
- KC_ENT, KC_0, KC_BSPC,
- KC_7, KC_8, KC_9,
- KC_4, KC_5, KC_6,
- KC_1, KC_2, KC_3
- ),
- [1] = LAYOUT(
- _______,
- CK_TOGG, AU_TOGG, _______,
- _______, _______, _______,
- _______, _______, _______,
- _______, _______, _______
- ),
- [2] = LAYOUT(
- _______,
- _______, _______, _______,
- _______, _______, _______,
- _______, _______, _______,
- _______, _______, _______
- ),
- [3] = LAYOUT(
- _______,
- _______, _______, _______,
- _______, _______, _______,
- _______, _______, _______,
- _______, _______, _______
- ),
-};
-
-#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(_______, _______) },
- [2] = { ENCODER_CCW_CW(_______, _______) },
- [3] = { ENCODER_CCW_CW(_______, _______) }
-};
-#endif
-
-
-#ifdef OLED_ENABLE
-static void render_qmk_logo(void) {
- static const char PROGMEM qmk_logo[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x3f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f,
- 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x83, 0x83, 0x83, 0x83, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe,
- 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x83, 0x83, 0x83, 0x83, 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, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x81, 0x83, 0x83, 0x83, 0x83, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x83, 0x83, 0x83, 0x83, 0x81,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x01, 0x07, 0x1f, 0x3f, 0x7f, 0x7e, 0xf8, 0xf0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff,
- 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xf0, 0xf8, 0x7e, 0x7f, 0x3f, 0x1f, 0x07, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, 0xff,
- 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xfc, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc,
- 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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(qmk_logo, sizeof(qmk_logo));
-}
-
-bool oled_task_user(void) {
- render_qmk_logo();
- return true;
-}
-
-#endif
diff --git a/keyboards/adafruit/macropad/keymaps/via/rules.mk b/keyboards/adafruit/macropad/keymaps/via/rules.mk
deleted file mode 100644
index 715838ecc5d..00000000000
--- a/keyboards/adafruit/macropad/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-ENCODER_MAP_ENABLE = yes
-VIA_ENABLE = yes
diff --git a/keyboards/adafruit/pico_pad/keyboard.json b/keyboards/adafruit/pico_pad/keyboard.json
new file mode 100644
index 00000000000..aacb7a9c00a
--- /dev/null
+++ b/keyboards/adafruit/pico_pad/keyboard.json
@@ -0,0 +1,53 @@
+{
+ "manufacturer": "Raspberry Pi",
+ "keyboard_name": "DirectPins Pico Pad 21 keys RP2040",
+ "maintainer": "icyavocado",
+ "bootloader": "rp2040",
+ "usb": {
+ "vid": "0x2326",
+ "pid": "0xFEED",
+ "device_version": "0.0.1"
+ },
+ "features": {
+ "bootmagic": true,
+ "mousekey": true,
+ "extrakey": true
+ },
+ "processor": "RP2040",
+ "matrix_pins": {
+ "direct": [
+ [ "GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6" ],
+ [ "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13"],
+ [ "GP14", "GP16", "GP17", "GP18", "GP19", "GP20", "GP21"]
+ ]
+ },
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"label": "GP0", "x": 0, "y": 0, "matrix": [0, 0]},
+ {"label": "GP1", "x": 0, "y": 1, "matrix": [0, 1]},
+ {"label": "GP2", "x": 0, "y": 2, "matrix": [0, 2]},
+ {"label": "GP3", "x": 0, "y": 3, "matrix": [0, 3]},
+ {"label": "GP4", "x": 0, "y": 4, "matrix": [0, 4]},
+ {"label": "GP5", "x": 0, "y": 5, "matrix": [0, 5]},
+ {"label": "GP6", "x": 0, "y": 6, "matrix": [0, 6]},
+
+ {"label": "GP7", "x": 1, "y": 0, "matrix": [1, 0]},
+ {"label": "GP8", "x": 1, "y": 1, "matrix": [1, 1]},
+ {"label": "GP9", "x": 1, "y": 2, "matrix": [1, 2]},
+ {"label": "GP10", "x": 1, "y": 3, "matrix": [1, 3]},
+ {"label": "GP11", "x": 1, "y": 4, "matrix": [1, 4]},
+ {"label": "GP12", "x": 1, "y": 5, "matrix": [1, 5]},
+ {"label": "GP13", "x": 1, "y": 6, "matrix": [1, 6]},
+
+ {"label": "GP14", "x": 2, "y": 0, "matrix": [2, 0]},
+ {"label": "GP16", "x": 2, "y": 1, "matrix": [2, 1]},
+ {"label": "GP17", "x": 2, "y": 2, "matrix": [2, 2]},
+ {"label": "GP18", "x": 2, "y": 3, "matrix": [2, 3]},
+ {"label": "GP19", "x": 2, "y": 4, "matrix": [2, 4]},
+ {"label": "GP20", "x": 2, "y": 5, "matrix": [2, 5]},
+ {"label": "GP21", "x": 2, "y": 6, "matrix": [2, 6]}
+ ]
+ }
+ }
+}
diff --git a/keyboards/adafruit/pico_pad/keymaps/default/keymap.json b/keyboards/adafruit/pico_pad/keymaps/default/keymap.json
new file mode 100644
index 00000000000..33e2979a09d
--- /dev/null
+++ b/keyboards/adafruit/pico_pad/keymaps/default/keymap.json
@@ -0,0 +1,12 @@
+{
+ "keyboard": "adafruit/pico_pad",
+ "keymap": "default",
+ "layout": "LAYOUT",
+ "layers": [
+ [
+ "KC_A", "KC_B", "KC_C", "KC_D", "KC_E", "KC_F", "KC_G",
+ "KC_H", "KC_I", "KC_J", "KC_K", "KC_L", "KC_M", "KC_N",
+ "KC_O", "KC_P", "KC_Q", "KC_R", "KC_S", "KC_T", "KC_U"
+ ]
+ ]
+}
diff --git a/keyboards/adafruit/pico_pad/readme.md b/keyboards/adafruit/pico_pad/readme.md
new file mode 100644
index 00000000000..4a834fbf4dd
--- /dev/null
+++ b/keyboards/adafruit/pico_pad/readme.md
@@ -0,0 +1,25 @@
+# PICO PAD
+
+
+
+A RP2040 powered direct pins QMK keyboard in 3x7 layout.
+
+A guide can be found here: [Pico Mechanical Keyboard](https://learn.adafruit.com/diy-pico-mechanical-keyboard-with-fritzing-circuitpython/overview)
+
+* Keyboard Maintainer: [IcyAvocado](https://github.com/icyavocado)
+* Hardware Supported: [Pico 1 Microcontrollers - RP2040](https://www.raspberrypi.com/documentation/microcontrollers/pico-series.html#pico-1-family)
+* Hardware Availability: [The PiHut](https://thepihut.com/products/raspberry-pi-pico) | [Adafruit Parts](https://learn.adafruit.com/diy-pico-mechanical-keyboard-with-fritzing-circuitpython/overview)
+
+Make example for this board (after setting up your build environment):
+
+```sh
+qmk compile -kb adafruit/pico_pad -km 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).
+
+## Bootloader
+
+Enter the bootloader:
+* **Physical reset button**: Briefly press the reset button on the left of the PCB - some may have pads you must short instead
+* **Boot button**: Press and hold the BOOTSEL button on the pico when powered on
diff --git a/keyboards/adelheid/keymaps/via/keymap.c b/keyboards/adelheid/keymaps/via/keymap.c
deleted file mode 100644
index 4341dc54300..00000000000
--- a/keyboards/adelheid/keymaps/via/keymap.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright 2020 floookay
- *
- * 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(
- 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_F13, KC_PGUP,
- 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_BSLS, KC_DEL, KC_HOME,
- 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_BSPC, KC_END,
- 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_ENT, KC_PGDN,
- 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_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [1] = LAYOUT(
- KC_SLEP, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PSCR, KC_VOLU,
- _______, 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, BL_STEP,
- _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, _______, KC_DEL, KC_MUTE,
- KC_LGUI, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, KC_MPLY, KC_VOLD,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY,
- _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MSTP, KC_MNXT
- ),
-
- [2] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [3] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/adelheid/keymaps/via/rules.mk b/keyboards/adelheid/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc9..00000000000
--- a/keyboards/adelheid/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/adkb96/keymaps/default/config.h b/keyboards/adkb96/keymaps/default/config.h
index 3f8d841423a..a1c18568bed 100644
--- a/keyboards/adkb96/keymaps/default/config.h
+++ b/keyboards/adkb96/keymaps/default/config.h
@@ -20,13 +20,6 @@ along with this program. If not, see .
#pragma once
-
//#define USE_I2C
-/* Select hand configuration */
-
-#define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
-
#define FORCE_NKRO
diff --git a/keyboards/adkb96/rev1/keyboard.json b/keyboards/adkb96/rev1/keyboard.json
index 77f9177555a..7cf92f15163 100644
--- a/keyboards/adkb96/rev1/keyboard.json
+++ b/keyboards/adkb96/rev1/keyboard.json
@@ -28,7 +28,9 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D0"
+ "serial": {
+ "pin": "D0"
+ }
},
"tapping": {
"term": 100
diff --git a/keyboards/adkb96/rules.mk b/keyboards/adkb96/rules.mk
deleted file mode 100644
index ac7561b21dd..00000000000
--- a/keyboards/adkb96/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DEFAULT_FOLDER = adkb96/rev1
diff --git a/keyboards/adm42/rev4/keymaps/default/keymap.json b/keyboards/adm42/rev4/keymaps/default/keymap.json
index 72eb7d50de4..dce2405bc06 100644
--- a/keyboards/adm42/rev4/keymaps/default/keymap.json
+++ b/keyboards/adm42/rev4/keymaps/default/keymap.json
@@ -29,9 +29,9 @@
"KC_CAPS", "_______", "_______", "_______", "_______", "KC_CAPS"
],
[
- "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RGB_M_B", "RGB_VAD", "RGB_VAI", "RGB_SAD", "RGB_SAI", "XXXXXXX",
- "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RGB_TOG", "RGB_MOD", "RGB_RMOD", "RGB_HUD", "RGB_HUI", "XXXXXXX",
- "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RGB_M_P", "RGB_SPD", "RGB_SPI", "XXXXXXX", "XXXXXXX", "XXXXXXX",
+ "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RGB_M_B", "RM_VALD", "RM_VALU", "RM_SATD", "RM_SATU", "XXXXXXX",
+ "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RM_TOGG", "RM_NEXT", "RM_PREV", "RM_HUED", "RM_HUEU", "XXXXXXX",
+ "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RGB_M_P", "RM_SPDD", "RM_SPDU", "XXXXXXX", "XXXXXXX", "XXXXXXX",
"XXXXXXX", "XXXXXXX", "XXXXXXX", "MO(5)", "XXXXXXX", "XXXXXXX"
],
[
diff --git a/keyboards/adm42/rules.mk b/keyboards/adm42/rules.mk
deleted file mode 100644
index 06fc88e9f6c..00000000000
--- a/keyboards/adm42/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DEFAULT_FOLDER = adm42/rev4
\ No newline at end of file
diff --git a/keyboards/adpenrose/akemipad/keymaps/default/keymap.c b/keyboards/adpenrose/akemipad/keymaps/default/keymap.c
index 7226b85f2c9..ad71e0281f6 100644
--- a/keyboards/adpenrose/akemipad/keymaps/default/keymap.c
+++ b/keyboards/adpenrose/akemipad/keymaps/default/keymap.c
@@ -42,8 +42,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#if defined(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(RGB_HUD, RGB_HUI) },
- [2] = { ENCODER_CCW_CW(RGB_SAD, RGB_SAI) },
- [3] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }
+ [1] = { ENCODER_CCW_CW(RM_HUED, RM_HUEU) },
+ [2] = { ENCODER_CCW_CW(RM_SATD, RM_SATU) },
+ [3] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) }
};
#endif
diff --git a/keyboards/adpenrose/akemipad/keymaps/default_numpad/keymap.c b/keyboards/adpenrose/akemipad/keymaps/default_numpad/keymap.c
index 080df8d1824..3f76587dde6 100644
--- a/keyboards/adpenrose/akemipad/keymaps/default_numpad/keymap.c
+++ b/keyboards/adpenrose/akemipad/keymaps/default_numpad/keymap.c
@@ -42,8 +42,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#if defined(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(RGB_HUD, RGB_HUI) },
- [2] = { ENCODER_CCW_CW(RGB_SAD, RGB_SAI) },
- [3] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }
+ [1] = { ENCODER_CCW_CW(RM_HUED, RM_HUEU) },
+ [2] = { ENCODER_CCW_CW(RM_SATD, RM_SATU) },
+ [3] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) }
};
#endif
diff --git a/keyboards/adpenrose/akemipad/keymaps/via/keymap.c b/keyboards/adpenrose/akemipad/keymaps/via/keymap.c
deleted file mode 100644
index e20ed0c9c7b..00000000000
--- a/keyboards/adpenrose/akemipad/keymaps/via/keymap.c
+++ /dev/null
@@ -1,135 +0,0 @@
-// Copyright 2022 Arturo Avila (@ADPenrose), Christopher Courtney/Drashna Jael're (@drashna)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-/* Structure that helps store settings in memory and write to the EEPROM: */
-typedef union {
- uint32_t raw;
- struct {
- bool split_zero :1;
- bool split_enter :1;
- bool split_plus :1;
- };
-} via_layout_t;
-
-via_layout_t via_layouts;
-
-/* Keymap */
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_all(
- MO(1), MO(2), MO(3), KC_DEL,
- KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
- KC_P7, KC_P8, KC_P9, KC_PPLS,
- KC_P4, KC_P5, KC_P6, KC_PPLS,
- KC_P1, KC_P2, KC_P3, KC_PENT,
- KC_MUTE, KC_P0, KC_P0, KC_PDOT, KC_PENT
- ),
- [1] = LAYOUT_all(
- KC_TRNS, CK_DOWN, CK_UP, CK_RST,
- MU_TOGG, MU_NEXT, 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,
- CK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [2] = LAYOUT_all(
- 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
- ),
- [3] = LAYOUT_all(
- QK_BOOT, 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
- )
-};
-
-#if defined(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(RGB_HUD, RGB_HUI) },
- [2] = { ENCODER_CCW_CW(RGB_SAD, RGB_SAI) },
- [3] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }
-};
-#endif
-
-/* Setting layout options and debugging text indicators */
-void via_set_layout_options_kb(uint32_t value) {
- via_layouts.raw = value;
- #ifdef CONSOLE_ENABLE
- if (via_layouts.split_zero && via_layouts.split_enter && via_layouts.split_plus){
- xprintf("All three layouts are active with a value of: %d\n", value);
- } else if (!(via_layouts.split_zero) && via_layouts.split_enter && via_layouts.split_plus){
- xprintf("SE and SP layouts are active with a value of: %d\n", value);
- } else if (via_layouts.split_zero && !(via_layouts.split_enter) && via_layouts.split_plus){
- xprintf("SZ and SP layouts are active with a value of: %d\n", value);
- } else if (!(via_layouts.split_zero) && !(via_layouts.split_enter) && via_layouts.split_plus){
- xprintf("SP is the only layout active with a value of: %d\n", value);
- } else if (via_layouts.split_zero && via_layouts.split_enter && !(via_layouts.split_plus)){
- xprintf("SE and SZ layouts are active with a value of: %d\n", value);
- } else if (!(via_layouts.split_zero) && via_layouts.split_enter && !(via_layouts.split_plus)) {
- xprintf("SE is the only layout active with a value of: %d\n", value);
- } else if (via_layouts.split_zero && !(via_layouts.split_enter) && !(via_layouts.split_plus)){
- xprintf("SZ is the only layout active with a value of: %d\n", value);
- } else {
- xprintf("The base layout is active with a value of: %d\n", value);
- }
- #endif
-}
-
-/* Turing LEDs on/off depending on the layout selected on VIA */
-bool rgb_matrix_indicators_user(void){
- if (via_layouts.split_zero && via_layouts.split_enter && via_layouts.split_plus){
- rgb_matrix_set_color(12, 0, 0, 0);
- rgb_matrix_set_color(21, 0, 0, 0);
- rgb_matrix_set_color(23, 0, 0, 0);
- } else if (!(via_layouts.split_zero) && via_layouts.split_enter && via_layouts.split_plus){
- rgb_matrix_set_color(12, 0, 0, 0);
- rgb_matrix_set_color(21, 0, 0, 0);
- rgb_matrix_set_color(22, 0, 0, 0);
- rgb_matrix_set_color(24, 0, 0, 0);
- } else if (via_layouts.split_zero && !(via_layouts.split_enter) && via_layouts.split_plus){
- rgb_matrix_set_color(12, 0, 0, 0);
- rgb_matrix_set_color(20, 0, 0, 0);
- rgb_matrix_set_color(23, 0, 0, 0);
- rgb_matrix_set_color(26, 0, 0, 0);
- } else if (!(via_layouts.split_zero) && !(via_layouts.split_enter) && via_layouts.split_plus){
- rgb_matrix_set_color(12, 0, 0, 0);
- rgb_matrix_set_color(20, 0, 0, 0);
- rgb_matrix_set_color(22, 0, 0, 0);
- rgb_matrix_set_color(24, 0, 0, 0);
- rgb_matrix_set_color(26, 0, 0, 0);
- } else if (via_layouts.split_zero && via_layouts.split_enter && !(via_layouts.split_plus)){
- rgb_matrix_set_color(11, 0, 0, 0);
- rgb_matrix_set_color(16, 0, 0, 0);
- rgb_matrix_set_color(21, 0, 0, 0);
- rgb_matrix_set_color(23, 0, 0, 0);
- } else if (!(via_layouts.split_zero) && via_layouts.split_enter && !(via_layouts.split_plus)) {
- rgb_matrix_set_color(11, 0, 0, 0);
- rgb_matrix_set_color(16, 0, 0, 0);
- rgb_matrix_set_color(21, 0, 0, 0);
- rgb_matrix_set_color(22, 0, 0, 0);
- rgb_matrix_set_color(24, 0, 0, 0);
- } else if (via_layouts.split_zero && !(via_layouts.split_enter) && !(via_layouts.split_plus)){
- rgb_matrix_set_color(11, 0, 0, 0);
- rgb_matrix_set_color(16, 0, 0, 0);
- rgb_matrix_set_color(20, 0, 0, 0);
- rgb_matrix_set_color(23, 0, 0, 0);
- rgb_matrix_set_color(26, 0, 0, 0);
- } else {
- rgb_matrix_set_color(11, 0, 0, 0);
- rgb_matrix_set_color(16, 0, 0, 0);
- rgb_matrix_set_color(20, 0, 0, 0);
- rgb_matrix_set_color(22, 0, 0, 0);
- rgb_matrix_set_color(24, 0, 0, 0);
- rgb_matrix_set_color(26, 0, 0, 0);
- }
- return false;
-}
diff --git a/keyboards/adpenrose/akemipad/keymaps/via/readme.md b/keyboards/adpenrose/akemipad/keymaps/via/readme.md
deleted file mode 100644
index 9032c1d2181..00000000000
--- a/keyboards/adpenrose/akemipad/keymaps/via/readme.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# The VIA-compatible keymap for the AkemiPad
-
-# Features
-- Audio Click and Music Mode capabilities.
-- RGB Matrix Lighting (cycles left-right and up-down).
-- LEDs turn on and off depending on the layout selected on the VIA UI.
-- Encoder Map feature.
-
-## The star of the show: the "RGB matrix layout-dependant" capability
-Inside of this keymap resides the first implementation (AFAIK) of a LED matrix that turns
-LEDs on and off, depending on the layout/layouts activated through VIA. The available
-layouts are as follows:
-
-[](https://tinyurl.com/KLE-AkemiPad)
-
diff --git a/keyboards/adpenrose/akemipad/keymaps/via/rules.mk b/keyboards/adpenrose/akemipad/keymaps/via/rules.mk
deleted file mode 100644
index 1189f4ad192..00000000000
--- a/keyboards/adpenrose/akemipad/keymaps/via/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
-ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/adpenrose/kintsugi/keymaps/via/keymap.c b/keyboards/adpenrose/kintsugi/keymaps/via/keymap.c
deleted file mode 100644
index 3631b485cc7..00000000000
--- a/keyboards/adpenrose/kintsugi/keymaps/via/keymap.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Copyright 2022 adpenrose
- *
- * 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
-
-/* Base layout:
- * ,---------------------------------------------------------------------|
- * |` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |- |= |Backspace| OLED|
- * |--------------------------------------------------------------- |
- * |Tab |Q |W |E |R |T |Y |U |I |O |P |[ | ] | \ OLED|
- * |---------------------------------------------------------------------|
- * |Caps |A |S |D |F |G |H |J |K |L |; |' | Enter | ENC |
- * |---------------------------------------------------------------------|
- * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |Up| M0(3) |
- * |---------------------------------------------------------------------|
- * |Ctrl|GUI |Alt | Space |MO(1) |MO(2)| |Lt |Dn |Rt |
- * `---------------------------------------------------------------------|'
- */
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Base */
- [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_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_MUTE,
- 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, MO(3),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), MO(2), KC_LEFT, KC_DOWN, KC_RIGHT
- ),
- [1] = LAYOUT(
- _______, 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,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [2] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [3] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-};
-
-#if defined(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_TRNS, KC_TRNS) },
- [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
- [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
-};
-#endif
diff --git a/keyboards/adpenrose/kintsugi/keymaps/via/rules.mk b/keyboards/adpenrose/kintsugi/keymaps/via/rules.mk
deleted file mode 100644
index 1189f4ad192..00000000000
--- a/keyboards/adpenrose/kintsugi/keymaps/via/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
-ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/adpenrose/mine/keymaps/via/keymap.c b/keyboards/adpenrose/mine/keymaps/via/keymap.c
deleted file mode 100644
index 776ed893d54..00000000000
--- a/keyboards/adpenrose/mine/keymaps/via/keymap.c
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright 2022 Arturo Avila (@Arturo Avila)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_all(
- KC_MUTE,
- 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_HOME, KC_END, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
- 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_P7, KC_P8, KC_P9, KC_PPLS,
- 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_P4, KC_P5, KC_P6,
- 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_P1, KC_P2, KC_P3, KC_PENT,
- KC_LSFT, KC_BSLS, 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_UP, KC_P0, KC_PDOT,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
- ),
-
- [1] = LAYOUT_all(
- KC_TRNS,
- QK_BOOT, 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_PSCR, 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, 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
- )
-};
-
-#if defined(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_TRNS, KC_TRNS) }
-};
-#endif
diff --git a/keyboards/adpenrose/mine/keymaps/via/rules.mk b/keyboards/adpenrose/mine/keymaps/via/rules.mk
deleted file mode 100644
index 4253f570f0b..00000000000
--- a/keyboards/adpenrose/mine/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-ENCODER_MAP_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/adpenrose/obi/keymaps/via/keymap.c b/keyboards/adpenrose/obi/keymaps/via/keymap.c
deleted file mode 100644
index 74302927312..00000000000
--- a/keyboards/adpenrose/obi/keymaps/via/keymap.c
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright 2022 Arturo Avila (@ADPenrose)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Base */
- [0] = LAYOUT_all(
- KC_ESC, 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_BSPC,
- KC_MUTE, 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_VOLU, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_RSFT, KC_UP, KC_SLSH,
- KC_VOLD, KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_RIGHT
- ),
- [1] = LAYOUT_all(
- KC_DEL, KC_TRNS, 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_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_QUOT, KC_BSLS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DOT, 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
- ),
- [2] = LAYOUT_all(
- KC_TILD, 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_RBRC,
- KC_TRNS, QK_BOOT, 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
- ),
- [3] = LAYOUT_all(
- 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
- )
-};
-
-#if defined(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_TRNS, KC_TRNS) },
- [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
- [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
-};
-#endif
diff --git a/keyboards/adpenrose/obi/keymaps/via/rules.mk b/keyboards/adpenrose/obi/keymaps/via/rules.mk
deleted file mode 100644
index 1189f4ad192..00000000000
--- a/keyboards/adpenrose/obi/keymaps/via/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
-ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/adpenrose/shisaku/keymaps/via/keymap.c b/keyboards/adpenrose/shisaku/keymaps/via/keymap.c
deleted file mode 100644
index 5b55e18e0dd..00000000000
--- a/keyboards/adpenrose/shisaku/keymaps/via/keymap.c
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright 2022 Arturo Avila (@ADPenrose)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(
- 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_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, MO(2), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT,
- KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_LEFT, KC_DOWN, KC_RIGHT
- ),
- [1] = LAYOUT(
- KC_TILD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
- KC_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_QUOT, KC_BSLS,
- 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_SLSH,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [2] = LAYOUT(
- KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [3] = LAYOUT(
- 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_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/adpenrose/shisaku/keymaps/via/rules.mk b/keyboards/adpenrose/shisaku/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc9..00000000000
--- a/keyboards/adpenrose/shisaku/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/aeboards/aegis/keymaps/via/keymap.c b/keyboards/aeboards/aegis/keymaps/via/keymap.c
deleted file mode 100644
index 0aa14fdea8e..00000000000
--- a/keyboards/aeboards/aegis/keymaps/via/keymap.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Copyright 2018 Jason Williams (Wilba)
- *
- * 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] = {
- /* Keymap BASE: (Base Layer) Default Layer
- * ,-------------------. ,-------------------------------------------------------------.
- * |End |Home|PgDn|PgUp| |Esc| F1| F2| F3| F4| | F5| F6| F7| F8| | F9|F10|F11|F12|
- * `-------------------' `-------------------------------------------------------------'
- *
- * |-------------------| ,-------------------------------------------------------------.
- * |- | * | / |BSPC| | ~ | 1 | 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|pipe| del|
- * |-------------------| |-------------------------------------------------------------|
- * | | 9 | 8 | 7 | |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| BSPC |
- * | + |--------------| |-------------------------------------------------------------|
- * | | 6 | 5 | 4 | |Ctrl | A| S| D| F| G| H| J| K| L| ;| '|Return |
- * |-------------------| |-------------------------------------------------------------|
- * | | 3 | 2 | 1 | |Up| |Shift| Z| X| C| V| B| N| M| ,| .| /|Shift | FN |
- * | ENT|-------------------------------------------------------------------------------|
- * | | 0 | left |Dn| rhgt | FN | Alt | Space |Alt |Gui| ctrl| |
- * `------------------------------------------------------------------------------------'
- */
- [0] = LAYOUT_all(
- KC_END , KC_HOME, KC_PGDN, KC_PGUP, 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_PMNS, KC_PAST, KC_PSLS, KC_BSPC, 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_BSLS, KC_DEL,
- KC_PPLS, KC_P9 , KC_P8 , KC_P7 , 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_BSPC,
- KC_PPLS, KC_P6 , KC_P5 , KC_P4 , 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_ENT ,
- KC_PENT, KC_P3 , KC_P2 , KC_P1 , KC_UP , 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_PENT, KC_PDOT, KC_P0 , KC_LEFT, KC_DOWN, KC_RGHT, MO(1), KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
- ),
-
- [1] = LAYOUT_all(
- 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_PGDN, KC_UP , KC_PGDN, KC_BSPC, 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_LEFT, KC_DOWN, KC_RGHT, KC_ENT , 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_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, 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
- ),
-
- [2] = LAYOUT_all(
- 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, 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
- ),
-
- [3] = LAYOUT_all(
- 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, 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/aeboards/aegis/keymaps/via/rules.mk b/keyboards/aeboards/aegis/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/aeboards/aegis/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/aeboards/constellation/keymaps/via/keymap.c b/keyboards/aeboards/constellation/keymaps/via/keymap.c
deleted file mode 100755
index 82c1dfecea9..00000000000
--- a/keyboards/aeboards/constellation/keymaps/via/keymap.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright 2018 Jason Williams (Wilba)
- *
- * 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] = {
-
- // Default layer
- [0] = LAYOUT_65_ansi_rwkl_split_bs(
- 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_DEL, KC_HOME,
- 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_BSPC, KC_PGUP,
- 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_ENT, KC_PGDN,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- // Fn1 Layer
- [1] = LAYOUT_65_ansi_rwkl_split_bs(
- 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_TRNS,
- KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, 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),
-
- // Fn2 Layer
- [2] = LAYOUT_65_ansi_rwkl_split_bs(
- 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, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
- // Fn3 Layer
- [3] = LAYOUT_65_ansi_rwkl_split_bs(
- 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, 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/aeboards/constellation/keymaps/via/rules.mk b/keyboards/aeboards/constellation/keymaps/via/rules.mk
deleted file mode 100755
index 1e5b99807cb..00000000000
--- a/keyboards/aeboards/constellation/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/aeboards/constellation/rules.mk b/keyboards/aeboards/constellation/rules.mk
deleted file mode 100755
index bd2af5d22bf..00000000000
--- a/keyboards/aeboards/constellation/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DEFAULT_FOLDER = aeboards/constellation/rev1
diff --git a/keyboards/aeboards/ext65/rev1/keyboard.json b/keyboards/aeboards/ext65/rev1/keyboard.json
index c254a671421..1d105505e53 100644
--- a/keyboards/aeboards/ext65/rev1/keyboard.json
+++ b/keyboards/aeboards/ext65/rev1/keyboard.json
@@ -13,6 +13,11 @@
"extrakey": true,
"nkro": true
},
+ "indicators": {
+ "caps_lock": "D3",
+ "num_lock": "D5",
+ "scroll_lock": "D2"
+ },
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"diode_direction": "COL2ROW",
diff --git a/keyboards/aeboards/ext65/rev1/keymaps/via/keymap.c b/keyboards/aeboards/ext65/rev1/keymaps/via/keymap.c
deleted file mode 100644
index 1cbbbddce89..00000000000
--- a/keyboards/aeboards/ext65/rev1/keymaps/via/keymap.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright 2020 Harrison Chan (Xelus)
- *
- * 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] = {
- /* Keymap BASE: (Base Layer) Default Layer
- * ,-------------------. ,-------------------------------------------------------------------.
- * |- | * | / |NmLK| |Esc| 1 | 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|pipe| ~ | Pscr|
- * |-------------------| |-------------------------------------------------------------------|
- * | | 9 | 8 | 7 | |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| BSPC | Del |
- * | + |--------------| |-------------------------------------------------------------------|
- * | | 6 | 5 | 4 | |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | Pgup|
- * |-------------------| |-------------------------------------------------------------------|
- * | | 3 | 2 | 1 | |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up | Pgdn|
- * | ENT|-------------------------------------------------------------------------------------|
- * | | . | 0 | | Ctrl | Win | Alt | Space | FN | Ctrl | |Left| Dn | Rght|
- * `------------------------------------------------------------------------------------------'
- */
- [0] = LAYOUT(
- KC_PMNS, KC_PAST, KC_PSLS, KC_NUM, 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_GRV , KC_PSCR,
- KC_PPLS, KC_P9 , KC_P8 , KC_P7 , 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_BSPC, KC_DEL ,
- KC_PPLS, KC_P6 , KC_P5 , KC_P4 , 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_PGUP,
- KC_PENT, KC_P3 , KC_P2 , KC_P1 , 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_PGDN,
- KC_PENT, KC_PDOT, KC_P0 , KC_P0 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [1] = LAYOUT(
- 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, QK_BOOT,
- 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, EE_CLR,
- 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, DB_TOGG,
- 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/aeboards/ext65/rev1/keymaps/via/rules.mk b/keyboards/aeboards/ext65/rev1/keymaps/via/rules.mk
deleted file mode 100644
index ab9d5c6ac2f..00000000000
--- a/keyboards/aeboards/ext65/rev1/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-OLED_ENABLE = yes
diff --git a/keyboards/aeboards/ext65/rev1/rev1.c b/keyboards/aeboards/ext65/rev1/rev1.c
index 344a2bcb322..fc8280a5e4e 100644
--- a/keyboards/aeboards/ext65/rev1/rev1.c
+++ b/keyboards/aeboards/ext65/rev1/rev1.c
@@ -16,23 +16,10 @@
#include "quantum.h"
-void keyboard_pre_init_user(void) {
- // Call the keyboard pre init code.
- // Set our LED pins as output
- gpio_set_pin_output(D5);
- gpio_set_pin_output(D3);
- gpio_set_pin_output(D2);
- gpio_set_pin_output(D1);
-}
+void keyboard_pre_init_kb(void) {
+ gpio_set_pin_output(D1);
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(D5, led_state.num_lock);
- gpio_write_pin(D3, led_state.caps_lock);
- gpio_write_pin(D2, led_state.scroll_lock);
- }
- return res;
+ keyboard_pre_init_user();
}
layer_state_t layer_state_set_kb(layer_state_t state) {
diff --git a/keyboards/aeboards/ext65/rev2/keyboard.json b/keyboards/aeboards/ext65/rev2/keyboard.json
index 0ab50f92582..ab7cceeefb3 100644
--- a/keyboards/aeboards/ext65/rev2/keyboard.json
+++ b/keyboards/aeboards/ext65/rev2/keyboard.json
@@ -22,6 +22,11 @@
"levels": 6,
"breathing": true
},
+ "indicators": {
+ "caps_lock": "B3",
+ "num_lock": "B4",
+ "scroll_lock": "A15"
+ },
"rgblight": {
"led_count": 24,
"animations": {
diff --git a/keyboards/aeboards/ext65/rev2/keymaps/default/keymap.c b/keyboards/aeboards/ext65/rev2/keymaps/default/keymap.c
index e246b5c471d..661a9bf66f7 100644
--- a/keyboards/aeboards/ext65/rev2/keymaps/default/keymap.c
+++ b/keyboards/aeboards/ext65/rev2/keymaps/default/keymap.c
@@ -39,9 +39,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[1] = LAYOUT(
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, QK_BOOT,
- KC_TRNS, RGB_TOG, RGB_MOD, 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, EE_CLR,
- KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, 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, DB_TOGG,
- KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, 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, UG_TOGG, UG_NEXT, 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, EE_CLR,
+ KC_TRNS, UG_HUEU, UG_SATU, UG_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, DB_TOGG,
+ KC_TRNS, UG_HUED, UG_SATD, UG_VALD, 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/aeboards/ext65/rev2/keymaps/via/keymap.c b/keyboards/aeboards/ext65/rev2/keymaps/via/keymap.c
deleted file mode 100644
index e246b5c471d..00000000000
--- a/keyboards/aeboards/ext65/rev2/keymaps/via/keymap.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright 2020 Harrison Chan (Xelus)
- *
- * 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] = {
- /* Keymap BASE: (Base Layer) Default Layer
- * ,-------------------. ,-------------------------------------------------------------------.
- * |- | * | / |NmLK| |Esc| 1 | 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|pipe| ~ | Pscr|
- * |-------------------| |-------------------------------------------------------------------|
- * | | 9 | 8 | 7 | |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| BSPC | Del |
- * | + |--------------| |-------------------------------------------------------------------|
- * | | 6 | 5 | 4 | |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | Pgup|
- * |-------------------| |-------------------------------------------------------------------|
- * | | 3 | 2 | 1 | |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up | Pgdn|
- * | ENT|-------------------------------------------------------------------------------------|
- * | | . | 0 | | Ctrl | Win | Alt | Space | FN | Ctrl | |Left| Dn | Rght|
- * `------------------------------------------------------------------------------------------'
- */
- [0] = LAYOUT(
- KC_PMNS, KC_PAST, KC_PSLS, KC_NUM, 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_GRV , KC_PSCR,
- KC_PPLS, KC_P9 , KC_P8 , KC_P7 , 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_BSPC, KC_DEL ,
- KC_PPLS, KC_P6 , KC_P5 , KC_P4 , 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_PGUP,
- KC_PENT, KC_P3 , KC_P2 , KC_P1 , 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_PGDN,
- KC_PENT, KC_PDOT, KC_P0 , KC_P0 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [1] = LAYOUT(
- 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, QK_BOOT,
- KC_TRNS, RGB_TOG, RGB_MOD, 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, EE_CLR,
- KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, 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, DB_TOGG,
- KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, 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/aeboards/ext65/rev2/keymaps/via/rules.mk b/keyboards/aeboards/ext65/rev2/keymaps/via/rules.mk
deleted file mode 100644
index ab9d5c6ac2f..00000000000
--- a/keyboards/aeboards/ext65/rev2/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-OLED_ENABLE = yes
diff --git a/keyboards/aeboards/ext65/rev2/rev2.c b/keyboards/aeboards/ext65/rev2/rev2.c
index 5922b601cd1..7b8ebb00875 100644
--- a/keyboards/aeboards/ext65/rev2/rev2.c
+++ b/keyboards/aeboards/ext65/rev2/rev2.c
@@ -69,26 +69,11 @@ bool oled_task_kb(void) {
#else
void keyboard_pre_init_kb(void) {
- // Call the keyboard pre init code.
- // Set our LED pins as output
- gpio_set_pin_output(B4);
- gpio_set_pin_output(B3);
- gpio_set_pin_output(A15);
gpio_set_pin_output(A14);
keyboard_pre_init_user();
}
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if (res) {
- gpio_write_pin(B4, led_state.num_lock);
- gpio_write_pin(B3, led_state.caps_lock);
- gpio_write_pin(A15, led_state.scroll_lock);
- }
- return res;
-}
-
layer_state_t layer_state_set_kb(layer_state_t state) {
switch (get_highest_layer(state)) {
case 1:
diff --git a/keyboards/aeboards/ext65/rev3/keymaps/via/keymap.c b/keyboards/aeboards/ext65/rev3/keymaps/via/keymap.c
deleted file mode 100644
index 56930cacc66..00000000000
--- a/keyboards/aeboards/ext65/rev3/keymaps/via/keymap.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright 2022 Harrison Chan (Xelus)
- *
- * 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] = {
- /* Keymap BASE: (Base Layer) Default Layer
- * ,-------------------. ,-------------------------------------------------------------------.
- * |- | * | / |NmLK| |Esc| 1 | 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| BSPC | Pscr|
- * |-------------------| |-------------------------------------------------------------------|
- * | | 9 | 8 | 7 | |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | Del |
- * | + |--------------| |-------------------------------------------------------------------|
- * | | 6 | 5 | 4 | |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | Pgup|
- * |-------------------| |-------------------------------------------------------------------|
- * | | 3 | 2 | 1 | |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up | Pgdn|
- * | ENT|-------------------------------------------------------------------------------------|
- * | | . | 0 | | Ctrl | Win | Alt | Space | FN | Ctrl | |Left| Dn | Rght|
- * `------------------------------------------------------------------------------------------'
- */
- [0] = LAYOUT(
- KC_PMNS, KC_PAST, KC_PSLS, KC_NUM, 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_PSCR,
- KC_PPLS, KC_P9 , KC_P8 , KC_P7 , 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_P6 , KC_P5 , KC_P4 , 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_PGUP,
- KC_PENT, KC_P3 , KC_P2 , KC_P1 , 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_PGDN,
- KC_PDOT, KC_P0 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [1] = LAYOUT(
- 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, QK_BOOT,
- 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, EE_CLR,
- 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, DB_TOGG,
- 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/aeboards/ext65/rev3/keymaps/via/rules.mk b/keyboards/aeboards/ext65/rev3/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/aeboards/ext65/rev3/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/aeboards/ext65/rev3/rev3.c b/keyboards/aeboards/ext65/rev3/rev3.c
index f8fc2ef5023..7b0f2018c2c 100644
--- a/keyboards/aeboards/ext65/rev3/rev3.c
+++ b/keyboards/aeboards/ext65/rev3/rev3.c
@@ -19,10 +19,12 @@
// Tested and verified working on EXT65 Rev3
void matrix_io_delay(void) { __asm__ volatile("nop\nnop\nnop\n"); }
-void keyboard_pre_init_user(void) {
+void keyboard_pre_init_kb(void) {
// Call the keyboard pre init code.
// Set our LED pins as output
gpio_set_pin_output(LED_LAYERS_PIN);
+
+ keyboard_pre_init_user();
}
layer_state_t layer_state_set_kb(layer_state_t state) {
diff --git a/keyboards/aeboards/ext65/rules.mk b/keyboards/aeboards/ext65/rules.mk
deleted file mode 100644
index d8b0595a5d3..00000000000
--- a/keyboards/aeboards/ext65/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DEFAULT_FOLDER = aeboards/ext65/rev2
\ No newline at end of file
diff --git a/keyboards/aeboards/satellite/keymaps/via/keymap.c b/keyboards/aeboards/satellite/keymaps/via/keymap.c
deleted file mode 100644
index 722761ad590..00000000000
--- a/keyboards/aeboards/satellite/keymaps/via/keymap.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright 2022 Harrison Chan (Xelus)
- *
- * 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] = {
-
- // Default layer
- [0] = LAYOUT_65_ansi_rwkl(
- 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_HOME,
- 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_ENT, KC_PGDN,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- // Fn1 Layer
- [1] = LAYOUT_65_ansi_rwkl(
- 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, QK_BOOT, KC_TRNS,
- KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, 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),
-
- // Fn2 Layer
- [2] = LAYOUT_65_ansi_rwkl(
- 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, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
- // Fn3 Layer
- [3] = LAYOUT_65_ansi_rwkl(
- 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, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-};
-
diff --git a/keyboards/aeboards/satellite/keymaps/via/rules.mk b/keyboards/aeboards/satellite/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/aeboards/satellite/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/aeboards/satellite/rules.mk b/keyboards/aeboards/satellite/rules.mk
deleted file mode 100644
index bc32615d2b9..00000000000
--- a/keyboards/aeboards/satellite/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DEFAULT_FOLDER = aeboards/satellite/rev1
diff --git a/keyboards/afternoonlabs/breeze/keymaps/via/keymap.c b/keyboards/afternoonlabs/breeze/keymaps/via/keymap.c
deleted file mode 100644
index be295ac502e..00000000000
--- a/keyboards/afternoonlabs/breeze/keymaps/via/keymap.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Copyright 2021 eithanshavit
- *
- * 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
-
-enum layer_names {
- _MAIN,
- _LOWER,
- _RAISE,
-};
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_MAIN] = LAYOUT(
- //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_MINS, KC_EQL, KC_GRV,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_LBRC, KC_RBRC, KC_BSLS,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
- 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_UP,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
- 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_LEFT, KC_DOWN, KC_RIGHT,
- //└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_ENT, RAISE, LOWER, XXXXXXX
- // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
- ),
-
- [_LOWER] = LAYOUT(
- //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
- _______, _______, _______, _______, _______, _______, _______, _______
- // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
- ),
-
- [_RAISE] = LAYOUT(
- //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
- _______, _______, _______, _______, _______, _______, _______, KC_PEQL, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, _______,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, _______, _______, _______,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, _______,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______,
- //└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
- _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT
- // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
- ),
-
- [3] = LAYOUT(
- //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
- _______, _______, _______, _______, _______, _______, _______, _______
- // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
- )
-
-
-};
diff --git a/keyboards/afternoonlabs/breeze/keymaps/via/readme.md b/keyboards/afternoonlabs/breeze/keymaps/via/readme.md
deleted file mode 100644
index d8eb3bb5112..00000000000
--- a/keyboards/afternoonlabs/breeze/keymaps/via/readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Default Breeze Layout + VIA support
-
-
-
-This is the default suggested layout for Breeze Split Keyboard, with VIA support.
diff --git a/keyboards/afternoonlabs/breeze/keymaps/via/rules.mk b/keyboards/afternoonlabs/breeze/keymaps/via/rules.mk
deleted file mode 100644
index 85ec1feb662..00000000000
--- a/keyboards/afternoonlabs/breeze/keymaps/via/rules.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-VIA_ENABLE = yes
-# LTO: link time optimization makes the build take slightly longer
-# but makes the resulting .hex file smaller, which allows you to
-# fit more features into smaller MCUs:
-LTO_ENABLE = yes
-# Support for these features make the hex file larger, but we want 'em:
-MOUSEKEY_ENABLE = yes # Allow mapping of mouse control keys
-EXTRAKEY_ENABLE = yes # Allow audio & system control keys
-COMMAND_ENABLE = yes # Commands for debug and configuration
-NKRO_ENABLE = yes
diff --git a/keyboards/afternoonlabs/breeze/rev0/config.h b/keyboards/afternoonlabs/breeze/rev0/config.h
deleted file mode 100644
index 3500564544b..00000000000
--- a/keyboards/afternoonlabs/breeze/rev0/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2021 eithanshavit
- *
- * 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 SPLIT_HAND_PIN B3
diff --git a/keyboards/afternoonlabs/breeze/rev0/keyboard.json b/keyboards/afternoonlabs/breeze/rev0/keyboard.json
index f20f082ec96..6ff73b1c158 100644
--- a/keyboards/afternoonlabs/breeze/rev0/keyboard.json
+++ b/keyboards/afternoonlabs/breeze/rev0/keyboard.json
@@ -21,7 +21,12 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D2"
+ "handedness": {
+ "pin": "B3"
+ },
+ "serial": {
+ "pin": "D2"
+ }
},
"bootmagic": {
"matrix": [0, 5]
diff --git a/keyboards/afternoonlabs/breeze/rev1/config.h b/keyboards/afternoonlabs/breeze/rev1/config.h
deleted file mode 100644
index d6bb6df14ce..00000000000
--- a/keyboards/afternoonlabs/breeze/rev1/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2021 Afternoon Labs
- *
- * 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 SPLIT_HAND_PIN B3
diff --git a/keyboards/afternoonlabs/breeze/rev1/keyboard.json b/keyboards/afternoonlabs/breeze/rev1/keyboard.json
index ccb13551c10..a0a0395add0 100644
--- a/keyboards/afternoonlabs/breeze/rev1/keyboard.json
+++ b/keyboards/afternoonlabs/breeze/rev1/keyboard.json
@@ -21,7 +21,12 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D2"
+ "handedness": {
+ "pin": "B3"
+ },
+ "serial": {
+ "pin": "D2"
+ }
},
"bootmagic": {
"matrix": [0, 5]
diff --git a/keyboards/afternoonlabs/oceanbreeze/rev1/config.h b/keyboards/afternoonlabs/oceanbreeze/rev1/config.h
deleted file mode 100644
index d6bb6df14ce..00000000000
--- a/keyboards/afternoonlabs/oceanbreeze/rev1/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2021 Afternoon Labs
- *
- * 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 SPLIT_HAND_PIN B3
diff --git a/keyboards/afternoonlabs/oceanbreeze/rev1/keyboard.json b/keyboards/afternoonlabs/oceanbreeze/rev1/keyboard.json
index 2a80a0bc2bd..e70eb1169ed 100644
--- a/keyboards/afternoonlabs/oceanbreeze/rev1/keyboard.json
+++ b/keyboards/afternoonlabs/oceanbreeze/rev1/keyboard.json
@@ -21,7 +21,12 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D2"
+ "handedness": {
+ "pin": "B3"
+ },
+ "serial": {
+ "pin": "D2"
+ }
},
"bootmagic": {
"matrix": [0, 5]
diff --git a/keyboards/afternoonlabs/southern_breeze/keymaps/via/keymap.c b/keyboards/afternoonlabs/southern_breeze/keymaps/via/keymap.c
deleted file mode 100644
index 6c079861ad8..00000000000
--- a/keyboards/afternoonlabs/southern_breeze/keymaps/via/keymap.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/* Copyright 2021 Afternoon Labs
- *
- * 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
-
-enum layer_names {
- _MAIN,
- _LOWER,
- _RAISE,
-};
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_MAIN] = LAYOUT(
- //┌────────┬────────┬────────┐┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
- KC_MINS, KC_EQL, KC_GRV, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- KC_LBRC, KC_RBRC, KC_BSLS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
- //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- KC_UP, 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_LEFT, KC_DOWN, KC_RIGHT, 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_LALT, KC_LGUI, KC_SPC, KC_ENT, RAISE, LOWER, XXXXXXX
- // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
- ),
-
- [_LOWER] = LAYOUT(
- //┌────────┬────────┬────────┐┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
- KC_MUTE, KC_VOLD, KC_VOLU, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //└────────┴────────┴────────┘└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘
- _______, _______, _______, _______, _______, _______, _______, _______
- // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
- ),
-
- [_RAISE] = LAYOUT(
- //┌────────┬────────┬────────┐┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PEQL, KC_PSLS, KC_PAST, KC_PMNS, _______,
- //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______,
- //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______,
- //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______,
- //└────────┴────────┴────────┘└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘
- _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT
- // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
- ),
-
- [3] = LAYOUT(
- //┌────────┬────────┬────────┐┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //└────────┴────────┴────────┘└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘
- _______, _______, _______, _______, _______, _______, _______, _______
- // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
- )
-
-};
diff --git a/keyboards/afternoonlabs/southern_breeze/keymaps/via/readme.md b/keyboards/afternoonlabs/southern_breeze/keymaps/via/readme.md
deleted file mode 100644
index 1a9ec11fdca..00000000000
--- a/keyboards/afternoonlabs/southern_breeze/keymaps/via/readme.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Default Southern Breeze Layout
-
-This is the default suggested layout for the Southern Breeze Split Keyboard (with the arrow cluster on the left half).
diff --git a/keyboards/afternoonlabs/southern_breeze/keymaps/via/rules.mk b/keyboards/afternoonlabs/southern_breeze/keymaps/via/rules.mk
deleted file mode 100644
index 85ec1feb662..00000000000
--- a/keyboards/afternoonlabs/southern_breeze/keymaps/via/rules.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-VIA_ENABLE = yes
-# LTO: link time optimization makes the build take slightly longer
-# but makes the resulting .hex file smaller, which allows you to
-# fit more features into smaller MCUs:
-LTO_ENABLE = yes
-# Support for these features make the hex file larger, but we want 'em:
-MOUSEKEY_ENABLE = yes # Allow mapping of mouse control keys
-EXTRAKEY_ENABLE = yes # Allow audio & system control keys
-COMMAND_ENABLE = yes # Commands for debug and configuration
-NKRO_ENABLE = yes
diff --git a/keyboards/afternoonlabs/southern_breeze/rev1/config.h b/keyboards/afternoonlabs/southern_breeze/rev1/config.h
deleted file mode 100644
index d6bb6df14ce..00000000000
--- a/keyboards/afternoonlabs/southern_breeze/rev1/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2021 Afternoon Labs
- *
- * 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 SPLIT_HAND_PIN B3
diff --git a/keyboards/afternoonlabs/southern_breeze/rev1/keyboard.json b/keyboards/afternoonlabs/southern_breeze/rev1/keyboard.json
index c4d38a7a69e..8de6b42470c 100644
--- a/keyboards/afternoonlabs/southern_breeze/rev1/keyboard.json
+++ b/keyboards/afternoonlabs/southern_breeze/rev1/keyboard.json
@@ -21,7 +21,12 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D2"
+ "handedness": {
+ "pin": "B3"
+ },
+ "serial": {
+ "pin": "D2"
+ }
},
"bootmagic": {
"matrix": [0, 5]
diff --git a/keyboards/afternoonlabs/summer_breeze/keymaps/via/keymap.c b/keyboards/afternoonlabs/summer_breeze/keymaps/via/keymap.c
deleted file mode 100644
index 2f725b5eeac..00000000000
--- a/keyboards/afternoonlabs/summer_breeze/keymaps/via/keymap.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/* Copyright 2021 Afternoon Labs
- *
- * 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
-
-enum layer_names {
- _MAIN,
- _LOWER,
- _RAISE,
-};
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_MAIN] = LAYOUT(
- //┌────────┬────────┬────────┐┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
- _______, KC_WH_U, _______, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_MINS, KC_EQL, KC_GRV,
- //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
- KC_BTN1, KC_WH_D, KC_BTN2, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_LBRC, KC_RBRC, KC_BSLS,
- //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
- KC_MS_U, 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_UP,
- //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
- KC_MS_L, KC_MS_D, KC_MS_R, 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_LEFT, KC_DOWN, KC_RIGHT,
- //└────────┴────────┴────────┘└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_ENT, RAISE, LOWER, XXXXXXX
- // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
- ),
-
- [_LOWER] = LAYOUT(
- //┌────────┬────────┬────────┐┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
- _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU,
- //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
- _______, KC_BTN3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //└────────┴────────┴────────┘└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
- _______, _______, _______, _______, _______, _______, _______, _______
- // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
- ),
-
- [_RAISE] = LAYOUT(
- //┌────────┬────────┬────────┐┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PEQL, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, _______,
- //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, _______, _______, _______,
- //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, _______,
- //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______,
- //└────────┴────────┴────────┘└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
- _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT
- // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
- ),
-
- [3] = LAYOUT(
- //┌────────┬────────┬────────┐┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //└────────┴────────┴────────┘└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
- _______, _______, _______, _______, _______, _______, _______, _______
- // └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
- )
-
-};
diff --git a/keyboards/afternoonlabs/summer_breeze/keymaps/via/readme.md b/keyboards/afternoonlabs/summer_breeze/keymaps/via/readme.md
deleted file mode 100644
index 88c49403de9..00000000000
--- a/keyboards/afternoonlabs/summer_breeze/keymaps/via/readme.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Default Summer Breeze Layout
-
-This is the default suggested layout for the Summer Breeze Split Keyboard (with both arrow clusters).
diff --git a/keyboards/afternoonlabs/summer_breeze/keymaps/via/rules.mk b/keyboards/afternoonlabs/summer_breeze/keymaps/via/rules.mk
deleted file mode 100644
index 85ec1feb662..00000000000
--- a/keyboards/afternoonlabs/summer_breeze/keymaps/via/rules.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-VIA_ENABLE = yes
-# LTO: link time optimization makes the build take slightly longer
-# but makes the resulting .hex file smaller, which allows you to
-# fit more features into smaller MCUs:
-LTO_ENABLE = yes
-# Support for these features make the hex file larger, but we want 'em:
-MOUSEKEY_ENABLE = yes # Allow mapping of mouse control keys
-EXTRAKEY_ENABLE = yes # Allow audio & system control keys
-COMMAND_ENABLE = yes # Commands for debug and configuration
-NKRO_ENABLE = yes
diff --git a/keyboards/afternoonlabs/summer_breeze/rev1/config.h b/keyboards/afternoonlabs/summer_breeze/rev1/config.h
deleted file mode 100644
index d6bb6df14ce..00000000000
--- a/keyboards/afternoonlabs/summer_breeze/rev1/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2021 Afternoon Labs
- *
- * 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 SPLIT_HAND_PIN B3
diff --git a/keyboards/afternoonlabs/summer_breeze/rev1/keyboard.json b/keyboards/afternoonlabs/summer_breeze/rev1/keyboard.json
index 702a942a3cf..f2285fb17b4 100644
--- a/keyboards/afternoonlabs/summer_breeze/rev1/keyboard.json
+++ b/keyboards/afternoonlabs/summer_breeze/rev1/keyboard.json
@@ -21,7 +21,12 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D2"
+ "handedness": {
+ "pin": "B3"
+ },
+ "serial": {
+ "pin": "D2"
+ }
},
"bootmagic": {
"matrix": [0, 5]
diff --git a/keyboards/ah/haven60/keyboard.json b/keyboards/ah/haven60/keyboard.json
index a9c2afb0b37..0eb5d8aa20e 100644
--- a/keyboards/ah/haven60/keyboard.json
+++ b/keyboards/ah/haven60/keyboard.json
@@ -46,7 +46,20 @@
"twinkle": true
}
},
- "community_layouts": ["60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"],
+ "community_layouts": [
+ "60_ansi_tsangan",
+ "60_ansi_tsangan_split_bs_rshift",
+ "60_ansi_wkl",
+ "60_ansi_wkl_split_bs_rshift",
+ "60_hhkb",
+ "60_iso_tsangan",
+ "60_iso_tsangan_split_bs_rshift",
+ "60_iso_wkl",
+ "60_iso_wkl_split_bs_rshift"
+ ],
+ "layout_aliases": {
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
@@ -179,7 +192,7 @@
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
diff --git a/keyboards/ah/haven60/keymaps/via/keymap.c b/keyboards/ah/haven60/keymaps/via/keymap.c
deleted file mode 100644
index 8909239a2c8..00000000000
--- a/keyboards/ah/haven60/keymaps/via/keymap.c
+++ /dev/null
@@ -1,21 +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] = {
- [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_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_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_SLSH, KC_RSFT, KC_RSFT,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL
- ),
- [1] = LAYOUT_all(
- 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_UP, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RGHT, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/ah/haven60/keymaps/via/rules.mk b/keyboards/ah/haven60/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/ah/haven60/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/ah/haven65/keymaps/via/keymap.c b/keyboards/ah/haven65/keymaps/via/keymap.c
deleted file mode 100644
index e4de01e0e8b..00000000000
--- a/keyboards/ah/haven65/keymaps/via/keymap.c
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2023 Freather
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_65_ansi_blocker(
- 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_BACKSPACE, KC_HOME,
- 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_INS,
- 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_DEL,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [1] = LAYOUT_65_ansi_blocker(
- 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_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/ah/haven65/keymaps/via/rules.mk b/keyboards/ah/haven65/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/ah/haven65/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/ah/haven80/keymaps/via/keymap.c b/keyboards/ah/haven80/keymaps/via/keymap.c
deleted file mode 100644
index f4d1b6fe92d..00000000000
--- a/keyboards/ah/haven80/keymaps/via/keymap.c
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright 2023 Freather
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_tkl_f13_ansi_tsangan(
- 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_F13, 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_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_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_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
-};
diff --git a/keyboards/ah/haven80/keymaps/via/rules.mk b/keyboards/ah/haven80/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/ah/haven80/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/ai03/altair/keyboard.json b/keyboards/ai03/altair/keyboard.json
index 9626716cde3..a8cd8b02a76 100644
--- a/keyboards/ai03/altair/keyboard.json
+++ b/keyboards/ai03/altair/keyboard.json
@@ -37,7 +37,10 @@
"rows": ["GP5", "GP16", "GP20", "GP28", "GP14"]
}
},
- "soft_serial_pin": "GP29"
+ "serial": {
+ "driver": "vendor",
+ "pin": "GP29"
+ }
},
"url": "https://ai03.com/",
"usb": {
diff --git a/keyboards/ai03/altair/keymaps/via/keymap.c b/keyboards/ai03/altair/keymaps/via/keymap.c
deleted file mode 100644
index 038b2b823dd..00000000000
--- a/keyboards/ai03/altair/keymaps/via/keymap.c
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2024 ai03 Design Studio */
-/* SPDX-License-Identifier: GPL-2.0-or-later */
-
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [0] = LAYOUT(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_CAPS, 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_BSLS,
- KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LPRN, KC_RPRN, 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_GRV, KC_PSCR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
- KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(1), KC_TAB, KC_DEL
- ),
-
- [1] = LAYOUT(
- _______, 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_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______,
- _______, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
- )
-
-};
diff --git a/keyboards/ai03/altair/keymaps/via/rules.mk b/keyboards/ai03/altair/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/ai03/altair/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/ai03/altair/rules.mk b/keyboards/ai03/altair/rules.mk
deleted file mode 100644
index 161ec22b16e..00000000000
--- a/keyboards/ai03/altair/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SERIAL_DRIVER = vendor
diff --git a/keyboards/ai03/altair_x/keyboard.json b/keyboards/ai03/altair_x/keyboard.json
index d1448ab8c2f..27f36af97bb 100644
--- a/keyboards/ai03/altair_x/keyboard.json
+++ b/keyboards/ai03/altair_x/keyboard.json
@@ -37,7 +37,10 @@
"rows": ["GP16", "GP20", "GP28", "GP14"]
}
},
- "soft_serial_pin": "GP29"
+ "serial": {
+ "driver": "vendor",
+ "pin": "GP29"
+ }
},
"url": "https://ai03.com/",
"usb": {
diff --git a/keyboards/ai03/altair_x/keymaps/via/keymap.c b/keyboards/ai03/altair_x/keymaps/via/keymap.c
deleted file mode 100644
index 8eb350993da..00000000000
--- a/keyboards/ai03/altair_x/keymaps/via/keymap.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright 2024 ai03 Design Studio */
-/* SPDX-License-Identifier: GPL-2.0-or-later */
-
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [0] = LAYOUT(
- KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, XXXXXXX, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, XXXXXXX, XXXXXXX, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
- KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(2), KC_TAB, KC_DEL
- ),
-
- [1] = LAYOUT(
- _______, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
- _______, KC_GRV, KC_LBRC, KC_LCBR, KC_LPRN, KC_MINS, _______, _______, KC_EQL, KC_RPRN, KC_RCBR, KC_RBRC, KC_BSLS, _______,
- _______, KC_TILD, _______, _______, _______, KC_UNDS, _______, _______, KC_PLUS, _______, _______, _______, KC_PIPE, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [2] = LAYOUT(
- _______, _______, _______, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______,
- _______, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, 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, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
- )
-
-};
diff --git a/keyboards/ai03/altair_x/keymaps/via/rules.mk b/keyboards/ai03/altair_x/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/ai03/altair_x/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/ai03/altair_x/rules.mk b/keyboards/ai03/altair_x/rules.mk
deleted file mode 100644
index 161ec22b16e..00000000000
--- a/keyboards/ai03/altair_x/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SERIAL_DRIVER = vendor
diff --git a/keyboards/ai03/andromeda/keymaps/via/keymap.c b/keyboards/ai03/andromeda/keymaps/via/keymap.c
deleted file mode 100644
index 49b47920be0..00000000000
--- a/keyboards/ai03/andromeda/keymaps/via/keymap.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
-Copyright 2012,2013 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 QMK_KEYBOARD_H
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_BASE] = LAYOUT_tkl_ansi_wkl(
- 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_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_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_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_FN1] = LAYOUT_tkl_ansi_wkl(
- 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, 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
- ),
-
-
- [_FN2] = LAYOUT_tkl_ansi_wkl(
- 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, 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
- ),
-
-
- [_FN3] = LAYOUT_tkl_ansi_wkl(
- 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, 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/ai03/andromeda/keymaps/via/rules.mk b/keyboards/ai03/andromeda/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/ai03/andromeda/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/ai03/equinox/keymaps/via/keymap.c b/keyboards/ai03/equinox/keymaps/via/keymap.c
deleted file mode 100644
index e0da041f79f..00000000000
--- a/keyboards/ai03/equinox/keymaps/via/keymap.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright 2019 Ryota Goto
- *
- * 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( /* Base */
- MO(2), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- MO(1), 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_GRV, KC_RGUI, KC_DEL
- ),
- [1] = LAYOUT_all( /* Extra Keys */
- _______, _______, KC_PGUP, _______, _______, KC_LBRC, KC_RBRC, _______, KC_UP, _______, _______, _______,
- _______, KC_HOME, KC_PGDN, KC_END, _______, KC_BSLS, KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
- _______, _______, _______, _______, _______, KC_PSCR, KC_ESC, KC_QUOT, _______, KC_DOT, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [2] = LAYOUT_all( /* Num and FN */
- _______, 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_F11, KC_F12, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [3] = LAYOUT_all( /* Other */
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/ai03/equinox/keymaps/via/rules.mk b/keyboards/ai03/equinox/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3e..00000000000
--- a/keyboards/ai03/equinox/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/ai03/equinox_xl/keymaps/via/keymap.c b/keyboards/ai03/equinox_xl/keymaps/via/keymap.c
deleted file mode 100644
index be2f1cb7e0b..00000000000
--- a/keyboards/ai03/equinox_xl/keymaps/via/keymap.c
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2024 ai03
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [0] = LAYOUT(
- KC_ESC, 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_BSPC,
- 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_SLSH, KC_RSFT, KC_GRV,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
- ),
-
-};
diff --git a/keyboards/ai03/equinox_xl/keymaps/via/rules.mk b/keyboards/ai03/equinox_xl/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/ai03/equinox_xl/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/ai03/jp60/keymaps/via/keymap.c b/keyboards/ai03/jp60/keymaps/via/keymap.c
deleted file mode 100644
index 9b88fd5b763..00000000000
--- a/keyboards/ai03/jp60/keymaps/via/keymap.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright 2021 ai03
- *
- * 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
-#include "keymap_japanese.h"
-
-// Defines names for use in layer keycodes and the keymap
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT( /* Base */
- 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, JP_YEN, 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_LBRC, KC_RBRC,
- MO(1), 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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, JP_BSLS, KC_RSFT,
- KC_LCTL, KC_LGUI, KC_LALT, JP_MHEN, KC_SPC, JP_HENK, JP_KANA, KC_GRV, KC_CAPS
- ),
- [_FN1] = LAYOUT( /* FN1 */
- QK_BOOT, 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_PGUP, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______,
- _______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_FN2] = LAYOUT( /* FN2 */
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_FN3] = LAYOUT( /* FN3 */
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
-};
diff --git a/keyboards/ai03/jp60/keymaps/via/rules.mk b/keyboards/ai03/jp60/keymaps/via/rules.mk
deleted file mode 100644
index 4956961bef7..00000000000
--- a/keyboards/ai03/jp60/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes # Enable compatibility with VIA-protocol configurators
-DEBOUNCE_TYPE = asym_eager_defer_pk # Specify per-key debounce for improved responsiveness
\ No newline at end of file
diff --git a/keyboards/ai03/lily/keyboard.json b/keyboards/ai03/lily/keyboard.json
new file mode 100644
index 00000000000..ce482a674e5
--- /dev/null
+++ b/keyboards/ai03/lily/keyboard.json
@@ -0,0 +1,189 @@
+{
+ "manufacturer": "ai03 Design Studio",
+ "keyboard_name": "Lily",
+ "maintainer": "ai03",
+ "bootloader": "atmel-dfu",
+ "build": {
+ "debounce_type": "asym_eager_defer_pk",
+ "lto": true
+ },
+ "diode_direction": "COL2ROW",
+ "features": {
+ "bootmagic": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgblight": true
+ },
+ "indicators": {
+ "caps_lock": "B0",
+ "on_state": 0
+ },
+ "matrix_pins": {
+ "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4"],
+ "rows": ["B2", "B7", "D5", "B1", "D3"]
+ },
+ "processor": "atmega32u4",
+ "qmk": {
+ "locking": {
+ "enabled": true,
+ "resync": true
+ }
+ },
+ "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": 4
+ },
+ "usb": {
+ "device_version": "0.0.1",
+ "pid": "0x0026",
+ "vid": "0xA103"
+ },
+ "ws2812": {
+ "pin": "D2"
+ },
+ "community_layouts": ["60_hhkb"],
+ "layouts": {
+ "LAYOUT_60_hhkb": {
+ "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": [2, 12], "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": 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, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+ {"matrix": [4, 1], "x": 1.5, "y": 4},
+ {"matrix": [4, 2], "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, 12], "x": 12.5, "y": 4}
+ ]
+ },
+ "LAYOUT_all": {
+ "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": [2, 12], "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": 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, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+ {"matrix": [4, 1], "x": 1.5, "y": 4},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 5], "x": 4, "y": 4, "w": 3},
+ {"matrix": [4, 7], "x": 7, "y": 4},
+ {"matrix": [4, 9], "x": 8, "y": 4, "w": 3},
+ {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 12], "x": 12.5, "y": 4}
+ ]
+ }
+ }
+}
diff --git a/keyboards/ai03/lily/keymaps/60_hhkb/keymap.c b/keyboards/ai03/lily/keymaps/60_hhkb/keymap.c
new file mode 100644
index 00000000000..be9e2ee1a1b
--- /dev/null
+++ b/keyboards/ai03/lily/keymaps/60_hhkb/keymap.c
@@ -0,0 +1,45 @@
+/* Copyright 2025 Cipulot & ai03 Design 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 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
+ [0] = LAYOUT_60_hhkb(
+ 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_GRV,
+ 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_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_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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT
+ ),
+
+ [1] = LAYOUT_60_hhkb(
+ _______, 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_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______,
+ _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
+ _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______,
+ _______, _______, _______, _______, MO(2)
+ ),
+
+ [2] = LAYOUT_60_hhkb(
+ QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______
+ )
+ // clang-format on
+};
diff --git a/keyboards/ai03/lily/keymaps/default/keymap.c b/keyboards/ai03/lily/keymaps/default/keymap.c
new file mode 100644
index 00000000000..ae1949810d1
--- /dev/null
+++ b/keyboards/ai03/lily/keymaps/default/keymap.c
@@ -0,0 +1,45 @@
+/* Copyright 2025 Cipulot & ai03 Design 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 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
+ [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_GRV,
+ 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_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_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_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT
+ ),
+
+ [1] = 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_INS, KC_DEL,
+ KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______,
+ _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
+ _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______,
+ _______, _______, _______, _______, _______, _______, MO(2)
+ ),
+
+ [2] = LAYOUT_all(
+ QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______
+ )
+ // clang-format on
+};
diff --git a/keyboards/ai03/lily/readme.md b/keyboards/ai03/lily/readme.md
new file mode 100644
index 00000000000..c8733629a29
--- /dev/null
+++ b/keyboards/ai03/lily/readme.md
@@ -0,0 +1,26 @@
+# Lily
+
+
+
+PCB for Gok's Lily keyboard
+
+* Keyboard Maintainer: [ai03](https://github.com/ai03-2725)
+* Hardware Supported: Lily PCB
+* Hardware Availability: Through Lily group buy
+
+Make example for this keyboard (after setting up your build environment):
+
+ make ai03/lily:default
+
+Flashing example for this keyboard:
+
+ make ai03/liily: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 2 ways:
+
+* **Physical reset**: Double tap the button on the bottom on the PCB
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/ai03/lunar/keymaps/via/keymap.c b/keyboards/ai03/lunar/keymaps/via/keymap.c
deleted file mode 100644
index 919e2902d82..00000000000
--- a/keyboards/ai03/lunar/keymaps/via/keymap.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Copyright 2019 Ryota Goto
- *
- * 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] = {
-
- /*
-
- Layout
-
- K000 K001 K002 K003 K004 K005 K006 K007 K008 K009 K010 K011 K012 K013 K212 K014
- K100 K101 K102 K103 K104 K105 K106 K107 K108 K109 K110 K111 K112 K113 K114
- K200 K201 K202 K203 K204 K205 K206 K207 K208 K209 K210 K211 K213 K214
- K300 K301 K302 K303 K304 K305 K306 K307 K308 K309 K310 K311 K313 K314
- K400 K401 K402 K403 K405 K407 K409 K410 K411 K413 K414
-
- K212 = Split backspace (bound to Del by default)
- K403, K407 = Split space (bound to space by default)
- K405 = Main space
-
- */
-
- [0] = LAYOUT( /* Base */
- 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_HOME,
- 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_END,
- MO(1), 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_PGUP,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, MO(1), KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [1] = LAYOUT( /* FN */
- QK_BOOT, 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_DEL, _______,
- KC_CAPS, _______, KC_UP, _______, _______, _______, KC_NUM, KC_P7, KC_P8, KC_P9, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_VOLD, KC_VOLU, KC_P4, KC_P5, KC_P6, _______, _______, _______, _______,
- _______, KC_RCTL, KC_RGUI, KC_RALT, _______, _______, KC_P0, KC_P1, KC_P2, KC_P3, _______, _______, KC_PGUP, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
- ),
- [2] = LAYOUT( /* Blank. For VIA compatibility */
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [3] = LAYOUT( /* Blank. For VIA compatibility */
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/ai03/lunar/keymaps/via/rules.mk b/keyboards/ai03/lunar/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/ai03/lunar/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/ai03/lunar_ii/keymaps/via/keymap.c b/keyboards/ai03/lunar_ii/keymaps/via/keymap.c
deleted file mode 100644
index 644a6375845..00000000000
--- a/keyboards/ai03/lunar_ii/keymaps/via/keymap.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright 2022 ai03 Design 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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [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_DEL,
- 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,
- MO(1), 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, KC_RGUI, KC_RCTL
- ),
- [1] = LAYOUT(
- _______, 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_DEL,
- KC_CAPS, _______, _______, KC_PGUP, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______,
- _______, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
- _______, HF_TOGG, HF_FDBK, HF_DWLU, HF_DWLD, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
- ),
- [2] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
- ),
- [3] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
- )
-};
-
diff --git a/keyboards/ai03/lunar_ii/keymaps/via/rules.mk b/keyboards/ai03/lunar_ii/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3e..00000000000
--- a/keyboards/ai03/lunar_ii/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/ai03/orbit/config.h b/keyboards/ai03/orbit/config.h
deleted file mode 100644
index f3a4ae2db34..00000000000
--- a/keyboards/ai03/orbit/config.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
-Copyright 2018 Ryota Goto
-
-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 SELECT_SOFT_SERIAL_SPEED 1
-
-#define SPLIT_HAND_PIN D5
-
-/*
- * 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/ai03/orbit/keyboard.json b/keyboards/ai03/orbit/keyboard.json
index ec308028120..f13c95291d3 100644
--- a/keyboards/ai03/orbit/keyboard.json
+++ b/keyboards/ai03/orbit/keyboard.json
@@ -31,13 +31,18 @@
},
"split": {
"enabled": true,
- "soft_serial_pin": "D0",
+ "handedness": {
+ "pin": "D5"
+ },
"matrix_pins": {
"right": {
"cols": ["D4", "D6", "F1", "F0", "F4", "F5", "C6"],
"rows": ["B6", "B5", "B4", "D7", "E6"]
}
},
+ "serial" :{
+ "pin": "D0"
+ },
"transport":{
"sync" :{
"indicators": true,
diff --git a/keyboards/ai03/orbit_x/config.h b/keyboards/ai03/orbit_x/config.h
index 2c63852cbeb..8de04823124 100644
--- a/keyboards/ai03/orbit_x/config.h
+++ b/keyboards/ai03/orbit_x/config.h
@@ -17,7 +17,6 @@ along with this program. If not, see .
#pragma once
-#define SPLIT_HAND_PIN D5
#define SPLIT_USB_DETECT
#define SPLIT_USB_TIMEOUT 2500
diff --git a/keyboards/ai03/orbit_x/keyboard.json b/keyboards/ai03/orbit_x/keyboard.json
index edfbbb27969..d039969b37c 100644
--- a/keyboards/ai03/orbit_x/keyboard.json
+++ b/keyboards/ai03/orbit_x/keyboard.json
@@ -28,12 +28,17 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D0",
+ "handedness": {
+ "pin": "D5"
+ },
"matrix_pins": {
"right": {
"cols": ["D6", "B6", "B1", "B0", "B3", "B2"],
"rows": ["B5", "D7", "B4", "D4"]
}
+ },
+ "serial": {
+ "pin": "D0"
}
},
"processor": "atmega32u4",
diff --git a/keyboards/ai03/orbit_x/keymaps/via/keymap.c b/keyboards/ai03/orbit_x/keymaps/via/keymap.c
deleted file mode 100644
index 4a49280c0ce..00000000000
--- a/keyboards/ai03/orbit_x/keymaps/via/keymap.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright 2020 Ryota Goto
- *
- * 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
-
-// Defines names for use in layer keycodes and the keymap
-enum layer_names {
- _BASE,
- _NUM,
- _NAV,
- _FN
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Base */
- [_BASE] = LAYOUT(
- 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_LCTL, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
- MO(3), KC_TAB, KC_LGUI, KC_LALT, MO(2), KC_SPC, KC_SPC, MO(1), KC_TAB, KC_DEL, KC_PSCR, MO(3)
- ),
- [_NUM] = LAYOUT(
- _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
- _______, KC_GRV, KC_SLSH, KC_LBRC, KC_LPRN, KC_MINS, KC_EQL, KC_RPRN, KC_RBRC, KC_BSLS, XXXXXXX, _______,
- _______, KC_TILD, KC_QUES, KC_LCBR, XXXXXXX, KC_UNDS, KC_PLUS, XXXXXXX, KC_RCBR, KC_PIPE, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_NAV] = LAYOUT(
- _______, XXXXXXX, XXXXXXX, KC_PGUP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, _______,
- _______, XXXXXXX, KC_HOME, KC_PGDN, KC_END, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, _______,
- _______, XXXXXXX, C(G(KC_LEFT)), XXXXXXX, C(G(KC_RGHT)), XXXXXXX, XXXXXXX, C(S(KC_TAB)), XXXXXXX, C(KC_TAB), XXXXXXX, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_FN] = LAYOUT(
- QK_BOOT, XXXXXXX, KC_F1, KC_F2, KC_F3, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, XXXXXXX, QK_BOOT,
- _______, XXXXXXX, KC_F4, KC_F5, KC_F6, XXXXXXX, XXXXXXX, KC_F10, KC_F11, KC_F12, XXXXXXX, _______,
- _______, XXXXXXX, KC_VOLD, XXXXXXX, KC_VOLU, XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/ai03/orbit_x/keymaps/via/rules.mk b/keyboards/ai03/orbit_x/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3e..00000000000
--- a/keyboards/ai03/orbit_x/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/ai03/polaris/keyboard.json b/keyboards/ai03/polaris/keyboard.json
index decedbab3df..7e6ab9aec72 100644
--- a/keyboards/ai03/polaris/keyboard.json
+++ b/keyboards/ai03/polaris/keyboard.json
@@ -58,7 +58,14 @@
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
- "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_tsangan_hhkb"],
+ "community_layouts": [
+ "60_ansi",
+ "60_ansi_split_bs_rshift",
+ "60_ansi_tsangan_split_bs_rshift"
+ ],
+ "layout_aliases": {
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
@@ -274,7 +281,7 @@
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
]
},
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
diff --git a/keyboards/ai03/polaris/keymaps/default/keymap.c b/keyboards/ai03/polaris/keymaps/default/keymap.c
index 5c137002efd..be1c05e7eb1 100644
--- a/keyboards/ai03/polaris/keymaps/default/keymap.c
+++ b/keyboards/ai03/polaris/keymaps/default/keymap.c
@@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
QK_BOOT, 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_BSPC,
_______, _______, KC_PGUP, _______, _______, _______, _______, _______, KC_UP, _______, KC_MPRV, KC_MPLY, KC_MNXT, BL_STEP,
_______, KC_HOME, KC_PGDN, KC_END, _______, KC_VOLD, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
- _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, KC_PSCR, _______,
+ _______, _______, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, _______, _______, KC_PSCR, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
diff --git a/keyboards/ai03/polaris/keymaps/default_ansi_tsangan/keymap.c b/keyboards/ai03/polaris/keymaps/default_ansi_tsangan/keymap.c
index 510c4aed7f7..ff4a61e4e4b 100644
--- a/keyboards/ai03/polaris/keymaps/default_ansi_tsangan/keymap.c
+++ b/keyboards/ai03/polaris/keymaps/default_ansi_tsangan/keymap.c
@@ -21,18 +21,18 @@ enum layer_names {
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT_60_tsangan_hhkb( /* Base */
+ [_BASE] = LAYOUT_60_ansi_tsangan_split_bs_rshift( /* Base */
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_DEL,
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,
MO(1), 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_DEL,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
),
- [_FN] = LAYOUT_60_tsangan_hhkb( /* FN */
+ [_FN] = LAYOUT_60_ansi_tsangan_split_bs_rshift( /* FN */
QK_BOOT, 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_BSPC,
_______, _______, KC_PGUP, _______, _______, _______, _______, _______, KC_UP, _______, KC_MPRV, KC_MPLY, KC_MNXT, BL_STEP,
_______, KC_HOME, KC_PGDN, KC_END, _______, KC_VOLD, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
- _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, KC_PSCR, _______,
+ _______, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, _______, _______, KC_PSCR, _______,
_______, _______, _______, _______, _______, _______, _______
)
};
diff --git a/keyboards/ai03/polaris/keymaps/testing/keymap.c b/keyboards/ai03/polaris/keymaps/testing/keymap.c
index 9a8efc5d09d..5842991989b 100644
--- a/keyboards/ai03/polaris/keymaps/testing/keymap.c
+++ b/keyboards/ai03/polaris/keymaps/testing/keymap.c
@@ -22,7 +22,7 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT_all( /* Base */
- BL_TOGG, BL_STEP, KC_NO, KC_NO, KC_NO, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_BSPC, KC_DEL,
+ BL_TOGG, BL_STEP, KC_NO, KC_NO, KC_NO, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, 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_LBRC, KC_RBRC, KC_BSLS,
MO(1), 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_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_DEL,
@@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
QK_BOOT, 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_BSPC,
_______, _______, KC_PGUP, _______, _______, _______, _______, _______, KC_UP, _______, KC_MPRV, KC_MPLY, KC_MNXT, BL_STEP,
_______, KC_HOME, KC_PGDN, KC_END, _______, KC_VOLD, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
- _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, KC_PSCR, _______,
+ _______, _______, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, _______, _______, KC_PSCR, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
diff --git a/keyboards/ai03/polaris/keymaps/via/keymap.c b/keyboards/ai03/polaris/keymaps/via/keymap.c
deleted file mode 100644
index 67c5cd37eab..00000000000
--- a/keyboards/ai03/polaris/keymaps/via/keymap.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright 2019 Ryota Goto
- *
- * 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
-
-enum layer_names {
- _BASE,
- _FN,
- _EXTRA_ONE,
- _EXTRA_TWO
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT_all( /* Base */
- 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_DEL,
- 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,
- MO(1), 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_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_DEL,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RALT, KC_RGUI, KC_RCTL
- ),
- [_FN] = LAYOUT_all( /* FN */
- _______, 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_BSPC,
- _______, _______, _______, KC_PGUP, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, BL_STEP,
- _______, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
- _______, _______, KC_VOLD, KC_MUTE, KC_VOLU, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_PSCR, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_EXTRA_ONE] = LAYOUT_all( /* Layer 3 */
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_EXTRA_TWO] = LAYOUT_all( /* Layer 3 */
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
-
diff --git a/keyboards/ai03/polaris/keymaps/via/rules.mk b/keyboards/ai03/polaris/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3e..00000000000
--- a/keyboards/ai03/polaris/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/ai03/soyuz/keymaps/via/keymap.c b/keyboards/ai03/soyuz/keymaps/via/keymap.c
deleted file mode 100644
index 04f31d764a6..00000000000
--- a/keyboards/ai03/soyuz/keymaps/via/keymap.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * ai03 Soyuz VIA Keymap
- *
- * Copyright (C) 2020 Sendy YK
- *
- * 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
-
-enum layer_names {
- _BASE, // Default Layer
- _FN, // Fn Layer 1
- _FN2, // Fn Layer 2
- _FN3 // Fn Layer 3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- // Default Layer
- [_BASE] = LAYOUT_ortho_5x4(
- KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
- KC_P7, KC_P8, KC_P9, KC_PPLS,
- KC_P4, KC_P5, KC_P6, KC_PPLS,
- KC_P1, KC_P2, KC_P3, KC_PENT,
- KC_P0, KC_P0, KC_PDOT, KC_PENT
- ),
- // Fn Layer 1
- [_FN] = LAYOUT_ortho_5x4(
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______
- ),
- // Fn Layer 2
- [_FN2] = LAYOUT_ortho_5x4(
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______
- ),
- // Fn Layer 3
- [_FN3] = LAYOUT_ortho_5x4(
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______
- )
-};
diff --git a/keyboards/ai03/soyuz/keymaps/via/rules.mk b/keyboards/ai03/soyuz/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/ai03/soyuz/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/ai03/vega/keyboard.json b/keyboards/ai03/vega/keyboard.json
index a58fa4fcaef..bc220cc7a12 100644
--- a/keyboards/ai03/vega/keyboard.json
+++ b/keyboards/ai03/vega/keyboard.json
@@ -22,6 +22,11 @@
"resync": true
}
},
+ "indicators": {
+ "caps_lock": "B7",
+ "scroll_lock": "A5",
+ "on_state": 0
+ },
"matrix_pins": {
"cols": ["B5", "A3", "A9", "A8", "B15", "B14", "B13", "B12", "B11", "B10", "B2", "B1", "B0", "A7", "A6"],
"rows": ["A1", "A2", "B3", "A15", "A10"]
diff --git a/keyboards/ai03/vega/keymaps/via/keymap.c b/keyboards/ai03/vega/keymaps/via/keymap.c
deleted file mode 100644
index de97d9891f5..00000000000
--- a/keyboards/ai03/vega/keymaps/via/keymap.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
-Copyright 2012,2013 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 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
-// entirely and just use numbers.
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_BASE] = 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_BSPC, KC_DEL, KC_HOME,
- 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_END,
- MO(1), 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_PGUP,
- 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_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_FN1] = LAYOUT_all(
- QK_BOOT, 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_PGUP, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
- ),
-
- [_FN2] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_FN3] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
-};
diff --git a/keyboards/ai03/vega/keymaps/via/rules.mk b/keyboards/ai03/vega/keymaps/via/rules.mk
deleted file mode 100644
index 16d33cd89fe..00000000000
--- a/keyboards/ai03/vega/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-
diff --git a/keyboards/ai03/vega/vega.c b/keyboards/ai03/vega/vega.c
deleted file mode 100644
index 44ded2c85c4..00000000000
--- a/keyboards/ai03/vega/vega.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright 2020 ai03
- *
- * 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 matrix_init_kb(void) {
- // Initialize indicator LEDs to output
-
- gpio_set_pin_output(B7); // Caps
- gpio_set_pin_output(A5); // Slck
-
- matrix_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
-
- bool res = led_update_user(led_state);
-
- if(res) {
- gpio_write_pin(B7, !led_state.caps_lock);
- gpio_write_pin(A5, !led_state.scroll_lock);
- }
- return res;
-}
\ No newline at end of file
diff --git a/keyboards/ai03/voyager60_alps/keymaps/via/keymap.c b/keyboards/ai03/voyager60_alps/keymaps/via/keymap.c
deleted file mode 100644
index 166b19a04bf..00000000000
--- a/keyboards/ai03/voyager60_alps/keymaps/via/keymap.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
-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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [0] = LAYOUT( /* Base */
- 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_LCTL, 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_SPC, KC_SPC, _______, KC_RGUI, KC_RALT, KC_RCTL
- ),
- [1] = LAYOUT( /* FN */
- QK_BOOT, 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_DEL,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [2] = LAYOUT( /* Blank. For VIA compatibility */
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [3] = LAYOUT( /* Blank. For VIA compatibility */
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/ai03/voyager60_alps/keymaps/via/rules.mk b/keyboards/ai03/voyager60_alps/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/ai03/voyager60_alps/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/aidansmithdotdev/fine40/keymaps/via/keymap.c b/keyboards/aidansmithdotdev/fine40/keymaps/via/keymap.c
deleted file mode 100644
index 0010c9f97bc..00000000000
--- a/keyboards/aidansmithdotdev/fine40/keymaps/via/keymap.c
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2022 Aidan Smith (@Aidan-OS)
-// SPDX-License-Identifier: GPL-2.0-or-later
-#include QMK_KEYBOARD_H
-
-enum keyboard_layers {
- _MAIN,
- _RIGHT,
- _LEFT,
- _TAB,
-};
-
-#define LT3_TAB LT(_TAB, KC_TAB)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[_MAIN] = LAYOUT_2u_single_space(
- KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC ,
- LT3_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_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_ENT ,
- KC_LCTL , KC_RALT , KC_LGUI , KC_BSLS , MO(_LEFT) , KC_SPC , MO(_RIGHT) , KC_LEFT , KC_DOWN , KC_UP , KC_RIGHT , KC_MPLY
-),
-
-[_LEFT] = LAYOUT_2u_single_space( /* LEFT */
- KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_DELETE ,
- _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_UNDERSCORE , KC_PLUS , KC_LEFT_CURLY_BRACE , KC_RIGHT_CURLY_BRACE , _______ ,
- _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
- _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_HOME , KC_PGDN , KC_PGUP , KC_END , _______
-),
-
-[_RIGHT] = LAYOUT_2u_single_space( /* RIGHT */
- KC_TILDE , KC_EXCLAIM , KC_AT , KC_HASH , KC_DOLLAR , KC_PERCENT , KC_CIRCUMFLEX , KC_AMPERSAND , KC_ASTERISK , KC_LEFT_PAREN , KC_RIGHT_PAREN , KC_DELETE ,
- _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_MINS , KC_EQL , KC_LBRC , KC_RBRC , _______ ,
- _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_LT , KC_GT , _______ , _______ ,
- _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_MUTE , KC_VOLD , KC_VOLU , KC_MPLY , _______
-),
-
-[_TAB] = LAYOUT_2u_single_space( /* Tab */
- KC_ESC , QK_BOOT, _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
- _______ , KC_F11 , KC_F12 , KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_F17 , KC_F18 , KC_F19 , KC_F20 , _______ ,
- _______ , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , _______ ,
- _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_MS_L , KC_MS_D , KC_MS_U , KC_MS_R , _______
-),
-};
-
-#if defined(ENCODER_MAP_ENABLE)
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [_MAIN] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
- [_LEFT] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
- [_RIGHT] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
- [_TAB] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
-};
-#endif
\ No newline at end of file
diff --git a/keyboards/aidansmithdotdev/fine40/keymaps/via/rules.mk b/keyboards/aidansmithdotdev/fine40/keymaps/via/rules.mk
deleted file mode 100644
index f1adcab005e..00000000000
--- a/keyboards/aidansmithdotdev/fine40/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/aidansmithdotdev/sango/keyboard.json b/keyboards/aidansmithdotdev/sango/keyboard.json
index deb26f86b62..f51eed7fd9b 100644
--- a/keyboards/aidansmithdotdev/sango/keyboard.json
+++ b/keyboards/aidansmithdotdev/sango/keyboard.json
@@ -126,7 +126,10 @@
"rows": ["GP2", "GP3", "GP4", "GP5", "GP6"]
}
},
- "soft_serial_pin": "GP1"
+ "serial": {
+ "driver": "vendor",
+ "pin": "GP1"
+ }
},
"url": "https://aidansmith.dev",
"usb": {
diff --git a/keyboards/aidansmithdotdev/sango/rules.mk b/keyboards/aidansmithdotdev/sango/rules.mk
deleted file mode 100644
index 743228e94b6..00000000000
--- a/keyboards/aidansmithdotdev/sango/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SERIAL_DRIVER = vendor
\ No newline at end of file
diff --git a/keyboards/akb/ogr/keymaps/via/keymap.c b/keyboards/akb/ogr/keymaps/via/keymap.c
deleted file mode 100644
index da631b8312d..00000000000
--- a/keyboards/akb/ogr/keymaps/via/keymap.c
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright 2018-2022 QMK (@qmk)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /*
- * ┌───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
- * │ F1│ F2│ │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│Hom│
- * ├───┼───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
- * | F3| F4| │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │PgU│
- * ├───┼───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * | F5| F6| │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgD│
- * ├───┼───┤ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * | F7| F8| │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End│
- * ├───┼───┤ ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
- * | F9|F10| │Ctrl│GUI │Alt │ │Alt│Ctl│ │ ← │ ↓ │ → │
- * └───┴───┘ └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
- */
- [0] = LAYOUT_all(
-
- KC_F1, KC_F2, 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_DEL, KC_HOME,
- KC_F3, KC_F4, 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_F5, KC_F6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
- KC_F7, KC_F8, 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, KC_END,
- KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
-
- [1] = LAYOUT_all(
- _______, _______, 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_INS, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
-};
diff --git a/keyboards/akb/ogr/keymaps/via/rules.mk b/keyboards/akb/ogr/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3e..00000000000
--- a/keyboards/akb/ogr/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/akb/ogrn/keymaps/via/keymap.c b/keyboards/akb/ogrn/keymaps/via/keymap.c
deleted file mode 100644
index f3901ec7fb3..00000000000
--- a/keyboards/akb/ogrn/keymaps/via/keymap.c
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright 2021 Martin Arnstad (@arnstadm)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /*
- * ┌───┬───┬───┬───┐
- * │NUM│ / │ * │ - │
- * ├───┼───┼───┼───┤
- * │ 7 │ 8 │ 9 │ │
- * ├───┼───┼───┤ + │
- * │ 4 │ 5 │ 6 │ │
- * ├───┼───┼───┼───┤
- * │ 1 │ 2 │ 3 │ │
- * ├───┴───┼───┤Ent│
- * │ 0 │ . │ │
- * └───────┴───┴───┘
- */
- [0] = LAYOUT_numpad_5x4(
- KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
- KC_P7, KC_P8, KC_P9,
- KC_P4, KC_P5, KC_P6, KC_PPLS,
- KC_P1, KC_P2, KC_P3,
- KC_P0, KC_PDOT, KC_PENT
- ),
-
- /*
- * ┌───┬───┬───┬───┐
- * │NUM│ / │ * │ - │
- * ├───┼───┼───┼───┤
- * │Hom│ ↑ │PgU│ │
- * ├───┼───┼───┤ + │
- * │ ← │ │ → │ │
- * ├───┼───┼───┼───┤
- * │End│ ↓ │PgD│ │
- * ├───┴───┼───┤Ent│
- * │Insert │Del│ │
- * └───────┴───┴───┘
- */
- [1] = LAYOUT_numpad_5x4(
- _______, _______, _______, _______,
- KC_HOME, KC_UP, KC_PGUP,
- KC_LEFT, XXXXXXX, KC_RGHT, _______,
- KC_END, KC_DOWN, KC_PGDN,
- KC_INS, KC_DEL, _______
- )
-};
diff --git a/keyboards/akb/ogrn/keymaps/via/rules.mk b/keyboards/akb/ogrn/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3e..00000000000
--- a/keyboards/akb/ogrn/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/akb/vero/keymaps/via/keymap.c b/keyboards/akb/vero/keymaps/via/keymap.c
deleted file mode 100644
index d5ae16ef9ce..00000000000
--- a/keyboards/akb/vero/keymaps/via/keymap.c
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2022 Martin Arnstad (@arnstadm)
-// 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 │ - │ = │ \ │ ` │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ Bspc│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤
- * │ Ctrl │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Ent │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤
- * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│MO1│
- * └─────┬──┴┬──┴──┬┴───┴───┴──┬┴───┴───┴──┬┴───┴┬──┴┬─────┴───┘
- * │Alt│ GUI │Space │Space │ GUI │Alt│
- * └───┴─────┴───────────┴───────────┴─────┴───┘
- */
- [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_GRV,
- 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_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_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, KC_RSFT, MO(1),
- KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_RGUI, KC_RALT
- ),
-
- /*
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Pwr│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Ins│Del│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │Caps │ Q │ W │ E │ R │ T │ Y │ U │PSc│Scr│Pse│ ↑ │ ] │ Bspc│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤
- * │ Ctrl │Vl-│Vl+│Mut│ F │ G │ * │ / │Hom│PgU│ ← │ → │ # │Ent │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤
- * │ Shift │ Z │ X │ C │ V │ B │ + │ - │End│PgD│ ↓ │ Shift│MO1│
- * └─────┬──┴┬──┴──┬┴───┴───┴──┬┴───┴───┴──┬┴───┴┬──┴┬─────┴───┘
- * │Alt│ GUI │Space │Space │ GUI │Alt│
- * └───┴─────┴───────────┴───────────┴─────┴───┘
- */
- [1] = LAYOUT_all(
- KC_PWR, 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_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, _______, _______,
- _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, KC_PENT,
- _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______,
- _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/akb/vero/keymaps/via/rules.mk b/keyboards/akb/vero/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/akb/vero/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/akko/5087/5087.c b/keyboards/akko/5087/5087.c
index 746a9a78161..996f8c25850 100644
--- a/keyboards/akko/5087/5087.c
+++ b/keyboards/akko/5087/5087.c
@@ -167,7 +167,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record) {
eeconfig_update_keymap(keymap_config.raw);
}
return false;
- case RGB_TOG:
+ case QK_RGB_MATRIX_TOGGLE:
if (record->event.pressed) {
switch (rgb_matrix_get_flags()) {
case LED_FLAG_ALL: {
diff --git a/keyboards/akko/5087/keymaps/default/keymap.c b/keyboards/akko/5087/keymaps/default/keymap.c
index 07763ccc891..039823465cd 100644
--- a/keyboards/akko/5087/keymaps/default/keymap.c
+++ b/keyboards/akko/5087/keymaps/default/keymap.c
@@ -47,11 +47,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[WIN_FN] = LAYOUT_tkl_ansi( /* FN */
_______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______,
- _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI,
- _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI,
- _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI),
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______,
+ _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, _______, DF(MAC_B),_______,_______, _______, RM_NEXT, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, RM_HUEU,
+ _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_VALU,
+ _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RM_SATD, RM_VALD, RM_SATU),
[MAC_B] = LAYOUT_tkl_ansi( /* Base */
KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS,
@@ -70,10 +70,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D),
[MAC_FN] = LAYOUT_tkl_ansi( /* FN */
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______,
- _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI,
- _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI,
- _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI)
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______,
+ _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, _______, DF(WIN_B),_______,_______, _______, RM_NEXT, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, RM_HUEU,
+ _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_VALU,
+ _______, _______, _______, _______, _______, _______, _______, _______, RM_SATD, RM_VALD, RM_SATU)
};
// clang-format on
diff --git a/keyboards/akko/5087/keymaps/via/keymap.c b/keyboards/akko/5087/keymaps/via/keymap.c
deleted file mode 100644
index dd59925fa90..00000000000
--- a/keyboards/akko/5087/keymaps/via/keymap.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Copyright (C) 2023 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 QMK_KEYBOARD_H
-
-enum __layers {
- WIN_B,
- WIN_W,
- WIN_FN,
- MAC_B,
- MAC_W,
- MAC_FN,
-};
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [WIN_B] = LAYOUT_tkl_ansi( /* Base */
- 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_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_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, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [WIN_W] = LAYOUT_tkl_ansi( /* Base */
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W,
- _______, _______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D),
-
-
- [WIN_FN] = LAYOUT_tkl_ansi( /* FN */
- _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______,
- _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI,
- _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI,
- _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI),
-
- [MAC_B] = LAYOUT_tkl_ansi( /* Base */
- KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, 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_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_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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [MAC_W] = LAYOUT_tkl_ansi( /* Base */
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W,
- _______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D),
- [MAC_FN] = LAYOUT_tkl_ansi( /* FN */
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______,
- _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI,
- _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI,
- _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI)
-};
-// clang-format on
diff --git a/keyboards/akko/5087/keymaps/via/rules.mk b/keyboards/akko/5087/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/akko/5087/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/akko/5108/5108.c b/keyboards/akko/5108/5108.c
index 7330707f453..61cb60713fe 100644
--- a/keyboards/akko/5108/5108.c
+++ b/keyboards/akko/5108/5108.c
@@ -150,13 +150,10 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
void keyboard_pre_init_kb(void) {
gpio_set_pin_output(LED_WIN_LOCK_PIN); // LED3 Win Lock
gpio_write_pin_low(LED_WIN_LOCK_PIN);
+
keyboard_pre_init_user();
}
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if (res) {
- gpio_write_pin(LED_WIN_LOCK_PIN, keymap_config.no_gui);
- }
- return res;
+void housekeeping_task_kb(void){
+ gpio_write_pin(LED_WIN_LOCK_PIN, keymap_config.no_gui);
}
diff --git a/keyboards/akko/5108/keymaps/default/keymap.c b/keyboards/akko/5108/keymaps/default/keymap.c
index ef92432ff57..588d895cd3c 100644
--- a/keyboards/akko/5108/keymaps/default/keymap.c
+++ b/keyboards/akko/5108/keymaps/default/keymap.c
@@ -46,11 +46,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[WIN_FN] = LAYOUT( /* FN */
_______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______,TG(WIN_W),_______,_______,_______,_______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______,
- _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______),
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______,TG(WIN_W),_______,_______,_______,_______, _______, _______, DF(MAC_B),_______,_______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, RM_HUEU, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, _______, _______, _______,
+ _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RM_SATD, RM_VALD, RM_SATU, _______, _______),
[MAC_B] = LAYOUT( /* Base */
KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU,
@@ -70,10 +70,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[MAC_FN] = LAYOUT( /* FN */
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______,TG(MAC_W),_______,_______,_______,_______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______)
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______,TG(MAC_W),_______,_______,_______,_______, _______, _______, DF(WIN_B),_______,_______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, RM_HUEU, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, RM_SATD, RM_VALD, RM_SATU, _______, _______)
};
// clang-format on
diff --git a/keyboards/akko/5108/keymaps/via/keymap.c b/keyboards/akko/5108/keymaps/via/keymap.c
deleted file mode 100644
index ef92432ff57..00000000000
--- a/keyboards/akko/5108/keymaps/via/keymap.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Copyright (C) 2023 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 QMK_KEYBOARD_H
-
-enum __layers {
- WIN_B,
- WIN_W,
- WIN_FN,
- MAC_B,
- MAC_W,
- MAC_FN
-};
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [WIN_B] = LAYOUT( /* Base */
- 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_CALC, KC_MUTE, KC_VOLD, KC_VOLU,
- 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, KC_RGUI, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT),
-
- [WIN_W] = LAYOUT( /* Base */
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D, _______, _______),
-
- [WIN_FN] = LAYOUT( /* FN */
- _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______,TG(WIN_W),_______,_______,_______,_______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______,
- _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______),
-
- [MAC_B] = LAYOUT( /* Base */
- KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU,
- 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT),
-
- [MAC_W] = LAYOUT( /* Base */
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D, _______, _______),
-
- [MAC_FN] = LAYOUT( /* FN */
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______,TG(MAC_W),_______,_______,_______,_______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______)
-};
-// clang-format on
diff --git a/keyboards/akko/5108/keymaps/via/rules.mk b/keyboards/akko/5108/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3e..00000000000
--- a/keyboards/akko/5108/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/akko/acr87/keymaps/default/keymap.c b/keyboards/akko/acr87/keymaps/default/keymap.c
index 88bfbc8e1fd..51f21a00977 100644
--- a/keyboards/akko/acr87/keymaps/default/keymap.c
+++ b/keyboards/akko/acr87/keymaps/default/keymap.c
@@ -47,11 +47,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[WIN_FN] = LAYOUT( /* FN */
_______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______,
- _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI,
- _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI,
- _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI),
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______,
+ _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, _______, DF(MAC_B),_______,_______, _______, RM_NEXT, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, RM_HUEU,
+ _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_VALU,
+ _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RM_SATD, RM_VALD, RM_SATU),
[MAC_B] = LAYOUT( /* Base */
KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS,
@@ -70,10 +70,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D),
[MAC_FN] = LAYOUT( /* FN */
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______,
- _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI,
- _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI,
- _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI)
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______,
+ _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, _______, DF(WIN_B),_______,_______, _______, RM_NEXT, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, _______, _______, RM_HUEU,
+ _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_VALU,
+ _______, _______, _______, _______, _______, _______, _______, _______, RM_SATD, RM_VALD, RM_SATU)
};
// clang-format on
diff --git a/keyboards/akko/acr87/keymaps/via/keymap.c b/keyboards/akko/acr87/keymaps/via/keymap.c
deleted file mode 100644
index 88bfbc8e1fd..00000000000
--- a/keyboards/akko/acr87/keymaps/via/keymap.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Copyright (C) 2023 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 QMK_KEYBOARD_H
-
-enum __layers {
- WIN_B,
- WIN_W,
- WIN_FN,
- MAC_B,
- MAC_W,
- MAC_FN
-};
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [WIN_B] = LAYOUT( /* Base */
- 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_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_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, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [WIN_W] = LAYOUT( /* Base */
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W,
- _______, _______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D),
-
-
- [WIN_FN] = LAYOUT( /* FN */
- _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______,
- _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI,
- _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI,
- _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI),
-
- [MAC_B] = LAYOUT( /* Base */
- KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, 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_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_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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [MAC_W] = LAYOUT( /* Base */
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W,
- _______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D),
- [MAC_FN] = LAYOUT( /* FN */
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______,
- _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI,
- _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI,
- _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI)
-};
-// clang-format on
diff --git a/keyboards/akko/acr87/keymaps/via/rules.mk b/keyboards/akko/acr87/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/akko/acr87/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/akko/top40/keymaps/default/keymap.c b/keyboards/akko/top40/keymaps/default/keymap.c
index fb9df162355..8f06ab969e4 100644
--- a/keyboards/akko/top40/keymaps/default/keymap.c
+++ b/keyboards/akko/top40/keymaps/default/keymap.c
@@ -31,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_FN] = LAYOUT( /* Fn */
_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
- _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END, RGB_TOG, RGB_MOD,
- _______, _______, _______, KC_CALC, _______, AG_TOGG, _______, KC_MUTE, KC_VOLD, KC_VOLU, RGB_VAI, _______,
- _______, GU_TOGG, _______, _______, _______, _______, RGB_SPI, RGB_VAD, RGB_SAI)
+ _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END, RM_TOGG, RM_NEXT,
+ _______, _______, _______, KC_CALC, _______, AG_TOGG, _______, KC_MUTE, KC_VOLD, KC_VOLU, RM_VALU, _______,
+ _______, GU_TOGG, _______, _______, _______, _______, RM_SPDU, RM_VALD, RM_SATU)
};
diff --git a/keyboards/akko/top40/keymaps/via/keymap.c b/keyboards/akko/top40/keymaps/via/keymap.c
deleted file mode 100644
index fb9df162355..00000000000
--- a/keyboards/akko/top40/keymaps/via/keymap.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 2023 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 QMK_KEYBOARD_H
-// clang-format off
-enum __layers {
- _Base,
- _FN
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_Base] = LAYOUT( /* Base */
- 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_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_LGUI, KC_LALT, KC_SPC, KC_SPC, MO(_FN),KC_LEFT, KC_DOWN, KC_RGHT),
-
- [_FN] = LAYOUT( /* Fn */
- _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
- _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END, RGB_TOG, RGB_MOD,
- _______, _______, _______, KC_CALC, _______, AG_TOGG, _______, KC_MUTE, KC_VOLD, KC_VOLU, RGB_VAI, _______,
- _______, GU_TOGG, _______, _______, _______, _______, RGB_SPI, RGB_VAD, RGB_SAI)
-};
diff --git a/keyboards/akko/top40/keymaps/via/rules.mk b/keyboards/akko/top40/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/akko/top40/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/al1/keymaps/via/keymap.c b/keyboards/al1/keymaps/via/keymap.c
deleted file mode 100644
index 865f407cb8c..00000000000
--- a/keyboards/al1/keymaps/via/keymap.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Copyright 2018 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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(
- 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_INS, 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_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, MO(1), KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ),
-
- [1] = LAYOUT(
- 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_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, 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, KC_TRNS, KC_TRNS, KC_TRNS ),
-
- [2] = LAYOUT(
- 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, 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 ),
-
- [3] = LAYOUT(
- 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, 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/al1/keymaps/via/rules.mk b/keyboards/al1/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc9..00000000000
--- a/keyboards/al1/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/al1/readme.md b/keyboards/al1/readme.md
index 3531e2fdc6b..4dcf83f05f1 100644
--- a/keyboards/al1/readme.md
+++ b/keyboards/al1/readme.md
@@ -1,7 +1,5 @@
# TriangleLabs AL1
-
-
* Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin), [Olivia](https://github.com/olivia)
* Hardware Supported: AL1 PCB
* Hardware Availability: [GroupBuy](https://geekhack.org/index.php?topic=93258.0)
diff --git a/keyboards/alas/keyboard.json b/keyboards/alas/keyboard.json
index b5617189dec..41fa879a69a 100755
--- a/keyboards/alas/keyboard.json
+++ b/keyboards/alas/keyboard.json
@@ -25,7 +25,18 @@
"diode_direction": "COL2ROW",
"processor": "STM32F072",
"bootloader": "stm32-dfu",
- "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_tsangan_hhkb"],
+ "community_layouts": [
+ "60_ansi",
+ "60_ansi_split_bs_rshift",
+ "60_ansi_tsangan",
+ "60_ansi_tsangan_split_bs_rshift",
+ "60_iso",
+ "60_iso_split_bs_rshift",
+ "60_iso_tsangan"
+ ],
+ "layout_aliases": {
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
@@ -518,7 +529,7 @@
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
diff --git a/keyboards/alas/keymaps/via/keymap.c b/keyboards/alas/keymaps/via/keymap.c
deleted file mode 100644
index 3f84154ca40..00000000000
--- a/keyboards/alas/keymaps/via/keymap.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Copyright 2023 Yiancar-Designs
- *
- * 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( /* Base */
- 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_DEL,
- 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_SLSH, KC_RSFT, MO(1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL),
-
-[1] = LAYOUT_all( /* FN */
- 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_TRNS,
- KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
-[2] = LAYOUT_all( /* Empty for dynamic keymaps */
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
-[3] = LAYOUT_all( /* Empty for dynamic keymaps */
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
-};
diff --git a/keyboards/alas/keymaps/via/rules.mk b/keyboards/alas/keymaps/via/rules.mk
deleted file mode 100755
index 1e5b99807cb..00000000000
--- a/keyboards/alas/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/aleblazer/zodiark/keyboard.json b/keyboards/aleblazer/zodiark/keyboard.json
index 9f77049dee1..fba239866ed 100644
--- a/keyboards/aleblazer/zodiark/keyboard.json
+++ b/keyboards/aleblazer/zodiark/keyboard.json
@@ -60,13 +60,15 @@
},
"split": {
"enabled": true,
- "soft_serial_pin": "D3",
"encoder": {
"right": {
"rotary": [
{"pin_a": "D4", "pin_b": "D2", "resolution": 3}
]
}
+ },
+ "serial": {
+ "pin": "D3"
}
},
"processor": "atmega32u4",
diff --git a/keyboards/aleblazer/zodiark/keymaps/default/keymap.c b/keyboards/aleblazer/zodiark/keymaps/default/keymap.c
index 755a218e044..7c5414e93ac 100644
--- a/keyboards/aleblazer/zodiark/keymaps/default/keymap.c
+++ b/keyboards/aleblazer/zodiark/keymaps/default/keymap.c
@@ -23,9 +23,7 @@ enum sofle_layers {
};
enum custom_keycodes {
- KC_QWERTY = SAFE_RANGE,
- KC_COLEMAK,
- KC_LOWER,
+ KC_LOWER = SAFE_RANGE,
KC_RAISE,
KC_ADJUST,
KC_PRVWD,
@@ -35,13 +33,16 @@ enum custom_keycodes {
KC_DLINE
};
+#define KC_QWERTY PDF(_QWERTY)
+#define KC_COLEMAK PDF(_COLEMAK)
+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_TAB, 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_BSLS,
KC_ADJUST, KC_A, KC_S, KC_D, KC_F, KC_G, KC_MINS, KC_EQL, 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_GRV, KC_MUTE, RGB_TOG, KC_DEL,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_MUTE, UG_TOGG, KC_DEL,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
KC_LCTL, KC_LALT, KC_LGUI, LALT(KC_TAB), KC_LOWER, KC_SPC, KC_ENT, KC_ENT, KC_SPC, KC_RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
@@ -64,9 +65,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_ADJUST] = LAYOUT(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
_______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, _______, _______, _______, KC_F12,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, UG_TOGG, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, UG_NEXT, UG_SPDU, UG_HUEU, UG_SATU, UG_VALU,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, UG_PREV, UG_SPDD, UG_HUED, UG_SATD, UG_VALD
)
};
@@ -148,16 +149,6 @@ bool oled_task_user(void) {
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
- case KC_QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
- }
- return false;
- case KC_COLEMAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_COLEMAK);
- }
- return false;
case KC_LOWER:
if (record->event.pressed) {
layer_on(_LOWER);
diff --git a/keyboards/aleblazer/zodiark/keymaps/via/config.h b/keyboards/aleblazer/zodiark/keymaps/via/config.h
deleted file mode 100644
index 135f55b9191..00000000000
--- a/keyboards/aleblazer/zodiark/keymaps/via/config.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
-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 .
-*/
-#pragma once
-
-#ifdef OLED_ENABLE
- #define OLED_DISPLAY_128X64
- #define OLED_TIMEOUT 400000
-#endif
-
-#ifdef RGBLIGHT_ENABLE
- #undef RGBLIGHT_EFFECT_RGB_TEST
- #undef RGBLIGHT_EFFECT_ALTERNATING
-#endif
diff --git a/keyboards/aleblazer/zodiark/keymaps/via/encoder.c b/keyboards/aleblazer/zodiark/keymaps/via/encoder.c
deleted file mode 100644
index a9d66b1519f..00000000000
--- a/keyboards/aleblazer/zodiark/keymaps/via/encoder.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
-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 .
-*/
-
-//Setting up what encoder rotation does. If your encoder can be pressed as a button, that function can be set in Via.
-
-#ifdef ENCODER_ENABLE
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (index == 0) {
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- } else if (index == 1) {
- if (clockwise) {
- tap_code(KC_PGDN);
- } else {
- tap_code(KC_PGUP);
- }
- }
- return true;
-}
-
-#endif
diff --git a/keyboards/aleblazer/zodiark/keymaps/via/keymap.c b/keyboards/aleblazer/zodiark/keymaps/via/keymap.c
deleted file mode 100644
index 3829bcc9684..00000000000
--- a/keyboards/aleblazer/zodiark/keymaps/via/keymap.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
-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 QMK_KEYBOARD_H
-#include "oled.c"
-#include "encoder.c"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [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_BSPC,
- KC_TAB, 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_BSLS,
- MO(3), KC_A, KC_S, KC_D, KC_F, KC_G, KC_MINS, KC_EQL, 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_GRV, KC_MUTE, RGB_TOG, KC_DEL,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
- KC_LCTL, KC_LALT, KC_LGUI, KC_APP, MO(1), KC_SPC, KC_ENT, KC_ENT, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
- ),
-
- [1] = LAYOUT(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_PSLS, KC_P7, KC_P8, KC_P9, KC_NUM, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_F12,
- KC_CAPS, KC_P4, KC_P5, KC_P6, KC_NUM, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NUM,
- _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______,
- _______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______
- ),
-
- [2] = LAYOUT(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_PSLS, KC_P7, KC_P8, KC_P9, KC_NUM, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_F12,
- KC_CAPS, KC_P4, KC_P5, KC_P6, KC_NUM, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NUM,
- _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______,
- _______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______
- ),
-
- [3] = LAYOUT(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, _______, _______, _______, KC_F12,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD
- )
-
-};
diff --git a/keyboards/aleblazer/zodiark/keymaps/via/oled.c b/keyboards/aleblazer/zodiark/keymaps/via/oled.c
deleted file mode 100644
index 8642bacb054..00000000000
--- a/keyboards/aleblazer/zodiark/keymaps/via/oled.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
-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 .
-*/
-
-#ifdef OLED_ENABLE
-
-static void render_logo(void) {
- static const char PROGMEM qmk_logo[] = {
- 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
- 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
- 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0
- };
-
- oled_write_P(qmk_logo, false);
-}
-
-static void print_status_narrow(void) {
- // Print current mode
- oled_write_P(PSTR("\n\n"), false);
-
- switch (get_highest_layer(layer_state)) {
- case 0:
- oled_write_ln_P(PSTR("Qwrt"), false);
- break;
- default:
- oled_write_P(PSTR("Mod\n"), false);
- break;
- }
- oled_write_P(PSTR("\n\n"), false);
- // Print current layer
- oled_write_ln_P(PSTR("LAYER"), false);
- switch (get_highest_layer(layer_state)) {
- case 0:
- oled_write_P(PSTR("Base\n"), false);
- break;
- case 1:
- oled_write_P(PSTR("Raise"), false);
- break;
- case 2:
- oled_write_P(PSTR("Lower"), false);
- break;
- case 3:
- oled_write_P(PSTR("Adjust"), false);
- break;
- default:
- oled_write_ln_P(PSTR("Undef"), false);
- }
- oled_write_P(PSTR("\n\n"), false);
- led_t led_usb_state = host_keyboard_led_state();
- oled_write_ln_P(PSTR("CPSLK"), led_usb_state.caps_lock);
-}
-
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- if (is_keyboard_master()) {
- return OLED_ROTATION_90;
- }
- return rotation;
-}
-
-bool oled_task_user(void) {
- if (is_keyboard_master()) {
- print_status_narrow();
- } else {
- render_logo();
- }
- return false;
-}
-
-#endif
diff --git a/keyboards/aleblazer/zodiark/keymaps/via/rules.mk b/keyboards/aleblazer/zodiark/keymaps/via/rules.mk
deleted file mode 100644
index 76d3c49ffd6..00000000000
--- a/keyboards/aleblazer/zodiark/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-RGBLIGHT_ENABLE = yes
-VIA_ENABLE = yes
diff --git a/keyboards/alf/dc60/readme.md b/keyboards/alf/dc60/readme.md
index d8e20a8f4f7..628878e8de3 100644
--- a/keyboards/alf/dc60/readme.md
+++ b/keyboards/alf/dc60/readme.md
@@ -1,7 +1,5 @@
# dc60
-
-
A 60% PCB sold with the Alf DC60.
Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin)
diff --git a/keyboards/alf/x11/keymaps/default/keymap.c b/keyboards/alf/x11/keymaps/default/keymap.c
index 22d459faad7..416287fcffa 100644
--- a/keyboards/alf/x11/keymaps/default/keymap.c
+++ b/keyboards/alf/x11/keymaps/default/keymap.c
@@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_TOGG, BL_DOWN, BL_UP, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_MPLY, KC_MSTP,
- RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______,
+ UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
diff --git a/keyboards/alf/x11/keymaps/via/keymap.c b/keyboards/alf/x11/keymaps/via/keymap.c
deleted file mode 100644
index c744f07f594..00000000000
--- a/keyboards/alf/x11/keymaps/via/keymap.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright 2019 MechMerlin (copied from default keymap)
- *
- * 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(
- 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_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_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_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [1] = LAYOUT(
- 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, QK_BOOT,
-
- 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_MUTE, KC_MPLY, KC_MSTP,
- RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, 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
- ),
- [2] = LAYOUT(
- 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, 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
- ),
- [3] = LAYOUT(
- 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, 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/alf/x11/keymaps/via/rules.mk b/keyboards/alf/x11/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3e..00000000000
--- a/keyboards/alf/x11/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/alfredslab/swift65/hotswap/keymaps/via/keymap.c b/keyboards/alfredslab/swift65/hotswap/keymaps/via/keymap.c
deleted file mode 100644
index 828ff4ae578..00000000000
--- a/keyboards/alfredslab/swift65/hotswap/keymaps/via/keymap.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright 2021 Steven Phillips (spooknik)
- *
- * 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_ansi_blocker_tsangan(
- 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_HOME,
- 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_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_PGUP,
- 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_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [1] = LAYOUT_ansi_blocker_tsangan(
- 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_PGDN,
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP,
- _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
- ),
-
- [2] = LAYOUT_ansi_blocker_tsangan(
- 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,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [3] = LAYOUT_ansi_blocker_tsangan(
- 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,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
-};
diff --git a/keyboards/alfredslab/swift65/hotswap/keymaps/via/rules.mk b/keyboards/alfredslab/swift65/hotswap/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3e..00000000000
--- a/keyboards/alfredslab/swift65/hotswap/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/alfredslab/swift65/solder/keymaps/via/keymap.c b/keyboards/alfredslab/swift65/solder/keymaps/via/keymap.c
deleted file mode 100644
index ba05b3340ae..00000000000
--- a/keyboards/alfredslab/swift65/solder/keymaps/via/keymap.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Copyright 2021 Steven Phillips (spooknik)
- *
- * 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_ansi_blocker_split_bs(
- 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_GRV, KC_BSPC, KC_HOME,
- 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_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_PGUP,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [1] = LAYOUT_ansi_blocker_split_bs(
- 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_PGDN,
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP,
- _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
- ),
- [2] = LAYOUT_ansi_blocker_split_bs(
- 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, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [3] = LAYOUT_ansi_blocker_split_bs(
- 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, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
-};
diff --git a/keyboards/alfredslab/swift65/solder/keymaps/via/rules.mk b/keyboards/alfredslab/swift65/solder/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3e..00000000000
--- a/keyboards/alfredslab/swift65/solder/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/alhenkb/macropad5x4/keymaps/via/keymap.c b/keyboards/alhenkb/macropad5x4/keymaps/via/keymap.c
deleted file mode 100644
index 12a878346e4..00000000000
--- a/keyboards/alhenkb/macropad5x4/keymaps/via/keymap.c
+++ /dev/null
@@ -1,27 +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] = {
- /*
- * ┌───┬───┬───┬───┐
- * │ 1 │ 2 │ 3 │ 4 │
- * ├───┼───┼───┼───┤
- * │ 5 │ 6 │ 7 │ 8 │
- * ├───┼───┼───┼───┤
- * │ Q │ W │ E │ R │
- * ├───┼───┼───┼───┤
- * │ A │ S │ D │ F │
- * ├───┼───┼───┼───┤
- * │ Z │ X │ C │ V │
- * └───────┴───┴───┘
- */
- [0] = LAYOUT_ortho_5x4(
- KC_P1, KC_P2, KC_P3, KC_P4,
- KC_P5, KC_P6, KC_P7, KC_P8,
- KC_Q, KC_W, KC_E, KC_R,
- KC_A, KC_S, KC_D, KC_F,
- KC_Z, KC_X, KC_C, KC_V
- ),
-};
diff --git a/keyboards/alhenkb/macropad5x4/keymaps/via/rules.mk b/keyboards/alhenkb/macropad5x4/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3e..00000000000
--- a/keyboards/alhenkb/macropad5x4/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/aliceh66/pianoforte/keymaps/via/keymap.c b/keyboards/aliceh66/pianoforte/keymaps/via/keymap.c
deleted file mode 100644
index e0579044b9b..00000000000
--- a/keyboards/aliceh66/pianoforte/keymaps/via/keymap.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
-Copyright 2022 AliceH
-
-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
-enum layer_names {
- _LAYER0,
- _LAYER1,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_LAYER0] = LAYOUT_all(
- 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_F13, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, MO(1), KC_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_LAYER1] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-
-};
diff --git a/keyboards/aliceh66/pianoforte/keymaps/via/rules.mk b/keyboards/aliceh66/pianoforte/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/aliceh66/pianoforte/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/aliceh66/pianoforte_hs/keymaps/via/keymap.c b/keyboards/aliceh66/pianoforte_hs/keymaps/via/keymap.c
deleted file mode 100644
index 6bcfa56fca9..00000000000
--- a/keyboards/aliceh66/pianoforte_hs/keymaps/via/keymap.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
-Copyright 2022 AliceH
-
-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
-enum layer_names {
- _LAYER0,
- _LAYER1
-};
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_LAYER0] = LAYOUT_tkl_f13_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_F13, 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_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_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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_LAYER1] = LAYOUT_tkl_f13_ansi(
- 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, 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/aliceh66/pianoforte_hs/keymaps/via/rules.mk b/keyboards/aliceh66/pianoforte_hs/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3e..00000000000
--- a/keyboards/aliceh66/pianoforte_hs/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/alpaca/wfeclipse/keymaps/default/keymap.c b/keyboards/alpaca/wfeclipse/keymaps/default/keymap.c
index 3849b2889c1..548db39a108 100644
--- a/keyboards/alpaca/wfeclipse/keymaps/default/keymap.c
+++ b/keyboards/alpaca/wfeclipse/keymaps/default/keymap.c
@@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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_PSCR, KC_SCRL, KC_PAUS,
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_MPRV, QK_BOOT,
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_MPLY, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, KC_TRNS, KC_MNXT, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD,RGB_HUD, RGB_TOG, 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_HUEU, KC_TRNS, KC_MNXT, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, RM_HUED, RM_TOGG, KC_TRNS, KC_TRNS, KC_TRNS
)
};
diff --git a/keyboards/alpaca/wfeclipse/keymaps/via/keymap.c b/keyboards/alpaca/wfeclipse/keymaps/via/keymap.c
deleted file mode 100644
index ed0d448fb19..00000000000
--- a/keyboards/alpaca/wfeclipse/keymaps/via/keymap.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2023 temp4gh
- *
- * 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
-
-enum layer_names {
- WIN_BASE,
- WIN_FN,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [WIN_BASE] =LAYOUT(
- 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_DEL, KC_INS,
- 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_HOME, 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_ENT, KC_END , KC_PGDN,
- 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, MO(WIN_FN),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [WIN_FN] =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_PSCR, KC_SCRL, KC_PAUS,
- 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_MPRV, QK_BOOT,
- 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_MPLY, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, KC_TRNS, KC_MNXT, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD,RGB_HUD, RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS
- )
-};
diff --git a/keyboards/alpaca/wfeclipse/keymaps/via/rules.mk b/keyboards/alpaca/wfeclipse/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3e..00000000000
--- a/keyboards/alpaca/wfeclipse/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/alpha/keymaps/default/keymap.c b/keyboards/alpha/keymaps/default/keymap.c
index e626062bcc5..f459829ae0d 100755
--- a/keyboards/alpha/keymaps/default/keymap.c
+++ b/keyboards/alpha/keymaps/default/keymap.c
@@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[MODS2] = LAYOUT(
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
KC_LSFT, KC_F11, KC_F12, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, TO(3),
- RGB_VAI, RGB_VAD, RGB_HUI, TO(0), RGB_MOD, KC_MPLY, KC_VOLD, KC_VOLU),
+ UG_VALU, UG_VALD, UG_HUEU, TO(0), UG_NEXT, KC_MPLY, KC_VOLD, KC_VOLU),
[OTHER] = LAYOUT(
QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
diff --git a/keyboards/alpine65/keymaps/via/keymap.c b/keyboards/alpine65/keymaps/via/keymap.c
deleted file mode 100755
index eaa348490a0..00000000000
--- a/keyboards/alpine65/keymaps/via/keymap.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
-Copyright 2012,2013 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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(
- 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_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_HOME,
- KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_END ,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ),
- [1] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ),
- [2] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ),
- [3] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ),
-};
diff --git a/keyboards/alpine65/keymaps/via/rules.mk b/keyboards/alpine65/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/alpine65/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/alps64/keymaps/via/keymap.c b/keyboards/alps64/keymaps/via/keymap.c
deleted file mode 100644
index aef6995a104..00000000000
--- a/keyboards/alps64/keymaps/via/keymap.c
+++ /dev/null
@@ -1,37 +0,0 @@
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* 0: qwerty */
- [0] = LAYOUT_all(
- 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_NUHS, 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_SLSH, KC_RSFT, KC_ESC,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_APP, KC_RALT, KC_RGUI, KC_RCTL
- ),
-
- [1] = LAYOUT_all(
- 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_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
- ),
-
- [2] = LAYOUT_all(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [3] = LAYOUT_all(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
-};
diff --git a/keyboards/alps64/keymaps/via/rules.mk b/keyboards/alps64/keymaps/via/rules.mk
deleted file mode 100644
index c4a4cd8fd93..00000000000
--- a/keyboards/alps64/keymaps/via/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
-CONSOLE_ENABLE = no
-COMMAND_ENABLE = no
diff --git a/keyboards/alt34/rev1/config.h b/keyboards/alt34/rev1/config.h
index 9dd9e9bdde5..d71179bed55 100644
--- a/keyboards/alt34/rev1/config.h
+++ b/keyboards/alt34/rev1/config.h
@@ -21,5 +21,4 @@ along with this program. If not, see .
/* Select hand configuration */
#define EE_HANDS
-/* #define MASTER_LEFT */
-/* #define MASTER_RIGHT */
+
diff --git a/keyboards/amag23/keymaps/default/keymap.c b/keyboards/amag23/keymaps/default/keymap.c
index eefdd35db3f..f2064f111b2 100644
--- a/keyboards/amag23/keymaps/default/keymap.c
+++ b/keyboards/amag23/keymaps/default/keymap.c
@@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_Z, KC_X, KC_C, KC_B, KC_SPC
),
[FN1] = LAYOUT( /* Function Layer */
- KC_NO, KC_NO, KC_NO, RGB_MOD, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, UG_NEXT, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
diff --git a/keyboards/amag23/keymaps/via/keymap.c b/keyboards/amag23/keymaps/via/keymap.c
deleted file mode 100644
index 9c97ace7378..00000000000
--- a/keyboards/amag23/keymaps/via/keymap.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright 2022
- *
- * 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
-
-// Defines names for use in layer keycodes and the keymap
-enum layer_names {
- BASE,
- FN1,
- FN2,
- FN3
-};
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [BASE] = LAYOUT(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T,
- MO(FN1), KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_SPC
- ),
- [FN1] = LAYOUT(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
- _______, RGB_TOG, RGB_VAI, RGB_MOD, RGB_HUI, _______,
- _______, _______, RGB_VAD, RGB_RMOD,RGB_HUD, _______,
- _______, _______, _______, _______, _______
- ),
- [FN2] = LAYOUT(
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______
- ),
- [FN3] = LAYOUT(
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______
- ),
-};
-// clang-format on
diff --git a/keyboards/amag23/keymaps/via/rules.mk b/keyboards/amag23/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc9..00000000000
--- a/keyboards/amag23/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/amjkeyboard/amj40/keymaps/default/keymap.c b/keyboards/amjkeyboard/amj40/keymaps/default/keymap.c
index 0cc5dfabf1d..c867404a89e 100755
--- a/keyboards/amjkeyboard/amj40/keymaps/default/keymap.c
+++ b/keyboards/amjkeyboard/amj40/keymaps/default/keymap.c
@@ -86,7 +86,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, KC_DEL,
- _______, _______, _______, _______, _______, _______, _______, RGB_TOG
+ _______, _______, _______, _______, _______, _______, _______, UG_TOGG
),
/* Function Layer 1 HHKB style
@@ -103,7 +103,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_ADJUST] = LAYOUT(
_______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______,
- _______, _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD,
+ _______, _______, _______, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD,
KC_SLEP, _______, _______, _______, _______, _______, _______, _______
),
};
diff --git a/keyboards/amptrics/0422/0422.c b/keyboards/amptrics/0422/0422.c
new file mode 100644
index 00000000000..034151b5b8d
--- /dev/null
+++ b/keyboards/amptrics/0422/0422.c
@@ -0,0 +1,67 @@
+/* Copyright 2024 Vinod Chowl (@vchowl)
+ *
+ * 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.0 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
+
+#define LED_LAYER_0 B3
+#define LED_LAYER_1 B4
+#define LED_LAYER_2 B5
+#define LED_LAYER_3 B6
+
+#define LED_PINS_COUNT 4
+
+pin_t pins[LED_PINS_COUNT] = {LED_LAYER_0, LED_LAYER_1, LED_LAYER_2, LED_LAYER_3};
+
+
+// Function to turn on all LEDs
+void turn_on_all_leds(void) {
+ for (int i = 0; i < LED_PINS_COUNT; i++) {
+ gpio_write_pin_high(pins[i]); // Turn on LED
+ }
+}
+
+// Function to turn off all LEDs
+void turn_off_all_leds(void) {
+ for (int i = 0; i < LED_PINS_COUNT; i++) {
+ gpio_write_pin_low(pins[i]); // Turn off LED
+ }
+}
+
+void update_leds_for_layer(uint8_t layer) {
+ turn_off_all_leds();
+ gpio_write_pin_high(pins[layer]);
+}
+
+void keyboard_post_init_kb(void) {
+ for (int i = 0; i < LED_PINS_COUNT; i++) {
+ gpio_set_pin_output(pins[i]);
+ gpio_write_pin_low(pins[i]);
+ }
+
+ // Blink all LEDs
+ turn_on_all_leds();
+ wait_ms(500); // Keep LEDs on for 500ms
+ turn_off_all_leds();
+
+ update_leds_for_layer(0); // Update LEDs to indicate the default layer
+ keyboard_post_init_user();
+}
+
+layer_state_t layer_state_set_kb(layer_state_t state) {
+ uint8_t layer = get_highest_layer(state);
+ update_leds_for_layer(layer);
+ return layer_state_set_user(state);
+}
diff --git a/keyboards/amptrics/0422/config.h b/keyboards/amptrics/0422/config.h
new file mode 100644
index 00000000000..e9c1eed8b9b
--- /dev/null
+++ b/keyboards/amptrics/0422/config.h
@@ -0,0 +1,5 @@
+// Copyright 2025 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+#define DYNAMIC_KEYMAP_MACRO_COUNT 36
diff --git a/keyboards/amptrics/0422/keyboard.json b/keyboards/amptrics/0422/keyboard.json
new file mode 100644
index 00000000000..669e3552641
--- /dev/null
+++ b/keyboards/amptrics/0422/keyboard.json
@@ -0,0 +1,40 @@
+{
+ "manufacturer": "Amptrics Technologies",
+ "keyboard_name": "Amptrics 0422",
+ "maintainer": "vchowl",
+ "bootloader": "stm32-dfu",
+ "diode_direction": "ROW2COL",
+ "features": {
+ "bootmagic": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true
+ },
+ "matrix_pins": {
+ "cols": ["C8", "C7", "C6"],
+ "rows": ["A14", "A13", "A10", "A9"]
+ },
+ "processor": "STM32F072",
+ "url": "",
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x01A6",
+ "vid": "0x616D"
+ },
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1},
+ {"matrix": [1, 1], "x": 1, "y": 1},
+ {"matrix": [1, 2], "x": 2, "y": 1},
+ {"matrix": [2, 0], "x": 0, "y": 2},
+ {"matrix": [2, 1], "x": 1, "y": 2},
+ {"matrix": [2, 2], "x": 2, "y": 2},
+ {"matrix": [3, 0], "x": 0, "y": 3},
+ {"matrix": [3, 1], "x": 1, "y": 3},
+ {"matrix": [3, 2], "x": 2, "y": 3}
+ ]
+ }
+ }
+}
diff --git a/keyboards/amptrics/0422/keymaps/default/keymap.c b/keyboards/amptrics/0422/keymaps/default/keymap.c
new file mode 100644
index 00000000000..ef36a65835c
--- /dev/null
+++ b/keyboards/amptrics/0422/keymaps/default/keymap.c
@@ -0,0 +1,58 @@
+/* Copyright 2024 Vinod Chowl (@vchowl)
+ *
+ * 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.0 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] = {
+ /*
+ * ┌───┐
+ * │Tog│
+ * ├───┼───┬───┐
+ * │ 7 │ 8 │ 9 │
+ * ├───┼───┼───┤
+ * │ 4 │ 5 │ 6 │
+ * ├───┼───┼───┤
+ * │ 1 │ 2 │ 3 │
+ * └───┴───┴───┘
+ */
+ [0] = LAYOUT(
+ TO(1),
+ KC_7, KC_8, KC_9,
+ KC_4, KC_5, KC_6,
+ KC_1, KC_2, KC_3
+ ),
+
+ [1] = LAYOUT(
+ TO(2),
+ KC_A, KC_B, KC_C,
+ KC_D, KC_E, KC_F,
+ KC_G, KC_H, KC_I
+ ),
+
+ [2] = LAYOUT(
+ TO(3),
+ KC_J, KC_K, KC_L,
+ KC_M, KC_N, KC_O,
+ KC_P, KC_Q, KC_R
+ ),
+
+ [3] = LAYOUT(
+ TO(0),
+ KC_S, KC_T, KC_U,
+ KC_V, KC_W, KC_X,
+ KC_Y, KC_Z, KC_ENT
+ )
+};
diff --git a/keyboards/amptrics/0422/readme.md b/keyboards/amptrics/0422/readme.md
new file mode 100644
index 00000000000..7d900f9b58e
--- /dev/null
+++ b/keyboards/amptrics/0422/readme.md
@@ -0,0 +1,25 @@
+# Amptrics 0422 Programmable Keypad
+
+
+
+* Keyboard Maintainer: [vchowl](https://github.com/vchowl)
+* Hardware Supported: STM32F072RBT6
+* Hardware Availability: Not yet available.
+
+Make example for this keyboard (after setting up your build environment):
+
+ make amptrics/0422:default
+
+Flashing example for this keyboard:
+
+ make amptrics/0422: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**: 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
diff --git a/keyboards/anavi/knobs3/keymaps/default/keymap.c b/keyboards/anavi/knobs3/keymaps/default/keymap.c
index e5eaa2f1e19..eddcd071ab8 100644
--- a/keyboards/anavi/knobs3/keymaps/default/keymap.c
+++ b/keyboards/anavi/knobs3/keymaps/default/keymap.c
@@ -5,6 +5,6 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
- KC_MUTE, RGB_TOG, RGB_MOD
+ KC_MUTE, UG_TOGG, UG_NEXT
)
};
diff --git a/keyboards/anavi/macropad10/keymaps/default/keymap.c b/keyboards/anavi/macropad10/keymaps/default/keymap.c
index 8a02b392c05..901e5aafa9e 100644
--- a/keyboards/anavi/macropad10/keymaps/default/keymap.c
+++ b/keyboards/anavi/macropad10/keymaps/default/keymap.c
@@ -11,6 +11,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT_mp10(
KC_A , KC_B , KC_C ,
KC_D , KC_E , KC_F ,
- RGB_M_R , RGB_MOD , RGB_TOG
+ RGB_M_R , UG_NEXT , UG_TOGG
)
};
diff --git a/keyboards/anavi/macropad12/keymaps/default/keymap.c b/keyboards/anavi/macropad12/keymaps/default/keymap.c
index e74b20d9bad..10ca01353c2 100644
--- a/keyboards/anavi/macropad12/keymaps/default/keymap.c
+++ b/keyboards/anavi/macropad12/keymaps/default/keymap.c
@@ -12,6 +12,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_1, KC_2, KC_3,
KC_4, KC_5, KC_6,
KC_7, KC_8, KC_9,
- BL_STEP, RGB_MOD, RGB_TOG
+ BL_STEP, UG_NEXT, UG_TOGG
)
};
diff --git a/keyboards/anavi/macropad8/keyboard.json b/keyboards/anavi/macropad8/keyboard.json
index d70d3fa0475..50381ce8a87 100644
--- a/keyboards/anavi/macropad8/keyboard.json
+++ b/keyboards/anavi/macropad8/keyboard.json
@@ -23,7 +23,6 @@
"rainbow_swirl": true,
"snake": true,
"knight": true,
- "christmas": true,
"static_gradient": true,
"rgb_test": true,
"alternating": true,
diff --git a/keyboards/anavi/macropad8/keymaps/default/keymap.c b/keyboards/anavi/macropad8/keymaps/default/keymap.c
index 84be7f3c68e..4f7041e6c45 100644
--- a/keyboards/anavi/macropad8/keymaps/default/keymap.c
+++ b/keyboards/anavi/macropad8/keymaps/default/keymap.c
@@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[_FN] = LAYOUT_ortho_2x4(
- RGB_TOG, RGB_MOD, RGB_M_R, RGB_M_SN,
+ UG_TOGG, UG_NEXT, RGB_M_R, RGB_M_SN,
BL_TOGG, BL_STEP, BL_BRTG, _______
)
};
diff --git a/keyboards/annepro2/annepro2.c b/keyboards/annepro2/annepro2.c
index 170eb8c175a..9e72dbf6fb0 100644
--- a/keyboards/annepro2/annepro2.c
+++ b/keyboards/annepro2/annepro2.c
@@ -48,6 +48,11 @@ ble_capslock_t ble_capslock = {._dummy = {0}, .caps_lock = false};
static uint8_t led_enabled = 1;
#endif
+void mcu_reset(void) {
+ __disable_irq();
+ NVIC_SystemReset();
+}
+
void bootloader_jump(void) {
// Send msg to shine to boot into IAP
ap2_set_IAP();
@@ -211,7 +216,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
ap2_led_reset_foreground_color();
return false;
#ifdef RGB_MATRIX_ENABLE
- case RGB_TOG:
+ case QK_RGB_MATRIX_TOGGLE:
if(rgb_matrix_is_enabled()) ap2_led_disable();
else ap2_led_enable();
return true;
diff --git a/keyboards/annepro2/c15/rules.mk b/keyboards/annepro2/c15/rules.mk
index f35d9002ef5..cd056527b7b 100644
--- a/keyboards/annepro2/c15/rules.mk
+++ b/keyboards/annepro2/c15/rules.mk
@@ -4,7 +4,7 @@ ARMV = 6
USE_FPU = no
MCU_FAMILY = HT32
MCU_SERIES = HT32F523xx
-MCU_LDSCRIPT = HT32F52342_ANNEPRO2
+MCU_LDSCRIPT = HT32F52342_ANNEPRO2_C15
MCU_STARTUP = ht32f523xx
BOARD = ANNEPRO2_C15
diff --git a/keyboards/annepro2/c18/rules.mk b/keyboards/annepro2/c18/rules.mk
index b310454c5d0..414e3f855d0 100644
--- a/keyboards/annepro2/c18/rules.mk
+++ b/keyboards/annepro2/c18/rules.mk
@@ -4,7 +4,7 @@ ARMV = 6
USE_FPU = no
MCU_FAMILY = HT32
MCU_SERIES = HT32F523xx
-MCU_LDSCRIPT = HT32F52342_ANNEPRO2
+MCU_LDSCRIPT = HT32F52352_ANNEPRO2_C18
MCU_STARTUP = ht32f523xx
BOARD = ANNEPRO2_C18
diff --git a/keyboards/annepro2/ld/HT32F52342_ANNEPRO2.ld b/keyboards/annepro2/ld/HT32F52342_ANNEPRO2_C15.ld
similarity index 100%
rename from keyboards/annepro2/ld/HT32F52342_ANNEPRO2.ld
rename to keyboards/annepro2/ld/HT32F52342_ANNEPRO2_C15.ld
diff --git a/keyboards/annepro2/ld/HT32F52352_ANNEPRO2_C18.ld b/keyboards/annepro2/ld/HT32F52352_ANNEPRO2_C18.ld
new file mode 100644
index 00000000000..0ac02d6c89c
--- /dev/null
+++ b/keyboards/annepro2/ld/HT32F52352_ANNEPRO2_C18.ld
@@ -0,0 +1,92 @@
+/*
+ * Copyright (c) 2013-2016 Fabio UJonathan A. Kollaschtzig, http://fabioutzig.com
+ * (c) 2020 Yaotian Feng (Codetector)
+ * (c) 2025 Michał Kopeć
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+/*
+ * HT32F52342 w/ Anne Pro 2 bootloader memory setup.
+ */
+MEMORY {
+ flash0 : org = 0x00004000, len = 64k - 16k /* firmware */
+ flash1 : org = 0x00000000, len = 0
+ flash2 : org = 0x00000000, len = 0
+ flash3 : org = 0x00000000, len = 0
+ flash4 : org = 0x00000000, len = 0
+ flash5 : org = 0x00000000, len = 0
+ flash6 : org = 0x00000000, len = 0
+ flash7 : org = 0x00000000, len = 0
+ ram0 : org = 0x20000000, len = 16k /* RAM */
+ ram1 : org = 0x00000000, len = 0
+ ram2 : org = 0x00000000, len = 0
+ ram3 : org = 0x00000000, len = 0
+ ram4 : org = 0x00000000, len = 0
+ ram5 : org = 0x00000000, len = 0
+ ram6 : org = 0x00000000, len = 0
+ ram7 : org = 0x00000000, len = 0
+}
+
+/* For each data/text section two region are defined, a virtual region
+ and a load region (_LMA suffix).*/
+
+/* Flash region to be used for exception vectors.*/
+REGION_ALIAS("VECTORS_FLASH", flash0);
+REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
+
+/* Flash region to be used for constructors and destructors.*/
+REGION_ALIAS("XTORS_FLASH", flash0);
+REGION_ALIAS("XTORS_FLASH_LMA", flash0);
+
+/* Flash region to be used for code text.*/
+REGION_ALIAS("TEXT_FLASH", flash0);
+REGION_ALIAS("TEXT_FLASH_LMA", flash0);
+
+/* Flash region to be used for read only data.*/
+REGION_ALIAS("RODATA_FLASH", flash0);
+REGION_ALIAS("RODATA_FLASH_LMA", flash0);
+
+/* Flash region to be used for various.*/
+REGION_ALIAS("VARIOUS_FLASH", flash0);
+REGION_ALIAS("VARIOUS_FLASH_LMA", flash0);
+
+/* Flash region to be used for RAM(n) initialization data.*/
+REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0);
+
+/* RAM region to be used for Main stack. This stack accommodates the processing
+ of all exceptions and interrupts.*/
+REGION_ALIAS("MAIN_STACK_RAM", ram0);
+
+/* RAM region to be used for the process stack. This is the stack used by
+ the main() function.*/
+REGION_ALIAS("PROCESS_STACK_RAM", ram0);
+
+/* RAM region to be used for data segment.*/
+REGION_ALIAS("DATA_RAM", ram0);
+REGION_ALIAS("DATA_RAM_LMA", flash0);
+
+/* RAM region to be used for BSS segment.*/
+REGION_ALIAS("BSS_RAM", ram0);
+
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
+/* Generic rules inclusion.*/
+INCLUDE rules.ld
diff --git a/keyboards/anomalykb/a65i/keymaps/via/config.h b/keyboards/anomalykb/a65i/keymaps/via/config.h
deleted file mode 100644
index e352e425678..00000000000
--- a/keyboards/anomalykb/a65i/keymaps/via/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2021 Lfgberg
- *
- * 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 DYNAMIC_KEYMAP_LAYER_COUNT 2
diff --git a/keyboards/anomalykb/a65i/keymaps/via/keymap.c b/keyboards/anomalykb/a65i/keymaps/via/keymap.c
deleted file mode 100644
index b620124b937..00000000000
--- a/keyboards/anomalykb/a65i/keymaps/via/keymap.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Copyright 2021 Lfgberg
- *
- * 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] = {
-/* Default Layer
- * ,----------------------------------------------------------------.
- * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Home|
- * |----------------------------------------------------------------|
- * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp|
- * |----------------------------------------------------------------|
- * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn|
- * |----------------------------------------------------------------|
- * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del |
- * |----------------------------------------------------------------|
- * |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig |
- * `----------------------------------------------------------------'
- */
-
-[0] = LAYOUT_65_ansi_blocker(
- 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_PSCR,
- 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_ENT, KC_PGDN,
- 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_DEL,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
-
- /* Layer One
- * ,----------------------------------------------------------------.
- * |RST| F1| F2| F3| F4| F5| F6| F7| F8| F9| F0|F11|F12|Backsp |Home|
- * |----------------------------------------------------------------|
- * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp|
- * |----------------------------------------------------------------|
- * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn|
- * |----------------------------------------------------------------|
- * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del |
- * |----------------------------------------------------------------|
- * |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig |
- * `----------------------------------------------------------------'
- */
-
- [1] = LAYOUT_65_ansi_blocker(
- QK_BOOT, 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_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/anomalykb/a65i/keymaps/via/rules.mk b/keyboards/anomalykb/a65i/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc9..00000000000
--- a/keyboards/anomalykb/a65i/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/aos/tkl/keymaps/default/keymap.c b/keyboards/aos/tkl/keymaps/default/keymap.c
index 5893d12af46..18d52371ad6 100644
--- a/keyboards/aos/tkl/keymaps/default/keymap.c
+++ b/keyboards/aos/tkl/keymaps/default/keymap.c
@@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_M_B, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI,
- _______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_VAI
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, UG_HUEU,
+ _______, _______, _______, _______, _______, UG_SATD, UG_HUED, UG_VALU
),
};
diff --git a/keyboards/aos/tkl/keymaps/via/keymap.c b/keyboards/aos/tkl/keymaps/via/keymap.c
deleted file mode 100644
index 748a921180f..00000000000
--- a/keyboards/aos/tkl/keymaps/via/keymap.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright 2020 Rys Sommefeldt
- *
- * 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_tkl_iso_wkl(
- 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_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_DEL, KC_END, 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_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,
- KC_LCTL, KC_LALT, KC_SPC, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [1] = LAYOUT_tkl_iso_wkl(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_M_B, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI,
- _______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_VAI
- ),
- [2] = LAYOUT_tkl_iso_wkl(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [3] = LAYOUT_tkl_iso_wkl(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
- ),
-};
diff --git a/keyboards/aos/tkl/keymaps/via/rules.mk b/keyboards/aos/tkl/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/aos/tkl/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/aozora/keymaps/via/keymap.c b/keyboards/aozora/keymaps/via/keymap.c
deleted file mode 100644
index a6e20e0e4e8..00000000000
--- a/keyboards/aozora/keymaps/via/keymap.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 Salmon Cat 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 QMK_KEYBOARD_H
-#include "sendstring_japanese.h" // macro sendstring for jis keyboard マクロ文字列送信時に日本語キーボード設定での文字化け回避
-
-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_INT3, KC_BSPC, KC_PSCR, 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_DEL, 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_PIPE, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP, MO(1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [1] = LAYOUT_all(
- 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_F13, KC_F14, KC_F15, KC_F16,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
-};
diff --git a/keyboards/aozora/keymaps/via/rules.mk b/keyboards/aozora/keymaps/via/rules.mk
deleted file mode 100644
index 32f462d06ca..00000000000
--- a/keyboards/aozora/keymaps/via/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-VIA_ENABLE = yes
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no
\ No newline at end of file
diff --git a/keyboards/arabica37/keymaps/default/config.h b/keyboards/arabica37/keymaps/default/config.h
index 5654f4daf4b..ff8c9caffc4 100644
--- a/keyboards/arabica37/keymaps/default/config.h
+++ b/keyboards/arabica37/keymaps/default/config.h
@@ -22,12 +22,6 @@ along with this program. If not, see .
//#define USE_MATRIX_I2C
-/* Select hand configuration */
-
-#define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
-
#define QUICK_TAP_TERM 0
#define TAPPING_TERM 170
diff --git a/keyboards/arabica37/keymaps/default/keymap.c b/keyboards/arabica37/keymaps/default/keymap.c
index e15e872d025..44ec007178d 100644
--- a/keyboards/arabica37/keymaps/default/keymap.c
+++ b/keyboards/arabica37/keymaps/default/keymap.c
@@ -61,11 +61,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[_ADJUST] = LAYOUT(
//,-----------------------------------------------. ,-----------------------------------------------.
- KC_TRNS, RGBRST,RGB_TOG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_TRNS, RGBRST,UG_TOGG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
//|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- KC_TRNS,RGB_HUI,RGB_SAI,RGB_VAI,AG_SWAP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_TRNS,UG_HUEU,UG_SATU,UG_VALU,AG_SWAP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
//|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- KC_TRNS,RGB_HUD,RGB_SAD,RGB_VAD,AG_NORM, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_TRNS,UG_HUED,UG_SATD,UG_VALD,AG_NORM, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
//|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,
//|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
@@ -116,7 +116,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return false;
break;
- case RGB_MOD:
+ case QK_UNDERGLOW_TOGGLE:
#ifdef RGBLIGHT_ENABLE
if (record->event.pressed) {
rgblight_mode(RGB_current_mode);
diff --git a/keyboards/arabica37/rev1/keyboard.json b/keyboards/arabica37/rev1/keyboard.json
index 710a377ab9a..63c4fe2940e 100644
--- a/keyboards/arabica37/rev1/keyboard.json
+++ b/keyboards/arabica37/rev1/keyboard.json
@@ -21,7 +21,9 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D2"
+ "serial": {
+ "pin": "D2"
+ }
},
"rgblight": {
"led_count": 50,
diff --git a/keyboards/archerkeyboard/desire65/keymaps/via/keymap.c b/keyboards/archerkeyboard/desire65/keymaps/via/keymap.c
deleted file mode 100644
index ef19ddca0db..00000000000
--- a/keyboards/archerkeyboard/desire65/keymaps/via/keymap.c
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright 2024 ArcherKeyboard (archerkeyboard2022@gmail.com)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [0] = LAYOUT_65_ansi_blocker_tsangan_split_bs(
- 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_HOME,
- 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_END,
- 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_PGUP,
- 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_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT
- ),
-
- [1] = LAYOUT_65_ansi_blocker_tsangan_split_bs(
- 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_INS, _______, KC_PSCR, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLU, _______,
- _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
- ),
-
-};
diff --git a/keyboards/archerkeyboard/desire65/keymaps/via/rules.mk b/keyboards/archerkeyboard/desire65/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/archerkeyboard/desire65/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/archetype/minervalx/keymaps/via/keymap.c b/keyboards/archetype/minervalx/keymaps/via/keymap.c
deleted file mode 100644
index c52c7f4c1e1..00000000000
--- a/keyboards/archetype/minervalx/keymaps/via/keymap.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright 2024 Archetype Made, Inc.
- *
- * 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(
- 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_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_RSFT,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL
- ),
- [1] = LAYOUT(
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/archetype/minervalx/keymaps/via/rules.mk b/keyboards/archetype/minervalx/keymaps/via/rules.mk
deleted file mode 100644
index 43061db1dd4..00000000000
--- a/keyboards/archetype/minervalx/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/ares/keyboard.json b/keyboards/ares/keyboard.json
index 38945657027..f1e650397eb 100644
--- a/keyboards/ares/keyboard.json
+++ b/keyboards/ares/keyboard.json
@@ -52,9 +52,24 @@
"processor": "atmega32a",
"bootloader": "bootloadhid",
"layout_aliases": {
- "LAYOUT": "LAYOUT_all"
+ "LAYOUT": "LAYOUT_all",
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
- "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"],
+ "community_layouts": [
+ "60_ansi",
+ "60_ansi_split_bs_rshift",
+ "60_ansi_tsangan",
+ "60_ansi_tsangan_split_bs_rshift",
+ "60_ansi_wkl",
+ "60_ansi_wkl_split_bs_rshift",
+ "60_hhkb",
+ "60_iso",
+ "60_iso_split_bs_rshift",
+ "60_iso_tsangan",
+ "60_iso_tsangan_split_bs_rshift",
+ "60_iso_wkl",
+ "60_iso_wkl_split_bs_rshift"
+ ],
"layouts": {
"LAYOUT_all": {
"layout": [
@@ -337,7 +352,7 @@
{"matrix": [0, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [4, 0], "x": 0, "y": 0},
{"matrix": [4, 1], "x": 1, "y": 0},
diff --git a/keyboards/ares/keymaps/default/keymap.c b/keyboards/ares/keymaps/default/keymap.c
index c7fcb2dd1a8..4f0f76cd557 100644
--- a/keyboards/ares/keymaps/default/keymap.c
+++ b/keyboards/ares/keymaps/default/keymap.c
@@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL
),
[_FN] = LAYOUT_all(
- RGB_MOD, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
+ UG_NEXT, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
diff --git a/keyboards/argo_works/ishi/80/mk0_avr/keymaps/via/keymap.c b/keyboards/argo_works/ishi/80/mk0_avr/keymaps/via/keymap.c
deleted file mode 100644
index f0c0cfad96b..00000000000
--- a/keyboards/argo_works/ishi/80/mk0_avr/keymaps/via/keymap.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2022 Jason Devadoss (@jasonj2232)
- *
- * 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
-
-enum custom_layers {
- BL,
- UL,
- TL,
- FL,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [BL] = LAYOUT(
- KC_PMNS, KC_PAST, KC_PSLS, KC_NUM, 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_PPLS, KC_P9, KC_P8, KC_P7, 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_P6, KC_P5, KC_P4, KC_CAPS_LOCK, 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_PENT, KC_P3, KC_P2, KC_P1, 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_PDOT, KC_P0, KC_LCTL, KC_LGUI, LT(1, KC_LALT), KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_AUDIO_MUTE
-
- ),
-
- [UL] = LAYOUT(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_GRAVE, 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_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_PSCR, KC_SCRL, KC_PAUS, 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_UP,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT,KC_DOWN, KC_DOWN, KC_MPLY
- ),
-
- [TL] = LAYOUT(
- 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, 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
- ),
-
- [FL] = LAYOUT(
- 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, 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/argo_works/ishi/80/mk0_avr/keymaps/via/rules.mk b/keyboards/argo_works/ishi/80/mk0_avr/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3e..00000000000
--- a/keyboards/argo_works/ishi/80/mk0_avr/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/via/keymap.c b/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/via/keymap.c
deleted file mode 100644
index bb50ac3c9db..00000000000
--- a/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/via/keymap.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Copyright 2022 Jason Devadoss (@jasonj2232)
- *
- * 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
-
-enum custom_layers {
- BL,
- UL,
- TL,
- FL,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [BL] = LAYOUT(
- KC_PMNS, KC_PAST, KC_PSLS, KC_NUM, 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_PPLS, KC_P9, KC_P8, KC_P7, 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_P6, KC_P5, KC_P4, KC_CAPS_LOCK, 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_PENT, KC_P3, KC_P2, KC_P1, 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_PDOT, KC_P0, KC_LCTL, KC_LGUI, LT(1, KC_LALT), KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_AUDIO_MUTE
-
- ),
-
- [UL] = LAYOUT(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_GRAVE, 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_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_PSCR, KC_SCRL, KC_PAUS, 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_UP,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT,KC_DOWN, KC_RIGHT, KC_MPLY
- ),
-
- [TL] = LAYOUT(
- 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, 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
- ),
-
- [FL] = LAYOUT(
- 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, 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
- ),
-};
-
-#ifdef ENCODER_MAP_ENABLE
- const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [BL] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
- [UL] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) },
- [TL] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
- [FL] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
- };
-#endif
\ No newline at end of file
diff --git a/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/via/rules.mk b/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/via/rules.mk
deleted file mode 100644
index 6ccd6d91943..00000000000
--- a/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-ENCODER_MAP_ENABLE = yes
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/argyle/keyboard.json b/keyboards/argyle/keyboard.json
index 82dbe1562af..a7bfc335df9 100755
--- a/keyboards/argyle/keyboard.json
+++ b/keyboards/argyle/keyboard.json
@@ -45,7 +45,7 @@
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
- "60_tsangan_hhkb",
+ "60_ansi_tsangan_split_bs_rshift",
"60_ansi_wkl",
"60_ansi_wkl_split_bs_rshift",
"60_hhkb",
@@ -56,6 +56,9 @@
"60_iso_wkl",
"60_iso_wkl_split_bs_rshift"
],
+ "layout_aliases": {
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
+ },
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
@@ -837,7 +840,7 @@
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
diff --git a/keyboards/argyle/keymaps/default/keymap.c b/keyboards/argyle/keymaps/default/keymap.c
index e4cdf5625df..e64532f31c4 100644
--- a/keyboards/argyle/keymaps/default/keymap.c
+++ b/keyboards/argyle/keymaps/default/keymap.c
@@ -29,6 +29,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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_TRNS, KC_UP, 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_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
};
diff --git a/keyboards/argyle/keymaps/iso/keymap.c b/keyboards/argyle/keymaps/iso/keymap.c
index fe2de3a3e58..13af158db40 100644
--- a/keyboards/argyle/keymaps/iso/keymap.c
+++ b/keyboards/argyle/keymaps/iso/keymap.c
@@ -29,6 +29,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ,
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
};
diff --git a/keyboards/argyle/keymaps/via/keymap.c b/keyboards/argyle/keymaps/via/keymap.c
deleted file mode 100644
index 4efbdb2f306..00000000000
--- a/keyboards/argyle/keymaps/via/keymap.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright 2020 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 QMK_KEYBOARD_H
-
-// This keymaps is used for VIA, it reflects the default keymap.
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = LAYOUT_all( /* Base */
- 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_DEL,
- 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_BSLS, 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, KC_RSFT, MO(1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1) , KC_APP, KC_RCTL),
-
-[1] = LAYOUT_all( /* FN */
- 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_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, 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/argyle/keymaps/via/rules.mk b/keyboards/argyle/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/argyle/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/argyle/matrix.c b/keyboards/argyle/matrix.c
index d435b368c22..661310ade0d 100644
--- a/keyboards/argyle/matrix.c
+++ b/keyboards/argyle/matrix.c
@@ -24,21 +24,21 @@ along with this program. If not, see .
static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS;
static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
-static inline void setPinOutput_writeLow(pin_t pin) {
+static inline void gpio_atomic_set_pin_output_low(pin_t pin) {
ATOMIC_BLOCK_FORCEON {
gpio_set_pin_output(pin);
gpio_write_pin_low(pin);
}
}
-static inline void setPinOutput_writeHigh(pin_t pin) {
+static inline void gpio_atomic_set_pin_output_high(pin_t pin) {
ATOMIC_BLOCK_FORCEON {
gpio_set_pin_output(pin);
gpio_write_pin_high(pin);
}
}
-static inline void setPinInputHigh_atomic(pin_t pin) {
+static inline void gpio_atomic_set_pin_input_high(pin_t pin) {
ATOMIC_BLOCK_FORCEON {
gpio_set_pin_input_high(pin);
}
@@ -55,7 +55,7 @@ static inline uint8_t readMatrixPin(pin_t pin) {
static bool select_row(uint8_t row) {
pin_t pin = row_pins[row];
if (pin != NO_PIN) {
- setPinOutput_writeLow(pin);
+ gpio_atomic_set_pin_output_low(pin);
return true;
}
return false;
@@ -64,7 +64,7 @@ static bool select_row(uint8_t row) {
static void unselect_row(uint8_t row) {
pin_t pin = row_pins[row];
if (pin != NO_PIN) {
- setPinInputHigh_atomic(pin);
+ gpio_atomic_set_pin_input_high(pin);
}
}
@@ -84,7 +84,7 @@ static void init_pins(void) {
for (uint8_t x = 0; x < MATRIX_COLS; x++) {
if (col_pins[x] != NO_PIN) {
- setPinInputHigh_atomic(col_pins[x]);
+ gpio_atomic_set_pin_input_high(col_pins[x]);
}
}
}
diff --git a/keyboards/arisu/keymaps/via/keymap.c b/keyboards/arisu/keymaps/via/keymap.c
deleted file mode 100644
index d19f4ad3b4e..00000000000
--- a/keyboards/arisu/keymaps/via/keymap.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Copyright 2019 Fate
- *
- * 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(
- 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_BSLS, KC_GRV, 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_BSPC, 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, MO(1),
- 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_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [1] = LAYOUT(
- _______, 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, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [2] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [3] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/arisu/keymaps/via/rules.mk b/keyboards/arisu/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3e..00000000000
--- a/keyboards/arisu/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/arrayperipherals/1x4p1/keymaps/via/keymap.c b/keyboards/arrayperipherals/1x4p1/keymaps/via/keymap.c
deleted file mode 100644
index 816b17844cf..00000000000
--- a/keyboards/arrayperipherals/1x4p1/keymaps/via/keymap.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
-Copyright 2020 David Doan
-
-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
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (index == 0) { /* First encoder */
- if (clockwise) {
- tap_code(KC_MS_WH_UP);
- } else {
- tap_code(KC_MS_WH_DOWN);
- }
- }
- return true;
-}
-
-//
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //button closest to usb is first
- [0] = LAYOUT_ortho_1x5(
- KC_ESC, KC_TAB, KC_LSFT, KC_LCTL, TG(1)
- ),
-
- [1] = LAYOUT_ortho_1x5(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(2)
- ),
- [2] = LAYOUT_ortho_1x5(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(3)
- ),
- [3] = LAYOUT_ortho_1x5(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(0)
- )
-};
diff --git a/keyboards/arrayperipherals/1x4p1/keymaps/via/rules.mk b/keyboards/arrayperipherals/1x4p1/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/arrayperipherals/1x4p1/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/arrayperipherals/vector/keyboard.json b/keyboards/arrayperipherals/vector/keyboard.json
new file mode 100644
index 00000000000..505199831d5
--- /dev/null
+++ b/keyboards/arrayperipherals/vector/keyboard.json
@@ -0,0 +1,40 @@
+{
+ "manufacturer": "Array Peripherals",
+ "keyboard_name": "The Vector",
+ "maintainer": "daviddoan",
+ "bootloader": "atmel-dfu",
+ "encoder": {
+ "rotary": [
+ {"pin_a": "F0", "pin_b": "F1"}
+ ]
+ },
+ "features": {
+ "bootmagic": true,
+ "encoder": true,
+ "extrakey": true,
+ "mousekey": true
+ },
+ "matrix_pins": {
+ "direct": [
+ ["D4", "C6", "D7", "E6", "F7"]
+ ]
+ },
+ "processor": "atmega32u4",
+ "url": "https://arrayperipherals.com",
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x4F47",
+ "vid": "0x4152"
+ },
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"label": "k01", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "k02", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "k03", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "k04", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "k05", "matrix": [0, 4], "x": 4.25, "y": 0}
+ ]
+ }
+ }
+}
diff --git a/keyboards/arrayperipherals/vector/keymaps/default/keymap.c b/keyboards/arrayperipherals/vector/keymaps/default/keymap.c
new file mode 100644
index 00000000000..e290e370764
--- /dev/null
+++ b/keyboards/arrayperipherals/vector/keymaps/default/keymap.c
@@ -0,0 +1,36 @@
+/*
+Copyright 2024 David Doan
+
+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(
+ KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, TG(1)
+ ),
+
+ [1] = LAYOUT(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(1)
+ ),
+};
+
+#if defined(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_TRNS, KC_TRNS)},
+};
+#endif // ENCODER_MAP_ENABLE
\ No newline at end of file
diff --git a/keyboards/arrayperipherals/vector/keymaps/default/rules.mk b/keyboards/arrayperipherals/vector/keymaps/default/rules.mk
new file mode 100644
index 00000000000..a40474b4d5c
--- /dev/null
+++ b/keyboards/arrayperipherals/vector/keymaps/default/rules.mk
@@ -0,0 +1 @@
+ENCODER_MAP_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/arrayperipherals/vector/readme.md b/keyboards/arrayperipherals/vector/readme.md
new file mode 100644
index 00000000000..dee7dc8f9a1
--- /dev/null
+++ b/keyboards/arrayperipherals/vector/readme.md
@@ -0,0 +1,26 @@
+# The Vector Macropad
+
+
+
+A small (1x4) macropad with a rotary. [More info at arrayperipherals.com](https://www.arrayperipherals.com/)
+
+* Keyboard Maintainer: [David Doan](https://github.com/daviddoan)
+* Hardware Supported: Custom PCB with Atmega32u4 processor
+* Hardware Availability: [arrayperipherals.com](https://www.arrayperipherals.com/)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make arrayperipherals/vector:default
+
+Flashing example for this keyboard:
+
+ make arrayperipherals/vector: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 2 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (left most from the rotary)
+* **Physical reset button**: Briefly double press the button on the back of the PCB
\ No newline at end of file
diff --git a/keyboards/arrowmechanics/wings/keyboard.json b/keyboards/arrowmechanics/wings/keyboard.json
index 1da4077baa8..f0f0a9c4428 100644
--- a/keyboards/arrowmechanics/wings/keyboard.json
+++ b/keyboards/arrowmechanics/wings/keyboard.json
@@ -188,6 +188,9 @@
},
"split": {
"enabled": true,
+ "serial": {
+ "driver": "vendor"
+ },
"transport": {
"sync": {
"layer_state": true,
diff --git a/keyboards/arrowmechanics/wings/keymaps/default/keymap.c b/keyboards/arrowmechanics/wings/keymaps/default/keymap.c
index 949219b820b..6e0a6a18dcb 100644
--- a/keyboards/arrowmechanics/wings/keymaps/default/keymap.c
+++ b/keyboards/arrowmechanics/wings/keymaps/default/keymap.c
@@ -10,7 +10,7 @@ enum layers {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT(
KC_VOLU, 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_EQL, KC_PSCR, KC_DEL,
- KC_VOLD, KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, RGB_MOD, KC_BTN1, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC,
+ KC_VOLD, KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, RM_NEXT, KC_BTN1, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC,
KC_MPLY, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, C(KC_C), C(KC_V), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
KC_MNXT, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, C(KC_Z), C(KC_Y), KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_MPRV, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_HOME,
@@ -20,6 +20,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [BASE] = { ENCODER_CCW_CW(RGB_HUI, RGB_HUD), ENCODER_CCW_CW(KC_WH_U, KC_WH_D) },
+ [BASE] = { ENCODER_CCW_CW(RM_HUEU, RM_HUED), ENCODER_CCW_CW(KC_WH_U, KC_WH_D) },
};
#endif
diff --git a/keyboards/arrowmechanics/wings/rules.mk b/keyboards/arrowmechanics/wings/rules.mk
deleted file mode 100644
index 161ec22b16e..00000000000
--- a/keyboards/arrowmechanics/wings/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SERIAL_DRIVER = vendor
diff --git a/keyboards/artemis/paragon/keymaps/via/keymap.c b/keyboards/artemis/paragon/keymaps/via/keymap.c
deleted file mode 100644
index 47e269c78ab..00000000000
--- a/keyboards/artemis/paragon/keymaps/via/keymap.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-Copyright 2023 Sleepdealer
-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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
- 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_HOME,
- 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_NUBS, KC_ENT, KC_PGDN,
- KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- )
-};
-
-#if defined(ENCODER_MAP_ENABLE)
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }
-};
-#endif
diff --git a/keyboards/artemis/paragon/keymaps/via/rules.mk b/keyboards/artemis/paragon/keymaps/via/rules.mk
deleted file mode 100644
index f1adcab005e..00000000000
--- a/keyboards/artemis/paragon/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/artifact/lvl/rev_hs01/keymaps/via/keymap.c b/keyboards/artifact/lvl/rev_hs01/keymaps/via/keymap.c
deleted file mode 100644
index 0cca681ba67..00000000000
--- a/keyboards/artifact/lvl/rev_hs01/keymaps/via/keymap.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright 2024 Yiancar-Designs
- *
- * 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_tkl_ansi_tsangan( /* Base */
- 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_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_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_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT)
-};
diff --git a/keyboards/artifact/lvl/rev_hs01/keymaps/via/rules.mk b/keyboards/artifact/lvl/rev_hs01/keymaps/via/rules.mk
deleted file mode 100755
index 1e5b99807cb..00000000000
--- a/keyboards/artifact/lvl/rev_hs01/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/ashwing66/keymaps/default/keymap.c b/keyboards/ashwing66/keymaps/default/keymap.c
index 2b317e19eba..304f888742b 100644
--- a/keyboards/ashwing66/keymaps/default/keymap.c
+++ b/keyboards/ashwing66/keymaps/default/keymap.c
@@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LBRC,KC_PSCR,KC_CAPS ,MO(_LAYERB),KC_LGUI ,KC_LALT ,KC_SPC ,KC_PGDN ,KC_PGUP ,KC_ENT ,KC_BSPC ,MO(_LAYERC),KC_INS ,KC_DEL ,KC_BSLS ,KC_RBRC
),
[_LAYERB] = LAYOUT_5x16(
- KC_ESC ,RGB_TOG,RGB_RMOD,RGB_MOD ,RGB_VAD ,RGB_VAI ,RGB_SPD ,RGB_SPI ,RGB_HUD ,RGB_HUI ,RGB_SAD ,RGB_SAI ,
+ KC_ESC ,RM_TOGG,RM_PREV ,RM_NEXT ,RM_VALD ,RM_VALU ,RM_SPDD ,RM_SPDU ,RM_HUED ,RM_HUEU ,RM_SATD ,RM_SATU ,
KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_BTN1 ,KC_MS_U ,KC_BTN2 ,KC_P ,KC_EQL ,
KC_LCTL,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_SCLN ,KC_QUOT ,
KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LBRC ,KC_MUTE ,KC_RBRC ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT ,
@@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_LAYERA] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
- [_LAYERB] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI)},
- [_LAYERC] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}
+ [_LAYERB] = { ENCODER_CCW_CW(RM_HUED, RM_HUEU)},
+ [_LAYERC] = { ENCODER_CCW_CW(RM_VALD, RM_VALU)}
};
#endif
diff --git a/keyboards/ashwing66/keymaps/via/keymap.c b/keyboards/ashwing66/keymaps/via/keymap.c
deleted file mode 100644
index 2b317e19eba..00000000000
--- a/keyboards/ashwing66/keymaps/via/keymap.c
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright 2023 James GzowskiMO(_LAYERB)
-// SPDX-License-Identifier: GPL-2.0-or-later
-#include QMK_KEYBOARD_H
-
-enum custom_layer {
- _LAYERA,
- _LAYERB,
- _LAYERC,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_LAYERA] = LAYOUT_5x16(
- KC_ESC ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_GRV ,
- KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_MINS ,
- 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_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LBRC ,KC_MUTE ,KC_RBRC ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT ,
- KC_LBRC,KC_PSCR,KC_CAPS ,MO(_LAYERB),KC_LGUI ,KC_LALT ,KC_SPC ,KC_PGDN ,KC_PGUP ,KC_ENT ,KC_BSPC ,MO(_LAYERC),KC_INS ,KC_DEL ,KC_BSLS ,KC_RBRC
-),
- [_LAYERB] = LAYOUT_5x16(
- KC_ESC ,RGB_TOG,RGB_RMOD,RGB_MOD ,RGB_VAD ,RGB_VAI ,RGB_SPD ,RGB_SPI ,RGB_HUD ,RGB_HUI ,RGB_SAD ,RGB_SAI ,
- KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_BTN1 ,KC_MS_U ,KC_BTN2 ,KC_P ,KC_EQL ,
- KC_LCTL,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_SCLN ,KC_QUOT ,
- KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LBRC ,KC_MUTE ,KC_RBRC ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT ,
- KC_LBRC,KC_PSCR,KC_CAPS ,_______ ,KC_LGUI ,KC_LALT ,KC_SPC ,KC_END ,KC_HOME ,KC_ENT ,KC_BSPC ,_______ ,KC_INS ,KC_DEL ,KC_BSLS ,KC_RBRC
-),
- [_LAYERC] = LAYOUT_5x16(
- KC_ESC ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_GRV ,
- KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_U ,KC_UP ,KC_O ,KC_P ,KC_EQL ,
- KC_LCTL,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_SCLN ,KC_QUOT ,
- KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LBRC ,KC_MUTE ,KC_RBRC ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT ,
- KC_F11 ,KC_PSCR,KC_CAPS ,_______ ,KC_LGUI ,KC_LALT ,KC_SPC ,KC_END ,KC_HOME ,KC_ENT ,KC_BSPC ,_______ ,KC_INS ,KC_DEL ,KC_BSLS ,KC_F12
-)
-};
-
-#if defined(ENCODER_MAP_ENABLE)
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [_LAYERA] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
- [_LAYERB] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI)},
- [_LAYERC] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}
-};
-#endif
diff --git a/keyboards/ashwing66/keymaps/via/rules.mk b/keyboards/ashwing66/keymaps/via/rules.mk
deleted file mode 100644
index f1adcab005e..00000000000
--- a/keyboards/ashwing66/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/ask55/keymaps/default/keymap.c b/keyboards/ask55/keymaps/default/keymap.c
index e767e25b634..816836997c7 100644
--- a/keyboards/ask55/keymaps/default/keymap.c
+++ b/keyboards/ask55/keymaps/default/keymap.c
@@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCAP, KC_LALT, KC_LGUI, KC_GRV, KC_SPC, KC_NUBS, KC_LEFT, KC_RGHT, KC_DOWN, KC_UP
),
[1] = LAYOUT( /* Momentary Layer 1 */
- 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,RGB_TOG,
+ 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,UG_TOGG,
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/atlantis/ak81_ve/keymaps/default/keymap.c b/keyboards/atlantis/ak81_ve/keymaps/default/keymap.c
index 59c23c97d36..afe041d515e 100644
--- a/keyboards/atlantis/ak81_ve/keymaps/default/keymap.c
+++ b/keyboards/atlantis/ak81_ve/keymaps/default/keymap.c
@@ -27,11 +27,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
[1] = LAYOUT(
- KC_SYSTEM_SLEEP, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, RGB_TOG,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI,
- _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, RGB_VAI,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD,
- _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, RGB_HUI, RGB_SPD,
- _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI)
+ KC_SYSTEM_SLEEP, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, RM_TOGG,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU,
+ _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, RM_VALU,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALD,
+ _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, RM_HUEU, RM_SPDD,
+ _______, _______, _______, _______, _______, _______, RM_SATD, RM_HUED, RM_SATU)
};
\ No newline at end of file
diff --git a/keyboards/atlantis/ak81_ve/keymaps/via/keymap.c b/keyboards/atlantis/ak81_ve/keymaps/via/keymap.c
deleted file mode 100644
index 08001a6f998..00000000000
--- a/keyboards/atlantis/ak81_ve/keymaps/via/keymap.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Copyright 2022 @fOmey
- *
- * 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(
- 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_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_HOME,
- 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_ENT, KC_PGDN,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
-
- [1] = LAYOUT(
- KC_SYSTEM_SLEEP, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, RGB_TOG,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI,
- _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, RGB_VAI,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD,
- _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, RGB_HUI, RGB_SPD,
- _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_SAI),
-
- [2] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______),
-
- [3] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______)
-
-};
-
-#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(RGB_RMOD, RGB_MOD) },
- [2] = { ENCODER_CCW_CW(_______, _______) },
- [3] = { ENCODER_CCW_CW(_______, _______) },
-};
-#endif
diff --git a/keyboards/atlantis/ak81_ve/keymaps/via/rules.mk b/keyboards/atlantis/ak81_ve/keymaps/via/rules.mk
deleted file mode 100644
index f1adcab005e..00000000000
--- a/keyboards/atlantis/ak81_ve/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/atlantis/ps17/keymaps/default/keymap.c b/keyboards/atlantis/ps17/keymaps/default/keymap.c
index 36042fbb187..26fe6b30662 100644
--- a/keyboards/atlantis/ps17/keymaps/default/keymap.c
+++ b/keyboards/atlantis/ps17/keymaps/default/keymap.c
@@ -14,7 +14,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_KP_0, KC_PDOT
),
[1] = LAYOUT(
- RGB_MOD,
+ RM_NEXT,
TO(2), KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
@@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS
),
[2] = LAYOUT(
- RGB_MOD,
+ RM_NEXT,
TO(3), KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
@@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS
),
[3] = LAYOUT(
- RGB_MOD,
+ RM_NEXT,
TO(0), KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
@@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#if defined(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(RGB_HUI, RGB_HUD) },
+ [1] = { ENCODER_CCW_CW(RM_HUEU, RM_HUED) },
[2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
[3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
};
diff --git a/keyboards/atlantis/ps17/keymaps/via/keymap.c b/keyboards/atlantis/ps17/keymaps/via/keymap.c
deleted file mode 100644
index ff4bfdb336c..00000000000
--- a/keyboards/atlantis/ps17/keymaps/via/keymap.c
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright 2023 mjbogusz (@mjbogusz)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- // Default layer: numpad + volume control
- [0] = LAYOUT(
- KC_MUTE,
- TO(1), KC_PSLS, KC_PAST, KC_PMNS,
- KC_KP_7, KC_KP_8, KC_KP_9, KC_PPLS,
- KC_KP_4, KC_KP_5, KC_KP_6,
- KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT,
- KC_KP_0, KC_PDOT
- ),
- [1] = LAYOUT(
- RGB_MOD,
- TO(2), 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
- ),
- [2] = LAYOUT(
- KC_TRNS,
- TO(3), 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
- ),
- [3] = LAYOUT(
- KC_TRNS,
- TO(0), 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
- ),
-};
-
-#if defined(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(RGB_HUI, RGB_HUD) },
- [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
- [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
-};
-#endif
diff --git a/keyboards/atlantis/ps17/keymaps/via/rules.mk b/keyboards/atlantis/ps17/keymaps/via/rules.mk
deleted file mode 100644
index 715838ecc5d..00000000000
--- a/keyboards/atlantis/ps17/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-ENCODER_MAP_ENABLE = yes
-VIA_ENABLE = yes
diff --git a/keyboards/atlas_65/keymaps/via/keymap.c b/keyboards/atlas_65/keymaps/via/keymap.c
deleted file mode 100644
index 81e538d3100..00000000000
--- a/keyboards/atlas_65/keymaps/via/keymap.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Copyright 2020 Joshua 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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(
- 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_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_LNUM,
- 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_UP,
- KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
- ) ,
-
- [1] = LAYOUT(
- 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_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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
- ) ,
-
- [2] = LAYOUT(
- 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, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ) ,
- [3] = LAYOUT(
- 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, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- )
-} ;
diff --git a/keyboards/atlas_65/keymaps/via/rules.mk b/keyboards/atlas_65/keymaps/via/rules.mk
deleted file mode 100644
index 43061db1dd4..00000000000
--- a/keyboards/atlas_65/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/atreus/astar_mirrored/config.h b/keyboards/atreus/astar_mirrored/config.h
deleted file mode 100644
index 3bd163dec35..00000000000
--- a/keyboards/atreus/astar_mirrored/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2019
- *
- * 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 PCBDOWN 1
diff --git a/keyboards/atreus/atreus.h b/keyboards/atreus/atreus.h
deleted file mode 100644
index 2a966b86414..00000000000
--- a/keyboards/atreus/atreus.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright 2019
- *
- * 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
-
-#include "quantum.h"
-#define ___ KC_NO
-
-// This a shortcut to help you visually see your layout.
-// The first section contains all of the arguments.
-// The second converts the arguments into a two-dimensional array.
-// In the PCBDOWN case we need to swap the middle two keys: k35 and k36.
-#if defined(PCBDOWN)
-#define LAYOUT( \
- k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
- k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
- k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
-) \
-{ \
- { k00, k01, k02, k03, k04, KC_NO, k05, k06, k07, k08, k09 }, \
- { k10, k11, k12, k13, k14, KC_NO, k15, k16, k17, k18, k19 }, \
- { k20, k21, k22, k23, k24, k36, k25, k26, k27, k28, k29 }, \
- { k30, k31, k32, k33, k34, k35, k37, k38, k39, k3a, k3b } \
-}
-#else
-#define LAYOUT( \
- k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
- k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
- k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
-) \
-{ \
- { k00, k01, k02, k03, k04, ___, k05, k06, k07, k08, k09 }, \
- { k10, k11, k12, k13, k14, ___, k15, k16, k17, k18, k19 }, \
- { k20, k21, k22, k23, k24, k35, k25, k26, k27, k28, k29 }, \
- { k30, k31, k32, k33, k34, k36, k37, k38, k39, k3a, k3b } \
-}
-#endif
diff --git a/keyboards/atreus/feather/config.h b/keyboards/atreus/feather/config.h
deleted file mode 100644
index 505296a5056..00000000000
--- a/keyboards/atreus/feather/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2019
- *
- * 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 OUTPUT_AUTO_ENABLE
diff --git a/keyboards/atreus/info.json b/keyboards/atreus/info.json
index a0f592105f1..1a33591ab56 100644
--- a/keyboards/atreus/info.json
+++ b/keyboards/atreus/info.json
@@ -23,58 +23,114 @@
"resync": true
}
},
+ "layout_aliases": {
+ "LAYOUT": "LAYOUT_pcb_up"
+ },
"layouts": {
- "LAYOUT": {
+ "LAYOUT_pcb_up": {
"layout": [
- {"x": 0, "y": 0.6},
- {"x": 1, "y": 0.35},
- {"x": 2, "y": 0},
- {"x": 3, "y": 0.35},
- {"x": 4, "y": 0.7},
+ {"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},
- {"x": 8, "y": 0.7},
- {"x": 9, "y": 0.35},
- {"x": 10, "y": 0},
- {"x": 11, "y": 0.35},
- {"x": 12, "y": 0.6},
+ {"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},
- {"x": 0, "y": 1.6},
- {"x": 1, "y": 1.35},
- {"x": 2, "y": 1},
- {"x": 3, "y": 1.35},
- {"x": 4, "y": 1.7},
+ {"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},
- {"x": 8, "y": 1.7},
- {"x": 9, "y": 1.35},
- {"x": 10, "y": 1},
- {"x": 11, "y": 1.35},
- {"x": 12, "y": 1.6},
+ {"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},
- {"x": 0, "y": 2.6},
- {"x": 1, "y": 2.35},
- {"x": 2, "y": 2},
- {"x": 3, "y": 2.35},
- {"x": 4, "y": 2.7},
+ {"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},
- {"x": 8, "y": 2.7},
- {"x": 9, "y": 2.35},
- {"x": 10, "y": 2},
- {"x": 11, "y": 2.35},
- {"x": 12, "y": 2.6},
+ {"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},
- {"x": 0, "y": 3.6},
- {"x": 1, "y": 3.35},
- {"x": 2, "y": 3},
- {"x": 3, "y": 3.35},
- {"x": 4, "y": 3.7},
- {"x": 5, "y": 2.95, "h": 1.5},
+ {"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},
- {"x": 7, "y": 2.95, "h": 1.5},
- {"x": 8, "y": 3.7},
- {"x": 9, "y": 3.35},
- {"x": 10, "y": 3},
- {"x": 11, "y": 3.35},
- {"x": 12, "y": 3.6}
+ {"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 ca1333230c9..e4588105372 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/via/keymap.c b/keyboards/atreus/keymaps/via/keymap.c
deleted file mode 100644
index 52740c5bad9..00000000000
--- a/keyboards/atreus/keymaps/via/keymap.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Copyright 2021 Leonardus Dipa
- *
- * 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
-
-// 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.
-enum custom_layers {
- _QW,
- _RS,
- _LW,
- _EM,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QW] = LAYOUT( /* 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 ,
- KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, MO(_RS), KC_MINS, KC_QUOT, KC_ENT
- ),
-
- /*
- * ! @ up { } || pgup 7 8 9 *
- * # left down right $ || pgdn 4 5 6 +
- * [ ] ( ) & || ` 1 2 3 \
- * lower insert super shift bksp ctrl || alt space fn . 0 =
- */
- [_RS] = LAYOUT( /* [> 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 ,
- TG(_LW), KC_INS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL ),
- /*
- * insert home up end pgup || up F7 F8 F9 F10
- * del left down right pgdn || down F4 F5 F6 F11
- * volup reset || F1 F2 F3 F12
- * voldn super shift bksp ctrl || alt space L0 prtsc scroll pause
- */
- [_LW] = LAYOUT( /* [> 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 ,
- KC_NO, KC_VOLD, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, TO(_QW), KC_PSCR, KC_SCRL, KC_PAUS ),
-
- [_EM] = LAYOUT( /* [> EMPTY <] */
- 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/atreus/keymaps/via/rules.mk b/keyboards/atreus/keymaps/via/rules.mk
deleted file mode 100644
index f75f41cf50e..00000000000
--- a/keyboards/atreus/keymaps/via/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-LTO_ENABLE=yes
-VIA_ENABLE = yes
-
-MOUSEKEY_ENABLE = no
diff --git a/keyboards/atreus/keymaps/workman/config.h b/keyboards/atreus/keymaps/workman/config.h
index cf0b5e2ac51..f75e442456b 100644
--- a/keyboards/atreus/keymaps/workman/config.h
+++ b/keyboards/atreus/keymaps/workman/config.h
@@ -1,3 +1,2 @@
#define TAPPING_TOGGLE 1
#define ONESHOT_TAP_TOGGLE 1
-#define PCBDOWN 1
diff --git a/keyboards/atreus/keymaps/workman/keymap.c b/keyboards/atreus/keymaps/workman/keymap.c
index c0633f6362b..e8b5b6b4e36 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 e614b4e2a0a..10c0ca1b22a 100644
--- a/keyboards/atreus/promicro/keyboard.json
+++ b/keyboards/atreus/promicro/keyboard.json
@@ -4,6 +4,5 @@
"rows": ["F4", "B2", "B4", "B5"]
},
"diode_direction": "COL2ROW",
- "processor": "atmega32u4",
- "bootloader": "caterina"
+ "development_board": "promicro"
}
diff --git a/keyboards/atreus/rules.mk b/keyboards/atreus/rules.mk
deleted file mode 100644
index d933cb327d6..00000000000
--- a/keyboards/atreus/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DEFAULT_FOLDER = atreus/astar
diff --git a/keyboards/atreus62/keymaps/via/keymap.c b/keyboards/atreus62/keymaps/via/keymap.c
deleted file mode 100644
index 408886f82c1..00000000000
--- a/keyboards/atreus62/keymaps/via/keymap.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright 2024 Tommi Pääkkö (@Glenf)
- *
- * 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
-
-enum layers {
- _DEFAULT,
- _NAV,
- _RESET,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_DEFAULT] = LAYOUT( /* qwerty */
- 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_BSLS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRC ,
- 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LBRC ,
- KC_LCTL, KC_LGUI, KC_LALT, KC_GRV, MO(_NAV),KC_BSPC, KC_DEL, KC_ENT, KC_SPC, KC_EQL, KC_MINS, KC_QUOT, KC_ENT, KC_RGUI
- ),
-
- [_NAV] = LAYOUT(
- TO(_DEFAULT), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11 ,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS ,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS ,
- TO(_RESET), 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
- ),
-
- [_RESET] = LAYOUT(
- TO(_DEFAULT), KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
- KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
- KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
- KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
- KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , QK_BOOT
- )
-
-};
diff --git a/keyboards/atreus62/keymaps/via/rules.mk b/keyboards/atreus62/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/atreus62/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/atreyu/rules.mk b/keyboards/atreyu/rules.mk
deleted file mode 100644
index 4daffe6b9d4..00000000000
--- a/keyboards/atreyu/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DEFAULT_FOLDER = atreyu/rev1
diff --git a/keyboards/atset/at1/keymaps/via/keymap.c b/keyboards/atset/at1/keymaps/via/keymap.c
deleted file mode 100644
index f4806baee55..00000000000
--- a/keyboards/atset/at1/keymaps/via/keymap.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * 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(
- KC_4
- ),
- [1] =
- LAYOUT(
- KC_NO
- ),
- [2] =
- LAYOUT(
- KC_NO
- ),
- [3] =
- LAYOUT(
- KC_NO
- )
-};
diff --git a/keyboards/atset/at12/keymaps/via/keymap.c b/keyboards/atset/at12/keymaps/via/keymap.c
deleted file mode 100644
index f42586dfbcd..00000000000
--- a/keyboards/atset/at12/keymaps/via/keymap.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * 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(
- KC_F10, KC_F11, KC_F12,
- KC_7, KC_8, KC_9,
- KC_4 , KC_5 , KC_6,
- KC_1 , KC_2 , KC_3
- ),
- [1] =
- LAYOUT(
- KC_NO , KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO,
- KC_NO , KC_NO, KC_NO,
- KC_NO , KC_NO, KC_NO
- ),
- [2] =
- LAYOUT(
- KC_NO , KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO,
- KC_NO , KC_NO, KC_NO,
- KC_NO , KC_NO, KC_NO
- ),
- [3] =
- LAYOUT(
- KC_NO , KC_NO, KC_NO,
- KC_NO , KC_NO, KC_NO,
- KC_NO , KC_NO, KC_NO,
- KC_NO , KC_NO, KC_NO
- ),
-};
diff --git a/keyboards/atset/at16/keymaps/via/keymap.c b/keyboards/atset/at16/keymaps/via/keymap.c
deleted file mode 100644
index 8ce781aac47..00000000000
--- a/keyboards/atset/at16/keymaps/via/keymap.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * 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_F10, KC_F11, KC_F12, KC_F5,
- KC_7, KC_8, KC_9, KC_F1,
- KC_4, KC_5, KC_6, KC_F2,
- KC_1, KC_2, KC_3, KC_F3
- ),
- [1] =
- LAYOUT_ortho_4x4(
- KC_NO , KC_NO, KC_NO, KC_NO,
- KC_NO , KC_NO, KC_NO, KC_NO,
- KC_NO , KC_NO, KC_NO, KC_NO,
- KC_NO , KC_NO, KC_NO, KC_NO
- ),
- [2] =
- LAYOUT_ortho_4x4(
- KC_NO , KC_NO, KC_NO, KC_NO,
- KC_NO , KC_NO, KC_NO, KC_NO,
- KC_NO , KC_NO, KC_NO, KC_NO,
- KC_NO , KC_NO, KC_NO, KC_NO
- ),
- [3] =
- LAYOUT_ortho_4x4(
- KC_NO , KC_NO, KC_NO, KC_NO,
- KC_NO , KC_NO, KC_NO, KC_NO,
- KC_NO , KC_NO, KC_NO, KC_NO,
- KC_NO , KC_NO, KC_NO, KC_NO
- ),
-};
diff --git a/keyboards/atset/at2/keyboard.json b/keyboards/atset/at2/keyboard.json
new file mode 100644
index 00000000000..d612505c900
--- /dev/null
+++ b/keyboards/atset/at2/keyboard.json
@@ -0,0 +1,32 @@
+{
+ "manufacturer": "Atset",
+ "keyboard_name": "AT2",
+ "maintainer": "qmk",
+ "board": "GENERIC_RP_RP2040",
+ "processor": "RP2040",
+ "bootloader": "rp2040",
+ "diode_direction": "COL2ROW",
+ "usb": {
+ "vid": "0x4141",
+ "pid": "0x6174",
+ "device_version": "1.0.0"
+ },
+ "features": {
+ "bootmagic": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true
+ },
+ "matrix_pins": {
+ "cols": ["GP19", "GP20"],
+ "rows": ["GP28"]
+ },
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1, "y": 0}
+ ]
+ }
+ }
+}
diff --git a/keyboards/atset/at2/keymaps/default/keymap.c b/keyboards/atset/at2/keymaps/default/keymap.c
new file mode 100644
index 00000000000..bdecf93a57a
--- /dev/null
+++ b/keyboards/atset/at2/keymaps/default/keymap.c
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ KC_MUTE, KC_MPLY
+ )
+};
+
diff --git a/keyboards/atset/at2/readme.md b/keyboards/atset/at2/readme.md
new file mode 100644
index 00000000000..0bc777b052e
--- /dev/null
+++ b/keyboards/atset/at2/readme.md
@@ -0,0 +1,24 @@
+# ATSET AT2
+
+A special 2 key keyboard powered by QMK.
+
+* Keyboard Maintainer: [ATSET](https://github.com/anubhavd7)
+* Hardware Supported: ATSET AT2 (https://imgur.com/a/yBbVwef)
+https://www.atsetmediscience.com/atset-at2-9949007.html
+Make example for this keyboard (after setting up your build environment):
+
+ make atset/at2:default
+
+Flashing example for this keyboard:
+
+ make atset/at2: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**: 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
diff --git a/keyboards/atset/at3/keymaps/via/keymap.c b/keyboards/atset/at3/keymaps/via/keymap.c
deleted file mode 100644
index 8d16b57bd78..00000000000
--- a/keyboards/atset/at3/keymaps/via/keymap.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
-* 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(
- KC_7 , KC_8 , KC_9
- ),
- [1] =
- LAYOUT(
- KC_NO , KC_NO, KC_NO
- ),
- [2] =
- LAYOUT(
- KC_NO , KC_NO, KC_NO
- ),
- [3] =
- LAYOUT(
- KC_NO , KC_NO, KC_NO
- )
-};
diff --git a/keyboards/atset/at6/keymaps/via/keymap.c b/keyboards/atset/at6/keymaps/via/keymap.c
deleted file mode 100644
index ab9054d84f4..00000000000
--- a/keyboards/atset/at6/keymaps/via/keymap.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * 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(
- KC_4 , KC_5 , KC_6,
- KC_1 , KC_2 , KC_3
- ),
- [1] =
- LAYOUT(
- KC_NO , KC_NO, KC_NO,
- KC_NO , KC_NO, KC_NO
- ),
- [2] =
- LAYOUT(
- KC_NO , KC_NO, KC_NO,
- KC_NO , KC_NO, KC_NO
- ),
- [3] =
- LAYOUT(
- KC_NO , KC_NO, KC_NO,
- KC_NO , KC_NO, KC_NO
- )
-};
diff --git a/keyboards/atset/at9/keymaps/via/keymap.c b/keyboards/atset/at9/keymaps/via/keymap.c
deleted file mode 100644
index 2e026f1822c..00000000000
--- a/keyboards/atset/at9/keymaps/via/keymap.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * 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(
- KC_7 , KC_8 , KC_9,
- KC_4 , KC_5 , KC_6,
- KC_1 , KC_2 , KC_3
- ),
- [1] =
- LAYOUT(
- KC_NO , KC_NO, KC_NO,
- KC_NO , KC_NO, KC_NO,
- KC_NO , KC_NO, KC_NO
- ),
- [2] =
- LAYOUT(
- KC_NO , KC_NO, KC_NO,
- KC_NO , KC_NO, KC_NO,
- KC_NO , KC_NO, KC_NO
- ),
- [3] =
- LAYOUT(
- KC_NO , KC_NO, KC_NO,
- KC_NO , KC_NO, KC_NO,
- KC_NO , KC_NO, KC_NO
- ),
-};
diff --git a/keyboards/atset/at9/keymaps/via/rules.mk b/keyboards/atset/at9/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/atset/at9/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/atxkb/1894/keyboard.json b/keyboards/atxkb/1894/keyboard.json
index 5abaf88eb0b..878c3d998c1 100644
--- a/keyboards/atxkb/1894/keyboard.json
+++ b/keyboards/atxkb/1894/keyboard.json
@@ -60,7 +60,14 @@
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
- "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_tsangan_hhkb"],
+ "community_layouts": [
+ "60_ansi",
+ "60_ansi_split_bs_rshift",
+ "60_ansi_tsangan_split_bs_rshift"
+ ],
+ "layout_aliases": {
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
@@ -276,7 +283,7 @@
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
]
},
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
diff --git a/keyboards/atxkb/1894/keymaps/default/keymap.c b/keyboards/atxkb/1894/keymaps/default/keymap.c
index 5c137002efd..be1c05e7eb1 100644
--- a/keyboards/atxkb/1894/keymaps/default/keymap.c
+++ b/keyboards/atxkb/1894/keymaps/default/keymap.c
@@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
QK_BOOT, 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_BSPC,
_______, _______, KC_PGUP, _______, _______, _______, _______, _______, KC_UP, _______, KC_MPRV, KC_MPLY, KC_MNXT, BL_STEP,
_______, KC_HOME, KC_PGDN, KC_END, _______, KC_VOLD, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
- _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, KC_PSCR, _______,
+ _______, _______, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, _______, _______, KC_PSCR, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
diff --git a/keyboards/atxkb/1894/keymaps/default_ansi_tsangan/keymap.c b/keyboards/atxkb/1894/keymaps/default_ansi_tsangan/keymap.c
index 510c4aed7f7..ff4a61e4e4b 100644
--- a/keyboards/atxkb/1894/keymaps/default_ansi_tsangan/keymap.c
+++ b/keyboards/atxkb/1894/keymaps/default_ansi_tsangan/keymap.c
@@ -21,18 +21,18 @@ enum layer_names {
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT_60_tsangan_hhkb( /* Base */
+ [_BASE] = LAYOUT_60_ansi_tsangan_split_bs_rshift( /* Base */
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_DEL,
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,
MO(1), 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_DEL,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
),
- [_FN] = LAYOUT_60_tsangan_hhkb( /* FN */
+ [_FN] = LAYOUT_60_ansi_tsangan_split_bs_rshift( /* FN */
QK_BOOT, 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_BSPC,
_______, _______, KC_PGUP, _______, _______, _______, _______, _______, KC_UP, _______, KC_MPRV, KC_MPLY, KC_MNXT, BL_STEP,
_______, KC_HOME, KC_PGDN, KC_END, _______, KC_VOLD, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
- _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, KC_PSCR, _______,
+ _______, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, _______, _______, KC_PSCR, _______,
_______, _______, _______, _______, _______, _______, _______
)
};
diff --git a/keyboards/atxkb/1894/keymaps/via/keymap.c b/keyboards/atxkb/1894/keymaps/via/keymap.c
deleted file mode 100644
index 67c5cd37eab..00000000000
--- a/keyboards/atxkb/1894/keymaps/via/keymap.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright 2019 Ryota Goto
- *
- * 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
-
-enum layer_names {
- _BASE,
- _FN,
- _EXTRA_ONE,
- _EXTRA_TWO
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT_all( /* Base */
- 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_DEL,
- 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,
- MO(1), 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_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_DEL,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RALT, KC_RGUI, KC_RCTL
- ),
- [_FN] = LAYOUT_all( /* FN */
- _______, 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_BSPC,
- _______, _______, _______, KC_PGUP, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, BL_STEP,
- _______, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
- _______, _______, KC_VOLD, KC_MUTE, KC_VOLU, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_PSCR, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_EXTRA_ONE] = LAYOUT_all( /* Layer 3 */
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_EXTRA_TWO] = LAYOUT_all( /* Layer 3 */
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
-
diff --git a/keyboards/atxkb/1894/keymaps/via/rules.mk b/keyboards/atxkb/1894/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3e..00000000000
--- a/keyboards/atxkb/1894/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/aurora65/keymaps/default/keymap.c b/keyboards/aurora65/keymaps/default/keymap.c
index f671ce59393..2fba0f57408 100644
--- a/keyboards/aurora65/keymaps/default/keymap.c
+++ b/keyboards/aurora65/keymaps/default/keymap.c
@@ -27,6 +27,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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_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, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, UG_TOGG, UG_NEXT, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, UG_VALD, UG_VALU, UG_SPDD, UG_SPDU, KC_TRNS, KC_TRNS, KC_TRNS,
KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
};
diff --git a/keyboards/aurora65/keymaps/via/keymap.c b/keyboards/aurora65/keymaps/via/keymap.c
deleted file mode 100644
index c0848425491..00000000000
--- a/keyboards/aurora65/keymaps/via/keymap.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Copyright 2022 Yiancar-Designs
- *
- * 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_65_ansi_blocker( /* Base */
- 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_HOME,
- 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_ENT, KC_PGDN,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
-[1] = LAYOUT_65_ansi_blocker( /* FN */
- 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_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, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
-[2] = LAYOUT_65_ansi_blocker( /* Empty for dynamic keymaps */
- 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, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
-[3] = LAYOUT_65_ansi_blocker( /* Empty for dynamic keymaps */
- 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, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
-};
diff --git a/keyboards/aurora65/keymaps/via/readme.md b/keyboards/aurora65/keymaps/via/readme.md
deleted file mode 100644
index b4b3158e797..00000000000
--- a/keyboards/aurora65/keymaps/via/readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# The default keymap for Aurora65. VIA support enabled.
-
-
-
-
diff --git a/keyboards/aurora65/keymaps/via/rules.mk b/keyboards/aurora65/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/aurora65/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/aurora65/mcuconf.h b/keyboards/aurora65/mcuconf.h
index 5e966ec140b..0b3baa9b4b2 100644
--- a/keyboards/aurora65/mcuconf.h
+++ b/keyboards/aurora65/mcuconf.h
@@ -20,6 +20,3 @@
#undef STM32_PWM_USE_TIM1
#define STM32_PWM_USE_TIM1 TRUE
-
-#undef STM32_PWM_USE_ADVANCED
-#define STM32_PWM_USE_ADVANCED TRUE
diff --git a/keyboards/automata02/alisaie/keymaps/via/keymap.c b/keyboards/automata02/alisaie/keymaps/via/keymap.c
deleted file mode 100644
index 3ee2c863e92..00000000000
--- a/keyboards/automata02/alisaie/keymaps/via/keymap.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
-Copyright 2022 Automata
-
-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(
- 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_GRV,
- 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_BSPC,
- 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, MO(1),
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL
- ),
- [1] = LAYOUT(
- QK_BOOT, 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_PGUP, _______, _______, _______, _______, _______, KC_UP, _______, KC_MPRV, KC_UP, KC_MNXT, _______,
- _______, KC_HOME, KC_PGDN, KC_END, _______, KC_VOLD, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT, KC_LEFT, KC_RGHT, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, KC_PSCR, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/automata02/alisaie/keymaps/via/rules.mk b/keyboards/automata02/alisaie/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3e..00000000000
--- a/keyboards/automata02/alisaie/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/avalanche/v1/keyboard.json b/keyboards/avalanche/v1/keyboard.json
index 97acaf0d9f9..0e539bdefc5 100644
--- a/keyboards/avalanche/v1/keyboard.json
+++ b/keyboards/avalanche/v1/keyboard.json
@@ -21,7 +21,9 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D2"
+ "serial": {
+ "pin": "D2"
+ }
},
"processor": "atmega32u4",
"bootloader": "caterina",
diff --git a/keyboards/avalanche/v2/keyboard.json b/keyboards/avalanche/v2/keyboard.json
index 219e5bb6c6e..2c38fd1056a 100644
--- a/keyboards/avalanche/v2/keyboard.json
+++ b/keyboards/avalanche/v2/keyboard.json
@@ -35,7 +35,9 @@
},
"split": {
"enabled": true,
- "soft_serial_pin": "D2"
+ "serial": {
+ "pin": "D2"
+ }
},
"processor": "atmega32u4",
"bootloader": "caterina",
diff --git a/keyboards/avalanche/v2/keymaps/default/keymap.c b/keyboards/avalanche/v2/keymaps/default/keymap.c
index fc8842a865b..1c1503083e0 100644
--- a/keyboards/avalanche/v2/keymaps/default/keymap.c
+++ b/keyboards/avalanche/v2/keymaps/default/keymap.c
@@ -47,8 +47,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[LAYER_3] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- _______, _______, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ UG_TOGG, UG_NEXT, UG_HUEU, UG_SATU, UG_VALU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ _______, _______, UG_PREV, UG_HUED, UG_SATD, UG_VALD, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
diff --git a/keyboards/avalanche/v3/keyboard.json b/keyboards/avalanche/v3/keyboard.json
index 6104dbd7939..84191a103fb 100644
--- a/keyboards/avalanche/v3/keyboard.json
+++ b/keyboards/avalanche/v3/keyboard.json
@@ -27,7 +27,9 @@
},
"split": {
"enabled": true,
- "soft_serial_pin": "D2"
+ "serial": {
+ "pin": "D2"
+ }
},
"rgblight": {
"led_count": 12,
diff --git a/keyboards/avalanche/v4/keyboard.json b/keyboards/avalanche/v4/keyboard.json
index 2a4909ba368..2a548c5665e 100644
--- a/keyboards/avalanche/v4/keyboard.json
+++ b/keyboards/avalanche/v4/keyboard.json
@@ -28,7 +28,9 @@
},
"split": {
"enabled": true,
- "soft_serial_pin": "D2"
+ "serial": {
+ "pin": "D2"
+ }
},
"ws2812": {
"pin": "D3"
diff --git a/keyboards/aves60/keymaps/via/keymap.c b/keyboards/aves60/keymaps/via/keymap.c
deleted file mode 100644
index 35fd15723ef..00000000000
--- a/keyboards/aves60/keymaps/via/keymap.c
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2021 Evelien Dekkers (@evyd13)
-// 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,
- _FN1,
- _FN2,
- _FN3,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[_BASE] = 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_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_SLSH, KC_RSFT, MO(_FN1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL),
-
-[_FN1] = LAYOUT_all(
- 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, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
-
-[_FN2] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
-
-[_FN3] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
-};
diff --git a/keyboards/aves60/keymaps/via/rules.mk b/keyboards/aves60/keymaps/via/rules.mk
deleted file mode 100644
index 43061db1dd4..00000000000
--- a/keyboards/aves60/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/aves65/keymaps/via/keymap.c b/keyboards/aves65/keymaps/via/keymap.c
deleted file mode 100644
index 98d968b34f5..00000000000
--- a/keyboards/aves65/keymaps/via/keymap.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-Copyright 2019 I/O Keyboards
-
-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
-
-// Defines names for use in layer keycodes and the keymap
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
- _FN3,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[_BASE] = 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_NO, KC_BSPC, KC_GRV,
- 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_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_PGUP,
- 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, KC_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(_FN1), KC_LEFT, KC_DOWN, KC_RGHT),
-
-[_FN1] = LAYOUT_all(
- 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, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
-
-[_FN2] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
-
-[_FN3] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
-
-};
diff --git a/keyboards/aves65/keymaps/via/rules.mk b/keyboards/aves65/keymaps/via/rules.mk
deleted file mode 100644
index 43061db1dd4..00000000000
--- a/keyboards/aves65/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/axolstudio/foundation_gamma/keymaps/via/keymap.c b/keyboards/axolstudio/foundation_gamma/keymaps/via/keymap.c
deleted file mode 100644
index affa97de92c..00000000000
--- a/keyboards/axolstudio/foundation_gamma/keymaps/via/keymap.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright 2021 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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift(
- 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_MUTE, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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, MO(1), KC_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [1] = LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift(
- 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_VOLU,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
- 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
- ),
- [2] = LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift(
- 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, QK_BOOT, 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
- ),
- [3] = LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift(
- 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, QK_BOOT, 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/axolstudio/foundation_gamma/keymaps/via/rules.mk b/keyboards/axolstudio/foundation_gamma/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc9..00000000000
--- a/keyboards/axolstudio/foundation_gamma/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/axolstudio/helpo/keymaps/via/keymap.c b/keyboards/axolstudio/helpo/keymaps/via/keymap.c
deleted file mode 100644
index f1b331002a6..00000000000
--- a/keyboards/axolstudio/helpo/keymaps/via/keymap.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Copyright 2020 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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Base */
- [0] = LAYOUT(
- KC_1, KC_2, KC_3, KC_4, KC_5,
- KC_6, KC_7, KC_8, KC_9, KC_0,
- KC_A, KC_B, KC_C, KC_D, KC_E,
- KC_F, KC_G, KC_H, KC_I, MO(1)
- ),
- [1] = LAYOUT(
- 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
- ),
- [2] = LAYOUT(
- 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
- ),
- [3] = LAYOUT(
- 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/axolstudio/helpo/keymaps/via/rules.mk b/keyboards/axolstudio/helpo/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/axolstudio/helpo/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/axolstudio/yeti/hotswap/keymaps/via/keymap.c b/keyboards/axolstudio/yeti/hotswap/keymaps/via/keymap.c
deleted file mode 100644
index 349bd1223d0..00000000000
--- a/keyboards/axolstudio/yeti/hotswap/keymaps/via/keymap.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* 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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(
- KC_PAUS, 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_PSCR, 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_F5, 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_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL
- ),
- [1] = LAYOUT(
- KC_TRNS, 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_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, 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_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [2] = LAYOUT(
- 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,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [3] = LAYOUT(
- 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,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- )
-};
diff --git a/keyboards/axolstudio/yeti/hotswap/keymaps/via/rules.mk b/keyboards/axolstudio/yeti/hotswap/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/axolstudio/yeti/hotswap/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/axolstudio/yeti/soldered/keymaps/via/keymap.c b/keyboards/axolstudio/yeti/soldered/keymaps/via/keymap.c
deleted file mode 100644
index 63b688b7a38..00000000000
--- a/keyboards/axolstudio/yeti/soldered/keymaps/via/keymap.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright 2020 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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Base */
- [0] = LAYOUT_alice_split_bs(
- KC_PAUS, 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_DEL,
- KC_PSCR, 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_F5, 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, MO(1),
- KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL
- ),
- [1] = LAYOUT_alice_split_bs(
- KC_TRNS, 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_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, 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_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [2] = LAYOUT_alice_split_bs(
- KC_TRNS, 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_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, 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_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [3] = LAYOUT_alice_split_bs(
- KC_TRNS, 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_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, 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_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- )
-};
diff --git a/keyboards/axolstudio/yeti/soldered/keymaps/via/rules.mk b/keyboards/axolstudio/yeti/soldered/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/axolstudio/yeti/soldered/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/aya/config.h b/keyboards/aya/config.h
index 14fc201d496..1ab53d70ae1 100644
--- a/keyboards/aya/config.h
+++ b/keyboards/aya/config.h
@@ -16,5 +16,4 @@
#pragma once
-#define SPLIT_HAND_PIN B5
#define USE_I2C
diff --git a/keyboards/aya/keyboard.json b/keyboards/aya/keyboard.json
index 547f495ddd2..6f9ad387bc2 100644
--- a/keyboards/aya/keyboard.json
+++ b/keyboards/aya/keyboard.json
@@ -15,7 +15,10 @@
"command": true
},
"split": {
- "enabled": true
+ "enabled": true,
+ "handedness": {
+ "pin": "B5"
+ }
},
"matrix_pins": {
"cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2"],
diff --git a/keyboards/b_sides/rev41lp/keymaps/via/keymap.c b/keyboards/b_sides/rev41lp/keymaps/via/keymap.c
deleted file mode 100644
index 73f03cf342c..00000000000
--- a/keyboards/b_sides/rev41lp/keymaps/via/keymap.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-Copyright 2021 @cyril279
-
-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(
- 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT),
- KC_LALT, MO(1), KC_SPC, MO(2), KC_LGUI
- ),
-
- [1] = LAYOUT(
- _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
- _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_GRV, KC_TILD,
- _______, KC_ESC, KC_LGUI, KC_LALT, KC_CAPS, KC_DQUO, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_PSCR, RSFT_T(KC_SPC),
- _______, _______, KC_ENT, MO(3), _______
- ),
-
- [2] = LAYOUT(
- _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
- _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
- _______, KC_ESC, KC_RGUI, KC_RALT, KC_CAPS, KC_QUOT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
- _______, MO(3), KC_BSPC, _______, _______
- ),
-
- [3] = LAYOUT(
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_DOWN, BL_TOGG, BL_BRTG, BL_UP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- _______, _______, _______, _______, _______
- )
-};
-
diff --git a/keyboards/b_sides/rev41lp/keymaps/via/rules.mk b/keyboards/b_sides/rev41lp/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc9..00000000000
--- a/keyboards/b_sides/rev41lp/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/bacca70/keymaps/via/keymap.c b/keyboards/bacca70/keymaps/via/keymap.c
deleted file mode 100644
index cb9af18a5e6..00000000000
--- a/keyboards/bacca70/keymaps/via/keymap.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
-Copyright 2022 keebnewb
-
-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_default(
- 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_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_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_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_RSFT,
- KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_RCTL
- ),
-
- [1]=LAYOUT_default(
- 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,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, QK_BOOT, KC_TRNS
- ),
-
- [2] = LAYOUT_default(
- 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,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, QK_BOOT, KC_TRNS
- ),
-
- [3] = LAYOUT_default(
- 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,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, QK_BOOT, KC_TRNS
- )
-};
diff --git a/keyboards/bacca70/keymaps/via/rules.mk b/keyboards/bacca70/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/bacca70/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/bahm/aster_ergo/keymaps/via/keymap.c b/keyboards/bahm/aster_ergo/keymaps/via/keymap.c
deleted file mode 100644
index 6fa40a5b7c1..00000000000
--- a/keyboards/bahm/aster_ergo/keymaps/via/keymap.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright 2023 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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_all(
- 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_F13, 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_DEL, KC_INS, KC_HOME, 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_DEL, KC_END, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(2), KC_RSFT, KC_UP,
- KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPACE, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [1] = LAYOUT_all(
- 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, 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
- ),
- [2] = LAYOUT_all(
- 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, 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
- ),
- [3] = LAYOUT_all(
- 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, 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/bahm/aster_ergo/keymaps/via/rules.mk b/keyboards/bahm/aster_ergo/keymaps/via/rules.mk
deleted file mode 100644
index 6fd32e11821..00000000000
--- a/keyboards/bahm/aster_ergo/keymaps/via/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-# This file intentionally left blank
-VIA_ENABLE = yes
-LTO_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/baion_808/keymaps/via/keymap.c b/keyboards/baion_808/keymaps/via/keymap.c
deleted file mode 100644
index 81edc335341..00000000000
--- a/keyboards/baion_808/keymaps/via/keymap.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright 2022 Yiancar-Designs
- *
- * 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( /* Base */
- 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_DEL, KC_INS, KC_HOME, 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_DEL, KC_END, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
-[1] = LAYOUT_all( /* Empty for dynamic keymaps */
- 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, 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),
-
-[2] = LAYOUT_all( /* Empty for dynamic keymaps */
- 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, 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),
-
-[3] = LAYOUT_all( /* Empty for dynamic keymaps */
- 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, 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/baion_808/keymaps/via/rules.mk b/keyboards/baion_808/keymaps/via/rules.mk
deleted file mode 100755
index 1e5b99807cb..00000000000
--- a/keyboards/baion_808/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/balloondogcaps/tr90/keymaps/via/keymap.c b/keyboards/balloondogcaps/tr90/keymaps/via/keymap.c
deleted file mode 100644
index aef6d33f164..00000000000
--- a/keyboards/balloondogcaps/tr90/keymaps/via/keymap.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright 2021 Balloondog
- *
- * 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_3x3( /* Base */
- KC_1, KC_2, KC_3,
- KC_4, KC_5, KC_6,
- KC_VOLD, KC_VOLU, MO(1)
- ),
- [1] = LAYOUT_ortho_3x3(
- KC_7, KC_8, KC_9,
- KC_0, KC_MINUS, KC_PLUS,
- QK_BOOT, KC_AT , KC_TRNS
- ),
- [2] = LAYOUT_ortho_3x3(
- KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [3] = LAYOUT_ortho_3x3(
- KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
- )
-};
-
-
diff --git a/keyboards/balloondogcaps/tr90/keymaps/via/rules.mk b/keyboards/balloondogcaps/tr90/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/balloondogcaps/tr90/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/balloondogcaps/tr90pm/keymaps/via/keymap.c b/keyboards/balloondogcaps/tr90pm/keymaps/via/keymap.c
deleted file mode 100644
index aef6d33f164..00000000000
--- a/keyboards/balloondogcaps/tr90pm/keymaps/via/keymap.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright 2021 Balloondog
- *
- * 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_3x3( /* Base */
- KC_1, KC_2, KC_3,
- KC_4, KC_5, KC_6,
- KC_VOLD, KC_VOLU, MO(1)
- ),
- [1] = LAYOUT_ortho_3x3(
- KC_7, KC_8, KC_9,
- KC_0, KC_MINUS, KC_PLUS,
- QK_BOOT, KC_AT , KC_TRNS
- ),
- [2] = LAYOUT_ortho_3x3(
- KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [3] = LAYOUT_ortho_3x3(
- KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
- )
-};
-
-
diff --git a/keyboards/balloondogcaps/tr90pm/keymaps/via/rules.mk b/keyboards/balloondogcaps/tr90pm/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/balloondogcaps/tr90pm/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/bandominedoni/keyboard.json b/keyboards/bandominedoni/keyboard.json
index c253da0c839..41212aedefc 100644
--- a/keyboards/bandominedoni/keyboard.json
+++ b/keyboards/bandominedoni/keyboard.json
@@ -30,13 +30,15 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D2",
"encoder": {
"right": {
"rotary": [
{"pin_a": "F5", "pin_b": "F4"}
]
}
+ },
+ "serial": {
+ "pin": "D2"
}
},
"qmk": {
diff --git a/keyboards/bandominedoni/keymaps/via/config.h b/keyboards/bandominedoni/keymaps/via/config.h
deleted file mode 100644
index 6f27c9aea80..00000000000
--- a/keyboards/bandominedoni/keymaps/via/config.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright 2021 3araht
- *
- * 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
-
-#undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-#undef ENABLE_RGB_MATRIX_BAND_VAL
-#undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-#undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-#undef ENABLE_RGB_MATRIX_CYCLE_ALL
-#undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#undef ENABLE_RGB_MATRIX_DUAL_BEACON
-#undef ENABLE_RGB_MATRIX_RAINBOW_BEACON
-#undef ENABLE_RGB_MATRIX_HUE_BREATHING
-#undef ENABLE_RGB_MATRIX_HUE_PENDULUM
-#undef ENABLE_RGB_MATRIX_HUE_WAVE
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#undef ENABLE_RGB_MATRIX_MULTISPLASH
-#undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
diff --git a/keyboards/bandominedoni/keymaps/via/keymap.c b/keyboards/bandominedoni/keymaps/via/keymap.c
deleted file mode 100644
index 6f69c69fac2..00000000000
--- a/keyboards/bandominedoni/keymaps/via/keymap.c
+++ /dev/null
@@ -1,182 +0,0 @@
-/* Copyright 2021 3araht
- *
- * 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
-#include "version.h"
-
-// Defines names for use in layer keycodes and the keymap
-enum layer_names {
-#ifndef PEDAL_NORMALLY_CLOSED
- _OPEN,
-#endif
- _CLOSE,
-#ifdef PEDAL_NORMALLY_CLOSED
- _OPEN,
-#endif
- _MISC,
- _FN
-};
-
-enum custom_keycodes {
- VERSION = QK_KB_0
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_OPEN] = LAYOUT(
- MI_Gs1, MI_As1, MI_Cs2, MI_F2, MI_Gs3,
- MI_E1, MI_A1, MI_G2, MI_Ds2, MI_F3, MI_As2, MI_F1,
- MI_D2, MI_A2, MI_C3, MI_E3, MI_C2, MI_G1, TG_SWAP,
- MI_E2, MI_Gs2, MI_B2, MI_D3, MI_Fs3, MI_Cs3, MI_Fs1,
- MI_D1, MI_B1, MI_G3, MI_A3, MI_Ds3, MI_Fs2, MI_Ds1, MI_C1,
-
- MO_SWAP, MI_B5, MI_Gs5, MI_G5, MI_F5, FN_MUTE,
- MI_Cs3, MI_A5, MI_Fs5, MI_E5, MI_Ds5,
- MI_C3, MI_D3, MI_G3, MI_As4, MI_C5, MI_D5,
- TG_SWAP, MI_B2, MI_E3, MI_Cs4, MI_Fs3, MI_A3, MI_C4, MI_E4,
- MI_A2, MI_F3, MI_As3, MI_Gs3, MI_B3, MI_D4, MI_Gs4, MI_B4,
- MI_Gs2, MI_As2, MI_Ds3, MI_F4, MI_Ds4, MI_Fs4, MI_A4, MI_Cs5, MI_G4
- ),
-
- [_CLOSE] = LAYOUT(
- MI_Gs1, MI_As1, MI_Ds2, MI_Ds3, MI_G3,
- MI_D1, MI_D2, MI_As2, MI_C3, MI_Cs2, MI_C2, MI_Fs1,
- MI_G1, MI_G2, MI_B2, MI_D3, MI_F3, MI_Fs2, TG_SWAP,
- MI_A1, MI_E2, MI_A2, MI_Cs3, MI_E3, MI_Gs2, MI_B1,
- MI_E1, MI_E2, MI_Fs3, MI_Gs3, MI_B3, MI_F2, MI_Cs1, MI_F1,
-
- MO_SWAP, MI_A5, MI_Gs5, MI_Fs5, MI_F5, FN_MUTE,
- MI_C3, MI_G5, MI_As4, MI_C5, MI_Ds5,
- MI_D3, MI_Cs3, MI_Gs3, MI_As3, MI_C4, MI_D5,
- TG_SWAP, MI_B2, MI_Fs3, MI_Fs4, MI_G3, MI_B3, MI_D4, MI_G4,
- MI_A2, MI_F3, MI_E3, MI_A3, MI_Cs4, MI_E4, MI_A4, MI_Cs5,
- MI_Gs2, MI_As2, MI_Ds3, MI_F4, MI_E4, MI_Gs4, MI_B4, MI_E5, MI_Ds4
- ),
-
- [_MISC] = LAYOUT(
- _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______,
-
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_FN] = LAYOUT(
- DF_SWAP, 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, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-
- _______, MI_OCTD, MI_OCTU, MI_VELD, MI_VELU, _______,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, VERSION,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- RGB_SAD, RGB_SAI, RGB_HUD, RGB_HUI, RGB_SPD, RGB_SPI, RGB_VAD, RGB_VAI,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RMOD, RGB_MOD, EE_CLR, RGB_TOG
- )
-};
-
-#if defined(ENCODER_MAP_ENABLE)
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [_OPEN] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
- [_CLOSE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
- [_MISC] = { ENCODER_CCW_CW(_______, _______) },
- [_FN] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) },
-};
-#endif
-
-void my_init(void){
- // Set octave to 0
- midi_config.octave = QK_MIDI_OCTAVE_0 - MIDI_OCTAVE_MIN;
-
- // avoid using 127 since it is used as a special number in some sound sources.
- midi_config.velocity = MIDI_INITIAL_VELOCITY;
-}
-
-void eeconfig_init_user(void) { // EEPROM is getting reset!
- midi_init();
- my_init();
-#ifdef RGB_MATRIX_ENABLE
- rgb_matrix_enable();
- rgb_matrix_set_speed(RGB_MATRIX_DEFAULT_SPD);
- rgb_matrix_sethsv(HSV_BLUE);
-
- rgb_matrix_mode(RGB_MATRIX_SOLID_REACTIVE);
- // rgb_matrix_mode(RGB_MATRIX_RAINBOW_MOVING_CHEVRON);
-#endif
-}
-
-void keyboard_post_init_user(void) {
- my_init();
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case VERSION: // Output firmware info.
- if (record->event.pressed) {
- SEND_STRING(QMK_KEYBOARD ":" QMK_KEYMAP " @ " QMK_VERSION " | " QMK_BUILDDATE);
- }
- break;
- }
- return true;
-}
-
-#ifdef RGB_MATRIX_ENABLE
-bool rgb_matrix_indicators_user(void) {
- if (rgb_matrix_is_enabled()) { // turn the lights on when it is enabled.
- uint8_t layer = get_highest_layer(layer_state);
- switch (layer) {
- case _CLOSE:
- // rgb_matrix_set_color(pgm_read_byte(&convert_led_location2number[11]), RGB_RED); // RGB_TOG <- too heavy.
-
- // Close state indicator
- rgb_matrix_set_color( 0, RGB_DARKWHITE); // oc
- break;
-
- case _FN:
- // rgb_matrix_set_color(pgm_read_byte(&convert_led_location2number[11]), RGB_RED); // RGB_TOG <- too heavy.
- rgb_matrix_set_color(14, RGB_DARKYELLOW); // MI_OCTD
- rgb_matrix_set_color(25, RGB_DARKGREEN); // MI_OCTU
- rgb_matrix_set_color(14, RGB_DARKYELLOW); // MI_VELD
- rgb_matrix_set_color(25, RGB_DARKGREEN); // MI_VELU
-
- rgb_matrix_set_color( 6, RGB_DARKBLUE); // RGB_SAD
- rgb_matrix_set_color( 9, RGB_DARKBLUE); // RGB_SAI
- rgb_matrix_set_color(18, RGB_DARKBLUE); // RGB_HUD
- rgb_matrix_set_color(21, RGB_DARKBLUE); // RGB_HUI
- rgb_matrix_set_color(29, RGB_DARKBLUE); // RGB_SPD
- rgb_matrix_set_color(32, RGB_DARKBLUE); // RGB_SPI
- rgb_matrix_set_color(36, RGB_DARKBLUE); // RGB_VAD
- rgb_matrix_set_color(39, RGB_DARKBLUE); // RGB_VAI
-
- rgb_matrix_set_color(31, RGB_DARKBLUE); // RGB_RMOD
- rgb_matrix_set_color(37, RGB_DARKBLUE); // RGB_MOD
- rgb_matrix_set_color(38, RGB_DARKPINK); // EE_CLR
- rgb_matrix_set_color(40, RGB_DARKRED); // RGB_TOG
-
- rgb_matrix_set_color(41, RGB_DARKORANGE); // _FN
- break;
- }
- }
- return false;
-}
-#endif
diff --git a/keyboards/bandominedoni/keymaps/via/rules.mk b/keyboards/bandominedoni/keymaps/via/rules.mk
deleted file mode 100644
index 8fa76afafc1..00000000000
--- a/keyboards/bandominedoni/keymaps/via/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-RGB_MATRIX_ENABLE = yes # Use RGB matrix (Don't enable this when RGBLIGHT_ENABLE is used.)
-RGB_MATRIX_CUSTOM_KB = yes #
-VIA_ENABLE = yes
-
-ENCODER_MAP_ENABLE = yes # replacing ENCODERS_CW_KEY method to this on 2022/08/31.
diff --git a/keyboards/bandominedoni/rgb_matrix_kb.inc b/keyboards/bandominedoni/rgb_matrix_kb.inc
index 77ad22c1ce7..081215d78f3 100644
--- a/keyboards/bandominedoni/rgb_matrix_kb.inc
+++ b/keyboards/bandominedoni/rgb_matrix_kb.inc
@@ -5,8 +5,8 @@ RGB_MATRIX_EFFECT(my_party_rocks)
bool my_party_rocks(effect_params_t* params) {
RGB_MATRIX_USE_LIMITS(led_min, led_max);
- HSV hsv = {rand() & 0xFF, rand() & 0xFF, rgb_matrix_config.hsv.v};
- RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
+ hsv_t hsv = {rand() & 0xFF, rand() & 0xFF, rgb_matrix_config.hsv.v};
+ rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv);
// rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
rgb_matrix_set_color_all(rgb.r, rgb.g, rgb.b);
return rgb_matrix_check_finished_leds(led_max);
diff --git a/keyboards/barleycorn_smd/keymaps/via/keymap.c b/keyboards/barleycorn_smd/keymaps/via/keymap.c
deleted file mode 100644
index df48cf36059..00000000000
--- a/keyboards/barleycorn_smd/keymaps/via/keymap.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright 2021 Matthew Dias
- *
- * 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
-
-// This keymaps is used for VIA, it reflects the default keymap.
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = LAYOUT_all( /* Base */
- 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_DEL, 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_P7, KC_P8, KC_P9, KC_PEQL,
- 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_PPLS,
- 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, KC_P1, KC_P2, KC_P3, KC_BSPC,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT),
-
-[1] = LAYOUT_all( /* FN */
- 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_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, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, 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_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
-[2] = LAYOUT_all( /* Empty for dynamic keymaps */
- 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, 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),
-
-[3] = LAYOUT_all( /* Empty for dynamic keymaps */
- 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, 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/barleycorn_smd/keymaps/via/rules.mk b/keyboards/barleycorn_smd/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/barleycorn_smd/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/barracuda/keymaps/via/config.h b/keyboards/barracuda/keymaps/via/config.h
deleted file mode 100644
index fbac4dcb268..00000000000
--- a/keyboards/barracuda/keymaps/via/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2021 knaruo
- *
- * 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 TAPPING_TERM 175 // milliseconds
diff --git a/keyboards/barracuda/keymaps/via/keymap.c b/keyboards/barracuda/keymaps/via/keymap.c
deleted file mode 100644
index a3170c1b448..00000000000
--- a/keyboards/barracuda/keymaps/via/keymap.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Copyright 2021 knaruo
- *
- * 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
-#include "keymap_japanese.h"
-
-/* keymap layers */
-enum _layers {
- _BASE = 0,
- _NUM,
- _FN,
- _RESERVED, // reserved for VIA
- _END, // end of supported layers
-};
-
-/* Keycode alias */
-#define KC_CTBS RCTL_T(KC_BSPC) // Backspace + Ctrl
-#define KC_XWIN LWIN_T(KC_X)
-#define KC_SPF1 LT(_NUM, KC_SPC) // Space + NUM layer
-#define KC_DLF2 LT(_FN, KC_DEL) // Del + FN key layer
-#define KC_SFEN RSFT_T(KC_ENT) // Enter + Shift
-#define KC_CAD LALT(LCTL(KC_DEL)) // ctrl + alt + delete
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* Base QWERTY key map */
- [_BASE] = LAYOUT_ortho_3x11(
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, /*_____*/ KC_Y, KC_U, KC_I, KC_O, KC_P,
- KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, /*_____*/ KC_H, KC_J, KC_K, KC_L, KC_CTBS,
- KC_LSFT, KC_Z, KC_XWIN, KC_C, KC_V, KC_SPF1, /*_____*/ KC_DLF2, KC_B, KC_N, KC_M, KC_SFEN
- ),
-
- [_NUM] = LAYOUT_ortho_3x11(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, /*_____*/ KC_6, KC_7, KC_8, KC_9, KC_0,
- _______, KC_TAB, JP_MINS, JP_CIRC, JP_YEN, JP_AT, /*_____*/ JP_SCLN, JP_COLN, JP_LBRC, JP_RBRC, _______,
- _______, _______, JP_ZKHK, KC_LALT, JP_COMM, _______, /*_____*/ _______, JP_DOT, JP_SLSH, JP_BSLS, _______
- ),
-
- [_FN] = LAYOUT_ortho_3x11(
- _______, 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_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_CAD,
- _______, _______, _______, _______, _______, _______, /*_____*/ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
- ),
-
- [_RESERVED] = LAYOUT_ortho_3x11(
- _______, _______, _______, _______, _______, _______, /*_____*/ _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, /*_____*/ _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, /*_____*/ _______, _______, _______, _______, _______
- ),
-};
diff --git a/keyboards/barracuda/keymaps/via/rules.mk b/keyboards/barracuda/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/barracuda/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/basekeys/slice/keymaps/default/keymap.c b/keyboards/basekeys/slice/keymaps/default/keymap.c
index 2dca256d51b..a407d35ab79 100644
--- a/keyboards/basekeys/slice/keymaps/default/keymap.c
+++ b/keyboards/basekeys/slice/keymaps/default/keymap.c
@@ -34,13 +34,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//,------------------------------------------------------------------------| |---------------------------------------------------------------------------.
KC_ESC, KC_GRAVE, 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,
//|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- RGB_MOD, 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,
+ UG_NEXT, 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,
//|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
RGB_M_G, 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,
//|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
RGB_M_X, 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_RSFT,
//|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- RGB_TOG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN)
+ UG_TOGG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN)
//`------------------------------------------------------------------------| |---------------------------------------------------------------------------'
),
@@ -64,9 +64,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_TOGG, UG_NEXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_VALD, UG_VALU, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, XXXXXXX, XXXXXXX,
//|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
//`-----------------------------------------------------------------| |---------------------------------------------------------------------------'
@@ -80,7 +80,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
bool result = false;
switch (keycode) {
#ifdef RGBLIGHT_ENABLE
- case RGB_MOD:
+ case QK_UNDERGLOW_TOGGLE:
if (record->event.pressed) {
rgblight_mode(RGB_current_mode);
rgblight_step();
diff --git a/keyboards/basekeys/slice/keymaps/default_split_left_space/keymap.c b/keyboards/basekeys/slice/keymaps/default_split_left_space/keymap.c
index ac4d42fca52..7d4133a99b3 100644
--- a/keyboards/basekeys/slice/keymaps/default_split_left_space/keymap.c
+++ b/keyboards/basekeys/slice/keymaps/default_split_left_space/keymap.c
@@ -34,13 +34,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//,------------------------------------------------------------------------| |---------------------------------------------------------------------------.
KC_ESC, KC_GRAVE, 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,
//|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- RGB_MOD, 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,
+ UG_NEXT, 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,
//|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
RGB_M_G, 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,
//|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
RGB_M_X, 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_RSFT,
//|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- RGB_TOG, KC_LCTL,KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN)
+ UG_TOGG, KC_LCTL,KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN)
//`------------------------------------------------------------------------| |---------------------------------------------------------------------------'
),
@@ -64,9 +64,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_TOGG, UG_NEXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_VALD, UG_VALU, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, XXXXXXX, XXXXXXX,
//|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
//`-------------------------------------------------------------------------| |---------------------------------------------------------------------------'
@@ -80,7 +80,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
bool result = false;
switch (keycode) {
#ifdef RGBLIGHT_ENABLE
- case RGB_MOD:
+ case QK_UNDERGLOW_MODE_NEXT:
if (record->event.pressed) {
rgblight_mode(RGB_current_mode);
rgblight_step();
diff --git a/keyboards/basekeys/slice/rev1/config.h b/keyboards/basekeys/slice/rev1/config.h
deleted file mode 100644
index aecd34737d4..00000000000
--- a/keyboards/basekeys/slice/rev1/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
-Copyright 2020 2Moons
-
-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
-
-/* Select hand configuration */
-//#define EE_HANDS
-#define MASTER_LEFT
-//#define MASTER_RIGHT
diff --git a/keyboards/basekeys/slice/rev1/keyboard.json b/keyboards/basekeys/slice/rev1/keyboard.json
index c341597ee66..a6097e560a7 100644
--- a/keyboards/basekeys/slice/rev1/keyboard.json
+++ b/keyboards/basekeys/slice/rev1/keyboard.json
@@ -26,7 +26,9 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D2"
+ "serial": {
+ "pin": "D2"
+ }
},
"processor": "atmega32u4",
"bootloader": "caterina",
diff --git a/keyboards/basekeys/slice/rev1/keymaps/via/config.h b/keyboards/basekeys/slice/rev1/keymaps/via/config.h
deleted file mode 100644
index f1d6eef419a..00000000000
--- a/keyboards/basekeys/slice/rev1/keymaps/via/config.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
-Copyright 2020 2Moons
-
-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
-
-/* Select hand configuration */
-
-#define QUICK_TAP_TERM 0
-#define TAPPING_TERM 180
diff --git a/keyboards/basekeys/slice/rev1/keymaps/via/keymap.c b/keyboards/basekeys/slice/rev1/keymaps/via/keymap.c
deleted file mode 100644
index e4fbf1fcf7f..00000000000
--- a/keyboards/basekeys/slice/rev1/keymaps/via/keymap.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Copyright 2020 2Moons
- *
- * 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
-#include "keymap_japanese.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
-// entirely and just use numbers.
-enum layer_number {
- _QWERTY = 0,
- _FN,
- _LOWER,
- _RAISE,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT_all(
- //,------------------------------------------------------------------------| |--------------------------------------------------------------------------------------.
- KC_ESC, KC_GRAVE, 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_BSPC,
- //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------+----------|
- XXXXXXX, 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,
- //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------+----------|
- XXXXXXX, 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,
- //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------+----------|
- XXXXXXX, 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_RSFT, KC_RSFT,
- //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------+----------|
- XXXXXXX, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN)
- //`------------------------------------------------------------------------| |--------------------------------------------------------------------------------------'
- ),
-
- [_FN] = LAYOUT_all(
- //,------------------------------------------------------------------------| |--------------------------------------------------------------------------------------.
- KC_ESC, KC_GRAVE, 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_BSPC, KC_DEL,
- //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------+----------|
- _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUSE, KC_UP, _______, _______, _______,
- //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------+----------|
- _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT,KC_RIGHT, _______, _______,
- //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------+----------|
- _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, _______, _______,
- //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------+----------|
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- //`------------------------------------------------------------------------| |--------------------------------------------------------------------------------------'
- ),
-
- [_LOWER] = LAYOUT_all(
- //,------------------------------------------------------------------------| |--------------------------------------------------------------------------------------.
- KC_ESC, KC_GRAVE, 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_BSPC,
- //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------+----------|
- XXXXXXX, 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,
- //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------+----------|
- XXXXXXX, 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,
- //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------+----------|
- XXXXXXX, 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_RSFT, KC_RSFT,
- //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------+----------|
- XXXXXXX, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN)
- //`------------------------------------------------------------------------| |--------------------------------------------------------------------------------------'
- ),
-
- [_RAISE] = LAYOUT_all(
- //,------------------------------------------------------------------------| |--------------------------------------------------------------------------------------.
- KC_ESC, KC_GRAVE, 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_BSPC,
- //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------+----------|
- XXXXXXX, 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,
- //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------+----------|
- XXXXXXX, 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,
- //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------+----------|
- XXXXXXX, 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_RSFT, KC_RSFT,
- //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------+----------|
- XXXXXXX, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN)
- //`------------------------------------------------------------------------| |--------------------------------------------------------------------------------------'
- )
-};
diff --git a/keyboards/basekeys/slice/rev1/keymaps/via/rules.mk b/keyboards/basekeys/slice/rev1/keymaps/via/rules.mk
deleted file mode 100644
index fe10d4e0932..00000000000
--- a/keyboards/basekeys/slice/rev1/keymaps/via/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-TAP_DANCE_ENABLE = no
-VIA_ENABLE = yes
-BACKLIGHT_ENABLE = no
\ No newline at end of file
diff --git a/keyboards/basekeys/slice/rev1_rgb/config.h b/keyboards/basekeys/slice/rev1_rgb/config.h
index 2594d39f2a4..0f281a5718a 100644
--- a/keyboards/basekeys/slice/rev1_rgb/config.h
+++ b/keyboards/basekeys/slice/rev1_rgb/config.h
@@ -16,9 +16,4 @@ along with this program. If not, see .
*/
#pragma once
-/* Select hand configuration */
-//#define EE_HANDS
-#define MASTER_LEFT
-//#define MASTER_RIGHT
-
#define OLED_FONT_H "keyboards/basekeys/slice/slice_font.c"
diff --git a/keyboards/basekeys/slice/rev1_rgb/keyboard.json b/keyboards/basekeys/slice/rev1_rgb/keyboard.json
index a666f266617..d6d7b8ad451 100644
--- a/keyboards/basekeys/slice/rev1_rgb/keyboard.json
+++ b/keyboards/basekeys/slice/rev1_rgb/keyboard.json
@@ -31,7 +31,9 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D2"
+ "serial": {
+ "pin": "D2"
+ }
},
"ws2812": {
"pin": "D3"
diff --git a/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c b/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c
index 6ed863d01b3..bd7923b36bd 100644
--- a/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c
+++ b/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c
@@ -48,13 +48,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//,------------------------------------------------------------------------| |---------------------------------------------------------------------------.
KC_ESC, KC_GRAVE, 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,
//|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- RGB_MOD, 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,
+ UG_NEXT, 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,
//|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
RGB_M_G, 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,
//|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
RGB_M_X, 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_RSFT,
//|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- RGB_TOG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN)
+ UG_TOGG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN)
//`------------------------------------------------------------------------| |---------------------------------------------------------------------------'
),
@@ -90,13 +90,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//,-------------------------------------------------------------------------| |---------------------------------------------------------------------------.
KC_ESC, KC_GRAVE, 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,
//|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- RGB_MOD, 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,
+ UG_NEXT, 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,
//|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
RGB_M_G, 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,
//|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
RGB_M_X, 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_RSFT,
//|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- RGB_TOG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN)
+ UG_TOGG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN)
//`-------------------------------------------------------------------------| |---------------------------------------------------------------------------'
),
@@ -104,13 +104,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//,-------------------------------------------------------------------------| |---------------------------------------------------------------------------.
KC_ESC, KC_GRAVE, 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,
//|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- RGB_MOD, 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,
+ UG_NEXT, 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,
//|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
RGB_M_G, 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,
//|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
RGB_M_X, 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_RSFT,
//|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- RGB_TOG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN)
+ UG_TOGG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN)
//`-----------------------------------------------------------------| |---------------------------------------------------------------------------'
),
@@ -120,9 +120,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_TOGG, UG_NEXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_VALD, UG_VALU, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, XXXXXXX, XXXXXXX,
//|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
//`-----------------------------------------------------------------| |---------------------------------------------------------------------------'
@@ -164,7 +164,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
bool result = false;
switch (keycode) {
#ifdef RGBLIGHT_ENABLE
- case RGB_MOD:
+ case QK_UNDERGLOW_MODE_NEXT:
if (record->event.pressed) {
rgblight_mode(RGB_current_mode);
rgblight_step();
diff --git a/keyboards/basekeys/slice/rev1_rgb/keymaps/via/keymap.c b/keyboards/basekeys/slice/rev1_rgb/keymaps/via/keymap.c
deleted file mode 100644
index 04d9aa5b632..00000000000
--- a/keyboards/basekeys/slice/rev1_rgb/keymaps/via/keymap.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/* Copyright 2020 2Moons
- *
- * 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
-#include "split_util.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
-// entirely and just use numbers.
-enum layer_number {
- _QWERTY,
- _FN,
- _LOWER,
- _RAISE,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT_all(
- //,------------------------------------------------------------------------| |---------------------------------------------------------------------------.
- KC_ESC, KC_GRAVE, 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,
- //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- RGB_MOD, 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,
- //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- RGB_M_G, 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,
- //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- RGB_M_X, 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_RSFT,
- //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- RGB_TOG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN)
- //`------------------------------------------------------------------------| |---------------------------------------------------------------------------'
- ),
-
- [_FN] = LAYOUT_all(
- //,-------------------------------------------------------------------------| |---------------------------------------------------------------------------.
- KC_ESC, KC_GRAVE, 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_BSPC,
- //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUSE, KC_UP, _______, _______, _______,
- //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT,KC_RIGHT, _______, _______,
- //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, _______,
- //|-------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- //`-------------------------------------------------------------------------| |---------------------------------------------------------------------------'
- ),
-
- [_LOWER] = LAYOUT_all(
- //,------------------------------------------------------------------------| |---------------------------------------------------------------------------.
- KC_ESC, KC_GRAVE, 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,
- //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- RGB_MOD, 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,
- //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- RGB_M_G, 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,
- //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- RGB_M_X, 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_RSFT,
- //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- RGB_TOG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN)
- //`------------------------------------------------------------------------| |---------------------------------------------------------------------------'
- ),
-
- [_RAISE] = LAYOUT_all(
- //,------------------------------------------------------------------------| |---------------------------------------------------------------------------.
- KC_ESC, KC_GRAVE, 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,
- //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- RGB_MOD, 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,
- //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- RGB_M_G, 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,
- //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- RGB_M_X, 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_RSFT,
- //|------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+----------+----------|
- RGB_TOG, KC_LCTL, KC_LALT, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, MO(_FN)
- //`------------------------------------------------------------------------| |---------------------------------------------------------------------------'
- )
-};
-
-#ifdef OLED_ENABLE
-
-static void render_qmk_logo(void) {
- static const char PROGMEM qmk_logo[] = {
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
- 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
- 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
- 0};
- oled_write_P(qmk_logo, false);
-}
-
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- return isLeftHand ? OLED_ROTATION_180 : OLED_ROTATION_0;
-}
-
-bool oled_task_user(void) {
- if (is_keyboard_master()) {
- // Host Keyboard Layer Status
- oled_write_P(PSTR("Layer: "), false);
- switch (get_highest_layer(layer_state)) {
- case _QWERTY:
- oled_write_P(PSTR("Default\n"), false);
- break;
- case _FN:
- oled_write_P(PSTR("Function\n"), false);
- break;
- default:
- // Or use the write_ln shortcut over adding '\n' to the end of your string
- oled_write_ln_P(PSTR("Undefined"), false);
- }
-
- // Host Keyboard LED Status
- led_t led_usb_state = host_keyboard_led_state();
- oled_write_P(led_usb_state.num_lock ? PSTR("NUMLCK ") : PSTR(" "), false);
- oled_write_P(led_usb_state.caps_lock ? PSTR("CAPLCK ") : PSTR(" "), false);
- oled_write_P(led_usb_state.scroll_lock ? PSTR("SCRLCK ") : PSTR(" "), false);
- } else {
- render_qmk_logo();
- }
- return false;
-}
-#endif
diff --git a/keyboards/basekeys/slice/rev1_rgb/keymaps/via/rules.mk b/keyboards/basekeys/slice/rev1_rgb/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/basekeys/slice/rev1_rgb/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/basekeys/trifecta/keymaps/default/keymap.c b/keyboards/basekeys/trifecta/keymaps/default/keymap.c
index 72187f69b99..0d4ca5aa245 100644
--- a/keyboards/basekeys/trifecta/keymaps/default/keymap.c
+++ b/keyboards/basekeys/trifecta/keymaps/default/keymap.c
@@ -34,16 +34,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_FN] = 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, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP,
+ _______, UG_NEXT, UG_HUEU, UG_SATU, UG_VALU, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, UG_TOGG, UG_HUED, UG_SATD, UG_VALD, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP,
_______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
),
[_MEDIA] = 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, _______, _______, _______,
_______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP,
+ _______, UG_NEXT, UG_HUEU, UG_SATU, UG_VALU, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, UG_TOGG, UG_HUED, UG_SATD, UG_VALD, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP,
_______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
)
};
diff --git a/keyboards/basekeys/trifecta/keymaps/via/keymap.c b/keyboards/basekeys/trifecta/keymaps/via/keymap.c
deleted file mode 100644
index 9e102f972c6..00000000000
--- a/keyboards/basekeys/trifecta/keymaps/via/keymap.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Copyright 2020 Swiftrax and Basekeys.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 QMK_KEYBOARD_H
-
-// Defines names for use in layer keycodes and the keymap
-enum layer_names {
- _BASE,
- _FN,
- _MEDIA };
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = 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_DEL, 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_LBRC, KC_RBRC, KC_BSLS, KC_END,
- 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_HOME,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(_MEDIA), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RGUI, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_FN] = 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, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
- ),
-
- [_MEDIA] = 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, _______, _______, _______,
- _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
- )
-};
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (index == 0) { /* First encoder */
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- } else if (index == 1) { /* Second encoder */
- if (clockwise) {
- tap_code(KC_RGHT);
- } else {
- tap_code(KC_LEFT);
- }
- } else if (index == 2) { /* Third encoder */
- if (clockwise) {
- rgblight_step();
- } else {
- rgblight_step_reverse();
- }
- }
- return true;
-}
diff --git a/keyboards/basekeys/trifecta/keymaps/via/rules.mk b/keyboards/basekeys/trifecta/keymaps/via/rules.mk
deleted file mode 100644
index 32f462d06ca..00000000000
--- a/keyboards/basekeys/trifecta/keymaps/via/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-VIA_ENABLE = yes
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no
\ No newline at end of file
diff --git a/keyboards/basketweave/keymaps/via/keymap.c b/keyboards/basketweave/keymaps/via/keymap.c
deleted file mode 100644
index fbbca6a7899..00000000000
--- a/keyboards/basketweave/keymaps/via/keymap.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Copyright 2021 null-ll
- *
- * 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_default( /* base */
- QK_GESC, 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_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_MUTE,
- KC_DEL, 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_UP,
- KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
- ),
-
-
- [1] = LAYOUT_default( /* fn */
- /* esc ` 1 2 3 4 5 6 7 8 9 0 - = bspc */
- 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,
- /* ins tab Q W E R T Y U I O P [ ] \ rotary */
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
- /* del caps A S D F G H J K L ; ' enter */
- 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_INS, KC_TRNS,
- /* shift Z X C V B B N M , . / shift up */
- KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_PGUP,
- /* ctrl alt space fn space alt ctrl left down right */
- KC_LCTL, KC_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_RALT, KC_RCTL, KC_HOME, KC_PGDN, KC_END
- ),
-
- [2] = LAYOUT_default( /* extra */
- /* esc ` 1 2 3 4 5 6 7 8 9 0 - = bspc */
- 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,
- /* ins tab Q W E R T Y U I O P [ ] \ rotary */
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /* del caps A S D F G H J K L ; ' enter */
- 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_INS, KC_TRNS,
- /* shift Z X C V B B N M , . / shift up */
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /* ctrl alt space fn space alt ctrl left down right */
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [3] = LAYOUT_default( /* extra */
- /* esc ` 1 2 3 4 5 6 7 8 9 0 - = bspc */
- 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,
- /* ins tab Q W E R T Y U I O P [ ] \ rotary */
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /* del caps A S D F G H J K L ; ' enter */
- 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_INS, KC_TRNS,
- /* shift Z X C V B B N M , . / shift up */
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /* ctrl alt space fn space alt ctrl left down right */
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- )
-};
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (index == 0) {
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- }
- return true;
-}
diff --git a/keyboards/basketweave/keymaps/via/rules.mk b/keyboards/basketweave/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc9..00000000000
--- a/keyboards/basketweave/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/bastardkb/charybdis/3x5/blackpill/config.h b/keyboards/bastardkb/charybdis/3x5/blackpill/config.h
index 0467a1261f4..bd1e0fe31ec 100644
--- a/keyboards/bastardkb/charybdis/3x5/blackpill/config.h
+++ b/keyboards/bastardkb/charybdis/3x5/blackpill/config.h
@@ -29,7 +29,6 @@
#define WS2812_EXTERNAL_PULLUP
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1
#define WS2812_PWM_DMA_CHANNEL 3
-#define WS2812_PWM_TARGET_PERIOD 800000
/* Serial configuration for split keyboard. */
#define SERIAL_USART_TX_PIN A9
diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/default/keymap.c b/keyboards/bastardkb/charybdis/3x5/keymaps/default/keymap.c
index b1bd74957db..e5e0ba1207b 100644
--- a/keyboards/bastardkb/charybdis/3x5/keymaps/default/keymap.c
+++ b/keyboards/bastardkb/charybdis/3x5/keymaps/default/keymap.c
@@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[LAYER_LOWER] = LAYOUT(
// ╭─────────────────────────────────────────────╮ ╭─────────────────────────────────────────────╮
- RGB_TOG, KC_MNXT, KC_MPLY, KC_MPRV, XXXXXXX, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC,
+ RM_TOGG, KC_MNXT, KC_MPLY, KC_MPRV, XXXXXXX, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC,
// ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤
KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_PPLS, KC_4, KC_5, KC_6, KC_PMNS,
// ├─────────────────────────────────────────────┤ ├─────────────────────────────────────────────┤
diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/via/config.h b/keyboards/bastardkb/charybdis/3x5/keymaps/via/config.h
deleted file mode 100644
index fd33c847586..00000000000
--- a/keyboards/bastardkb/charybdis/3x5/keymaps/via/config.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/**
- * Copyright 2021 Charly Delay (@0xcharly)
- *
- * 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
-
-#ifdef VIA_ENABLE
-/* VIA configuration. */
-# define DYNAMIC_KEYMAP_LAYER_COUNT 7
-#endif // VIA_ENABLE
-
-/* Disable unused features. */
-#define NO_ACTION_ONESHOT
-
-/* Charybdis-specific features. */
-
-#ifdef POINTING_DEVICE_ENABLE
-// Automatically enable the pointer layer when moving the trackball. See also:
-// - `CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS`
-// - `CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD`
-// #define CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-#endif // POINTING_DEVICE_ENABLE
diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/via/keymap.c b/keyboards/bastardkb/charybdis/3x5/keymaps/via/keymap.c
deleted file mode 100644
index 5299444ad39..00000000000
--- a/keyboards/bastardkb/charybdis/3x5/keymaps/via/keymap.c
+++ /dev/null
@@ -1,257 +0,0 @@
-/**
- * Copyright 2021 Charly Delay (@0xcharly)
- *
- * 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 CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-# include "timer.h"
-#endif // CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-
-enum charybdis_keymap_layers {
- LAYER_BASE = 0,
- LAYER_FUNCTION,
- LAYER_NAVIGATION,
- LAYER_MEDIA,
- LAYER_POINTER,
- LAYER_NUMERAL,
- LAYER_SYMBOLS,
-};
-
-// Automatically enable sniping-mode on the pointer layer.
-#define CHARYBDIS_AUTO_SNIPING_ON_LAYER LAYER_POINTER
-
-#ifdef CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-static uint16_t auto_pointer_layer_timer = 0;
-
-# ifndef CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS
-# define CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS 1000
-# endif // CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS
-
-# ifndef CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD
-# define CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD 8
-# endif // CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD
-#endif // CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-
-#define ESC_MED LT(LAYER_MEDIA, KC_ESC)
-#define SPC_NAV LT(LAYER_NAVIGATION, KC_SPC)
-#define TAB_FUN LT(LAYER_FUNCTION, KC_TAB)
-#define ENT_SYM LT(LAYER_SYMBOLS, KC_ENT)
-#define BSP_NUM LT(LAYER_NUMERAL, KC_BSPC)
-#define _L_PTR(KC) LT(LAYER_POINTER, KC)
-
-#ifndef POINTING_DEVICE_ENABLE
-# define DRGSCRL KC_NO
-# define DPI_MOD KC_NO
-# define S_D_MOD KC_NO
-# define SNIPING KC_NO
-#endif // !POINTING_DEVICE_ENABLE
-
-// clang-format off
-/** \brief QWERTY layout (3 rows, 10 columns). */
-#define LAYOUT_LAYER_BASE \
- 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_QUOT, \
- KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
- ESC_MED, SPC_NAV, TAB_FUN, ENT_SYM, BSP_NUM
-
-/** Convenience row shorthands. */
-#define _______________DEAD_HALF_ROW_______________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
-#define ______________HOME_ROW_GACS_L______________ KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX
-#define ______________HOME_ROW_GACS_R______________ XXXXXXX, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI
-
-/*
- * Layers used on the Charybdis Nano.
- *
- * These layers started off heavily inspired by the Miryoku layout, but trimmed
- * down and tailored for a stock experience that is meant to be fundation for
- * further personalization.
- *
- * See https://github.com/manna-harbour/miryoku for the original layout.
- */
-
-/**
- * \brief Function layer.
- *
- * Secondary right-hand layer has function keys mirroring the numerals on the
- * primary layer with extras on the pinkie column, plus system keys on the inner
- * column. App is on the tertiary thumb key and other thumb keys are duplicated
- * from the base layer to enable auto-repeat.
- */
-#define LAYOUT_LAYER_FUNCTION \
- _______________DEAD_HALF_ROW_______________, KC_PSCR, KC_F7, KC_F8, KC_F9, KC_F12, \
- ______________HOME_ROW_GACS_L______________, KC_SCRL, KC_F4, KC_F5, KC_F6, KC_F11, \
- _______________DEAD_HALF_ROW_______________, KC_PAUS, KC_F1, KC_F2, KC_F3, KC_F10, \
- XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX
-
-/**
- * \brief Media layer.
- *
- * Tertiary left- and right-hand layer is media and RGB control. This layer is
- * symmetrical to accomodate the left- and right-hand trackball.
- */
-#define LAYOUT_LAYER_MEDIA \
- XXXXXXX,RGB_RMOD, RGB_TOG, RGB_MOD, XXXXXXX, XXXXXXX,RGB_RMOD, RGB_TOG, RGB_MOD, XXXXXXX, \
- KC_MPRV, KC_VOLD, KC_MUTE, KC_VOLU, KC_MNXT, KC_MPRV, KC_VOLD, KC_MUTE, KC_VOLU, KC_MNXT, \
- XXXXXXX, XXXXXXX, XXXXXXX, EE_CLR, QK_BOOT, QK_BOOT, EE_CLR, XXXXXXX, XXXXXXX, XXXXXXX, \
- _______, KC_MPLY, KC_MSTP, KC_MSTP, KC_MPLY
-
-/** \brief Mouse emulation and pointer functions. */
-#define LAYOUT_LAYER_POINTER \
- XXXXXXX, XXXXXXX, XXXXXXX, DPI_MOD, S_D_MOD, S_D_MOD, DPI_MOD, XXXXXXX, XXXXXXX, XXXXXXX, \
- ______________HOME_ROW_GACS_L______________, ______________HOME_ROW_GACS_R______________, \
- _______, DRGSCRL, SNIPING, EE_CLR, QK_BOOT, QK_BOOT, EE_CLR, SNIPING, DRGSCRL, _______, \
- KC_BTN2, KC_BTN1, KC_BTN3, KC_BTN3, KC_BTN1
-
-/**
- * \brief Navigation layer.
- *
- * Primary right-hand layer (left home thumb) is navigation and editing. Cursor
- * keys are on the home position, line and page movement below, clipboard above,
- * caps lock and insert on the inner column. Thumb keys are duplicated from the
- * base layer to avoid having to layer change mid edit and to enable auto-repeat.
- */
-#define LAYOUT_LAYER_NAVIGATION \
- _______________DEAD_HALF_ROW_______________, _______________DEAD_HALF_ROW_______________, \
- ______________HOME_ROW_GACS_L______________, KC_CAPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, \
- _______________DEAD_HALF_ROW_______________, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, \
- XXXXXXX, _______, XXXXXXX, KC_ENT, KC_BSPC
-
-/**
- * \brief Numeral layout.
- *
- * Primary left-hand layer (right home thumb) is numerals and symbols. Numerals
- * are in the standard numpad locations with symbols in the remaining positions.
- * `KC_DOT` is duplicated from the base layer.
- */
-#define LAYOUT_LAYER_NUMERAL \
- KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, _______________DEAD_HALF_ROW_______________, \
- KC_SCLN, KC_4, KC_5, KC_6, KC_EQL, ______________HOME_ROW_GACS_R______________, \
- KC_GRV, KC_1, KC_2, KC_3, KC_BSLS, _______________DEAD_HALF_ROW_______________, \
- KC_DOT, KC_0, KC_MINS, XXXXXXX, _______
-
-/**
- * \brief Symbols layer.
- *
- * Secondary left-hand layer has shifted symbols in the same locations to reduce
- * chording when using mods with shifted symbols. `KC_LPRN` is duplicated next to
- * `KC_RPRN`.
- */
-#define LAYOUT_LAYER_SYMBOLS \
- KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR, _______________DEAD_HALF_ROW_______________, \
- KC_COLN, KC_DLR, KC_PERC, KC_CIRC, KC_PLUS, ______________HOME_ROW_GACS_R______________, \
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_PIPE, _______________DEAD_HALF_ROW_______________, \
- KC_LPRN, KC_RPRN, KC_UNDS, _______, XXXXXXX
-
-/**
- * \brief Add Home Row mod to a layout.
- *
- * Expects a 10-key per row layout. Adds support for GACS (Gui, Alt, Ctl, Shift)
- * home row. The layout passed in parameter must contain at least 20 keycodes.
- *
- * This is meant to be used with `LAYER_ALPHAS_QWERTY` defined above, eg.:
- *
- * HOME_ROW_MOD_GACS(LAYER_ALPHAS_QWERTY)
- */
-#define _HOME_ROW_MOD_GACS( \
- L00, L01, L02, L03, L04, R05, R06, R07, R08, R09, \
- L10, L11, L12, L13, L14, R15, R16, R17, R18, R19, \
- ...) \
- L00, L01, L02, L03, L04, \
- R05, R06, R07, R08, R09, \
- LGUI_T(L10), LALT_T(L11), LCTL_T(L12), LSFT_T(L13), L14, \
- R15, RSFT_T(R16), RCTL_T(R17), LALT_T(R18), RGUI_T(R19), \
- __VA_ARGS__
-#define HOME_ROW_MOD_GACS(...) _HOME_ROW_MOD_GACS(__VA_ARGS__)
-
-/**
- * \brief Add pointer layer keys to a layout.
- *
- * Expects a 10-key per row layout. The layout passed in parameter must contain
- * at least 30 keycodes.
- *
- * This is meant to be used with `LAYER_ALPHAS_QWERTY` defined above, eg.:
- *
- * POINTER_MOD(LAYER_ALPHAS_QWERTY)
- */
-#define _POINTER_MOD( \
- L00, L01, L02, L03, L04, R05, R06, R07, R08, R09, \
- L10, L11, L12, L13, L14, R15, R16, R17, R18, R19, \
- L20, L21, L22, L23, L24, R25, R26, R27, R28, R29, \
- ...) \
- L00, L01, L02, L03, L04, \
- R05, R06, R07, R08, R09, \
- L10, L11, L12, L13, L14, \
- R15, R16, R17, R18, R19, \
- _L_PTR(L20), L21, L22, L23, L24, \
- R25, R26, R27, R28, _L_PTR(R29), \
- __VA_ARGS__
-#define POINTER_MOD(...) _POINTER_MOD(__VA_ARGS__)
-
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [LAYER_BASE] = LAYOUT_wrapper(
- POINTER_MOD(HOME_ROW_MOD_GACS(LAYOUT_LAYER_BASE))
- ),
- [LAYER_FUNCTION] = LAYOUT_wrapper(LAYOUT_LAYER_FUNCTION),
- [LAYER_NAVIGATION] = LAYOUT_wrapper(LAYOUT_LAYER_NAVIGATION),
- [LAYER_MEDIA] = LAYOUT_wrapper(LAYOUT_LAYER_MEDIA),
- [LAYER_NUMERAL] = LAYOUT_wrapper(LAYOUT_LAYER_NUMERAL),
- [LAYER_POINTER] = LAYOUT_wrapper(LAYOUT_LAYER_POINTER),
- [LAYER_SYMBOLS] = LAYOUT_wrapper(LAYOUT_LAYER_SYMBOLS),
-};
-// clang-format on
-
-#ifdef POINTING_DEVICE_ENABLE
-# ifdef CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) {
- if (abs(mouse_report.x) > CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD || abs(mouse_report.y) > CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD) {
- if (auto_pointer_layer_timer == 0) {
- layer_on(LAYER_POINTER);
-# ifdef RGB_MATRIX_ENABLE
- rgb_matrix_mode_noeeprom(RGB_MATRIX_NONE);
- rgb_matrix_sethsv_noeeprom(HSV_GREEN);
-# endif // RGB_MATRIX_ENABLE
- }
- auto_pointer_layer_timer = timer_read();
- }
- return mouse_report;
-}
-
-void matrix_scan_user(void) {
- if (auto_pointer_layer_timer != 0 && TIMER_DIFF_16(timer_read(), auto_pointer_layer_timer) >= CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS) {
- auto_pointer_layer_timer = 0;
- layer_off(LAYER_POINTER);
-# ifdef RGB_MATRIX_ENABLE
- rgb_matrix_mode_noeeprom(RGB_MATRIX_DEFAULT_MODE);
-# endif // RGB_MATRIX_ENABLE
- }
-}
-# endif // CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-
-# ifdef CHARYBDIS_AUTO_SNIPING_ON_LAYER
-layer_state_t layer_state_set_user(layer_state_t state) {
- charybdis_set_pointer_sniping_enabled(layer_state_cmp(state, CHARYBDIS_AUTO_SNIPING_ON_LAYER));
- return state;
-}
-# endif // CHARYBDIS_AUTO_SNIPING_ON_LAYER
-#endif // POINTING_DEVICE_ENABLE
-
-#ifdef RGB_MATRIX_ENABLE
-// Forward-declare this helper function since it is defined in
-// rgb_matrix.c.
-void rgb_matrix_update_pwm_buffers(void);
-#endif
diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/via/readme.md b/keyboards/bastardkb/charybdis/3x5/keymaps/via/readme.md
deleted file mode 100644
index dc7f6f2d30b..00000000000
--- a/keyboards/bastardkb/charybdis/3x5/keymaps/via/readme.md
+++ /dev/null
@@ -1,63 +0,0 @@
-# Charybdis (3x5) `via` keymap
-
-The Charydbis (3x5) `via` keymap is based on a QWERTY layout with [home row mods](https://precondition.github.io/home-row-mods) and [Miryoku-inspired layers](https://github.com/manna-harbour/miryoku), and some features and changes specific to the Charybdis.
-
-This layout supports RGB matrix. However, due to space constraints on the MCU, only a limited number of effect can be enabled at once. Look at the `config.h` file and enable your favorite effect.
-
-This layout also supports VIA.
-
-## Customizing the keymap
-
-### Dynamic DPI scaling
-
-Use the following keycodes to change the default DPI:
-
-- `POINTER_DEFAULT_DPI_FORWARD`: increases the DPI; decreases when shifted;
-- `POINTER_DEFAULT_DPI_REVERSE`: decreases the DPI; increases when shifted.
-
-There's a maximum of 16 possible values for the sniping mode DPI. See the [Charybdis documentation](../../README.md) for more information.
-
-Use the following keycodes to change the sniping mode DPI:
-
-- `POINTER_SNIPING_DPI_FORWARD`: increases the DPI; decreases when shifted;
-- `POINTER_SNIPING_DPI_REVERSE`: decreases the DPI; increases when shifted.
-
-There's a maximum of 4 possible values for the sniping mode DPI. See the [Charybdis documentation](../../README.md) for more information.
-
-### Drag-scroll
-
-Use the `DRAGSCROLL_MODE` keycode to enable drag-scroll on hold. Use the `DRAGSCROLL_TOGGLE` keycode to enable/disable drag-scroll on key press.
-
-### Sniping
-
-Use the `SNIPING_MODE` keycode to enable sniping mode on hold. Use the `SNIPING_TOGGLE` keycode to enable/disable sniping mode on key press.
-
-Change the value of `CHARYBDIS_AUTO_SNIPING_ON_LAYER` to automatically enable sniping mode on layer change. By default, sniping mode is enabled on the pointer layer:
-
-```c
-#define CHARYBDIS_AUTO_SNIPING_ON_LAYER LAYER_POINTER
-```
-
-### Auto pointer layer
-
-The pointer layer can be automatically enabled when moving the trackball. To enable or disable this behavior, add or remove the following define:
-
-```c
-#define CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-```
-
-By default, the layer is turned off 1 second after the last registered trackball movement:
-
-```c
-#define CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS 1000
-```
-
-The trigger sensibility can also be tuned. The lower the value, the more sensible the trigger:
-
-```c
-#define CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD 8
-```
-
-## Layout
-
-
diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/via/rules.mk b/keyboards/bastardkb/charybdis/3x5/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/bastardkb/charybdis/3x5/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/config.h b/keyboards/bastardkb/charybdis/3x6/blackpill/config.h
index b41a1d3f574..e1365a109d9 100644
--- a/keyboards/bastardkb/charybdis/3x6/blackpill/config.h
+++ b/keyboards/bastardkb/charybdis/3x6/blackpill/config.h
@@ -27,7 +27,6 @@
#define WS2812_EXTERNAL_PULLUP
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1
#define WS2812_PWM_DMA_CHANNEL 3
-#define WS2812_PWM_TARGET_PERIOD 800000
/* Serial configuration for split keyboard. */
#define SERIAL_USART_TX_PIN A9
diff --git a/keyboards/bastardkb/charybdis/3x6/keymaps/default/keymap.c b/keyboards/bastardkb/charybdis/3x6/keymaps/default/keymap.c
index c3aa67a944a..ba8028104e0 100644
--- a/keyboards/bastardkb/charybdis/3x6/keymaps/default/keymap.c
+++ b/keyboards/bastardkb/charybdis/3x6/keymaps/default/keymap.c
@@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[LAYER_LOWER] = LAYOUT(
// ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
- XXXXXXX, RGB_TOG, KC_MNXT, KC_MPLY, KC_MPRV, XXXXXXX, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, XXXXXXX,
+ XXXXXXX, RM_TOGG, KC_MNXT, KC_MPLY, KC_MPRV, XXXXXXX, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, XXXXXXX,
// ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
XXXXXXX, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_PPLS, KC_4, KC_5, KC_6, KC_PMNS, XXXXXXX,
// ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
diff --git a/keyboards/bastardkb/charybdis/3x6/keymaps/via/config.h b/keyboards/bastardkb/charybdis/3x6/keymaps/via/config.h
deleted file mode 100644
index 7c850d5e0e9..00000000000
--- a/keyboards/bastardkb/charybdis/3x6/keymaps/via/config.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/**
- * Copyright 2022 Charly Delay (@0xcharly)
- *
- * 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
-
-#ifdef VIA_ENABLE
-/* VIA configuration. */
-# define DYNAMIC_KEYMAP_LAYER_COUNT 4
-#endif // VIA_ENABLE
-
-/* Disable unused features. */
-#define NO_ACTION_ONESHOT
-
-/* Charybdis-specific features. */
-
-#ifdef POINTING_DEVICE_ENABLE
-// Automatically enable the pointer layer when moving the trackball. See also:
-// - `CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS`
-// - `CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD`
-// #define CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-#endif // POINTING_DEVICE_ENABLE
diff --git a/keyboards/bastardkb/charybdis/3x6/keymaps/via/keymap.c b/keyboards/bastardkb/charybdis/3x6/keymaps/via/keymap.c
deleted file mode 100644
index d78ce8b7ffd..00000000000
--- a/keyboards/bastardkb/charybdis/3x6/keymaps/via/keymap.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/**
- * Copyright 2022 Charly Delay (@0xcharly)
- *
- * 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
-
-enum charybdis_keymap_layers {
- LAYER_BASE = 0,
- LAYER_LOWER,
- LAYER_RAISE,
- LAYER_POINTER,
-};
-
-/** \brief Automatically enable sniping-mode on the pointer layer. */
-#define CHARYBDIS_AUTO_SNIPING_ON_LAYER LAYER_POINTER
-
-#ifdef CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-static uint16_t auto_pointer_layer_timer = 0;
-
-# ifndef CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS
-# define CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS 1000
-# endif // CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS
-
-# ifndef CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD
-# define CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD 8
-# endif // CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD
-#endif // CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-
-#define LOWER MO(LAYER_LOWER)
-#define RAISE MO(LAYER_RAISE)
-#define PT_Z LT(LAYER_POINTER, KC_Z)
-#define PT_SLSH LT(LAYER_POINTER, KC_SLSH)
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [LAYER_BASE] = LAYOUT(
- // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
- KC_LGUI, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RGUI,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_RCTL,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- 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_BSPC, KC_SPC, LOWER, RAISE, KC_ENT
- // ╰───────────────────────────╯ ╰──────────────────╯
- ),
-
- [LAYER_LOWER] = LAYOUT(
- // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
- XXXXXXX, RGB_TOG, KC_MNXT, KC_MPLY, KC_MPRV, XXXXXXX, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, XXXXXXX,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- XXXXXXX, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_PPLS, KC_4, KC_5, KC_6, KC_PMNS, XXXXXXX,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EE_CLR, QK_BOOT, KC_PAST, KC_1, KC_2, KC_3, KC_PSLS, XXXXXXX,
- // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
- XXXXXXX, XXXXXXX, _______, XXXXXXX, _______
- // ╰───────────────────────────╯ ╰──────────────────╯
- ),
-
- [LAYER_RAISE] = LAYOUT(
- // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU, KC_MUTE, KC_VOLD, XXXXXXX, XXXXXXX,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- XXXXXXX, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, KC_RSFT, KC_RCTL, KC_RALT, KC_RGUI, XXXXXXX,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- XXXXXXX, KC_HOME, KC_PGUP, KC_PGDN, KC_END, XXXXXXX, QK_BOOT, EE_CLR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
- _______, _______, XXXXXXX, _______, XXXXXXX
- // ╰───────────────────────────╯ ╰──────────────────╯
- ),
-
- [LAYER_POINTER] = LAYOUT(
- // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DPI_MOD, S_D_MOD, S_D_MOD, DPI_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- XXXXXXX, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, KC_RSFT, KC_RCTL, KC_RALT, KC_RGUI, XXXXXXX,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- XXXXXXX, _______, DRGSCRL, SNIPING, EE_CLR, QK_BOOT, QK_BOOT, EE_CLR, SNIPING, DRGSCRL, _______, XXXXXXX,
- // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
- KC_BTN2, KC_BTN1, KC_BTN3, KC_BTN3, KC_BTN1
- // ╰───────────────────────────╯ ╰──────────────────╯
- ),
-};
-// clang-format on
-
-#ifdef POINTING_DEVICE_ENABLE
-# ifdef CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) {
- if (abs(mouse_report.x) > CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD || abs(mouse_report.y) > CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD) {
- if (auto_pointer_layer_timer == 0) {
- layer_on(LAYER_POINTER);
-# ifdef RGB_MATRIX_ENABLE
- rgb_matrix_mode_noeeprom(RGB_MATRIX_NONE);
- rgb_matrix_sethsv_noeeprom(HSV_GREEN);
-# endif // RGB_MATRIX_ENABLE
- }
- auto_pointer_layer_timer = timer_read();
- }
- return mouse_report;
-}
-
-void matrix_scan_user(void) {
- if (auto_pointer_layer_timer != 0 && TIMER_DIFF_16(timer_read(), auto_pointer_layer_timer) >= CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS) {
- auto_pointer_layer_timer = 0;
- layer_off(LAYER_POINTER);
-# ifdef RGB_MATRIX_ENABLE
- rgb_matrix_mode_noeeprom(RGB_MATRIX_DEFAULT_MODE);
-# endif // RGB_MATRIX_ENABLE
- }
-}
-# endif // CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-
-# ifdef CHARYBDIS_AUTO_SNIPING_ON_LAYER
-layer_state_t layer_state_set_user(layer_state_t state) {
- charybdis_set_pointer_sniping_enabled(layer_state_cmp(state, CHARYBDIS_AUTO_SNIPING_ON_LAYER));
- return state;
-}
-# endif // CHARYBDIS_AUTO_SNIPING_ON_LAYER
-#endif // POINTING_DEVICE_ENABLE
-
-#ifdef RGB_MATRIX_ENABLE
-// Forward-declare this helper function since it is defined in rgb_matrix.c.
-void rgb_matrix_update_pwm_buffers(void);
-#endif
diff --git a/keyboards/bastardkb/charybdis/3x6/keymaps/via/readme.md b/keyboards/bastardkb/charybdis/3x6/keymaps/via/readme.md
deleted file mode 100644
index fba00cd9966..00000000000
--- a/keyboards/bastardkb/charybdis/3x6/keymaps/via/readme.md
+++ /dev/null
@@ -1,57 +0,0 @@
-# Charybdis Mini (3x6) `via` keymap
-
-The Charydbis Mini (3x6) `via` keymap is inspired from the original [Dactyl Manuform](../../../../../handwired/dactyl_manuform) default keymap, with some features and changes specific to the Charybdis.
-
-This layout supports RGB matrix. However, due to space constraints on the MCU, only a limited number of effect can be enabled at once. Look at the `config.h` file and enable your favorite effect.
-
-## Customizing the keymap
-
-### Dynamic DPI scaling
-
-Use the following keycodes to change the default DPI:
-
-- `POINTER_DEFAULT_DPI_FORWARD`: increases the DPI; decreases when shifted;
-- `POINTER_DEFAULT_DPI_REVERSE`: decreases the DPI; increases when shifted.
-
-There's a maximum of 16 possible values for the sniping mode DPI. See the [Charybdis documentation](../../README.md) for more information.
-
-Use the following keycodes to change the sniping mode DPI:
-
-- `POINTER_SNIPING_DPI_FORWARD`: increases the DPI; decreases when shifted;
-- `POINTER_SNIPING_DPI_REVERSE`: decreases the DPI; increases when shifted.
-
-There's a maximum of 4 possible values for the sniping mode DPI. See the [Charybdis documentation](../../README.md) for more information.
-
-### Drag-scroll
-
-Use the `DRAGSCROLL_MODE` keycode to enable drag-scroll on hold. Use the `DRAGSCROLL_TOGGLE` keycode to enable/disable drag-scroll on key press.
-
-### Sniping
-
-Use the `SNIPING_MODE` keycode to enable sniping mode on hold. Use the `SNIPING_TOGGLE` keycode to enable/disable sniping mode on key press.
-
-Change the value of `CHARYBDIS_AUTO_SNIPING_ON_LAYER` to automatically enable sniping mode on layer change. By default, sniping mode is enabled on the pointer layer:
-
-```c
-#define CHARYBDIS_AUTO_SNIPING_ON_LAYER LAYER_POINTER
-```
-
-### Auto pointer layer
-
-The pointer layer can be automatically enabled when moving the trackball. To enable or disable this behavior, add or remove the following define:
-
-```c
-#define CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-```
-
-By default, the layer is turned off 1 second after the last registered trackball movement:
-
-```c
-#define CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS 1000
-```
-
-The trigger sensibility can also be tuned. The lower the value, the more sensible the trigger:
-
-```c
-#define CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD 8
-```
diff --git a/keyboards/bastardkb/charybdis/3x6/keymaps/via/rules.mk b/keyboards/bastardkb/charybdis/3x6/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/bastardkb/charybdis/3x6/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/bastardkb/charybdis/4x6/blackpill/config.h b/keyboards/bastardkb/charybdis/4x6/blackpill/config.h
index 0467a1261f4..bd1e0fe31ec 100644
--- a/keyboards/bastardkb/charybdis/4x6/blackpill/config.h
+++ b/keyboards/bastardkb/charybdis/4x6/blackpill/config.h
@@ -29,7 +29,6 @@
#define WS2812_EXTERNAL_PULLUP
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1
#define WS2812_PWM_DMA_CHANNEL 3
-#define WS2812_PWM_TARGET_PERIOD 800000
/* Serial configuration for split keyboard. */
#define SERIAL_USART_TX_PIN A9
diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/default/keymap.c b/keyboards/bastardkb/charybdis/4x6/keymaps/default/keymap.c
index 304e9fc9a48..f440dac8cb7 100644
--- a/keyboards/bastardkb/charybdis/4x6/keymaps/default/keymap.c
+++ b/keyboards/bastardkb/charybdis/4x6/keymaps/default/keymap.c
@@ -46,11 +46,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS,
// ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LBRC, KC_P7, KC_P8, KC_P9, KC_RBRC, XXXXXXX,
+ RM_NEXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LBRC, KC_P7, KC_P8, KC_P9, KC_RBRC, XXXXXXX,
// ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- RGB_TOG, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_PPLS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PEQL,
+ RM_TOGG, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_PPLS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PEQL,
// ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, EE_CLR, QK_BOOT, KC_PAST, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_PDOT,
+ RM_PREV, XXXXXXX, XXXXXXX, XXXXXXX, EE_CLR, QK_BOOT, KC_PAST, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_PDOT,
// ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
XXXXXXX, XXXXXXX, _______, XXXXXXX, _______,
XXXXXXX, XXXXXXX, KC_P0
diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/via/config.h b/keyboards/bastardkb/charybdis/4x6/keymaps/via/config.h
deleted file mode 100644
index cb9013dbd1a..00000000000
--- a/keyboards/bastardkb/charybdis/4x6/keymaps/via/config.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/**
- * Copyright 2021 Charly Delay (@0xcharly)
- *
- * 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
-
-#ifdef VIA_ENABLE
-/* VIA configuration. */
-# define DYNAMIC_KEYMAP_LAYER_COUNT 4
-#endif // VIA_ENABLE
-
-/* Disable unused features. */
-#define NO_ACTION_ONESHOT
-
-/* Charybdis-specific features. */
-
-#ifdef POINTING_DEVICE_ENABLE
-// Automatically enable the pointer layer when moving the trackball. See also:
-// - `CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS`
-// - `CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD`
-// #define CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-#endif // POINTING_DEVICE_ENABLE
diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/via/keymap.c b/keyboards/bastardkb/charybdis/4x6/keymaps/via/keymap.c
deleted file mode 100644
index a0657b02ec8..00000000000
--- a/keyboards/bastardkb/charybdis/4x6/keymaps/via/keymap.c
+++ /dev/null
@@ -1,159 +0,0 @@
-/**
- * Copyright 2021 Charly Delay (@0xcharly)
- *
- * 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 CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-# include "timer.h"
-#endif // CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-
-enum charybdis_keymap_layers {
- LAYER_BASE = 0,
- LAYER_LOWER,
- LAYER_RAISE,
- LAYER_POINTER,
-};
-
-/** \brief Automatically enable sniping-mode on the pointer layer. */
-#define CHARYBDIS_AUTO_SNIPING_ON_LAYER LAYER_POINTER
-
-#ifdef CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-static uint16_t auto_pointer_layer_timer = 0;
-
-# ifndef CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS
-# define CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS 1000
-# endif // CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS
-
-# ifndef CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD
-# define CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD 8
-# endif // CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD
-#endif // CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-
-#define LOWER MO(LAYER_LOWER)
-#define RAISE MO(LAYER_RAISE)
-#define PT_Z LT(LAYER_POINTER, KC_Z)
-#define PT_SLSH LT(LAYER_POINTER, KC_SLSH)
-
-#ifndef POINTING_DEVICE_ENABLE
-# define DRGSCRL KC_NO
-# define DPI_MOD KC_NO
-# define S_D_MOD KC_NO
-# define SNIPING KC_NO
-#endif // !POINTING_DEVICE_ENABLE
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [LAYER_BASE] = 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- KC_LCTL, PT_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, PT_SLSH, KC_LALT,
- // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
- KC_LGUI, KC_SPC, LOWER, RAISE, KC_ENT,
- KC_LALT, KC_BSPC, KC_DEL
- // ╰───────────────────────────╯ ╰──────────────────╯
- ),
-
- [LAYER_LOWER] = LAYOUT(
- // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LBRC, KC_P7, KC_P8, KC_P9, KC_RBRC, XXXXXXX,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- RGB_TOG, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_PPLS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PEQL,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PAST, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_PDOT,
- // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
- XXXXXXX, XXXXXXX, _______, XXXXXXX, _______,
- XXXXXXX, XXXXXXX, KC_P0
- // ╰───────────────────────────╯ ╰──────────────────╯
- ),
-
- [LAYER_RAISE] = LAYOUT(
- // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
- KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- KC_MPLY, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, KC_RSFT, KC_RCTL, KC_RALT, KC_RGUI, KC_MUTE,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- KC_MPRV, KC_HOME, KC_PGUP, KC_PGDN, KC_END, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD,
- // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
- _______, _______, XXXXXXX, _______, XXXXXXX,
- _______, _______, XXXXXXX
- // ╰───────────────────────────╯ ╰──────────────────╯
- ),
-
- [LAYER_POINTER] = LAYOUT(
- // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DPI_MOD, S_D_MOD, S_D_MOD, DPI_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- XXXXXXX, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, KC_RSFT, KC_RCTL, KC_RALT, KC_RGUI, XXXXXXX,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- XXXXXXX, _______, DRGSCRL, SNIPING, EE_CLR, QK_BOOT, QK_BOOT, EE_CLR, SNIPING, DRGSCRL, _______, XXXXXXX,
- // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
- KC_BTN2, KC_BTN1, KC_BTN3, KC_BTN3, KC_BTN1,
- XXXXXXX, KC_BTN2, KC_BTN2
- // ╰───────────────────────────╯ ╰──────────────────╯
- ),
-};
-// clang-format on
-
-#ifdef POINTING_DEVICE_ENABLE
-# ifdef CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) {
- if (abs(mouse_report.x) > CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD || abs(mouse_report.y) > CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD) {
- if (auto_pointer_layer_timer == 0) {
- layer_on(LAYER_POINTER);
-# ifdef RGB_MATRIX_ENABLE
- rgb_matrix_mode_noeeprom(RGB_MATRIX_NONE);
- rgb_matrix_sethsv_noeeprom(HSV_GREEN);
-# endif // RGB_MATRIX_ENABLE
- }
- auto_pointer_layer_timer = timer_read();
- }
- return mouse_report;
-}
-
-void matrix_scan_user(void) {
- if (auto_pointer_layer_timer != 0 && TIMER_DIFF_16(timer_read(), auto_pointer_layer_timer) >= CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS) {
- auto_pointer_layer_timer = 0;
- layer_off(LAYER_POINTER);
-# ifdef RGB_MATRIX_ENABLE
- rgb_matrix_mode_noeeprom(RGB_MATRIX_DEFAULT_MODE);
-# endif // RGB_MATRIX_ENABLE
- }
-}
-# endif // CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-
-# ifdef CHARYBDIS_AUTO_SNIPING_ON_LAYER
-layer_state_t layer_state_set_user(layer_state_t state) {
- charybdis_set_pointer_sniping_enabled(layer_state_cmp(state, CHARYBDIS_AUTO_SNIPING_ON_LAYER));
- return state;
-}
-# endif // CHARYBDIS_AUTO_SNIPING_ON_LAYER
-#endif // POINTING_DEVICE_ENABLE
-
-#ifdef RGB_MATRIX_ENABLE
-// Forward-declare this helper function since it is defined in rgb_matrix.c.
-void rgb_matrix_update_pwm_buffers(void);
-#endif
diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/via/readme.md b/keyboards/bastardkb/charybdis/4x6/keymaps/via/readme.md
deleted file mode 100644
index ad2634ef0ca..00000000000
--- a/keyboards/bastardkb/charybdis/4x6/keymaps/via/readme.md
+++ /dev/null
@@ -1,61 +0,0 @@
-# Charybdis (4x6) `via` keymap
-
-The Charydbis (4x6) `via` keymap is inspired from the original [Dactyl Manuform](../../../../../handwired/dactyl_manuform) default keymap, with some features and changes specific to the Charybdis.
-
-This layout supports RGB matrix. However, due to space constraints on the MCU, only a limited number of effect can be enabled at once. Look at the `config.h` file and enable your favorite effect.
-
-## Customizing the keymap
-
-### Dynamic DPI scaling
-
-Use the following keycodes to change the default DPI:
-
-- `POINTER_DEFAULT_DPI_FORWARD`: increases the DPI; decreases when shifted;
-- `POINTER_DEFAULT_DPI_REVERSE`: decreases the DPI; increases when shifted.
-
-There's a maximum of 16 possible values for the sniping mode DPI. See the [Charybdis documentation](../../README.md) for more information.
-
-Use the following keycodes to change the sniping mode DPI:
-
-- `POINTER_SNIPING_DPI_FORWARD`: increases the DPI; decreases when shifted;
-- `POINTER_SNIPING_DPI_REVERSE`: decreases the DPI; increases when shifted.
-
-There's a maximum of 4 possible values for the sniping mode DPI. See the [Charybdis documentation](../../README.md) for more information.
-
-### Drag-scroll
-
-Use the `DRAGSCROLL_MODE` keycode to enable drag-scroll on hold. Use the `DRAGSCROLL_TOGGLE` keycode to enable/disable drag-scroll on key press.
-
-### Sniping
-
-Use the `SNIPING_MODE` keycode to enable sniping mode on hold. Use the `SNIPING_TOGGLE` keycode to enable/disable sniping mode on key press.
-
-Change the value of `CHARYBDIS_AUTO_SNIPING_ON_LAYER` to automatically enable sniping mode on layer change. By default, sniping mode is enabled on the pointer layer:
-
-```c
-#define CHARYBDIS_AUTO_SNIPING_ON_LAYER LAYER_POINTER
-```
-
-### Auto pointer layer
-
-The pointer layer can be automatically enabled when moving the trackball. To enable or disable this behavior, add or remove the following define:
-
-```c
-#define CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-```
-
-By default, the layer is turned off 1 second after the last registered trackball movement:
-
-```c
-#define CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS 1000
-```
-
-The trigger sensibility can also be tuned. The lower the value, the more sensible the trigger:
-
-```c
-#define CHARYBDIS_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD 8
-```
-
-## Layout
-
-
diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/via/rules.mk b/keyboards/bastardkb/charybdis/4x6/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/bastardkb/charybdis/4x6/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/bastardkb/charybdis/charybdis.c b/keyboards/bastardkb/charybdis/charybdis.c
index 0ee5c3eed97..2251b247581 100644
--- a/keyboards/bastardkb/charybdis/charybdis.c
+++ b/keyboards/bastardkb/charybdis/charybdis.c
@@ -393,7 +393,6 @@ bool shutdown_kb(bool jump_to_bootloader) {
rgblight_setrgb(RGB_RED);
#endif // RGBLIGHT_ENABLE
#ifdef RGB_MATRIX_ENABLE
- void rgb_matrix_update_pwm_buffers(void);
rgb_matrix_set_color_all(RGB_RED);
rgb_matrix_update_pwm_buffers();
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/bastardkb/charybdis/config.h b/keyboards/bastardkb/charybdis/config.h
index 32ab7b0ebbf..ebbddecf578 100644
--- a/keyboards/bastardkb/charybdis/config.h
+++ b/keyboards/bastardkb/charybdis/config.h
@@ -34,13 +34,6 @@
/* RGB matrix support. */
#ifdef RGB_MATRIX_ENABLE
-# ifndef __arm__
-// Disable control of RGB matrix by keycodes (must use firmware implementation
-// to control the feature).
-# define RGB_MATRIX_DISABLE_KEYCODES
-# else // __arm__
-// Enable all animations on ARM boards since they have plenty of memory
-// available for it.
# define ENABLE_RGB_MATRIX_ALPHAS_MODS
# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
@@ -81,5 +74,4 @@
# define ENABLE_RGB_MATRIX_MULTISPLASH
# define ENABLE_RGB_MATRIX_SOLID_SPLASH
# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-# endif // !__arm__
#endif
diff --git a/keyboards/bastardkb/dilemma/3x5_2/keymaps/via/config.h b/keyboards/bastardkb/dilemma/3x5_2/keymaps/via/config.h
deleted file mode 100644
index f92ea9a4c91..00000000000
--- a/keyboards/bastardkb/dilemma/3x5_2/keymaps/via/config.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * Copyright 2021 Charly Delay (@0xcharly)
- *
- * 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
-
-#ifdef VIA_ENABLE
-/* VIA configuration. */
-# define DYNAMIC_KEYMAP_LAYER_COUNT 6
-#endif // VIA_ENABLE
-
-/* Charybdis-specific features. */
-
-#ifdef POINTING_DEVICE_ENABLE
-// Automatically enable the pointer layer when moving the trackball. See also:
-// - `DILEMMA_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS`
-// - `DILEMMA_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD`
-// #define DILEMMA_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-#endif // POINTING_DEVICE_ENABLE
diff --git a/keyboards/bastardkb/dilemma/3x5_2/keymaps/via/keymap.c b/keyboards/bastardkb/dilemma/3x5_2/keymaps/via/keymap.c
deleted file mode 100644
index b3aeaf014f6..00000000000
--- a/keyboards/bastardkb/dilemma/3x5_2/keymaps/via/keymap.c
+++ /dev/null
@@ -1,229 +0,0 @@
-/**
- * Copyright 2022 Charly Delay (@0xcharly)
- *
- * 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 DILEMMA_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-# include "timer.h"
-#endif // DILEMMA_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-
-enum dilemma_keymap_layers {
- LAYER_BASE = 0,
- LAYER_FUNCTION,
- LAYER_NAVIGATION,
- LAYER_POINTER,
- LAYER_NUMERAL,
- LAYER_SYMBOLS,
-};
-
-// Automatically enable sniping-mode on the pointer layer.
-#define DILEMMA_AUTO_SNIPING_ON_LAYER LAYER_POINTER
-
-#ifdef DILEMMA_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-static uint16_t auto_pointer_layer_timer = 0;
-
-# ifndef DILEMMA_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS
-# define DILEMMA_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS 1000
-# endif // DILEMMA_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS
-
-# ifndef DILEMMA_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD
-# define DILEMMA_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD 8
-# endif // DILEMMA_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD
-#endif // DILEMMA_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-
-#define SPC_NAV LT(LAYER_NAVIGATION, KC_SPC)
-#define TAB_FUN LT(LAYER_FUNCTION, KC_TAB)
-#define ENT_SYM LT(LAYER_SYMBOLS, KC_ENT)
-#define BSP_NUM LT(LAYER_NUMERAL, KC_BSPC)
-#define _L_PTR(KC) LT(LAYER_POINTER, KC)
-
-#ifndef POINTING_DEVICE_ENABLE
-# define DRGSCRL KC_NO
-# define DPI_MOD KC_NO
-# define S_D_MOD KC_NO
-# define SNIPING KC_NO
-#endif // !POINTING_DEVICE_ENABLE
-
-// clang-format off
-/** \brief QWERTY layout (3 rows, 10 columns). */
-#define LAYOUT_LAYER_BASE \
- 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_QUOT, \
- KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
- TAB_FUN, SPC_NAV, ENT_SYM, BSP_NUM
-
-/** Convenience row shorthands. */
-#define _______________DEAD_HALF_ROW_______________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
-#define ______________HOME_ROW_GACS_L______________ KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX
-#define ______________HOME_ROW_GACS_R______________ XXXXXXX, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI
-
-/*
- * Layers used on the Dilemma.
- *
- * These layers started off heavily inspired by the Miryoku layout, but trimmed
- * down and tailored for a stock experience that is meant to be fundation for
- * further personalization.
- *
- * See https://github.com/manna-harbour/miryoku for the original layout.
- */
-
-/**
- * \brief Function layer.
- *
- * Secondary right-hand layer has function keys mirroring the numerals on the
- * primary layer with extras on the pinkie column, plus system keys on the inner
- * column. App is on the tertiary thumb key and other thumb keys are duplicated
- * from the base layer to enable auto-repeat.
- */
-#define LAYOUT_LAYER_FUNCTION \
- _______________DEAD_HALF_ROW_______________, KC_PSCR, KC_F7, KC_F8, KC_F9, KC_F12, \
- ______________HOME_ROW_GACS_L______________, KC_SCRL, KC_F4, KC_F5, KC_F6, KC_F11, \
- _______________DEAD_HALF_ROW_______________, KC_PAUS, KC_F1, KC_F2, KC_F3, KC_F10, \
- _______, XXXXXXX, XXXXXXX, XXXXXXX
-
-/** \brief Mouse emulation and pointer functions. */
-#define LAYOUT_LAYER_POINTER \
- QK_BOOT, XXXXXXX, XXXXXXX, DPI_MOD, S_D_MOD, S_D_MOD, DPI_MOD, XXXXXXX, XXXXXXX, QK_BOOT, \
- ______________HOME_ROW_GACS_L______________, ______________HOME_ROW_GACS_R______________, \
- _______, DRGSCRL, SNIPING, KC_BTN3, XXXXXXX, XXXXXXX, KC_BTN3, SNIPING, DRGSCRL, _______, \
- KC_BTN2, KC_BTN1, KC_BTN1, KC_BTN2
-
-/**
- * \brief Navigation layer.
- *
- * Primary right-hand layer (left home thumb) is navigation and editing. Cursor
- * keys are on the home position, line and page movement below, clipboard above,
- * caps lock and insert on the inner column. Thumb keys are duplicated from the
- * base layer to avoid having to layer change mid edit and to enable auto-repeat.
- */
-#define LAYOUT_LAYER_NAVIGATION \
- _______________DEAD_HALF_ROW_______________, _______________DEAD_HALF_ROW_______________, \
- ______________HOME_ROW_GACS_L______________, KC_CAPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, \
- _______________DEAD_HALF_ROW_______________, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, \
- XXXXXXX, _______, KC_ENT, KC_BSPC
-
-/**
- * \brief Numeral layout.
- *
- * Primary left-hand layer (right home thumb) is numerals and symbols. Numerals
- * are in the standard numpad locations with symbols in the remaining positions.
- * `KC_DOT` is duplicated from the base layer.
- */
-#define LAYOUT_LAYER_NUMERAL \
- KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, _______________DEAD_HALF_ROW_______________, \
- KC_SCLN, KC_4, KC_5, KC_6, KC_EQL, ______________HOME_ROW_GACS_R______________, \
- KC_DOT, KC_1, KC_2, KC_3, KC_BSLS, _______________DEAD_HALF_ROW_______________, \
- KC_MINS, KC_0, XXXXXXX, _______
-
-/**
- * \brief Symbols layer.
- *
- * Secondary left-hand layer has shifted symbols in the same locations to reduce
- * chording when using mods with shifted symbols. `KC_LPRN` is duplicated next to
- * `KC_RPRN`.
- */
-#define LAYOUT_LAYER_SYMBOLS \
- KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR, _______________DEAD_HALF_ROW_______________, \
- KC_COLN, KC_DLR, KC_PERC, KC_CIRC, KC_PLUS, ______________HOME_ROW_GACS_R______________, \
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_PIPE, _______________DEAD_HALF_ROW_______________, \
- KC_GRV, KC_UNDS, _______, XXXXXXX
-
-/**
- * \brief Add Home Row mod to a layout.
- *
- * Expects a 10-key per row layout. Adds support for GACS (Gui, Alt, Ctl, Shift)
- * home row. The layout passed in parameter must contain at least 20 keycodes.
- *
- * This is meant to be used with `LAYER_ALPHAS_QWERTY` defined above, eg.:
- *
- * HOME_ROW_MOD_GACS(LAYER_ALPHAS_QWERTY)
- */
-#define _HOME_ROW_MOD_GACS( \
- L00, L01, L02, L03, L04, R05, R06, R07, R08, R09, \
- L10, L11, L12, L13, L14, R15, R16, R17, R18, R19, \
- ...) \
- L00, L01, L02, L03, L04, \
- R05, R06, R07, R08, R09, \
- LGUI_T(L10), LALT_T(L11), LCTL_T(L12), LSFT_T(L13), L14, \
- R15, RSFT_T(R16), RCTL_T(R17), LALT_T(R18), RGUI_T(R19), \
- __VA_ARGS__
-#define HOME_ROW_MOD_GACS(...) _HOME_ROW_MOD_GACS(__VA_ARGS__)
-
-/**
- * \brief Add pointer layer keys to a layout.
- *
- * Expects a 10-key per row layout. The layout passed in parameter must contain
- * at least 30 keycodes.
- *
- * This is meant to be used with `LAYER_ALPHAS_QWERTY` defined above, eg.:
- *
- * POINTER_MOD(LAYER_ALPHAS_QWERTY)
- */
-#define _POINTER_MOD( \
- L00, L01, L02, L03, L04, R05, R06, R07, R08, R09, \
- L10, L11, L12, L13, L14, R15, R16, R17, R18, R19, \
- L20, L21, L22, L23, L24, R25, R26, R27, R28, R29, \
- ...) \
- L00, L01, L02, L03, L04, \
- R05, R06, R07, R08, R09, \
- L10, L11, L12, L13, L14, \
- R15, R16, R17, R18, R19, \
- _L_PTR(L20), L21, L22, L23, L24, \
- R25, R26, R27, R28, _L_PTR(R29), \
- __VA_ARGS__
-#define POINTER_MOD(...) _POINTER_MOD(__VA_ARGS__)
-
-#define LAYOUT_wrapper(...) LAYOUT_split_3x5_2(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [LAYER_BASE] = LAYOUT_wrapper(
- POINTER_MOD(HOME_ROW_MOD_GACS(LAYOUT_LAYER_BASE))
- ),
- [LAYER_FUNCTION] = LAYOUT_wrapper(LAYOUT_LAYER_FUNCTION),
- [LAYER_NAVIGATION] = LAYOUT_wrapper(LAYOUT_LAYER_NAVIGATION),
- [LAYER_NUMERAL] = LAYOUT_wrapper(LAYOUT_LAYER_NUMERAL),
- [LAYER_POINTER] = LAYOUT_wrapper(LAYOUT_LAYER_POINTER),
- [LAYER_SYMBOLS] = LAYOUT_wrapper(LAYOUT_LAYER_SYMBOLS),
-};
-// clang-format on
-
-#ifdef POINTING_DEVICE_ENABLE
-# ifdef DILEMMA_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) {
- if (abs(mouse_report.x) > DILEMMA_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD || abs(mouse_report.y) > DILEMMA_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD) {
- if (auto_pointer_layer_timer == 0) {
- layer_on(LAYER_POINTER);
- }
- auto_pointer_layer_timer = timer_read();
- }
- return mouse_report;
-}
-
-void matrix_scan_user(void) {
- if (auto_pointer_layer_timer != 0 && TIMER_DIFF_16(timer_read(), auto_pointer_layer_timer) >= DILEMMA_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS) {
- auto_pointer_layer_timer = 0;
- layer_off(LAYER_POINTER);
- }
-}
-# endif // DILEMMA_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-
-# ifdef DILEMMA_AUTO_SNIPING_ON_LAYER
-layer_state_t layer_state_set_user(layer_state_t state) {
- dilemma_set_pointer_sniping_enabled(layer_state_cmp(state, DILEMMA_AUTO_SNIPING_ON_LAYER));
- return state;
-}
-# endif // DILEMMA_AUTO_SNIPING_ON_LAYER
-#endif // POINTING_DEVICE_ENABLE
diff --git a/keyboards/bastardkb/dilemma/3x5_2/keymaps/via/readme.md b/keyboards/bastardkb/dilemma/3x5_2/keymaps/via/readme.md
deleted file mode 100644
index df40677f4df..00000000000
--- a/keyboards/bastardkb/dilemma/3x5_2/keymaps/via/readme.md
+++ /dev/null
@@ -1,67 +0,0 @@
-# Dilemma `via` keymap
-
-The Dilemma `via` keymap is based on a QWERTY layout with [home row mods](https://precondition.github.io/home-row-mods) and [Miryoku-inspired layers](https://github.com/manna-harbour/miryoku), and some features and changes specific to the Dilemma.
-
-This layout also supports VIA.
-
-## Customizing the keymap
-
-### Dynamic DPI scaling
-
-Use the following keycodes to change the default DPI:
-
-- `POINTER_DEFAULT_DPI_FORWARD`: increases the DPI; decreases when shifted;
-- `POINTER_DEFAULT_DPI_REVERSE`: decreases the DPI; increases when shifted.
-
-There's a maximum of 16 possible values for the sniping mode DPI. See the [Dilemma documentation](../../README.md) for more information.
-
-Use the following keycodes to change the sniping mode DPI:
-
-- `POINTER_SNIPING_DPI_FORWARD`: increases the DPI; decreases when shifted;
-- `POINTER_SNIPING_DPI_REVERSE`: decreases the DPI; increases when shifted.
-
-There's a maximum of 4 possible values for the sniping mode DPI. See the [Dilemma documentation](../../README.md) for more information.
-
-### Drag-scroll
-
-Use the `DRAGSCROLL_MODE` keycode to enable drag-scroll on hold. Use the `DRAGSCROLL_TOGGLE` keycode to enable/disable drag-scroll on key press.
-
-### Circular scroll
-
-By default, the firmware is configured to enable the circular scroll feature on Cirque trackpad.
-
-To disable this, add the following to your keymap:
-
-```c
-#undef POINTING_DEVICE_GESTURES_SCROLL_ENABLE
-```
-
-### Sniping
-
-Use the `SNIPING_MODE` keycode to enable sniping mode on hold. Use the `SNIPING_TOGGLE` keycode to enable/disable sniping mode on key press.
-
-Change the value of `DILEMMA_AUTO_SNIPING_ON_LAYER` to automatically enable sniping mode on layer change. By default, sniping mode is enabled on the pointer layer:
-
-```c
-#define DILEMMA_AUTO_SNIPING_ON_LAYER LAYER_POINTER
-```
-
-### Auto pointer layer
-
-The pointer layer can be automatically enabled when moving the trackball. To enable or disable this behavior, add or remove the following define:
-
-```c
-#define DILEMMA_AUTO_POINTER_LAYER_TRIGGER_ENABLE
-```
-
-By default, the layer is turned off 1 second after the last registered trackball movement:
-
-```c
-#define DILEMMA_AUTO_POINTER_LAYER_TRIGGER_TIMEOUT_MS 1000
-```
-
-The trigger sensibility can also be tuned. The lower the value, the more sensible the trigger:
-
-```c
-#define DILEMMA_AUTO_POINTER_LAYER_TRIGGER_THRESHOLD 8
-```
diff --git a/keyboards/bastardkb/dilemma/3x5_2/keymaps/via/rules.mk b/keyboards/bastardkb/dilemma/3x5_2/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/bastardkb/dilemma/3x5_2/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/bastardkb/dilemma/3x5_3/3x5_3.c b/keyboards/bastardkb/dilemma/3x5_3/3x5_3.c
index 3decc51e846..a186139835b 100644
--- a/keyboards/bastardkb/dilemma/3x5_3/3x5_3.c
+++ b/keyboards/bastardkb/dilemma/3x5_3/3x5_3.c
@@ -51,36 +51,36 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
uint8_t layer = get_highest_layer(layer_state);
if (layer > 0) {
- HSV hsv = rgb_matrix_get_hsv();
+ hsv_t hsv = rgb_matrix_get_hsv();
switch (get_highest_layer(layer_state)) {
case 1:
- hsv = (HSV){HSV_BLUE};
+ hsv = (hsv_t){HSV_BLUE};
break;
case 2:
- hsv = (HSV){HSV_AZURE};
+ hsv = (hsv_t){HSV_AZURE};
break;
case 3:
- hsv = (HSV){HSV_ORANGE};
+ hsv = (hsv_t){HSV_ORANGE};
break;
case 4:
- hsv = (HSV){HSV_GREEN};
+ hsv = (hsv_t){HSV_GREEN};
break;
case 5:
- hsv = (HSV){HSV_TEAL};
+ hsv = (hsv_t){HSV_TEAL};
break;
case 6:
- hsv = (HSV){HSV_PURPLE};
+ hsv = (hsv_t){HSV_PURPLE};
break;
case 7:
default:
- hsv = (HSV){HSV_RED};
+ hsv = (hsv_t){HSV_RED};
break;
};
if (hsv.v > rgb_matrix_get_val()) {
hsv.v = MIN(rgb_matrix_get_val() + 22, 255);
}
- RGB rgb = hsv_to_rgb(hsv);
+ rgb_t rgb = hsv_to_rgb(hsv);
for (uint8_t i = led_min; i < led_max; i++) {
if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) {
diff --git a/keyboards/bastardkb/dilemma/3x5_3/keymaps/via/config.h b/keyboards/bastardkb/dilemma/3x5_3/keymaps/via/config.h
deleted file mode 100644
index 790d6bf751d..00000000000
--- a/keyboards/bastardkb/dilemma/3x5_3/keymaps/via/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * Copyright 2021 Charly Delay (@0xcharly)
- * Copyright 2023 casuanoob (@casuanoob)
- *
- * 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 DYNAMIC_KEYMAP_LAYER_COUNT 8
-
-#define SPLIT_LAYER_STATE_ENABLE
-#define SPLIT_LED_STATE_ENABLE
diff --git a/keyboards/bastardkb/dilemma/3x5_3/keymaps/via/keymap.c b/keyboards/bastardkb/dilemma/3x5_3/keymaps/via/keymap.c
deleted file mode 100644
index 70c89647d11..00000000000
--- a/keyboards/bastardkb/dilemma/3x5_3/keymaps/via/keymap.c
+++ /dev/null
@@ -1,170 +0,0 @@
-/**
- * Copyright 2022 Charly Delay (@0xcharly)
- * Copyright 2023 casuanoob (@casuanoob)
- *
- * 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
-
-enum dilemma_keymap_layers {
- LAYER_BASE = 0,
- LAYER_FUNCTION,
- LAYER_NAVIGATION,
- LAYER_MEDIA,
- LAYER_POINTER,
- LAYER_NUMERAL,
- LAYER_SYMBOLS,
-};
-
-// Automatically enable sniping-mode on the pointer layer.
-// #define DILEMMA_AUTO_SNIPING_ON_LAYER LAYER_POINTER
-
-#define ESC_MED LT(LAYER_MEDIA, KC_ESC)
-#define SPC_NAV LT(LAYER_NAVIGATION, KC_SPC)
-#define TAB_FUN LT(LAYER_FUNCTION, KC_TAB)
-#define ENT_SYM LT(LAYER_SYMBOLS, KC_ENT)
-#define BSP_NUM LT(LAYER_NUMERAL, KC_BSPC)
-#define PT_Z LT(LAYER_POINTER, KC_Z)
-#define PT_SLSH LT(LAYER_POINTER, KC_SLSH)
-
-#ifndef POINTING_DEVICE_ENABLE
-# define DRGSCRL KC_NO
-# define DPI_MOD KC_NO
-# define S_D_MOD KC_NO
-# define SNIPING KC_NO
-#endif // !POINTING_DEVICE_ENABLE
-
-// clang-format off
-/** \brief QWERTY layout (3 rows, 10 columns). */
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [LAYER_BASE] = LAYOUT_split_3x5_3(
- KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
- LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, RSFT_T(KC_J), RCTL_T(KC_K), RALT_T(KC_L), RGUI_T(KC_QUOT),
- PT_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, PT_SLSH,
- ESC_MED, TAB_FUN, SPC_NAV, ENT_SYM, BSP_NUM, KC_MUTE
- ),
-
-/*
- * Layers used on the Dilemma.
- *
- * These layers started off heavily inspired by the Miryoku layout, but trimmed
- * down and tailored for a stock experience that is meant to be fundation for
- * further personalization.
- *
- * See https://github.com/manna-harbour/miryoku for the original layout.
- */
-
-/**
- * \brief Function layer.
- *
- * Secondary right-hand layer has function keys mirroring the numerals on the
- * primary layer with extras on the pinkie column, plus system keys on the inner
- * column. App is on the tertiary thumb key and other thumb keys are duplicated
- * from the base layer to enable auto-repeat.
- */
- [LAYER_FUNCTION] = LAYOUT_split_3x5_3(
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, KC_F7, KC_F8, KC_F9, KC_F12,
- KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_SCRL, KC_F4, KC_F5, KC_F6, KC_F11,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PAUS, KC_F1, KC_F2, KC_F3, KC_F10,
- XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
- ),
-
-/**
- * \brief Navigation layer.
- *
- * Primary right-hand layer (left home thumb) is navigation and editing. Cursor
- * keys are on the home position, line and page movement below, clipboard above,
- * caps lock and insert on the inner column. Thumb keys are duplicated from the
- * base layer to avoid having to layer change mid edit and to enable auto-repeat.
- */
- [LAYER_NAVIGATION] = LAYOUT_split_3x5_3(
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_CAPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END,
- XXXXXXX, XXXXXXX, _______, KC_ENT, KC_BSPC, KC_DEL
- ),
-
-/**
- * \brief Media layer.
- *
- * Tertiary left- and right-hand layer is media and RGB control. This layer is
- * symmetrical to accomodate the left- and right-hand trackball.
- */
- [LAYER_MEDIA] = LAYOUT_split_3x5_3(
- XXXXXXX,RGB_RMOD, RGB_TOG, RGB_MOD, XXXXXXX, XXXXXXX,RGB_RMOD, RGB_TOG, RGB_MOD, XXXXXXX,
- KC_MPRV, KC_VOLD, KC_MUTE, KC_VOLU, KC_MNXT, KC_MPRV, KC_VOLD, KC_MUTE, KC_VOLU, KC_MNXT,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- _______, KC_MPLY, KC_MSTP, KC_MSTP, KC_MPLY, KC_MUTE
- ),
-
-/** \brief Mouse emulation and pointer functions. */
- [LAYER_POINTER] = LAYOUT_split_3x5_3(
- QK_BOOT, EE_CLR, XXXXXXX, DPI_MOD, S_D_MOD, S_D_MOD, DPI_MOD, XXXXXXX, EE_CLR, QK_BOOT,
- KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI,
- _______, DRGSCRL, SNIPING, KC_BTN3, XXXXXXX, XXXXXXX, KC_BTN3, SNIPING, DRGSCRL, _______,
- KC_BTN3, KC_BTN2, KC_BTN1, KC_BTN1, KC_BTN2, KC_BTN3
- ),
-
-/**
- * \brief Numeral layout.
- *
- * Primary left-hand layer (right home thumb) is numerals and symbols. Numerals
- * are in the standard numpad locations with symbols in the remaining positions.
- * `KC_DOT` is duplicated from the base layer.
- */
- [LAYER_NUMERAL] = LAYOUT_split_3x5_3(
- KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- KC_SCLN, KC_4, KC_5, KC_6, KC_EQL, XXXXXXX, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI,
- KC_DOT, KC_1, KC_2, KC_3, KC_BSLS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- KC_DOT, KC_MINS, KC_0, XXXXXXX, _______, XXXXXXX
- ),
-
-/**
- * \brief Symbols layer.
- *
- * Secondary left-hand layer has shifted symbols in the same locations to reduce
- * chording when using mods with shifted symbols. `KC_LPRN` is duplicated next to
- * `KC_RPRN`.
- */
- [LAYER_SYMBOLS] = LAYOUT_split_3x5_3(
- KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- KC_COLN, KC_DLR, KC_PERC, KC_CIRC, KC_PLUS, XXXXXXX, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI,
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_PIPE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- KC_LPRN, KC_GRV, KC_UNDS, _______, XXXXXXX, XXXXXXX
- ),
-};
-// clang-format on
-
-#ifdef POINTING_DEVICE_ENABLE
-# ifdef DILEMMA_AUTO_SNIPING_ON_LAYER
-layer_state_t layer_state_set_user(layer_state_t state) {
- dilemma_set_pointer_sniping_enabled(layer_state_cmp(state, DILEMMA_AUTO_SNIPING_ON_LAYER));
- return state;
-}
-# endif // DILEMMA_AUTO_SNIPING_ON_LAYER
-#endif // POINTING_DEVICE_ENABLE
-
-#ifdef ENCODER_MAP_ENABLE
-// clang-format off
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [LAYER_BASE] = {ENCODER_CCW_CW(KC_WH_D, KC_WH_U), ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
- [LAYER_FUNCTION] = {ENCODER_CCW_CW(KC_DOWN, KC_UP), ENCODER_CCW_CW(KC_LEFT, KC_RGHT)},
- [LAYER_NAVIGATION] = {ENCODER_CCW_CW(KC_PGDN, KC_PGUP), ENCODER_CCW_CW(KC_VOLU, KC_VOLD)},
- [LAYER_POINTER] = {ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI)},
- [LAYER_NUMERAL] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_SPD, RGB_SPI)},
- [LAYER_SYMBOLS] = {ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(KC_LEFT, KC_RGHT)},
-};
-// clang-format on
-#endif // ENCODER_MAP_ENABLE
diff --git a/keyboards/bastardkb/dilemma/3x5_3/keymaps/via/readme.md b/keyboards/bastardkb/dilemma/3x5_3/keymaps/via/readme.md
deleted file mode 100644
index 4552f0948dc..00000000000
--- a/keyboards/bastardkb/dilemma/3x5_3/keymaps/via/readme.md
+++ /dev/null
@@ -1,47 +0,0 @@
-# Dilemma `via` keymap
-
-The Dilemma `via` keymap is based on a QWERTY layout with [home row mods](https://precondition.github.io/home-row-mods) and [Miryoku-inspired layers](https://github.com/manna-harbour/miryoku), and some features and changes specific to the Dilemma.
-
-This layout also supports VIA.
-
-## Customizing the keymap
-
-### Dynamic DPI scaling
-
-Use the following keycodes to change the default DPI:
-
-- `POINTER_DEFAULT_DPI_FORWARD`: increases the DPI; decreases when shifted;
-- `POINTER_DEFAULT_DPI_REVERSE`: decreases the DPI; increases when shifted.
-
-There's a maximum of 16 possible values for the sniping mode DPI. See the [Dilemma documentation](../../README.md) for more information.
-
-Use the following keycodes to change the sniping mode DPI:
-
-- `POINTER_SNIPING_DPI_FORWARD`: increases the DPI; decreases when shifted;
-- `POINTER_SNIPING_DPI_REVERSE`: decreases the DPI; increases when shifted.
-
-There's a maximum of 4 possible values for the sniping mode DPI. See the [Dilemma documentation](../../README.md) for more information.
-
-### Drag-scroll
-
-Use the `DRAGSCROLL_MODE` keycode to enable drag-scroll on hold. Use the `DRAGSCROLL_TOGGLE` keycode to enable/disable drag-scroll on key press.
-
-### Circular scroll
-
-By default, the firmware is configured to enable the circular scroll feature on Cirque trackpad.
-
-To disable this, add the following to your keymap:
-
-```c
-#undef POINTING_DEVICE_GESTURES_SCROLL_ENABLE
-```
-
-### Sniping
-
-Use the `SNIPING_MODE` keycode to enable sniping mode on hold. Use the `SNIPING_TOGGLE` keycode to enable/disable sniping mode on key press.
-
-Change the value of `DILEMMA_AUTO_SNIPING_ON_LAYER` to automatically enable sniping mode on layer change. By default, sniping mode is enabled on the pointer layer:
-
-```c
-#define DILEMMA_AUTO_SNIPING_ON_LAYER LAYER_POINTER
-```
\ No newline at end of file
diff --git a/keyboards/bastardkb/dilemma/3x5_3/keymaps/via/rules.mk b/keyboards/bastardkb/dilemma/3x5_3/keymaps/via/rules.mk
deleted file mode 100644
index f1adcab005e..00000000000
--- a/keyboards/bastardkb/dilemma/3x5_3/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/bastardkb/dilemma/4x6_4/keymaps/default/keymap.c b/keyboards/bastardkb/dilemma/4x6_4/keymaps/default/keymap.c
index 2e5564f5e93..4ac52309880 100644
--- a/keyboards/bastardkb/dilemma/4x6_4/keymaps/default/keymap.c
+++ b/keyboards/bastardkb/dilemma/4x6_4/keymaps/default/keymap.c
@@ -46,11 +46,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS,
// ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LBRC, KC_P7, KC_P8, KC_P9, KC_RBRC, XXXXXXX,
+ RM_NEXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LBRC, KC_P7, KC_P8, KC_P9, KC_RBRC, XXXXXXX,
// ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- RGB_TOG, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_PPLS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PEQL,
+ RM_TOGG, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_PPLS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PEQL,
// ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, EE_CLR, QK_BOOT, KC_PAST, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_PDOT,
+ RM_PREV, XXXXXXX, XXXXXXX, XXXXXXX, EE_CLR, QK_BOOT, KC_PAST, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_PDOT,
// ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______
// ╰───────────────────────────────────╯ ╰───────────────────────────────────╯
diff --git a/keyboards/bastardkb/dilemma/4x6_4/keymaps/via/config.h b/keyboards/bastardkb/dilemma/4x6_4/keymaps/via/config.h
deleted file mode 100644
index 24322f99044..00000000000
--- a/keyboards/bastardkb/dilemma/4x6_4/keymaps/via/config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * Copyright 2021 Charly Delay (@0xcharly)
- * Copyright 2023 casuanoob (@casuanoob)
- *
- * 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 DYNAMIC_KEYMAP_LAYER_COUNT 8
diff --git a/keyboards/bastardkb/dilemma/4x6_4/keymaps/via/keymap.c b/keyboards/bastardkb/dilemma/4x6_4/keymaps/via/keymap.c
deleted file mode 100644
index 6ac228d7231..00000000000
--- a/keyboards/bastardkb/dilemma/4x6_4/keymaps/via/keymap.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/**
- * Copyright 2021 Charly Delay (@0xcharly)
- * Copyright 2023 casuanoob (@casuanoob)
- *
- * 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
-
-enum dilemma_keymap_layers {
- LAYER_BASE = 0,
- LAYER_LOWER,
- LAYER_RAISE,
- LAYER_POINTER,
-};
-
-// Automatically enable sniping-mode on the pointer layer.
-// #define DILEMMA_AUTO_SNIPING_ON_LAYER LAYER_POINTER
-
-#define LOWER MO(LAYER_LOWER)
-#define RAISE MO(LAYER_RAISE)
-#define PT_Z LT(LAYER_POINTER, KC_Z)
-#define PT_SLSH LT(LAYER_POINTER, KC_SLSH)
-
-#ifndef POINTING_DEVICE_ENABLE
-# define DRGSCRL KC_NO
-# define DPI_MOD KC_NO
-# define S_D_MOD KC_NO
-# define SNIPING KC_NO
-#endif // !POINTING_DEVICE_ENABLE
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [LAYER_BASE] = 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- KC_LCTL, PT_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, PT_SLSH, KC_LALT,
- // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
- KC_LALT, KC_BSPC, KC_SPC, LOWER, RAISE, KC_ENT, KC_DEL, KC_MUTE
- // ╰───────────────────────────────────╯ ╰───────────────────────────────────╯
- ),
-
- [LAYER_LOWER] = LAYOUT(
- // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LBRC, KC_P7, KC_P8, KC_P9, KC_RBRC, XXXXXXX,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- RGB_TOG, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_PPLS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PEQL,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PAST, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_PDOT,
- // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
- XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX
- // ╰───────────────────────────────────╯ ╰───────────────────────────────────╯
- ),
-
- [LAYER_RAISE] = LAYOUT(
- // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
- KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- KC_MPLY, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, KC_RSFT, KC_RCTL, KC_RALT, KC_RGUI, KC_MUTE,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- KC_MPRV, KC_HOME, KC_PGUP, KC_PGDN, KC_END, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD,
- // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
- XXXXXXX, _______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX
- // ╰───────────────────────────────────╯ ╰───────────────────────────────────╯
- ),
-
- [LAYER_POINTER] = LAYOUT(
- // ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DPI_MOD, S_D_MOD, S_D_MOD, DPI_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- XXXXXXX, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, KC_RSFT, KC_RCTL, KC_RALT, KC_RGUI, XXXXXXX,
- // ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
- XXXXXXX, _______, DRGSCRL, SNIPING, EE_CLR, QK_BOOT, QK_BOOT, EE_CLR, SNIPING, DRGSCRL, _______, XXXXXXX,
- // ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
- XXXXXXX, KC_BTN2, KC_BTN1, KC_BTN3, KC_BTN3, KC_BTN1, KC_BTN2, XXXXXXX
- // ╰───────────────────────────────────╯ ╰───────────────────────────────────╯
- ),
-};
-// clang-format on
-
-#ifdef POINTING_DEVICE_ENABLE
-# ifdef DILEMMA_AUTO_SNIPING_ON_LAYER
-layer_state_t layer_state_set_user(layer_state_t state) {
- dilemma_set_pointer_sniping_enabled(layer_state_cmp(state, DILEMMA_AUTO_SNIPING_ON_LAYER));
- return state;
-}
-# endif // DILEMMA_AUTO_SNIPING_ON_LAYER
-#endif // POINTING_DEVICE_ENABLEE
-
-#ifdef RGB_MATRIX_ENABLE
-// Forward-declare this helper function since it is defined in rgb_matrix.c.
-void rgb_matrix_update_pwm_buffers(void);
-#endif
-
-#ifdef ENCODER_MAP_ENABLE
-// clang-format off
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [LAYER_BASE] = {ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLU, KC_VOLD)},
- [LAYER_LOWER] = {ENCODER_CCW_CW(KC_UP, KC_DOWN), ENCODER_CCW_CW(KC_LEFT, KC_RGHT)},
- [LAYER_RAISE] = {ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_VOLU, KC_VOLD)},
- [LAYER_POINTER] = {ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI)},
-};
-// clang-format on
-#endif // ENCODER_MAP_ENABLE
diff --git a/keyboards/bastardkb/dilemma/4x6_4/keymaps/via/readme.md b/keyboards/bastardkb/dilemma/4x6_4/keymaps/via/readme.md
deleted file mode 100644
index f3636c8a40e..00000000000
--- a/keyboards/bastardkb/dilemma/4x6_4/keymaps/via/readme.md
+++ /dev/null
@@ -1,47 +0,0 @@
-# Dilemma Max `via` keymap
-
-The Dilemma Max `via` keymap is based on the original [Dactyl Manuform](../../../../../handwired/dactyl_manuform) default keymap, with some features and changes specific to the Dilemma.
-
-This layout also supports VIA.
-
-## Customizing the keymap
-
-### Dynamic DPI scaling
-
-Use the following keycodes to change the default DPI:
-
-- `POINTER_DEFAULT_DPI_FORWARD`: increases the DPI; decreases when shifted;
-- `POINTER_DEFAULT_DPI_REVERSE`: decreases the DPI; increases when shifted.
-
-There's a maximum of 16 possible values for the sniping mode DPI. See the [Dilemma documentation](../../README.md) for more information.
-
-Use the following keycodes to change the sniping mode DPI:
-
-- `POINTER_SNIPING_DPI_FORWARD`: increases the DPI; decreases when shifted;
-- `POINTER_SNIPING_DPI_REVERSE`: decreases the DPI; increases when shifted.
-
-There's a maximum of 4 possible values for the sniping mode DPI. See the [Dilemma documentation](../../README.md) for more information.
-
-### Drag-scroll
-
-Use the `DRAGSCROLL_MODE` keycode to enable drag-scroll on hold. Use the `DRAGSCROLL_TOGGLE` keycode to enable/disable drag-scroll on key press.
-
-### Circular scroll
-
-By default, the firmware is configured to enable the circular scroll feature on Cirque trackpad.
-
-To disable this, add the following to your keymap:
-
-```c
-#undef POINTING_DEVICE_GESTURES_SCROLL_ENABLE
-```
-
-### Sniping
-
-Use the `SNIPING_MODE` keycode to enable sniping mode on hold. Use the `SNIPING_TOGGLE` keycode to enable/disable sniping mode on key press.
-
-Change the value of `DILEMMA_AUTO_SNIPING_ON_LAYER` to automatically enable sniping mode on layer change. By default, sniping mode is enabled on the pointer layer:
-
-```c
-#define DILEMMA_AUTO_SNIPING_ON_LAYER LAYER_POINTER
-```
diff --git a/keyboards/bastardkb/dilemma/4x6_4/keymaps/via/rules.mk b/keyboards/bastardkb/dilemma/4x6_4/keymaps/via/rules.mk
deleted file mode 100644
index f1adcab005e..00000000000
--- a/keyboards/bastardkb/dilemma/4x6_4/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/bastardkb/dilemma/dilemma.c b/keyboards/bastardkb/dilemma/dilemma.c
index 7c87fdcadd6..b406e265261 100644
--- a/keyboards/bastardkb/dilemma/dilemma.c
+++ b/keyboards/bastardkb/dilemma/dilemma.c
@@ -354,7 +354,6 @@ bool shutdown_kb(bool jump_to_bootloader) {
rgblight_setrgb(RGB_RED);
#endif // RGBLIGHT_ENABLE
#ifdef RGB_MATRIX_ENABLE
- void rgb_matrix_update_pwm_buffers(void);
rgb_matrix_set_color_all(RGB_RED);
rgb_matrix_update_pwm_buffers();
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/bastardkb/scylla/blackpill/config.h b/keyboards/bastardkb/scylla/blackpill/config.h
index 1d86b474ee9..bf7879edbee 100644
--- a/keyboards/bastardkb/scylla/blackpill/config.h
+++ b/keyboards/bastardkb/scylla/blackpill/config.h
@@ -29,7 +29,6 @@
#define WS2812_EXTERNAL_PULLUP
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1
#define WS2812_PWM_DMA_CHANNEL 3
-#define WS2812_PWM_TARGET_PERIOD 800000
/* Serial configuration for split keyboard. */
#define SERIAL_USART_TX_PIN A9
diff --git a/keyboards/bastardkb/scylla/keymaps/default/keymap.c b/keyboards/bastardkb/scylla/keymaps/default/keymap.c
index 10adac4126c..8e9b0190d47 100644
--- a/keyboards/bastardkb/scylla/keymaps/default/keymap.c
+++ b/keyboards/bastardkb/scylla/keymaps/default/keymap.c
@@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[2] = LAYOUT_split_4x6_5(KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
//---------------------------------------------------------//--------------------------------------------------------------//
- _______, _______, RGB_RMOD, RGB_TOG, RGB_MOD, KC_LBRC, KC_RBRC, _______, KC_NUM, KC_INS, KC_SCRL, KC_MUTE,
+ _______, _______, RM_PREV, RM_TOGG, RM_NEXT, KC_LBRC, KC_RBRC, _______, KC_NUM, KC_INS, KC_SCRL, KC_MUTE,
//---------------------------------------------------------//--------------------------------------------------------------//
_______, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_LPRN, KC_RPRN, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_VOLU,
//---------------------------------------------------------//--------------------------------------------------------------//
diff --git a/keyboards/bastardkb/skeletyl/blackpill/config.h b/keyboards/bastardkb/skeletyl/blackpill/config.h
index 1d86b474ee9..bf7879edbee 100644
--- a/keyboards/bastardkb/skeletyl/blackpill/config.h
+++ b/keyboards/bastardkb/skeletyl/blackpill/config.h
@@ -29,7 +29,6 @@
#define WS2812_EXTERNAL_PULLUP
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1
#define WS2812_PWM_DMA_CHANNEL 3
-#define WS2812_PWM_TARGET_PERIOD 800000
/* Serial configuration for split keyboard. */
#define SERIAL_USART_TX_PIN A9
diff --git a/keyboards/bastardkb/skeletyl/keymaps/default/keymap.c b/keyboards/bastardkb/skeletyl/keymaps/default/keymap.c
index 56e56d9a434..1f49629c888 100644
--- a/keyboards/bastardkb/skeletyl/keymaps/default/keymap.c
+++ b/keyboards/bastardkb/skeletyl/keymaps/default/keymap.c
@@ -60,9 +60,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//,-----------------------------------------------------. ,-----------------------------------------------------.
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ RM_HUEU, RM_SATU, RM_VALU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ RM_HUED, RM_SATD, RM_VALD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, KC_SPC, _______, _______, KC_ENT, KC_RALT
//`--------------------------' `--------------------------'
diff --git a/keyboards/bastardkb/tbk/config.h b/keyboards/bastardkb/tbk/config.h
deleted file mode 100644
index 8515cac5ef0..00000000000
--- a/keyboards/bastardkb/tbk/config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright 2021 Quentin LEBASTARD
- *
- * 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 MASTER_RIGHT
diff --git a/keyboards/bastardkb/tbk/keyboard.json b/keyboards/bastardkb/tbk/keyboard.json
deleted file mode 100644
index 90e37478a1e..00000000000
--- a/keyboards/bastardkb/tbk/keyboard.json
+++ /dev/null
@@ -1,111 +0,0 @@
-{
- "keyboard_name": "The Bastard Keyboard",
- "url": "https://bastardkb.com/",
- "usb": {
- "device_version": "0.0.1",
- "pid": "0x1828"
- },
- "rgblight": {
- "led_count": 38,
- "split_count": [19, 19],
- "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
- }
- },
- "ws2812": {
- "pin": "D2"
- },
- "features": {
- "bootmagic": true,
- "command": false,
- "console": false,
- "extrakey": true,
- "mousekey": true,
- "nkro": false,
- "rgblight": true
- },
- "matrix_pins": {
- "cols": ["B4", "E6", "C6", "B1", "B3", "B2"],
- "rows": ["D7", "B5", "F7", "F6", "B6"]
- },
- "diode_direction": "ROW2COL",
- "split": {
- "enabled": true,
- "soft_serial_pin": "D0"
- },
- "processor": "atmega32u4",
- "bootloader": "atmel-dfu",
- "layouts": {
- "LAYOUT_split_4x6_5": {
- "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": [5, 5], "x": 11, "y": 0},
- {"matrix": [5, 4], "x": 12, "y": 0},
- {"matrix": [5, 3], "x": 13, "y": 0},
- {"matrix": [5, 2], "x": 14, "y": 0},
- {"matrix": [5, 1], "x": 15, "y": 0},
- {"matrix": [5, 0], "x": 16, "y": 0},
- {"matrix": [1, 0], "x": 0, "y": 1},
- {"matrix": [1, 1], "x": 1, "y": 1},
- {"matrix": [1, 2], "x": 2, "y": 1},
- {"matrix": [1, 3], "x": 3, "y": 1},
- {"matrix": [1, 4], "x": 4, "y": 1},
- {"matrix": [1, 5], "x": 5, "y": 1},
- {"matrix": [6, 5], "x": 11, "y": 1},
- {"matrix": [6, 4], "x": 12, "y": 1},
- {"matrix": [6, 3], "x": 13, "y": 1},
- {"matrix": [6, 2], "x": 14, "y": 1},
- {"matrix": [6, 1], "x": 15, "y": 1},
- {"matrix": [6, 0], "x": 16, "y": 1},
- {"matrix": [2, 0], "x": 0, "y": 2},
- {"matrix": [2, 1], "x": 1, "y": 2},
- {"matrix": [2, 2], "x": 2, "y": 2},
- {"matrix": [2, 3], "x": 3, "y": 2},
- {"matrix": [2, 4], "x": 4, "y": 2},
- {"matrix": [2, 5], "x": 5, "y": 2},
- {"matrix": [7, 5], "x": 11, "y": 2},
- {"matrix": [7, 4], "x": 12, "y": 2},
- {"matrix": [7, 3], "x": 13, "y": 2},
- {"matrix": [7, 2], "x": 14, "y": 2},
- {"matrix": [7, 1], "x": 15, "y": 2},
- {"matrix": [7, 0], "x": 16, "y": 2},
- {"matrix": [3, 0], "x": 0, "y": 3},
- {"matrix": [3, 1], "x": 1, "y": 3},
- {"matrix": [3, 2], "x": 2, "y": 3},
- {"matrix": [3, 3], "x": 3, "y": 3},
- {"matrix": [3, 4], "x": 4, "y": 3},
- {"matrix": [3, 5], "x": 5, "y": 3},
- {"matrix": [8, 5], "x": 11, "y": 3},
- {"matrix": [8, 4], "x": 12, "y": 3},
- {"matrix": [8, 3], "x": 13, "y": 3},
- {"matrix": [8, 2], "x": 14, "y": 3},
- {"matrix": [8, 1], "x": 15, "y": 3},
- {"matrix": [8, 0], "x": 16, "y": 3},
- {"matrix": [4, 3], "x": 5, "y": 4},
- {"matrix": [4, 4], "x": 6, "y": 4},
- {"matrix": [4, 1], "x": 7, "y": 4},
- {"matrix": [9, 1], "x": 9, "y": 4},
- {"matrix": [9, 4], "x": 10, "y": 4},
- {"matrix": [9, 3], "x": 11, "y": 4},
- {"matrix": [4, 5], "x": 6, "y": 5},
- {"matrix": [4, 2], "x": 7, "y": 5},
- {"matrix": [9, 2], "x": 9, "y": 5},
- {"matrix": [9, 5], "x": 10, "y": 5}
- ]
- }
- }
-}
diff --git a/keyboards/bastardkb/tbk/keymaps/default/keymap.c b/keyboards/bastardkb/tbk/keymaps/default/keymap.c
deleted file mode 100644
index 3227076c076..00000000000
--- a/keyboards/bastardkb/tbk/keymaps/default/keymap.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2021 Quentin LEBASTARD
- *
- * 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_split_4x6_5(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_MINS,
-//-------------------------------------------------//-----------------------------------------------------------//
- KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
-//-------------------------------------------------//-----------------------------------------------------------//
- KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLS,
-//-------------------------------------------------//-----------------------------------------------------------//
- KC_LCTL, KC_SPC, MO(1), MO(2), KC_ENT, KC_RGUI,
- KC_HOME, KC_BSPC, KC_DEL, KC_RALT
- ),
-
- [1] = LAYOUT_split_4x6_5(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
-//---------------------------------------------------------//-----------------------------------------------------------//
- QK_BOOT, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, _______, KC_PLUS,
-//---------------------------------------------------------//-----------------------------------------------------------//
- _______, KC_HOME, KC_PGUP, KC_PGDN, KC_END, KC_LPRN, KC_RPRN, KC_P4, KC_P5, KC_P6, KC_MINS, KC_PIPE,
-//---------------------------------------------------------//-----------------------------------------------------------//
- _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_EQL, KC_UNDS,
-//---------------------------------------------------------//-----------------------------------------------------------//
- KC_LCTL, KC_HOME, KC_TRNS, KC_TRNS, KC_RALT, KC_RGUI,
- KC_SPC, KC_BSPC, KC_RCTL, KC_ENT
- ),
-
- [2] = LAYOUT_split_4x6_5(
- KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
-//---------------------------------------------------------//--------------------------------------------------------------//
- _______, _______, RGB_RMOD, RGB_TOG, RGB_MOD, KC_LBRC, KC_RBRC, _______, KC_NUM, KC_INS, KC_SCRL, KC_MUTE,
-//---------------------------------------------------------//--------------------------------------------------------------//
- _______, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_LPRN, KC_RPRN, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_VOLU,
-//---------------------------------------------------------//--------------------------------------------------------------//
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD,
-//---------------------------------------------------------//--------------------------------------------------------------//
- KC_LCTL, KC_HOME, KC_TRNS, KC_TRNS, KC_RALT, QK_BOOT,
- KC_SPC, KC_BSPC, KC_RCTL, KC_ENT
- ),
-};
diff --git a/keyboards/bastardkb/tbk/readme.md b/keyboards/bastardkb/tbk/readme.md
deleted file mode 100644
index 0d552e5caf8..00000000000
--- a/keyboards/bastardkb/tbk/readme.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# The Bastard Keyboard
-
-A split ergonomic keyboard.
-
-* Keyboard Maintainer: [Bastard Keyboards](https://github.com/Bastardkb/)
-* Hardware Supported: elite-C V4
-* Hardware Availability: [Bastard Keyboards](https://bastardkb.com/)
-
-Make example for this keyboard (after setting up your build environment):
-
- make bastardkb/tbk: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).
-
-See the [keyboard build instructions](https://docs.bastardkb.com)
-
-
-## Important information regarding the reset
-
-If you modify this firmware, make sure to always have a QK_BOOT key that can be triggered using only the master side ! This way you ensure that you can always flash the keyboard, even if you mess up.
-
-Otherwise if you're stuck, open the case and reset manually by shorting Gnd and Rst, or pressing the RST button.
diff --git a/keyboards/bastardkb/tbkmini/blackpill/config.h b/keyboards/bastardkb/tbkmini/blackpill/config.h
index 1d86b474ee9..bf7879edbee 100644
--- a/keyboards/bastardkb/tbkmini/blackpill/config.h
+++ b/keyboards/bastardkb/tbkmini/blackpill/config.h
@@ -29,7 +29,6 @@
#define WS2812_EXTERNAL_PULLUP
#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1
#define WS2812_PWM_DMA_CHANNEL 3
-#define WS2812_PWM_TARGET_PERIOD 800000
/* Serial configuration for split keyboard. */
#define SERIAL_USART_TX_PIN A9
diff --git a/keyboards/bastardkb/tbkmini/keymaps/default/keymap.c b/keyboards/bastardkb/tbkmini/keymaps/default/keymap.c
index 551aea127f1..d87e9c2a440 100644
--- a/keyboards/bastardkb/tbkmini/keymaps/default/keymap.c
+++ b/keyboards/bastardkb/tbkmini/keymaps/default/keymap.c
@@ -60,9 +60,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//,-----------------------------------------------------. ,-----------------------------------------------------.
QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ RM_NEXT, RM_HUED, RM_SATD, RM_VALD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, KC_SPC, _______, _______, KC_ENT, KC_RALT
//`--------------------------' `--------------------------'
diff --git a/keyboards/bbrfkr/dynamis/keymaps/default/keymap.c b/keyboards/bbrfkr/dynamis/keymaps/default/keymap.c
index 8689794c8ca..e27d17827cc 100644
--- a/keyboards/bbrfkr/dynamis/keymaps/default/keymap.c
+++ b/keyboards/bbrfkr/dynamis/keymaps/default/keymap.c
@@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_SETTINGS] = LAYOUT_ansi(
QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, RGB_TOG, RGB_MOD, RGB_RMOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, UG_TOGG, UG_NEXT, UG_PREV, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
diff --git a/keyboards/bbrfkr/dynamis/keymaps/iso/keymap.c b/keyboards/bbrfkr/dynamis/keymaps/iso/keymap.c
index 4e35af679d7..38a56f56f4c 100644
--- a/keyboards/bbrfkr/dynamis/keymaps/iso/keymap.c
+++ b/keyboards/bbrfkr/dynamis/keymaps/iso/keymap.c
@@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_SETTINGS] = LAYOUT_iso(
QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, RGB_TOG, RGB_MOD, RGB_RMOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, UG_TOGG, UG_NEXT, UG_PREV, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
diff --git a/keyboards/bbrfkr/dynamis/keymaps/via/keymap.c b/keyboards/bbrfkr/dynamis/keymaps/via/keymap.c
deleted file mode 100644
index 5412fa0df02..00000000000
--- a/keyboards/bbrfkr/dynamis/keymaps/via/keymap.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Copyright 2022 bbrfkr
- *
- * 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
-
-enum layer_names {
- _QWERTY,
- _LOWER,
- _RAISE,
- _SETTINGS,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_QWERTY] = LAYOUT_ansi(
- 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_DEL,
- 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_TAB, 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_UP,
- KC_LCTL, KC_LALT, MO(1), KC_SPC, KC_SPC, KC_ENT, MO(2), KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_LOWER] = LAYOUT_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_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_PSCR, 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_BTN3, KC_BTN2, KC_BTN1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_RGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE
- ),
-
- [_RAISE] = LAYOUT_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_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_PSCR, 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_LGUI, MO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE
- ),
-
- [_SETTINGS] = LAYOUT_ansi(
- QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, RGB_TOG, RGB_MOD, RGB_RMOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
- ),
-};
-
-#if defined(ENCODER_MAP_ENABLE)
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [_QWERTY] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), },
- [_LOWER] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
- [_RAISE] = { ENCODER_CCW_CW(RGB_MOD, RGB_RMOD) },
- [_SETTINGS] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D) },
-};
-#endif
diff --git a/keyboards/bbrfkr/dynamis/keymaps/via/rules.mk b/keyboards/bbrfkr/dynamis/keymaps/via/rules.mk
deleted file mode 100644
index f1adcab005e..00000000000
--- a/keyboards/bbrfkr/dynamis/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/bear_face/info.json b/keyboards/bear_face/info.json
index ad12468d56f..90191299d87 100644
--- a/keyboards/bear_face/info.json
+++ b/keyboards/bear_face/info.json
@@ -1,22 +1,18 @@
{
- "keyboard_name": "bear_face",
- "manufacturer": "chemicalwill",
- "url": "https://github.com/chemicalwill/bear_face_pcb",
- "maintainer": "chemicalwill",
- "debounce": 6,
+ "manufacturer": "will-hedges",
+ "url": "https://github.com/will-hedges",
+ "maintainer": "will-hedges",
"usb": {
"vid": "0xFEED",
- "pid": "0x09F5",
- "force_nkro": true
+ "pid": "0x09F5"
},
"features": {
"backlight": true,
- "bootmagic": false,
+ "bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
- "mousekey": false,
- "nkro": true
+ "mousekey": false
},
"qmk": {
"locking": {
@@ -30,7 +26,8 @@
},
"diode_direction": "COL2ROW",
"backlight": {
- "driver": "timer",
+ "as_caps_lock": true,
+ "driver": "software",
"pin": "F7"
},
"processor": "atmega32u4",
diff --git a/keyboards/bear_face/rules.mk b/keyboards/bear_face/rules.mk
deleted file mode 100644
index f11303978e8..00000000000
--- a/keyboards/bear_face/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DEFAULT_FOLDER = bear_face/v1
diff --git a/keyboards/bear_face/v1/keyboard.json b/keyboards/bear_face/v1/keyboard.json
index 8dedc0b1c7b..8c60089bbbb 100644
--- a/keyboards/bear_face/v1/keyboard.json
+++ b/keyboards/bear_face/v1/keyboard.json
@@ -1,9 +1,13 @@
{
+ "keyboard_name": "bear_face v1",
"usb": {
"device_version": "1.0.0"
},
+ "backlight": {
+ "on_state": 0
+ },
"layouts": {
- "LAYOUT_83_ansi": {
+ "LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
{"matrix": [0, 1], "x": 1.5, "y": 0},
diff --git a/keyboards/bear_face/v1/keymaps/default/keymap.c b/keyboards/bear_face/v1/keymaps/default/keymap.c
index fc92c783dbe..22235f4af68 100644
--- a/keyboards/bear_face/v1/keymaps/default/keymap.c
+++ b/keyboards/bear_face/v1/keymaps/default/keymap.c
@@ -1,19 +1,5 @@
-/*
-Copyright 2020 chemicalwill
-
-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 .
-*/
+/* Copyright 2024 will-hedges */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#include QMK_KEYBOARD_H
@@ -26,15 +12,12 @@ enum layers {
#define FN1_CAPS LT(_FN1, KC_CAPS)
-//custom keycode enums
-enum custom_keycodes {
- BASE_QWER = SAFE_RANGE,
- BASE_COLE,
- BASE_DVOR
-};
+#define BASE_QWER PDF(_QWER)
+#define BASE_COLE PDF(_COLE)
+#define BASE_DVOR PDF(_DVOR)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWER] = LAYOUT_83_ansi(
+ [_QWER] = LAYOUT(
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_NO, KC_DEL,
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_HOME,
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,
@@ -43,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
- [_COLE] = LAYOUT_83_ansi(
+ [_COLE] = LAYOUT(
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_NO, KC_DEL,
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_HOME,
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
@@ -52,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
- [_DVOR] = LAYOUT_83_ansi(
+ [_DVOR] = LAYOUT(
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_NO, KC_DEL,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_HOME,
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_PGUP,
@@ -61,7 +44,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
- [_FN1] = LAYOUT_83_ansi(
+ [_FN1] = LAYOUT(
_______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, KC_INS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_CALC, BASE_QWER,
_______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, BASE_COLE,
@@ -71,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
/*
- [_BLANK] = LAYOUT_83_ansi(
+ [_BLANK] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -81,37 +64,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
*/
};
-
-//macros to allow the user to set whatever default layer they want, even after reboot
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case BASE_QWER:
- if (record->event.pressed) {
- // when keycode BASE_QWER is pressed
- set_single_persistent_default_layer(_QWER);
- } else {
- // when keycode BASE_QWER is released
- }
- break;
-
- case BASE_COLE:
- if (record->event.pressed) {
- // when keycode BASE_COLE is pressed
- set_single_persistent_default_layer(_COLE);
- } else {
- // when keycode BASE_COLE is released
- }
- break;
-
- case BASE_DVOR:
- if (record->event.pressed) {
- // when keycode BASE_DVOR is pressed
- set_single_persistent_default_layer(_DVOR);
- } else {
- // when keycode BASE_DVOR is released
- }
- break;
- }
- return true;
-};
diff --git a/keyboards/bear_face/v1/v1.c b/keyboards/bear_face/v1/v1.c
deleted file mode 100644
index b64a63f0b43..00000000000
--- a/keyboards/bear_face/v1/v1.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
-Copyright 2020 chemicalwill
-
-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 keyboard_pre_init_kb(void) {
- //Sets LED pin as output
- gpio_set_pin_output(F7);
-
- keyboard_pre_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- // Caps Lock LED indicator toggling code here
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(F7, led_state.caps_lock);
- }
- return res;
-}
diff --git a/keyboards/bear_face/v2/keyboard.json b/keyboards/bear_face/v2/keyboard.json
index 908165babb0..456c920066f 100644
--- a/keyboards/bear_face/v2/keyboard.json
+++ b/keyboards/bear_face/v2/keyboard.json
@@ -1,8 +1,106 @@
{
+ "keyboard_name": "bear_face v2",
"usb": {
- "device_version": "2.0.0"
+ "device_version": "2.1.0"
+ },
+ "backlight": {
+ "on_state": 0
},
"layouts": {
+ "LAYOUT_all": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
+ {"matrix": [0, 1], "x": 1.5, "y": 0},
+ {"matrix": [0, 2], "x": 2.5, "y": 0},
+ {"matrix": [0, 3], "x": 3.5, "y": 0},
+ {"matrix": [0, 4], "x": 4.5, "y": 0},
+ {"matrix": [0, 5], "x": 5.5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [0, 9], "x": 9.5, "y": 0},
+ {"matrix": [0, 10], "x": 10.5, "y": 0},
+ {"matrix": [0, 11], "x": 11.5, "y": 0},
+ {"matrix": [0, 12], "x": 12.5, "y": 0},
+ {"matrix": [0, 13], "x": 13.5, "y": 0},
+ {"matrix": [0, 14], "x": 14.5, "y": 0, "w": 1.5},
+
+ {"matrix": [1, 0], "x": 0, "y": 1},
+ {"matrix": [1, 1], "x": 1, "y": 1},
+ {"matrix": [1, 2], "x": 2, "y": 1},
+ {"matrix": [1, 3], "x": 3, "y": 1},
+ {"matrix": [1, 4], "x": 4, "y": 1},
+ {"matrix": [1, 5], "x": 5, "y": 1},
+ {"matrix": [1, 6], "x": 6, "y": 1},
+ {"matrix": [1, 7], "x": 7, "y": 1},
+ {"matrix": [1, 8], "x": 8, "y": 1},
+ {"matrix": [1, 9], "x": 9, "y": 1},
+ {"matrix": [1, 10], "x": 10, "y": 1},
+ {"matrix": [1, 11], "x": 11, "y": 1},
+ {"matrix": [1, 12], "x": 12, "y": 1},
+ {"matrix": [1, 13], "x": 13, "y": 1, "w": 2},
+ {"matrix": [1, 14], "x": 15, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2},
+ {"matrix": [2, 2], "x": 2.5, "y": 2},
+ {"matrix": [2, 3], "x": 3.5, "y": 2},
+ {"matrix": [2, 4], "x": 4.5, "y": 2},
+ {"matrix": [2, 5], "x": 5.5, "y": 2},
+ {"matrix": [2, 6], "x": 6.5, "y": 2},
+ {"matrix": [2, 7], "x": 7.5, "y": 2},
+ {"matrix": [2, 8], "x": 8.5, "y": 2},
+ {"matrix": [2, 9], "x": 9.5, "y": 2},
+ {"matrix": [2, 10], "x": 10.5, "y": 2},
+ {"matrix": [2, 11], "x": 11.5, "y": 2},
+ {"matrix": [2, 12], "x": 12.5, "y": 2},
+ {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5},
+ {"matrix": [2, 14], "x": 15, "y": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3},
+ {"matrix": [3, 2], "x": 2.75, "y": 3},
+ {"matrix": [3, 3], "x": 3.75, "y": 3},
+ {"matrix": [3, 4], "x": 4.75, "y": 3},
+ {"matrix": [3, 5], "x": 5.75, "y": 3},
+ {"matrix": [3, 6], "x": 6.75, "y": 3},
+ {"matrix": [3, 7], "x": 7.75, "y": 3},
+ {"matrix": [3, 8], "x": 8.75, "y": 3},
+ {"matrix": [3, 9], "x": 9.75, "y": 3},
+ {"matrix": [3, 10], "x": 10.75, "y": 3},
+ {"matrix": [3, 11], "x": 11.75, "y": 3},
+ {"matrix": [3, 12], "x": 12.75, "y": 3},
+ {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2},
+ {"matrix": [3, 14], "x": 15, "y": 3},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4},
+ {"matrix": [4, 2], "x": 2.25, "y": 4},
+ {"matrix": [4, 3], "x": 3.25, "y": 4},
+ {"matrix": [4, 4], "x": 4.25, "y": 4},
+ {"matrix": [4, 5], "x": 5.25, "y": 4},
+ {"matrix": [4, 6], "x": 6.25, "y": 4},
+ {"matrix": [4, 7], "x": 7.25, "y": 4},
+ {"matrix": [4, 8], "x": 8.25, "y": 4},
+ {"matrix": [4, 9], "x": 9.25, "y": 4},
+ {"matrix": [4, 10], "x": 10.25, "y": 4},
+ {"matrix": [4, 11], "x": 11.25, "y": 4},
+ {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75},
+ {"matrix": [4, 13], "x": 14, "y": 4},
+ {"matrix": [4, 14], "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},
+ {"matrix": [5, 10], "x": 11, "y": 5},
+ {"matrix": [5, 11], "x": 12, "y": 5},
+ {"matrix": [5, 12], "x": 13, "y": 5},
+ {"matrix": [5, 13], "x": 14, "y": 5},
+ {"matrix": [5, 14], "x": 15, "y": 5}
+ ]
+ },
"LAYOUT_83_ansi": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
diff --git a/keyboards/bear_face/v2/keymaps/default/keymap.c b/keyboards/bear_face/v2/keymaps/default/keymap.c
index 0d536b68f38..0f8aefb4b37 100644
--- a/keyboards/bear_face/v2/keymaps/default/keymap.c
+++ b/keyboards/bear_face/v2/keymaps/default/keymap.c
@@ -1,19 +1,5 @@
-/*
-Copyright 2020 chemicalwill
-
-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 .
-*/
+/* Copyright 2024 will-hedges */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#include QMK_KEYBOARD_H
@@ -26,12 +12,9 @@ enum layers {
#define FN1_CAPS LT(_FN1, KC_CAPS)
-//custom keycode enums
-enum custom_keycodes {
- BASE_QWER = SAFE_RANGE,
- BASE_COLE,
- BASE_DVOR
-};
+#define BASE_QWER PDF(_QWER)
+#define BASE_COLE PDF(_COLE)
+#define BASE_DVOR PDF(_DVOR)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWER] = LAYOUT_83_ansi(
@@ -81,37 +64,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
*/
};
-
-//macros to allow the user to set whatever default layer they want, even after reboot
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case BASE_QWER:
- if (record->event.pressed) {
- // when keycode BASE_QWER is pressed
- set_single_persistent_default_layer(_QWER);
- } else {
- // when keycode BASE_QWER is released
- }
- break;
-
- case BASE_COLE:
- if (record->event.pressed) {
- // when keycode BASE_COLE is pressed
- set_single_persistent_default_layer(_COLE);
- } else {
- // when keycode BASE_COLE is released
- }
- break;
-
- case BASE_DVOR:
- if (record->event.pressed) {
- // when keycode BASE_DVOR is pressed
- set_single_persistent_default_layer(_DVOR);
- } else {
- // when keycode BASE_DVOR is released
- }
- break;
- }
- return true;
-};
diff --git a/keyboards/bear_face/v2/keymaps/default/readme.md b/keyboards/bear_face/v2/keymaps/default/readme.md
index 5f9e635dfec..517baa5726c 100644
--- a/keyboards/bear_face/v2/keymaps/default/readme.md
+++ b/keyboards/bear_face/v2/keymaps/default/readme.md
@@ -13,3 +13,7 @@ This layout replaces the stock layout on the Vortex Race 3.
* 'Reset' will put the keyboard into DFU mode
* 'APP' sends 'KC_APP'
* Base layer toggles for QWERTY, COLEMAK, and DVORAK layouts (will persist after reboot)
+
+- New things in v2:
+ * Option of ANSI or ISO layout
+ * Optional stepped caps (will require compatible plate)
diff --git a/keyboards/bear_face/v2/keymaps/default_iso/keymap.c b/keyboards/bear_face/v2/keymaps/default_iso/keymap.c
index e9e6c837f4d..69d67205107 100644
--- a/keyboards/bear_face/v2/keymaps/default_iso/keymap.c
+++ b/keyboards/bear_face/v2/keymaps/default_iso/keymap.c
@@ -1,19 +1,5 @@
-/*
-Copyright 2020 chemicalwill
-
-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 .
-*/
+/* Copyright 2024 will-hedges */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
#include QMK_KEYBOARD_H
@@ -26,12 +12,9 @@ enum layers {
#define FN1_CAPS LT(_FN1, KC_CAPS)
-//custom keycode enums
-enum custom_keycodes {
- BASE_QWER = SAFE_RANGE,
- BASE_COLE,
- BASE_DVOR
-};
+#define BASE_QWER PDF(_QWER)
+#define BASE_COLE PDF(_COLE)
+#define BASE_DVOR PDF(_DVOR)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWER] = LAYOUT_84_iso(
@@ -81,37 +64,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
*/
};
-
-//macros to allow the user to set whatever default layer they want, even after reboot
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case BASE_QWER:
- if (record->event.pressed) {
- // when keycode BASE_QWER is pressed
- set_single_persistent_default_layer(_QWER);
- } else {
- // when keycode BASE_QWER is released
- }
- break;
-
- case BASE_COLE:
- if (record->event.pressed) {
- // when keycode BASE_COLE is pressed
- set_single_persistent_default_layer(_COLE);
- } else {
- // when keycode BASE_COLE is released
- }
- break;
-
- case BASE_DVOR:
- if (record->event.pressed) {
- // when keycode BASE_DVOR is pressed
- set_single_persistent_default_layer(_DVOR);
- } else {
- // when keycode BASE_DVOR is released
- }
- break;
- }
- return true;
-};
diff --git a/keyboards/bear_face/v2/v2.c b/keyboards/bear_face/v2/v2.c
deleted file mode 100644
index b64a63f0b43..00000000000
--- a/keyboards/bear_face/v2/v2.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
-Copyright 2020 chemicalwill
-
-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 keyboard_pre_init_kb(void) {
- //Sets LED pin as output
- gpio_set_pin_output(F7);
-
- keyboard_pre_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- // Caps Lock LED indicator toggling code here
- bool res = led_update_user(led_state);
- if(res) {
- gpio_write_pin(F7, led_state.caps_lock);
- }
- return res;
-}
diff --git a/keyboards/bear_face/v3/keyboard.json b/keyboards/bear_face/v3/keyboard.json
new file mode 100644
index 00000000000..0a0bda8df90
--- /dev/null
+++ b/keyboards/bear_face/v3/keyboard.json
@@ -0,0 +1,287 @@
+{
+ "keyboard_name": "bear_face v3",
+ "usb": {
+ "device_version": "3.2.0"
+ },
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
+ {"matrix": [0, 1], "x": 1.5, "y": 0},
+ {"matrix": [0, 2], "x": 2.5, "y": 0},
+ {"matrix": [0, 3], "x": 3.5, "y": 0},
+ {"matrix": [0, 4], "x": 4.5, "y": 0},
+ {"matrix": [0, 5], "x": 5.5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [0, 9], "x": 9.5, "y": 0},
+ {"matrix": [0, 10], "x": 10.5, "y": 0},
+ {"matrix": [0, 11], "x": 11.5, "y": 0},
+ {"matrix": [0, 12], "x": 12.5, "y": 0},
+ {"matrix": [0, 13], "x": 13.5, "y": 0},
+ {"matrix": [0, 14], "x": 14.5, "y": 0, "w": 1.5},
+
+ {"matrix": [1, 0], "x": 0, "y": 1},
+ {"matrix": [1, 1], "x": 1, "y": 1},
+ {"matrix": [1, 2], "x": 2, "y": 1},
+ {"matrix": [1, 3], "x": 3, "y": 1},
+ {"matrix": [1, 4], "x": 4, "y": 1},
+ {"matrix": [1, 5], "x": 5, "y": 1},
+ {"matrix": [1, 6], "x": 6, "y": 1},
+ {"matrix": [1, 7], "x": 7, "y": 1},
+ {"matrix": [1, 8], "x": 8, "y": 1},
+ {"matrix": [1, 9], "x": 9, "y": 1},
+ {"matrix": [1, 10], "x": 10, "y": 1},
+ {"matrix": [1, 11], "x": 11, "y": 1},
+ {"matrix": [1, 12], "x": 12, "y": 1},
+ {"matrix": [1, 13], "x": 13, "y": 1, "w": 2},
+ {"matrix": [1, 14], "x": 15, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2},
+ {"matrix": [2, 2], "x": 2.5, "y": 2},
+ {"matrix": [2, 3], "x": 3.5, "y": 2},
+ {"matrix": [2, 4], "x": 4.5, "y": 2},
+ {"matrix": [2, 5], "x": 5.5, "y": 2},
+ {"matrix": [2, 6], "x": 6.5, "y": 2},
+ {"matrix": [2, 7], "x": 7.5, "y": 2},
+ {"matrix": [2, 8], "x": 8.5, "y": 2},
+ {"matrix": [2, 9], "x": 9.5, "y": 2},
+ {"matrix": [2, 10], "x": 10.5, "y": 2},
+ {"matrix": [2, 11], "x": 11.5, "y": 2},
+ {"matrix": [2, 12], "x": 12.5, "y": 2},
+ {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5},
+ {"matrix": [2, 14], "x": 15, "y": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3},
+ {"matrix": [3, 2], "x": 2.75, "y": 3},
+ {"matrix": [3, 3], "x": 3.75, "y": 3},
+ {"matrix": [3, 4], "x": 4.75, "y": 3},
+ {"matrix": [3, 5], "x": 5.75, "y": 3},
+ {"matrix": [3, 6], "x": 6.75, "y": 3},
+ {"matrix": [3, 7], "x": 7.75, "y": 3},
+ {"matrix": [3, 8], "x": 8.75, "y": 3},
+ {"matrix": [3, 9], "x": 9.75, "y": 3},
+ {"matrix": [3, 10], "x": 10.75, "y": 3},
+ {"matrix": [3, 11], "x": 11.75, "y": 3},
+ {"matrix": [3, 12], "x": 12.75, "y": 3},
+ {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2},
+ {"matrix": [3, 14], "x": 15, "y": 3},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4},
+ {"matrix": [4, 2], "x": 2.25, "y": 4},
+ {"matrix": [4, 3], "x": 3.25, "y": 4},
+ {"matrix": [4, 4], "x": 4.25, "y": 4},
+ {"matrix": [4, 5], "x": 5.25, "y": 4},
+ {"matrix": [4, 6], "x": 6.25, "y": 4},
+ {"matrix": [4, 7], "x": 7.25, "y": 4},
+ {"matrix": [4, 8], "x": 8.25, "y": 4},
+ {"matrix": [4, 9], "x": 9.25, "y": 4},
+ {"matrix": [4, 10], "x": 10.25, "y": 4},
+ {"matrix": [4, 11], "x": 11.25, "y": 4},
+ {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75},
+ {"matrix": [4, 13], "x": 14, "y": 4},
+ {"matrix": [4, 14], "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},
+ {"matrix": [5, 10], "x": 11, "y": 5},
+ {"matrix": [5, 11], "x": 12, "y": 5},
+ {"matrix": [5, 12], "x": 13, "y": 5},
+ {"matrix": [5, 13], "x": 14, "y": 5},
+ {"matrix": [5, 14], "x": 15, "y": 5}
+ ]
+ },
+ "LAYOUT_83_ansi": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
+ {"matrix": [0, 1], "x": 1.5, "y": 0},
+ {"matrix": [0, 2], "x": 2.5, "y": 0},
+ {"matrix": [0, 3], "x": 3.5, "y": 0},
+ {"matrix": [0, 4], "x": 4.5, "y": 0},
+ {"matrix": [0, 5], "x": 5.5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [0, 9], "x": 9.5, "y": 0},
+ {"matrix": [0, 10], "x": 10.5, "y": 0},
+ {"matrix": [0, 11], "x": 11.5, "y": 0},
+ {"matrix": [0, 12], "x": 12.5, "y": 0},
+ {"matrix": [0, 13], "x": 13.5, "y": 0},
+ {"matrix": [0, 14], "x": 14.5, "y": 0, "w": 1.5},
+
+ {"matrix": [1, 0], "x": 0, "y": 1},
+ {"matrix": [1, 1], "x": 1, "y": 1},
+ {"matrix": [1, 2], "x": 2, "y": 1},
+ {"matrix": [1, 3], "x": 3, "y": 1},
+ {"matrix": [1, 4], "x": 4, "y": 1},
+ {"matrix": [1, 5], "x": 5, "y": 1},
+ {"matrix": [1, 6], "x": 6, "y": 1},
+ {"matrix": [1, 7], "x": 7, "y": 1},
+ {"matrix": [1, 8], "x": 8, "y": 1},
+ {"matrix": [1, 9], "x": 9, "y": 1},
+ {"matrix": [1, 10], "x": 10, "y": 1},
+ {"matrix": [1, 11], "x": 11, "y": 1},
+ {"matrix": [1, 12], "x": 12, "y": 1},
+ {"matrix": [1, 13], "x": 13, "y": 1, "w": 2},
+ {"matrix": [1, 14], "x": 15, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2},
+ {"matrix": [2, 2], "x": 2.5, "y": 2},
+ {"matrix": [2, 3], "x": 3.5, "y": 2},
+ {"matrix": [2, 4], "x": 4.5, "y": 2},
+ {"matrix": [2, 5], "x": 5.5, "y": 2},
+ {"matrix": [2, 6], "x": 6.5, "y": 2},
+ {"matrix": [2, 7], "x": 7.5, "y": 2},
+ {"matrix": [2, 8], "x": 8.5, "y": 2},
+ {"matrix": [2, 9], "x": 9.5, "y": 2},
+ {"matrix": [2, 10], "x": 10.5, "y": 2},
+ {"matrix": [2, 11], "x": 11.5, "y": 2},
+ {"matrix": [2, 12], "x": 12.5, "y": 2},
+ {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5},
+ {"matrix": [2, 14], "x": 15, "y": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3},
+ {"matrix": [3, 2], "x": 2.75, "y": 3},
+ {"matrix": [3, 3], "x": 3.75, "y": 3},
+ {"matrix": [3, 4], "x": 4.75, "y": 3},
+ {"matrix": [3, 5], "x": 5.75, "y": 3},
+ {"matrix": [3, 6], "x": 6.75, "y": 3},
+ {"matrix": [3, 7], "x": 7.75, "y": 3},
+ {"matrix": [3, 8], "x": 8.75, "y": 3},
+ {"matrix": [3, 9], "x": 9.75, "y": 3},
+ {"matrix": [3, 10], "x": 10.75, "y": 3},
+ {"matrix": [3, 11], "x": 11.75, "y": 3},
+ {"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25},
+ {"matrix": [3, 14], "x": 15, "y": 3},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4},
+ {"matrix": [4, 3], "x": 3.25, "y": 4},
+ {"matrix": [4, 4], "x": 4.25, "y": 4},
+ {"matrix": [4, 5], "x": 5.25, "y": 4},
+ {"matrix": [4, 6], "x": 6.25, "y": 4},
+ {"matrix": [4, 7], "x": 7.25, "y": 4},
+ {"matrix": [4, 8], "x": 8.25, "y": 4},
+ {"matrix": [4, 9], "x": 9.25, "y": 4},
+ {"matrix": [4, 10], "x": 10.25, "y": 4},
+ {"matrix": [4, 11], "x": 11.25, "y": 4},
+ {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75},
+ {"matrix": [4, 13], "x": 14, "y": 4},
+ {"matrix": [4, 14], "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},
+ {"matrix": [5, 10], "x": 11, "y": 5},
+ {"matrix": [5, 11], "x": 12, "y": 5},
+ {"matrix": [5, 12], "x": 13, "y": 5},
+ {"matrix": [5, 13], "x": 14, "y": 5},
+ {"matrix": [5, 14], "x": 15, "y": 5}
+ ]
+ },
+ "LAYOUT_84_iso": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
+ {"matrix": [0, 1], "x": 1.5, "y": 0},
+ {"matrix": [0, 2], "x": 2.5, "y": 0},
+ {"matrix": [0, 3], "x": 3.5, "y": 0},
+ {"matrix": [0, 4], "x": 4.5, "y": 0},
+ {"matrix": [0, 5], "x": 5.5, "y": 0},
+ {"matrix": [0, 6], "x": 6.5, "y": 0},
+ {"matrix": [0, 7], "x": 7.5, "y": 0},
+ {"matrix": [0, 8], "x": 8.5, "y": 0},
+ {"matrix": [0, 9], "x": 9.5, "y": 0},
+ {"matrix": [0, 10], "x": 10.5, "y": 0},
+ {"matrix": [0, 11], "x": 11.5, "y": 0},
+ {"matrix": [0, 12], "x": 12.5, "y": 0},
+ {"matrix": [0, 13], "x": 13.5, "y": 0},
+ {"matrix": [0, 14], "x": 14.5, "y": 0, "w": 1.5},
+
+ {"matrix": [1, 0], "x": 0, "y": 1},
+ {"matrix": [1, 1], "x": 1, "y": 1},
+ {"matrix": [1, 2], "x": 2, "y": 1},
+ {"matrix": [1, 3], "x": 3, "y": 1},
+ {"matrix": [1, 4], "x": 4, "y": 1},
+ {"matrix": [1, 5], "x": 5, "y": 1},
+ {"matrix": [1, 6], "x": 6, "y": 1},
+ {"matrix": [1, 7], "x": 7, "y": 1},
+ {"matrix": [1, 8], "x": 8, "y": 1},
+ {"matrix": [1, 9], "x": 9, "y": 1},
+ {"matrix": [1, 10], "x": 10, "y": 1},
+ {"matrix": [1, 11], "x": 11, "y": 1},
+ {"matrix": [1, 12], "x": 12, "y": 1},
+ {"matrix": [1, 13], "x": 13, "y": 1, "w": 2},
+ {"matrix": [1, 14], "x": 15, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2},
+ {"matrix": [2, 2], "x": 2.5, "y": 2},
+ {"matrix": [2, 3], "x": 3.5, "y": 2},
+ {"matrix": [2, 4], "x": 4.5, "y": 2},
+ {"matrix": [2, 5], "x": 5.5, "y": 2},
+ {"matrix": [2, 6], "x": 6.5, "y": 2},
+ {"matrix": [2, 7], "x": 7.5, "y": 2},
+ {"matrix": [2, 8], "x": 8.5, "y": 2},
+ {"matrix": [2, 9], "x": 9.5, "y": 2},
+ {"matrix": [2, 10], "x": 10.5, "y": 2},
+ {"matrix": [2, 11], "x": 11.5, "y": 2},
+ {"matrix": [2, 12], "x": 12.5, "y": 2},
+ {"matrix": [2, 14], "x": 15, "y": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3},
+ {"matrix": [3, 2], "x": 2.75, "y": 3},
+ {"matrix": [3, 3], "x": 3.75, "y": 3},
+ {"matrix": [3, 4], "x": 4.75, "y": 3},
+ {"matrix": [3, 5], "x": 5.75, "y": 3},
+ {"matrix": [3, 6], "x": 6.75, "y": 3},
+ {"matrix": [3, 7], "x": 7.75, "y": 3},
+ {"matrix": [3, 8], "x": 8.75, "y": 3},
+ {"matrix": [3, 9], "x": 9.75, "y": 3},
+ {"matrix": [3, 10], "x": 10.75, "y": 3},
+ {"matrix": [3, 11], "x": 11.75, "y": 3},
+ {"matrix": [3, 12], "x": 12.75, "y": 3},
+ {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2},
+ {"matrix": [3, 14], "x": 15, "y": 3},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4},
+ {"matrix": [4, 2], "x": 2.25, "y": 4},
+ {"matrix": [4, 3], "x": 3.25, "y": 4},
+ {"matrix": [4, 4], "x": 4.25, "y": 4},
+ {"matrix": [4, 5], "x": 5.25, "y": 4},
+ {"matrix": [4, 6], "x": 6.25, "y": 4},
+ {"matrix": [4, 7], "x": 7.25, "y": 4},
+ {"matrix": [4, 8], "x": 8.25, "y": 4},
+ {"matrix": [4, 9], "x": 9.25, "y": 4},
+ {"matrix": [4, 10], "x": 10.25, "y": 4},
+ {"matrix": [4, 11], "x": 11.25, "y": 4},
+ {"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75},
+ {"matrix": [4, 13], "x": 14, "y": 4},
+ {"matrix": [4, 14], "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},
+ {"matrix": [5, 10], "x": 11, "y": 5},
+ {"matrix": [5, 11], "x": 12, "y": 5},
+ {"matrix": [5, 12], "x": 13, "y": 5},
+ {"matrix": [5, 13], "x": 14, "y": 5},
+ {"matrix": [5, 14], "x": 15, "y": 5}
+ ]
+ }
+ }
+}
diff --git a/keyboards/bear_face/v3/keymaps/default/keymap.c b/keyboards/bear_face/v3/keymaps/default/keymap.c
new file mode 100644
index 00000000000..0f8aefb4b37
--- /dev/null
+++ b/keyboards/bear_face/v3/keymaps/default/keymap.c
@@ -0,0 +1,66 @@
+/* Copyright 2024 will-hedges */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#include QMK_KEYBOARD_H
+
+enum layers {
+ _QWER,
+ _COLE,
+ _DVOR,
+ _FN1,
+};
+
+#define FN1_CAPS LT(_FN1, KC_CAPS)
+
+#define BASE_QWER PDF(_QWER)
+#define BASE_COLE PDF(_COLE)
+#define BASE_DVOR PDF(_DVOR)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QWER] = LAYOUT_83_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_NO, KC_DEL,
+ 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_HOME,
+ 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,
+ FN1_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [_COLE] = LAYOUT_83_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_NO, KC_DEL,
+ 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_HOME,
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
+ KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_PGDN,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [_DVOR] = LAYOUT_83_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_NO, KC_DEL,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_HOME,
+ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_PGUP,
+ FN1_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, KC_PGDN,
+ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_UP, KC_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [_FN1] = LAYOUT_83_ansi(
+ _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, KC_INS,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_CALC, BASE_QWER,
+ _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, BASE_COLE,
+ _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BASE_DVOR,
+ _______, KC_APP, _______, _______, _______, _______, _______, _______, _______, _______, KC_APP, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+/*
+ [_BLANK] = LAYOUT_83_ansi(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+*/
+};
diff --git a/keyboards/bear_face/v3/keymaps/default/readme.md b/keyboards/bear_face/v3/keymaps/default/readme.md
new file mode 100644
index 00000000000..a86b77bb191
--- /dev/null
+++ b/keyboards/bear_face/v3/keymaps/default/readme.md
@@ -0,0 +1,18 @@
+# default bear_face layout
+
+This layout replaces the stock layout on the Vortex Race 3.
+
+- Caps Lock indicator LED is enabled by default
+- Layer Tap on Caps Lock (tap for Caps Lock, hold for _FN1)
+- FORCE_NKRO enabled by default
+
+- Pn key is set to 'KC_NO' by default
+ * Might be a good place for a macro, or to put your PC to sleep, etc.
+
+- A combined function layer that mimics the sublegends on the stock caps (regardless of layout)
+ * 'Reset' will put the keyboard into DFU mode
+ * 'APP' sends 'KC_APP'
+ * Base layer toggles for QWERTY, COLEMAK, and DVORAK layouts (will persist after reboot)
+
+- New things in v3:
+ * v3.1c PCB is compatible with both rev1 (Micro-USB) and rev2 (USB-C) stock cases
diff --git a/keyboards/bear_face/v3/keymaps/default_iso/keymap.c b/keyboards/bear_face/v3/keymaps/default_iso/keymap.c
new file mode 100644
index 00000000000..69d67205107
--- /dev/null
+++ b/keyboards/bear_face/v3/keymaps/default_iso/keymap.c
@@ -0,0 +1,66 @@
+/* Copyright 2024 will-hedges */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#include QMK_KEYBOARD_H
+
+enum layers {
+ _QWER,
+ _COLE,
+ _DVOR,
+ _FN1,
+};
+
+#define FN1_CAPS LT(_FN1, KC_CAPS)
+
+#define BASE_QWER PDF(_QWER)
+#define BASE_COLE PDF(_COLE)
+#define BASE_DVOR PDF(_DVOR)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QWER] = LAYOUT_84_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_NO, KC_DEL,
+ 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_HOME,
+ 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_PGUP,
+ FN1_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, KC_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [_COLE] = LAYOUT_84_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_NO, KC_DEL,
+ 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_HOME,
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_PGUP,
+ KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [_DVOR] = LAYOUT_84_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_NO, KC_DEL,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_HOME,
+ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_PGUP,
+ FN1_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_NUHS, KC_ENT, KC_PGDN,
+ KC_LSFT, KC_NUBS, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_UP, KC_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [_FN1] = LAYOUT_84_iso(
+ _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, KC_INS,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_CALC, BASE_QWER,
+ _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, BASE_COLE,
+ _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BASE_DVOR,
+ _______, KC_APP, _______, _______, _______, _______, _______, _______, _______, _______, KC_APP, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+/*
+ [_BLANK] = LAYOUT_84_iso(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+*/
+};
diff --git a/keyboards/bear_face/v3/keymaps/default_iso/readme.md b/keyboards/bear_face/v3/keymaps/default_iso/readme.md
new file mode 100644
index 00000000000..a86b77bb191
--- /dev/null
+++ b/keyboards/bear_face/v3/keymaps/default_iso/readme.md
@@ -0,0 +1,18 @@
+# default bear_face layout
+
+This layout replaces the stock layout on the Vortex Race 3.
+
+- Caps Lock indicator LED is enabled by default
+- Layer Tap on Caps Lock (tap for Caps Lock, hold for _FN1)
+- FORCE_NKRO enabled by default
+
+- Pn key is set to 'KC_NO' by default
+ * Might be a good place for a macro, or to put your PC to sleep, etc.
+
+- A combined function layer that mimics the sublegends on the stock caps (regardless of layout)
+ * 'Reset' will put the keyboard into DFU mode
+ * 'APP' sends 'KC_APP'
+ * Base layer toggles for QWERTY, COLEMAK, and DVORAK layouts (will persist after reboot)
+
+- New things in v3:
+ * v3.1c PCB is compatible with both rev1 (Micro-USB) and rev2 (USB-C) stock cases
diff --git a/keyboards/beatervan/keymaps/default/keymap.c b/keyboards/beatervan/keymaps/default/keymap.c
index a99b9c9e513..ef88ae92074 100644
--- a/keyboards/beatervan/keymaps/default/keymap.c
+++ b/keyboards/beatervan/keymaps/default/keymap.c
@@ -24,11 +24,9 @@ enum layers {
_L3,
};
-enum custom_keycodes {
- DVORAK = SAFE_RANGE,
- QWERTY,
- COLEMAK
-};
+#define QWERTY PDF(_QW)
+#define DVORAK PDF(_DV)
+#define COLEMAK PDF(_CM)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QW] = LAYOUT( /* Qwerty */
@@ -68,26 +66,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, KC_LSFT, KC_B, KC_SPC, KC_C, _______, _______, _______
)
};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch(keycode) {
- case DVORAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_DV);
- }
- return false;
- case QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QW);
- }
- return false;
- case COLEMAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_CM);
- }
- return false;
- default:
- return true;
- }
- return true;
-};
diff --git a/keyboards/beatervan/keymaps/via/keymap.c b/keyboards/beatervan/keymaps/via/keymap.c
deleted file mode 100644
index 99b2f175075..00000000000
--- a/keyboards/beatervan/keymaps/via/keymap.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright 2020 OJtheTiny
- *
- * 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] = {
-
- /* Default Layer*/
- [0] = LAYOUT(
- 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENTER,
- 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_TAB, KC_RALT, KC_RGUI, KC_RCTL
- ),
- /* Num Layer */
- [1] = LAYOUT(
- 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
- ),
- /* F-Layer */
- [2] = LAYOUT(
- 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
- ),
- /* Lock Layer */
- [3] = LAYOUT(
- 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/beatervan/keymaps/via/rules.mk b/keyboards/beatervan/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/beatervan/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/beekeeb/3w6hs/config.h b/keyboards/beekeeb/3w6hs/config.h
new file mode 100644
index 00000000000..fb3b16960d8
--- /dev/null
+++ b/keyboards/beekeeb/3w6hs/config.h
@@ -0,0 +1,22 @@
+// Copyright 2023 beekeeb
+// Copyright 2021 weteor
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+/* key matrix size */
+#define MATRIX_ROWS 8
+#define MATRIX_COLS 10
+
+#define MATRIX_ROWS_PER_SIDE (MATRIX_ROWS / 2)
+#define MATRIX_COLS_PER_SIDE (MATRIX_COLS / 2)
+
+#define MATRIX_ROW_PINS_L { GP7, GP8, GP9, GP10}
+#define MATRIX_COL_PINS_L { GP11, GP12, GP13, GP14, GP15 }
+
+#define MATRIX_ROW_PINS_R { P10, P11, P12, P05 }
+#define MATRIX_COL_PINS_R { P06, P13, P14, P01, P00 }
+
+#define I2C_DRIVER I2CD0
+#define I2C1_SDA_PIN GP0
+#define I2C1_SCL_PIN GP1
diff --git a/keyboards/beekeeb/3w6hs/halconf.h b/keyboards/beekeeb/3w6hs/halconf.h
new file mode 100644
index 00000000000..9419229b618
--- /dev/null
+++ b/keyboards/beekeeb/3w6hs/halconf.h
@@ -0,0 +1,22 @@
+/* Copyright 2023 QMK
+ *
+ * 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
+
+#include_next
+
diff --git a/keyboards/beekeeb/3w6hs/keyboard.json b/keyboards/beekeeb/3w6hs/keyboard.json
new file mode 100644
index 00000000000..74f1f1f2457
--- /dev/null
+++ b/keyboards/beekeeb/3w6hs/keyboard.json
@@ -0,0 +1,69 @@
+{
+ "manufacturer": "beekeeb",
+ "keyboard_name": "3w6hs",
+ "maintainer": "beekeeb",
+ "diode_direction": "COL2ROW",
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x0003",
+ "vid": "0xBEEB",
+ "no_startup_check": true
+ },
+ "processor": "RP2040",
+ "bootloader": "rp2040",
+ "features": {
+ "bootmagic": true,
+ "mousekey": true,
+ "extrakey": true
+ },
+ "community_layouts": ["split_3x5_3"],
+ "layouts": {
+ "LAYOUT_split_3x5_3": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0.8},
+ {"matrix": [0, 1], "x": 1, "y": 0.2},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0.2},
+ {"matrix": [0, 4], "x": 4, "y": 0.4},
+
+ {"matrix": [4, 0], "x": 8, "y": 0.4},
+ {"matrix": [4, 1], "x": 9, "y": 0.2},
+ {"matrix": [4, 2], "x": 10, "y": 0},
+ {"matrix": [4, 3], "x": 11, "y": 0.2},
+ {"matrix": [4, 4], "x": 12, "y": 0.8},
+
+ {"matrix": [1, 0], "x": 0, "y": 1.8},
+ {"matrix": [1, 1], "x": 1, "y": 1.2},
+ {"matrix": [1, 2], "x": 2, "y": 1},
+ {"matrix": [1, 3], "x": 3, "y": 1.2},
+ {"matrix": [1, 4], "x": 4, "y": 1.4},
+
+ {"matrix": [5, 0], "x": 8, "y": 1.4},
+ {"matrix": [5, 1], "x": 9, "y": 1.2},
+ {"matrix": [5, 2], "x": 10, "y": 1},
+ {"matrix": [5, 3], "x": 11, "y": 1.2},
+ {"matrix": [5, 4], "x": 12, "y": 1.8},
+
+ {"matrix": [2, 0], "x": 0, "y": 2.8},
+ {"matrix": [2, 1], "x": 1, "y": 2.2},
+ {"matrix": [2, 2], "x": 2, "y": 2},
+ {"matrix": [2, 3], "x": 3, "y": 2.2},
+ {"matrix": [2, 4], "x": 4, "y": 2.4},
+
+ {"matrix": [6, 0], "x": 8, "y": 2.4},
+ {"matrix": [6, 1], "x": 9, "y": 2.2},
+ {"matrix": [6, 2], "x": 10, "y": 2},
+ {"matrix": [6, 3], "x": 11, "y": 2.2},
+ {"matrix": [6, 4], "x": 12, "y": 2.8},
+
+ {"matrix": [3, 2], "x": 3.2, "y": 3.6},
+ {"matrix": [3, 3], "x": 4.2, "y": 3.6},
+ {"matrix": [3, 4], "x": 5.2, "y": 3.8},
+
+ {"matrix": [7, 0], "x": 6.8, "y": 3.8},
+ {"matrix": [7, 1], "x": 7.8, "y": 3.6},
+ {"matrix": [7, 2], "x": 8.8, "y": 3.6}
+ ]
+ }
+ }
+}
diff --git a/keyboards/beekeeb/3w6hs/keymaps/default/keymap.c b/keyboards/beekeeb/3w6hs/keymaps/default/keymap.c
new file mode 100644
index 00000000000..8a9a90175fc
--- /dev/null
+++ b/keyboards/beekeeb/3w6hs/keymaps/default/keymap.c
@@ -0,0 +1,68 @@
+/* Copyright 2021 weteor
+ *
+ * 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
+
+enum layers {
+ _ALPHA_QWERTY,
+ _ALPHA_COLEMAK,
+ _SYM,
+ _NAV,
+ _NUM,
+ _CFG,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+
+ [_ALPHA_QWERTY] = LAYOUT_split_3x5_3(
+ 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,
+ LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
+
+ LCTL_T(KC_ESC), LT(_NUM,KC_SPC), LT(_NAV, KC_TAB), LT(_SYM, KC_BSPC), KC_ENT, LALT_T(KC_DEL)
+ ),
+ [_ALPHA_COLEMAK] = LAYOUT_split_3x5_3(
+ KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT,
+ KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
+ LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SCLN),
+ LCTL_T(KC_ENT), LT(_NUM,KC_SPC), LT(_NAV, KC_TAB), LT(_SYM, KC_BSPC), KC_ENT, LALT_T(KC_DEL)
+ ),
+ [_SYM] = LAYOUT_split_3x5_3(
+ KC_GRV , KC_CIRC, KC_AT, KC_DLR, KC_TILD, KC_AMPR, KC_EXLM, KC_PIPE, KC_UNDS, KC_HASH,
+ KC_SLSH, KC_LBRC, KC_LCBR, KC_LPRN, KC_EQL, KC_ASTR, KC_RPRN, KC_RCBR, KC_RBRC, KC_BSLS,
+ _______, KC_QUES, KC_PLUS, KC_PERC, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, XXXXXXX, _______,
+ XXXXXXX, MO(_CFG), XXXXXXX, _______, XXXXXXX, XXXXXXX
+ ),
+ [_NAV] = LAYOUT_split_3x5_3(
+ XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX, XXXXXXX, KC_PGDN, KC_UP, KC_PGUP, KC_DEL,
+ KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, XXXXXXX, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, _______, XXXXXXX, MO(_CFG), XXXXXXX
+ ),
+ [_NUM] = LAYOUT_split_3x5_3(
+ XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, KC_PPLS, KC_P7, KC_P8, KC_P9, KC_PSLS,
+ XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, KC_P0, KC_P4, KC_P5, KC_P6, KC_PDOT,
+ XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_PMNS, KC_P1, KC_P2, KC_P3, KC_PAST,
+ XXXXXXX, _______, XXXXXXX, KC_PEQL, KC_PENT, XXXXXXX
+ ),
+ [_CFG] = LAYOUT_split_3x5_3(
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,DF(_ALPHA_QWERTY), DF(_ALPHA_COLEMAK),
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX
+ ),
+};
diff --git a/keyboards/beekeeb/3w6hs/matrix.c b/keyboards/beekeeb/3w6hs/matrix.c
new file mode 100644
index 00000000000..8bddc628429
--- /dev/null
+++ b/keyboards/beekeeb/3w6hs/matrix.c
@@ -0,0 +1,248 @@
+/*
+Copyright 2013 Oleg Kostyuk
+ 2020 Pierre Chevalier
+ 2021 weteor
+ 2023 beekeeb
+*/
+
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+/*
+ * This code was heavily inspired by the ergodox_ez keymap, and modernized
+ * to take advantage of the quantum.h microcontroller agnostics gpio control
+ * abstractions and use the macros defined in config.h for the wiring as opposed
+ * to repeating that information all over the place.
+ */
+
+#include "matrix.h"
+#include "debug.h"
+#include "wait.h"
+#include "i2c_master.h"
+
+extern i2c_status_t tca9555_status;
+//#define I2C_TIMEOUT 1000
+
+// I2C address:
+// All address pins of the tca9555 are connected to the ground
+// | 0 | 1 | 0 | 0 | A2 | A1 | A0 |
+// | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
+#define I2C_ADDR (0b0100000 << 1)
+
+// Register addresses
+#define IODIRA 0x06 // i/o direction register
+#define IODIRB 0x07
+#define IREGP0 0x00 // GPIO pull-up resistor register
+#define IREGP1 0x01
+#define OREGP0 0x02 // general purpose i/o port register (write modifies OLAT)
+#define OREGP1 0x03
+
+bool i2c_initialized = 0;
+i2c_status_t tca9555_status = I2C_ADDR;
+
+uint8_t init_tca9555(void) {
+ dprint("starting init\n");
+ tca9555_status = I2C_ADDR;
+
+ // I2C subsystem
+ if (i2c_initialized == 0) {
+ i2c_init(); // on pins D(1,0)
+ i2c_initialized = true;
+ wait_ms(I2C_TIMEOUT);
+ }
+
+ // set pin direction
+ // - unused : input : 1
+ // - input : input : 1
+ // - driving : output : 0
+ uint8_t conf[2] = {
+ // This means: read all pins of port 0
+ 0b11111111,
+ // This means: we will write on pins 0 to 3 on port 1. read rest
+ 0b11110000,
+ };
+ tca9555_status = i2c_write_register(I2C_ADDR, IODIRA, conf, 2, I2C_TIMEOUT);
+
+ return tca9555_status;
+}
+
+/* matrix state(1:on, 0:off) */
+static matrix_row_t matrix[MATRIX_ROWS]; // debounced values
+
+static matrix_row_t read_cols(uint8_t row);
+static void init_cols(void);
+static void unselect_rows(void);
+static void select_row(uint8_t row);
+
+static uint8_t tca9555_reset_loop;
+
+void matrix_init_custom(void) {
+ // initialize row and col
+
+ tca9555_status = init_tca9555();
+
+ unselect_rows();
+ init_cols();
+
+ // initialize matrix state: all keys off
+ for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
+ matrix[i] = 0;
+ }
+}
+
+void matrix_power_up(void) {
+ tca9555_status = init_tca9555();
+
+ unselect_rows();
+ init_cols();
+
+ // initialize matrix state: all keys off
+ for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
+ matrix[i] = 0;
+ }
+}
+
+// Reads and stores a row, returning
+// whether a change occurred.
+static inline bool store_matrix_row(matrix_row_t current_matrix[], uint8_t index) {
+ matrix_row_t temp = read_cols(index);
+ if (current_matrix[index] != temp) {
+ current_matrix[index] = temp;
+ return true;
+ }
+ return false;
+}
+
+bool matrix_scan_custom(matrix_row_t current_matrix[]) {
+ if (tca9555_status) { // if there was an error
+ if (++tca9555_reset_loop == 0) {
+ // since tca9555_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans
+ // this will be approx bit more frequent than once per second
+ dprint("trying to reset tca9555\n");
+ tca9555_status = init_tca9555();
+ if (tca9555_status) {
+ dprint("right side not responding\n");
+ } else {
+ dprint("right side attached\n");
+ }
+ }
+ }
+
+ bool changed = false;
+ for (uint8_t i = 0; i < MATRIX_ROWS_PER_SIDE; i++) {
+ // select rows from left and right hands
+ uint8_t left_index = i;
+ uint8_t right_index = i + MATRIX_ROWS_PER_SIDE;
+ select_row(left_index);
+ select_row(right_index);
+
+ // we don't need a 30us delay anymore, because selecting a
+ // left-hand row requires more than 30us for i2c.
+
+ changed |= store_matrix_row(current_matrix, left_index);
+ changed |= store_matrix_row(current_matrix, right_index);
+
+ unselect_rows();
+ }
+
+ return changed;
+}
+
+static void init_cols(void) {
+ // init on tca9555
+ // not needed, already done as part of init_tca9555()
+
+ // init on mcu
+ pin_t matrix_col_pins_mcu[MATRIX_COLS_PER_SIDE] = MATRIX_COL_PINS_L;
+ for (int pin_index = 0; pin_index < MATRIX_COLS_PER_SIDE; pin_index++) {
+ pin_t pin = matrix_col_pins_mcu[pin_index];
+ gpio_set_pin_input_high(pin);
+ gpio_write_pin_high(pin);
+ }
+}
+
+static matrix_row_t read_cols(uint8_t row) {
+ if (row < MATRIX_ROWS_PER_SIDE) {
+ pin_t matrix_col_pins_mcu[MATRIX_COLS_PER_SIDE] = MATRIX_COL_PINS_L;
+ matrix_row_t current_row_value = 0;
+ // For each col...
+ for (uint8_t col_index = 0; col_index < MATRIX_COLS_PER_SIDE; col_index++) {
+ // Select the col pin to read (active low)
+ uint8_t pin_state = gpio_read_pin(matrix_col_pins_mcu[col_index]);
+
+ // Populate the matrix row with the state of the col pin
+ current_row_value |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index);
+ }
+ return current_row_value;
+ } else {
+ if (tca9555_status) { // if there was an error
+ return 0;
+ } else {
+ uint8_t data = 0;
+ uint8_t port0 = 0;
+ tca9555_status = i2c_read_register(I2C_ADDR, IREGP0, &port0, 1, I2C_TIMEOUT);
+ if (tca9555_status) { // if there was an error
+ // do nothing
+ return 0;
+ } else {
+ port0 = ~port0;
+ // We read all the pins on GPIOA.
+ // The initial state was all ones and any depressed key at a given column for the currently selected row will have its bit flipped to zero.
+ // The return value is a row as represented in the generic matrix code were the rightmost bits represent the lower columns and zeroes represent non-depressed keys while ones represent depressed keys.
+ // the pins connected to eact columns are sequential, but in reverse order, and counting from zero down (col 5 -> GPIO04, col6 -> GPIO03 and so on).
+ data |= (port0 & 0x01) << 4;
+ data |= (port0 & 0x02) << 2;
+ data |= (port0 & 0x04);
+ data |= (port0 & 0x08) >> 2;
+ data |= (port0 & 0x10) >> 4;
+
+ tca9555_status = I2C_STATUS_SUCCESS;
+ return data;
+ }
+ }
+ }
+}
+
+static void unselect_rows(void) {
+ // no need to unselect on tca9555, because the select step sets all
+ // the other row bits high, and it's not changing to a different
+ // direction
+
+ // unselect rows on microcontroller
+ pin_t matrix_row_pins_mcu[MATRIX_ROWS_PER_SIDE] = MATRIX_ROW_PINS_L;
+ for (int pin_index = 0; pin_index < MATRIX_ROWS_PER_SIDE; pin_index++) {
+ pin_t pin = matrix_row_pins_mcu[pin_index];
+ gpio_set_pin_input_high(pin);
+ gpio_write_pin_low(pin);
+ }
+}
+
+static void select_row(uint8_t row) {
+ uint8_t port1 = 0xff;
+
+ if (row < MATRIX_ROWS_PER_SIDE) {
+ // select on atmega32u4
+ pin_t matrix_row_pins_mcu[MATRIX_ROWS_PER_SIDE] = MATRIX_ROW_PINS_L;
+ pin_t pin = matrix_row_pins_mcu[row];
+ gpio_set_pin_output(pin);
+ gpio_write_pin_low(pin);
+ } else {
+ // select on tca9555
+ if (tca9555_status) { // if there was an error
+ // do nothing
+ } else {
+ switch(row) {
+ case 4: port1 &= ~(1 << 0); break;
+ case 5: port1 &= ~(1 << 1); break;
+ case 6: port1 &= ~(1 << 2); break;
+ case 7:
+ port1 &= ~(1 << 3);
+ break;
+ default: break;
+ }
+
+ tca9555_status = i2c_write_register(I2C_ADDR, OREGP1, &port1, 1, I2C_TIMEOUT);
+ // Select the desired row by writing a byte for the entire GPIOB bus where only the bit representing the row we want to select is a zero (write instruction) and every other bit is a one.
+ // Note that the row - MATRIX_ROWS_PER_SIDE reflects the fact that being on the right hand, the columns are numbered from MATRIX_ROWS_PER_SIDE to MATRIX_ROWS, but the pins we want to write to are indexed from zero up on the GPIOB bus.
+ }
+ }
+}
diff --git a/keyboards/beekeeb/3w6hs/mcuconf.h b/keyboards/beekeeb/3w6hs/mcuconf.h
new file mode 100644
index 00000000000..dd927436dff
--- /dev/null
+++ b/keyboards/beekeeb/3w6hs/mcuconf.h
@@ -0,0 +1,24 @@
+/* Copyright 2023 QMK
+ *
+ * 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 RP_I2C_USE_I2C0
+#undef RP_I2C_USE_I2C1
+#define RP_I2C_USE_I2C0 TRUE
+#define RP_I2C_USE_I2C1 FALSE
diff --git a/keyboards/beekeeb/3w6hs/readme.md b/keyboards/beekeeb/3w6hs/readme.md
new file mode 100644
index 00000000000..e0dde6eb0b1
--- /dev/null
+++ b/keyboards/beekeeb/3w6hs/readme.md
@@ -0,0 +1,26 @@
+# 3W6HS
+
+
+
+The 3W6HS is a hotswap, RP2040, low profile, split keyboard with 36 keys, modified from 3W6 by weteor.
+
+* Keyboard Maintainer: [beekeeb](https://github.com/beekeeb)
+* Hardware Supported: RP2040
+* Hardware Availability: [https://shop.beekeeb.com/](https://shop.beekeeb.com)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make beekeeb/3w6hs:default
+
+Flashing example for this keyboard:
+
+ make beekeeb/3w6hs: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
+
+To enter the bootloader, follow these steps:
+* Disconnect the keyboard from the computer.
+* Locate the BOOT button, which is the top button on the left side of the keyboard.
+* While holding down the BOOT button, connect the keyboard back to the computer.
diff --git a/keyboards/beekeeb/3w6hs/rules.mk b/keyboards/beekeeb/3w6hs/rules.mk
new file mode 100644
index 00000000000..cea39bb5c90
--- /dev/null
+++ b/keyboards/beekeeb/3w6hs/rules.mk
@@ -0,0 +1,3 @@
+CUSTOM_MATRIX = lite
+SRC += matrix.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/beekeeb/piantor/keyboard.json b/keyboards/beekeeb/piantor/keyboard.json
index e4ecd4207e5..77bfc3678cc 100644
--- a/keyboards/beekeeb/piantor/keyboard.json
+++ b/keyboards/beekeeb/piantor/keyboard.json
@@ -40,6 +40,9 @@
["GP15", "GP14", "GP16", null, null, null]
]
}
+ },
+ "serial": {
+ "driver": "vendor"
}
},
"community_layouts": [
diff --git a/keyboards/beekeeb/piantor/rules.mk b/keyboards/beekeeb/piantor/rules.mk
deleted file mode 100644
index 161ec22b16e..00000000000
--- a/keyboards/beekeeb/piantor/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SERIAL_DRIVER = vendor
diff --git a/keyboards/beekeeb/piantor_pro/keyboard.json b/keyboards/beekeeb/piantor_pro/keyboard.json
index c85247550e2..ad4890ae684 100644
--- a/keyboards/beekeeb/piantor_pro/keyboard.json
+++ b/keyboards/beekeeb/piantor_pro/keyboard.json
@@ -24,7 +24,10 @@
"vid": "0xBEEB"
},
"split": {
- "enabled": true
+ "enabled": true,
+ "serial": {
+ "driver": "vendor"
+ }
},
"community_layouts": [ "split_3x6_3" ],
"layouts": {
diff --git a/keyboards/beekeeb/piantor_pro/rules.mk b/keyboards/beekeeb/piantor_pro/rules.mk
deleted file mode 100644
index 161ec22b16e..00000000000
--- a/keyboards/beekeeb/piantor_pro/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SERIAL_DRIVER = vendor
diff --git a/keyboards/bemeier/bmek/keymaps/default/keymap.c b/keyboards/bemeier/bmek/keymaps/default/keymap.c
index 5ca4a3c8b21..f49223dfff4 100755
--- a/keyboards/bemeier/bmek/keymaps/default/keymap.c
+++ b/keyboards/bemeier/bmek/keymaps/default/keymap.c
@@ -69,8 +69,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
└─────┴──────┴────────────────┘ └────────────────┴──────┴─────┘
*/
QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, RGB_SPI, RGB_SPD, RGB_SAI, RGB_SAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG(2), RGB_VAI, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
+ XXXXXXX, XXXXXXX, UG_TOGG, UG_NEXT, UG_PREV, UG_HUEU, UG_HUED, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, UG_SPDU, UG_SPDD, UG_SATU, UG_SATD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG(2), UG_VALU, UG_VALD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX
) };
diff --git a/keyboards/bemeier/bmek/keymaps/via/README.md b/keyboards/bemeier/bmek/keymaps/via/README.md
deleted file mode 100755
index 30d54301fb1..00000000000
--- a/keyboards/bemeier/bmek/keymaps/via/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# Default VIA Keymap
-Compile the firmware with this keymap for use the BMEK with the [VIA configurator](https://caniusevia.com/).
-Layout options can be configured in VIA (see first screenshot below).
-
-## 0: Base Layer
-
-
-## 1: Nav Layer
-
-
-## 2: NUM Block
-
-
-## 4: FW Config
-
-
-## Alternative Preconfigured Layouts
-TODO: Provide (links to) some alternative via keymaps after VIA support is landed upstream.
diff --git a/keyboards/bemeier/bmek/keymaps/via/config.h b/keyboards/bemeier/bmek/keymaps/via/config.h
deleted file mode 100755
index 1deca961a0c..00000000000
--- a/keyboards/bemeier/bmek/keymaps/via/config.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright 2020 bemeier
- *
- * 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 VIA_EEPROM_CUSTOM_CONFIG_SIZE 20
diff --git a/keyboards/bemeier/bmek/keymaps/via/keymap.c b/keyboards/bemeier/bmek/keymaps/via/keymap.c
deleted file mode 100755
index b8e72975470..00000000000
--- a/keyboards/bemeier/bmek/keymaps/via/keymap.c
+++ /dev/null
@@ -1,114 +0,0 @@
-/* Copyright 2020 bemeier
- *
- * 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(
-/* Default layer
-┌─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
-│ F13 │ │ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │
-├─────┤ ├─────┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┘ ┌─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴─────┤
-│ F14 │ │ TAB │ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │ [ │ ] │ BSPC │
-├─────┤ ├───────┴┬────┴┬────┴┬────┴┬────┴┬────┴┐ └─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴───────┤
-│ F15 │ │ CTRL │ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │ ENTER │
-├─────┤ ├───────┬┴┬────┴┬────┴┬────┴┬────┴┬────┴┐ ┌┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴──────┬────┤
-│ F16 │ │ SHFT │`│ Z │ X │ C │ V │ B │ │ B │ N │ M │ , │ . │ / │ SHFT │ Fn │
-└─────┘ └───────┴─┼─────┼─────┴┬────┴─────┴─────┤ ├─────┴─────┴────┬┴─────┼─────┼─────┴───────┴────┘
- │ GUI │ ALT │ SPACE │ │ SPACE/Fn_1 │ ALT │ CTL │
- └─────┴──────┴────────────────┘ └────────────────┴──────┴─────┘
-*/
- KC_F13, 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_GRV,
- KC_F14, 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_BSPC,
- KC_F15, 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_ENT,
- KC_F16, KC_LSFT, KC_GRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
- KC_LGUI, KC_LALT, KC_SPC, LT(1, KC_SPC), KC_RALT, KC_RCTL
-), [1] = LAYOUT_all(
-/* Function Layer 1: Nav
-┌─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
-│ RST │ │ │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ INS │ DEL │
-├─────┤ ├─────┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┘ ┌─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴─────┤
-│ │ │ │ END │ ^ │HOME │PGUP │ │ │ │ │ │ │ |> │ << │ >> │ │
-├─────┤ ├───────┴┬────┴┬────┴┬────┴┬────┴┬────┴┐ └─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴───────┤
-│ │ │ │ <- │ v │ -> │PGDN │ │ │ <- │ v │ ^ │ -> │ o) │ o)} │ │
-├─────┤ ├───────┬┴┬────┴┬────┴┬────┴┬────┴┬────┴┐ ┌┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴──────┬────┤
-│ │ │ │ │ │ │ CFG │ │ NUM │ │ │ │ │LDSKT│RDSKT│ Ø │ │ │
-└─────┘ └───────┴─┼─────┼─────┴┬────┴─────┴─────┤ ├─────┴─────┴────┬┴─────┼─────┼─────┴───────┴────┘
- │ │ │ │ │ │ │ │
- └─────┴──────┴────────────────┘ └────────────────┴──────┴─────┘
-*/
- QK_BOOT, _______, 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_END, KC_UP, KC_HOME, KC_PGUP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MPLY, KC_MPRV, KC_MNXT, _______,
- _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_VOLD, KC_VOLU, _______,
- _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, TG(4), XXXXXXX, XXXXXXX, TG(2), XXXXXXX, XXXXXXX, LCTL(LGUI(KC_LEFT)), LCTL(LGUI(KC_RGHT)), KC_MUTE, _______, _______,
- _______, _______, _______, _______, _______, _______
-), [2] = LAYOUT_all(
-/* Function Layer 2: Numpad example
-┌─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
-│ │ │ │ │ │ │ │ │ │ │ 7 │ 8 │ 9 │ 0 │ - │ + │ │ │
-├─────┤ ├─────┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┘ ┌─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴─────┤
-│ │ │ │ │ │ │ │ │ │ 4 │ 5 │ 6 │ │ / │ * │ │ │
-├─────┤ ├───────┴┬────┴┬────┴┬────┴┬────┴┬────┴┐ └─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴───────┤
-│ │ │ │ │ │ │ │ │ │ 1 │ 2 │ 3 │ │ │ │ KP_ENTER │
-├─────┤ ├───────┬┴┬────┴┬────┴┬────┴┬────┴┬────┴┐ ┌┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴──────┬────┤
-│ │ │ │ │ │ │ │ │ │ │ ___ │ 0 │ . │ │ │ │ │ │
-└─────┘ └───────┴─┼─────┼─────┴┬────┴─────┴─────┤ ├─────┴─────┴────┬┴─────┼─────┼─────┴───────┴────┘
- │ │ │ │ │ │ │ │
- └─────┴──────┴────────────────┘ └────────────────┴──────┴─────┘
-*/
- _______, _______, _______, _______, _______, _______, _______, _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_0, KC_PMNS, KC_PPLS, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_KP_4, KC_KP_5, KC_KP_6, XXXXXXX, KC_PSLS, KC_PAST, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, XXXXXXX, _______, _______, KC_PENT,
- _______, _______, _______, _______, _______, _______, _______, _______, TG(2), KC_KP_0, KC_PDOT, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______
-), [3] = LAYOUT_all(
-/* Function Layer 3
-┌─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
-│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
-├─────┤ ├─────┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┘ ┌─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴─────┤
-│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
-├─────┤ ├───────┴┬────┴┬────┴┬────┴┬────┴┬────┴┐ └─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴───────┤
-│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
-├─────┤ ├───────┬┴┬────┴┬────┴┬────┴┬────┴┬────┴┐ ┌┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴──────┬────┤
-│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
-└─────┘ └───────┴─┼─────┼─────┴┬────┴─────┴─────┤ ├─────┴─────┴────┬┴─────┼─────┼─────┴───────┴────┘
- │ │ │ │ │ │ │ │
- └─────┴──────┴────────────────┘ └────────────────┴──────┴─────┘
-*/
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______
-), [4] = LAYOUT_all(
-/* Function Layer 4: Firmware Config
-┌─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
-│ RST │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
-├─────┤ ├─────┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┘ ┌─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴─────┤
-│ │ │ │ RGB │RGB+ │RGB- │HUE+ │HUE- │ │ │ │ │ │ │ │ │ │
-├─────┤ ├───────┴┬────┴┬────┴┬────┴┬────┴┬────┴┐ └─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴───────┤
-│ │ │ │ │SPD+ │SPD- │SAT+ │SAT- │ │ │ │ │ │ │ │ │
-├─────┤ ├───────┬┴┬────┴┬────┴┬────┴┬────┴┬────┴┐ ┌┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴──────┬────┤
-│ │ │ │ │ │ │ ___ │VAL+ │VAL- │ │ │ │ │ │ │ │ │ │
-└─────┘ └───────┴─┼─────┼─────┴┬────┴─────┴─────┤ ├─────┴─────┴────┬┴─────┼─────┼─────┴───────┴────┘
- │ │ │ │ │ │ │ │
- └─────┴──────┴────────────────┘ └────────────────┴──────┴─────┘
-*/
- QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, RGB_SPI, RGB_SPD, RGB_SAI, RGB_SAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG(4), RGB_VAI, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
- XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX
-) };
diff --git a/keyboards/bemeier/bmek/keymaps/via/rules.mk b/keyboards/bemeier/bmek/keymaps/via/rules.mk
deleted file mode 100755
index 1e5b99807cb..00000000000
--- a/keyboards/bemeier/bmek/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/bestway/keymaps/via/keymap.c b/keyboards/bestway/keymaps/via/keymap.c
deleted file mode 100644
index ae87243f240..00000000000
--- a/keyboards/bestway/keymaps/via/keymap.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright 2022 LXF-YZP(yuezp)
- *
- * 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_RCTL, KC_RALT, MO(1), KC_APP, KC_LEFT, KC_DOWN, KC_RGHT),
-
-[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_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)
-
-};
diff --git a/keyboards/bestway/keymaps/via/rules.mk b/keyboards/bestway/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3e..00000000000
--- a/keyboards/bestway/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/biacco42/ergo42/keymaps/default-illustrator/config.h b/keyboards/biacco42/ergo42/keymaps/default-illustrator/config.h
deleted file mode 100644
index f0717a46328..00000000000
--- a/keyboards/biacco42/ergo42/keymaps/default-illustrator/config.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
-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
-
-/* Select hand configuration */
-
-#define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
-
diff --git a/keyboards/biacco42/ergo42/keymaps/default-underglow/config.h b/keyboards/biacco42/ergo42/keymaps/default-underglow/config.h
index 2469b627e26..169a67d536a 100644
--- a/keyboards/biacco42/ergo42/keymaps/default-underglow/config.h
+++ b/keyboards/biacco42/ergo42/keymaps/default-underglow/config.h
@@ -20,12 +20,6 @@ along with this program. If not, see .
#pragma once
-/* Select hand configuration */
-
-#define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
-
// Underglow
#undef RGBLIGHT_LED_COUNT
#define RGBLIGHT_LED_COUNT 14 // Number of LEDs
diff --git a/keyboards/biacco42/ergo42/keymaps/default-underglow/keymap.c b/keyboards/biacco42/ergo42/keymaps/default-underglow/keymap.c
index 0710cd1ebea..1ebbfc219ea 100644
--- a/keyboards/biacco42/ergo42/keymaps/default-underglow/keymap.c
+++ b/keyboards/biacco42/ergo42/keymaps/default-underglow/keymap.c
@@ -87,8 +87,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
[RGB] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, TAP_ANIM,XXXXXXX,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_HUI, RGB_SAD, RGB_VAD, RGB_RST, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, TAP_ANIM,XXXXXXX,
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_NEXT, UG_HUED, UG_SATD, UG_VALD, RGB_RST, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
)
@@ -98,7 +98,7 @@ bool isTapAnim = false;
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
- case RGB_MOD:
+ case QK_UNDERGLOW_MODE_NEXT:
if (record->event.pressed) {
isTapAnim = false;
}
diff --git a/keyboards/biacco42/ergo42/keymaps/default/config.h b/keyboards/biacco42/ergo42/keymaps/default/config.h
deleted file mode 100644
index f0717a46328..00000000000
--- a/keyboards/biacco42/ergo42/keymaps/default/config.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
-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
-
-/* Select hand configuration */
-
-#define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
-
diff --git a/keyboards/biacco42/ergo42/rev1/keyboard.json b/keyboards/biacco42/ergo42/rev1/keyboard.json
index b3a53bb3a4c..c75e9d1c511 100644
--- a/keyboards/biacco42/ergo42/rev1/keyboard.json
+++ b/keyboards/biacco42/ergo42/rev1/keyboard.json
@@ -33,7 +33,9 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D0"
+ "serial": {
+ "pin": "D0"
+ }
},
"processor": "atmega32u4",
"bootloader": "caterina",
diff --git a/keyboards/biacco42/ergo42/rules.mk b/keyboards/biacco42/ergo42/rules.mk
deleted file mode 100644
index 18059c0a3bc..00000000000
--- a/keyboards/biacco42/ergo42/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DEFAULT_FOLDER = biacco42/ergo42/rev1
diff --git a/keyboards/biacco42/meishi2/keymaps/via/keymap.c b/keyboards/biacco42/meishi2/keymaps/via/keymap.c
deleted file mode 100644
index be706ea09a6..00000000000
--- a/keyboards/biacco42/meishi2/keymaps/via/keymap.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright 2019 Biacco42
- *
- * 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( /* Base */
- LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V)
- ),
- [1] = LAYOUT(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [2] = LAYOUT(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [3] = LAYOUT(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-};
diff --git a/keyboards/biacco42/meishi2/keymaps/via/rules.mk b/keyboards/biacco42/meishi2/keymaps/via/rules.mk
deleted file mode 100644
index c859353a464..00000000000
--- a/keyboards/biacco42/meishi2/keymaps/via/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-VIA_ENABLE = yes
-CONSOLE_ENABLE = no
-COMMAND_ENABLE = no
diff --git a/keyboards/biacco42/meishi2/readme.md b/keyboards/biacco42/meishi2/readme.md
index 97c5465f866..b190ff38ce4 100644
--- a/keyboards/biacco42/meishi2/readme.md
+++ b/keyboards/biacco42/meishi2/readme.md
@@ -5,8 +5,7 @@
meishi2 - The better micro macro keyboard
Keyboard Maintainer: [Biacco42](https://github.com/Biacco42)
-Hardware Supported: The PCBs, controllers supported
-Hardware Availability: [links to where you can find this hardware](https://github.com/Biacco42/meishi2)
+Hardware Availability: https://github.com/Biacco42/meishi2
Make example for this keyboard (after setting up your build environment):
diff --git a/keyboards/binepad/bn003/keymaps/via/keymap.c b/keyboards/binepad/bn003/keymaps/via/keymap.c
deleted file mode 100644
index e0ffb3f80b1..00000000000
--- a/keyboards/binepad/bn003/keymaps/via/keymap.c
+++ /dev/null
@@ -1,24 +0,0 @@
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(
- KC_0,
- KC_1,
- KC_2
- ),
- [1] = LAYOUT(
- KC_NO,
- KC_NO,
- KC_NO
- ),
- [2] = LAYOUT(
- KC_NO,
- KC_NO,
- KC_NO
- ),
- [3] = LAYOUT(
- KC_NO,
- KC_NO,
- KC_NO
- )
-};
diff --git a/keyboards/binepad/bn003/keymaps/via/rules.mk b/keyboards/binepad/bn003/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/binepad/bn003/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/binepad/bn006/keymaps/via/keymap.c b/keyboards/binepad/bn006/keymaps/via/keymap.c
deleted file mode 100755
index 1ee98f890c4..00000000000
--- a/keyboards/binepad/bn006/keymaps/via/keymap.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright 2022 Binepad (@binpad) */
-/* SPDX-License-Identifier: GPL-2.0-or-later */
-
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /*
- * ┌───┬───┬───┐
- * │ A │ B │ C │
- * ├───┼───┼───┤
- * │ D │ E │ F │
- * └───┴───┴───┘
- */
- [0] = LAYOUT_ortho_2x3(
- KC_MPLY, KC_MUTE, KC_VOLU,
- KC_MPRV, KC_MNXT, KC_VOLD
- ),
-
- [1] = LAYOUT_ortho_2x3(
- _______, _______, _______,
- _______, _______, _______
- ),
-
- [2] = LAYOUT_ortho_2x3(
- _______, _______, _______,
- _______, _______, _______
- ),
-
- [3] = LAYOUT_ortho_2x3(
- _______, _______, _______,
- _______, _______, _______
- )
-};
diff --git a/keyboards/binepad/bn006/keymaps/via/rules.mk b/keyboards/binepad/bn006/keymaps/via/rules.mk
deleted file mode 100644
index 78ee487f452..00000000000
--- a/keyboards/binepad/bn006/keymaps/via/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-# Copyright 2022 Binepad (@binpad)
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-VIA_ENABLE = yes
diff --git a/keyboards/binepad/bn009/keymaps/via/keymap.json b/keyboards/binepad/bn009/keymaps/via/keymap.json
deleted file mode 100644
index 1790cf9328a..00000000000
--- a/keyboards/binepad/bn009/keymaps/via/keymap.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "config": {
- "features": {
- "via": true
- }
- },
- "keyboard": "binepad/bn009/r2",
- "version": 1,
- "author": "binepad",
- "notes": "This file is a keymap.json file for binepad/bn009r2",
- "keymap": "via",
- "layout": "LAYOUT_ortho_3x3",
- "layers": [
- [
- "KC_7", "KC_8", "KC_9",
- "KC_4", "KC_5", "KC_6",
- "KC_1", "KC_2", "KC_3"
- ],
- [
- "KC_NO", "KC_NO", "KC_NO",
- "KC_NO", "KC_NO", "KC_NO",
- "KC_NO", "KC_NO", "KC_NO"
- ],
- [
- "KC_NO", "KC_NO", "KC_NO",
- "KC_NO", "KC_NO", "KC_NO",
- "KC_NO", "KC_NO", "KC_NO"
- ],
- [
- "KC_NO", "KC_NO", "KC_NO",
- "KC_NO", "KC_NO", "KC_NO",
- "KC_NO", "KC_NO", "KC_NO"
- ]
- ]
-}
diff --git a/keyboards/binepad/bn009/rules.mk b/keyboards/binepad/bn009/rules.mk
deleted file mode 100644
index 74214d60ed0..00000000000
--- a/keyboards/binepad/bn009/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-# This file is mostly left blank
-
-DEFAULT_FOLDER = binepad/bn009/r2
diff --git a/keyboards/binepad/bnk8/config.h b/keyboards/binepad/bnk8/config.h
new file mode 100644
index 00000000000..40eea2db812
--- /dev/null
+++ b/keyboards/binepad/bnk8/config.h
@@ -0,0 +1,7 @@
+// Copyright 2024 binepad (@binepad)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+// Timing for SK6812
+#define WS2812_T1H 650
diff --git a/keyboards/binepad/bnk8/keyboard.json b/keyboards/binepad/bnk8/keyboard.json
new file mode 100755
index 00000000000..550aa779617
--- /dev/null
+++ b/keyboards/binepad/bnk8/keyboard.json
@@ -0,0 +1,88 @@
+{
+ "manufacturer": "binepad",
+ "keyboard_name": "BNK8",
+ "maintainer": "binepad",
+ "bootloader": "stm32duino",
+ "bootloader_instructions": "Hold down the key at (0x0) in the matrix (the top left key) and plug in the keyboard.",
+ "diode_direction": "COL2ROW",
+ "encoder": {
+ "rotary": [
+ {"pin_a": "A7", "pin_b": "A0", "resolution": 2}
+ ]
+ },
+ "features": {
+ "bootmagic": true,
+ "encoder": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgb_matrix": true
+ },
+ "matrix_pins": {
+ "cols": ["B3", "B4", "C13"],
+ "rows": ["C14", "B13", "B12"]
+ },
+ "processor": "STM32F103",
+ "rgb_matrix": {
+ "animations": {
+ "breathing": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_pinwheel": true,
+ "cycle_up_down": true,
+ "jellybean_raindrops": true,
+ "riverflow": true,
+ "solid_reactive": true,
+ "solid_reactive_simple": true,
+ "solid_splash": true,
+ "splash": true,
+ "starlight": true,
+ "starlight_dual_hue": true,
+ "starlight_dual_sat": true
+ },
+ "driver": "ws2812",
+ "layout": [
+ {"matrix": [0, 0], "x": 80, "y": 0, "flags": 4},
+ {"matrix": [0, 1], "x": 112, "y": 0, "flags": 4},
+ {"matrix": [1, 0], "x": 80, "y": 32, "flags": 4},
+ {"matrix": [1, 1], "x": 112, "y": 32, "flags": 4},
+ {"matrix": [1, 2], "x": 144, "y": 32, "flags": 4},
+ {"matrix": [2, 0], "x": 80, "y": 64, "flags": 4},
+ {"matrix": [2, 1], "x": 112, "y": 64, "flags": 4},
+ {"matrix": [2, 2], "x": 144, "y": 64, "flags": 4}
+ ],
+ "led_process_limit": 9,
+ "max_brightness": 180,
+ "sleep": true
+ },
+ "url": "https://www.binepad.com/product-page/bnk8",
+ "usb": {
+ "device_version": "1.0.0",
+ "vid": "0x4249",
+ "pid": "0x4E41"
+ },
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 1024
+ }
+ },
+ "ws2812": {
+ "pin": "C15"
+ },
+ "community_layouts": ["ortho_3x3"],
+ "layouts": {
+ "LAYOUT_ortho_3x3": {
+ "layout": [
+ {"label": "1", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "2", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "Knob", "matrix": [0, 2], "x": 2, "y": 0, "encoder": 0},
+ {"label": "3", "matrix": [1, 0], "x": 0, "y": 1},
+ {"label": "4", "matrix": [1, 1], "x": 1, "y": 1},
+ {"label": "5", "matrix": [1, 2], "x": 2, "y": 1},
+ {"label": "6", "matrix": [2, 0], "x": 0, "y": 2},
+ {"label": "7", "matrix": [2, 1], "x": 1, "y": 2},
+ {"label": "8", "matrix": [2, 2], "x": 2, "y": 2}
+ ]
+ }
+ }
+}
diff --git a/keyboards/binepad/bnk8/keymaps/default/keymap.json b/keyboards/binepad/bnk8/keymaps/default/keymap.json
new file mode 100644
index 00000000000..51b5e066197
--- /dev/null
+++ b/keyboards/binepad/bnk8/keymaps/default/keymap.json
@@ -0,0 +1,40 @@
+{
+ "keyboard": "binepad/bnk8",
+ "version": 1,
+ "author": "binepad",
+ "notes": "Copyright 2024 Binepad (@binepad) \n SPDX-License-Identifier: GPL-2.0-or-later \n This file is a keymap.json file for binepad/bnk8",
+ "keymap": "default",
+ "layout": "LAYOUT_ortho_3x3",
+ "layers": [
+ [
+ "KC_P1", "KC_P2", "KC_MUTE",
+ "KC_P3", "KC_P4", "KC_P5",
+ "KC_P6", "KC_P7", "LT(1, KC_P8)"
+ ],
+ [
+ "RM_HUEU", "RM_SATU", "RM_SPDU",
+ "RM_HUED", "RM_SATD", "RM_SPDD",
+ "RM_TOGG", "RM_NEXT", "_______"
+
+ ]
+ ],
+ "config": {
+ "features": {
+ "encoder_map": true
+ }
+ },
+ "encoders": [
+ [
+ {
+ "ccw": "KC_VOLD",
+ "cw": "KC_VOLU"
+ }
+ ],
+ [
+ {
+ "ccw": "RM_VALD",
+ "cw": "RM_VALU"
+ }
+ ]
+ ]
+}
diff --git a/keyboards/binepad/bnk8/readme.md b/keyboards/binepad/bnk8/readme.md
new file mode 100755
index 00000000000..89ceb863a1d
--- /dev/null
+++ b/keyboards/binepad/bnk8/readme.md
@@ -0,0 +1,26 @@
+# BINEPAD BNK8
+
+
+
+A compact 8-key 3x3 macropad with a rotary encoder at the top right.
+
+* Keyboard Maintainer: [binepad](https://github.com/binepad)
+* Hardware Supported: BINPAD BNK8
+* Hardware Availability: [binepad.com](https://binepad.com/products/bnk8)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make binepad/bnk8:default
+
+Flashing example for this keyboard:
+
+ make binepad/bnk8: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 2 ways:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key) and plug in the keyboard
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/binepad/bnk9/keymaps/default/keymap.c b/keyboards/binepad/bnk9/keymaps/default/keymap.c
index 9ae1e4541f6..60b02105992 100644
--- a/keyboards/binepad/bnk9/keymaps/default/keymap.c
+++ b/keyboards/binepad/bnk9/keymaps/default/keymap.c
@@ -11,10 +11,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_P7, KC_P8, LT(1, KC_P9)
),
[1] = LAYOUT(
- RGB_TOG,
- RGB_HUI, RGB_SAI, RGB_SPI,
- RGB_HUD, RGB_SAD, RGB_SPD,
- RGB_RMOD, RGB_MOD, _______
+ RM_TOGG,
+ RM_HUEU, RM_SATU, RM_SPDU,
+ RM_HUED, RM_SATD, RM_SPDD,
+ RM_PREV, RM_NEXT, _______
)
};
@@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
- [1] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }
+ [1] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) }
};
#endif
diff --git a/keyboards/binepad/bnk9/keymaps/via/keymap.c b/keyboards/binepad/bnk9/keymaps/via/keymap.c
deleted file mode 100644
index 9ae1e4541f6..00000000000
--- a/keyboards/binepad/bnk9/keymaps/via/keymap.c
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright 2023 Binepad (@binpad)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(
- KC_MUTE,
- KC_P1, KC_P2, KC_P3,
- KC_P4, KC_P5, KC_P6,
- KC_P7, KC_P8, LT(1, KC_P9)
- ),
- [1] = LAYOUT(
- RGB_TOG,
- RGB_HUI, RGB_SAI, RGB_SPI,
- RGB_HUD, RGB_SAD, RGB_SPD,
- RGB_RMOD, RGB_MOD, _______
- )
-};
-
-#if defined(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(RGB_VAD, RGB_VAI) }
-};
-
-#endif
diff --git a/keyboards/binepad/bnk9/keymaps/via/rules.mk b/keyboards/binepad/bnk9/keymaps/via/rules.mk
deleted file mode 100644
index f1adcab005e..00000000000
--- a/keyboards/binepad/bnk9/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/binepad/bnr1/keymaps/via/config.h b/keyboards/binepad/bnr1/keymaps/via/config.h
deleted file mode 100644
index ed7a62296fc..00000000000
--- a/keyboards/binepad/bnr1/keymaps/via/config.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/* Copyright 2022 Binepad (@binpad) */
-/* SPDX-License-Identifier: GPL-2.0-or-later */
-
-#pragma once
-
-#define TAPPING_TERM 175
-
-#ifdef DYNAMIC_KEYMAP_LAYER_COUNT
- #undef DYNAMIC_KEYMAP_LAYER_COUNT
-#endif
-#define DYNAMIC_KEYMAP_LAYER_COUNT 2
diff --git a/keyboards/binepad/bnr1/keymaps/via/keymap.c b/keyboards/binepad/bnr1/keymaps/via/keymap.c
deleted file mode 100644
index 4e7b0cf6eb2..00000000000
--- a/keyboards/binepad/bnr1/keymaps/via/keymap.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright 2022 Binepad (@binpad) */
-/* SPDX-License-Identifier: GPL-2.0-or-later */
-
-#include QMK_KEYBOARD_H
-
-enum {
- _L0,
- _L1
-} keyboard_layers;
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_L0] = LAYOUT_ortho_1x1(
- LT(_L1, KC_MUTE)
- ),
-
- [_L1] = LAYOUT_ortho_1x1(
- _______
- )
-};
-
-#if defined(ENCODER_MAP_ENABLE)
-
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [_L0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
- [_L1] = { ENCODER_CCW_CW(KC_MS_WH_DOWN, KC_MS_WH_UP) }
-};
-
-#endif
diff --git a/keyboards/binepad/bnr1/keymaps/via/rules.mk b/keyboards/binepad/bnr1/keymaps/via/rules.mk
deleted file mode 100644
index 254ffa32e8b..00000000000
--- a/keyboards/binepad/bnr1/keymaps/via/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-# Copyright 2022 Binepad (@binpad)
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-VIA_ENABLE = yes
-
-ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/binepad/bnr1/rules.mk b/keyboards/binepad/bnr1/rules.mk
deleted file mode 100755
index ce85c574046..00000000000
--- a/keyboards/binepad/bnr1/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DEFAULT_FOLDER = binepad/bnr1/v2
diff --git a/keyboards/binepad/kn01/keyboard.json b/keyboards/binepad/kn01/keyboard.json
new file mode 100755
index 00000000000..d7edaee77e2
--- /dev/null
+++ b/keyboards/binepad/kn01/keyboard.json
@@ -0,0 +1,37 @@
+{
+ "manufacturer": "Binepad",
+ "keyboard_name": "KN01",
+ "maintainer": "Binpad",
+ "bootloader": "stm32duino",
+ "diode_direction": "COL2ROW",
+ "encoder": {
+ "rotary": [
+ {"pin_a": "B3", "pin_b": "B4"}
+ ]
+ },
+ "features": {
+ "bootmagic": true,
+ "encoder": true,
+ "extrakey": true,
+ "mousekey": true
+ },
+ "matrix_pins": {
+ "cols": ["A15"],
+ "rows": ["A8"]
+ },
+ "processor": "STM32F103",
+ "url": "http://binepad.com",
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x4040",
+ "vid": "0x4249"
+ },
+ "community_layouts": ["ortho_1x1"],
+ "layouts": {
+ "LAYOUT_ortho_1x1": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "w": 2, "h": 2}
+ ]
+ }
+ }
+}
diff --git a/keyboards/binepad/kn01/keymaps/default/keymap.json b/keyboards/binepad/kn01/keymaps/default/keymap.json
new file mode 100644
index 00000000000..d6a3835f6ce
--- /dev/null
+++ b/keyboards/binepad/kn01/keymaps/default/keymap.json
@@ -0,0 +1,29 @@
+{
+ "config": {
+ "features": {
+ "encoder_map": true
+ }
+ },
+ "encoders": [
+ [
+ {
+ "ccw": "KC_VOLD",
+ "cw": "KC_VOLU"
+ }
+ ],
+ [
+ {
+ "ccw": "KC_MS_WH_DOWN",
+ "cw": "KC_MS_WH_UP"
+ }
+ ]
+ ],
+ "keyboard": "binepad/kn01",
+ "keymap": "default",
+ "layers": [
+ ["LT(1, KC_MUTE)"],
+ ["_______"]
+ ],
+ "layout": "LAYOUT_ortho_1x1",
+ "version": 1
+}
diff --git a/keyboards/binepad/kn01/readme.md b/keyboards/binepad/kn01/readme.md
new file mode 100755
index 00000000000..e65709a5409
--- /dev/null
+++ b/keyboards/binepad/kn01/readme.md
@@ -0,0 +1,29 @@
+# BINEPAD NEOKNOB KN01
+
+
+
+The KN01 is a multifunction knob, which can be rotated, pressed, and rotated while pressed.
+
+* Keyboard Maintainer: [Binpad](https://github.com/binepad)
+* Hardware Supported: **NEOKNOB KN01**
+* Hardware Availability: [Binepad.com](https://www.binepad.com/products/kn01)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make binepad/kn01:default
+
+Flashing example for this keyboard:
+
+ make binepad/kn01: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 knob while plugging in the keyboard's USB cable
+* **Physical reset button**: Briefly press the button on the underside of the PCB
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/binepad/knobx1/keyboard.json b/keyboards/binepad/knobx1/keyboard.json
new file mode 100644
index 00000000000..f82cf1dbd38
--- /dev/null
+++ b/keyboards/binepad/knobx1/keyboard.json
@@ -0,0 +1,69 @@
+{
+ "manufacturer": "Binepad",
+ "keyboard_name": "KnobX1",
+ "maintainer": "binepad",
+ "bootloader": "stm32duino",
+ "bootloader_instructions": "Hold down the layer button (small button on the bottom left) and plug in the keyboard.",
+ "diode_direction": "COL2ROW",
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 1024
+ }
+ },
+ "encoder": {
+ "rotary": [
+ {"pin_a": "B12", "pin_b": "B13", "resolution": 2}
+ ]
+ },
+ "features": {
+ "bootmagic": true,
+ "encoder": true,
+ "extrakey": true,
+ "mousekey": true,
+ "rgblight": true
+ },
+ "matrix_pins": {
+ "direct": [
+ ["A7", "A15"]
+ ]
+ },
+ "processor": "STM32F103",
+ "rgblight": {
+ "animations": {
+ "alternating": true,
+ "breathing": true,
+ "christmas": true,
+ "gradient": true,
+ "knight": true,
+ "rainbow_mood": true,
+ "rainbow_swirl": true,
+ "snake": true,
+ "twinkle": true
+ },
+ "default": {
+ "hue": 198,
+ "speed": 2,
+ "val": 204
+ },
+ "driver": "ws2812",
+ "led_count": 2,
+ "sleep": true
+ },
+ "url": "https://binepad.com/products/knobx1",
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x4249",
+ "vid": "0x5831"
+ },
+ "ws2812": {
+ "pin": "C13"
+ },
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1, "y": 0, "w": 3, "h": 3}
+ ]
+ }
+ }
+}
diff --git a/keyboards/binepad/knobx1/keymaps/default/keymap.json b/keyboards/binepad/knobx1/keymaps/default/keymap.json
new file mode 100644
index 00000000000..4d91c09968a
--- /dev/null
+++ b/keyboards/binepad/knobx1/keymaps/default/keymap.json
@@ -0,0 +1,22 @@
+{
+ "config": {
+ "features": {
+ "encoder_map": true
+ }
+ },
+ "encoders": [
+ [
+ {
+ "ccw": "KC_VOLD",
+ "cw": "KC_VOLU"
+ }
+ ]
+ ],
+ "keyboard": "binepad/knobx1",
+ "keymap": "default",
+ "layers": [
+ ["X1_LYRU", "KC_MUTE"]
+ ],
+ "layout": "LAYOUT",
+ "version": 1
+}
diff --git a/keyboards/binepad/knobx1/knobx1.c b/keyboards/binepad/knobx1/knobx1.c
new file mode 100644
index 00000000000..7f299b67e35
--- /dev/null
+++ b/keyboards/binepad/knobx1/knobx1.c
@@ -0,0 +1,76 @@
+// (c) 2025 Binepad (@binpad)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "knobx1.h"
+
+#ifdef DYNAMIC_KEYMAP_LAYER_COUNT
+# define X1_KEYMAP_LAYER_COUNT DYNAMIC_KEYMAP_LAYER_COUNT
+#else
+# define X1_KEYMAP_LAYER_COUNT 4
+#endif
+
+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++) {
+ gpio_set_pin_output(indicator_leds[i]); // Set Indicators as output
+ gpio_write_pin_low(indicator_leds[i]); // Set initial indicator low / OFF
+ }
+
+ // Call the user pre-init function if needed
+ // Do it after ._kb incase the user wants to change pin stuff
+ keyboard_pre_init_user();
+}
+
+layer_state_t layer_state_set_kb(layer_state_t state) {
+ state = layer_state_set_user(state);
+ uint8_t layer = get_highest_layer(state);
+ x1_layer_led(layer);
+ return state;
+}
+
+void matrix_init_kb(void) {
+ // Direct PINS use; gpio -> switch -> ground.
+ // Setting Row 0 to ground makes it work like a direct pin
+ gpio_set_pin_output(ROW0_PIN); // Set Col0 as an output
+ gpio_write_pin_low(ROW0_PIN); // Set Col0 to low / ground
+
+ matrix_init_user();
+}
+
+bool process_x1_layer_up(keyrecord_t *record) {
+ if (record->event.pressed) {
+ uint8_t current_layer = get_highest_layer(layer_state);
+ // Cycle through layers
+ uint8_t next_layer = (current_layer + 1) % X1_KEYMAP_LAYER_COUNT;
+ layer_move(next_layer);
+ x1_layer_led(next_layer); // Update LED indicators
+ }
+ return false;
+}
+
+bool process_x1_layer_down(keyrecord_t *record) {
+ if (record->event.pressed) {
+ uint8_t current_layer = get_highest_layer(layer_state);
+ // Reverse through layers
+ uint8_t prev_layer = (current_layer == 0) ? (X1_KEYMAP_LAYER_COUNT - 1) : (current_layer - 1);
+ layer_move(prev_layer);
+ x1_layer_led(prev_layer);
+ }
+ return false;
+}
+
+bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+ if (!process_record_user(keycode, record)) {
+ return false;
+ }
+ switch (keycode) {
+ case X1_LAYER_SELECTOR_UP:
+ return process_x1_layer_up(record);
+
+ case X1_LAYER_SELECTOR_DOWN:
+ return process_x1_layer_down(record);
+
+ default:
+ return true;
+ }
+}
diff --git a/keyboards/binepad/knobx1/knobx1.h b/keyboards/binepad/knobx1/knobx1.h
new file mode 100644
index 00000000000..76451240574
--- /dev/null
+++ b/keyboards/binepad/knobx1/knobx1.h
@@ -0,0 +1,49 @@
+// (c) 2025 Binepad (@binpad)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "quantum.h"
+
+// PCB has a 1x2 matrix. Set the ROW0 to ground for faster direct pin access.
+#define ROW0_PIN B8
+
+#define IND1_LED A6
+#define IND2_LED A5
+#define IND3_LED A4
+#define IND4_LED A3
+
+// clang-format off
+enum x1_keycodes {
+ X1_LAYER_SELECTOR_UP = QK_USER,
+ X1_LAYER_SELECTOR_DOWN
+};
+// clang-format on
+
+#define X1_LYRU X1_LAYER_SELECTOR_UP
+#define X1_LYRD X1_LAYER_SELECTOR_DOWN
+
+// clang-format off
+static inline void x1_led_1(bool on) { gpio_write_pin(IND1_LED, on); }
+static inline void x1_led_2(bool on) { gpio_write_pin(IND2_LED, on); }
+static inline void x1_led_3(bool on) { gpio_write_pin(IND3_LED, on); }
+static inline void x1_led_4(bool on) { gpio_write_pin(IND4_LED, on); }
+static inline void x1_led_1_on(void) { gpio_write_pin_high(IND1_LED); }
+static inline void x1_led_2_on(void) { gpio_write_pin_high(IND2_LED); }
+static inline void x1_led_3_on(void) { gpio_write_pin_high(IND3_LED); }
+static inline void x1_led_4_on(void) { gpio_write_pin_high(IND4_LED); }
+static inline void x1_led_1_off(void) { gpio_write_pin_low(IND1_LED); }
+static inline void x1_led_2_off(void) { gpio_write_pin_low(IND2_LED); }
+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
+
+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/binepad/knobx1/readme.md b/keyboards/binepad/knobx1/readme.md
new file mode 100644
index 00000000000..36f082dbfdb
--- /dev/null
+++ b/keyboards/binepad/knobx1/readme.md
@@ -0,0 +1,26 @@
+# Binepad KnobX1
+
+
+
+*A fully customizable knob designed to enhance your PC experience*
+
+* Keyboard Maintainer: [binepad](https://github.com/binepad)
+* Hardware Supported: *Binepad knobX1*
+* Hardware Availability: [binepad.com](https://binepad.com/products/knobx1)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make binepad/knobx1:default
+
+Flashing example for this keyboard:
+
+ make binepad/knobx1: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 2 ways:
+
+* **Bootmagic reset**: Hold down the layer button (small button on the bottom left) and plug in the keyboard.
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/binepad/pixie/keymaps/via/keymap.c b/keyboards/binepad/pixie/keymaps/via/keymap.c
deleted file mode 100644
index b49c4db6de3..00000000000
--- a/keyboards/binepad/pixie/keymaps/via/keymap.c
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright 2023 Binepad (@binpad)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(
- KC_MUTE, KC_MPLY,
- KC_MPRV, KC_MNXT
- )
-};
-
-#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(KC_WH_U, KC_WH_D)
- }
-};
-
-#endif
diff --git a/keyboards/binepad/pixie/keymaps/via/rules.mk b/keyboards/binepad/pixie/keymaps/via/rules.mk
deleted file mode 100644
index 82b46f5873f..00000000000
--- a/keyboards/binepad/pixie/keymaps/via/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-
-VIA_ENABLE = yes
-ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/bioi/f60/keyboard.json b/keyboards/bioi/f60/keyboard.json
index 9adbb2f48ab..8974a68e027 100644
--- a/keyboards/bioi/f60/keyboard.json
+++ b/keyboards/bioi/f60/keyboard.json
@@ -53,7 +53,20 @@
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
- "community_layouts": ["60_ansi", "60_ansi_tsangan", "60_ansi_split_bs_rshift", "60_hhkb", "60_tsangan_hhkb", "60_ansi_arrow", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan"],
+ "community_layouts": [
+ "60_ansi",
+ "60_ansi_arrow",
+ "60_ansi_split_bs_rshift",
+ "60_ansi_tsangan",
+ "60_ansi_tsangan_split_bs_rshift",
+ "60_hhkb",
+ "60_iso",
+ "60_iso_split_bs_rshift",
+ "60_iso_tsangan"
+ ],
+ "layout_aliases": {
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
@@ -406,7 +419,7 @@
{"matrix": [4, 12], "x": 12.5, "y": 4}
]
},
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
diff --git a/keyboards/bioi/f60/keymaps/default/keymap.c b/keyboards/bioi/f60/keymaps/default/keymap.c
index b988a17ce52..e9f61ea8454 100644
--- a/keyboards/bioi/f60/keymaps/default/keymap.c
+++ b/keyboards/bioi/f60/keymaps/default/keymap.c
@@ -26,8 +26,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[1] = 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_TRNS,
- KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, UG_NEXT, UG_HUED, UG_SATD, UG_VALD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, BL_TOGG, BL_UP, BL_DOWN, BL_BRTG, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
diff --git a/keyboards/bioi/f60/keymaps/via/keymap.c b/keyboards/bioi/f60/keymaps/via/keymap.c
deleted file mode 100644
index 6629b91a041..00000000000
--- a/keyboards/bioi/f60/keymaps/via/keymap.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright 2021 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 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_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_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_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, KC_RSFT, KC_UP, MO(1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_APP, KC_RCTL
- ),
- [1] = LAYOUT_all(
- 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_HOME, KC_UP, KC_END, KC_PGUP, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, BL_TOGG, BL_UP, BL_DOWN, BL_BRTG, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [2] = LAYOUT_all(
- 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_DOWN, 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
- ),
- [3] = LAYOUT_all(
- 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_DOWN, 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/bioi/f60/keymaps/via/rules.mk b/keyboards/bioi/f60/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc9..00000000000
--- a/keyboards/bioi/f60/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/bioi/g60/g60.c b/keyboards/bioi/g60/g60.c
deleted file mode 100644
index 3fdfef8897a..00000000000
--- a/keyboards/bioi/g60/g60.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
-Copyright 2019 Basic I/O Instruments(Scott Wei)
-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 keyboard_pre_init_kb(void) {
- gpio_set_pin_output(F0);
- gpio_write_pin_high(F0);
- keyboard_pre_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- if (led_update_user(led_state)) {
- gpio_write_pin(F0, !led_state.caps_lock);
- }
- return true;
-}
diff --git a/keyboards/bioi/g60/keyboard.json b/keyboards/bioi/g60/keyboard.json
index 8d3dd587707..4140abfbe2f 100644
--- a/keyboards/bioi/g60/keyboard.json
+++ b/keyboards/bioi/g60/keyboard.json
@@ -35,6 +35,10 @@
"pin": "B7",
"levels": 12
},
+ "indicators": {
+ "caps_lock": "F0",
+ "on_state": 0
+ },
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
@@ -60,6 +64,9 @@
},
"processor": "atmega32u4",
"bootloader": "qmk-dfu",
+ "layout_aliases": {
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
@@ -278,7 +285,7 @@
{"label": "\u2192", "matrix": [4, 13], "x": 14, "y": 4}
]
},
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
@@ -492,7 +499,7 @@
{"label": "\u2192", "matrix": [4, 13], "x": 14, "y": 4}
]
},
- "LAYOUT_60_tsangan_hhkb_iso": {
+ "LAYOUT_60_iso_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
diff --git a/keyboards/bioi/g60/keymaps/default/keymap.c b/keyboards/bioi/g60/keymaps/default/keymap.c
index f55a2c47d14..4209bd3e6b5 100644
--- a/keyboards/bioi/g60/keymaps/default/keymap.c
+++ b/keyboards/bioi/g60/keymaps/default/keymap.c
@@ -31,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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, _______, _______,
QK_BOOT, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_LSFT, _______, RGB_TOG, RGB_MOD, BL_TOGG, BL_STEP, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______,
+ KC_LSFT, _______, UG_TOGG, UG_NEXT, BL_TOGG, BL_STEP, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______),
LAYOUT_all(
diff --git a/keyboards/bioi/g60/keymaps/via/config.h b/keyboards/bioi/g60/keymaps/via/config.h
deleted file mode 100644
index d934386e798..00000000000
--- a/keyboards/bioi/g60/keymaps/via/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-Copyright 2019 Basic I/O Instruments(Scott Wei)
-
-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 VIA_EEPROM_LAYOUT_OPTIONS_SIZE 3
-#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 1
diff --git a/keyboards/bioi/g60/keymaps/via/keymap.c b/keyboards/bioi/g60/keymaps/via/keymap.c
deleted file mode 100644
index 53ced4971d6..00000000000
--- a/keyboards/bioi/g60/keymaps/via/keymap.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright 2019 Basic I/O Instruments(Scott Wei)
- *
- * 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: Base Layer
- [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_BSPC, KC_GRV,
- 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_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, KC_RSFT, KC_UP, MO(1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_APP, KC_RCTL),
-
- // 1: Function Layer
- [1] = LAYOUT_all(
- 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, _______, _______,
- QK_BOOT, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_LSFT, _______, RGB_TOG, RGB_MOD, BL_TOGG, BL_STEP, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______),
-
- [2] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______),
-
- [3] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______),
-
-};
diff --git a/keyboards/bioi/g60/keymaps/via/rules.mk b/keyboards/bioi/g60/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/bioi/g60/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/bioi/g60ble/keyboard.json b/keyboards/bioi/g60ble/keyboard.json
index 2d09fadff08..8b24556b37f 100644
--- a/keyboards/bioi/g60ble/keyboard.json
+++ b/keyboards/bioi/g60ble/keyboard.json
@@ -60,7 +60,16 @@
},
"processor": "atmega32u4",
"bootloader": "qmk-dfu",
- "community_layouts": ["60_ansi", "60_iso", "60_hhkb", "60_ansi_split_bs_rshift", "60_tsangan_hhkb"],
+ "community_layouts": [
+ "60_ansi",
+ "60_ansi_split_bs_rshift",
+ "60_ansi_tsangan_split_bs_rshift",
+ "60_hhkb",
+ "60_iso"
+ ],
+ "layout_aliases": {
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
@@ -415,7 +424,7 @@
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
]
},
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
diff --git a/keyboards/bioi/g60ble/keymaps/via/keymap.c b/keyboards/bioi/g60ble/keymaps/via/keymap.c
deleted file mode 100644
index 784ac7d2906..00000000000
--- a/keyboards/bioi/g60ble/keymaps/via/keymap.c
+++ /dev/null
@@ -1,39 +0,0 @@
-#include QMK_KEYBOARD_H
-
-// clang-format off
-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_GRV,
- 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_BSPC,
- CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(2, 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, KC_UP, KC_RSFT, MO(1),
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RGUI, KC_LEFT, KC_APP, KC_RCTL
-),
-
-[1] = 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_INS, KC_DEL,
- KC_CAPS, QK_BOOT, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, _______, _______,
- _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, _______, KC_ASTR, KC_SLSH, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, _______,
- RGB_MOD, _______, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, _______, KC_PLUS, KC_MINS, KC_END, KC_PGDN, KC_DOWN, _______, BL_STEP, _______,
- RGB_TOG, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, BL_TOGG
-),
-
-[2] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, XXXXXXX, KC_HOME, KC_PGUP, KC_PGDN, KC_END, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-[3] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
-)
-
-};
-// clang-format on
diff --git a/keyboards/bioi/g60ble/keymaps/via/rules.mk b/keyboards/bioi/g60ble/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/bioi/g60ble/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/bioi/morgan65/keyboard.json b/keyboards/bioi/morgan65/keyboard.json
index 8f83237f82f..5606233f2ad 100644
--- a/keyboards/bioi/morgan65/keyboard.json
+++ b/keyboards/bioi/morgan65/keyboard.json
@@ -35,6 +35,10 @@
"pin": "B6",
"levels": 12
},
+ "indicators": {
+ "caps_lock": "F0",
+ "on_state": 0
+ },
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
diff --git a/keyboards/bioi/morgan65/keymaps/default/keymap.c b/keyboards/bioi/morgan65/keymaps/default/keymap.c
index af89134a4f5..0abc71d992c 100644
--- a/keyboards/bioi/morgan65/keymaps/default/keymap.c
+++ b/keyboards/bioi/morgan65/keymaps/default/keymap.c
@@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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, _______, _______, _______,
QK_BOOT, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_LSFT, _______, RGB_TOG, RGB_MOD, BL_TOGG, BL_STEP, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______,
+ KC_LSFT, _______, UG_TOGG, UG_NEXT, BL_TOGG, BL_STEP, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______
),
diff --git a/keyboards/bioi/morgan65/keymaps/via/config.h b/keyboards/bioi/morgan65/keymaps/via/config.h
deleted file mode 100644
index 6dafe92cba0..00000000000
--- a/keyboards/bioi/morgan65/keymaps/via/config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-Copyright 2019 Basic I/O Instruments(Scott Wei)
-
-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 VIA_EEPROM_CUSTOM_CONFIG_SIZE 1
diff --git a/keyboards/bioi/morgan65/keymaps/via/keymap.c b/keyboards/bioi/morgan65/keymaps/via/keymap.c
deleted file mode 100644
index d3b0945070c..00000000000
--- a/keyboards/bioi/morgan65/keymaps/via/keymap.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright 2020 Basic I/O Instruments(Scott Wei)
- *
- * 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: Base Layer
- [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_BSPC, KC_GRV, KC_F1,
- 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_F2,
- 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_F3,
- 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, KC_F4,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- // 1: Function Layer
- [1] = LAYOUT_all(
- 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, _______, _______, _______,
- QK_BOOT, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_LSFT, _______, RGB_TOG, RGB_MOD, BL_TOGG, BL_STEP, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [2] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [3] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
-};
diff --git a/keyboards/bioi/morgan65/keymaps/via/rules.mk b/keyboards/bioi/morgan65/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/bioi/morgan65/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/bioi/morgan65/morgan65.c b/keyboards/bioi/morgan65/morgan65.c
deleted file mode 100644
index 3fdfef8897a..00000000000
--- a/keyboards/bioi/morgan65/morgan65.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
-Copyright 2019 Basic I/O Instruments(Scott Wei)
-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 keyboard_pre_init_kb(void) {
- gpio_set_pin_output(F0);
- gpio_write_pin_high(F0);
- keyboard_pre_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- if (led_update_user(led_state)) {
- gpio_write_pin(F0, !led_state.caps_lock);
- }
- return true;
-}
diff --git a/keyboards/bioi/s65/keyboard.json b/keyboards/bioi/s65/keyboard.json
index c55852f31cc..56d53b54cf5 100644
--- a/keyboards/bioi/s65/keyboard.json
+++ b/keyboards/bioi/s65/keyboard.json
@@ -35,6 +35,10 @@
"pin": "B6",
"levels": 12
},
+ "indicators": {
+ "caps_lock": "F0",
+ "on_state": 0
+ },
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
diff --git a/keyboards/bioi/s65/keymaps/via/keymap.c b/keyboards/bioi/s65/keymaps/via/keymap.c
deleted file mode 100644
index e8e01661ec9..00000000000
--- a/keyboards/bioi/s65/keymaps/via/keymap.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright 2020 Basic I/O Instruments(Scott Wei)
- *
- * 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: Base LayerKC_W
- [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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_NONUS_HASH, 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_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
-
- // 1: Function Layer
- [1] = 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_SCRL, KC_PAUS,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
-
- [2] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
-
- [3] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
-
-};
diff --git a/keyboards/bioi/s65/keymaps/via/rules.mk b/keyboards/bioi/s65/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/bioi/s65/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/bioi/s65/s65.c b/keyboards/bioi/s65/s65.c
deleted file mode 100644
index e632f31eeb6..00000000000
--- a/keyboards/bioi/s65/s65.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
-Copyright 2019 Basic I/O Instruments(Scott Wei)
-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 keyboard_pre_init_kb(void) {
- gpio_set_pin_output(F0);
- gpio_write_pin_high(F0);
- keyboard_pre_init_user();
-}
-
-bool led_update_kb(led_t led_state) {
- if (led_update_user(led_state)) {
- gpio_write_pin(F0, !led_state.caps_lock);
- }
- return true;
-}
diff --git a/keyboards/black_hellebore/keymaps/via/keymap.c b/keyboards/black_hellebore/keymaps/via/keymap.c
deleted file mode 100644
index cba8bd9be9d..00000000000
--- a/keyboards/black_hellebore/keymaps/via/keymap.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright 2023 MATTMCCA (@MATTMCCA)
- * SPDX-License-Identifier: GPL-2.0-only
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * 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(
- 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_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, KC_RGUI, KC_APP, KC_RCTL
- ),
-
- [1] = LAYOUT_60_ansi(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [2] = LAYOUT_60_ansi(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [3] = LAYOUT_60_ansi(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- )
-
-};
diff --git a/keyboards/black_hellebore/keymaps/via/rules.mk b/keyboards/black_hellebore/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/black_hellebore/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/black_hellebore/mcuconf.h b/keyboards/black_hellebore/mcuconf.h
index ccb216946c9..51dc999135d 100644
--- a/keyboards/black_hellebore/mcuconf.h
+++ b/keyboards/black_hellebore/mcuconf.h
@@ -18,8 +18,5 @@
#include_next
-#undef STM32_PWM_USE_ADVANCED
-#define STM32_PWM_USE_ADVANCED TRUE
-
#undef STM32_PWM_USE_TIM1
#define STM32_PWM_USE_TIM1 TRUE
diff --git a/keyboards/blackplum/keymaps/default/keymap.c b/keyboards/blackplum/keymaps/default/keymap.c
index c118c18980c..3101d1159e5 100644
--- a/keyboards/blackplum/keymaps/default/keymap.c
+++ b/keyboards/blackplum/keymaps/default/keymap.c
@@ -1,16 +1,8 @@
#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
-// entirely and just use numbers.
-#define _BASE 0
-#define _FN 1
-
-
-
-enum custom_keycodes {
- TG_GUI = SAFE_RANGE
+enum layer_names {
+ _BASE,
+ _FN
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -24,20 +16,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_FN] = LAYOUT_68_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_MPLY, KC_HOME,
- _______, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUSE, _______, KC_MUTE, KC_END,
- _______, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, UG_NEXT, UG_HUEU, UG_SATU, UG_VALU, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUSE, _______, KC_MUTE, KC_END,
+ _______, UG_TOGG, UG_HUED, UG_SATD, UG_VALD, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU,
- _______, TG_GUI,_______, QK_BOOT, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
+ _______, GU_TOGG, _______, QK_BOOT, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
)
};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if(record->event.pressed) {
- switch(keycode) {
- case TG_GUI:
- keymap_config.no_gui ^= 1;
- return false;
- }
- }
- return true;
-}
diff --git a/keyboards/blackplum/keymaps/via/keymap.c b/keyboards/blackplum/keymaps/via/keymap.c
deleted file mode 100644
index e542892b37d..00000000000
--- a/keyboards/blackplum/keymaps/via/keymap.c
+++ /dev/null
@@ -1,38 +0,0 @@
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_68_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_INS, 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_DEL, 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 , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
- ),
-
- [1] = LAYOUT_68_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_TRNS, KC_MPLY, KC_HOME,
- KC_TRNS, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUSE, KC_TRNS, KC_MUTE, KC_END,
- KC_TRNS, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, 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_VOLU,
- KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT
- ),
-
- [2] = LAYOUT_68_ansi(
- 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, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [3] = LAYOUT_68_ansi(
- 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, 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/blackplum/keymaps/via/rules.mk b/keyboards/blackplum/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc9..00000000000
--- a/keyboards/blackplum/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/blank/blank01/keyboard.json b/keyboards/blank/blank01/keyboard.json
index f8af736bef8..672a292def3 100644
--- a/keyboards/blank/blank01/keyboard.json
+++ b/keyboards/blank/blank01/keyboard.json
@@ -32,8 +32,11 @@
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
+ "layout_aliases": {
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
+ },
"layouts": {
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
diff --git a/keyboards/blank/blank01/keymaps/default/keymap.c b/keyboards/blank/blank01/keymaps/default/keymap.c
index 2e2a863f278..03f8987fa7e 100644
--- a/keyboards/blank/blank01/keymaps/default/keymap.c
+++ b/keyboards/blank/blank01/keymaps/default/keymap.c
@@ -18,7 +18,7 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Default layer
- [0] = LAYOUT_60_tsangan_hhkb(
+ [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
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,
@@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
// Fn1 Layer
- [1] = LAYOUT_60_tsangan_hhkb(
+ [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, KC_TRNS,
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS,
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS,
diff --git a/keyboards/blank/blank01/keymaps/via/keymap.c b/keyboards/blank/blank01/keymaps/via/keymap.c
deleted file mode 100644
index 7f42ff0e358..00000000000
--- a/keyboards/blank/blank01/keymaps/via/keymap.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright 2021 gkeyboard
- *
- * 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] = {
-
- // Default layer
- [0] = LAYOUT_60_tsangan_hhkb(
- 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_DEL, 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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
- ),
-
- // Fn1 Layer
- [1] = LAYOUT_60_tsangan_hhkb(
- 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_DEL,
- KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS,
- KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- // Fn2 Layer
- [2] = LAYOUT_60_tsangan_hhkb(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- // Fn3 Layer
- [3] = LAYOUT_60_tsangan_hhkb(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-};
diff --git a/keyboards/blank/blank01/keymaps/via/rules.mk b/keyboards/blank/blank01/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc9..00000000000
--- a/keyboards/blank/blank01/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/blank_tehnologii/manibus/keyboard.json b/keyboards/blank_tehnologii/manibus/keyboard.json
index f6cd41758db..eeabe64f36e 100644
--- a/keyboards/blank_tehnologii/manibus/keyboard.json
+++ b/keyboards/blank_tehnologii/manibus/keyboard.json
@@ -24,12 +24,14 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D0",
"matrix_pins": {
"right": {
"cols": ["B6", "B5", "D6", "D5", "D3", "D7", "B4"],
"rows": ["F5", "F1", "B2", "B1", "C6"]
}
+ },
+ "serial": {
+ "pin": "D0"
}
},
"processor": "atmega32u4",
diff --git a/keyboards/blank_tehnologii/manibus/keymaps/via/keymap.c b/keyboards/blank_tehnologii/manibus/keymaps/via/keymap.c
deleted file mode 100644
index 3ce379f8de1..00000000000
--- a/keyboards/blank_tehnologii/manibus/keymaps/via/keymap.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Copyright 2021 SamuraiKek
- *
- * 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
-
-enum custom_layers {
- _QWERTY,
- _FN1
-};
-
-#define FN1 MO(_FN1)
-/*
- 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, R30, R31, R32, R33, R34, R35,
- L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46,
-
- [_UNIVERSAL] = LAYOUT(
- // ┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- // ├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- // ├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- // ├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- // ├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- // └────────┴────────┴────────┴────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┴────────┴────────┴────────┘
- )
-
-*/
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_QWERTY] = 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_EQL,
-// ├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLS,
-// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- KC_LCTL, KC_HOME, KC_INS, KC_DEL, KC_LGUI, KC_SPC, KC_LALT, KC_ENT, KC_BSPC, FN1, KC_LBRC, KC_RBRC, KC_END, KC_GRV
-// └────────┴────────┴────────┴────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┴────────┴────────┴────────┘
- ),
-
- [_FN1] = 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,
-// ├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, QK_BOOT, _______, _______, _______, KC_UP, _______, KC_MPLY, KC_F12,
-// ├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT,KC_VOLD, KC_VOLU,
-// ├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_MPRV, KC_MNXT, _______, _______,
-// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- _______, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, _______
-// └────────┴────────┴────────┴────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┴────────┴────────┴────────┘
- )
-};
diff --git a/keyboards/blank_tehnologii/manibus/keymaps/via/rules.mk b/keyboards/blank_tehnologii/manibus/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/blank_tehnologii/manibus/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/blaster75/keymaps/via/keymap.c b/keyboards/blaster75/keymaps/via/keymap.c
deleted file mode 100644
index a63cfcf8ec1..00000000000
--- a/keyboards/blaster75/keymaps/via/keymap.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright 2021 by Altain
- * 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(
- 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_INS,
- 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_HOME,
- 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_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_END,
- 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_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [1] = LAYOUT(
- 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, 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
- ),
- [2] = LAYOUT(
- 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, 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
- ),
- [3] = LAYOUT(
- 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, 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/blaster75/keymaps/via/rules.mk b/keyboards/blaster75/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3e..00000000000
--- a/keyboards/blaster75/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/blockboy/ac980mini/keymaps/default/keymap.c b/keyboards/blockboy/ac980mini/keymaps/default/keymap.c
index b5541ed23e2..0194281ebfa 100644
--- a/keyboards/blockboy/ac980mini/keymaps/default/keymap.c
+++ b/keyboards/blockboy/ac980mini/keymaps/default/keymap.c
@@ -40,14 +40,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
// RGB Control
[1] = LAYOUT(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, RGB_SPI, _______, _______,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RM_TOGG, RM_SPDU, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______,
- _______, _______, _______, _______, _______, MO(2), _______, RGB_MOD, RGB_HUI, RGB_SAI, _______, _______, _______
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, _______, _______,
+ _______, _______, _______, _______, _______, MO(2), _______, RM_NEXT, RM_HUEU, RM_SATU, _______, _______, _______
),
[2] = LAYOUT(
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
diff --git a/keyboards/blockboy/ac980mini/keymaps/via/keymap.c b/keyboards/blockboy/ac980mini/keymaps/via/keymap.c
deleted file mode 100644
index ee1718484c5..00000000000
--- a/keyboards/blockboy/ac980mini/keymaps/via/keymap.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/* Copyright 2021 QMK
- *
- * 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] = {
- /*
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┬───┐
- * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Num│ / │ * │ - │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┼───┤
- * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │ 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 │ Space │Alt│GUI│Ctl│ ┌───┼───┼───┐ │ 0 │ . │ │
- * └────┴────┴────┴────────────────────────┴───┴───┴───┘ │ ← │ ↓ │ → │ └───┴───┴───┘
- * └───┴───┴───┘
- */
- [0] = LAYOUT(
- 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_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_P7, KC_P8, KC_P9,
- 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_PPLS,
- 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT
- ),
- // RGB Control
- [1] = LAYOUT(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_TOG, RGB_SPI, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______,
- _______, _______, _______, _______, _______, MO(2), _______, RGB_MOD, RGB_HUI, RGB_SAI, _______, _______, _______
- ),
- [2] = LAYOUT(
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [3] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
-
-
-/*
- [x] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-*/
diff --git a/keyboards/blockboy/ac980mini/keymaps/via/rules.mk b/keyboards/blockboy/ac980mini/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/blockboy/ac980mini/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/blockey/keymaps/default/keymap.c b/keyboards/blockey/keymaps/default/keymap.c
index 5715881f841..5c48c57856c 100644
--- a/keyboards/blockey/keymaps/default/keymap.c
+++ b/keyboards/blockey/keymaps/default/keymap.c
@@ -30,8 +30,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[1] = LAYOUT(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
- _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
+ _______, UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ _______, UG_NEXT, UG_HUED, UG_SATD, UG_VALD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGUP, _______,
_______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
),
diff --git a/keyboards/bluebell/swoop/keyboard.json b/keyboards/bluebell/swoop/keyboard.json
index 5cc29818b86..08f61ac20dd 100644
--- a/keyboards/bluebell/swoop/keyboard.json
+++ b/keyboards/bluebell/swoop/keyboard.json
@@ -42,13 +42,15 @@
},
"split": {
"enabled": true,
- "soft_serial_pin": "D2",
"encoder": {
"right": {
"rotary": [
{"pin_a": "B5", "pin_b": "B4"}
]
}
+ },
+ "serial": {
+ "pin": "D2"
}
},
"processor": "atmega32u4",
diff --git a/keyboards/boardrun/bizarre/keymaps/via/keymap.c b/keyboards/boardrun/bizarre/keymaps/via/keymap.c
deleted file mode 100644
index d36fefca85b..00000000000
--- a/keyboards/boardrun/bizarre/keymaps/via/keymap.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * 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] = {
-
- /*Bizarre Base Layer (defaults for "any" layout)
- * +-------+ +-----------------------+ +-------------------------------+ +-------------------------------+ +---------------------------------------+
- * ¦ HOME ¦ ¦ ESC ¦ `~ ¦ 1 ¦ ¦ 2 ¦ 3 ¦ 4 ¦ 5 ¦ ¦ 6 ¦ 7 ¦ 8 ¦ 9 ¦ ¦ 0 ¦ - ¦ = ¦ BKSP ¦ DEL ¦
- * +-------¦ +-----------------------+ +-------+-------+-------+-------¦ +-------+-------+-------+-------¦ +---------------------------------------+
- * ¦ END ¦ ¦ TAB ¦ Q ¦ ¦ W ¦ E ¦ R ¦ T ¦ ¦ Y ¦ U ¦ I ¦ O ¦ ¦ P ¦ [ ¦ ] ¦ \ ANSI ¦
- * +-------+ +-----------------------+ +-------+-------+-------+-------¦ +-------+-------+-------+-------¦ +-----------------------------------¦
- * ¦ CAPS ¦ A ¦ ¦ S ¦ D ¦ F ¦ G ¦ ¦ H ¦ J ¦ K ¦ L ¦ ¦ ; ¦ ' ¦ # ISO ¦ ENTER ¦
- * +---------------------------+ +-------+-------+-------+-------+-------+ +-------+-------+-------+-------+-------¦ +-----------------------+---------+
- * ¦ LSHIFT ¦ \ ISO ¦ Z ¦ ¦ X ¦ C ¦ V ¦ B ¦ LGUI ¦ ¦ MO ¦ N ¦ M ¦ , ¦ . ¦ ¦ / ¦ RSHIFT ¦ UP ¦
- * +-----------------+-------+ +-----------------------+---------------¦ +---------------------------------------+ +---------------------+-------+-------+
- * ¦ LCTRL ¦ ¦ LALT ¦ SPACE ¦ ¦ SPACE ¦ ¦ RCTRL ¦ LEFT ¦ DOWN ¦ RIGHT ¦
- * +-----------+ +---------------------------+ +---------------------+ +-----------------------------------+
- */
-
- [0] = LAYOUT_all(
- KC_HOME, 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_DEL,
- KC_END, 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_NUHS,KC_ENT,
- KC_LSFT, KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LGUI, MO(1), KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT, KC_UP,
- KC_LCTL, KC_LALT, KC_SPC, KC_SPC, KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT
- ),
-
- /*Bizarre Function Layer
- * +-------+ +-----------------------+ +-------------------------------+ +-------------------------------+ +---------------------------------------+
- * ¦ QK_BOOT ¦ ¦ ¦ ¦ F1 ¦ ¦ F2 ¦ F3 ¦ F4 ¦ F5 ¦ ¦ F6 ¦ F7 ¦ F8 ¦ F9 ¦ ¦ F10 ¦ F11 ¦ F12 ¦ DEL ¦ ¦
- * +-------¦ +-----------------------+ +-------+-------+-------+-------¦ +-------+-------+-------+-------¦ +---------------------------------------+
- * ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ INS ¦ ¦ ¦ PRINT ¦ ¦ ¦ ¦
- * +-------+ +-----------------------+ +-------+-------+-------+-------¦ +-------+-------+-------+-------¦ +-----------------------------------¦
- * ¦ ¦ ¦ ¦ SCRLL ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
- * +---------------------------+ +-------+-------+-------+-------+-------+ +-------+-------+-------+-------+-------¦ +-----------------------+---------+
- * ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ PAUSE ¦ RGUI ¦ ¦ ¦ ¦ MENU ¦ ¦ ¦ ¦ ¦ ¦ PGUP ¦
- * +-----------------+-------+ +-----------------------+---------------¦ +---------------------------------------+ +---------------------+-------+-------+
- * ¦ ¦ ¦ ¦ ¦ ¦ RALT ¦ ¦ ¦ HOME ¦ PGDN ¦ END ¦
- * +-----------+ +---------------------------+ +---------------------+ +-----------------------------------+
- */
-
- [1] = LAYOUT_all(
- QK_BOOT, _______,_______,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, _______,
- _______, _______, _______, _______,_______,QK_BOOT,_______, _______,_______,KC_INS ,_______, KC_PSCR,_______,_______,_______,
- _______, _______, KC_SCRL,_______,_______,_______, _______,_______,_______,_______, _______,_______,_______,_______,
- _______, _______,_______, _______,_______,_______,KC_PAUS,KC_RGUI, _______,_______,KC_MENU,_______,_______, _______,_______, KC_PGUP,
- _______, _______, _______, KC_RALT, _______, KC_HOME,KC_PGDN,KC_END
- ),
-
- [2] = LAYOUT_all(
- _______, _______,_______,_______, _______,_______,_______,_______, _______,_______,_______,_______, _______,_______,_______,_______,_______,
- _______, _______, _______, _______,_______,_______,_______, _______,_______,_______,_______, _______,_______,_______,_______,
- _______, _______, _______,_______,_______,_______, _______,_______,_______,_______, _______,_______,_______,_______,
- _______, _______,_______, _______,_______,_______,_______,_______, _______,_______,_______,_______,_______, _______,_______, _______,
- _______, _______, _______, _______, _______, _______,_______,_______
- ),
-
- [3] = LAYOUT_all(
- _______, _______,_______,_______, _______,_______,_______,_______, _______,_______,_______,_______, _______,_______,_______,_______,_______,
- _______, _______, _______, _______,_______,_______,_______, _______,_______,_______,_______, _______,_______,_______,_______,
- _______, _______, _______,_______,_______,_______, _______,_______,_______,_______, _______,_______,_______,_______,
- _______, _______,_______, _______,_______,_______,_______,_______, _______,_______,_______,_______,_______, _______,_______, _______,
- _______, _______, _______, _______, _______, _______,_______,_______
- )
-
-
-};
diff --git a/keyboards/boardrun/bizarre/keymaps/via/rules.mk b/keyboards/boardrun/bizarre/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc9..00000000000
--- a/keyboards/boardrun/bizarre/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/boardrun/classic/keymaps/via/keymap.c b/keyboards/boardrun/classic/keymaps/via/keymap.c
deleted file mode 100644
index 67c388bb047..00000000000
--- a/keyboards/boardrun/classic/keymaps/via/keymap.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * 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] = {
-
- /* Base Layer
- * .--------------------------------------------------------------. .--------------------------------------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | - | | = | 6 | 7 | 8 | 9 | 0 | BACKSP |
- * |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- * | TAB | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | |\ |
- * |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- * | LCTRL | A | S | D | F | G | HOME | | PG UP | H | J | K | L | ; | ' |
- * |--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- * | LSHIFT | Z | X | C | V | B | END | | PG DN | N | M | , | . | / | ENTER |
- * '--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-------'
- * | LGUI | DEL | ~` | LALT | SPACE | | MO | SPACE | | LEFT | DOWN | UP | RIGHT |
- * '--------------------------------------------------------------------------------------------------------------------'
- */
- [0] = LAYOUT(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_TAB, 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_BSLS,
- KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_PGUP, 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_END, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
- KC_LGUI, KC_DEL, KC_GRV, KC_LALT, KC_SPC, KC_SPC, MO(1), KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
- ),
-
- /* Function Layer
- * .--------------------------------------------------------------. .--------------------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+--------+--------+--------+--------+--------+--------+ +--------+--------+--------+--------+--------+--------+--------|
- * | | | | | | | | | | | | | | PRT SC | F12 |
- * |--------+--------+--------+--------+--------+--------+--------+ +--------+--------+--------+--------+--------+--------+--------|
- * | | | | | | | | | | | | | | | QK_BOOT |
- * |--------+--------+--------+--------+--------+--------+--------+ +--------+--------+--------+--------+--------+--------+--------|
- * | | | | | | | | | | | MUTE | VOL DN | VOL UP | | |
- * '--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------+--------+--------+-------'
- * | | | | | | | | | | | |
- * '--------------------------------------------------------------------------------------------------------------------'
- */
- [1] = LAYOUT(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- _______, _______, KC_APP, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_F12,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [2] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [3] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/boardrun/classic/keymaps/via/rules.mk b/keyboards/boardrun/classic/keymaps/via/rules.mk
deleted file mode 100644
index 43061db1dd4..00000000000
--- a/keyboards/boardrun/classic/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/boardsource/3x4/keymaps/via/keymap.c b/keyboards/boardsource/3x4/keymaps/via/keymap.c
deleted file mode 100644
index 5aeef391a1f..00000000000
--- a/keyboards/boardsource/3x4/keymaps/via/keymap.c
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright 2022 @gwillad
-// SPDX-License-Identifier: GPL-2.0-or-later
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(
- KC_0, KC_1, KC_4, KC_7,
- KC_ENT, KC_2, KC_5, KC_8,
- MO(1), KC_3, KC_6, KC_9
- ),
- [1] = LAYOUT(
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, QK_BOOT
- ),
- [2] = LAYOUT(
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______
- ),
- [3] = LAYOUT(
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______
- )
-};
diff --git a/keyboards/boardsource/3x4/keymaps/via/rules.mk b/keyboards/boardsource/3x4/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3e..00000000000
--- a/keyboards/boardsource/3x4/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/boardsource/4x12/keymaps/via/keymap.c b/keyboards/boardsource/4x12/keymaps/via/keymap.c
deleted file mode 100644
index 34887694875..00000000000
--- a/keyboards/boardsource/4x12/keymaps/via/keymap.c
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright 2022 @gwillad
-// SPDX-License-Identifier: GPL-2.0-or-later
-#include QMK_KEYBOARD_H
-
-enum layers {
- _MAIN,
- _RAISE,
- _LOWER,
-};
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_MAIN] = LAYOUT_ortho_4x12(
- 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_ESC, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
- KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
- ),
- [_RAISE] = LAYOUT_ortho_4x12(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
- ),
- [_LOWER] = LAYOUT_ortho_4x12(
- KC_GRV, 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
- )
-};
diff --git a/keyboards/boardsource/4x12/keymaps/via/rules.mk b/keyboards/boardsource/4x12/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3e..00000000000
--- a/keyboards/boardsource/4x12/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/boardsource/5x12/keymaps/via/keymap.c b/keyboards/boardsource/5x12/keymaps/via/keymap.c
deleted file mode 100644
index bc67eae18e4..00000000000
--- a/keyboards/boardsource/5x12/keymaps/via/keymap.c
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2022 @gwillad
-// SPDX-License-Identifier: GPL-2.0-or-later
-#include QMK_KEYBOARD_H
-
-enum layers {
- _MAIN,
- _RAISE,
- _LOWER,
-};
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_MAIN] = LAYOUT_ortho_5x12(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_DEL,
- KC_ESC, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
- KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
- ),
- [_RAISE] = LAYOUT_ortho_5x12(
- 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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
- _______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______,
- KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS,
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
- ),
- [_LOWER] = LAYOUT_ortho_5x12(
- 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_UP, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
- KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
- ),
- [3] = LAYOUT_ortho_5x12(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/boardsource/5x12/keymaps/via/rules.mk b/keyboards/boardsource/5x12/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3e..00000000000
--- a/keyboards/boardsource/5x12/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/boardsource/beiwagon/keymaps/default/keymap.c b/keyboards/boardsource/beiwagon/keymaps/default/keymap.c
index 584ada48304..4f799550e1c 100644
--- a/keyboards/boardsource/beiwagon/keymaps/default/keymap.c
+++ b/keyboards/boardsource/beiwagon/keymaps/default/keymap.c
@@ -32,8 +32,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_0, KC_PENT,RAISE
),
[_RAISE] = LAYOUT(
- KC_7, KC_8, RGB_TOG,
- KC_4, KC_5, RGB_MOD,
+ KC_7, KC_8, RM_TOGG,
+ KC_4, KC_5, RM_NEXT,
KC_1, KC_2, KC_3,
KC_0, KC_PENT,_______
)
diff --git a/keyboards/boardsource/beiwagon/keymaps/via/keymap.c b/keyboards/boardsource/beiwagon/keymaps/via/keymap.c
deleted file mode 100644
index ca068adab4c..00000000000
--- a/keyboards/boardsource/beiwagon/keymaps/via/keymap.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright 2022 Boardsource
- *
- * 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
-
-enum layers {
- _MAIN,
- _RAISE
-};
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_MAIN] = LAYOUT(
- KC_7, KC_8, KC_9,
- KC_4, KC_5, KC_6,
- KC_1, KC_2, KC_3,
- KC_0, KC_PENT,RAISE
- ),
- [_RAISE] = LAYOUT(
- KC_7, KC_8, RGB_TOG,
- KC_4, KC_5, RGB_MOD,
- KC_1, KC_2, KC_3,
- KC_0, KC_PENT,_______
- ),
- [2] = LAYOUT(
- _______, _______, _______,
- _______, _______, _______,
- _______, _______, _______,
- _______, _______, _______
- ),
- [3] = LAYOUT(
- _______, _______, _______,
- _______, _______, _______,
- _______, _______, _______,
- _______, _______, _______
- )
-};
diff --git a/keyboards/boardsource/beiwagon/keymaps/via/rules.mk b/keyboards/boardsource/beiwagon/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/boardsource/beiwagon/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/boardsource/equals/48/keymaps/via/keymap.c b/keyboards/boardsource/equals/48/keymaps/via/keymap.c
deleted file mode 100644
index 3c3427d1225..00000000000
--- a/keyboards/boardsource/equals/48/keymaps/via/keymap.c
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2022 @boardsource
-// SPDX-License-Identifier: GPL-2.0-or-later
-#include QMK_KEYBOARD_H
-
-enum layers {
- _MAIN,
- _RAISE,
- _LOWER
-};
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_MAIN] = LAYOUT_ortho_4x12(
- 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_ESC, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
- KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
- ),
- [_RAISE] = LAYOUT_ortho_4x12(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
- ),
- [_LOWER] = LAYOUT_ortho_4x12(
- KC_GRV, 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
-
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY),
-
-};
diff --git a/keyboards/boardsource/equals/48/keymaps/via/rules.mk b/keyboards/boardsource/equals/48/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/boardsource/equals/48/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/boardsource/equals/60/keymaps/default/keymap.c b/keyboards/boardsource/equals/60/keymaps/default/keymap.c
index 48e26a40947..b744ea6c4c3 100644
--- a/keyboards/boardsource/equals/60/keymaps/default/keymap.c
+++ b/keyboards/boardsource/equals/60/keymaps/default/keymap.c
@@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
KC_ESC, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
- KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_RGHT, RGB_MOD, RGB_TOG
+ KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_RGHT, RM_NEXT, RM_TOGG
),
[_RAISE] = LAYOUT_ortho_5x12(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
diff --git a/keyboards/boardsource/equals/60/keymaps/via/keymap.c b/keyboards/boardsource/equals/60/keymaps/via/keymap.c
deleted file mode 100644
index 54528b8f600..00000000000
--- a/keyboards/boardsource/equals/60/keymaps/via/keymap.c
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2023 Cole Smith (@boardsource)
-// SPDX-License-Identifier: GPL-2.0-or-later
-#include QMK_KEYBOARD_H
-
-enum layers {
- _MAIN,
- _RAISE,
- _LOWER
-};
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_MAIN] = LAYOUT_ortho_5x12(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_DEL,
- KC_ESC, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
- KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
- ),
- [_RAISE] = LAYOUT_ortho_5x12(
- 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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
- _______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______,
- KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS,
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
- ),
- [_LOWER] = LAYOUT_ortho_5x12(
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- _______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, _______, KC_UP, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
- KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
- )
-};
diff --git a/keyboards/boardsource/equals/60/keymaps/via/rules.mk b/keyboards/boardsource/equals/60/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3e..00000000000
--- a/keyboards/boardsource/equals/60/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/boardsource/equals/avr/keymaps/default/keymap.c b/keyboards/boardsource/equals/avr/keymaps/default/keymap.c
index 99a049214b1..6cac7e1a0fe 100644
--- a/keyboards/boardsource/equals/avr/keymaps/default/keymap.c
+++ b/keyboards/boardsource/equals/avr/keymaps/default/keymap.c
@@ -17,7 +17,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
KC_ESC, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
- KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, CK_TOGG, RGB_MOD, RGB_TOG
+ KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, CK_TOGG, RM_NEXT, RM_TOGG
),
[_RAISE] = LAYOUT_ortho_5x12(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
diff --git a/keyboards/boardsource/equals/avr/keymaps/via/keymap.c b/keyboards/boardsource/equals/avr/keymaps/via/keymap.c
deleted file mode 100644
index 54528b8f600..00000000000
--- a/keyboards/boardsource/equals/avr/keymaps/via/keymap.c
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2023 Cole Smith (@boardsource)
-// SPDX-License-Identifier: GPL-2.0-or-later
-#include QMK_KEYBOARD_H
-
-enum layers {
- _MAIN,
- _RAISE,
- _LOWER
-};
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_MAIN] = LAYOUT_ortho_5x12(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_DEL,
- KC_ESC, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
- KC_PIPE, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
- ),
- [_RAISE] = LAYOUT_ortho_5x12(
- 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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
- _______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______,
- KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS,
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
- ),
- [_LOWER] = LAYOUT_ortho_5x12(
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- _______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, _______, KC_UP, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
- KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
- )
-};
diff --git a/keyboards/boardsource/equals/avr/keymaps/via/rules.mk b/keyboards/boardsource/equals/avr/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3e..00000000000
--- a/keyboards/boardsource/equals/avr/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/boardsource/equals/equals.c b/keyboards/boardsource/equals/equals.c
index 074fa3df3e2..78f9ce30b81 100644
--- a/keyboards/boardsource/equals/equals.c
+++ b/keyboards/boardsource/equals/equals.c
@@ -49,6 +49,5 @@ void keyboard_post_init_kb(void) {
void housekeeping_task_kb(void) {
ui_task();
- housekeeping_task_user();
}
#endif // QUANTUM_PAINTER_ENABLE
diff --git a/keyboards/boardsource/lib/oled.c b/keyboards/boardsource/lib/oled.c
new file mode 100644
index 00000000000..c0fb6ab4a61
--- /dev/null
+++ b/keyboards/boardsource/lib/oled.c
@@ -0,0 +1,20 @@
+// Copyright 2024 jack (@waffle87)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#include "oled.h"
+
+void render_layer_state(void) {
+ switch (get_highest_layer(layer_state)) {
+ case 0:
+ oled_write_raw_P(layer0_img, sizeof(layer0_img));
+ break;
+ case 1:
+ oled_write_raw_P(layer1_img, sizeof(layer1_img));
+ break;
+ case 2:
+ oled_write_raw_P(layer2_img, sizeof(layer2_img));
+ break;
+ case 3:
+ oled_write_raw_P(layer3_img, sizeof(layer3_img));
+ break;
+ }
+}
diff --git a/keyboards/boardsource/lib/oled.h b/keyboards/boardsource/lib/oled.h
new file mode 100644
index 00000000000..4778be20b0d
--- /dev/null
+++ b/keyboards/boardsource/lib/oled.h
@@ -0,0 +1,183 @@
+// Copyright 2024 jack (@waffle87)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+#include "quantum.h"
+
+void render_layer_state(void);
+
+// clang-format off
+static const char PROGMEM layer0_img[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 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, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
+ 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
+ 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0,
+ 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03,
+ 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0,
+ 0xfc, 0x0e, 0x07, 0x03, 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, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x80, 0x00,
+ 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf0, 0x60,
+ 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x01, 0x03, 0x07,
+ 0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00,
+ 0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+static const char PROGMEM layer1_img[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 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, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xc0, 0xc0,
+ 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03,
+ 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x80, 0x00,
+ 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f,
+ 0x3f, 0x70, 0xe0, 0xc0, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf0, 0x60,
+ 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x01, 0x03, 0x07,
+ 0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x03, 0x03,
+ 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
+ 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00,
+ 0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+static const char PROGMEM layer2_img[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 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, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xc0, 0xc0,
+ 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03,
+ 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x80, 0x00,
+ 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+ 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+ 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0xe0, 0x70, 0x38, 0x1f, 0x07,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf0, 0x60,
+ 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x01, 0x03, 0x07,
+ 0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 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, 0x0f, 0x0f, 0x00,
+ 0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+static const char PROGMEM layer3_img[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 0x80,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
+ 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
+ 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0,
+ 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03,
+ 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 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, 0x03, 0x07, 0x0e, 0xfc, 0xf0,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x80, 0x00,
+ 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf0, 0x60,
+ 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x01, 0x03, 0x07,
+ 0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00,
+ 0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+static const char PROGMEM bs_logo_img[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0x60, 0x60, 0x60,
+ 0x60, 0x60, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xe0, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
+ 0x00, 0xe0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xfc, 0x1e, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x80, 0xc0,
+ 0x80, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0e, 0xfc, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff,
+ 0xe0, 0xc0, 0x80, 0x80, 0xc0, 0xc0, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
+ 0x00, 0x1f, 0xff, 0xff, 0xc0, 0xc0, 0x80, 0xc0, 0xc0, 0xe0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x78, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe0, 0x78, 0x3f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 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, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03,
+ 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+// clang-format on
diff --git a/keyboards/boardsource/lulu/avr/keyboard.json b/keyboards/boardsource/lulu/avr/keyboard.json
index 73f86a435f8..ce9fa7c0a67 100644
--- a/keyboards/boardsource/lulu/avr/keyboard.json
+++ b/keyboards/boardsource/lulu/avr/keyboard.json
@@ -8,7 +8,9 @@
"rows": ["C6", "D7", "E6", "B4", "B5"]
},
"split": {
- "soft_serial_pin": "D2"
+ "serial": {
+ "pin": "D2"
+ }
},
"ws2812": {
"pin": "D3"
diff --git a/keyboards/boardsource/lulu/avr/rules.mk b/keyboards/boardsource/lulu/avr/rules.mk
new file mode 100644
index 00000000000..de6a3d8afca
--- /dev/null
+++ b/keyboards/boardsource/lulu/avr/rules.mk
@@ -0,0 +1 @@
+SRC += lib/oled.c
diff --git a/keyboards/boardsource/lulu/keymaps/default/keymap.c b/keyboards/boardsource/lulu/keymaps/default/keymap.c
index cbee1401ed5..9c1ed869efd 100644
--- a/keyboards/boardsource/lulu/keymaps/default/keymap.c
+++ b/keyboards/boardsource/lulu/keymaps/default/keymap.c
@@ -65,7 +65,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | F1 | F2 | F3 | F4 | F5 | F6 |-------. ,-------| | Left | Down | Up |Right | |
- * |------+------+------+------+------+------|RGB_TOG| | ] |------+------+------+------+------+------|
+ * |------+------+------+------+------+------|RM_TOGG| | ] |------+------+------+------+------+------|
* | F7 | F8 | F9 | F10 | F11 | F12 |-------| |-------| + | - | = | [ | ] | \ |
* `-----------------------------------------/ / \ \-----------------------------------------'
* | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
@@ -74,10 +74,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
[_RAISE] = LAYOUT(
- RGB_MOD, RGB_RMOD,RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______,
+ RM_NEXT, RM_PREV, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, _______,
KC_GRV, 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, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX,
- KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_TOG, _______, KC_PLUS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RM_TOGG, _______, KC_PLUS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
_______, _______, _______, _______, _______, _______, _______, _______
),
/* ADJUST
diff --git a/keyboards/boardsource/lulu/keymaps/via/keymap.c b/keyboards/boardsource/lulu/keymaps/via/keymap.c
deleted file mode 100644
index bf5ffc7a9be..00000000000
--- a/keyboards/boardsource/lulu/keymaps/via/keymap.c
+++ /dev/null
@@ -1,113 +0,0 @@
-// Copyright 2022 Cole Smith
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-enum layers {
- _QWERTY,
- _LOWER,
- _RAISE,
- _ADJUST
-};
-
-#define RAISE MO(_RAISE)
-#define LOWER MO(_LOWER)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* QWERTY
- * ,-----------------------------------------. ,-----------------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Tab | Q | W | E | R | T | | Y | U | I | O | P | - |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * |LCTRL | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' |
- * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
- * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift|
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
-
- [_QWERTY] = LAYOUT(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS,
- 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_ENT, RAISE, KC_BSPC, KC_RGUI
-),
-/* LOWER
- * ,-----------------------------------------. ,-----------------------------------------.
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | ` | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | - |
- * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
- * | | | | | | |-------| |-------| | _ | + | { | } | | |
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| 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_F12,
- KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TILD,
- _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, _______, _______, _______, _______, _______, _______, _______
-),
-/* RAISE
- * ,-----------------------------------------. ,-----------------------------------------.
- * |MOD | MODR | S+ | S- | B+ | B- | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | F1 | F2 | F3 | F4 | F5 | F6 |-------. ,-------| | Left | Down | Up |Right | |
- * |------+------+------+------+------+------|RGB_TOG| | ] |------+------+------+------+------+------|
- * | F7 | F8 | F9 | F10 | F11 | F12 |-------| |-------| + | - | = | [ | ] | \ |
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
-
-[_RAISE] = LAYOUT(
- RGB_MOD, RGB_RMOD,RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______,
- KC_GRV, 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, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX,
- KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_TOG, _______, KC_PLUS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, _______, _______, _______, _______, _______, _______, _______
-),
-/* ADJUST
- * ,-----------------------------------------. ,-----------------------------------------.
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | |-------. ,-------| | |RGB ON| HUE+ | SAT+ | VAL+ |
- * |------+------+------+------+------+------| | | |------+------+------+------+------+------|
- * | | | | | | |-------| |-------| | | MODE | HUE- | SAT- | VAL- |
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
- [_ADJUST] = LAYOUT(
- 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, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
-
-#ifdef ENCODER_MAP_ENABLE
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [_QWERTY] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
- [_LOWER] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(RGB_VAD, RGB_VAI) },
- [_RAISE] = { ENCODER_CCW_CW(RGB_SAD, RGB_SAI), ENCODER_CCW_CW(RGB_HUD, RGB_HUI) },
- [_ADJUST] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }
-};
-#endif
diff --git a/keyboards/boardsource/lulu/keymaps/via/rules.mk b/keyboards/boardsource/lulu/keymaps/via/rules.mk
deleted file mode 100644
index f1adcab005e..00000000000
--- a/keyboards/boardsource/lulu/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/boardsource/lulu/lulu.c b/keyboards/boardsource/lulu/lulu.c
index 8d011268c4b..b20228a7d7f 100644
--- a/keyboards/boardsource/lulu/lulu.c
+++ b/keyboards/boardsource/lulu/lulu.c
@@ -1,6 +1,7 @@
// Copyright 2022 Cole Smith
// SPDX-License-Identifier: GPL-2.0-or-later
#include "quantum.h"
+#include "lib/oled.h"
#ifdef ENCODER_ENABLE
bool encoder_update_kb(uint8_t index, bool clockwise) {
@@ -24,225 +25,20 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
#ifdef OLED_ENABLE
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
- if (!is_keyboard_master()) {
- return OLED_ROTATION_180;
- }
- return rotation;
-}
-
-void render_layer1_logo(void){
- static const char PROGMEM layer_logo[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 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, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
- 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
- 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0,
- 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03,
- 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0,
- 0xfc, 0x0e, 0x07, 0x03, 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, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x80, 0x00,
- 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf0, 0x60,
- 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x01, 0x03, 0x07,
- 0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00,
- 0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
- };
- oled_write_raw_P(layer_logo, sizeof(layer_logo));
-}
-
-void render_layer2_logo(void){
- static const char PROGMEM layer_logo[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 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, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xc0, 0xc0,
- 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03,
- 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x80, 0x00,
- 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f,
- 0x3f, 0x70, 0xe0, 0xc0, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf0, 0x60,
- 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x01, 0x03, 0x07,
- 0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x03, 0x03,
- 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
- 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00,
- 0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
- };
- oled_write_raw_P(layer_logo, sizeof(layer_logo));
-}
-
-void render_layer3_logo(void){
- static const char PROGMEM layer_logo[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 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, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xc0, 0xc0,
- 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03,
- 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x80, 0x00,
- 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0xe0, 0x70, 0x38, 0x1f, 0x07,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf0, 0x60,
- 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x01, 0x03, 0x07,
- 0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 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, 0x0f, 0x0f, 0x00,
- 0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
- };
- oled_write_raw_P(layer_logo, sizeof(layer_logo));
-}
-
-void render_layer4_logo(void){
- static const char PROGMEM layer_logo[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 0x80,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
- 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
- 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0,
- 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03,
- 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 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, 0x03, 0x07, 0x0e, 0xfc, 0xf0,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x80, 0x00,
- 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf0, 0x60,
- 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x01, 0x03, 0x07,
- 0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00,
- 0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
- };
- oled_write_raw_P(layer_logo, sizeof(layer_logo));
-}
-
-void render_logo(void) {
- static const char PROGMEM logo[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0x60, 0x60, 0x60,
- 0x60, 0x60, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xe0, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
- 0x00, 0xe0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xfc, 0x1e, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x80, 0xc0,
- 0x80, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0e, 0xfc, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff,
- 0xe0, 0xc0, 0x80, 0x80, 0xc0, 0xc0, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
- 0x00, 0x1f, 0xff, 0xff, 0xc0, 0xc0, 0x80, 0xc0, 0xc0, 0xe0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x78, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe0, 0x78, 0x3f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 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, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03,
- 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- };
- oled_write_raw_P(logo, sizeof(logo));
-}
-
-void process_layer_state(void) {
- switch (get_highest_layer(layer_state)) {
- case 0:
- render_layer1_logo();
- break;
- case 1:
- render_layer2_logo();
- break;
- case 2:
- render_layer3_logo();
- break;
- case 3:
- render_layer4_logo();
- break;
+ if (!is_keyboard_master()) {
+ return OLED_ROTATION_180;
}
+ return rotation;
}
bool oled_task_kb(void) {
- if (!oled_task_user()) { return false; }
+ if (!oled_task_user()) {
+ return false;
+ }
if (is_keyboard_master()) {
- process_layer_state();
+ render_layer_state();
} else {
- render_logo();
+ oled_write_raw_P(bs_logo_img, sizeof(bs_logo_img));
}
return false;
}
diff --git a/keyboards/boardsource/lulu/rp2040/keyboard.json b/keyboards/boardsource/lulu/rp2040/keyboard.json
index a1e8db89a9c..db0b7a50c63 100644
--- a/keyboards/boardsource/lulu/rp2040/keyboard.json
+++ b/keyboards/boardsource/lulu/rp2040/keyboard.json
@@ -10,6 +10,11 @@
{"pin_a": "GP8", "pin_b": "GP9"}
]
},
+ "split": {
+ "serial": {
+ "driver": "vendor"
+ }
+ },
"ws2812": {
"pin": "GP29",
"driver": "vendor"
diff --git a/keyboards/boardsource/lulu/rp2040/rules.mk b/keyboards/boardsource/lulu/rp2040/rules.mk
index 161ec22b16e..de6a3d8afca 100644
--- a/keyboards/boardsource/lulu/rp2040/rules.mk
+++ b/keyboards/boardsource/lulu/rp2040/rules.mk
@@ -1 +1 @@
-SERIAL_DRIVER = vendor
+SRC += lib/oled.c
diff --git a/keyboards/boardsource/microdox/keymaps/via/keymap.c b/keyboards/boardsource/microdox/keymaps/via/keymap.c
deleted file mode 100644
index 644fd0de41a..00000000000
--- a/keyboards/boardsource/microdox/keymaps/via/keymap.c
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright 2022 jack (@waffle87)
-// SPDX-License-Identifier: GPL-2.0-or-later
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_split_3x5_3(
- KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
- SFT_T(KC_A), KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, SFT_T(KC_SCLN),
- CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH),
- LT(3, KC_LGUI), MO(1), KC_SPC, KC_BSPC, MO(2), KC_ENT
- ),
-
- [1] = LAYOUT_split_3x5_3(
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
- KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,
- KC_ESC, KC_TAB, KC_CAPS, KC_TILD, KC_GRV, KC_QUOT, KC_DQUO, KC_MPRV, KC_MPLY, KC_MNXT,
- KC_LGUI, KC_TRNS, KC_SPC, KC_ENT, KC_TRNS, KC_RALT
- ),
-
- [2] = LAYOUT_split_3x5_3(
- KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_PSCR, KC_DEL, KC_INS, KC_HOME, KC_END,
- KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_LEFT, KC_DOWN, KC_RIGHT, KC_UP, KC_VOLU,
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_VOLD,
- KC_PGDN, KC_TRNS, KC_SPC, KC_ENT, KC_TRNS, KC_PGUP
- ),
- [3] = LAYOUT_split_3x5_3(
- QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_HUD, RGB_HUI, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RMOD, RGB_VAD, RGB_VAI, XXXXXXX, XXXXXXX,
- KC_TRNS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
- )
-};
diff --git a/keyboards/boardsource/microdox/keymaps/via/rules.mk b/keyboards/boardsource/microdox/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/boardsource/microdox/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/boardsource/microdox/v1/keyboard.json b/keyboards/boardsource/microdox/v1/keyboard.json
index d35a58777eb..f13f9435720 100644
--- a/keyboards/boardsource/microdox/v1/keyboard.json
+++ b/keyboards/boardsource/microdox/v1/keyboard.json
@@ -10,7 +10,9 @@
"device_version": "1.0.0"
},
"split": {
- "soft_serial_pin": "D2"
+ "serial": {
+ "pin": "D2"
+ }
},
"rgblight": {
"sleep": true,
diff --git a/keyboards/boardsource/microdox/v2/keyboard.json b/keyboards/boardsource/microdox/v2/keyboard.json
index 94577059c52..d733af7a03f 100644
--- a/keyboards/boardsource/microdox/v2/keyboard.json
+++ b/keyboards/boardsource/microdox/v2/keyboard.json
@@ -19,7 +19,6 @@
]
},
"split": {
- "soft_serial_pin": "D3",
"matrix_pins": {
"right": {
"cols": ["F4", "B1", "D7", "C6", "B3"],
@@ -32,6 +31,9 @@
{"pin_a": "B6", "pin_b": "B2"}
]
}
+ },
+ "serial": {
+ "pin": "D3"
}
},
"rgb_matrix": {
diff --git a/keyboards/boardsource/sessanta/keymaps/default/keymap.json b/keyboards/boardsource/sessanta/keymaps/default/keymap.json
index b99333c46d7..d8fb2f8e4a9 100644
--- a/keyboards/boardsource/sessanta/keymaps/default/keymap.json
+++ b/keyboards/boardsource/sessanta/keymaps/default/keymap.json
@@ -12,8 +12,8 @@
],
[
"QK_BOOT", "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_F13",
- "QK_RBT", "RGB_MOD", "RGB_VAI", "RGB_HUI", "RGB_SAI", "RGB_TOG", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
- "EE_CLR", "RGB_RMOD", "RGB_VAD", "RGB_HUD", "RGB_SAD", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
+ "QK_RBT", "RM_NEXT", "RM_VALU", "RM_HUEU", "RM_SATU", "RM_TOGG", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
+ "EE_CLR", "RM_PREV", "RM_VALD", "RM_HUED", "RM_SATD", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______"
]
diff --git a/keyboards/boardsource/sessanta/keymaps/via/keymap.json b/keyboards/boardsource/sessanta/keymaps/via/keymap.json
deleted file mode 100644
index 68e8e5fb208..00000000000
--- a/keyboards/boardsource/sessanta/keymaps/via/keymap.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "keyboard": "boardsource/sessanta",
- "keymap": "via",
- "layout": "LAYOUT_all",
- "config": {
- "features": {
- "via": true
- }
- },
- "layers": [
- [
- "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_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_VOLU",
- "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_MPLY",
- "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_SPC", "KC_SPC", "KC_SPC", "KC_SPC", "MO(1)", "KC_RALT", "KC_RGUI", "KC_RCTL", "KC_VOLD"
- ],
- [
- "QK_BOOT", "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_F13",
- "QK_RBT", "RGB_MOD", "RGB_VAI", "RGB_HUI", "RGB_SAI", "RGB_TOG", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
- "EE_CLR", "RGB_RMOD", "RGB_VAD", "RGB_HUD", "RGB_SAD", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
- "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
- "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______"
- ]
- ]
-}
diff --git a/keyboards/boardsource/technik_o/keymaps/default/keymap.c b/keyboards/boardsource/technik_o/keymaps/default/keymap.c
index a43d930c4f3..42992691905 100644
--- a/keyboards/boardsource/technik_o/keymaps/default/keymap.c
+++ b/keyboards/boardsource/technik_o/keymaps/default/keymap.c
@@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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_ESC, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
- RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+ RM_TOGG, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
[_RAISE] = LAYOUT_ortho_4x12(
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
@@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_GRV, 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
- RGB_MOD, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+ RM_NEXT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
)
};
diff --git a/keyboards/boardsource/technik_o/keymaps/via/keymap.c b/keyboards/boardsource/technik_o/keymaps/via/keymap.c
deleted file mode 100644
index 3070e1ef531..00000000000
--- a/keyboards/boardsource/technik_o/keymaps/via/keymap.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright 2022 Boardsource
- *
- * 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
-
-enum layers {
- _MAIN,
- _RAISE,
- _LOWER,
-};
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_MAIN] = LAYOUT_ortho_4x12(
- 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_ESC, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
- RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
- ),
- [_RAISE] = LAYOUT_ortho_4x12(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
- ),
- [_LOWER] = LAYOUT_ortho_4x12(
- KC_GRV, 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
- RGB_MOD, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
- ),
- [3] = LAYOUT_ortho_4x12(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/boardsource/technik_o/keymaps/via/rules.mk b/keyboards/boardsource/technik_o/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/boardsource/technik_o/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/boardsource/technik_s/keymaps/default/keymap.c b/keyboards/boardsource/technik_s/keymaps/default/keymap.c
index bae6438d15c..9c215f99e24 100644
--- a/keyboards/boardsource/technik_s/keymaps/default/keymap.c
+++ b/keyboards/boardsource/technik_s/keymaps/default/keymap.c
@@ -30,12 +30,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
KC_LSFT,KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_UP, KC_ENT ,
- RGB_TOG, KC_LCTL, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_RIGHT
+ RM_TOGG, KC_LCTL, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_RIGHT
),
[_RAISE] = LAYOUT(
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR,
- RGB_MOD, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
+ RM_NEXT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD
),
[_LOWER] = LAYOUT(
diff --git a/keyboards/boardsource/technik_s/keymaps/via/keymap.c b/keyboards/boardsource/technik_s/keymaps/via/keymap.c
deleted file mode 100644
index efdc1fd44ae..00000000000
--- a/keyboards/boardsource/technik_s/keymaps/via/keymap.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright 2022 Boardsource
- *
- * 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
-
-enum layers {
- _MAIN,
- _RAISE,
- _LOWER,
-};
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_MAIN] = LAYOUT(
- 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_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
- KC_LSFT,KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_UP, KC_ENT ,
- RGB_TOG, KC_LCTL, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_RIGHT
- ),
- [_RAISE] = LAYOUT(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR,
- RGB_MOD, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD
- ),
- [_LOWER] = LAYOUT(
- KC_GRV, 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD
- ),
- [3] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/boardsource/technik_s/keymaps/via/rules.mk b/keyboards/boardsource/technik_s/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/boardsource/technik_s/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/boardsource/the_mark/keymaps/default/keymap.c b/keyboards/boardsource/the_mark/keymaps/default/keymap.c
index a50367b140a..21354419bb0 100644
--- a/keyboards/boardsource/the_mark/keymaps/default/keymap.c
+++ b/keyboards/boardsource/the_mark/keymaps/default/keymap.c
@@ -24,8 +24,8 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
[_BASE] = 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_BSPC, KC_BSPC, RGB_TOG,
- 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, RGB_MOD,
+ 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, UG_TOGG,
+ 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, UG_NEXT,
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_ENT, MO(_FN),
KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_LALT, KC_LCTL, KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT
diff --git a/keyboards/boardsource/the_mark/keymaps/default_ansi/keymap.c b/keyboards/boardsource/the_mark/keymaps/default_ansi/keymap.c
index 69f15cfea03..0c0d95f6746 100644
--- a/keyboards/boardsource/the_mark/keymaps/default_ansi/keymap.c
+++ b/keyboards/boardsource/the_mark/keymaps/default_ansi/keymap.c
@@ -24,8 +24,8 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
[_BASE] = LAYOUT_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, RGB_TOG,
- 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, RGB_MOD,
+ 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, UG_TOGG,
+ 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, UG_NEXT,
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_ENT, MO(_FN),
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LCTL, KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT
diff --git a/keyboards/boardsource/the_mark/keymaps/default_ansi_split_bs_space/keymap.c b/keyboards/boardsource/the_mark/keymaps/default_ansi_split_bs_space/keymap.c
index bb9fd272a73..ed4414801f7 100644
--- a/keyboards/boardsource/the_mark/keymaps/default_ansi_split_bs_space/keymap.c
+++ b/keyboards/boardsource/the_mark/keymaps/default_ansi_split_bs_space/keymap.c
@@ -25,8 +25,8 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
[_BASE] = LAYOUT_ansi_split_bs_space(
- 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, RGB_TOG,
- 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, RGB_MOD,
+ 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, UG_TOGG,
+ 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, UG_NEXT,
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_ENT, MO(_FN),
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_LALT, KC_LCTL, KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT
diff --git a/keyboards/boardsource/the_mark/keymaps/default_iso/keymap.c b/keyboards/boardsource/the_mark/keymaps/default_iso/keymap.c
index 9892e3d60a8..8ff232d4f5d 100644
--- a/keyboards/boardsource/the_mark/keymaps/default_iso/keymap.c
+++ b/keyboards/boardsource/the_mark/keymaps/default_iso/keymap.c
@@ -24,8 +24,8 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
[_BASE] = LAYOUT_iso(
- 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, RGB_TOG,
- 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, RGB_MOD,
+ 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, UG_TOGG,
+ 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, UG_NEXT,
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_NUHS, KC_ENT, MO(_FN),
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_LSFT, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LCTL, KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT
diff --git a/keyboards/boardsource/the_mark/keymaps/default_iso_split_bs_space/keymap.c b/keyboards/boardsource/the_mark/keymaps/default_iso_split_bs_space/keymap.c
index c6dccc08e84..3b8e09b2924 100644
--- a/keyboards/boardsource/the_mark/keymaps/default_iso_split_bs_space/keymap.c
+++ b/keyboards/boardsource/the_mark/keymaps/default_iso_split_bs_space/keymap.c
@@ -25,8 +25,8 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
[_BASE] = LAYOUT_iso_split_bs_space(
- 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, RGB_TOG,
- 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, RGB_MOD,
+ 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, UG_TOGG,
+ 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, UG_NEXT,
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_NUHS, KC_ENT, MO(_FN),
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_LSFT, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_LALT, KC_LCTL, KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT
diff --git a/keyboards/boardsource/the_mark/keymaps/via/keymap.c b/keyboards/boardsource/the_mark/keymaps/via/keymap.c
deleted file mode 100644
index 60e65bc60c3..00000000000
--- a/keyboards/boardsource/the_mark/keymaps/via/keymap.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright 2022 Boardsource
- *
- * 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] = {
- /* Base */
- [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_BSPC, KC_BSPC, RGB_TOG,
- 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_LCTL, 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_PGUP,
- KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_LALT, KC_LCTL, KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [1] = LAYOUT_all(
- 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_HOME,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MUTE, KC_END,
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [2] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [3] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-};
diff --git a/keyboards/boardsource/the_mark/keymaps/via/rules.mk b/keyboards/boardsource/the_mark/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/boardsource/the_mark/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/boardsource/the_q/keyboard.json b/keyboards/boardsource/the_q/keyboard.json
new file mode 100644
index 00000000000..b48b5e080b4
--- /dev/null
+++ b/keyboards/boardsource/the_q/keyboard.json
@@ -0,0 +1,142 @@
+{
+ "manufacturer": "Boardsource",
+ "keyboard_name": "The Q",
+ "maintainer": "waffle87",
+ "development_board": "promicro",
+ "diode_direction": "COL2ROW",
+ "features": {
+ "bootmagic": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgb_matrix": true,
+ "oled": true
+ },
+ "matrix_pins": {
+ "rows": ["B2", "B3", "B1", "F7", "F6", "F5", "F4"],
+ "cols": ["D4", "C6", "D7", "E6", "B4", "B5"]
+ },
+ "url": "https://boardsource.xyz",
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x7552",
+ "vid": "0x4273"
+ },
+ "ws2812": {
+ "pin": "B6"
+ },
+ "rgb_matrix": {
+ "animations": {
+ "alphas_mods": true,
+ "band_sat": true,
+ "band_val": true,
+ "breathing": true,
+ "gradient_left_right": true,
+ "gradient_up_down": true
+ },
+ "default": {
+ "animation": "alphas_mods"
+ },
+ "max_brightness": 150,
+ "driver": "ws2812",
+ "layout": [
+ {"x": 112, "y": 10, "flags": 2},
+ {"x": 181, "y": 5, "flags": 2},
+ {"x": 215, "y": 53, "flags": 2},
+ {"x": 112, "y": 64, "flags": 2},
+ {"x": 26, "y": 53, "flags": 2},
+ {"x": 43, "y": 5, "flags": 2},
+ {"matrix": [0, 1], "x": 17, "y": 0, "flags": 4},
+ {"matrix": [1, 1], "x": 17, "y": 42, "flags": 4},
+ {"matrix": [2, 1], "x": 17, "y": 21, "flags": 4},
+ {"matrix": [2, 2], "x": 34, "y": 21, "flags": 4},
+ {"matrix": [1, 2], "x": 34, "y": 42, "flags": 4},
+ {"matrix": [0, 2], "x": 34, "y": 0, "flags": 4},
+ {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4},
+ {"matrix": [1, 3], "x": 52, "y": 42, "flags": 4},
+ {"matrix": [2, 3], "x": 52, "y": 21, "flags": 4},
+ {"matrix": [2, 4], "x": 69, "y": 21, "flags": 4},
+ {"matrix": [1, 4], "x": 69, "y": 42, "flags": 4},
+ {"matrix": [0, 4], "x": 69, "y": 0, "flags": 4},
+ {"matrix": [0, 5], "x": 86, "y": 0, "flags": 4},
+ {"matrix": [1, 5], "x": 86, "y": 42, "flags": 4},
+ {"matrix": [2, 5], "x": 86, "y": 21, "flags": 4},
+ {"matrix": [3, 0], "x": 69, "y": 20, "flags": 1},
+ {"matrix": [3, 1], "x": 86, "y": 20, "flags": 1},
+ {"matrix": [3, 2], "x": 103, "y": 64, "flags": 1},
+ {"matrix": [3, 3], "x": 120, "y": 64, "flags": 1},
+ {"matrix": [3, 4], "x": 138, "y": 20, "flags": 1},
+ {"matrix": [3, 5], "x": 155, "y": 20, "flags": 1},
+ {"matrix": [4, 5], "x": 138, "y": 21, "flags": 4},
+ {"matrix": [5, 5], "x": 138, "y": 42, "flags": 4},
+ {"matrix": [6, 5], "x": 138, "y": 0, "flags": 4},
+ {"matrix": [6, 4], "x": 155, "y": 0, "flags": 4},
+ {"matrix": [5, 4], "x": 155, "y": 42, "flags": 4},
+ {"matrix": [4, 4], "x": 155, "y": 21, "flags": 4},
+ {"matrix": [4, 3], "x": 172, "y": 21, "flags": 4},
+ {"matrix": [5, 3], "x": 172, "y": 42, "flags": 4},
+ {"matrix": [6, 3], "x": 172, "y": 0, "flags": 4},
+ {"matrix": [6, 2], "x": 189, "y": 0, "flags": 4},
+ {"matrix": [5, 2], "x": 189, "y": 42, "flags": 4},
+ {"matrix": [4, 2], "x": 189, "y": 21, "flags": 4},
+ {"matrix": [4, 1], "x": 206, "y": 21, "flags": 4},
+ {"matrix": [5, 1], "x": 206, "y": 42, "flags": 4},
+ {"matrix": [6, 1], "x": 206, "y": 0, "flags": 4},
+ {"matrix": [6, 0], "x": 224, "y": 0, "flags": 1},
+ {"matrix": [5, 0], "x": 224, "y": 42, "flags": 1},
+ {"matrix": [4, 0], "x": 224, "y": 21, "flags": 1},
+ {"matrix": [2, 0], "x": 0, "y": 21, "flags": 1},
+ {"matrix": [1, 0], "x": 0, "y": 42, "flags": 1},
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}
+ ]
+ },
+ "community_layouts": ["split_3x6_3"],
+ "layouts": {
+ "LAYOUT_split_3x6_3": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0.25},
+ {"matrix": [0, 1], "x": 1, "y": 0.25},
+ {"matrix": [0, 2], "x": 2, "y": 0.125},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0.125},
+ {"matrix": [0, 5], "x": 5, "y": 0.25},
+ {"matrix": [6, 5], "x": 8, "y": 0.25},
+ {"matrix": [6, 4], "x": 9, "y": 0.125},
+ {"matrix": [6, 3], "x": 10, "y": 0},
+ {"matrix": [6, 2], "x": 11, "y": 0.125},
+ {"matrix": [6, 1], "x": 12, "y": 0.25},
+ {"matrix": [6, 0], "x": 13, "y": 0.25},
+ {"matrix": [1, 0], "x": 0, "y": 1.25},
+ {"matrix": [1, 1], "x": 1, "y": 1.25},
+ {"matrix": [1, 2], "x": 2, "y": 1.125},
+ {"matrix": [1, 3], "x": 3, "y": 1},
+ {"matrix": [1, 4], "x": 4, "y": 1.125},
+ {"matrix": [1, 5], "x": 5, "y": 1.25},
+ {"matrix": [5, 5], "x": 8, "y": 1.25},
+ {"matrix": [5, 4], "x": 9, "y": 1.125},
+ {"matrix": [5, 3], "x": 10, "y": 1},
+ {"matrix": [5, 2], "x": 11, "y": 1.125},
+ {"matrix": [5, 1], "x": 12, "y": 1.25},
+ {"matrix": [5, 0], "x": 13, "y": 1.25},
+ {"matrix": [2, 0], "x": 0, "y": 2.25},
+ {"matrix": [2, 1], "x": 1, "y": 2.25},
+ {"matrix": [2, 2], "x": 2, "y": 2.125},
+ {"matrix": [2, 3], "x": 3, "y": 2},
+ {"matrix": [2, 4], "x": 4, "y": 2.125},
+ {"matrix": [2, 5], "x": 5, "y": 2.25},
+ {"matrix": [4, 5], "x": 8, "y": 2.25},
+ {"matrix": [4, 4], "x": 9, "y": 2.125},
+ {"matrix": [4, 3], "x": 10, "y": 2},
+ {"matrix": [4, 2], "x": 11, "y": 2.125},
+ {"matrix": [4, 1], "x": 12, "y": 2.25},
+ {"matrix": [4, 0], "x": 13, "y": 2.25},
+ {"matrix": [3, 0], "x": 3.5, "y": 3.25},
+ {"matrix": [3, 1], "x": 4.5, "y": 3.5},
+ {"matrix": [3, 2], "x": 5.5, "y": 3.75},
+ {"matrix": [3, 3], "x": 7.5, "y": 3.75},
+ {"matrix": [3, 4], "x": 8.5, "y": 3.5},
+ {"matrix": [3, 5], "x": 9.5, "y": 3.25}
+ ]
+ }
+ }
+}
diff --git a/keyboards/boardsource/the_q/keymaps/default/keymap.json b/keyboards/boardsource/the_q/keymaps/default/keymap.json
new file mode 100644
index 00000000000..5cd91661d03
--- /dev/null
+++ b/keyboards/boardsource/the_q/keymaps/default/keymap.json
@@ -0,0 +1,25 @@
+{
+ "keyboard": "boardsource/the_q",
+ "keymap": "default",
+ "layout": "LAYOUT_split_3x6_3",
+ "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_LSFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_ESC",
+ "KC_LGUI", "MO(1)", "KC_SPC", "KC_ENT", "MO(2)", "KC_RALT"
+ ],
+ [
+ "_______", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "_______",
+ "_______", "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "_______",
+ "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
+ "_______", "_______", "_______", "_______", "_______", "_______"
+ ],
+ [
+ "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "RM_VALU", "RM_HUEU", "RM_SATU", "RM_NEXT", "RM_TOGG", "_______",
+ "EE_CLR", "_______", "_______", "_______", "_______", "_______", "RM_VALD", "RM_HUED", "RM_SATD", "RM_PREV", "_______", "_______",
+ "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
+ "_______", "_______", "_______", "_______", "_______", "_______"
+ ]
+ ]
+}
diff --git a/keyboards/boardsource/the_q/readme.md b/keyboards/boardsource/the_q/readme.md
new file mode 100644
index 00000000000..9ec8fe8eda5
--- /dev/null
+++ b/keyboards/boardsource/the_q/readme.md
@@ -0,0 +1,23 @@
+# The Q
+
+* Keyboard Maintainer: [waffle87](https://github.com/waffle87)
+* Hardware Supported: The Q PCB w/ Pro Micro style microcontroller
+* Hardware Availability: [boardsource.xyz](https://boardsource.xyz)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make boardsource/the_q:default
+
+Flashing example for this keyboard:
+
+ mke boardsource/the_q: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 (top left key)
+* **Physical reset button**: Briefly press the button on the front of the PCB
+* **Keycode in layout**: Press the key mapped to `QK_BOOT`
diff --git a/keyboards/boardsource/the_q/rules.mk b/keyboards/boardsource/the_q/rules.mk
new file mode 100644
index 00000000000..de6a3d8afca
--- /dev/null
+++ b/keyboards/boardsource/the_q/rules.mk
@@ -0,0 +1 @@
+SRC += lib/oled.c
diff --git a/keyboards/boardsource/the_q/the_q.c b/keyboards/boardsource/the_q/the_q.c
new file mode 100644
index 00000000000..09294569114
--- /dev/null
+++ b/keyboards/boardsource/the_q/the_q.c
@@ -0,0 +1,14 @@
+// Copyright 2024 jack (@waffle87)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#include "quantum.h"
+#include "lib/oled.h"
+
+#ifdef OLED_ENABLE
+bool oled_task_kb(void) {
+ if (!oled_task_user()) {
+ return false;
+ }
+ render_layer_state();
+ return false;
+}
+#endif
diff --git a/keyboards/boardsource/unicorne/keyboard.json b/keyboards/boardsource/unicorne/keyboard.json
index 4fb63de9e32..da1c3a787ee 100644
--- a/keyboards/boardsource/unicorne/keyboard.json
+++ b/keyboards/boardsource/unicorne/keyboard.json
@@ -20,7 +20,10 @@
},
"split": {
"enabled": true,
- "soft_serial_pin": "GP0",
+ "serial": {
+ "driver": "vendor",
+ "pin": "GP0"
+ },
"transport": {
"sync": {
"layer_state": true
diff --git a/keyboards/boardsource/unicorne/keymaps/default/keymap.json b/keyboards/boardsource/unicorne/keymaps/default/keymap.json
index 1980bc3c873..1aa29177788 100644
--- a/keyboards/boardsource/unicorne/keymaps/default/keymap.json
+++ b/keyboards/boardsource/unicorne/keymaps/default/keymap.json
@@ -16,8 +16,8 @@
"_______", "_______", "_______", "_______", "_______", "_______"
],
[
- "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "RGB_VAI", "RGB_HUI", "RGB_SAI", "RGB_MOD", "RGB_TOG", "_______",
- "EE_CLR", "_______", "_______", "_______", "_______", "_______", "RGB_VAD", "RGB_HUD", "RGB_SAD", "RGB_RMOD", "CK_TOGG", "_______",
+ "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "RM_VALU", "RM_HUEU", "RM_SATU", "RM_NEXT", "RM_TOGG", "_______",
+ "EE_CLR", "_______", "_______", "_______", "_______", "_______", "RM_VALD", "RM_HUED", "RM_SATD", "RM_PREV", "CK_TOGG", "_______",
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
"_______", "_______", "_______", "_______", "_______", "_______"
]
diff --git a/keyboards/boardsource/unicorne/keymaps/via/keymap.json b/keyboards/boardsource/unicorne/keymaps/via/keymap.json
deleted file mode 100644
index 230fc6e3620..00000000000
--- a/keyboards/boardsource/unicorne/keymaps/via/keymap.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "keyboard": "boardsource/unicorne",
- "keymap": "via",
- "layout": "LAYOUT_split_3x6_3",
- "config": {
- "features": {
- "via": true
- }
- },
- "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_LSFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_ESC",
- "KC_LGUI", "MO(1)", "KC_SPC", "KC_ENT", "MO(2)", "KC_RALT"
- ],
- [
- "_______", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "_______",
- "_______", "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "_______",
- "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
- "_______", "_______", "_______", "_______", "_______", "_______"
- ],
- [
- "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "RGB_VAI", "RGB_HUI", "RGB_SAI", "RGB_MOD", "RGB_TOG", "_______",
- "EE_CLR", "_______", "_______", "_______", "_______", "_______", "RGB_VAD", "RGB_HUD", "RGB_SAD", "RGB_RMOD", "CK_TOGG", "_______",
- "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
- "_______", "_______", "_______", "_______", "_______", "_______"
- ]
- ]
-}
diff --git a/keyboards/boardsource/unicorne/rules.mk b/keyboards/boardsource/unicorne/rules.mk
index 48b30dcd51a..53d7e1b6816 100644
--- a/keyboards/boardsource/unicorne/rules.mk
+++ b/keyboards/boardsource/unicorne/rules.mk
@@ -1,2 +1,2 @@
-SERIAL_DRIVER = vendor
POINTING_DEVICE_DRIVER = analog_joystick
+SRC += lib/oled.c
diff --git a/keyboards/boardsource/unicorne/unicorne.c b/keyboards/boardsource/unicorne/unicorne.c
index 22cd1e4a37d..f9dac8d3efb 100644
--- a/keyboards/boardsource/unicorne/unicorne.c
+++ b/keyboards/boardsource/unicorne/unicorne.c
@@ -1,6 +1,7 @@
-// Copyright 2023 jack (@waffle87)
+// Copyright 2024 jack (@waffle87)
// SPDX-License-Identifier: GPL-2.0-or-later
-#include "unicorne.h"
+#include "quantum.h"
+#include "lib/oled.h"
#ifdef OLED_ENABLE
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
@@ -15,22 +16,9 @@ bool oled_task_kb(void) {
return false;
}
if (is_keyboard_master()) {
- switch (get_highest_layer(layer_state)) {
- case 0:
- oled_write_raw(layer_zero, sizeof(layer_zero));
- break;
- case 1:
- oled_write_raw(layer_one, sizeof(layer_one));
- break;
- case 2:
- oled_write_raw(layer_two, sizeof(layer_two));
- break;
- case 3:
- oled_write_raw(layer_three, sizeof(layer_three));
- break;
- }
+ render_layer_state();
} else {
- oled_write_raw(logo, sizeof(logo));
+ oled_write_raw_P(bs_logo_img, sizeof(bs_logo_img));
}
return false;
}
diff --git a/keyboards/boardsource/unicorne/unicorne.h b/keyboards/boardsource/unicorne/unicorne.h
deleted file mode 100644
index 68bbeeb18ab..00000000000
--- a/keyboards/boardsource/unicorne/unicorne.h
+++ /dev/null
@@ -1,194 +0,0 @@
-// Copyright 2023 jack (@waffle87)
-// SPDX-License-Identifier: GPL-2.0-or-later
-#pragma once
-#include "quantum.h"
-
-#ifdef OLED_ENABLE
-// clang-format off
-static const char PROGMEM logo[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 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, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
- 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x01, 0xe3, 0xe7, 0xe7, 0xe3,
- 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00,
- 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00,
- 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0,
- 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0,
- 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0,
- 0xc0, 0xc0, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x01, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x7e, 0xff, 0xff, 0xff, 0xe7, 0xc1, 0x81, 0x81, 0x81, 0xc1, 0x00, 0x00, 0x7f,
- 0xff, 0xff, 0xff, 0xe3, 0xc1, 0x81, 0x81, 0xc1, 0xe3, 0xff, 0xff, 0xff, 0xff, 0x3c, 0x00, 0x00,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
- 0x03, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff,
- 0xcd, 0x8c, 0x8c, 0x8c, 0x8d, 0xcf, 0xcf, 0xcf, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x07, 0x07, 0x07,
- 0x07, 0x07, 0x07, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03,
- 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, 0x00, 0x00,
- 0x00, 0x01, 0x03, 0x03, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00,
- 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03,
- 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03,
- 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-};
-
-static const char PROGMEM layer_zero[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 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, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
- 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
- 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0,
- 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03,
- 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0,
- 0xfc, 0x0e, 0x07, 0x03, 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, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x80, 0x00,
- 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf0, 0x60,
- 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x01, 0x03, 0x07,
- 0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00,
- 0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
-};
-
-
-static const char PROGMEM layer_one[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 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, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xc0, 0xc0,
- 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03,
- 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x80, 0x00,
- 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f,
- 0x3f, 0x70, 0xe0, 0xc0, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf0, 0x60,
- 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x01, 0x03, 0x07,
- 0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x03, 0x03,
- 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
- 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00,
- 0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
-};
-
-
-static const char PROGMEM layer_two[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 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, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xc0, 0xc0,
- 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03,
- 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x80, 0x00,
- 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0xe0, 0x70, 0x38, 0x1f, 0x07,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf0, 0x60,
- 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x01, 0x03, 0x07,
- 0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 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, 0x0f, 0x0f, 0x00,
- 0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
-};
-
-
-static const char PROGMEM layer_three[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 0x80,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
- 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
- 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0,
- 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03,
- 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 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, 0x03, 0x07, 0x0e, 0xfc, 0xf0,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x80, 0x00,
- 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf0, 0x60,
- 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x01, 0x03, 0x07,
- 0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00,
- 0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
-};
-// clang-format on
-#endif
diff --git a/keyboards/boardwalk/keymaps/via/keymap.c b/keyboards/boardwalk/keymaps/via/keymap.c
deleted file mode 100644
index 14526fe50f6..00000000000
--- a/keyboards/boardwalk/keymaps/via/keymap.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * 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
-
-// Layer shorthand
-enum layer_names {
- _BASE,
- _FN,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* Base Layer
- * .-----------------------------------------------------------------------------------------------------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | - | = | 6 | 7 | 8 | 9 | 0 | BACKSP |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
- * | TAB | Q | W | E | R | T | [ | ] | Y | U | I | O | P | ' |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
- * | CAP LK | A | S | D | F | G | HOME | PG UP | H | J | K | L | ; | ENTER |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
- * | LSHIFT | Z | X | C | V | B | END | PG DN | N | M | , | . | / | RSHIFT |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------|
- * | LCTRL | LGUI | FN | LALT | SPACE | SPACE | SPACE | SPACE | SPACE | LEFT | DOWN | UP | RIGHT | RCTRL |
- * '-----------------------------------------------------------------------------------------------------------------------------'
- */
- [_BASE] = LAYOUT_ortho_5x14(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_TAB, 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_QUOT,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- KC_LCTL, KC_LGUI, MO(_FN), KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_RCTL
- ),
-
- /* Function Layer
- * .-----------------------------------------------------------------------------------------------------------------------------.
- * | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DEL |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
- * | | | MENU | | | | | | | | | | PRT SC | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
- * | | | | | | | | | | | | | | QK_BOOT |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
- * | | | | | | | | | | MUTE | VOL DN | VOL UP | \ | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------|
- * | | | | | | | | | | | | | | |
- * '-----------------------------------------------------------------------------------------------------------------------------'
- */
- [_FN] = LAYOUT_ortho_5x14(
- 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_APP, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_BSLS, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- /* Empty Layer
- * .-----------------------------------------------------------------------------------------------------------------------------.
- * | | | | | | | | | | | | | | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
- * | | | | | | | | | | | | | | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
- * | | | | | | | | | | | | | | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
- * | | | | | | | | | | | | | | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------|
- * | | | | | | | | | | | | | | |
- * '-----------------------------------------------------------------------------------------------------------------------------'
- */
- [2] = LAYOUT_ortho_5x14(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- /* Empty Layer
- * .-----------------------------------------------------------------------------------------------------------------------------.
- * | | | | | | | | | | | | | | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
- * | | | | | | | | | | | | | | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
- * | | | | | | | | | | | | | | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
- * | | | | | | | | | | | | | | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+-----------------+--------+--------|
- * | | | | | | | | | | | | | | |
- * '-----------------------------------------------------------------------------------------------------------------------------'
- */
- [3] = LAYOUT_ortho_5x14(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-
-};
diff --git a/keyboards/boardwalk/keymaps/via/rules.mk b/keyboards/boardwalk/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc9..00000000000
--- a/keyboards/boardwalk/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/bobpad/keymaps/via/keymap.c b/keyboards/bobpad/keymaps/via/keymap.c
deleted file mode 100644
index 61292299036..00000000000
--- a/keyboards/bobpad/keymaps/via/keymap.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/* Copyright 2021 Ananya Kirti
- *
- * 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
-
-
-bool is_alt_tab_active = false;
-uint16_t alt_tab_timer = 0;
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_ortho_2x3(
- KC_MEDIA_STOP, KC_MEDIA_PLAY_PAUSE, KC_MUTE,
- KC_MEDIA_REWIND, KC_MEDIA_FAST_FORWARD, KC_PGDN
- ),
- [1] = LAYOUT_ortho_2x3(
- _______, _______, _______,
- _______, _______, _______
- ),
- [2] = LAYOUT_ortho_2x3(
- _______, _______, _______,
- _______, _______, _______
- ),
- [3] = LAYOUT_ortho_2x3(
- _______, _______, _______,
- _______, _______, _______
- ),
-};
-
-
-
-// D4 D0
-// C6 E6 D7
-
-void matrix_scan_user(void) {
- gpio_write_pin(C6, layer_state_is(1));
- gpio_write_pin(E6, layer_state_is(2));
- gpio_write_pin(D7, layer_state_is(3));
- gpio_write_pin(D4, layer_state_is(4));
- gpio_write_pin(D0, layer_state_is(5));
- if (is_alt_tab_active) {
- if (timer_elapsed(alt_tab_timer) > 1000) {
- unregister_code(KC_LWIN);
- is_alt_tab_active = false;
- }
- }
-}
-
-bool led_update_user(led_t led_state) {
- return false;
-};
-
-
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if(IS_LAYER_ON(1)) { // on 1st layer
- if (clockwise) {
- if (!is_alt_tab_active) {
- is_alt_tab_active = true;
- register_code(KC_LWIN);
- }
- alt_tab_timer = timer_read();
- tap_code16(KC_TAB);
- } else {
- alt_tab_timer = timer_read();
- tap_code16(S(KC_TAB));
- }
- }
- // 2nd layer
- else if(IS_LAYER_ON(2)) {
- if (clockwise) {
- tap_code(KC_DOWN);
- } else {
- tap_code(KC_UP);
- }
- }
- else if(IS_LAYER_ON(3)) {
- if (clockwise) {
- tap_code(KC_BRIU);
- } else {
- tap_code(KC_BRID);
- }
- }
- // default layer
- else if(IS_LAYER_ON(0)) {
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- }
- return false;
-}
diff --git a/keyboards/bobpad/keymaps/via/rules.mk b/keyboards/bobpad/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/bobpad/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/bolsa/bolsalice/keymaps/via/keymap.c b/keyboards/bolsa/bolsalice/keymaps/via/keymap.c
deleted file mode 100644
index 184d94a2cdf..00000000000
--- a/keyboards/bolsa/bolsalice/keymaps/via/keymap.c
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright 2022 CMM.Studio Freather
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [0] = LAYOUT_alice(
- KC_INS, 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_HOME, 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_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, MO(1),
- KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL
- ),
-
- [1] = LAYOUT_alice(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
- ),
- [2] = LAYOUT_alice(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
- ),
- [3] = LAYOUT_alice(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
- ),
-
-};
diff --git a/keyboards/bolsa/bolsalice/keymaps/via/rules.mk b/keyboards/bolsa/bolsalice/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/bolsa/bolsalice/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/bolsa/damapad/keymaps/via/keymap.c b/keyboards/bolsa/damapad/keymaps/via/keymap.c
deleted file mode 100644
index 18ae3152078..00000000000
--- a/keyboards/bolsa/damapad/keymaps/via/keymap.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
-Copyright 2021 Matthew Dias
-
-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_wkl(
- KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, KC_MSEL, KC_MUTE,
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_PGUP,
- KC_NO, KC_COPY, KC_PASTE, KC_PGDN
- ),
-
- [1] = LAYOUT_wkl(
- 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
- ),
-
- [2] = LAYOUT_wkl(
- 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
- ),
-
- [3] = LAYOUT_wkl(
- 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/bolsa/damapad/keymaps/via/rules.mk b/keyboards/bolsa/damapad/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/bolsa/damapad/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/bop/keymaps/via/keymap.c b/keyboards/bop/keymaps/via/keymap.c
deleted file mode 100644
index 2879fb9654a..00000000000
--- a/keyboards/bop/keymaps/via/keymap.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Copyright 2021 Nathan Blais
- *
- * 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] = {
-
- /* For build guide: go to https://github.com/blewis308/BOP-Keyboard
- * ,-----------------------------------------------------------------------------------------------------------------------.
- * | F1 | F5 | F9 | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | _ | + | del | { | } | | |
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * | F2 | F6 | F10 | esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |bkspc| home| end |pg up|
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * | F3 | F7 | F11 | tab | q | w | e | r | t | y | u | i | o | p | [ | ] | \ | : | " |pg dn|
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * | F4 | F8 | F12 |caplk| a | s | d | f | g | h | j | k | l | ; | ' |enter| | 7 | 8 | 9 |
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| 0 |-----+-----+-----|
- * |ptscr|scrlk|psbrk|shift| z | x | c | v | b | n | m | < | > | ? |shift| up | | 4 | 5 | 6 |
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * | cut | copy|paste|Lctrl|L gui|L alt| space |MO(1)| space | , | . | / | left| down|right| 1 | 2 | 3 |
- * `-----------------------------------------------------------------------------------------------------------------------'
- *
- * Notes: spaces and numpad 0 can be 1u instead of 2u also, this is already reflected in the keymap below
- */
- /* SUDSACK KEYMAP
- KC_PSCR, KC_SCRL, KC_PAUS, KC_INS , KC_CALC, KC_CUT , 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_HOME,
- KC_NUM , KC_PSLS, KC_PAST, KC_PMNS, KC_COPY, KC_PSTE, KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_UNDS, KC_BSLS, KC_PGUP,
- KC_P7 , KC_P8 , KC_P9 , KC_PPLS, KC_LBRC, KC_RBRC, 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_DEL , KC_PGDN,
- KC_P4 , KC_P5 , KC_P6 , KC_PPLS, KC_VOLD, KC_VOLU, 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 , LCTL(KC_TAB),
- KC_P1 , KC_P2 , KC_P3 , KC_PENT, KC_MUTE, KC_MPLY, 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_RGUI ,
- KC_P0 , KC_P0 , KC_PDOT, KC_MPRV, KC_MNXT, KC_LCTL, KC_LGUI, KC_LALT, XXXXXXX, KC_SPC , KC_SPC , KC_SPC , KC_SPC , KC_SPC , KC_RALT, XXXXXXX, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT )
- */
- [0] = LAYOUT(
- KC_F1, KC_F5, KC_F9, KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS, KC_PLUS, KC_DEL, KC_LCBR, KC_RCBR, KC_PIPE,
- KC_F2, KC_F6, KC_F10, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_PMNS, KC_PEQL, KC_BSPC, KC_HOME, KC_END, KC_PGUP,
- KC_F3, KC_F7, KC_F11, 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_COLN, KC_DQUO, KC_PGDN,
- KC_F4, KC_F8, KC_F12, 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_KP_0, KC_KP_7, KC_KP_8, KC_KP_9,
- KC_PSCR, KC_SCRL, KC_PAUS, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_LABK, KC_RABK, KC_QUES, KC_RSFT, KC_UP, KC_KP_0, KC_KP_4, KC_KP_5, KC_KP_6,
- KC_CUT, KC_COPY, KC_PSTE, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, MO(1) , KC_SPC, KC_SPC, KC_PCMM, KC_PDOT, KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT, KC_KP_1, KC_KP_2, KC_KP_3),
-
- [1] = LAYOUT(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO),
-
- [2] = LAYOUT(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO),
-
- [3] = LAYOUT(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO),
-};
diff --git a/keyboards/bop/keymaps/via/rules.mk b/keyboards/bop/keymaps/via/rules.mk
deleted file mode 100644
index 61e4c8383e4..00000000000
--- a/keyboards/bop/keymaps/via/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/boston/keymaps/default/keymap.c b/keyboards/boston/keymaps/default/keymap.c
index f30d472bde9..18173e66f87 100644
--- a/keyboards/boston/keymaps/default/keymap.c
+++ b/keyboards/boston/keymaps/default/keymap.c
@@ -23,7 +23,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_MUTE, KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_F21 , KC_F22 , KC_F23 , KC_F24 , KC_MPRV, KC_MPLY, KC_MNXT , KC_INS , KC_HOME, KC_PGUP,
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_PAUSE, KC_DEL , KC_END , KC_PGDN,
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_CALC, 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, RGB_TOG, KC_P7 , KC_P8 , KC_P9 , KC_PEQL,
+ 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, UG_TOGG, KC_P7 , KC_P8 , KC_P9 , KC_PEQL,
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_ENT , KC_MSEL, KC_P4 , KC_P5 , KC_P6 , KC_PPLS,
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_P1 , KC_P2 , KC_P3 , KC_PENT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_APP , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0 , KC_P0 , KC_PDOT
diff --git a/keyboards/boston/keymaps/default_ansi/keymap.c b/keyboards/boston/keymaps/default_ansi/keymap.c
index 9e05431736a..96d207d5691 100644
--- a/keyboards/boston/keymaps/default_ansi/keymap.c
+++ b/keyboards/boston/keymaps/default_ansi/keymap.c
@@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_MUTE, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_MPRV, KC_MPLY, KC_MNXT, KC_INS, KC_HOME, KC_PGUP,
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_DEL, KC_END, KC_PGDN,
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_CALC, 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, RGB_TOG, KC_P7, KC_P8, KC_P9, KC_PEQL,
+ 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, UG_TOGG, KC_P7, KC_P8, KC_P9, KC_PEQL,
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_MSEL, KC_P4, KC_P5, KC_P6, KC_PPLS,
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, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_P0, KC_PDOT
diff --git a/keyboards/boston/keymaps/default_iso/keymap.c b/keyboards/boston/keymaps/default_iso/keymap.c
index c4a7a4c2a4e..f2d5170f381 100644
--- a/keyboards/boston/keymaps/default_iso/keymap.c
+++ b/keyboards/boston/keymaps/default_iso/keymap.c
@@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_MUTE, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_MPRV, KC_MPLY, KC_MNXT, KC_INS, KC_HOME, KC_PGUP,
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_DEL, KC_END, KC_PGDN,
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_CALC, 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, RGB_TOG, KC_P7, KC_P8, KC_P9, KC_PEQL,
+ 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, UG_TOGG, KC_P7, KC_P8, KC_P9, KC_PEQL,
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_MSEL, KC_P4, KC_P5, KC_P6, KC_PPLS,
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, KC_P1, KC_P2, KC_P3, KC_PENT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_P0, KC_PDOT
diff --git a/keyboards/boston/keymaps/rgb-light-layers/keymap.c b/keyboards/boston/keymaps/rgb-light-layers/keymap.c
index f8f1269c428..aa40df0531b 100644
--- a/keyboards/boston/keymaps/rgb-light-layers/keymap.c
+++ b/keyboards/boston/keymaps/rgb-light-layers/keymap.c
@@ -23,7 +23,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_MUTE, KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_F21 , KC_F22 , KC_F23 , KC_F24 , KC_MPRV, KC_MPLY, KC_MNXT , KC_INS , KC_HOME, KC_PGUP,
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_PAUSE, KC_DEL , KC_END , KC_PGDN,
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_CALC, 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, RGB_TOG, KC_P7 , KC_P8 , KC_P9 , KC_PEQL,
+ 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, UG_TOGG, KC_P7 , KC_P8 , KC_P9 , KC_PEQL,
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_ENT , KC_MSEL, KC_P4 , KC_P5 , KC_P6 , KC_PPLS,
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_P1 , KC_P2 , KC_P3 , KC_PENT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_APP , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0 , KC_P0 , KC_PDOT
diff --git a/keyboards/boston_meetup/2019/config.h b/keyboards/boston_meetup/2019/config.h
index a7dd952cd6a..d5a476d9991 100644
--- a/keyboards/boston_meetup/2019/config.h
+++ b/keyboards/boston_meetup/2019/config.h
@@ -85,6 +85,4 @@
#define DRV2605L_ZC_DET_TIME 0
#define DRV2605L_AUTO_CAL_TIME 3
-#define RGB_MATRIX_LED_COUNT 10
-
#define SOLENOID_PIN A14
diff --git a/keyboards/boston_meetup/2019/keymaps/default/keymap.c b/keyboards/boston_meetup/2019/keymaps/default/keymap.c
index b4d72806402..ea655566366 100644
--- a/keyboards/boston_meetup/2019/keymaps/default/keymap.c
+++ b/keyboards/boston_meetup/2019/keymaps/default/keymap.c
@@ -78,9 +78,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
[_RAISE] = LAYOUT(
KC_NUM,
- RGB_TOG, RGB_MOD, RGB_RMOD, XXXXXXX,
- _______, RGB_HUI, RGB_SAI, RGB_VAI,
- _______, RGB_HUD, RGB_SAD, RGB_VAD
+ RM_TOGG, RM_NEXT, RM_PREV, XXXXXXX,
+ _______, RM_HUEU, RM_SATU, RM_VALU,
+ _______, RM_HUED, RM_SATD, RM_VALD
),
diff --git a/keyboards/boston_meetup/rules.mk b/keyboards/boston_meetup/rules.mk
deleted file mode 100644
index 6d6745a0e57..00000000000
--- a/keyboards/boston_meetup/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DEFAULT_FOLDER = boston_meetup/2019
diff --git a/keyboards/botanicalkeyboards/fm2u/keymaps/via/keymap.c b/keyboards/botanicalkeyboards/fm2u/keymaps/via/keymap.c
deleted file mode 100644
index 2adc87a13be..00000000000
--- a/keyboards/botanicalkeyboards/fm2u/keymaps/via/keymap.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* 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 QMK_KEYBOARD_H
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Base */
- [0] = LAYOUT_2u(
- KC_B
- ),
-
- [1] = LAYOUT_2u(
- KC_TRNS
- ),
-
- [2] = LAYOUT_2u(
- KC_TRNS
- ),
-
- [3] = LAYOUT_2u(
- KC_TRNS
- )
-};
diff --git a/keyboards/botanicalkeyboards/fm2u/keymaps/via/rules.mk b/keyboards/botanicalkeyboards/fm2u/keymaps/via/rules.mk
deleted file mode 100644
index 44a2bc49cc5..00000000000
--- a/keyboards/botanicalkeyboards/fm2u/keymaps/via/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
-
-CONSOLE_ENABLE = no
diff --git a/keyboards/box75/keymaps/via/keymap.c b/keyboards/box75/keymaps/via/keymap.c
deleted file mode 100755
index 0c8a67b0447..00000000000
--- a/keyboards/box75/keymaps/via/keymap.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-Copyright 2012,2013 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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(
- 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_DEL ,
- 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_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_ENT , KC_HOME, KC_PGDN,
- 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_END ,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
- [1] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______ ),
- [2] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______ ),
- [3] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______ )
-};
diff --git a/keyboards/box75/keymaps/via/rules.mk b/keyboards/box75/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/box75/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/bpiphany/frosty_flake/keymaps/via/keymap.c b/keyboards/bpiphany/frosty_flake/keymaps/via/keymap.c
deleted file mode 100644
index 12d92423870..00000000000
--- a/keyboards/bpiphany/frosty_flake/keymaps/via/keymap.c
+++ /dev/null
@@ -1,44 +0,0 @@
- /* Copyright 2021 Chance Monnette
- *
- * 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_tkl(
- 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_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_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_SLSH, KC_RSFT, KC_UP,
- KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ),
-
-[1] = LAYOUT_tkl(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______,
- _______,_______,_______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, _______,
- _______,_______,_______, _______, _______, _______ , _______, _______, _______, _______, _______
- ),
-
-[2] = LAYOUT_tkl(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______,
- _______,_______,_______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, _______,
- _______,_______,_______, _______, _______, _______ , _______, _______, _______, _______, _______
- ),
-};
diff --git a/keyboards/bpiphany/frosty_flake/keymaps/via/rules.mk b/keyboards/bpiphany/frosty_flake/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc9..00000000000
--- a/keyboards/bpiphany/frosty_flake/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/bpiphany/frosty_flake/rules.mk b/keyboards/bpiphany/frosty_flake/rules.mk
deleted file mode 100644
index e5402b32f7b..00000000000
--- a/keyboards/bpiphany/frosty_flake/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DEFAULT_FOLDER=bpiphany/frosty_flake/20140521
diff --git a/keyboards/bpiphany/pegasushoof/keymaps/via/keymap.c b/keyboards/bpiphany/pegasushoof/keymaps/via/keymap.c
deleted file mode 100644
index 74d46aa2097..00000000000
--- a/keyboards/bpiphany/pegasushoof/keymaps/via/keymap.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/*!
- * Copyright 2016 Daniel Svensson
- *
- * 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
-
-enum custom_layers {
- KM_QWERTY,
- KM_MEDIA,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Layer 0: Standard ISO layer */
- [KM_QWERTY] = LAYOUT(
- 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_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_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_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
- ),
- /* Layer 1: Function layer */
- [KM_MEDIA] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WAKE, KC_PWR, KC_SLEP,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY,
- _______, _______, _______, _______, _______, _______, QK_BOOT, _______, KC_MPRV, KC_MSTP, KC_MNXT
- )
-};
diff --git a/keyboards/bpiphany/pegasushoof/keymaps/via/rules.mk b/keyboards/bpiphany/pegasushoof/keymaps/via/rules.mk
deleted file mode 100644
index 137260ef203..00000000000
--- a/keyboards/bpiphany/pegasushoof/keymaps/via/rules.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-MOUSEKEY_ENABLE = no # Mouse keys
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/bpiphany/pegasushoof/rules.mk b/keyboards/bpiphany/pegasushoof/rules.mk
deleted file mode 100644
index 20adecaa08a..00000000000
--- a/keyboards/bpiphany/pegasushoof/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DEFAULT_FOLDER=bpiphany/pegasushoof/2013
diff --git a/keyboards/bpiphany/tiger_lily/keymaps/via/config.h b/keyboards/bpiphany/tiger_lily/keymaps/via/config.h
deleted file mode 100644
index 356dc9fdb48..00000000000
--- a/keyboards/bpiphany/tiger_lily/keymaps/via/config.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright 2021 Fehmer
- *
- * 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 DYNAMIC_KEYMAP_LAYER_COUNT 3
\ No newline at end of file
diff --git a/keyboards/bpiphany/tiger_lily/keymaps/via/keymap.c b/keyboards/bpiphany/tiger_lily/keymaps/via/keymap.c
deleted file mode 100644
index 016965a2f47..00000000000
--- a/keyboards/bpiphany/tiger_lily/keymaps/via/keymap.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright 2021 Fehmer
- *
- * 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(
- 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_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, KC_P1, KC_P2, KC_P3,KC_PENT,
- KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_APP,KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT, KC_P0,KC_PDOT),
-[1] = LAYOUT(
- 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,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),
-[2] = LAYOUT(
- 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,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)
-};
\ No newline at end of file
diff --git a/keyboards/bpiphany/tiger_lily/keymaps/via/rules.mk b/keyboards/bpiphany/tiger_lily/keymaps/via/rules.mk
deleted file mode 100644
index a0b328e065f..00000000000
--- a/keyboards/bpiphany/tiger_lily/keymaps/via/rules.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
-MOUSEKEY_ENABLE = yes
-EXTRAKEY_ENABLE = yes
-CONSOLE_ENABLE = no
-COMMAND_ENABLE = yes
-NKRO_ENABLE = yes
-BACKLIGHT_ENABLE = no
-AUDIO_ENABLE = no
-RGBLIGHT_ENABLE = no
diff --git a/keyboards/bpiphany/unloved_bastard/readme.md b/keyboards/bpiphany/unloved_bastard/readme.md
index 9909d5af3fc..b11a9bfa773 100644
--- a/keyboards/bpiphany/unloved_bastard/readme.md
+++ b/keyboards/bpiphany/unloved_bastard/readme.md
@@ -1,9 +1,5 @@
# unloved_bastard
-
-
-A short description of the keyboard/project
-
Keyboard Maintainer: [Alexander Fougner](https://github.com/fougner)
Hardware Supported: CoolerMaster Masterkeys S PBT (Not the Pro versions with backlighting etc)
Hardware Availability: Pretty much anywhere
diff --git a/keyboards/bredworks/wyvern_hs/keymaps/via/keymap.c b/keyboards/bredworks/wyvern_hs/keymaps/via/keymap.c
deleted file mode 100644
index 0b73184e01e..00000000000
--- a/keyboards/bredworks/wyvern_hs/keymaps/via/keymap.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright 2023 DeskDaily
- *
- * 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_NUM, KC_PSLS, KC_PAST, KC_PMNS, 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_DEL,
- KC_PPLS, KC_P7, KC_P8, KC_P9, 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_PPLS, KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
- KC_ENT, KC_P1, KC_P2, KC_P3, 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_LSFT, MO(1), KC_UP,
- KC_DEL, KC_P0, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC
- ),
- [1] = LAYOUT_all(
- _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
\ No newline at end of file
diff --git a/keyboards/bredworks/wyvern_hs/keymaps/via/rules.mk b/keyboards/bredworks/wyvern_hs/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc9..00000000000
--- a/keyboards/bredworks/wyvern_hs/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/bschwind/key_ripper/keymaps/via/keymap.c b/keyboards/bschwind/key_ripper/keymaps/via/keymap.c
deleted file mode 100644
index 3a8107ad67a..00000000000
--- a/keyboards/bschwind/key_ripper/keymaps/via/keymap.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
-Copyright 2023 bschwind
-
-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(
- 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_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_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_LCTL, 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_UP,
- MO(1), KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [1] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/bschwind/key_ripper/keymaps/via/rules.mk b/keyboards/bschwind/key_ripper/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/bschwind/key_ripper/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/bt66tech/bt66tech60/keymaps/via/keymap.c b/keyboards/bt66tech/bt66tech60/keymaps/via/keymap.c
deleted file mode 100644
index 397bf2c0636..00000000000
--- a/keyboards/bt66tech/bt66tech60/keymaps/via/keymap.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2020 bt66tech
- *
- * 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
-
-// Defines names for use in layer keycodes and the keymap
-// enum layer_names {
-// _BASE,
-// _FN,
-// _FN1
-// };
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Base */
-
-[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, KC_RGUI, KC_RCTL, MO(1)
- ),
-
- [1] = 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_MS_ACCEL0, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_MS_ACCEL1, KC_MS_LEFT, KC_MS_DOWN,KC_MS_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_MS_ACCEL2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, MO(2),
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS
- ),
-
- [2] = LAYOUT_60_ansi(
- BL_TOGG, BL_STEP, BL_ON, BL_OFF, BL_UP, BL_DOWN, BL_BRTG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DOWN, BL_UP, 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
- ),
-
- [3] = LAYOUT_60_ansi(
- 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- )
-
-};
diff --git a/keyboards/bt66tech/bt66tech60/keymaps/via/rules.mk b/keyboards/bt66tech/bt66tech60/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/bt66tech/bt66tech60/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/bubble75/hotswap/keymaps/default/keymap.c b/keyboards/bubble75/hotswap/keymaps/default/keymap.c
index 7ce1f6bf91c..1f878ebe32e 100644
--- a/keyboards/bubble75/hotswap/keymaps/default/keymap.c
+++ b/keyboards/bubble75/hotswap/keymaps/default/keymap.c
@@ -15,11 +15,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[1] = LAYOUT(
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_HUD,
- _______, _______, _______, RGB_MOD, RGB_TOG, _______, RGB_SPD, RGB_VAD, RGB_SPI),
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SATU,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SATD,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_HUEU,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, RM_HUED,
+ _______, _______, _______, RM_NEXT, RM_TOGG, _______, RM_SPDD, RM_VALD, RM_SPDU),
[2] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
diff --git a/keyboards/bubble75/hotswap/keymaps/via/keymap.c b/keyboards/bubble75/hotswap/keymaps/via/keymap.c
deleted file mode 100644
index 7ce1f6bf91c..00000000000
--- a/keyboards/bubble75/hotswap/keymaps/via/keymap.c
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright 2022 Velocifire
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [0] = LAYOUT(
- 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_F13,
- 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_END,
- 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_DEL,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
-
- [1] = LAYOUT(
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_HUD,
- _______, _______, _______, RGB_MOD, RGB_TOG, _______, RGB_SPD, RGB_VAD, RGB_SPI),
-
- [2] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______),
-
- [3] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______)
-
-};
diff --git a/keyboards/bubble75/hotswap/keymaps/via/rules.mk b/keyboards/bubble75/hotswap/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3e..00000000000
--- a/keyboards/bubble75/hotswap/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/budgy/keyboard.json b/keyboards/budgy/keyboard.json
index 645336e8ad9..0dc45c9da00 100644
--- a/keyboards/budgy/keyboard.json
+++ b/keyboards/budgy/keyboard.json
@@ -37,6 +37,9 @@
["GP18", "GP17", null, null, null]
]
}
+ },
+ "serial": {
+ "driver": "vendor"
}
},
"community_layouts": ["split_3x5_2"],
diff --git a/keyboards/budgy/rules.mk b/keyboards/budgy/rules.mk
deleted file mode 100644
index 161ec22b16e..00000000000
--- a/keyboards/budgy/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SERIAL_DRIVER = vendor
diff --git a/keyboards/buildakb/mw60/keyboard.json b/keyboards/buildakb/mw60/keyboard.json
index 9a8b7955a85..9969768345b 100644
--- a/keyboards/buildakb/mw60/keyboard.json
+++ b/keyboards/buildakb/mw60/keyboard.json
@@ -23,7 +23,24 @@
"pid": "0x0004",
"vid": "0x4A56"
},
- "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"],
+ "community_layouts": [
+ "60_ansi",
+ "60_ansi_split_bs_rshift",
+ "60_ansi_tsangan",
+ "60_ansi_tsangan_split_bs_rshift",
+ "60_ansi_wkl",
+ "60_ansi_wkl_split_bs_rshift",
+ "60_hhkb",
+ "60_iso",
+ "60_iso_split_bs_rshift",
+ "60_iso_tsangan",
+ "60_iso_tsangan_split_bs_rshift",
+ "60_iso_wkl",
+ "60_iso_wkl_split_bs_rshift"
+ ],
+ "layout_aliases": {
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
+ },
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
@@ -805,7 +822,7 @@
{"label": "k413", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
diff --git a/keyboards/buildakb/mw60/keymaps/via/keymap.c b/keyboards/buildakb/mw60/keymaps/via/keymap.c
deleted file mode 100644
index 4ad7d753ea5..00000000000
--- a/keyboards/buildakb/mw60/keymaps/via/keymap.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright 2023 Maelkk
- *
- * 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_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_SLSH, KC_RSFT, MO(1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL),
- [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_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, 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/buildakb/mw60/keymaps/via/rules.mk b/keyboards/buildakb/mw60/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/buildakb/mw60/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/buildakb/potato65/keymaps/default/keymap.c b/keyboards/buildakb/potato65/keymaps/default/keymap.c
index 6ee7a2cb3d8..23fea829f54 100644
--- a/keyboards/buildakb/potato65/keymaps/default/keymap.c
+++ b/keyboards/buildakb/potato65/keymaps/default/keymap.c
@@ -30,9 +30,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[_FN] = LAYOUT_65_ansi_split_bs(
QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
- _______, RGB_TOG, RGB_MOD, RGB_RMOD,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, UG_TOGG, UG_NEXT, UG_PREV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, UG_HUEU, UG_SATU, UG_VALU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, UG_HUED, UG_SATD, UG_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
diff --git a/keyboards/buildakb/potato65/keymaps/via/keymap.c b/keyboards/buildakb/potato65/keymaps/via/keymap.c
deleted file mode 100644
index 30df13dbc96..00000000000
--- a/keyboards/buildakb/potato65/keymaps/via/keymap.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright 2021 Maelkk
- *
- * 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
-
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT_65_ansi_split_bs(
- 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_GRV, KC_BSPC, KC_HOME,
- 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_END,
- 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_PGUP,
- 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_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [_FN1] = LAYOUT_65_ansi_split_bs(
- QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
- _______, RGB_TOG, RGB_MOD, RGB_RMOD,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_FN2] = LAYOUT_65_ansi_split_bs(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_FN3] = LAYOUT_65_ansi_split_bs(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/buildakb/potato65/keymaps/via/rules.mk b/keyboards/buildakb/potato65/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/buildakb/potato65/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/buildakb/potato65hs/keymaps/default/keymap.c b/keyboards/buildakb/potato65hs/keymaps/default/keymap.c
index 33e6d148373..56f655447ec 100644
--- a/keyboards/buildakb/potato65hs/keymaps/default/keymap.c
+++ b/keyboards/buildakb/potato65hs/keymaps/default/keymap.c
@@ -31,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[_FN] = LAYOUT_65_ansi_blocker(
KC_TILD, 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_TRNS,
- KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_TRNS,
+ KC_TRNS, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, 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_VOLU, KC_MUTE,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT
diff --git a/keyboards/buildakb/potato65hs/keymaps/via/keymap.c b/keyboards/buildakb/potato65hs/keymaps/via/keymap.c
deleted file mode 100644
index 298723785cf..00000000000
--- a/keyboards/buildakb/potato65hs/keymaps/via/keymap.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright 2021 Maelkk
- *
- * 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
-
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT_65_ansi_blocker(
- 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_HOME,
- 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_ENT, KC_PGDN,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [_FN1] = LAYOUT_65_ansi_blocker(
- KC_TILD, 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_TRNS,
- KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, 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_VOLU, KC_MUTE,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT
- ),
- [_FN2] = LAYOUT_65_ansi_blocker(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_FN3] = LAYOUT_65_ansi_blocker(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-};
\ No newline at end of file
diff --git a/keyboards/buildakb/potato65hs/keymaps/via/rules.mk b/keyboards/buildakb/potato65hs/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/buildakb/potato65hs/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/buildakb/potato65s/keymaps/default/keymap.c b/keyboards/buildakb/potato65s/keymaps/default/keymap.c
index b792c1f8901..a184238bab5 100644
--- a/keyboards/buildakb/potato65s/keymaps/default/keymap.c
+++ b/keyboards/buildakb/potato65s/keymaps/default/keymap.c
@@ -31,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[_FN] = LAYOUT_65_ansi_blocker_split_bs(
KC_TILD, 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, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_TRNS,
+ KC_TRNS, UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALU, UG_VALD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, 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_VOLU, KC_MUTE,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT
diff --git a/keyboards/buildakb/potato65s/keymaps/via/keymap.c b/keyboards/buildakb/potato65s/keymaps/via/keymap.c
deleted file mode 100644
index 3a74a88d153..00000000000
--- a/keyboards/buildakb/potato65s/keymaps/via/keymap.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright 2021 Maelkk
- *
- * 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
-
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT_65_ansi_blocker_split_bs(
- 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_DEL, KC_HOME,
- 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,
- MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [_FN1] = LAYOUT_65_ansi_blocker_split_bs(
- KC_TILD, 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, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, 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_VOLU, KC_MUTE,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT
- ),
- [_FN2] = LAYOUT_65_ansi_blocker_split_bs(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_FN3] = LAYOUT_65_ansi_blocker_split_bs(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-};
\ No newline at end of file
diff --git a/keyboards/buildakb/potato65s/keymaps/via/rules.mk b/keyboards/buildakb/potato65s/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/buildakb/potato65s/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/buzzard/rev1/keyboard.json b/keyboards/buzzard/rev1/keyboard.json
index dd17a82754b..41c85de0fc3 100644
--- a/keyboards/buzzard/rev1/keyboard.json
+++ b/keyboards/buzzard/rev1/keyboard.json
@@ -30,7 +30,9 @@
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
- "soft_serial_pin": "D2",
+ "serial": {
+ "pin": "D2"
+ },
"transport": {
"sync": {
"oled": true
diff --git a/keyboards/buzzard/rules.mk b/keyboards/buzzard/rules.mk
deleted file mode 100644
index 2f66720b774..00000000000
--- a/keyboards/buzzard/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DEFAULT_FOLDER = buzzard/rev1
diff --git a/keyboards/cablecardesigns/cypher/rev6/keymaps/default/keymap.c b/keyboards/cablecardesigns/cypher/rev6/keymaps/default/keymap.c
index 6cda88cbe83..e0db81551c6 100644
--- a/keyboards/cablecardesigns/cypher/rev6/keymaps/default/keymap.c
+++ b/keyboards/cablecardesigns/cypher/rev6/keymaps/default/keymap.c
@@ -54,8 +54,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_F1] = 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_F11, KC_F12, KC_DEL, _______, _______, _______, _______, _______,
_______, BL_TOGG, BL_STEP, BL_ON, BL_OFF, BL_UP, BL_DOWN, BL_BRTG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, UG_NEXT, UG_HUED, UG_SATD, UG_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
diff --git a/keyboards/cablecardesigns/cypher/rev6/keymaps/default_ansi/keymap.c b/keyboards/cablecardesigns/cypher/rev6/keymaps/default_ansi/keymap.c
index 9ca75c78c79..5816d569298 100644
--- a/keyboards/cablecardesigns/cypher/rev6/keymaps/default_ansi/keymap.c
+++ b/keyboards/cablecardesigns/cypher/rev6/keymaps/default_ansi/keymap.c
@@ -54,8 +54,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_F1] = 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_F11, KC_F12, _______, _______, _______, _______, _______,
_______, BL_TOGG, BL_STEP, BL_ON, BL_OFF, BL_UP, BL_DOWN, BL_BRTG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, UG_NEXT, UG_HUED, UG_SATD, UG_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
diff --git a/keyboards/cablecardesigns/cypher/rev6/keymaps/default_iso/keymap.c b/keyboards/cablecardesigns/cypher/rev6/keymaps/default_iso/keymap.c
index 00f5679701a..2966638bab3 100644
--- a/keyboards/cablecardesigns/cypher/rev6/keymaps/default_iso/keymap.c
+++ b/keyboards/cablecardesigns/cypher/rev6/keymaps/default_iso/keymap.c
@@ -54,8 +54,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_F1] = 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_F11, KC_F12, _______, _______, _______, _______, _______,
_______, BL_TOGG, BL_STEP, BL_ON, BL_OFF, BL_UP, BL_DOWN, BL_BRTG, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, UG_NEXT, UG_HUED, UG_SATD, UG_VALD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
diff --git a/keyboards/cablecardesigns/cypher/rev6/keymaps/via/config.h b/keyboards/cablecardesigns/cypher/rev6/keymaps/via/config.h
deleted file mode 100644
index eda93545b41..00000000000
--- a/keyboards/cablecardesigns/cypher/rev6/keymaps/via/config.h
+++ /dev/null
@@ -1,7 +0,0 @@
-// Copyright 2022 Cable Car Designs (@westfoxtrot)
-// SPDX-License-Identifier: GPL-2.0-or-later
-#pragma once
-
-#define RGBLIGHT_LAYERS
-#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
-#define RGBLIGHT_DEFAULT_VAL 0
\ No newline at end of file
diff --git a/keyboards/cablecardesigns/cypher/rev6/keymaps/via/keymap.c b/keyboards/cablecardesigns/cypher/rev6/keymaps/via/keymap.c
deleted file mode 100644
index ad849764d9f..00000000000
--- a/keyboards/cablecardesigns/cypher/rev6/keymaps/via/keymap.c
+++ /dev/null
@@ -1,75 +0,0 @@
-// Copyright 2022 Cable Car Designs (@westfoxtrot)
-// SPDX-License-Identifier: GPL-2.0-or-later
-/* VIA Layout > http://www.keyboard-layout-editor.com/#/gists/0e8d4957e77f3179aa09bd6e195f7afa */
-
-#include QMK_KEYBOARD_H
-
-const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {1, 1, HSV_GREEN}
-);
-
-const rgblight_segment_t PROGMEM my_numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {2, 1, HSV_BLUE}
-);
-
-const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, 1, HSV_RED}
-);
-
-const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
- my_capslock_layer,
- my_numlock_layer,
- my_layer1_layer
-);
-
-void keyboard_post_init_user(void) {
- // Enable the LED layers
- rgblight_layers = my_rgb_layers;
-}
-
-bool led_update_user(led_t led_state) {
- rgblight_set_layer_state(0, led_state.caps_lock);
- rgblight_set_layer_state(1, led_state.num_lock);
- return true;
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- rgblight_set_layer_state(2, layer_state_cmp(state, 1));
- return state;
-}
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [0] = 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_MINS, KC_EQL, KC_BSPC, KC_DEL, 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_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_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PEQL,
- 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, KC_P1, KC_P2, KC_P3, KC_PENT,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_BSPC
- ),
-
- [1] = LAYOUT_all(
- QK_BOOT, 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, _______, _______, _______, _______, _______,
- _______, BL_TOGG, BL_STEP, BL_ON, BL_OFF, BL_UP, BL_DOWN, BL_BRTG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [2] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [3] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
-};
diff --git a/keyboards/cablecardesigns/cypher/rev6/keymaps/via/rules.mk b/keyboards/cablecardesigns/cypher/rev6/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc9..00000000000
--- a/keyboards/cablecardesigns/cypher/rev6/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/cablecardesigns/phoenix/keymaps/via/keymap.c b/keyboards/cablecardesigns/phoenix/keymaps/via/keymap.c
deleted file mode 100644
index e008bee3b1d..00000000000
--- a/keyboards/cablecardesigns/phoenix/keymaps/via/keymap.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright 2023 Yiancar-Designs
- *
- * 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( /* Base */
- 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_F13, 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_DEL, KC_INS, KC_HOME, 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_DEL, KC_END, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT)
-};
diff --git a/keyboards/cablecardesigns/phoenix/keymaps/via/rules.mk b/keyboards/cablecardesigns/phoenix/keymaps/via/rules.mk
deleted file mode 100755
index 1e5b99807cb..00000000000
--- a/keyboards/cablecardesigns/phoenix/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/caffeinated/serpent65/keymaps/via/keymap.c b/keyboards/caffeinated/serpent65/keymaps/via/keymap.c
deleted file mode 100644
index db5cc8fdd53..00000000000
--- a/keyboards/caffeinated/serpent65/keymaps/via/keymap.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Copyright 2021 jrfhoutx
- *
- * 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] = {
- /* Keymap BASE: (Base Layer) Default Layer
- * .---------------------------------------------------------------------.
- * |Esc | 1 | 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| ~ | \ | Ins |
- * |---------------------------------------------------------------------|
- * |Tab | Q| W| E| R| T| Y| U| I| O| P| [ | ] | BkSpc | Del |
- * |---------------------------------------------------------------------|
- * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| Return | PgUp|
- * |---------------------------------------------------------------------|
- * |Shift | Z| X| C| V| B| N| M| ,| .| /| Shift | Up | |
- * |---------------------------------------------------------------------|
- * | LCtrl | GUI | Alt | Space | Alt | MO(1) | L | Dn | R |
- * `---------------------------------------------------------------------'
- */
-[0] = LAYOUT_all( /* Serpent65 Base */
- 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_GRV, KC_BSLS, KC_INS,
- 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_BSPC, KC_DEL,
- 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_TRNS, KC_ENT, KC_PGUP,
- KC_LSFT, KC_TRNS, 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, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
-[1] = LAYOUT_all( /* Serpent65 Base */
- QK_BOOT, 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, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
-[2] = LAYOUT_all( /* Serpent65 Base */
- 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, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
-[3] = LAYOUT_all( /* Serpent65 Base */
- 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, 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/caffeinated/serpent65/keymaps/via/rules.mk b/keyboards/caffeinated/serpent65/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/caffeinated/serpent65/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/canary/canary60rgb/keymaps/default/keymap.c b/keyboards/canary/canary60rgb/keymaps/default/keymap.c
index 094595130fa..f57f83b933f 100644
--- a/keyboards/canary/canary60rgb/keymaps/default/keymap.c
+++ b/keyboards/canary/canary60rgb/keymaps/default/keymap.c
@@ -32,8 +32,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[2] = LAYOUT(
_______, 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,
- _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, QK_BOOT,
- _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, EE_CLR,
+ _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, QK_BOOT,
+ _______, _______, _______, _______, _______, _______, _______, _______, RM_SPDU, RM_SPDD, _______, _______, EE_CLR,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______
),
diff --git a/keyboards/canary/canary60rgb/keymaps/via/config.h b/keyboards/canary/canary60rgb/keymaps/via/config.h
deleted file mode 100644
index 2546add6da6..00000000000
--- a/keyboards/canary/canary60rgb/keymaps/via/config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright 2021 CANARYTEAM
- *
- * 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
-
-#undef ENABLE_RGB_MATRIX_PIXEL_FLOW
-#define DYNAMIC_KEYMAP_LAYER_COUNT 5
diff --git a/keyboards/canary/canary60rgb/keymaps/via/keymap.c b/keyboards/canary/canary60rgb/keymaps/via/keymap.c
deleted file mode 100644
index 91de0c73485..00000000000
--- a/keyboards/canary/canary60rgb/keymaps/via/keymap.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright 2021 CANARYTEAM
- *
- * 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(
- 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, RSFT_T(KC_SLSH), KC_UP, LT(2, KC_DEL),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [1] = LAYOUT(
- _______, 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_UP, _______, _______, _______, KC_CALC, _______, KC_INS, _______, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, EE_CLR,
- _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, KC_END, KC_PGDN, KC_VOLU, KC_MUTE,
- _______, _______, TO(3), _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
- ),
- [2] = LAYOUT(
- _______, 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,
- _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, QK_BOOT,
- _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_SPD, _______, _______, EE_CLR,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [3] = LAYOUT(
- KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, _______, _______, _______, _______, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, _______,
- _______, KC_P7, KC_P8, KC_P9, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, TO(0),
- _______, KC_P4, KC_P5, KC_P6, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, KC_PENT,
- _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______,
- _______, KC_P0, KC_PDOT, KC_PENT, KC_P0, KC_PDOT, _______, _______, _______
- ),
- [4] = LAYOUT(
- 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,
- CTL_T(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, RSFT_T(KC_SLSH), KC_UP, LT(2, KC_DEL),
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, TO(0), KC_LEFT, KC_DOWN, KC_RGHT
- )
-};
diff --git a/keyboards/canary/canary60rgb/keymaps/via/rules.mk b/keyboards/canary/canary60rgb/keymaps/via/rules.mk
deleted file mode 100644
index 36b7ba9cbc9..00000000000
--- a/keyboards/canary/canary60rgb/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/cannonkeys/adelie/keymaps/default/keymap.c b/keyboards/cannonkeys/adelie/keymaps/default/keymap.c
index 4e771dca7bf..16df9d4c30d 100644
--- a/keyboards/cannonkeys/adelie/keymaps/default/keymap.c
+++ b/keyboards/cannonkeys/adelie/keymaps/default/keymap.c
@@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_FN1] = LAYOUT_all(
KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_TRNS, KC_TRNS, KC_LPRN, KC_RPRN, KC_TRNS, KC_HOME,
- RGB_TOG, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, KC_TRNS, KC_END,
+ UG_TOGG, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, KC_TRNS, KC_END,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DOT, KC_TRNS, KC_TRNS, KC_MINS, KC_PLUS, KC_ASTR, KC_TRNS, KC_EQL, KC_INS, KC_PSCR,
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/cannonkeys/adelie/keymaps/default_rwkl/keymap.c b/keyboards/cannonkeys/adelie/keymaps/default_rwkl/keymap.c
index 5089c8daf3c..80da251a463 100644
--- a/keyboards/cannonkeys/adelie/keymaps/default_rwkl/keymap.c
+++ b/keyboards/cannonkeys/adelie/keymaps/default_rwkl/keymap.c
@@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_FN1] = LAYOUT_rwkl(
KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_TRNS, KC_TRNS, KC_LPRN, KC_RPRN, KC_TRNS, KC_HOME,
- RGB_TOG, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, KC_TRNS, KC_END,
+ UG_TOGG, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, KC_TRNS, KC_END,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DOT, KC_TRNS, KC_TRNS, KC_MINS, KC_PLUS, KC_ASTR, KC_TRNS, KC_EQL, KC_INS, KC_PSCR,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
diff --git a/keyboards/cannonkeys/adelie/keymaps/default_wkl/keymap.c b/keyboards/cannonkeys/adelie/keymaps/default_wkl/keymap.c
index 7263066a4ca..05165913075 100644
--- a/keyboards/cannonkeys/adelie/keymaps/default_wkl/keymap.c
+++ b/keyboards/cannonkeys/adelie/keymaps/default_wkl/keymap.c
@@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_FN1] = LAYOUT_wkl(
KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_TRNS, KC_TRNS, KC_LPRN, KC_RPRN, KC_TRNS, KC_HOME,
- RGB_TOG, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, KC_TRNS, KC_END,
+ UG_TOGG, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, KC_TRNS, KC_END,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DOT, KC_TRNS, KC_TRNS, KC_MINS, KC_PLUS, KC_ASTR, KC_TRNS, KC_EQL, KC_INS, KC_PSCR,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
diff --git a/keyboards/cannonkeys/adelie/keymaps/via/keymap.c b/keyboards/cannonkeys/adelie/keymaps/via/keymap.c
deleted file mode 100644
index 4e771dca7bf..00000000000
--- a/keyboards/cannonkeys/adelie/keymaps/via/keymap.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/* Copyright 2020 Andrew Kannan
- *
- * 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
-
-
-// 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.
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT_all(
- QK_GESC, 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_BSPC, KC_PGUP,
- 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_ENT, KC_PGDN,
- 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, TG(_FN3),
- KC_LCTL, KC_LGUI, KC_LALT, MO(_FN1), KC_SPC, KC_RALT, KC_RGUI, MO(_FN2), KC_LEFT, KC_DOWN, KC_RIGHT
- ),
-
- [_FN1] = LAYOUT_all(
- KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_TRNS, KC_TRNS, KC_LPRN, KC_RPRN, KC_TRNS, KC_HOME,
- RGB_TOG, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, KC_TRNS, KC_END,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DOT, KC_TRNS, KC_TRNS, KC_MINS, KC_PLUS, KC_ASTR, KC_TRNS, KC_EQL, KC_INS, KC_PSCR,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [_FN2] = LAYOUT_all(
- KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MPRV, KC_MNXT, KC_DEL, KC_VOLU,
- KC_SLEP, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD,
- KC_WAKE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_MUTE,
- QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [_FN3] = LAYOUT_all(
- 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_SPC, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FN1), KC_TRNS, KC_TRNS, KC_TRNS
- )
-};
-
-const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, 3, HSV_RED}
-);
-const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, 3, HSV_CYAN}
-);
-const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, 3, HSV_PURPLE}
-);
-const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, 3, HSV_GREEN}
-);
-
-const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
- my_layer0_layer,
- my_layer1_layer,
- my_layer2_layer,
- my_layer3_layer
-);
-
-void keyboard_post_init_user(void) {
- // Enable the LED layers
- rgblight_layers = my_rgb_layers;
-}
-
-layer_state_t default_layer_state_set_user(layer_state_t state) {
- rgblight_set_layer_state(0, layer_state_cmp(state, _BASE));
- return state;
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- rgblight_set_layer_state(1, layer_state_cmp(state, _FN1));
- rgblight_set_layer_state(2, layer_state_cmp(state, _FN2));
- rgblight_set_layer_state(3, layer_state_cmp(state, _FN3));
- return state;
-}
diff --git a/keyboards/cannonkeys/adelie/keymaps/via/rules.mk b/keyboards/cannonkeys/adelie/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/adelie/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/aella/keymaps/via/keymap.c b/keyboards/cannonkeys/aella/keymaps/via/keymap.c
deleted file mode 100644
index 5aa30a12c74..00000000000
--- a/keyboards/cannonkeys/aella/keymaps/via/keymap.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
-Copyright 2012,2013 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 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
-// entirely and just use numbers.
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_BASE] = LAYOUT_all(
- 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_MPLY, KC_MUTE,
- 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_DEL, KC_INS,
- 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUBS, KC_ENT, KC_PGUP,
- KC_LSFT, KC_NUHS, 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_PGDN,
- KC_LCTL, KC_LALT, KC_SPC, MO(_FN1), KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_FN1] = LAYOUT_all(
- 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_TRNS, KC_TRNS,
- QK_GESC, 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_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, 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_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS
- ),
-
-
- [_FN2] = LAYOUT_all(
- 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, 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
- ),
-
- [_FN3] = LAYOUT_all(
- 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, 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/cannonkeys/aella/keymaps/via/rules.mk b/keyboards/cannonkeys/aella/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/aella/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/an_c/keyboard.json b/keyboards/cannonkeys/an_c/keyboard.json
index ea127998710..29225da183f 100644
--- a/keyboards/cannonkeys/an_c/keyboard.json
+++ b/keyboards/cannonkeys/an_c/keyboard.json
@@ -55,7 +55,10 @@
"resync": true
}
},
- "community_layouts": ["60_ansi", "60_tsangan_hhkb"],
+ "community_layouts": ["60_ansi", "60_ansi_tsangan_split_bs_rshift"],
+ "layout_aliases": {
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
+ },
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
@@ -126,7 +129,7 @@
{"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
]
},
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
diff --git a/keyboards/cannonkeys/an_c/keymaps/default/keymap.c b/keyboards/cannonkeys/an_c/keymaps/default/keymap.c
index d4d5faa9cc5..55b0fdf99a1 100644
--- a/keyboards/cannonkeys/an_c/keymaps/default/keymap.c
+++ b/keyboards/cannonkeys/an_c/keymaps/default/keymap.c
@@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_FN1] = LAYOUT_60_ansi(
QK_GESC, 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,
- RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_UP, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_GRV, _______, _______, _______, _______, _______, _______, QK_BOOT
diff --git a/keyboards/cannonkeys/an_c/keymaps/tsangan/keymap.c b/keyboards/cannonkeys/an_c/keymaps/tsangan/keymap.c
index adb33da2587..9d799168358 100644
--- a/keyboards/cannonkeys/an_c/keymaps/tsangan/keymap.c
+++ b/keyboards/cannonkeys/an_c/keymaps/tsangan/keymap.c
@@ -26,7 +26,7 @@ along with this program. If not, see .
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT_60_tsangan_hhkb(
+ [_BASE] = 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_BSLS, 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_LBRC, KC_RBRC, KC_BSPC,
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,
@@ -34,9 +34,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
),
- [_FN1] = LAYOUT_60_tsangan_hhkb(
+ [_FN1] = 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, _______,
- RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_UP, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, QK_BOOT
diff --git a/keyboards/cannonkeys/an_c/keymaps/via/keymap.c b/keyboards/cannonkeys/an_c/keymaps/via/keymap.c
deleted file mode 100644
index 07b2a9fa0c3..00000000000
--- a/keyboards/cannonkeys/an_c/keymaps/via/keymap.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
-Copyright 2012,2013 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 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
-// entirely and just use numbers.
-#define _BASE 0
-#define _FN1 1
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = 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_MINS, KC_EQL, 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_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(_FN1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL
- ),
-
- [_FN1] = LAYOUT_all(
- 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, _______,
- RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- BL_UP, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, QK_BOOT
- )
-};
diff --git a/keyboards/cannonkeys/an_c/keymaps/via/rules.mk b/keyboards/cannonkeys/an_c/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/an_c/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/atlas/keymaps/default/keymap.c b/keyboards/cannonkeys/atlas/keymaps/default/keymap.c
index 80843524772..6c9b2613abc 100644
--- a/keyboards/cannonkeys/atlas/keymaps/default/keymap.c
+++ b/keyboards/cannonkeys/atlas/keymaps/default/keymap.c
@@ -47,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
KC_ESC, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
- RGB_MOD, KC_LCTL, KC_LALT, KC_LGUI, MO(_LOWER), KC_SPC, KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+ UG_NEXT, KC_LCTL, KC_LALT, KC_LGUI, MO(_LOWER), KC_SPC, KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
/* Lower
* ,-----------------------------------------------------------------------------------.
@@ -84,11 +84,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-----------------------------------------------------------------------------------'
*/
[_RAISE] = LAYOUT_ortho_5x12(
- KC_GRV, KC_1, RGB_SAI, RGB_VAI, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_GRV, KC_1, RGB_SAD, RGB_VAD, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ KC_GRV, KC_1, UG_SATU, UG_VALU, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_GRV, KC_1, UG_SATD, UG_VALD, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
- RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+ UG_TOGG, UG_NEXT, UG_HUEU, UG_HUED, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
)
}
;
diff --git a/keyboards/cannonkeys/atlas/keymaps/via/keymap.c b/keyboards/cannonkeys/atlas/keymaps/via/keymap.c
deleted file mode 100644
index 821756b0f36..00000000000
--- a/keyboards/cannonkeys/atlas/keymaps/via/keymap.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
-Copyright 2012,2013 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 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
-// entirely and just use numbers.
-enum layer_names {
- _BASE,
- _RAISE,
- _LOWER,
- _EXTRA
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_BASE] = LAYOUT_ortho_5x12(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_DEL,
- KC_ESC, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
- RGB_MOD, KC_LCTL, KC_LALT, KC_LGUI, MO(_LOWER), KC_SPC, KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |n
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_ortho_5x12(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______,
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_ortho_5x12(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
- RGB_TOG, RGB_MOD, BL_UP, BL_DOWN, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-[_EXTRA] = LAYOUT_ortho_5x12(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-)
-};
diff --git a/keyboards/cannonkeys/atlas/keymaps/via/rules.mk b/keyboards/cannonkeys/atlas/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/atlas/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/atlas_alps/keymaps/default/keymap.c b/keyboards/cannonkeys/atlas_alps/keymaps/default/keymap.c
index 7c4a9e5c574..ff13d2e64dc 100644
--- a/keyboards/cannonkeys/atlas_alps/keymaps/default/keymap.c
+++ b/keyboards/cannonkeys/atlas_alps/keymaps/default/keymap.c
@@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
CTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
- RGB_TOG, KC_LGUI, KC_LALT, KC_PSCR, TT(1), KC_SPC, KC_SPC, TT(2), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
+ UG_TOGG, KC_LGUI, KC_LALT, KC_PSCR, TT(1), KC_SPC, KC_SPC, TT(2), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
),
/* 1
diff --git a/keyboards/cannonkeys/atlas_alps/keymaps/via/keymap.c b/keyboards/cannonkeys/atlas_alps/keymaps/via/keymap.c
deleted file mode 100644
index ca28cda8fa1..00000000000
--- a/keyboards/cannonkeys/atlas_alps/keymaps/via/keymap.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/* Copyright 2015-2017 Jack Humbert
- * Modified by Nasp for the Quark
- * 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
-
-// Defines for task manager and such
-#define CALTDEL LCTL(LALT(KC_DEL))
-#define TSKMGR LCTL(LSFT(KC_ESC))
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Ctrl | A | S | D | F | G | H | J | K | L | ; | " |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | OS | Alt | Layer | Space | Alt | RGB | Super |
- * `-----------------------------------------------------------------------------------'
- */
-[0] = LAYOUT_ortho_5x12(
- 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_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
- CTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
- RGB_TOG, KC_LGUI, KC_LALT, KC_PSCR, TT(1), KC_SPC, KC_SPC, TT(2), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
-),
-
-/* 1
- * ,-----------------------------------------------------------------------------------.
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | R | S | T | D | H | N | E | I | O | " |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[1] = LAYOUT_ortho_5x12(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_EQL, _______, _______, _______,
- KC_NUBS, CALTDEL, TSKMGR, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* 2
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | " | , | . | P | Y | F | G | C | R | L | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | O | E | U | I | D | H | T | N | S | / |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[2] = LAYOUT_ortho_5x12(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______,
- _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______,
- 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, KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* 3
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | " | , | . | P | Y | F | G | C | R | L | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | O | E | U | I | D | H | T | N | S | / |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[3] = LAYOUT_ortho_5x12(
- 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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-};
diff --git a/keyboards/cannonkeys/atlas_alps/keymaps/via/rules.mk b/keyboards/cannonkeys/atlas_alps/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3e..00000000000
--- a/keyboards/cannonkeys/atlas_alps/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
\ No newline at end of file
diff --git a/keyboards/cannonkeys/bakeneko60_iso_hs/keymaps/via/keymap.c b/keyboards/cannonkeys/bakeneko60_iso_hs/keymaps/via/keymap.c
deleted file mode 100644
index c3b04510427..00000000000
--- a/keyboards/cannonkeys/bakeneko60_iso_hs/keymaps/via/keymap.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
-Copyright 2012,2013 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 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
-// entirely and just use numbers.
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT_60_iso(
- 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, KC_RSFT,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL
- ),
-
- [_FN1] = LAYOUT_60_iso(
- QK_GESC, 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_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_GRV, _______, _______, _______, _______, _______, _______, QK_BOOT
- ),
-
- [_FN2] = LAYOUT_60_iso(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_FN3] = LAYOUT_60_iso(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/cannonkeys/bakeneko60_iso_hs/keymaps/via/rules.mk b/keyboards/cannonkeys/bakeneko60_iso_hs/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/bakeneko60_iso_hs/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/bakeneko65_iso_hs/keymaps/via/keymap.c b/keyboards/cannonkeys/bakeneko65_iso_hs/keymaps/via/keymap.c
deleted file mode 100644
index f0c05d01e55..00000000000
--- a/keyboards/cannonkeys/bakeneko65_iso_hs/keymaps/via/keymap.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
-Copyright 2012,2013 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 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
-// entirely and just use numbers.
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_BASE] = LAYOUT_65_iso_blocker(
- 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_INS,
- 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_DEL,
- 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_BSLS, KC_ENT, KC_PGUP,
- 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_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_FN1] = LAYOUT_65_iso_blocker(
- QK_GESC, 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_TRNS,
- KC_TRNS, KC_TRNS, KC_UP, 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_LEFT, KC_DOWN, KC_RGHT, 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, QK_BOOT, KC_TRNS, KC_TRNS
- ),
-
-
- [_FN2] = LAYOUT_65_iso_blocker(
- 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, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
-
- [_FN3] = LAYOUT_65_iso_blocker(
- 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, 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/cannonkeys/bakeneko65_iso_hs/keymaps/via/rules.mk b/keyboards/cannonkeys/bakeneko65_iso_hs/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/bakeneko65_iso_hs/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/balance/keymaps/via/keymap.c b/keyboards/cannonkeys/balance/keymaps/via/keymap.c
deleted file mode 100644
index 1c5ec2a9437..00000000000
--- a/keyboards/cannonkeys/balance/keymaps/via/keymap.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
-Copyright 2012,2013 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 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
-// entirely and just use numbers.
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_BASE] = 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_BSPC, KC_DEL, KC_MPLY, 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_PGUP, 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_NUHS, KC_ENT, KC_PGDN, KC_P4, KC_P5, KC_P6, KC_PPLS,
- 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, KC_P1, KC_P2, KC_P3, KC_PENT,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT
- ),
-
- [_FN1] = LAYOUT_all(
- QK_BOOT, 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,
- 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
- ),
-
- [_FN2] = LAYOUT_all(
- 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, 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/cannonkeys/balance/keymaps/via/rules.mk b/keyboards/cannonkeys/balance/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/balance/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/bastion60/keyboard.json b/keyboards/cannonkeys/bastion60/keyboard.json
index 07443b50b78..26cf507984c 100644
--- a/keyboards/cannonkeys/bastion60/keyboard.json
+++ b/keyboards/cannonkeys/bastion60/keyboard.json
@@ -53,12 +53,16 @@
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
- "60_tsangan_hhkb",
+ "60_ansi_tsangan_split_bs_rshift",
"60_hhkb",
"60_iso",
"60_iso_split_bs_rshift",
- "60_iso_tsangan"
+ "60_iso_tsangan",
+ "60_iso_tsangan_split_bs_rshift"
],
+ "layout_aliases": {
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
+ },
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
@@ -260,7 +264,7 @@
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
diff --git a/keyboards/cannonkeys/bastion60/keymaps/default/keymap.c b/keyboards/cannonkeys/bastion60/keymaps/default/keymap.c
index 9dbc210e199..d89796a75b3 100644
--- a/keyboards/cannonkeys/bastion60/keymaps/default/keymap.c
+++ b/keyboards/cannonkeys/bastion60/keymaps/default/keymap.c
@@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_FN1] = LAYOUT_all(
QK_GESC, 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, _______,
- RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_UP, _______, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT
diff --git a/keyboards/cannonkeys/bastion60/keymaps/via/keymap.c b/keyboards/cannonkeys/bastion60/keymaps/via/keymap.c
deleted file mode 100644
index 9dbc210e199..00000000000
--- a/keyboards/cannonkeys/bastion60/keymaps/via/keymap.c
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright 2023 Andrew Kannan
-// 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
-// entirely and just use numbers.
-enum layer_names {
- _BASE,
- _FN1
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = 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_MINS, KC_EQL, 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_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_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL
- ),
-
- [_FN1] = LAYOUT_all(
- QK_GESC, 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, _______,
- RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- BL_UP, _______, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT
- )
-};
diff --git a/keyboards/cannonkeys/bastion60/keymaps/via/rules.mk b/keyboards/cannonkeys/bastion60/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/bastion60/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/bastion65/keymaps/default/keymap.c b/keyboards/cannonkeys/bastion65/keymaps/default/keymap.c
index 111633864cf..fd7ac27fc0c 100644
--- a/keyboards/cannonkeys/bastion65/keymaps/default/keymap.c
+++ b/keyboards/cannonkeys/bastion65/keymaps/default/keymap.c
@@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_FN1] = LAYOUT_all(
QK_GESC, 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, _______, _______,
- RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_UP, _______, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT
diff --git a/keyboards/cannonkeys/bastion65/keymaps/via/keymap.c b/keyboards/cannonkeys/bastion65/keymaps/via/keymap.c
deleted file mode 100644
index 66b6c1c1f72..00000000000
--- a/keyboards/cannonkeys/bastion65/keymaps/via/keymap.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
-Copyright 2012,2013 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 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
-// entirely and just use numbers.
-enum layer_names {
- _BASE,
- _FN1
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = 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_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME,
- 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_END,
- 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_PGUP,
- 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_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(_FN1), KC_LEFT, KC_DOWN, KC_RIGHT
- ),
-
- [_FN1] = LAYOUT_all(
- QK_GESC, 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, _______, _______,
- RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- BL_UP, _______, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT
- )
-
-};
diff --git a/keyboards/cannonkeys/bastion65/keymaps/via/rules.mk b/keyboards/cannonkeys/bastion65/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/bastion65/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/bastion75/keymaps/default/keymap.c b/keyboards/cannonkeys/bastion75/keymaps/default/keymap.c
index b0da09f0b8d..63c09835df9 100644
--- a/keyboards/cannonkeys/bastion75/keymaps/default/keymap.c
+++ b/keyboards/cannonkeys/bastion75/keymaps/default/keymap.c
@@ -39,7 +39,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_FN1] = LAYOUT_all(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
QK_GESC, 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, _______, _______,
- RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_UP, _______, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT
diff --git a/keyboards/cannonkeys/bastion75/keymaps/via/keymap.c b/keyboards/cannonkeys/bastion75/keymaps/via/keymap.c
deleted file mode 100644
index 493fea3c9a6..00000000000
--- a/keyboards/cannonkeys/bastion75/keymaps/via/keymap.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-Copyright 2012,2013 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 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
-// entirely and just use numbers.
-enum layer_names {
- _BASE,
- _FN1
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT_all(
- 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_MPLY,
- 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_DEL, KC_HOME,
- 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_END,
- 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_PGUP,
- 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_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(_FN1), KC_LEFT, KC_DOWN, KC_RIGHT
- ),
-
- [_FN1] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- QK_GESC, 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, _______, _______,
- RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- BL_UP, _______, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT
- )
-
-};
diff --git a/keyboards/cannonkeys/bastion75/keymaps/via/rules.mk b/keyboards/cannonkeys/bastion75/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/bastion75/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/bastiontkl/keymaps/via/keymap.c b/keyboards/cannonkeys/bastiontkl/keymaps/via/keymap.c
deleted file mode 100644
index 0d57c828c2b..00000000000
--- a/keyboards/cannonkeys/bastiontkl/keymaps/via/keymap.c
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright 2023 Andrew Kannan
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-enum layer_names {
- _BASE,
- _FN1
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_BASE] = LAYOUT_all(
- 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_MPLY, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_NUBS, 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_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [_FN1] = LAYOUT_all(
- QK_BOOT, 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_VOLU,
- 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_MPLY, KC_MNXT, KC_VOLD,
- 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/cannonkeys/bastiontkl/keymaps/via/rules.mk b/keyboards/cannonkeys/bastiontkl/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/bastiontkl/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/brutalv2_1800/keymaps/via/keymap.c b/keyboards/cannonkeys/brutalv2_1800/keymaps/via/keymap.c
deleted file mode 100644
index 1c4ad08ff16..00000000000
--- a/keyboards/cannonkeys/brutalv2_1800/keymaps/via/keymap.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
-Copyright 2012,2013 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 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
-// entirely and just use numbers.
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_BASE] = LAYOUT_all(
- 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_DEL, KC_INS, KC_PGUP, KC_PGDN,
- 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_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_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_PPLS,
- KC_LSFT, KC_NUHS, 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, MO(_FN1),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT
- ),
-
- [_FN1] = LAYOUT_all(
- QK_BOOT, 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,
- BL_BRTG, 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,
- BL_UP, BL_DOWN, BL_TOGG, 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
- ),
-
- [_FN2] = LAYOUT_all(
- 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, 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/cannonkeys/brutalv2_1800/keymaps/via/rules.mk b/keyboards/cannonkeys/brutalv2_1800/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/brutalv2_1800/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/brutalv2_60/keyboard.json b/keyboards/cannonkeys/brutalv2_60/keyboard.json
index 3ee5f0d576b..923be17c9af 100644
--- a/keyboards/cannonkeys/brutalv2_60/keyboard.json
+++ b/keyboards/cannonkeys/brutalv2_60/keyboard.json
@@ -29,12 +29,16 @@
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
- "60_tsangan_hhkb",
+ "60_ansi_tsangan_split_bs_rshift",
"60_hhkb",
"60_iso",
"60_iso_split_bs_rshift",
- "60_iso_tsangan"
+ "60_iso_tsangan",
+ "60_iso_tsangan_split_bs_rshift"
],
+ "layout_aliases": {
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
@@ -300,7 +304,7 @@
{"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
diff --git a/keyboards/cannonkeys/brutalv2_60/keymaps/via/keymap.c b/keyboards/cannonkeys/brutalv2_60/keymaps/via/keymap.c
deleted file mode 100644
index 4678bab52a5..00000000000
--- a/keyboards/cannonkeys/brutalv2_60/keymaps/via/keymap.c
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2023 Andrew Kannan
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-enum layers {
- _BASE,
- _FN1,
- _FN2,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = 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_MINS, KC_EQL, 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_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_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN2),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL
- ),
-
- [_FN1] = LAYOUT_all(
- 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_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, QK_BOOT
- ),
-
- [_FN2] = LAYOUT_all(
- 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_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, DB_TOGG, QK_BOOT
- )
-};
diff --git a/keyboards/cannonkeys/brutalv2_60/keymaps/via/rules.mk b/keyboards/cannonkeys/brutalv2_60/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/brutalv2_60/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/brutalv2_65/keymaps/via/keymap.c b/keyboards/cannonkeys/brutalv2_65/keymaps/via/keymap.c
deleted file mode 100644
index 8a1ccb3b741..00000000000
--- a/keyboards/cannonkeys/brutalv2_65/keymaps/via/keymap.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
-Copyright 2012,2013 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 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
-// entirely and just use numbers.
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_BASE] = 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_BSPC, KC_DEL, KC_HOME,
- 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_END,
- MO(1), 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_PGUP,
- 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_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_FN1] = LAYOUT_all(
- QK_BOOT, 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_PGUP, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______,
- _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
- ),
-
- [_FN2] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_FN3] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
-};
diff --git a/keyboards/cannonkeys/brutalv2_65/keymaps/via/rules.mk b/keyboards/cannonkeys/brutalv2_65/keymaps/via/rules.mk
deleted file mode 100644
index 16d33cd89fe..00000000000
--- a/keyboards/cannonkeys/brutalv2_65/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-
diff --git a/keyboards/cannonkeys/caerdroia/keymaps/via/keymap.c b/keyboards/cannonkeys/caerdroia/keymaps/via/keymap.c
deleted file mode 100644
index 4ada7ca5909..00000000000
--- a/keyboards/cannonkeys/caerdroia/keymaps/via/keymap.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-Copyright 2012,2013 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 QMK_KEYBOARD_H
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_BASE] = LAYOUT(
- 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_NUBS, 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_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [_FN1] = LAYOUT(
- QK_BOOT, 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_VOLU,
- 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_MPLY, KC_MNXT, KC_VOLD,
- 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),
-
- [_FN2] = LAYOUT(
- 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_VOLU,
- 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_MPLY, KC_MNXT, KC_VOLD,
- 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),
-
- [_FN3] = LAYOUT(
- 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_VOLU,
- 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_MPLY, KC_MNXT, KC_VOLD,
- 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/cannonkeys/caerdroia/keymaps/via/rules.mk b/keyboards/cannonkeys/caerdroia/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/caerdroia/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/cerberus/config.h b/keyboards/cannonkeys/cerberus/config.h
new file mode 100644
index 00000000000..84ea5d9acd0
--- /dev/null
+++ b/keyboards/cannonkeys/cerberus/config.h
@@ -0,0 +1,9 @@
+// Copyright 2024 Andrew Kannan
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#define WS2812_SPI_DRIVER SPID2
+#define WS2812_SPI_MOSI_PAL_MODE 0
+#define WS2812_SPI_SCK_PAL_MODE 0
+#define WS2812_SPI_SCK_PIN B13
diff --git a/keyboards/cannonkeys/cerberus/halconf.h b/keyboards/cannonkeys/cerberus/halconf.h
new file mode 100644
index 00000000000..d0f34b102cb
--- /dev/null
+++ b/keyboards/cannonkeys/cerberus/halconf.h
@@ -0,0 +1,9 @@
+// Copyright 2024 Andrew Kannan
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#define HAL_USE_SPI TRUE
+
+#include_next
+
diff --git a/keyboards/cannonkeys/cerberus/hotswap/keyboard.json b/keyboards/cannonkeys/cerberus/hotswap/keyboard.json
new file mode 100644
index 00000000000..78890d942e7
--- /dev/null
+++ b/keyboards/cannonkeys/cerberus/hotswap/keyboard.json
@@ -0,0 +1,311 @@
+{
+ "keyboard_name": "Cerberus HS",
+ "usb": {
+ "pid": "0x0034"
+ },
+ "community_layouts": ["tkl_nofrow_ansi"],
+ "layouts": {
+ "LAYOUT_all": {
+ "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": "Bksp", "matrix": [0, 13], "x": 13, "y": 0},
+ {"label": "~", "matrix": [0, 14], "x": 14, "y": 0},
+ {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0},
+ {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0},
+ {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0},
+ {"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, 14], "x": 13.5, "y": 1, "w": 1.5},
+ {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1},
+ {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1},
+ {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1},
+ {"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, 14], "x": 12.75, "y": 2, "w": 2.25},
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"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": "Fn", "matrix": [3, 14], "x": 14, "y": 3},
+ {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3},
+ {"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": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+ {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+ {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+ {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
+ {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25},
+ {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4},
+ {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4},
+ {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4}
+ ]
+ },
+ "LAYOUT_tkl_nofrow_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": "#", "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": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+ {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0},
+ {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0},
+ {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0},
+ {"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, 14], "x": 13.5, "y": 1, "w": 1.5},
+ {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1},
+ {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1},
+ {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1},
+ {"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, 14], "x": 12.75, "y": 2, "w": 2.25},
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"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": 2.75},
+ {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3},
+ {"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": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+ {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+ {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+ {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
+ {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25},
+ {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4},
+ {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4},
+ {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4}
+ ]
+ },
+ "LAYOUT_tkl_nofrow_ansi_tsangan": {
+ "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": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+ {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0},
+ {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0},
+ {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0},
+ {"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, 14], "x": 13.5, "y": 1, "w": 1.5},
+ {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1},
+ {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1},
+ {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1},
+ {"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, 14], "x": 12.75, "y": 2, "w": 2.25},
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"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": 2.75},
+ {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3},
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
+ {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7},
+ {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4},
+ {"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5},
+ {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4},
+ {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4},
+ {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4}
+ ]
+ },
+ "LAYOUT_tkl_nofrow_ansi_tsangan_split_bs_rshift": {
+ "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": "Bksp", "matrix": [0, 13], "x": 13, "y": 0},
+ {"label": "~", "matrix": [0, 14], "x": 14, "y": 0},
+ {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0},
+ {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0},
+ {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0},
+ {"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, 14], "x": 13.5, "y": 1, "w": 1.5},
+ {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1},
+ {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1},
+ {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1},
+ {"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, 14], "x": 12.75, "y": 2, "w": 2.25},
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"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": "Fn", "matrix": [3, 14], "x": 14, "y": 3},
+ {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3},
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
+ {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7},
+ {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4},
+ {"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5},
+ {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4},
+ {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4},
+ {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4}
+ ]
+ }
+ }
+}
diff --git a/keyboards/cannonkeys/cerberus/hotswap/keymaps/default/keymap.c b/keyboards/cannonkeys/cerberus/hotswap/keymaps/default/keymap.c
new file mode 100644
index 00000000000..779070197a4
--- /dev/null
+++ b/keyboards/cannonkeys/cerberus/hotswap/keymaps/default/keymap.c
@@ -0,0 +1,26 @@
+// Copyright 2024 Andrew Kannan
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+enum layer_names {
+ _BASE,
+ _FN1,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BASE] = 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_BSPC, KC_GRV, KC_INS, KC_HOME, 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_DEL, KC_END, 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, MO(1), KC_UP,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [_FN1] = LAYOUT_all(
+ 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_PSCR, KC_SCRL, KC_PAUS,
+ UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, UG_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, UG_HUED, UG_SATD, UG_VALD, UG_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, UG_PREV, UG_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+};
diff --git a/keyboards/cannonkeys/cerberus/hotswap/rules.mk b/keyboards/cannonkeys/cerberus/hotswap/rules.mk
new file mode 100644
index 00000000000..0ab54aaaf71
--- /dev/null
+++ b/keyboards/cannonkeys/cerberus/hotswap/rules.mk
@@ -0,0 +1,2 @@
+# Wildcard to allow APM32 MCU
+DFU_SUFFIX_ARGS = -v FFFF -p FFFF
diff --git a/keyboards/cannonkeys/cerberus/info.json b/keyboards/cannonkeys/cerberus/info.json
new file mode 100644
index 00000000000..c260c2fcd59
--- /dev/null
+++ b/keyboards/cannonkeys/cerberus/info.json
@@ -0,0 +1,50 @@
+{
+ "manufacturer": "CannonKeys",
+ "maintainer": "awkannan",
+ "bootloader": "stm32-dfu",
+ "diode_direction": "COL2ROW",
+ "features": {
+ "bootmagic": true,
+ "command": true,
+ "console": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgblight": true
+ },
+ "matrix_pins": {
+ "cols": ["B0", "C15", "C14", "A7", "A5", "C13", "A4", "A2", "A1", "A0", "B9", "B8", "B7", "A3", "B6", "B4", "B3", "A15"],
+ "rows": ["B11", "B10", "B2", "F0", "B5"]
+ },
+ "processor": "STM32F072",
+ "qmk": {
+ "locking": {
+ "enabled": true,
+ "resync": true
+ }
+ },
+ "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": 4
+ },
+ "url": "https://cannonkeys.com",
+ "usb": {
+ "device_version": "0.0.1",
+ "vid": "0xCA04"
+ },
+ "ws2812": {
+ "driver": "spi",
+ "pin": "B15"
+ }
+}
diff --git a/keyboards/cannonkeys/cerberus/mcuconf.h b/keyboards/cannonkeys/cerberus/mcuconf.h
new file mode 100644
index 00000000000..32f9fbd6db8
--- /dev/null
+++ b/keyboards/cannonkeys/cerberus/mcuconf.h
@@ -0,0 +1,9 @@
+// Copyright 2024 Andrew Kannan
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include_next
+
+#undef STM32_SPI_USE_SPI2
+#define STM32_SPI_USE_SPI2 TRUE
diff --git a/keyboards/cannonkeys/cerberus/readme.md b/keyboards/cannonkeys/cerberus/readme.md
new file mode 100644
index 00000000000..848d746594d
--- /dev/null
+++ b/keyboards/cannonkeys/cerberus/readme.md
@@ -0,0 +1,28 @@
+# Cerberus Keyboard by CannonKeys
+
+This folder contains firmware for both the Solderable and Hotswap version of Cerberus
+
+The hotswap PCB does not support per-key LEDs and has reduced layout support (no ISO)
+
+* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan)
+* Hardware Supported: STM32F072CBT6
+
+Make example for this keyboard (after setting up your build environment):
+
+ make cannonkeys/cerberus/hotswap:default
+ make cannonkeys/cerberus/solderable:default
+
+Flashing example for this keyboard:
+
+ make cannonkeys/cerberus/hotswap:default:flash
+ make cannonkeys/cerberus/solderable: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**: Toggle the switch on the back of the pcb to "1" and briefly press the button on the back of the PCB
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/cannonkeys/cerberus/solderable/config.h b/keyboards/cannonkeys/cerberus/solderable/config.h
new file mode 100644
index 00000000000..9e5e637de41
--- /dev/null
+++ b/keyboards/cannonkeys/cerberus/solderable/config.h
@@ -0,0 +1,8 @@
+// Copyright 2024 Andrew Kannan
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#define BACKLIGHT_PWM_DRIVER PWMD3
+#define BACKLIGHT_PWM_CHANNEL 1
+#define BACKLIGHT_PAL_MODE 1
diff --git a/keyboards/cannonkeys/cerberus/solderable/halconf.h b/keyboards/cannonkeys/cerberus/solderable/halconf.h
new file mode 100644
index 00000000000..fc641ca42f9
--- /dev/null
+++ b/keyboards/cannonkeys/cerberus/solderable/halconf.h
@@ -0,0 +1,10 @@
+// Copyright 2024 Andrew Kannan
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+
+#pragma once
+
+#define HAL_USE_PWM TRUE
+
+#include_next
+
diff --git a/keyboards/cannonkeys/cerberus/solderable/keyboard.json b/keyboards/cannonkeys/cerberus/solderable/keyboard.json
new file mode 100644
index 00000000000..3797df38513
--- /dev/null
+++ b/keyboards/cannonkeys/cerberus/solderable/keyboard.json
@@ -0,0 +1,711 @@
+{
+ "keyboard_name": "Cerberus",
+ "backlight": {
+ "breathing": true,
+ "levels": 6,
+ "pin": "A6"
+ },
+ "features": {
+ "backlight": true
+ },
+ "indicators": {
+ "caps_lock": "F1",
+ "on_state": 0
+ },
+ "usb": {
+ "pid": "0x0031"
+ },
+ "community_layouts": ["tkl_nofrow_ansi", "tkl_nofrow_iso"],
+ "layout_aliases": {
+ "LAYOUT_all": "LAYOUT"
+ },
+ "layouts": {
+ "LAYOUT": {
+ "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": "-", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0},
+ {"label": "`", "matrix": [0, 14], "x": 14, "y": 0},
+ {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0},
+ {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0},
+ {"label": "Page Up", "matrix": [0, 17], "x": 17.25, "y": 0},
+ {"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, 14], "x": 13.5, "y": 1, "w": 1.5},
+ {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1},
+ {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1},
+ {"label": "Page Down", "matrix": [1, 17], "x": 17.25, "y": 1},
+ {"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": "#", "matrix": [2, 12], "x": 12.75, "y": 2},
+ {"label": "Enter", "matrix": [2, 14], "x": 13.75, "y": 2, "w": 1.25},
+ {"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": "Fn", "matrix": [3, 14], "x": 14, "y": 3},
+ {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3},
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"label": "GUI", "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": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+ {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+ {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+ {"label": "GUI", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
+ {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25},
+ {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4},
+ {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4},
+ {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4}
+ ]
+ },
+ "LAYOUT_tkl_nofrow_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": "#", "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": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+ {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0},
+ {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0},
+ {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0},
+ {"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, 14], "x": 13.5, "y": 1, "w": 1.5},
+ {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1},
+ {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1},
+ {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1},
+ {"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, 14], "x": 12.75, "y": 2, "w": 2.25},
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"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": 2.75},
+ {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3},
+ {"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": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+ {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+ {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+ {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
+ {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25},
+ {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4},
+ {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4},
+ {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4}
+ ]
+ },
+ "LAYOUT_tkl_nofrow_ansi_split_bs_rshift": {
+ "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": "Bksp", "matrix": [0, 13], "x": 13, "y": 0},
+ {"label": "~", "matrix": [0, 14], "x": 14, "y": 0},
+ {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0},
+ {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0},
+ {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0},
+ {"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, 14], "x": 13.5, "y": 1, "w": 1.5},
+ {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1},
+ {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1},
+ {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1},
+ {"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, 14], "x": 12.75, "y": 2, "w": 2.25},
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"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": "Fn", "matrix": [3, 14], "x": 14, "y": 3},
+ {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3},
+ {"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": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+ {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+ {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+ {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
+ {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25},
+ {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4},
+ {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4},
+ {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4}
+ ]
+ },
+ "LAYOUT_tkl_nofrow_ansi_tsangan": {
+ "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": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+ {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0},
+ {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0},
+ {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0},
+ {"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, 14], "x": 13.5, "y": 1, "w": 1.5},
+ {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1},
+ {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1},
+ {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1},
+ {"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, 14], "x": 12.75, "y": 2, "w": 2.25},
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"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": 2.75},
+ {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3},
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
+ {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7},
+ {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4},
+ {"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5},
+ {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4},
+ {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4},
+ {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4}
+ ]
+ },
+ "LAYOUT_tkl_nofrow_ansi_tsangan_split_bs_rshift": {
+ "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": "Bksp", "matrix": [0, 13], "x": 13, "y": 0},
+ {"label": "~", "matrix": [0, 14], "x": 14, "y": 0},
+ {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0},
+ {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0},
+ {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0},
+ {"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, 14], "x": 13.5, "y": 1, "w": 1.5},
+ {"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1},
+ {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1},
+ {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1},
+ {"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, 14], "x": 12.75, "y": 2, "w": 2.25},
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"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": "Fn", "matrix": [3, 14], "x": 14, "y": 3},
+ {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3},
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
+ {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7},
+ {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4},
+ {"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5},
+ {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4},
+ {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4},
+ {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4}
+ ]
+ },
+ "LAYOUT_tkl_nofrow_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": "\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": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+ {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0},
+ {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0},
+ {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0},
+ {"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": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1},
+ {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1},
+ {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1},
+ {"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": "~", "matrix": [2, 12], "x": 12.75, "y": 2},
+ {"label": "Enter", "matrix": [2, 14], "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": 2.75},
+ {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3},
+ {"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": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+ {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+ {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+ {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
+ {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25},
+ {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4},
+ {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4},
+ {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4}
+ ]
+ },
+ "LAYOUT_tkl_nofrow_iso_split_bs_rshift": {
+ "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": "Bksp", "matrix": [0, 13], "x": 13, "y": 0},
+ {"label": "\u00ac", "matrix": [0, 14], "x": 14, "y": 0},
+ {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0},
+ {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0},
+ {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0},
+ {"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": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1},
+ {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1},
+ {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1},
+ {"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": "~", "matrix": [2, 12], "x": 12.75, "y": 2},
+ {"label": "Enter", "matrix": [2, 14], "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": "Fn", "matrix": [3, 14], "x": 14, "y": 3},
+ {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3},
+ {"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": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+ {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+ {"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+ {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
+ {"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25},
+ {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4},
+ {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4},
+ {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4}
+ ]
+ },
+ "LAYOUT_tkl_nofrow_iso_tsangan": {
+ "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": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+ {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0},
+ {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0},
+ {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0},
+ {"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": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1},
+ {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1},
+ {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1},
+ {"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": "~", "matrix": [2, 12], "x": 12.75, "y": 2},
+ {"label": "Enter", "matrix": [2, 14], "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": 2.75},
+ {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3},
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
+ {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7},
+ {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4},
+ {"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5},
+ {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4},
+ {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4},
+ {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4}
+ ]
+ },
+ "LAYOUT_tkl_nofrow_iso_tsangan_split_bs_rshift": {
+ "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": "Bksp", "matrix": [0, 13], "x": 13, "y": 0},
+ {"label": "\u00ac", "matrix": [0, 14], "x": 14, "y": 0},
+ {"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0},
+ {"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0},
+ {"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0},
+ {"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": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1},
+ {"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1},
+ {"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1},
+ {"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": "~", "matrix": [2, 12], "x": 12.75, "y": 2},
+ {"label": "Enter", "matrix": [2, 14], "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": "Fn", "matrix": [3, 14], "x": 14, "y": 3},
+ {"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3},
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
+ {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7},
+ {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4},
+ {"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5},
+ {"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4},
+ {"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4},
+ {"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4}
+ ]
+ }
+ }
+}
diff --git a/keyboards/cannonkeys/cerberus/solderable/keymaps/default/keymap.c b/keyboards/cannonkeys/cerberus/solderable/keymaps/default/keymap.c
new file mode 100644
index 00000000000..782e9a138fd
--- /dev/null
+++ b/keyboards/cannonkeys/cerberus/solderable/keymaps/default/keymap.c
@@ -0,0 +1,25 @@
+// Copyright 2024 Andrew Kannan
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+enum layer_names {
+ _BASE,
+ _FN1,
+};
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BASE] = 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_BSPC, KC_GRV, KC_INS, KC_HOME, 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_DEL, KC_END, 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_NUBS, 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_UP,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [_FN1] = LAYOUT_all(
+ 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_PSCR, KC_SCRL, KC_PAUS,
+ UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, UG_SPDU, BL_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, UG_HUED, UG_SATD, UG_VALD, UG_SPDD, BL_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, UG_PREV, UG_NEXT, KC_TRNS, BL_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+};
diff --git a/keyboards/cannonkeys/cerberus/solderable/matrix_diagram.md b/keyboards/cannonkeys/cerberus/solderable/matrix_diagram.md
new file mode 100644
index 00000000000..5beb866f724
--- /dev/null
+++ b/keyboards/cannonkeys/cerberus/solderable/matrix_diagram.md
@@ -0,0 +1,24 @@
+# Matrix Diagram for Cerberus
+
+```
+ ┌───────┐
+ 2u Backspace │0D │
+ └───────┘
+┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐
+│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ │0F │0G │0H │
+├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ ┌─────┐
+│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1E │ │1F │1G │1H │ │ │
+├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ┌──┴┐2E │
+│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2E │ │2C │ │
+├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ └───┴────┘
+│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3E │ │3G │ ISO Enter
+├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ ┌───┼───┼───┐
+│40 │41 │42 │45 │4A │4B │4C │4E │ │4F │4G │4H │
+└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘
+┌────────┐ ┌──────────┐
+│30 │ 2.25u LShift 2.75u RShift │3C │
+└────────┘ └──────────┘
+┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
+│40 │41 │42 │45 │4B │4C │4E │ Tsangan/WKL
+└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
+```
diff --git a/keyboards/cannonkeys/cerberus/solderable/mcuconf.h b/keyboards/cannonkeys/cerberus/solderable/mcuconf.h
new file mode 100644
index 00000000000..931e93d66f0
--- /dev/null
+++ b/keyboards/cannonkeys/cerberus/solderable/mcuconf.h
@@ -0,0 +1,9 @@
+// Copyright 2024 Andrew Kannan
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include_next
+
+#undef STM32_PWM_USE_TIM3
+#define STM32_PWM_USE_TIM3 TRUE
diff --git a/keyboards/cannonkeys/cerberus/solderable/rules.mk b/keyboards/cannonkeys/cerberus/solderable/rules.mk
new file mode 100644
index 00000000000..0ab54aaaf71
--- /dev/null
+++ b/keyboards/cannonkeys/cerberus/solderable/rules.mk
@@ -0,0 +1,2 @@
+# Wildcard to allow APM32 MCU
+DFU_SUFFIX_ARGS = -v FFFF -p FFFF
diff --git a/keyboards/cannonkeys/chimera65/keymaps/via/keymap.c b/keyboards/cannonkeys/chimera65/keymaps/via/keymap.c
deleted file mode 100644
index 9fb6ad6f786..00000000000
--- a/keyboards/cannonkeys/chimera65/keymaps/via/keymap.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
-Copyright 2012,2013 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 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
-// entirely and just use numbers.
-#define _BASE 0
-#define _FN1 1
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_BASE] = LAYOUT_default(
- 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_DEL,
- 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUBS, KC_ENT, KC_PGUP,
- KC_LSFT, KC_NUHS, 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_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_FN1] = LAYOUT_default(
- QK_GESC, 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_TRNS,
- KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- BL_UP, BL_DOWN, BL_TOGG, 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_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS
- )
-};
diff --git a/keyboards/cannonkeys/chimera65/keymaps/via/rules.mk b/keyboards/cannonkeys/chimera65/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/chimera65/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/chimera65_hs/keymaps/via/keymap.c b/keyboards/cannonkeys/chimera65_hs/keymaps/via/keymap.c
deleted file mode 100644
index dc79aa69b5b..00000000000
--- a/keyboards/cannonkeys/chimera65_hs/keymaps/via/keymap.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-Copyright 2012,2013 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 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
-// entirely and just use numbers.
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_BASE] = LAYOUT(
- 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_INS,
- 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_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_PGUP,
- 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_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_FN1] = LAYOUT(
- QK_GESC, 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_TRNS,
- KC_TRNS, KC_TRNS, KC_UP, 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_LEFT, KC_DOWN, KC_RGHT, 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, QK_BOOT, KC_TRNS, KC_TRNS
- ),
-
- [_FN2] = LAYOUT(
- 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, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [_FN3] = LAYOUT(
- 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, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- )
-};
diff --git a/keyboards/cannonkeys/chimera65_hs/keymaps/via/rules.mk b/keyboards/cannonkeys/chimera65_hs/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/chimera65_hs/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/cloudline/keymaps/default/keymap.c b/keyboards/cannonkeys/cloudline/keymaps/default/keymap.c
index 30d97fae9bb..a850dc74342 100644
--- a/keyboards/cannonkeys/cloudline/keymaps/default/keymap.c
+++ b/keyboards/cannonkeys/cloudline/keymaps/default/keymap.c
@@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[_FN1] = LAYOUT_all(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, KC_TRNS, BL_TOGG, BL_DOWN, BL_UP,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_TOGG, UG_NEXT, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, UG_VALD, UG_VALU, KC_TRNS, BL_TOGG, BL_DOWN, BL_UP,
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_VOLU,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
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/cannonkeys/cloudline/keymaps/via/keymap.c b/keyboards/cannonkeys/cloudline/keymaps/via/keymap.c
deleted file mode 100644
index b704943f492..00000000000
--- a/keyboards/cannonkeys/cloudline/keymaps/via/keymap.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
-Copyright 2012,2013 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 QMK_KEYBOARD_H
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_BASE] = LAYOUT_all(
- 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_MPLY, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_NUBS, 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_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [_FN1] = LAYOUT_all(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, KC_TRNS, BL_TOGG, BL_DOWN, BL_UP,
- 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_VOLU,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
- 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),
-
- [_FN2] = LAYOUT_all(
- 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, 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),
-
- [_FN3] = LAYOUT_all(
- 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, 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/cannonkeys/cloudline/keymaps/via/rules.mk b/keyboards/cannonkeys/cloudline/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/cloudline/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/crin/keymaps/via/keymap.c b/keyboards/cannonkeys/crin/keymaps/via/keymap.c
deleted file mode 100644
index d53a611626d..00000000000
--- a/keyboards/cannonkeys/crin/keymaps/via/keymap.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
-Copyright 2022 Andrew Kannan
-
-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
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = 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_BSPC, KC_GRV, KC_INS, KC_HOME, 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_DEL, KC_END, 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_NUBS, 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_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_FN1] = LAYOUT_all(
- QK_BOOT, 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, 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
- ),
-
- [_FN2] = LAYOUT_all(
- 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, 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
- ),
-
- [_FN3] = LAYOUT_all(
- 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, 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/cannonkeys/crin/keymaps/via/rules.mk b/keyboards/cannonkeys/crin/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/crin/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/db60/hotswap/keyboard.json b/keyboards/cannonkeys/db60/hotswap/keyboard.json
index d272b35a0f6..dfed24c5654 100644
--- a/keyboards/cannonkeys/db60/hotswap/keyboard.json
+++ b/keyboards/cannonkeys/db60/hotswap/keyboard.json
@@ -3,7 +3,13 @@
"usb": {
"pid": "0xDB62"
},
- "community_layouts": ["60_ansi", "60_tsangan_hhkb"],
+ "community_layouts": [
+ "60_ansi",
+ "60_ansi_tsangan_split_bs_rshift"
+ ],
+ "layout_aliases": {
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
+ },
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
@@ -74,7 +80,7 @@
{"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]}
]
},
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"x": 0, "y": 0, "matrix": [0, 0]},
{"x": 1, "y": 0, "matrix": [0, 1]},
diff --git a/keyboards/cannonkeys/db60/hotswap/rules.mk b/keyboards/cannonkeys/db60/hotswap/rules.mk
new file mode 100644
index 00000000000..0ab54aaaf71
--- /dev/null
+++ b/keyboards/cannonkeys/db60/hotswap/rules.mk
@@ -0,0 +1,2 @@
+# Wildcard to allow APM32 MCU
+DFU_SUFFIX_ARGS = -v FFFF -p FFFF
diff --git a/keyboards/cannonkeys/db60/j02/keyboard.json b/keyboards/cannonkeys/db60/j02/keyboard.json
index 0778b604fff..bb693bcfc04 100644
--- a/keyboards/cannonkeys/db60/j02/keyboard.json
+++ b/keyboards/cannonkeys/db60/j02/keyboard.json
@@ -3,7 +3,14 @@
"usb": {
"pid": "0xDB60"
},
- "community_layouts": ["60_ansi", "60_tsangan_hhkb", "60_iso"],
+ "community_layouts": [
+ "60_ansi",
+ "60_ansi_tsangan_split_bs_rshift",
+ "60_iso"
+ ],
+ "layout_aliases": {
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
+ },
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
@@ -74,7 +81,7 @@
{"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]}
]
},
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"x": 0, "y": 0, "matrix": [0, 0]},
{"x": 1, "y": 0, "matrix": [0, 1]},
diff --git a/keyboards/cannonkeys/db60/j02/keymaps/iso/keymap.c b/keyboards/cannonkeys/db60/j02/keymaps/iso/keymap.c
index a0cacca0f5c..b60468314d5 100644
--- a/keyboards/cannonkeys/db60/j02/keymaps/iso/keymap.c
+++ b/keyboards/cannonkeys/db60/j02/keymaps/iso/keymap.c
@@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_FN1] = LAYOUT_60_iso(
QK_GESC, 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,
- RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_UP, _______, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_GRV, _______, _______, _______, _______, _______, _______, QK_BOOT
diff --git a/keyboards/cannonkeys/db60/j02/rules.mk b/keyboards/cannonkeys/db60/j02/rules.mk
new file mode 100644
index 00000000000..0ab54aaaf71
--- /dev/null
+++ b/keyboards/cannonkeys/db60/j02/rules.mk
@@ -0,0 +1,2 @@
+# Wildcard to allow APM32 MCU
+DFU_SUFFIX_ARGS = -v FFFF -p FFFF
diff --git a/keyboards/cannonkeys/db60/keymaps/default/keymap.c b/keyboards/cannonkeys/db60/keymaps/default/keymap.c
index 317eeab093d..8e1a9b368de 100644
--- a/keyboards/cannonkeys/db60/keymaps/default/keymap.c
+++ b/keyboards/cannonkeys/db60/keymaps/default/keymap.c
@@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_FN1] = LAYOUT_60_ansi(
QK_GESC, 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,
- RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_UP, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_GRV, _______, _______, _______, _______, _______, _______, QK_BOOT
diff --git a/keyboards/cannonkeys/db60/keymaps/tsangan/keymap.c b/keyboards/cannonkeys/db60/keymaps/tsangan/keymap.c
index d280f72d1ec..f82afc8b323 100644
--- a/keyboards/cannonkeys/db60/keymaps/tsangan/keymap.c
+++ b/keyboards/cannonkeys/db60/keymaps/tsangan/keymap.c
@@ -28,7 +28,7 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT_60_tsangan_hhkb(
+ [_BASE] = 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_BSLS, 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_LBRC, KC_RBRC, KC_BSPC,
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,
@@ -36,9 +36,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
),
- [_FN1] = LAYOUT_60_tsangan_hhkb(
+ [_FN1] = 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, _______,
- RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_UP, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, QK_BOOT
diff --git a/keyboards/cannonkeys/db60/keymaps/via/keymap.c b/keyboards/cannonkeys/db60/keymaps/via/keymap.c
deleted file mode 100644
index a2259287564..00000000000
--- a/keyboards/cannonkeys/db60/keymaps/via/keymap.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
-Copyright 2012,2013 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 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
-// entirely and just use numbers.
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = 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_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_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, KC_RSFT, MO(_FN1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL
- ),
-
- [_FN1] = LAYOUT_all(
- 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_DEL,
- RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- BL_BRTG, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- BL_UP, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, QK_BOOT
- ),
-
- [_FN2] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_FN3] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/cannonkeys/db60/keymaps/via/rules.mk b/keyboards/cannonkeys/db60/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/db60/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/db60/rev2/keyboard.json b/keyboards/cannonkeys/db60/rev2/keyboard.json
index dc45ffecd50..81fc8208d56 100644
--- a/keyboards/cannonkeys/db60/rev2/keyboard.json
+++ b/keyboards/cannonkeys/db60/rev2/keyboard.json
@@ -3,7 +3,14 @@
"usb": {
"pid": "0xDB61"
},
- "community_layouts": ["60_ansi", "60_tsangan_hhkb", "60_iso"],
+ "community_layouts": [
+ "60_ansi",
+ "60_ansi_tsangan_split_bs_rshift",
+ "60_iso"
+ ],
+ "layout_aliases": {
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
+ },
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
@@ -74,7 +81,7 @@
{"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]}
]
},
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"x": 0, "y": 0, "matrix": [0, 0]},
{"x": 1, "y": 0, "matrix": [0, 1]},
diff --git a/keyboards/cannonkeys/db60/rev2/keymaps/iso/keymap.c b/keyboards/cannonkeys/db60/rev2/keymaps/iso/keymap.c
index a0cacca0f5c..b60468314d5 100644
--- a/keyboards/cannonkeys/db60/rev2/keymaps/iso/keymap.c
+++ b/keyboards/cannonkeys/db60/rev2/keymaps/iso/keymap.c
@@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_FN1] = LAYOUT_60_iso(
QK_GESC, 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,
- RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_UP, _______, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_GRV, _______, _______, _______, _______, _______, _______, QK_BOOT
diff --git a/keyboards/cannonkeys/db60/rev2/rules.mk b/keyboards/cannonkeys/db60/rev2/rules.mk
new file mode 100644
index 00000000000..0ab54aaaf71
--- /dev/null
+++ b/keyboards/cannonkeys/db60/rev2/rules.mk
@@ -0,0 +1,2 @@
+# Wildcard to allow APM32 MCU
+DFU_SUFFIX_ARGS = -v FFFF -p FFFF
diff --git a/keyboards/cannonkeys/db60/rules.mk b/keyboards/cannonkeys/db60/rules.mk
deleted file mode 100644
index 60addd7fe72..00000000000
--- a/keyboards/cannonkeys/db60/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-# Wildcard to allow APM32 MCU
-DFU_SUFFIX_ARGS = -v FFFF -p FFFF
-
-DEFAULT_FOLDER = cannonkeys/db60/rev2
diff --git a/keyboards/cannonkeys/devastatingtkl/keymaps/default/keymap.c b/keyboards/cannonkeys/devastatingtkl/keymaps/default/keymap.c
index 64bbe8b4fa0..90683be9ebb 100644
--- a/keyboards/cannonkeys/devastatingtkl/keymaps/default/keymap.c
+++ b/keyboards/cannonkeys/devastatingtkl/keymaps/default/keymap.c
@@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[_FN1] = LAYOUT_all(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, KC_TRNS, BL_TOGG, BL_DOWN, BL_UP,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_TOGG, UG_NEXT, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, UG_VALD, UG_VALU, KC_TRNS, BL_TOGG, BL_DOWN, BL_UP,
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_VOLU,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
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/cannonkeys/devastatingtkl/keymaps/via/keymap.c b/keyboards/cannonkeys/devastatingtkl/keymaps/via/keymap.c
deleted file mode 100644
index 4551e5cc5fe..00000000000
--- a/keyboards/cannonkeys/devastatingtkl/keymaps/via/keymap.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
-Copyright 2012,2013 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 QMK_KEYBOARD_H
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_BASE] = LAYOUT_all(
- 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_MPLY, 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_BSPC, KC_INS, KC_HOME, 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_DEL, KC_END, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_FN1] = LAYOUT_all(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, KC_TRNS, BL_TOGG, BL_DOWN, BL_UP,
- 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_VOLU,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
- 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
- ),
-
- [_FN2] = LAYOUT_all(
- 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, 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
- ),
-
- [_FN3] = LAYOUT_all(
- 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, 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/cannonkeys/devastatingtkl/keymaps/via/rules.mk b/keyboards/cannonkeys/devastatingtkl/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/devastatingtkl/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/ellipse/keyboard.json b/keyboards/cannonkeys/ellipse/keyboard.json
index 2f35c453516..c7e37befbdc 100644
--- a/keyboards/cannonkeys/ellipse/keyboard.json
+++ b/keyboards/cannonkeys/ellipse/keyboard.json
@@ -37,11 +37,15 @@
"60_ansi",
"60_ansi_split_bs_rshift",
"60_ansi_tsangan",
- "60_tsangan_hhkb",
+ "60_ansi_tsangan_split_bs_rshift",
"60_iso",
"60_iso_split_bs_rshift",
- "60_iso_tsangan"
+ "60_iso_tsangan",
+ "60_iso_tsangan_split_bs_rshift"
],
+ "layout_aliases": {
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
@@ -324,7 +328,7 @@
{"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4.0, "w": 1.5}
]
},
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0.0, "y": 0.0},
{"label": "!", "matrix": [0, 1], "x": 1.0, "y": 0.0},
diff --git a/keyboards/cannonkeys/ellipse/keymaps/via/keymap.c b/keyboards/cannonkeys/ellipse/keymaps/via/keymap.c
deleted file mode 100644
index ea45b14a615..00000000000
--- a/keyboards/cannonkeys/ellipse/keymaps/via/keymap.c
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2022 Andrew Kannan (@awkannan)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = 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_MINS, KC_EQL, 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_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_BSLS, 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, MO(_FN1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_RGUI, KC_RCTL
- ),
-
- [_FN1] = LAYOUT_all(
- 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_DEL,
- _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- BL_BRTG, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- BL_UP, BL_DOWN,BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, QK_BOOT
- ),
-
- [_FN2] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_FN3] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/cannonkeys/ellipse/keymaps/via/rules.mk b/keyboards/cannonkeys/ellipse/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/ellipse/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/ellipse_hs/keyboard.json b/keyboards/cannonkeys/ellipse_hs/keyboard.json
index 098882fcc3b..da79dea27af 100644
--- a/keyboards/cannonkeys/ellipse_hs/keyboard.json
+++ b/keyboards/cannonkeys/ellipse_hs/keyboard.json
@@ -24,13 +24,14 @@
"pid": "0x0016"
},
"layout_aliases": {
- "LAYOUT_all": "LAYOUT_60_tsangan_hhkb"
+ "LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift",
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"community_layouts": [
- "60_tsangan_hhkb"
+ "60_ansi_tsangan_split_bs_rshift"
],
"layouts": {
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
diff --git a/keyboards/cannonkeys/ellipse_hs/keymaps/default/keymap.c b/keyboards/cannonkeys/ellipse_hs/keymaps/default/keymap.c
index 3d829466c36..e4e3af2dabd 100644
--- a/keyboards/cannonkeys/ellipse_hs/keymaps/default/keymap.c
+++ b/keyboards/cannonkeys/ellipse_hs/keymaps/default/keymap.c
@@ -12,7 +12,7 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT_60_tsangan_hhkb(
+ [_BASE] = 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_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_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,
@@ -20,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
),
- [_FN1] = LAYOUT_60_tsangan_hhkb(
+ [_FN1] = 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, KC_DEL,
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, QK_BOOT
),
- [_FN2] = LAYOUT_60_tsangan_hhkb(
+ [_FN2] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______
),
- [_FN3] = LAYOUT_60_tsangan_hhkb(
+ [_FN3] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
diff --git a/keyboards/cannonkeys/ellipse_hs/keymaps/via/keymap.c b/keyboards/cannonkeys/ellipse_hs/keymaps/via/keymap.c
deleted file mode 100644
index 3d829466c36..00000000000
--- a/keyboards/cannonkeys/ellipse_hs/keymaps/via/keymap.c
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2022 Andrew Kannan (@awkannan)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_BASE] = LAYOUT_60_tsangan_hhkb(
- 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_DEL,
- 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(_FN1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
- ),
-
- [_FN1] = LAYOUT_60_tsangan_hhkb(
- 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_DEL,
- _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, QK_BOOT
- ),
-
- [_FN2] = LAYOUT_60_tsangan_hhkb(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_FN3] = LAYOUT_60_tsangan_hhkb(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
- )
-
-};
diff --git a/keyboards/cannonkeys/ellipse_hs/keymaps/via/rules.mk b/keyboards/cannonkeys/ellipse_hs/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/ellipse_hs/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/gentoo/keymaps/via/keymap.c b/keyboards/cannonkeys/gentoo/keymaps/via/keymap.c
deleted file mode 100644
index f626e06728c..00000000000
--- a/keyboards/cannonkeys/gentoo/keymaps/via/keymap.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
-Copyright 2012,2013 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 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
-// entirely and just use numbers.
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_BASE] = 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_BSPC, KC_DEL, KC_HOME,
- 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_END,
- MO(1), 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_PGUP,
- 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_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_FN1] = LAYOUT_all(
- QK_BOOT, 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_PGUP, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
- ),
-
- [_FN2] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_FN3] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
-};
diff --git a/keyboards/cannonkeys/gentoo/keymaps/via/rules.mk b/keyboards/cannonkeys/gentoo/keymaps/via/rules.mk
deleted file mode 100644
index 16d33cd89fe..00000000000
--- a/keyboards/cannonkeys/gentoo/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-
diff --git a/keyboards/cannonkeys/gentoo_hs/keymaps/via/keymap.c b/keyboards/cannonkeys/gentoo_hs/keymaps/via/keymap.c
deleted file mode 100644
index a1817427ab7..00000000000
--- a/keyboards/cannonkeys/gentoo_hs/keymaps/via/keymap.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-Copyright 2012,2013 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 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
-// entirely and just use numbers.
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_BASE] = LAYOUT_65_ansi_rwkl(
- 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_INS,
- 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_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_PGUP,
- 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_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN1),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_FN1] = LAYOUT_65_ansi_rwkl(
- QK_GESC, 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_TRNS,
- KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- BL_UP, BL_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- BL_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS
- ),
-
- [_FN2] = LAYOUT_65_ansi_rwkl(
- 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, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [_FN3] = LAYOUT_65_ansi_rwkl(
- 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, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- )
-};
diff --git a/keyboards/cannonkeys/gentoo_hs/keymaps/via/rules.mk b/keyboards/cannonkeys/gentoo_hs/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/gentoo_hs/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/hoodrowg/keymaps/default/keymap.c b/keyboards/cannonkeys/hoodrowg/keymaps/default/keymap.c
index 2dee10b75d1..91d9b7b7c8a 100644
--- a/keyboards/cannonkeys/hoodrowg/keymaps/default/keymap.c
+++ b/keyboards/cannonkeys/hoodrowg/keymaps/default/keymap.c
@@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[_FN1] = LAYOUT_all(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, BL_TOGG, BL_DOWN, BL_UP,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_TOGG, UG_NEXT, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, UG_VALD, UG_VALU, BL_TOGG, BL_DOWN, BL_UP,
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_VOLU,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
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/cannonkeys/hoodrowg/keymaps/via/keymap.c b/keyboards/cannonkeys/hoodrowg/keymaps/via/keymap.c
deleted file mode 100644
index 37b0a09d789..00000000000
--- a/keyboards/cannonkeys/hoodrowg/keymaps/via/keymap.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-Copyright 2021 CannonKeys LLC
-
-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
-enum layer_names {
- _BASE,
- _FN1,
- _FN2
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_BASE] = LAYOUT_all(
- 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_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_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, KC_RSFT, KC_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_FN1] = LAYOUT_all(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, BL_TOGG, BL_DOWN, BL_UP,
- 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_VOLU,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
- 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
- ),
-
- [_FN2] = LAYOUT_all(
- 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, BL_TOGG, BL_DOWN, BL_UP,
- 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_VOLU,
- 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_MPLY, KC_MNXT, KC_VOLD,
- 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/cannonkeys/hoodrowg/keymaps/via/rules.mk b/keyboards/cannonkeys/hoodrowg/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/hoodrowg/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/instant60/keyboard.json b/keyboards/cannonkeys/instant60/keyboard.json
index 3261a82f28b..f802823709b 100644
--- a/keyboards/cannonkeys/instant60/keyboard.json
+++ b/keyboards/cannonkeys/instant60/keyboard.json
@@ -55,7 +55,13 @@
"resync": true
}
},
- "community_layouts": ["60_ansi", "60_tsangan_hhkb"],
+ "community_layouts": [
+ "60_ansi",
+ "60_ansi_tsangan_split_bs_rshift"
+ ],
+ "layout_aliases": {
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
+ },
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
@@ -126,7 +132,7 @@
{"matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
]
},
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
diff --git a/keyboards/cannonkeys/instant60/keymaps/default/keymap.c b/keyboards/cannonkeys/instant60/keymaps/default/keymap.c
index 5f92f6bb87f..4a8cb3851e3 100644
--- a/keyboards/cannonkeys/instant60/keymaps/default/keymap.c
+++ b/keyboards/cannonkeys/instant60/keymaps/default/keymap.c
@@ -39,7 +39,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_FN1] = LAYOUT_60_ansi(
QK_GESC, 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,
- RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_UP, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_GRV, _______, _______, _______, _______, _______, _______, QK_BOOT
diff --git a/keyboards/cannonkeys/instant60/keymaps/tsangan/keymap.c b/keyboards/cannonkeys/instant60/keymaps/tsangan/keymap.c
index 211e767eeca..c9e5d9ba16e 100644
--- a/keyboards/cannonkeys/instant60/keymaps/tsangan/keymap.c
+++ b/keyboards/cannonkeys/instant60/keymaps/tsangan/keymap.c
@@ -30,7 +30,7 @@ enum custom_keycodes {
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT_60_tsangan_hhkb(
+ [_BASE] = 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_BSLS, 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_LBRC, KC_RBRC, KC_BSPC,
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,
@@ -38,9 +38,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
),
- [_FN1] = LAYOUT_60_tsangan_hhkb(
+ [_FN1] = 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, _______,
- RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ UG_TOGG, UG_NEXT, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_UP, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, QK_BOOT
diff --git a/keyboards/cannonkeys/instant60/keymaps/via/keymap.c b/keyboards/cannonkeys/instant60/keymaps/via/keymap.c
deleted file mode 100644
index 8e7ae79a5a8..00000000000
--- a/keyboards/cannonkeys/instant60/keymaps/via/keymap.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
-Copyright 2012,2013 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 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
-// entirely and just use numbers.
-#define _BASE 0
-#define _FN1 1
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = 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_MINS, KC_EQL, KC_BSLS, 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_LBRC, KC_RBRC, KC_BSPC,
- 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(_FN1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL
- ),
-
- [_FN1] = LAYOUT_all(
- 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, _______,
- RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- BL_UP, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, QK_BOOT
- )
-};
diff --git a/keyboards/cannonkeys/instant60/keymaps/via/rules.mk b/keyboards/cannonkeys/instant60/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/instant60/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/instant60/keymaps/via_standard/keymap.c b/keyboards/cannonkeys/instant60/keymaps/via_standard/keymap.c
deleted file mode 100644
index 07b2a9fa0c3..00000000000
--- a/keyboards/cannonkeys/instant60/keymaps/via_standard/keymap.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
-Copyright 2012,2013 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 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
-// entirely and just use numbers.
-#define _BASE 0
-#define _FN1 1
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = 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_MINS, KC_EQL, 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_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(_FN1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL
- ),
-
- [_FN1] = LAYOUT_all(
- 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, _______,
- RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- BL_UP, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, QK_BOOT
- )
-};
diff --git a/keyboards/cannonkeys/instant60/keymaps/via_standard/rules.mk b/keyboards/cannonkeys/instant60/keymaps/via_standard/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/instant60/keymaps/via_standard/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/instant65/keymaps/default/keymap.c b/keyboards/cannonkeys/instant65/keymaps/default/keymap.c
index 96419ee9146..238776b9b46 100644
--- a/keyboards/cannonkeys/instant65/keymaps/default/keymap.c
+++ b/keyboards/cannonkeys/instant65/keymaps/default/keymap.c
@@ -37,8 +37,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[_FN1] = LAYOUT_default(
- QK_GESC, 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, RGB_TOG,
- KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD,
+ QK_GESC, 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, UG_TOGG,
+ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_NEXT,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
BL_UP, BL_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
BL_DOWN,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS
diff --git a/keyboards/cannonkeys/instant65/keymaps/via/keymap.c b/keyboards/cannonkeys/instant65/keymaps/via/keymap.c
deleted file mode 100644
index 70ec9dc966f..00000000000
--- a/keyboards/cannonkeys/instant65/keymaps/via/keymap.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-Copyright 2012,2013 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 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
-// entirely and just use numbers.
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_BASE] = LAYOUT_default(
- 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_INS,
- 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_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_PGUP,
- 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_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_FN1] = LAYOUT_default(
- QK_GESC, 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, RGB_TOG,
- KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD,
- BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- BL_UP, BL_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- BL_DOWN,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS
- ),
-
- [_FN2] = LAYOUT_default(
- 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, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [_FN3] = LAYOUT_default(
- 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, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- )
-};
diff --git a/keyboards/cannonkeys/instant65/keymaps/via/rules.mk b/keyboards/cannonkeys/instant65/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/instant65/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/iron165/keymaps/via/keymap.c b/keyboards/cannonkeys/iron165/keymaps/via/keymap.c
deleted file mode 100644
index b26d9e050fe..00000000000
--- a/keyboards/cannonkeys/iron165/keymaps/via/keymap.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-Copyright 2012,2013 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 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
-// entirely and just use numbers.
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_BASE] = LAYOUT_default(
- 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_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_DEL,
- 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_NUBS, KC_ENT, KC_PGUP,
- KC_LSFT, KC_NUHS, 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_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_FN1] = LAYOUT_default(
- QK_GESC, 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_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_VOLD, KC_VOLU, KC_MUTE, 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_MPRV, KC_MPLY, KC_MNXT, 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
- ),
-
- [_FN2] = LAYOUT_default(
- 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, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [_FN3] = LAYOUT_default(
- 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, 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/cannonkeys/iron165/keymaps/via/rules.mk b/keyboards/cannonkeys/iron165/keymaps/via/rules.mk
deleted file mode 100644
index 16d33cd89fe..00000000000
--- a/keyboards/cannonkeys/iron165/keymaps/via/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-
diff --git a/keyboards/cannonkeys/is0gr/keymaps/via/keymap.c b/keyboards/cannonkeys/is0gr/keymaps/via/keymap.c
deleted file mode 100644
index 10451984f06..00000000000
--- a/keyboards/cannonkeys/is0gr/keymaps/via/keymap.c
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright 2023 Andrew Kannan
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_ortho_1x1(
- KC_ENT
- ),
-};
-
diff --git a/keyboards/cannonkeys/is0gr/keymaps/via/rules.mk b/keyboards/cannonkeys/is0gr/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/is0gr/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/leviatan/keyboard.json b/keyboards/cannonkeys/leviatan/keyboard.json
index 7e8d6c6fdd1..c929447e89d 100644
--- a/keyboards/cannonkeys/leviatan/keyboard.json
+++ b/keyboards/cannonkeys/leviatan/keyboard.json
@@ -23,7 +23,14 @@
"diode_direction": "COL2ROW",
"processor": "STM32F072",
"bootloader": "stm32-dfu",
- "community_layouts": ["60_ansi", "60_tsangan_hhkb", "60_iso"],
+ "community_layouts": [
+ "60_ansi",
+ "60_ansi_tsangan_split_bs_rshift",
+ "60_iso"
+ ],
+ "layout_aliases": {
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
+ },
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
@@ -94,7 +101,7 @@
{"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]}
]
},
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"x": 0, "y": 0, "matrix": [0, 0]},
{"x": 1, "y": 0, "matrix": [0, 1]},
diff --git a/keyboards/cannonkeys/leviatan/keymaps/tsangan/keymap.c b/keyboards/cannonkeys/leviatan/keymaps/tsangan/keymap.c
index c735160c3d6..30d1781fe65 100644
--- a/keyboards/cannonkeys/leviatan/keymaps/tsangan/keymap.c
+++ b/keyboards/cannonkeys/leviatan/keymaps/tsangan/keymap.c
@@ -28,7 +28,7 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT_60_tsangan_hhkb(
+ [_BASE] = 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_BSLS, 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_LBRC, KC_RBRC, KC_BSPC,
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,
@@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
),
- [_FN1] = LAYOUT_60_tsangan_hhkb(
+ [_FN1] = 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, _______,
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
diff --git a/keyboards/cannonkeys/leviatan/keymaps/via/keymap.c b/keyboards/cannonkeys/leviatan/keymaps/via/keymap.c
deleted file mode 100644
index 056634dab4d..00000000000
--- a/keyboards/cannonkeys/leviatan/keymaps/via/keymap.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
-Copyright 2012,2013 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 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
-// entirely and just use numbers.
-enum layer_names {
- _BASE,
- _FN1,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = 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_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_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, KC_RSFT, MO(_FN1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL
- ),
-
- [_FN1] = LAYOUT_all(
- 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_DEL,
- _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- BL_BRTG, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- BL_UP, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, QK_BOOT
- )
-};
diff --git a/keyboards/cannonkeys/leviatan/keymaps/via/rules.mk b/keyboards/cannonkeys/leviatan/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/leviatan/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/lib/satisfaction75/satisfaction_encoder.c b/keyboards/cannonkeys/lib/satisfaction75/satisfaction_encoder.c
index aab005ebd87..7e0b82e9e7a 100644
--- a/keyboards/cannonkeys/lib/satisfaction75/satisfaction_encoder.c
+++ b/keyboards/cannonkeys/lib/satisfaction75/satisfaction_encoder.c
@@ -101,7 +101,7 @@ uint16_t handle_encoder_clockwise(void){
mapped_code = KC_MEDIA_NEXT_TRACK;
break;
case ENC_MODE_SCROLL:
- mapped_code = KC_WH_D;
+ mapped_code = QK_MOUSE_WHEEL_DOWN;
break;
#ifdef BACKLIGHT_ENABLE
case ENC_MODE_BACKLIGHT:
@@ -143,7 +143,7 @@ uint16_t handle_encoder_ccw(void){
mapped_code = KC_MEDIA_PREV_TRACK;
break;
case ENC_MODE_SCROLL:
- mapped_code = KC_WH_U;
+ mapped_code = QK_MOUSE_WHEEL_UP;
break;
#ifdef BACKLIGHT_ENABLE
case ENC_MODE_BACKLIGHT:
@@ -186,7 +186,7 @@ uint16_t handle_encoder_press(void){
mapped_code = KC_MEDIA_PLAY_PAUSE;
break;
case ENC_MODE_SCROLL:
- mapped_code = KC_BTN3;
+ mapped_code = QK_MOUSE_BUTTON_3;
break;
#ifdef BACKLIGHT_ENABLE
case ENC_MODE_BACKLIGHT:
diff --git a/keyboards/cannonkeys/link/config.h b/keyboards/cannonkeys/link/config.h
new file mode 100644
index 00000000000..c244f7a56b5
--- /dev/null
+++ b/keyboards/cannonkeys/link/config.h
@@ -0,0 +1,27 @@
+/* Copyright 2024 CannonKeys */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#pragma once
+
+/* VBUS-routed pin for upstream detection */
+#define USB_VBUS_PIN GP27
+
+#define SPLIT_HAND_PIN_LOW_IS_LEFT
+
+// Configure full duplex split comms over PIO
+#define SERIAL_USART_FULL_DUPLEX
+#define SERIAL_USART_TX_PIN GP28
+#define SERIAL_USART_RX_PIN GP29
+#define SERIAL_USART_PIN_SWAP
+
+/* 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
+
+/* I2C for OLEDs */
+#define I2C_DRIVER I2CD1
+#define I2C1_SDA_PIN GP14
+#define I2C1_SCL_PIN GP15
+
+#define OLED_DISPLAY_64X128
diff --git a/keyboards/cannonkeys/link/halconf.h b/keyboards/cannonkeys/link/halconf.h
new file mode 100644
index 00000000000..538c60c0b21
--- /dev/null
+++ b/keyboards/cannonkeys/link/halconf.h
@@ -0,0 +1,7 @@
+// Copyright 2024 Andrew Kannan
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#define HAL_USE_I2C TRUE
+#include_next
diff --git a/keyboards/cannonkeys/link/keyboard.json b/keyboards/cannonkeys/link/keyboard.json
new file mode 100644
index 00000000000..e5692cd4587
--- /dev/null
+++ b/keyboards/cannonkeys/link/keyboard.json
@@ -0,0 +1,135 @@
+{
+ "manufacturer": "CannonKeys",
+ "keyboard_name": "Link",
+ "maintainer": "awkannan",
+ "bootloader": "rp2040",
+ "bootmagic": {
+ "matrix": [0, 5]
+ },
+ "build": {
+ "debounce_type": "asym_eager_defer_pk"
+ },
+ "diode_direction": "COL2ROW",
+ "dynamic_keymap": {
+ "layer_count": 6
+ },
+ "encoder": {
+ "rotary": [
+ {"pin_a": "GP12", "pin_b": "GP13", "resolution": 2}
+ ]
+ },
+ "features": {
+ "bootmagic": true,
+ "encoder": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "oled": true
+ },
+ "matrix_pins": {
+ "cols": ["GP17", "GP18", "GP19", "GP20", "GP21", "GP24"],
+ "rows": ["GP25", "GP26", "GP16", "GP11", "GP10"]
+ },
+ "processor": "RP2040",
+ "qmk": {
+ "tap_keycode_delay": 10
+ },
+ "split": {
+ "bootmagic": {
+ "matrix": [5, 5]
+ },
+ "enabled": true,
+ "handedness": {
+ "pin": "GP8"
+ },
+ "matrix_pins": {
+ "right": {
+ "cols": ["GP16", "GP11", "GP10", "GP3", "GP2", "GP1"],
+ "rows": ["GP9", "GP0", "GP17", "GP18", "GP19"]
+ }
+ },
+ "serial": {
+ "driver": "vendor"
+ },
+ "transport": {
+ "sync": {
+ "layer_state": true,
+ "matrix_state": true,
+ "oled": true,
+ "wpm": true
+ }
+ }
+ },
+ "url": "https://cannonkeys.com/",
+ "usb": {
+ "device_version": "0.0.1",
+ "pid": "0x0038",
+ "vid": "0xCA04"
+ },
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"matrix": [0, 5], "x": 0, "y": 0},
+ {"matrix": [0, 4], "x": 1, "y": 0},
+ {"matrix": [0, 3], "x": 2, "y": 0},
+ {"matrix": [0, 2], "x": 3, "y": 0},
+ {"matrix": [0, 1], "x": 4, "y": 0},
+ {"matrix": [0, 0], "x": 5, "y": 0},
+ {"matrix": [5, 0], "x": 11, "y": 0},
+ {"matrix": [5, 1], "x": 12, "y": 0},
+ {"matrix": [5, 2], "x": 13, "y": 0},
+ {"matrix": [5, 3], "x": 14, "y": 0},
+ {"matrix": [5, 4], "x": 15, "y": 0},
+ {"matrix": [5, 5], "x": 16, "y": 0},
+ {"matrix": [1, 5], "x": 0, "y": 1},
+ {"matrix": [1, 4], "x": 1, "y": 1},
+ {"matrix": [1, 3], "x": 2, "y": 1},
+ {"matrix": [1, 2], "x": 3, "y": 1},
+ {"matrix": [1, 1], "x": 4, "y": 1},
+ {"matrix": [1, 0], "x": 5, "y": 1},
+ {"matrix": [6, 0], "x": 11, "y": 1},
+ {"matrix": [6, 1], "x": 12, "y": 1},
+ {"matrix": [6, 2], "x": 13, "y": 1},
+ {"matrix": [6, 3], "x": 14, "y": 1},
+ {"matrix": [6, 4], "x": 15, "y": 1},
+ {"matrix": [6, 5], "x": 16, "y": 1},
+ {"matrix": [2, 5], "x": 0, "y": 2},
+ {"matrix": [2, 4], "x": 1, "y": 2},
+ {"matrix": [2, 3], "x": 2, "y": 2},
+ {"matrix": [2, 2], "x": 3, "y": 2},
+ {"matrix": [2, 1], "x": 4, "y": 2},
+ {"matrix": [2, 0], "x": 5, "y": 2},
+ {"matrix": [7, 0], "x": 11, "y": 2},
+ {"matrix": [7, 1], "x": 12, "y": 2},
+ {"matrix": [7, 2], "x": 13, "y": 2},
+ {"matrix": [7, 3], "x": 14, "y": 2},
+ {"matrix": [7, 4], "x": 15, "y": 2},
+ {"matrix": [7, 5], "x": 16, "y": 2},
+ {"matrix": [3, 5], "x": 0, "y": 3},
+ {"matrix": [3, 4], "x": 1, "y": 3},
+ {"matrix": [3, 3], "x": 2, "y": 3},
+ {"matrix": [3, 2], "x": 3, "y": 3},
+ {"matrix": [3, 1], "x": 4, "y": 3},
+ {"matrix": [3, 0], "x": 5, "y": 3},
+ {"matrix": [4, 5], "x": 6, "y": 3},
+ {"matrix": [9, 5], "x": 10, "y": 3},
+ {"matrix": [8, 0], "x": 11, "y": 3},
+ {"matrix": [8, 1], "x": 12, "y": 3},
+ {"matrix": [8, 2], "x": 13, "y": 3},
+ {"matrix": [8, 3], "x": 14, "y": 3},
+ {"matrix": [8, 4], "x": 15, "y": 3},
+ {"matrix": [8, 5], "x": 16, "y": 3},
+ {"matrix": [4, 4], "x": 2, "y": 4},
+ {"matrix": [4, 3], "x": 3, "y": 4},
+ {"matrix": [4, 2], "x": 4, "y": 4},
+ {"matrix": [4, 1], "x": 5, "y": 4},
+ {"matrix": [4, 0], "x": 6, "y": 4, "h": 1.5},
+ {"matrix": [9, 0], "x": 10, "y": 4, "h": 1.5},
+ {"matrix": [9, 1], "x": 11, "y": 4},
+ {"matrix": [9, 2], "x": 12, "y": 4},
+ {"matrix": [9, 3], "x": 13, "y": 4},
+ {"matrix": [9, 4], "x": 14, "y": 4}
+ ]
+ }
+ }
+}
diff --git a/keyboards/cannonkeys/link/keymaps/default/keymap.c b/keyboards/cannonkeys/link/keymaps/default/keymap.c
new file mode 100644
index 00000000000..eba810d8682
--- /dev/null
+++ b/keyboards/cannonkeys/link/keymaps/default/keymap.c
@@ -0,0 +1,31 @@
+// Copyright 2025 Andrew Kannan (awkannan)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[0] = LAYOUT(
+ 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_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, KC_MPLY, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LGUI, KC_LALT, KC_LCTL, MO(1), KC_ENT, KC_SPC, MO(2), KC_RCTL, KC_RALT, KC_RGUI
+),
+
+[1] = LAYOUT(
+ 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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F12,
+ KC_WREF, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE,
+ KC_TRNS, KC_EQL, KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_DOT, KC_COLN, KC_BSLS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+),
+
+[2] = LAYOUT(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_INS, KC_DEL,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CAPS, KC_PGUP, KC_MPRV, KC_MNXT, KC_PSCR, 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/cannonkeys/link/link.c b/keyboards/cannonkeys/link/link.c
new file mode 100644
index 00000000000..2d0d2cb5572
--- /dev/null
+++ b/keyboards/cannonkeys/link/link.c
@@ -0,0 +1,93 @@
+// Copyright 2025 Andrew Kannan (awkannan)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "quantum.h"
+
+#ifdef OLED_ENABLE
+oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
+ if (is_keyboard_master()) {
+ return OLED_ROTATION_0;
+ } else {
+ return OLED_ROTATION_90;
+ }
+ return rotation;
+}
+
+static void render_logo(void) {
+ static const char PROGMEM qmk_logo[] = {
+ 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
+ 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
+ 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0
+ };
+ oled_write_P(qmk_logo, false);
+}
+
+void print_status_narrow(void) {
+ oled_write_P(PSTR("\n\n"), false);
+ switch (get_highest_layer(layer_state)) {
+ case 0:
+ oled_write_ln_P(PSTR("Qwrt"), false);
+ break;
+ case 1:
+ oled_write_ln_P(PSTR("Clmk"), false);
+ break;
+ default:
+ oled_write_P(PSTR("Mod\n"), false);
+ break;
+ }
+ oled_write_P(PSTR("\n\n"), false);
+ oled_write_ln_P(PSTR("LAYER"), false);
+ switch (get_highest_layer(layer_state)) {
+ case 0:
+ case 1:
+ oled_write_P(PSTR("Base\n"), false);
+ break;
+ case 2:
+ oled_write_P(PSTR("Raise"), false);
+ break;
+ case 3:
+ oled_write_P(PSTR("Lower"), false);
+ break;
+ default:
+ oled_write_ln_P(PSTR("Undef"), false);
+ }
+ oled_write_P(PSTR("\n\n"), false);
+ led_t led_usb_state = host_keyboard_led_state();
+ oled_write_ln_P(PSTR("CPSLK"), led_usb_state.caps_lock);
+}
+
+bool oled_task_kb(void) {
+ if (!oled_task_user()) {
+ return false;
+ }
+ if (is_keyboard_master()) {
+ print_status_narrow();
+ } else {
+ render_logo();
+ }
+ return true;
+}
+
+#endif
+
+#ifdef ENCODER_ENABLE
+bool encoder_update_kb(uint8_t index, bool clockwise) {
+ if (!encoder_update_user(index, clockwise)) {
+ return false;
+ }
+ if (index == 0) {
+ if (clockwise) {
+ tap_code(KC_VOLU);
+ } else {
+ tap_code(KC_VOLD);
+ }
+ } else if (index == 1) {
+ if (clockwise) {
+ tap_code(KC_PGDN);
+ } else {
+ tap_code(KC_PGUP);
+ }
+ }
+ return true;
+}
+#endif
diff --git a/keyboards/cannonkeys/link/readme.md b/keyboards/cannonkeys/link/readme.md
new file mode 100644
index 00000000000..461be861800
--- /dev/null
+++ b/keyboards/cannonkeys/link/readme.md
@@ -0,0 +1,27 @@
+# Link
+
+The Link is a Sofle58 inspired Ergo Split keyboard from CannonKeys.
+It uses 1.3" SH1107 screens and ALPS EC11 compatible encoders.
+
+* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan)
+* Hardware Supported: RP2040
+* Hardware Availability: [CannonKeys](https://cannonkeys.com)
+
+
+Make example for this keyboard (after setting up your build environment):
+
+ make cannonkeys/link:default
+
+Flashing example for this keyboard:
+
+ make cannonkeys/link: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-most and outer-most key in the matrix and plug in the keyboard
+* **Physical reset button**: Hold the "BOOTMODE" button on the back of the PCB and briefly press the "RESET" button on the back of the PCB
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/cannonkeys/malicious_ergo/keymaps/default/keymap.c b/keyboards/cannonkeys/malicious_ergo/keymaps/default/keymap.c
index 85d912760ea..c4ff37f7210 100644
--- a/keyboards/cannonkeys/malicious_ergo/keymaps/default/keymap.c
+++ b/keyboards/cannonkeys/malicious_ergo/keymaps/default/keymap.c
@@ -33,9 +33,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[_FN1] = LAYOUT_default(
- RGB_TOG, _______, 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, _______,
- RGB_MOD, _______, _______, KC_UP, _______, _______, _______, RGB_SAI, RGB_HUI, RGB_VAI, _______, _______, _______, _______, _______, _______,
- RGB_RMOD, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, RGB_SAD, RGB_HUD, RGB_VAD, _______, _______, _______, _______, _______,
+ UG_TOGG, _______, 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, _______,
+ UG_NEXT, _______, _______, KC_UP, _______, _______, _______, UG_SATU, UG_HUEU, UG_VALU, _______, _______, _______, _______, _______, _______,
+ UG_PREV, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, UG_SATD, UG_HUED, UG_VALD, _______, _______, _______, _______, _______,
_______, BL_UP, BL_DOWN, BL_TOGG, BL_BRTG, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______
)
diff --git a/keyboards/cannonkeys/malicious_ergo/keymaps/via/config.h b/keyboards/cannonkeys/malicious_ergo/keymaps/via/config.h
deleted file mode 100644
index 9a8629d439e..00000000000
--- a/keyboards/cannonkeys/malicious_ergo/keymaps/via/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-Copyright 2022 Andrew Kannan
-
-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
-
-// 2 bits for 4 layout options
-#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2
diff --git a/keyboards/cannonkeys/malicious_ergo/keymaps/via/keymap.c b/keyboards/cannonkeys/malicious_ergo/keymaps/via/keymap.c
deleted file mode 100644
index 21129dfdda4..00000000000
--- a/keyboards/cannonkeys/malicious_ergo/keymaps/via/keymap.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-Copyright 2012,2013 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 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
-// entirely and just use numbers.
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT_default(
- 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_DEL, KC_BSPC, KC_DEL,
- 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_HOME,
- 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_END,
- 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_UP,
- KC_LCTL, KC_LALT, KC_SPC, MO(_FN1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
- ),
-
- [_FN1] = LAYOUT_default(
- RGB_TOG, _______, 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, _______,
- RGB_MOD, _______, _______, KC_UP, _______, _______, _______, RGB_SAI, RGB_HUI, RGB_VAI, _______, _______, _______, _______, _______, _______,
- RGB_RMOD, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, RGB_SAD, RGB_HUD, RGB_VAD, _______, _______, _______, _______, _______,
- _______, BL_UP, BL_DOWN, BL_TOGG, BL_BRTG, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______
- ),
-
- [_FN2] = LAYOUT_default(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_FN3] = LAYOUT_default(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/cannonkeys/malicious_ergo/keymaps/via/rules.mk b/keyboards/cannonkeys/malicious_ergo/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/malicious_ergo/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/meetuppad2023/keymaps/via/keymap.c b/keyboards/cannonkeys/meetuppad2023/keymaps/via/keymap.c
deleted file mode 100644
index 8039eb260ea..00000000000
--- a/keyboards/cannonkeys/meetuppad2023/keymaps/via/keymap.c
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2023 Andrew Kannan
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-enum custom_keycodes {
- MYMACRO = QK_KB_0,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(
- MYMACRO, KC_1,
- KC_2, KC_3,
- KC_4, KC_5,
- KC_6, MO(1)
- ),
-
- [1] = LAYOUT(
- QK_BOOT, KC_7,
- KC_8, KC_9,
- KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS
- )
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case MYMACRO:
- if (record->event.pressed) {
- SEND_STRING("I went to the CannonKeys 2023 meetup and all I got was this macropad");
- }
- break;
- }
- return true;
-};
diff --git a/keyboards/cannonkeys/meetuppad2023/keymaps/via/rules.mk b/keyboards/cannonkeys/meetuppad2023/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/meetuppad2023/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/moment/keyboard.json b/keyboards/cannonkeys/moment/keyboard.json
index 4e489a7d973..4aec3c9c060 100644
--- a/keyboards/cannonkeys/moment/keyboard.json
+++ b/keyboards/cannonkeys/moment/keyboard.json
@@ -35,9 +35,13 @@
},
"community_layouts": [
"60_ansi_tsangan",
- "60_tsangan_hhkb",
- "60_iso_tsangan"
+ "60_ansi_tsangan_split_bs_rshift",
+ "60_iso_tsangan",
+ "60_iso_tsangan_split_bs_rshift"
],
+ "layout_aliases": {
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
@@ -179,7 +183,7 @@
{"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4.0, "w": 1.5}
]
},
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0.0, "y": 0.0},
{"label": "!", "matrix": [0, 1], "x": 1.0, "y": 0.0},
@@ -318,7 +322,7 @@
{"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4.0, "w": 1.5}
]
},
- "LAYOUT_60_tsangan_hhkb_iso": {
+ "LAYOUT_60_iso_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0.0, "y": 0.0},
{"label": "!", "matrix": [0, 1], "x": 1.0, "y": 0.0},
diff --git a/keyboards/cannonkeys/moment/keymaps/via/keymap.c b/keyboards/cannonkeys/moment/keymaps/via/keymap.c
deleted file mode 100644
index a72db1eda1a..00000000000
--- a/keyboards/cannonkeys/moment/keymaps/via/keymap.c
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2022 Andrew Kannan (@awkannan)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_BASE] = 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_MINS, KC_EQL, 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_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_BSLS, 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, MO(_FN1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
- ),
-
- [_FN1] = LAYOUT_all(
- 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_DEL,
- _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- BL_BRTG, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, BL_UP, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, QK_BOOT
- ),
-
- [_FN2] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_FN3] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
- )
-
-};
diff --git a/keyboards/cannonkeys/moment/keymaps/via/rules.mk b/keyboards/cannonkeys/moment/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/moment/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/moment_hs/keyboard.json b/keyboards/cannonkeys/moment_hs/keyboard.json
index c83c5e7a9d7..dc1f6503227 100644
--- a/keyboards/cannonkeys/moment_hs/keyboard.json
+++ b/keyboards/cannonkeys/moment_hs/keyboard.json
@@ -28,13 +28,14 @@
"pid": "0x0013"
},
"layout_aliases": {
- "LAYOUT_all": "LAYOUT_60_tsangan_hhkb"
+ "LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift",
+ "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"community_layouts": [
- "60_tsangan_hhkb"
+ "60_ansi_tsangan_split_bs_rshift"
],
"layouts": {
- "LAYOUT_60_tsangan_hhkb": {
+ "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
diff --git a/keyboards/cannonkeys/moment_hs/keymaps/default/keymap.c b/keyboards/cannonkeys/moment_hs/keymaps/default/keymap.c
index 3d829466c36..e4e3af2dabd 100644
--- a/keyboards/cannonkeys/moment_hs/keymaps/default/keymap.c
+++ b/keyboards/cannonkeys/moment_hs/keymaps/default/keymap.c
@@ -12,7 +12,7 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT_60_tsangan_hhkb(
+ [_BASE] = 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_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_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,
@@ -20,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
),
- [_FN1] = LAYOUT_60_tsangan_hhkb(
+ [_FN1] = 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, KC_DEL,
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, QK_BOOT
),
- [_FN2] = LAYOUT_60_tsangan_hhkb(
+ [_FN2] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______
),
- [_FN3] = LAYOUT_60_tsangan_hhkb(
+ [_FN3] = LAYOUT_60_ansi_tsangan_split_bs_rshift(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
diff --git a/keyboards/cannonkeys/moment_hs/keymaps/via/keymap.c b/keyboards/cannonkeys/moment_hs/keymaps/via/keymap.c
deleted file mode 100644
index 3d829466c36..00000000000
--- a/keyboards/cannonkeys/moment_hs/keymaps/via/keymap.c
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2022 Andrew Kannan (@awkannan)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-enum layer_names {
- _BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_BASE] = LAYOUT_60_tsangan_hhkb(
- 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_DEL,
- 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(_FN1),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
- ),
-
- [_FN1] = LAYOUT_60_tsangan_hhkb(
- 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_DEL,
- _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, QK_BOOT
- ),
-
- [_FN2] = LAYOUT_60_tsangan_hhkb(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_FN3] = LAYOUT_60_tsangan_hhkb(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
- )
-
-};
diff --git a/keyboards/cannonkeys/moment_hs/keymaps/via/rules.mk b/keyboards/cannonkeys/moment_hs/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807cb..00000000000
--- a/keyboards/cannonkeys/moment_hs/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/cannonkeys/obliterated75/keymaps/default/keymap.c b/keyboards/cannonkeys/obliterated75/keymaps/default/keymap.c
index 7f0f3e35546..3398fdd4663 100644
--- a/keyboards/cannonkeys/obliterated75/keymaps/default/keymap.c
+++ b/keyboards/cannonkeys/obliterated75/keymaps/default/keymap.c
@@ -39,8 +39,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_FN1] = LAYOUT_all(
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,
- QK_GESC, 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_TRNS, RGB_TOG,
- KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD,
+ QK_GESC, 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_TRNS, UG_TOGG,
+ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_NEXT,
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
BL_UP, BL_DOWN, BL_TOGG, 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_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS
diff --git a/keyboards/cannonkeys/obliterated75/keymaps/via/keymap.c b/keyboards/cannonkeys/obliterated75/keymaps/via/keymap.c
deleted file mode 100644
index d976ed53551..00000000000
--- a/keyboards/cannonkeys/obliterated75/keymaps/via/keymap.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
-Copyright 2012,2013 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