Files
qmk_firmware/docs/ChangeLog/20260830.md
T
2026-08-31 04:28:22 +01:00

13 KiB

QMK Breaking Changes - 2026 August 30 Changelog

Notable Changes

Community Modules 1.1.3 (#26201)

Version 1.1.3 adds support for persistent data in community modules. Modules can now store and restore their own state across restarts, enabling more stateful behavior without relying on keyboard-level EEPROM handling. A reference example can be located at modules/qmk/nvm_test.

See the Community Modules documentation for more information, including the full list of available hooks.

Steno Feature Updates (#26273, #26018)

The steno feature has been reworked around a clearer integration, including a more consistent keycode naming scheme. Users should migrate old STN_* and legacy mode names to the new QK_STENO_*/ST_* naming scheme.

::: warning Keycode aliases have been put in place in most cases to cater for "old names" being mapped to "new names" -- the documentation already reflects all the new naming of keys. :::

Full list of updated keycodes
Old Keycode New Keycode Aliases
STN_FN QK_STENO_FUNCTION ST_FN
STN_N1/STN_NUM QK_STENO_N1 ST_N1/ST_NUM
STN_N2 QK_STENO_N2 ST_N2
STN_N3 QK_STENO_N3 ST_N3
STN_N4 QK_STENO_N4 ST_N4
STN_N5 QK_STENO_N5 ST_N5
STN_N6 QK_STENO_N6 ST_N6
STN_S1/STN_SL QK_STENO_S1 ST_S1/ST_SL
STN_S2 QK_STENO_S2 ST_S2
STN_TL QK_STENO_TL ST_TL
STN_KL QK_STENO_KL ST_KL
STN_PL QK_STENO_PL ST_PL
STN_WL QK_STENO_WL ST_WL
STN_HL QK_STENO_HL ST_HL
STN_RL QK_STENO_RL ST_RL
STN_A QK_STENO_A ST_A
STN_O QK_STENO_O ST_O
STN_ST1/STN_STR QK_STENO_ST1 ST_ST1/ST_STR
STN_ST2 QK_STENO_ST2 ST_ST2
STN_RE1/STN_RES1 QK_STENO_RESET1 ST_RES1/ST_RE1
STN_RE2/STN_RES2 QK_STENO_RESET2 ST_RES2/ST_RE2
STN_PWR QK_STENO_POWER ST_PWR
STN_ST3 QK_STENO_ST3 ST_ST3
STN_ST4 QK_STENO_ST4 ST_ST4
STN_E QK_STENO_E ST_E
STN_U QK_STENO_U ST_U
STN_FR QK_STENO_FR ST_FR
STN_RR QK_STENO_RR ST_RR
STN_PR QK_STENO_PR ST_PR
STN_BR QK_STENO_BR ST_BR
STN_LR QK_STENO_LR ST_LR
STN_GR QK_STENO_GR ST_GR
STN_TR QK_STENO_TR ST_TR
STN_SR QK_STENO_SR ST_SR
STN_DR QK_STENO_DR ST_DR
STN_N7 QK_STENO_N7 ST_N7
STN_N8 QK_STENO_N8 ST_N8
STN_N9 QK_STENO_N9 ST_N9
STN_NA QK_STENO_NA ST_NA
STN_NB QK_STENO_NB ST_NB
STN_NC QK_STENO_NC ST_NC
STN_ZR QK_STENO_ZR ST_ZR
STN_SL QK_STENO_S1 ST_S1
STN_STR QK_STENO_ST1 ST_ST1
STN_S3 QK_STENO_S3 ST_S3
STN_TKL QK_STENO_TKL ST_TKL
STN_PWL QK_STENO_PWL ST_PWL
STN_HRL QK_STENO_HRL ST_HRL
STN_FRR QK_STENO_FRR ST_FRR
STN_PBR QK_STENO_PBR ST_PBR
STN_LGR QK_STENO_LGR ST_LGR
STN_TSR QK_STENO_TSR ST_TSR
STN_DZR QK_STENO_DZR ST_DZR
STN_AO QK_STENO_AO ST_AO
STN_EU QK_STENO_EU ST_EU
QK_STENO_BOLT QK_STENO_MODE_BOLT ST_BOLT
QK_STENO_GEMINI QK_STENO_MODE_GEMINI ST_GEMI

Support for the Plover custom HID protocol has also been integrated. This provides an alternative to the COM port based Gemini and Bolt protocols, and extends steno support to VUSB based devices.

::: info Note A tighter integration of the Plover HID protocol into the steno feature is planned for a future release. :::

See the Stenography Feature documentation for more information.

Remove pin ordering restriction in RP2040 ps2 driver (#26256)

The RP2040 PS/2 driver no longer requires a strict clock/data pin ordering. This removes an unnecessary wiring restriction for RP2040-based keyboards and allows more valid PS/2 layouts to work without needing to match a specific pin sequence.

Restrict the EXTRAKEY_ENABLE System Control HID usage range. (#26295)

QMK now limits the default System Control HID range exposed by EXTRAKEY_ENABLE to the safe subset it actually uses. This prevents issues where some hosts to misidentify the device as a gamepad.

To widen the range to the old behavior, the following can be added to a config.h:

#define SYSTEM_CONTROL_USAGE_MINIMUM 0x0001
#define SYSTEM_CONTROL_USAGE_MAXIMUM 0x00B7

::: warning Only widen it if you need the extra usages and know your host handles them. :::

Updated Keyboard Codebases

Old Keyboard Name New Keyboard Name
ducky/one2sf/1967st ducky/one2sf/1967st/ansi

Deprecation Notices

In line with the notice period, deprecation notices for larger items are listed here.

VIA Feature Migration (#26315)

As part of long-term goal to progressively reduce the maintenance burden on the project, upkeep of the VIA integration will transition to the VIA team.

This allows the VIA team to support many more custom keyboard configurations, as well as reduces the turnaround time for any changes to the VIA protocol they wish to make.

Backwards compatibility will remain for a transition period and in a future release, the old VIA feature-based implementation is expected to be removed.

Full changelist

Core:

  • Custom plover HID report type (#26018)
  • Enable modules to persist data (#26201)
  • Preserve Azoteq mouse buttons (#26248)
  • Remove pin ordering restriction in RP2040 ps2 driver (#26256)
  • Plover HID cleanup. (#26262)
  • repeat_key.c: add implementation for get_last_record (#26263)
  • Implement Plover HID for VUSB (#26267)
  • process_key_lock: clear entire key state in cancel_key_lock() (#26269)
  • Initial rework of steno feature (#26273)
  • qp_lvgl: always signal flush ready even with no display (#26275)
  • Consistently handle datablock init (#26282)
  • Make framebuffer effects honour rgb_matrix_map_row_column_to_led (#26294)
  • Restrict the EXTRAKEY_ENABLE System Control HID usage range. (#26295)
  • Port typing_heatmap animation to LED Matrix (#26300)
  • Add _noeeprom variants of backlight enable/disable. (#26328)
  • Add STM32_USB_USE_OTG2 to USB_ENDPOINTS_ARE_REORDERABLE (#26369)
  • Change preprocessor directive for random solenoid firing (#26377)
  • Rework Plover HID to use Steno keycodes (#26421)

CLI:

  • Require --keyboard for some CLI subcommands (#26308)
  • Be lazier in loading keyboard schema for new-keyboard (#26340)

Keyboards:

  • Addition of the Ymdk Oni Tsangan/HHKB-like pcb (#25230)
  • Add converter/thinkpad_t6x/pico_t61 keyboard (#26266)
  • Add additional layouts for mkh_studio/bully (#26271)
  • Split ducky/one2sf/1967st into ansi/iso variants (#26277)
  • Automatically handle duplicate matrix LED mappings (#26278)
  • Tidy sawnsprojects/satxri6key (#26317)
  • Update satisfaction75 to only use keyboard datablock (#26320)
  • Migrate remaining VIA_EEPROM_CUSTOM_CONFIG_SIZE to EECONFIG_KB_DATA_SIZE (#26321)
  • Use core spi_init implementation for gmmk/gmmk2/p96 (#26344)
  • Convert novelkeys/nk87 to use RGB Matrix (#26349)
  • Update magic_force/mf17 to WS2812 PWM driver (#26384)
  • Keycult TKL Updates (#26385)
  • Update keyboards to implement led_update_kb instead of led_set (#26388)

Keyboard fixes:

  • Fix nifty_numpad issues (#26283)
  • Fix use of via.h (#26316)

Others:

  • Update RGB Matrix documentation to include JSON config (#26187)
  • Update encoder documents for json config (#26188)
  • Update LED Matrix documentation to include JSON config (#26425)

Bugs:

  • First pass of ruff check fixes (#26257)
  • Use memmove for overlapping copies in RGB/LED matrix last-hit tracker (#26306)
  • Fix to make Repeat Key QK_REP work with Key Overrides. (#26312)
  • Fix SEQUENCER_ENABLE so the sequencer feature builds again (#26322)
  • Fix ChibiOS virtual serial short packet receive (#26356)
  • Resolve recursive keyboard aliases when locating userspace keymaps (#26402)
  • Fix EECONFIG_MODULE_DATA_SIZE for modules with zero provisioned eeconfig (#26414)
  • Align USB endpoint buffers to fix RP2040 Plover HID issues (#26417)
  • Fix 'qmk generate-develop-pr-list' for ghapi v2 (#26428)