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 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, deprecation notices for larger items are listed here.
RGB Keycode Overhaul (#23679, #24484, #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)
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)
- Add LD7032 support to QP. (#20828)
- Add combo key repress feature (#22858)
- Add Layer Lock feature (#23430)
- Added MCU support for ArteryTek AT32F415 (#23445)
- Allow codegen of
keymap.json
=>keymap.c
without requiring layers/layout etc. (#23451) - Separate RGBLight/RGB Matrix keycode handling (#23679)
- Allow for inverted SPI CS logic (#23699)
- Add timer_save and _restore functions. (#23887)
- Allow for
get_hardware_id()
to be used for serial number. (#24053) - Segregrate keycode at pre-process record quantum (#24194)
- Add ability to poweroff ADNS5050 sensor (#24223)
- quantum: util: add bit and bitmask helpers (#24229)
- Add new connection keycodes for Bluetooth, 2.4GHz. (#24251)
usb_device_state
: consolidate usb state handling across implementations (#24258)- Remove global k_rgb_matrix_split (#24348)
- util: uf2families: sync with upstream (#24351)
- [Maintenance] builddefs: common_rules: overhaul debug information generation (#24352)
- Add easier way to set default single layer (#24376)
- Tweak OS detect, add OS_DETECTION_SINGLE_REPORT (#24379)
- Reinstate global
k_rgb_matrix_split
(#24388) - Bring supported STM32F4 configs in line with F4x1 (#24413)
- Extended wheel reports (#24422)
- Remove binary blobs from optical sensors. (#24428)
- Remove
STM32_PWM_USE_ADVANCED
references (#24432) - Remove
RING_BUFFERED_6KRO_REPORT_ENABLE
due to disuse. (#24433) - Move pointing device driver code (#24445)
- Add svlinky converter (#24449)
- Update combo user function variable (#24467)
qmk find
: expand operator support (#24468)- Rename RGB and HSV structs (#24471)
- RGBLight: Improve RGB Test animation (#24477)
- Change default ARM hardware PWM WS2812 tick frequency to 800kHz (#24508)
- Add pointing tests (#24513)
- Joystick: add support for 8-way hat switch (#24515)
- Refactor Riverflow matrix effect with runner (#24520)
- Update Pixel Rain to respect LED range limits (#24532)
- Update Jellybean Raindrops to respect LED range limits (#24534)
- Refactor Breathing effect with runner (#24535)
- Refactor LED Breathing effect with runner (#24540)
- Expose rgb_matrix_update_pwm_buffers to be available in keymaps (#24573)
- Simple Python script to show polling rate (#24622)
- Add keycode PDF(layer) to set the default layer in EEPROM (#24630)
- Provide method to save a single default layer in the full range of 0-31 (#24639)
CLI:
- Refactor painter arguments to table instead of commandline (#24456)
qmk new-keyboard
: separate dev board and MCU selection (#24548)- Bump minimum required Python version (#24554)
Submodule updates:
- Remove
arm_atsam
platform (#24337)
Keyboards:
- add ergodox Community Layout for LAYOUT_ergodox keyboards (#22963)
- Cutie Club Fidelity Layout Additions (#23838)
- Add Ploopyco functions for host state control (#23953)
- Corne rev4 (#24084)
- Rename saevus to concreteflowers (#24249)
- Remove
60_tsangan_hhkb
community layout (#24355) - add USART configuration to config.h for PS/2 mouse support (#24398)
- Add SteelSeries Prime+ mouse (#24408)
- Rename RGB/HSV structs: keyboard-level code (#24476)
- xiudi/xd002: Remove broken oversized
multilayer_rgb
keymap (#24480) - Update keycodes for keyboards with RGB Matrix (#24484)
- Cipulot Updates (#24539)
- Update keymaps to use PDF keycode (#24633)
- Remove keyboard use of eeconfig_read_default_layer (#24635)
Keyboard fixes:
- Fix rendering of
keymap_config.no_gui
withinled_update_kb
(#24473) - Fix duplication of core
GU_TOGG
keycode (#24474) - keebio/nyquist: Remove invalid I2C config (#24479)
- horrortroll/nyx/rev1: Fix compilation of custom RGB effect (#24481)
Others:
- Improve consistency of syntax within
data/constants/keycodes
(#24528)
Bugs: