zmk/CHANGELOG.md

24 KiB

Changelog

0.4.0 (2025-12-24)

⚠ BREAKING CHANGES

Features

  • Add double tap to enter bootloader functionality (c06fa48)
  • Allow layer behaviors to "lock" layers on (https://github.com/zmkfirmware/zmk/pull/2717) (5138c6f)
  • behaviors: Add retention boot mode to reset. (c06fa48)
  • ble: Use appearance set in the BT_DEVICE_APPEARANCE config (#3115) (ad7fbfe)
  • boards/shields: Add settings for Rpi Pico and add tester_rpi_pico shield (#2900) (ccf20a1)
  • boards: add support for nrf52840dongle_nrf52840 (#3011) (c7fae18)
  • core: (Optionally) use Zephyr keyboard input devices (c06fa48)
  • core: mapper for magic bootloader values. (c06fa48)
  • display: Add thread name to dedicated display queue. (c06fa48)
  • docs: Update New Behavior Guide (#3107) (e34793e)
  • layouts: Add physical layout for Redox shield (61de01a)
  • Move to zephyr v4.1 (#3060) (c06fa48)
  • pointing: Handle INPUT_BTN_TOUCH codes for mouse buttons (c06fa48)
  • split: Add HID indicators and physical layout set to Wired split (#3103) (7738924)

Bug Fixes

  • Add "optional" folder to .gitignore (#3141) (c099041)
  • behaviors: correctly handle sensor rotation remainder (#3084) (958fa78)
  • boards: Add xiao_ble sd_partition label for nosd snippet compat (c06fa48)
  • boards: Remove nano overlays for old nice_nano_v2 board ID. (c06fa48)
  • boards: Remove some references to old nice_nano_v2 board ID. (c06fa48)
  • boards: Retore bootloader support on XIAO BLE. (c06fa48)
  • ci: disable nrf5340dk from being built in our CI (#3066) (522971f)
  • ci: Fix release please template bump (#3021) (f3233c1)
  • ci: Prevent slash characters in artifact names. (c06fa48)
  • core: Don't force CBPRINTF_NANO, for proper formatting. (c06fa48)
  • core: Generate correct keymap layer names for all builds (#3047) (0b5a103), closes #3045
  • core: Set a system work queue stack size of 2048 by default (c06fa48)
  • Disable Nordic dt-bindings header checks. (c06fa48)
  • display: Adjust stack sizes for display usage. (c06fa48)
  • display: Fix setting the small font for the mono theme. (c06fa48)
  • display: port nice!view display code (c06fa48)
  • docs: Tweak layer tap example to be clearer (#3023) (919bce7)
  • Don't enable ZMK Display by default for a few shields (c06fa48)
  • Fix redundant const warning (#3139) (8987f39)
  • pointing: Refactor for changes to input API (c06fa48)
  • Refactor for new Zephyr PM API (c06fa48)
  • Remove usage of renamed Kconfig from core coverage. (c06fa48)
  • sensors: Initialize sensor data to 0 before fetching. (c06fa48)
  • split: int to pointer cast in bas proxy (#3105) (ece2ce1)
  • split: Properly return from command handler (#3120) (d32ffb0)
  • studio: Correct memset usage. (c06fa48)
  • studio: Correct usage of thread analyzer API (c06fa48)
  • studio: Properly serialize GATT RPC indications. (c06fa48)
  • tests: Fix BLE test to account for Zephyr changes (c06fa48)
  • underglow: Remove use of removed Kconfig WS2812 symbol (c06fa48)
  • usb: Adjust Kconfig settings for USB. (c06fa48)
  • usb: Prevent unexpected USB disconnection caused by USB SOF (#3070) (118359c)

Documentation

  • Added documentation note on locking layers (5138c6f)

Code Refactoring

0.3.0 (2025-08-01)

Features

  • ble: Add function to get profile address by index (#2992) (9e905d6)
  • ci: Add stale GitHub Action to automatically close stale PRs (#2924) (6d7bbc8)
  • display: nice!view individual profile status (#2265) (d09087f)
  • Full-Duplex Wired Split (#2766) (147c340)
  • metadata: Add metadata to the mouse_key_press behavior (#2950) (239baa4)
  • pointing: Allow peripheral input processing to stop propagation (#2844) (462d48b)
  • shield: Add underglow for reviung5 (#2191) (ad6a181)
  • shields: Add a physical layout for a_dux (#3000) (7292df0)
  • shields: Add physical layouts for tester_xiao and tester_pro_micro (#2852) (eb170c9)
  • shields: Add tester_pro_micro layouts (eb170c9)
  • shields: Add tester_xiao layouts (eb170c9)
  • split: Add full-duplex wired split support (147c340)
  • split: Runtime selection of split transport (6b44d33)
  • split: Runtime selection of split transport (#2886) (6b44d33)
  • split: Suspend/resume wired UART devices. (6b44d33)

Bug Fixes

  • behaviors: Correct macro release state for parametrized (1bac680)
  • behaviors: Correct macro release state for parametrized macros (#2942) (1bac680)
  • ble,hid: Fix smooth scrolling over BLE (#2998) (342d838), closes #2957
  • boards: Disable high voltage DC-DC by default (#2995) (8059e67), closes #2990
  • changed shebang to make scripts more platform independent (#2893) (84772eb)
  • ci: pin tj-actions/changed-files due to compromise (#2874) (4da89bd)
  • combos: Properly clean up all old candidates. (#2928) (e3030bf)
  • combos: Restore prompts for two deprecated Kconfigs (#2926) (00ff486)
  • core: Correctly sync BAS battery level (#2977) (af96766)
  • display: Make stock battery widget depend on the right symbol (#2953) (9da5d3b)
  • docs: Fix soft off waker configuration example (#2960) (eb99b4e)
  • docs: remove title as alt text (#2922) (d9576c5)
  • Fix build with Studio and USB but not UART (#2996) (cef7af4)
  • hid: Fix scroll value truncation (#2865) (2c0e7da), closes #2864
  • pointing: Avoids mutex leak for default layer toggle event (#2934) (461f5c8)
  • Properly override stack size on RP2040 (147c340)
  • split: add source to battery event (#2901) (6f85f48)
  • split: Compile and run properly in wired polling mode. (#3012) (2ae5185)
  • split: Conditionally build all split code (#2884) (5bb39ec)
  • split: Enable wired split by default if DTS is set (#3010) (1530ae3)
  • split: Minor wired split fixes. (6b44d33)
  • Unconditionally define HID payloads to avoid error. (6b44d33)

0.2.1 (2025-03-02)

Bug Fixes

  • behaviors: Proper comma separated device list (#2850) (f20e6ea)

0.2.0 (2025-03-01)

Features

  • Added toggle-mode, allowing toggle-on and toggle-off (#2555) (4ef231f)
  • added toggle mode to key and layer toggles (4ef231f)
  • boards: Update for mikoto board definition (#1946) (b26058b)
  • core: Make physical layout key rotation optional (#2770) (c367d8f)
  • display: Add ability to set display on/off pin. (#2814) (627e6db)
  • display: Add config for display update period (#2819) (aa3e5dd)
  • input processor behavior invocation (#2714) (cb867f9)
  • Kconfig: Allow overriding ZMK Kconfig defaults (#2537) (40925d4)
  • mouse: Add mouse move and scroll support (#2477) (6b40bfd)
  • pointing: Add behavior input processor (cb867f9)
  • pointing: Add pre-defined scroll scaler (0f7c112)
  • pointing: Add pre-defined scroll scaler and mouse scroll tests (#2759) (0f7c112)
  • shields: Add physical layout for Lotus58 (#2753) (424e532)
  • studio: Add ortho_4x10 grid layout (#2651) (7e8c542)

Bug Fixes

  • allow kscan-composite to wake up device. (#2682) (a8f5ab6)
  • behaviors: Make multiple sticky keys work on same key position (7186528)
  • behaviors: Make multiple sticky keys work on same key position (#2758) (7186528)
  • ble: enforce maximum length for dynamic device name (#2784) (ea267b0)
  • combos: Properly report combos len with emply block (#2739) (f0a77b8)
  • display: Only default mono theme when 1bpp (#2804) (425256b)
  • display: POSIX lvgl fixes (#2812) (4b4a8a3)
  • drivers: Proper static/const for data/config (#2769) (6941abc)
  • Fix warnings in nanopb encoding code (#2643) (7013158)
  • Kconfig refactor now works correctly with external modules (#2711) (bb48661)
  • Kconfig: Added a name to EC11's trigger mode choice (40925d4)
  • kscan: Remove warning when keyboard is built without CONFIG_PM_DEVICE (#2808) (8e065d5)
  • pointing: Complete header rename missed in refactor (#2702) (84baf92)
  • pointing: Temp layer threading protection. (#2729) (1e3e62c)
  • studio: Allow adding layers after a layer move (#2748) (36508c2)
  • studio: Properly return complete keymap from RPC (#2696) (0820991)

0.1.0 (2024-11-29)

Features

  • boards: Add glove80 nexus node for extension GPIO. (#2594) (fb359f5)
  • boards: add nrf52833-nosd snippet (63af296)
  • boards: add nrf52840-nosd snippet (4438b7b)
  • ci: Add release-please automation with VERSION (#2622) (ffa485c)
  • drivers: Support init high/low in 595 driver (888c0d9)

Bug Fixes

  • boards: Disable uart serial node in Xiao BLE by default (#2672) (230b860)
  • boards: Fix typo in BT75 metadata (c9553c3)
  • Disable display feature for settings_reset (b0f5789)
  • Fix inconsistent column offset property (c7473fc)
  • include a header file for RC macros (#2649) (f8eff2f)
  • studio: Improved error message when keyboard is missing a physical layout. (fed66a9)