mirror of
https://github.com/qmk/qmk_firmware
synced 2024-12-22 08:26:21 +00:00
Merge branch 'develop'
This commit is contained in:
commit
9f76541b29
2
Doxyfile
2
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 = *
|
||||
|
@ -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 \
|
||||
|
@ -186,7 +186,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)
|
||||
|
@ -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
|
||||
@ -310,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)
|
||||
@ -460,12 +457,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
|
||||
@ -568,10 +569,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
|
||||
@ -881,7 +878,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
|
||||
@ -936,7 +933,7 @@ ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes)
|
||||
|
||||
OPT_DEFS += -DWS2812_$(strip $(shell echo $(WS2812_DRIVER) | tr '[:lower:]' '[:upper:]'))
|
||||
|
||||
SRC += ws2812_$(strip $(WS2812_DRIVER)).c
|
||||
SRC += ws2812.c ws2812_$(strip $(WS2812_DRIVER)).c
|
||||
|
||||
ifeq ($(strip $(PLATFORM)), CHIBIOS)
|
||||
ifeq ($(strip $(WS2812_DRIVER)), pwm)
|
||||
|
@ -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
|
||||
|
||||
|
@ -36,6 +36,7 @@ GENERIC_FEATURES = \
|
||||
HAPTIC \
|
||||
KEY_LOCK \
|
||||
KEY_OVERRIDE \
|
||||
LAYER_LOCK \
|
||||
LEADER \
|
||||
MAGIC \
|
||||
MOUSEKEY \
|
||||
|
@ -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 \
|
||||
|
@ -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"
|
||||
]
|
||||
},
|
||||
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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"
|
||||
]
|
||||
},
|
||||
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
7
data/constants/keycodes/keycodes_0.0.6.hjson
Normal file
7
data/constants/keycodes/keycodes_0.0.6.hjson
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"ranges": {
|
||||
"0x52E0/0x001F": {
|
||||
"define": "QK_PERSISTENT_DEF_LAYER"
|
||||
}
|
||||
}
|
||||
}
|
115
data/constants/keycodes/keycodes_0.0.6_connection.hjson
Normal file
115
data/constants/keycodes/keycodes_0.0.6_connection.hjson
Normal file
@ -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"
|
||||
]
|
||||
},
|
||||
}
|
||||
}
|
14
data/constants/keycodes/keycodes_0.0.6_quantum.hjson
Normal file
14
data/constants/keycodes/keycodes_0.0.6_quantum.hjson
Normal file
@ -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"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
@ -84,6 +84,11 @@
|
||||
"board": "STEMCELL",
|
||||
"bootloader": "tinyuf2",
|
||||
"processor": "STM32F411"
|
||||
},
|
||||
"svlinky": {
|
||||
"board": "QMK_PM2040",
|
||||
"bootloader": "rp2040",
|
||||
"processor": "RP2040"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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"},
|
||||
|
@ -1365,6 +1365,12 @@
|
||||
"runner3680/5x8": {
|
||||
"target": "omkbd/runner3680/5x8"
|
||||
},
|
||||
"saevus/cor": {
|
||||
"target": "concreteflowers/cor"
|
||||
},
|
||||
"saevus/cor_tkl": {
|
||||
"target": "concreteflowers/cor_tkl"
|
||||
},
|
||||
"scarletbandana": {
|
||||
"target": "woodkeys/scarletbandana"
|
||||
},
|
||||
|
@ -45,7 +45,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 +92,7 @@
|
||||
"GD32VF103",
|
||||
"WB32F3G71",
|
||||
"WB32FQ95",
|
||||
"AT32F415",
|
||||
"atmega16u2",
|
||||
"atmega32u2",
|
||||
"atmega16u4",
|
||||
@ -216,6 +217,7 @@
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"apm32-dfu",
|
||||
"at32-dfu",
|
||||
"atmel-dfu",
|
||||
"bootloadhid",
|
||||
"caterina",
|
||||
@ -373,6 +375,12 @@
|
||||
}
|
||||
},
|
||||
"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"}
|
||||
|
@ -72,10 +72,5 @@
|
||||
"notes": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"keyboard",
|
||||
"layout",
|
||||
"layers"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
122
docs/ChangeLog/20241124.md
Normal file
122
docs/ChangeLog/20241124.md
Normal file
@ -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))
|
@ -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",
|
||||
|
@ -123,6 +123,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,7 +167,6 @@
|
||||
]
|
||||
},
|
||||
{ "text": "Audio", "link": "/features/audio" },
|
||||
{ "text": "Bluetooth", "link": "/features/bluetooth" },
|
||||
{ "text": "Bootmagic", "link": "/features/bootmagic" },
|
||||
{ "text": "Converters", "link": "/feature_converters" },
|
||||
{ "text": "Custom Matrix", "link": "/custom_matrix" },
|
||||
@ -179,7 +179,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 +205,7 @@
|
||||
{ "text": "My Pull Request Was Flagged", "link": "/breaking_changes_instructions" },
|
||||
{
|
||||
"text": "Most Recent ChangeLog",
|
||||
"link": "/ChangeLog/20240825"
|
||||
"link": "/ChangeLog/20241124"
|
||||
},
|
||||
{ "text": "Past Breaking Changes", "link": "/breaking_changes_history" },
|
||||
{ "text": "Deprecation Policy", "link": "/support_deprecation_policy" }
|
||||
|
@ -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 Nov 24](ChangeLog/20241124)
|
||||
* [2024 Aug 25](ChangeLog/20240825)
|
||||
* [2024 May 26](ChangeLog/20240526)
|
||||
* [2024 Feb 25](ChangeLog/20240225)
|
||||
* [Older Breaking Changes](breaking_changes_history)
|
||||
|
||||
## When is the next Breaking Change?
|
||||
|
||||
The next Breaking Change is scheduled for November 24, 2024.
|
||||
The next Breaking Change is scheduled for February 23, 2025.
|
||||
|
||||
### Important Dates
|
||||
|
||||
* 2024 Aug 25 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions.
|
||||
* 2024 Oct 27 - `develop` closed to new PRs.
|
||||
* 2024 Oct 27 - Call for testers.
|
||||
* 2024 Nov 10 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes
|
||||
* 2024 Nov 17 - `develop` is locked, only critical bugfix PRs merged.
|
||||
* 2024 Nov 22 - `master` is locked, no PRs merged.
|
||||
* 2024 Nov 24 - Merge `develop` to `master`.
|
||||
* 2024 Nov 24 - `master` is unlocked. PRs can be merged again.
|
||||
* 2024 Nov 24 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions.
|
||||
* 2025 Jan 26 - `develop` closed to new PRs.
|
||||
* 2025 Jan 26 - Call for testers.
|
||||
* 2025 Feb 9 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes
|
||||
* 2025 Feb 16 - `develop` is locked, only critical bugfix PRs merged.
|
||||
* 2024 Nov 21 - `master` is locked, no PRs merged.
|
||||
* 2025 Feb 23 - Merge `develop` to `master`.
|
||||
* 2025 Feb 23 - `master` is unlocked. PRs can be merged again.
|
||||
|
||||
## What changes will be included?
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
This page links to all previous changelogs from the QMK Breaking Changes process.
|
||||
|
||||
* [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
|
||||
|
@ -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**:
|
||||
|
@ -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
|
||||
|
@ -426,8 +426,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`
|
||||
|
@ -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 |
|
||||
|
@ -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 |
|
||||
|
@ -252,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.
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user