import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js"; const __pageData = JSON.parse('{"title":"QMK Breaking Changes - 2024 August 25 Changelog","description":"","frontmatter":{},"headers":[],"relativePath":"ChangeLog/20240825.md","filePath":"ChangeLog/20240825.md","lastUpdated":null}'); const _sfc_main = { name: "ChangeLog/20240825.md" }; const _hoisted_1 = /* @__PURE__ */ createStaticVNode('
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 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 repository.
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 |
---|---|
dnworks/9973 | dnworks/tkl87 |
maple_computing/lets_split_eh/eh | maple_computing/lets_split_eh |
planck/ez/base | zsa/planck_ez/base |
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.
keymap.c
signature change (#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):
const key_override_t **key_overrides = (const key_override_t *[]){\n &my_override_1,\n &my_override_2,\n NULL\n};
to:
const key_override_t *key_overrides[] = {\n &my_override_1,\n &my_override_2,\n};
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 |
Note
If no issues arise during this current breaking changes cycle, these sensor firmware ROMs will be removed from QMK entirely.
In line with the notice period, deprecation notices for larger items are listed here.
Last breaking changes cycle, the QMK team informed that via
keymaps are moving 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 repository.
Any existing or newly-opened PRs against qmk_firmware
will now be asked to remove any via
-enabled keymaps from their submissions.
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.
Core:
led_set_user
(#23979)get_hardware_id()
. (#24051)CLI:
Keyboards:
tbk
(#23818)led_update_kb
implementations to DD (#23980)led_update_kb
implementations to DD (#23981)led_update_kb
implementations to DD (#23983)led_update_kb
implementations to DD (#23985)atreus
: misc cleanups (#24010)eeconfig_init_kb
implementations to config (#24087)RGB_MATRIX_LED_COUNT
s (#24133)hs60/v1
: separate into ANSI and ISO revisions (#24136)SERIAL_USART_TX_PIN
to DD (#24143)matrix_scan_kb
(#24200)#include "../default/keymap.c"
. (#24215)QK_BOOT
implementations (#24231)handwired/pytest/has_template
(#24232)via
. (#24322)Keyboard fixes:
CONVERT_TO
at keyboard level (#23857)handwired/swiftrax/bumblebee
: fix layout name (#24064)housekeeping_task_user
(#24201)handwired/dactyl_minidox
(#24253)Others:
Bugs:
', 46); const _hoisted_47 = [ _hoisted_1 ]; function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { return openBlock(), createElementBlock("div", null, _hoisted_47); } const _20240825 = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]); export { __pageData, _20240825 as default };