qmk_firmware/docs/ChangeLog/20250831.md
2025-09-06 07:07:20 +10:00

13 KiB

QMK Breaking Changes - 2025 Aug 31 Changelog

Changes Requiring User Action

Updated Keyboard Codebases

Old Keyboard Name New Keyboard Name
bastardkb/charybdis/3x5/v2/elitec bastardkb/charybdis/3x5/elitec
bastardkb/charybdis/3x5/v2/splinky_2 bastardkb/charybdis/3x5/elitec
bastardkb/charybdis/3x5/v2/splinky_3 bastardkb/charybdis/3x5/elitec
bastardkb/charybdis/3x5/v2/stemcell bastardkb/charybdis/3x5/elitec
bastardkb/charybdis/3x6/v2/elitec bastardkb/charybdis/3x6/elitec
bastardkb/charybdis/3x6/v2/splinky_2 bastardkb/charybdis/3x6/elitec
bastardkb/charybdis/3x6/v2/splinky_3 bastardkb/charybdis/3x6/elitec
bastardkb/charybdis/3x6/v2/stemcell bastardkb/charybdis/3x6/elitec
bastardkb/charybdis/4x6/v2/elitec bastardkb/charybdis/4x6/elitec
bastardkb/charybdis/4x6/v2/splinky_2 bastardkb/charybdis/4x6/elitec
bastardkb/charybdis/4x6/v2/splinky_3 bastardkb/charybdis/4x6/elitec
bastardkb/charybdis/4x6/v2/stemcell bastardkb/charybdis/4x6/elitec
bastardkb/dilemma/3x5_2/splinky bastardkb/dilemma/3x5_2/promicro
bastardkb/scylla/v2/elitec bastardkb/scylla/promicro
bastardkb/scylla/v2/splinky_2 bastardkb/scylla/promicro
bastardkb/scylla/v2/splinky_3 bastardkb/scylla/promicro
bastardkb/scylla/v2/stemcell bastardkb/scylla/promicro
bastardkb/skeletyl/v2/elitec bastardkb/skeletyl/promicro
bastardkb/skeletyl/v2/splinky_2 bastardkb/skeletyl/promicro
bastardkb/skeletyl/v2/splinky_3 bastardkb/skeletyl/promicro
bastardkb/skeletyl/v2/stemcell bastardkb/skeletyl/promicro
bastardkb/tbkmini/v2/elitec bastardkb/tbkmini/promicro
bastardkb/tbkmini/v2/splinky_2 bastardkb/tbkmini/promicro
bastardkb/tbkmini/v2/splinky_3 bastardkb/tbkmini/promicro
bastardkb/tbkmini/v2/stemcell bastardkb/tbkmini/promicro
helix/rev2 helix/beta
helix/rev3_4rows helix/rev3
helix/rev3_5rows helix/rev3
kprepublic/cstc40/daughterboard kprepublic/cstc40/rev1
kprepublic/cstc40/single_pcb kprepublic/cstc40/rev2
ll3macorn/bongopad ll3ma/bongopad
novelkeys/nk65/base novelkeys/nk65/v1
tweetydabird/lotus58/elite_c tweetydabird/lotus58
tweetydabird/lotus58/nanoboot tweetydabird/lotus58
tweetydabird/lotus58/promicro tweetydabird/lotus58
tweetydabird/lotus58/rp2040_ce tweetydabird/lotus58

Mitigate VIA keylogger security issues #25414

VIA's keyboard matrix testing functionality, which allows users to identify active key presses, has been identified as a potential security concern by community members and security researchers. This feature has been demonstrated to enable unauthorized keystroke capture, with documented examples showing how malicious scripts could exploit this capability to create keyloggers. A recent security assessment revealed that user credentials could be compromised by exploiting the matrix testing function combined with VIA's keycode assignment queries. In this attack scenario, a script could remain active during a locked session and capture password input when users authenticate upon return.

The QMK team notified the VIA team of this security vulnerability on May 17, 2022, and made multiple subsequent attempts to coordinate a mitigation strategy. Despite repeated outreach, the VIA team has provided no acknowledgment or response to these security concerns. Given the severity of the potential security implications and the lack of engagement from the VIA team, the QMK team has unilaterally implemented a security enhancement that modifies the keyboard matrix testing functionality to prevent the reporting of key press events. This change prioritizes user security and data protection over potential feature compatibility concerns within VIA.

Deprecation Notices

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

