Files
2026-06-01 02:21:55 +01:00

6.1 KiB

QMK Breaking Changes - 2026 May 31 Changelog

Notable Changes

Deprecation Notices

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

Removal of deprecated isLeftHand (25897)

Users must migrate to is_keyboard_left() found in split_util.h instead. For example:

oled_rotation_t oled_init_user(oled_rotation_t rotation) {
-    return isLeftHand ? OLED_ROTATION_180 : OLED_ROTATION_0;
+    return is_keyboard_left() ? OLED_ROTATION_180 : OLED_ROTATION_0;
}

Removal of usb.force_nkro/FORCE_NKRO (#25262)

Unpicking the assumption that only USB can do NKRO, forcing of NKRO on every boot has been deprecated. As this setting persists, it produces unnecessary user confusion when the various NKRO keycodes (for example NK_TOGG) do not behave as expected.

The new defaults can be configured in the following ways:

:::::tabs

==== keyboard.json

{
    "host": { // [!code focus]
        "default": { // [!code focus]
            "nkro": true // [!code focus]
        } // [!code focus]
    } // [!code focus]
}

==== keymap.json

{
    "config": {
        "host": { // [!code focus]
            "default": { // [!code focus]
                "nkro": true // [!code focus]
            } // [!code focus]
        } // [!code focus]
    }
}

==== config.h

#pragma once

#define NKRO_DEFAULT_ON true // [!code focus]

:::::

Full changelist

Core:

  • Remove deprecated isLeftHand (#25897)
  • Either output Unicode or insert in Leader sequence (#25940)
  • Add resolution information to digitizer (#25958)
  • Always generate .map files. (#25961)
  • Add an mcu_reset impl for the kiibohd bootloader. (#25963)
  • VIA v13 (#26001)
  • Added PixArt PMW-3325 mouse sensor driver (#26065)
  • Update WL backing store from 16 to 32-bit for AT32 (#26066)
  • Refactor Pixel Fractal effect (#26071)
  • Minor combo code optimisation (#26073)
  • Options to constrain Speculative Hold: SPECULATIVE_HOLD_ONE_KEY and SPECULATIVE_HOLD_FLOW_TERM. (#26099)
  • Add includes for std::setw (#26153)
  • Bind gtest colour to QMKs 'COLOR' variable (#26159)
  • Print correct test names (#26160)
  • Ignore Uninteresting test warnings during test teardown (#26161)
  • Remove FORCE_NKRO (#26206)

CLI:

  • Update lint to check all keymaps within the repo (#25970)
  • Fail when a duplicate module name is detected (#26238)

Submodule updates:

  • Update ChibiOS, ChibiOS-Contrib. (#25730)
  • Revert "Update ChibiOS, ChibiOS-Contrib." (#26074)
  • ChibiOS, ChibiOS-Contrib updates (redux) (#26079)
  • Bump googletest to v1.16.0 (#26154)

Keyboards:

  • Require "url" field to not be empty (#25152)
  • Add nomis/rpi_pico_25x1 macropad (#25346)
  • Remove override of QK_{LED,RGB}_MATRIX_TOGGLE keycode (#25672)
  • Add reverse layout to SouthPad v2 (#25707)
  • Adding Handwired Bouvet Macropad (#26040)
  • Remove blockader user keymap (#26075)
  • Remove deprecated audio pin defines (#26111)
  • Remove OLED_DISPLAY_128X32 config (#26190)
  • Migrate SPLIT_OLED_ENABLE (#26194)
  • Add API version assertion for split_data_sync module (#26237)

Others:

  • Bump vitepress to 1.6.4 (#26067)
  • Add usage clarifications to docs/features/unicode.md (#26156)

Bugs:

  • Fix USER_PRINT stripping out uprintf (#25919)
  • Fix possible repeat key infinite recursion (#25926)
  • Fix cc-option on arm-none-eabi-gcc (#26114)
  • Fix color diagnostics for arm-none-eabi-gcc (#26115)
  • Mask out active mods when unregistering after retro tapping (#26127)
  • fix make test:all failures seen on macOS Tahoe (#26136)
  • Add workaround for undefined reference to weak function under mingw (#26167)
  • fix(ws2812-pwm): allow WS2812_PWM_TICK_FREQUENCY override (#26186)
  • Clip mouse report values to the logical range from the USB descriptor. (#26195)
  • Align Mouse USB descriptor (#26230)