Commit Graph

2874 Commits

Author SHA1 Message Date
Pete Johanson b46f741c43 chore(main): release 0.4.0 2025-12-16 17:22:42 -07:00
Nicolas Munnich ce73101049
docs: Update hardware integration page with Zephyr 4.1 board setup (#3138)
* docs: Update hardware integration page with Zephyr 4.1 board setup

* docs: Apply suggestions from code review

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>

---------

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2025-12-17 00:21:52 +00:00
dependabot[bot] c64bda4160
chore(deps-dev): bump the development group across 1 directory with 12 updates (#3099)
Bumps the development group with 12 updates in the /docs directory:

| Package | From | To |
| --- | --- | --- |
| [@docusaurus/module-type-aliases](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-module-type-aliases) | `3.9.1` | `3.9.2` |
| [@docusaurus/tsconfig](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-tsconfig) | `3.7.0` | `3.9.2` |
| [@docusaurus/types](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-types) | `3.9.1` | `3.9.2` |
| [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) | `9.23.0` | `9.38.0` |
| [eslint](https://github.com/eslint/eslint) | `9.23.0` | `9.38.0` |
| [eslint-plugin-mdx](https://github.com/mdx-js/eslint-mdx) | `3.3.2` | `3.6.2` |
| [globals](https://github.com/sindresorhus/globals) | `16.0.0` | `16.4.0` |
| [prettier](https://github.com/prettier/prettier) | `3.5.3` | `3.6.2` |
| [string-replace-loader](https://github.com/Va1/string-replace-loader) | `3.1.0` | `3.2.0` |
| [typescript](https://github.com/microsoft/TypeScript) | `5.8.2` | `5.9.3` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.30.1` | `8.46.1` |
| [webpack](https://github.com/webpack/webpack) | `5.98.0` | `5.102.1` |



Updates `@docusaurus/module-type-aliases` from 3.9.1 to 3.9.2
- [Release notes](https://github.com/facebook/docusaurus/releases)
- [Changelog](https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/docusaurus/commits/v3.9.2/packages/docusaurus-module-type-aliases)

Updates `@docusaurus/tsconfig` from 3.7.0 to 3.9.2
- [Release notes](https://github.com/facebook/docusaurus/releases)
- [Changelog](https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/docusaurus/commits/v3.9.2/packages/docusaurus-tsconfig)

Updates `@docusaurus/types` from 3.9.1 to 3.9.2
- [Release notes](https://github.com/facebook/docusaurus/releases)
- [Changelog](https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/docusaurus/commits/v3.9.2/packages/docusaurus-types)

Updates `@eslint/js` from 9.23.0 to 9.38.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/commits/v9.38.0/packages/js)

Updates `eslint` from 9.23.0 to 9.38.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v9.23.0...v9.38.0)

Updates `eslint-plugin-mdx` from 3.3.2 to 3.6.2
- [Release notes](https://github.com/mdx-js/eslint-mdx/releases)
- [Changelog](https://github.com/mdx-js/eslint-mdx/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mdx-js/eslint-mdx/compare/eslint-plugin-mdx@3.3.2...eslint-plugin-mdx@3.6.2)

Updates `globals` from 16.0.0 to 16.4.0
- [Release notes](https://github.com/sindresorhus/globals/releases)
- [Commits](https://github.com/sindresorhus/globals/compare/v16.0.0...v16.4.0)

Updates `prettier` from 3.5.3 to 3.6.2
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.5.3...3.6.2)

Updates `string-replace-loader` from 3.1.0 to 3.2.0
- [Release notes](https://github.com/Va1/string-replace-loader/releases)
- [Commits](https://github.com/Va1/string-replace-loader/commits)

Updates `typescript` from 5.8.2 to 5.9.3
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.8.2...v5.9.3)

Updates `typescript-eslint` from 8.30.1 to 8.46.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.1/packages/typescript-eslint)

Updates `webpack` from 5.98.0 to 5.102.1
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.98.0...v5.102.1)

---
updated-dependencies:
- dependency-name: "@docusaurus/module-type-aliases"
  dependency-version: 3.9.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development
- dependency-name: "@docusaurus/tsconfig"
  dependency-version: 3.9.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development
- dependency-name: "@docusaurus/types"
  dependency-version: 3.9.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development
- dependency-name: "@eslint/js"
  dependency-version: 9.38.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development
- dependency-name: eslint
  dependency-version: 9.38.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development
- dependency-name: eslint-plugin-mdx
  dependency-version: 3.6.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development
- dependency-name: globals
  dependency-version: 16.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development
- dependency-name: prettier
  dependency-version: 3.6.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development
- dependency-name: string-replace-loader
  dependency-version: 3.2.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development
- dependency-name: typescript
  dependency-version: 5.9.3
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development
- dependency-name: typescript-eslint
  dependency-version: 8.46.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development
- dependency-name: webpack
  dependency-version: 5.102.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-17 00:06:59 +01:00
dependabot[bot] ce8d9a3627
chore(deps): bump mdast-util-to-hast from 13.2.0 to 13.2.1 in /docs (#3146)
Bumps [mdast-util-to-hast](https://github.com/syntax-tree/mdast-util-to-hast) from 13.2.0 to 13.2.1.
- [Release notes](https://github.com/syntax-tree/mdast-util-to-hast/releases)
- [Commits](https://github.com/syntax-tree/mdast-util-to-hast/compare/13.2.0...13.2.1)

---
updated-dependencies:
- dependency-name: mdast-util-to-hast
  dependency-version: 13.2.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-16 22:38:34 +01:00
dependabot[bot] 7b31fb83c0
chore(deps): bump js-yaml from 4.1.0 to 4.1.1 in /docs (#3113)
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-16 21:18:04 +01:00
dependabot[bot] 0e05ee73b7
chore(deps): bump node-forge from 1.3.1 to 1.3.2 in /docs (#3123)
Bumps [node-forge](https://github.com/digitalbazaar/forge) from 1.3.1 to 1.3.2.
- [Changelog](https://github.com/digitalbazaar/forge/blob/main/CHANGELOG.md)
- [Commits](https://github.com/digitalbazaar/forge/compare/v1.3.1...v1.3.2)

---
updated-dependencies:
- dependency-name: node-forge
  dependency-version: 1.3.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-16 21:16:53 +01:00
Joel Spadin 930b5cc058
docs: Replace user setup script with ZMK CLI (#3137)
This deletes the Bash and PowerShell setup scripts in favor of using
ZMK CLI. The old setup scripts are broken, since the config repo
template uses ZMK version 0.3, while the setup scripts use hardware
metadata from the main branch. ZMK CLI doesn't have this issue, because
it clones the version of ZMK listed in the config repo to get hardware
metadata.

Much of the "Installing ZMK" page has been rewritten to give
instructions for installing ZMK CLI and using it to create and modify
a config repo. The previously-hidden page on ZMK CLI has been added to
the sidebar and repurposed into general documentation for the tool.
2025-12-14 16:20:35 -06:00
Joel Spadin 8987f3979d
fix: Fix redundant const warning (#3139)
Fixed a build warning about "const" being used twice.
2025-12-14 16:39:39 -05:00
Nicolas Munnich cb6ecc1774
docs: Remove references to nice_nano_v2, seeeduino_xiao_ble and nrfmicro_13 (#3135) 2025-12-14 12:57:24 -08:00
Cem Aksoylar 8af2f130a8
docs: Update Corne-ish Zen mentions for Zephyr 4.1 upgrade renames (#3143)
* docs: Fix mentions of Corne-ish Zen for HWMv2 change

* blog: Add Corne-ish Zen to renamed boards in Zephyr 4.1
2025-12-14 07:15:54 +00:00
carrefinho 90b3ad2c9e
blog: Merge duplicate "Getting The Changes" sections in Zephyr 4.1 post (#3142) 2025-12-13 20:38:58 -08:00
Joel Spadin c0990410da
fix: Add "optional" folder to .gitignore (#3141)
Zephyr now has some modules that get placed under /optional/modules
instead of /modules. Added that to .gitignore so Git doesn't try to
treat those like Git modules.
2025-12-13 17:37:14 -06:00
carrefinho fed2cf69da
blog: Clarify west upgrade command in Zephyr 4.1 update post (#3133) 2025-12-11 21:08:03 -08:00
Jakob Linke 958fa78806
fix(behaviors): correctly handle sensor rotation remainder (#3084)
The original condition was always true, this commit fixes the condition
to correctly handle the remainder for sensor rotation behaviors by using
abs().

Co-authored-by: schuay <schuay@users.noreply.github.com>
2025-12-10 03:49:34 -05:00
Nicolas Munnich 3c0f0af947
chore(tests): Write test builds to logfile (#3125)
* tempfile necessary because running build command makes directory pristine,
interfering with the build log being written.
* Should be automatically picked up by the artifacts in CI tests
2025-12-10 03:45:08 -05:00
Pete Johanson 779c9876d1
docs: Move the Zephyr 4.1 blog post to a specific pinned date (#3131)
Avoid shifting URLs by pinning to the actual post date.
2025-12-09 19:49:10 -05:00
Pete Johanson c06fa48ce5
feat!: Move to zephyr v4.1 (#3060)
refactor: Move to Zephyr v4.1.0

Move to Zephyr v4.1.0, with various build/compilation fixes needed for
basic use.

refactor(tests): Move to native_sim for tests.

feat(core): (Optionally) use Zephyr keyboard input devices

Add ability to assign a keyboard `input` device to a physical layout,
or use a chosen `zmk,matrix-input`.

fix(pointing): Refactor for changes to input API

Pass NULL user_data to input callbacks.

fix(tests): Fix BLE test to account for Zephyr changes

Handle additional read callback invocation once all matching
characteristic have been read.

fix(sensors): Initialize sensor data to 0 before fetching.

Be sure we don't get back any uninitialized data by initializing
the channel data to 0 before calling into the sensor API.

refactor(input): Adjust split input to input API changes.

Input callbacks now have a user_data parameter, adjust accordingly.

chore(bluetooth): Minor cleanup of split BT code after refactor

Small fixes and remove commented dead code left after the split
refactor.

refactor: Fix up BLE tests after Zephyr upgrade.

Minor changes to snapshots based on newer Zephyr version.

refactor(boards): Move to upstream xiao_ble board ID.

Move to official upstream board definition for the Seeed XIAO BLE.

refactor: Adjust metadata schema for HWMv2 board IDs w/ qualifiers

Adjust our ZMK metadata to allow for board IDs that include qualifiers
with slash delimeters.

refactor!(boards): Move nice!nano to HWMv2, and proper revisioning

Upgrade the nice!nano board to HWMv2, under the proper nicekeyboards
vendor directory, and with proper revisions. Includes a breaking change
to default the `2.0.0` version instead of the much older v1 (`1.0.0`).

fix: Disable Nordic dt-bindings header checks.

Disable the recently added Nordic dt-bindings header checks, which cause
issues for our HID related headers.

fix(studio): Correct `memset` usage.

Use the correct memset call to clear our RPC memory.

fix: Refactor for new Zephyr PM API

Adjustments to our PM code to match Zephyr PM APIs.

refactor(ble): Use correct BT opt for connectable.

Adjust for upstream Zephyr BT API changes for advertising options.

refactor(boards): Move MakerDiary M2 board to HWMv2.

Run the HWMv2 script to convert the MakerDiary M2 board.

fix(studio): Correct usage of thread analyzer API

Fix up the RPC code that invoke the thread analyzer API to account for
API changes.

chore: Remove nanopb module override.

Leverage nanopb version that's used by Zephyr.

feat(core): mapper for magic bootloader values.

To trigger bootloaders that use a magic value in RAM to trigger
bootloader mode, add a mapping retained memory driver that maps
write/read of boot mode values to a special magic value stored
in the actually backing RAM.

feat(behaviors): Add retention boot mode to reset.

Support new generic Zephyr retention boot mode API in the reset
behavior.

feat: Add double tap to enter bootloader functionality

Add ability to enter the bootloader if double tapping reset within the
specified window.

refactor(CI): Move to 4.1 container tags.

Move to the new 4.1 tagged container, to ensure updated SDK, Python
packages, etc.

refactor(boards): Move nRFMicro to HWMv2

Refactor nRFMicro to HWMv2, using proper SoC, revisions, and variants
(for flipped). Also move to devicetree setup of DCDC/HV DCDC.

refactor(boards): Move QMK Proton-C to HWMv2

Move Proton-C to HWMv2 for use with Zephyr 4.1.

chore(ci): Adjust core coverage for new board IDs.

Use correct board IDs, with qualifiers, for our core coverage testing.

refactor(boards): Move BDN9 to HWMv2

Move BDN9 to HWMv2, using the base `bdn9` ID, no longer including the
`_rev2` suffix in the ID.

refactor(boards): Move nice!60 to HWMv2

Migrate nice!60 to HWMv2.

refactor: Adjust how we're searching/loading keymap files

Use new post_boards_shields extension point for loading keymap files
from board/shield directories.

refactor(boards): Move planck rev6 to HWMv2.

Move Planck board definition to HWMv2, including versioning tweaks.

refactor(boards): Move OLKB Preonic to HWMv2

Move Preonic board definition to HWMv2 and remove `_rev3` variant
suffix in favor of board versioning with `3.0.0` as the default.

chore(deps): Pull in Zephyr optional group for nanopb.

Ensure we enable nanopb by adding +optional group filter.

fix(ci): Prevent slash characters in artifact names.

Move to HWMv2 means board IDs often include slashes, so replace those
with underscores when doing file uploads.

fix(usb): Adjust Kconfig settings for USB.

* Ensure USB isn't initialized automatically before we do, which can
  happen if USB CDC logging is used/enabled for a given board.
* Adjust USB HID to initialize the USB class/interface before we enable
  the USB device itself.

fix(display): Fix setting the small font for the mono theme.

Adjust for modified mono theme init function to pass the small font.

chore(ci): Fix changed board IDs for core coverage.

Adjust board IDs for our core coverage after move to HWMv2 and board
versioning consistently.

* planck_rev6 -> planck
* bdn9_rev2 -> bdn9

fix(underglow): Remove use of removed Kconfig WS2812 symbol

refactor(boards): Move PW CKP boards to HWMv2

Migrate the bt60, bt65, and bt75 to HWMv2.

refactor(boards): Move Puchi BLE to HWMv2

Migrate the Puchi BLE to HWMv2.

refactor(boards): Migrate Ferris rev02 to HWMv2.

Move Ferris rev02 to HMWv2, and remove the revision from the ID.

refactor(boards): Move Pillbug to HWMv2

Migrate the MechWild PillBug board to HWMv2.

refactor(boards): Migrate s40nc to HWMv2

Move the ShortyFortyNoCordy (s40nc) to HWMv2.

refactor(boards): Move bluemicro840 board to HWMv2.

Migrate bluemicro840 board to HWMv2, set up boot mode retention.

fix(boards): Retore bootloader support on XIAO BLE.

Set up necessary boot mode/retention to properly set GPREGRET to trigger
Adafruit bootloader to run on the XIAO BLE.

refactor(boards): Move Adv360 Pro to HWMv2.

Migrate Adv360 Pro left/right to HWMv2.

refactor(boards): Move Glove80 to HMWv2

Refactor the MoErgo Glove80 left/right to HWMv2.

refactor(boards): Move Mikoto to HMWv2.

Migrate Mikoto to HWMv2, with non-exact matching, tweaks to I2C
selection to imply it for the 7.2.0 revision for the fuel gauge.

refactor(boards): Move kbdfans Tofu65 2.0 to HMWv2

Move Tofu65 2.0 to HMWv2, with ID of just `tofu65`.

refactor(boards): Remove dz60rgb board

Remove dz60rgb, it's no longer readily available and we have other
current stm32 reference designs for testing.

refactor(boards): Move Corneish Zen to HMWv2

Move Corneish Zen to HMWv2, with IDs of
`corneish_zen_left`/`corneish_zen_right`.

refactor(boards): Migrate Corne-ish Zen status screen

* refactor(boards): Add boot mode to the nice!nano using common dtsi

* Add a new .dtsi for setting up nRF52 boot mode/retained memory
  settings
* Adjust XIAO BLE to use the new include file
* Add boot mode to to the nice!nano

refactor(boards): Add boot mode support to nice!60 board

Enable boot mode for nice!60 board.

refactor(boards): Adjust Zephyr board metadata file locations

Move the ZMK metadata files for upstream Zephyr boards to align with the
HWMv2 directory structure that uses the vendor ID for the parent
directory for a board directory.

fix: Don't enable ZMK Display by default for a few shields

By convention, avoid enabling ZMK Display by default on shields that may
be built with under-resourced controllers (e.g. nRF52833 based ones).

fix: Remove usage of renamed Kconfig from core coverage.

Avoid using WS2812_LED_STRIP, since that Kconfig was renamed/split into
SPI/GPIO/I2S symbols.

refactor(boards): Adjust XIAO RP2040 override names, bootloader support

Adjust the .conf/.overlay files to match the proper naming for the
XIAO rp2040 board. Also add the necessary Kconfig/DTS bits for
supporting bootloader using retained memory/boot mode retention.

fix(display): Adjust stack sizes for display usage.

Updated LVGL is bumping our stack size, so adjust the system work queue
and dedicated display queue stack sizes as needed to account for this.

feat(display): Add thread name to dedicated display queue.

When thread names are enabled, pass a name to the dedicated display
queue for better tracibility when using the thread analyzer.

docs(blog): Add Zephyr upgrade post

docs: Add bootloader integration page

Add a dedicated page to outline steps to set up bootloader integration
using the boot retention mechanism in newer Zephyr versions.

fix(display): port nice!view display code

* remove `lv_` prefix from old LVGL methods

doc: Update local setup docs to use `west packages pip`

Install Zephyr deps using the newer `west packages pip --install`.

Signed-off-by: Peter Johanson <peter@peterjohanson.com>

refactor(split): Adjust BT split code for newer Zephyr APIs.

refactor(boards): Adjust upstream RP2040 boards for boot mode retention

Add necessary DTS/Kconfig settings to upstream RP2040 boards so they can
use the ZMK bootloader functionality using the boot mode retention
infrastructure.

docs: Update Zephyr docs links to 4.1.0 version.

Update all links to the Zephyr docs to the 4.1.0 versions to match our
Zephyr version in use.

docs: Add a note about using CMake v3 for maximum compatibility.

Some optional modules, like libmetal, which is used on nRF5340,
specifically require CMake v3, so add a note in the native toolchain
setup about this.

feat(pointing): Handle INPUT_BTN_TOUCH codes for mouse buttons

Translate INPUT_BTN_TOUCH input codes into button 0 press/release for
HID layer.

chore(pointing): Clean up some warning messages.

Properly check return code from queue-ing messages, and fix up some type
warnings in our logging calls.

* Fix input event codes line numbers

fix(studio): Properly serialize GATT RPC indications.

fix(core): Set a system work queue stack size of 2048 by default

We use a fair amount of stack even without BLE or RP2040, so default to
2048 by default everywhere, and constrained platforms can lowes this if
they really need.

refactor(core): Move away from deprecated DIS Kconfig symbols

Use the correct Device Information Service Kconfig symbols for our model
number and manufacturer.

refactor: Move upstream Zephyr board overrides to extensions dirs

Newer Zephyr supports "board extensions" to formally do what we've added
in ourselves via some hacks, so move all our board overlay/config file
overrides for upstream Zephyr boards into that correct structure.

fix(boards): Add xiao_ble sd_partition label for nosd snippet compat

Upstream xiao_ble uses different naming convention for the partition
labels, so add an additional label for the SD range, so the existing
nrf52840-nosd snippet will still work with the board.

fix(core): Don't force CBPRINTF_NANO, for proper formatting.

The nano CBPRINTF implementation lacks some padded formatting needed to
ensure consistent formatting of BLE addresses, which we use to store
keys as strings in a few places, so use the complete CBPRINTF by default
now.

fix(boards): Remove some references to old nice_nano_v2 board ID.

The nice!nano board definition now properly uses versioning, so avoid
referring to it with old `nice_nano_v2` board ID.

fix(boards): Remove nano overlays for old nice_nano_v2 board ID.

With board versioning in place, we can remove the unused
`nice_nano_v2.overlay` files from shields.

---------

Signed-off-by: Peter Johanson <peter@peterjohanson.com>
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
Co-authored-by: Nicolas Munnich <munnich@lipn.univ-paris13.fr>
Co-authored-by: snoyer <noyer.stephane@gmail.com>
2025-12-09 19:43:22 -05:00
Pete Johanson abb64ba316
docs: Build fix on release branches (#3130)
Small build fix for the navbar label for the version dropdown, when
building in release version branches.
2025-12-07 04:04:51 -05:00
Pete Johanson 8de5b120aa
docs: Add release version to the docs, with links and warning banner (#3122)
Add versions to the sidebar of the documentation, and when viewing the
deployment on zmk.dev, which tracks `main`, add a banner warning about
possibly prefering the docs for a particular stable release.
2025-12-07 03:43:13 -05:00
Genteure ece2ce11b8
fix(split): int to pointer cast in bas proxy (#3105)
Direct int to pointer cast causing build to fail in some build environments.
2025-12-07 02:38:05 -05:00
Willow Herring d32ffb0a33
fix(split): Properly return from command handler (#3120) 2025-12-06 23:09:31 -05:00
Cem Aksoylar 83eafcbf9b
refactor(Kconfig): Move BT_DEVICE_APPEARANCE to defaults (#3128) 2025-12-06 15:58:18 -07:00
Artem ad7fbfef92
feat(ble): Use appearance set in the BT_DEVICE_APPEARANCE config (#3115)
Properly use the BT_DEVICE_APPEARANCE Zephyr symbol to advertise
the correct appearance, allowing overrides, for e.g. mice.

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2025-12-04 13:53:47 -05:00
Kurtis Lew e34793e8c7
feat(docs): Update New Behavior Guide (#3107) 2025-11-16 16:02:35 -08:00
Nicolas Munnich 5138c6fb14
feat: Allow layer behaviors to "lock" layers on (#2717)
* refactor(core)!: Allow layer behaviors to "lock" layers on

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>

* docs: Added documentation note on locking layers

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>

---------

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2025-11-14 23:13:35 +01:00
Peter Cock f9be3ed9c0
docs: List some of the commonly used MCUs (#3111) 2025-11-08 14:05:53 -08:00
Willow Herring 7738924349
feat(split): Add HID indicators and physical layout set to Wired split (#3103) 2025-11-02 17:01:08 -07:00
dependabot[bot] 4ec69cb7e6
chore(deps): bump webpack-dev-server, @docusaurus/core, @docusaurus/preset-classic and @docusaurus/theme-mermaid (#3080)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-30 12:05:36 -07:00
Andrés Mejía 61de01abb0
feat(layouts): Add physical layout for Redox shield 2025-09-16 23:23:46 +02:00
dependabot[bot] c44343509a
chore(deps): bump brace-expansion in /docs (#3067)
Bumps  and [brace-expansion](https://github.com/juliangruber/brace-expansion). These dependencies needed to be updated together.

Updates `brace-expansion` from 1.1.11 to 1.1.12
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](https://github.com/juliangruber/brace-expansion/compare/1.1.11...v1.1.12)

Updates `brace-expansion` from 2.0.1 to 2.0.2
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](https://github.com/juliangruber/brace-expansion/compare/1.1.11...v1.1.12)

---
updated-dependencies:
- dependency-name: brace-expansion
  dependency-version: 1.1.12
  dependency-type: indirect
- dependency-name: brace-expansion
  dependency-version: 2.0.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-12 22:23:33 +02:00
dependabot[bot] 540bf2c32b
chore(deps): bump mermaid from 11.6.0 to 11.10.1 in /docs (#3042)
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 11.6.0 to 11.10.1.
- [Release notes](https://github.com/mermaid-js/mermaid/releases)
- [Commits](https://github.com/mermaid-js/mermaid/compare/mermaid@11.6.0...mermaid@11.10.1)

---
updated-dependencies:
- dependency-name: mermaid
  dependency-version: 11.10.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-12 22:17:59 +02:00
Peter Cock df3db57c4c
docs: K_VOLUME_UP and K_VOLUME_DOWN work in macOS (#3057)
Tested via ZMK Studio, both the 'keyboard' and the
'consumer' volume up/down work on macOS Sequoia 15.6.1
2025-09-12 14:08:17 +01:00
Aurélien Vallée 197d104fc9
chore(shields): Add missing display-name for existing keymaps (#3048) 2025-09-10 15:48:33 -07:00
Nicolas Munnich 522971f41d
fix(ci): disable nrf5340dk from being built in our CI (#3066)
This build is currently broken, and will be fixed once we bump to 4.1.
2025-09-10 10:30:09 -07:00
Peter Cock d28f73bcfa
docs: documenting PASTE/COPY/CUT keycodes on macOS (#3058)
* Testing PASTE/COPY/CUT on macOS

Testing using ZMK Studio v0.3.1 to send these keys.

Using Karabiner-EventViewer, nothing from C_AC_CUT, C_AC_COPY, C_AC_PASTE, nor from paste special which I assume would be called C_AC_PASTE_SPECIAL (while for example C_AC_SEARCH was detected).

Did see K_CUT, K_COPY, K_PASTE, but they appear to do nothing by default.

* Add macOS footnote for editing keys K_CUT, K_COPY, K_PASTE

* Add macOS testing for K_UNDO, K_REDO etc.

    C_AC_UNDO - not even registering as a keypress

    K_UNDO - detected as a keypress, but no effect. Does not act like command+z

    C_AC_REDO - not even registering as a keypress

    K_AGAIN aka K_REDO - detected as a keypress, but no effect. Does not act like shift+command+z

* None of the six 'Input Assist' consumer keys work on macOS

Testing using ZMK Studio v0.3.1 to send these keys with macOS 15.6.1 (ARM),
and watching for keypresses with Karabiner-EventViewer v15.5.0.
2025-09-09 19:52:41 +02:00
Thomas Oberndörfer d5ba120d79
docs: Fix hold-trigger-on-release description (#3065) 2025-09-09 19:48:24 +02:00
Adrien LUDWIG 8d06a9b713
docs: fix missing link and example introduction (#3064)
* docs: fix example introduction

* docs: fix missing link
2025-09-08 18:15:41 +02:00
Chris Helming 9a8fdd66ea
docs: Add missing semicolon to kscan.md composite example (#3052) 2025-09-02 20:42:30 -07:00
Pete Johanson 0b5a103c18
fix(core): Generate correct keymap layer names for all builds (#3047)
Properly account for studio and non-studio builds for the generation of
the layer names stored within the keymap system.

Fixes #3045
2025-08-26 03:26:20 -06:00
Cem Aksoylar f09e551929
docs: Add warning box for clearing settings for splits, generalize troubleshooting procedure (#3039)
Co-authored-by: Nicolas Munnich <98408764+nmunnich@users.noreply.github.com>
2025-08-19 17:27:21 -07:00
Nicolas Munnich ee69b9e3c7
docs: Add a dedicated page on ZMK events (#2815)
* docs: Added a dedicated page on ZMK events

* docs: Apply suggestions from code review

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>

* docs: Apply suggestions from code review

Bring the code snipper in new-behavior back, touchups on the page

* docs: clarify "calling" hold tap

Adjustment after feedback from code review

---------

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2025-08-18 23:45:16 +02:00
Cem Aksoylar 5144de677d
docs: Document usage of persistent settings explicitly (#3036) 2025-08-18 12:04:35 -07:00
Kurtis Lew 5225952f96
chore(docs): Typo in CMake Arguments example code blocks (#3038) 2025-08-18 09:15:58 +01:00
Cem Aksoylar 9fcce45cb5
docs: Fix remaining typos for requirements extras (#3035) 2025-08-16 22:29:11 -07:00
Nicolas Munnich 62007e500b
docs: Add devicetree primer (#2715)
* docs: Add devicetree primer

* docs: Apply suggestions from code review

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>

* docs: Move devicetree property types into primer and link to primer

* docs: Changes from code review

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>

---------

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2025-08-16 10:05:27 +02:00
Nicolas Munnich ccf20a1f5c
feat(boards/shields): Add settings for Rpi Pico and add tester_rpi_pico shield (#2900)
* feat(boards): Properly support settings for RPi Pico board.

* feat(shields): Add a tester_rpi_pico shield

---------

Co-authored-by: Peter Johanson <peter@peterjohanson.com>
2025-08-10 22:00:35 +01:00
Marius Petcu c7fae18ae1
feat(boards): add support for nrf52840dongle_nrf52840 (#3011)
This adds additional required configs for the Nordic NRF52840 Dongle (PCA10059),
which was already supported by Zephyr, but didn't have flash settings
and Bluetooth enabled.
2025-08-08 23:47:03 +01:00
Nicolas Munnich 61da930ed5
chore(ci): Set days before issue stale to 1000 (#3022) 2025-08-08 13:13:57 -04:00
Maxim 3609ac6fc8
docs: fix typo for pip requirements (#3029) 2025-08-07 23:33:38 +02:00
Peter Cock 45700887ba
Suggest using cu for USB log viewing on macOS (#3027)
* Suggest using cu for USB log viewing on macOS

It may not be as friendly, but cu should be available while tio could be hard to install.

* Polish wording

Co-authored-by: Nicolas Munnich <98408764+nmunnich@users.noreply.github.com>

* Suggest "man cu" for how to use this tool

---------

Co-authored-by: Nicolas Munnich <98408764+nmunnich@users.noreply.github.com>
2025-08-07 23:26:17 +02:00