DEFAULT_FOLDER removal (#23281)

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 as a configuration file, the build system now has a consistent method to detect build targets. The DEFAULT_FOLDER functionality is now removed with the intent that rules.mk is now pure configuration.

Backwards compatibility of build targets has been maintained where possible.

Converter Pin Compatible updates (#20330)

Converter support has been further limited to only function if a keyboard declares that it is compatible.

This can be configured in the following ways:

:::::tabs

==== keyboard.json

{
    "development_board": "promicro", // [!code focus]
}

==== rules.mk

PIN_COMPATIBLE = promicro

:::::

see the Converters Feature documentation for more information.

Removal of deprecated RGB and Mouse keycodes (#25444)

Backwards compatibility of deprecated RGB and Mouse keycodes has been removed.

See the following documentation for the list of currently supported keycodes:

Full changelist

Core:

  • Remove converter assumption that everything is a promicro (#20330)
  • Remove DEFAULT_FOLDER handling (#23281)
  • Add core handling for pointing device failures. (#25315)
  • Relocate remaining process_record_quantum keycodes (#25328)
  • Remove process_action_kb callback (#25331)
  • Add {rgb|led}_matrix_get_mode_name(). (#25344)
  • Align sleep_led logic (#25395)
  • Mitigate VIA keylogger security issues (#25414)
  • Deprecate some nonstandard mod & mod-tap keycode aliases (#25437)
  • Refactor Starlight Smooth matrix effect (#25442)
  • Remove deprecated RGB_ and Mouse keycodes (#25444)
  • Configure SPI for QMK_PM2040 board (#25481)
  • Configure SPI for STEMCELL board (#25486)
  • Configure SPI for QMK_BLOK board (#25487)
  • Clamp reactive offset value (#25489)
  • Relocate AUDIO_INIT_DELAY implementation (#25491)
  • Add MATRIX_ROWS_PER_HAND definition (#25513)
  • Refactor battery driver (#25550)
  • Add cachyos as pattern when installing dependencies (#25580)

CLI:

  • Add MATRIX_MASKED DD config (#25383)
  • Ensure keyboard aliases do not point to themselves (#25500)

Keyboards:

  • [Update] E8ghtyNeo caps indicator (#25009)
  • Keychron C3 Pro c3_pro.c corrections (#25049)
  • Update franky36 pid and vid (#25160)
  • Added Encoder support for Soyuz (#25279)
  • CSTC40 rev3 (FXTWINK) (#25285)
  • Migrate remaining DEFAULT_FOLDER to keyboard aliases (#25291)
  • Configure boards to use development_board - R (#25316)
  • Configure boards to use development_board - P (#25317)
  • Configure boards to use development_board - NO (#25338)
  • Configure boards to use development_board - LM (#25341)
  • maple_computing/launchpad - Remove broken default_rgb keymap (#25342)
  • update winry25 VID and PID (#25351)
  • Configure boards to use development_board - DE (#25369)
  • Configure boards to use development_board - FGHIJ (#25370)
  • refactor(mercutio): layouts & reformatting (#25408)
  • Configure boards to use development_board - ABC (#25417)
  • Configure boards to use development_board - K (#25421)
  • Refactor helix/pico (#25428)
  • Refactor helix/rev2 (#25429)
  • Refactor helix/rev3_{4,5}rows (#25430)
  • Migrate helix common configuration (#25433)
  • Refactor bastardkb/tbkmini (#25438)
  • Convert novelkeys/nk65 to use RGB Matrix (#25450)
  • Convert moon to lite custom matrix (#25452)
  • Refactor bastardkb/skeletyl (#25456)
  • Refactor bastardkb/scylla (#25459)
  • Refactor bastardkb/dilemma/3x5_2 (#25462)
  • Migrate usb.force_nkro to host.default.nkro (#25468)
  • Give mouse report to pointing_device_task_user first in ploopyco devices (#25475)
  • Refactor bastardkb/charybdis/3x5 (#25488)
  • Refactor bastardkb/charybdis/3x6 (#25493)
  • Refactor bastardkb/charybdis/4x6 (#25494)
  • Rebrand For Ll3ma Keyboards (#25498)
  • Remove some encoder resolution that duplicate defaults (#25517)
  • Remove overriding of DF() within keyboards (#25541)
  • Refactor inland/kb83 (#25542)
  • Refactor tweetydabird/lotus58 (#25547)
  • Swap spleeb to default GENERIC_PROMICRO_RP2040 board files (#25564)

Keyboard fixes:

  • Fix keebio/quefrency/rev1:default60 (#25423)
  • Fixup bastardkb/tbkmini keymap's build target (#25458)
  • Miscellaneous fixes for lint warnings (#25469)
  • Fix pytest/has_community default keymap location (#25471)
  • Fix serial speed DD configuration & migrate keyboards (#25546)
  • Update rgb x coordinate of rightmost column (#25556)

Bugs:

  • Fix buggy switch statement in quantum.c (#25322)
  • Compilation fixes for -fno-common (#25436)
  • Only userspace should be searched for keyboard aliases when locating keymaps (#25477)
  • Allow qmk flash <filename> to flash AT32 boards (#25497)