Catching up on all they've done with ZMK - #1
Merged
Conversation
Bumps the docusaurus-minor-patch group in /docs with 3 updates: [@docusaurus/core](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus), [@docusaurus/preset-classic](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-preset-classic) and [@docusaurus/theme-mermaid](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-theme-mermaid). Updates `@docusaurus/core` from 3.5.2 to 3.6.1 - [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.6.1/packages/docusaurus) Updates `@docusaurus/preset-classic` from 3.5.2 to 3.6.1 - [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.6.1/packages/docusaurus-preset-classic) Updates `@docusaurus/theme-mermaid` from 3.5.2 to 3.6.1 - [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.6.1/packages/docusaurus-theme-mermaid) --- updated-dependencies: - dependency-name: "@docusaurus/core" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: docusaurus-minor-patch - dependency-name: "@docusaurus/preset-classic" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: docusaurus-minor-patch - dependency-name: "@docusaurus/theme-mermaid" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: docusaurus-minor-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nicolas Munnich <98408764+Nick-Munnich@users.noreply.github.com> Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
Renamed the composite kscan's column-offset property to col-offset for consistency with other properties such as matrix transform's col-offset and matrix kscan's col-gpios.
Spotted this underscore that shouldn't be there when reading the studio blog post
Add snippet to build for nRF52833 boards while ignoring the SoftDevice. This is necessary as those boards are memory-constrained.
Add snippet to build for nRF52840 boards while ignoring the SoftDevice. This might be useful for especially memory-intensive applications.
* Add gitlint to pre-commit setup * Update pre-commit setup for installing commit-hooks * Add "Commit Conventions" contributing docs Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
Add support for initializing a pin to a given high/low value during configuration. Needed for proper initialization by systems like GPIO hogs or gpio-leds Zephyr drivers.
* Add VERSION file that Zephyr will pick up * Add release-please automation * Updated docs on commits messages, and PR process * Updated PR template to match. --- Release-As: 0.1.0 Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.6. - [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md) - [Commits](moxystudio/node-cross-spawn@v7.0.3...v7.0.6) --- updated-dependencies: - dependency-name: cross-spawn dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
Add a separate ignore script that checks git changes but also only deploys main and version branches to allow us to deploy versioned docs. Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
Add generic extension nexus node for consistent GPIO access to the extension pins in a left/right agnostic way.
… with 2 updates Bumps the prod-other-minor-patch group with 2 updates in the /docs directory: [@fortawesome/fontawesome-svg-core](https://github.com/FortAwesome/Font-Awesome) and [@fortawesome/free-solid-svg-icons](https://github.com/FortAwesome/Font-Awesome). Updates `@fortawesome/fontawesome-svg-core` from 6.6.0 to 6.7.1 - [Release notes](https://github.com/FortAwesome/Font-Awesome/releases) - [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/6.x/CHANGELOG.md) - [Commits](FortAwesome/Font-Awesome@6.6.0...6.7.1) Updates `@fortawesome/free-solid-svg-icons` from 6.6.0 to 6.7.1 - [Release notes](https://github.com/FortAwesome/Font-Awesome/releases) - [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/6.x/CHANGELOG.md) - [Commits](FortAwesome/Font-Awesome@6.6.0...6.7.1) --- updated-dependencies: - dependency-name: "@fortawesome/fontawesome-svg-core" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: prod-other-minor-patch - dependency-name: "@fortawesome/free-solid-svg-icons" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: prod-other-minor-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Nicolas Munnich <98408764+Nick-Munnich@users.noreply.github.com>
Bumps the development group in /docs with 1 update: [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint). Updates `typescript-eslint` from 8.51.0 to 8.52.0 - [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.52.0/packages/typescript-eslint) --- updated-dependencies: - dependency-name: typescript-eslint dependency-version: 8.52.0 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>
deps: Use hal_stm32 with stm32c0 USB device fixes. Pull in ZMK fork of hal_stm32 with USB device driver fixes for stm32c0. feat: Add nBOOT_SEL bit setup for STM32 G0/C0 targets Newer STM32 C0 and G0 series SoCs do not by default allow use of the BOOT0 pin/button to enter the bootloader once something has been flash to the device, which is a change from previous series, and usually not what's wanted for keyboards running ZMK. To address this, add some optional, but default initialization code to check the nBOOT_SEL bit and override it if necessary to ensure BOOT pin/button functionality. docs: Extract bootloader config into a dedicated page. Pull the bootloader intergration options out of the system configuration page into their own dedicated one. Co-authored-by: Nicolas Munnich <98408764+nmunnich@users.noreply.github.com> --------- Co-authored-by: Nicolas Munnich <98408764+nmunnich@users.noreply.github.com>
This patch fixes studio rpc bug. Protobuf decoding buffer overflows when multiple frames are in rx buffer.
chore: Add test behaviors for Studio testing chore: Add basic tests for studio layer adjustment chore: Fixes from code review
Match the behavior for key press release on split peripheral disconnect, and track pressed input keys to release them as needed on disconnect.
With the binding referenced to as uint8_t the keymap would be incorrect if more than 256 positions were in use, going to a uint16_t gives large enough headroom to not have to worry
* fix(docs): Improve link and code highlight contrast Reset the theme's primary colors to the defaults, since the color of links was a bit too low contrast in the dark theme. The default primary color is a very similar but slightly lighter shade of blue. The background color of highlighted lines in code blocks is also fairly low contrast, but it needs to be in order to keep the text readable. To add contrast here, we now add a colored block to the left side of a highlighted line. * fix(docs): Improve ZMK setup instructions This makes several improvements to the instructions for installing and using ZMK CLI: - Windows Terminal is also named "Terminal", so reworded the terminal instructions to not separate Windows from other OSes. - Specified that Windows Terminal should always be used on Windows, as on older installations of Windows, the default terminal when opening PowerShell may be the legacy console host, which may not support some of the VT sequences used by ZMK CLI. - Switched from pipx to uv. This eliminates the need for instructions on installing Python, as uv will automatically install a supported version of Python if needed. - Updated the instructions for running "zmk init", as ZMK CLI version 0.4.0 switched from immediately asking for a repo URL to prompting the user to select between creating a new repo or cloning an existing one first. - Since for a new user, having a keymap compile successfully on the first attempt after modifying it may be the exception rather than the norm, added a note about error messages in GitHub actions with a link to the troubleshooting page. Also added instructions for updating ZMK CLI to the latest version on the ZMK CLI page.
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.21 to 4.17.23. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](lodash/lodash@4.17.21...4.17.23) --- updated-dependencies: - dependency-name: lodash dependency-version: 4.17.23 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
feat(endpoints): add "no endpoint" value This adds ZMK_TRANSPORT_NONE, which can be set as the preferred endpoint transport if you wish to prevent the keyboard from sending any output. More usefully, it also is used to indicate that the preferred endpoint is not available and it could not fall back to an available one. To go along with this, many endpoint functions are renamed for consistency, and a few new functions are added: - zmk_endpoint_get_preferred_transport() returns the value that was set with zmk_endpoint_set_preferred_transport(). - zmk_endpoint_get_preferred() returns the endpoint that will be used if it is available. This endpoint always has the same transport as zmk_endpoint_get_preferred_transport(). - zmk_endpoint_is_connected() is a shortcut to check if the keyboard is actually connected to an endpoint. This change is based on #2572 but without the option to disable endpoint fallback. It does refactor code to allow adding that feature later. fix(endpoints): Add endpoint setting upgrade Adding ZMK_TRANSPORT_NONE at the start of enum zmk_transport results in the preferred transport setting no longer representing the same values when it is saved with earlier firmware and loaded with newer firmware. To fix this, the "endpoints/preferred" setting is now deprecated and replaced by "endpoints/preferred2". If the old setting is present, it is interpreted as the old enum type, upgraded to the new type, and saved immediately to the new setting. The old setting is then deleted. To avoid this happening again in the future, enum zmk_transport now has explicit values assigned to identifier, and a comment is also added to explain that existing values must not be changed. fix: Set default transport according to enabled transports The default value for preferred_transport is now set to USB only if CONFIG_ZMK_USB is enabled. If not, it falls back to BLE if CONFIG_ZMK_BLE is enabled, then to "none" if nothing is enabled.
refactor(core): Adjust our approach for upstream Zephyr boards Move to using proper HWMv2 board extensions https://docs.zephyrproject.org/4.1.0/hardware/porting/board_porting.html#board-extensions for extending upstream Zephyr boards for use with ZMK. With this change, using upstream Zephyr board IDs directly, e.g. `seeeduino_xiao` will be stock versions as found upstream. To use a board variant that is tuned for ZMK use, use the `zmk` variant, e.g. `seeeduino_xiao//zmk` which is shorthand for `seeeduino_xiao/samd21g18a/zmk`. refactor(boards): Move to ZMK specific variants for the nRFMicro board For consistency, adjust the nRFMicro board definition to offer a "vanilla" Zephyr board, and then ZMK variants, e.g. `nrfmicro/nrf52840/zmk`. refactor(boards): Move to ZMK specific variant for the bluemicro840 board For consistency, adjust the bluemicro840 board definition to offer a "vanilla" Zephyr board, and then ZMK variant, e.g. `bluemicro840//zmk`. refactor(boards): Make tofu65 to ZMK variant by default Make the standard Tofu65 board ID be `tofu65/rp2040/zmk` or `tofu65//zmk` by shorthand. refactor(boards): Move BDN9 to ZMK variant by default Make the standard BDN9 board ID be `bdn9/stm32f072xb/zmk` or `bdn9//zmk` by shorthand. refactor(boards): Move Puchi BLE to ZMK variant by default Make the standard Puchi BLE board ID be `puchi_ble/nrf52840/zmk` or `puchi_ble//zmk` by shorthand. refactor(boards): Move Adv360 Pro to ZMK variant by default Make the standard Adv360 Pro board ID be `adv360pro_left/nrf52840/zmk` or `adv360pro_left//zmk` by shorthand and for right as well. refactor(boards): Move nRF52840 M2 to ZMK variant by default Make the standard nRF52840 M2 board ID be `nrf52840_m2/nrf52840/zmk` or `nrf52840_m2//zmk` by shorthand. refactor(boards): Move Pillbug to ZMK variant by default Make the standard Pillbug board ID be `pillbug/nrf52840/zmk` or `pillbug//zmk` by shorthand. refactor(boards): Move s40nc to ZMK variant by default Make the standard s40nc board ID be `s40nc/nrf52840/zmk` or `s40nc//zmk` by shorthand. refactor(boards): Move nice!60 to ZMK variant by default Make the standard nice!60 board ID be `nice60/nrf52840/zmk` or `nice60//zmk` by shorthand. refactor(boards): Move planck to ZMK variant by default Make the standard planck board ID be `planck/stm32f303xc/zmk` or `planck//zmk` by shorthand. refactor(boards): Move preonic to ZMK variant by default Make the standard preonic board ID be `preonic/stm32f303xc/zmk` or `preonic//zmk` by shorthand. refactor(boards): Move ferris to ZMK variant by default Make the standard ferris board ID be `ferris/stm32f072xb/zmk` or `ferris//zmk` by shorthand. refactor(boards): Move Proton-C to ZMK variant by default Make the standard Proton-C board ID be `proton_c/stm32f303xc/zmk` or `proton_c//zmk` by shorthand. refactor(boards): Move Corneish Zen to ZMK variant by default Make the standard Corneish Zen board ID be `corneish_zen_left/nrf52840/zmk` or `corneish_zen_left//zmk` by shorthand and for right as well. refactor(boards): Move nice!nano to ZMK variant by default Make the standard nice!nano board ID be `nice_nano/nrf52840/zmk` or `nice_nano//zmk` by shorthand. refactor(boards): Move mikoto to ZMK variant by default Make the standard mikoto board ID be `mikoto/nrf52840/zmk` or `mikoto//zmk` by shorthand. refactor(boards): Move Polarity Works boards to ZMK variants Make the standard Polarity Works board IDs be `zmk` variants. doc: Update docs/blog post to reference ZMK variants * Update Zephyr 4.1 blog post to mention ZMK variants * Add note to hardware support page about variants docs: Fix up shield board overlays for new board IDs Adjust our documentation to properly use the correct qualified board overlay file names that match our new board conventions.
Fix build uploads by pinning our package version.
* docs: Add new board guide * docs: apply feedback from review
…3059) * All nine International key recognized on macOS 15.6.1 Testing with Karabiner-EventViewer, reported as: * international1 * japanese_pc_katakana * international3 * japanese_pc_xfer * international5 * international6 * japanese_pc_nfer * international8 * international9 * All nine language keys recognized on macOS 15.6.1 Testing with Karabiner-EventViewer, reported as: * japanese_eisuu (leave Japanese mode) * japanese_kana (enter Japanese mode) * lang3 * lang4 * lang5 * lang6 * lang7 * lang8 * lang9 * Insert line-break for style * Move macOS Japanese notes to footnotes
Fix one binding in the Sofle raise layer that should be transparent in the stock keymap.
…#3247) Update the board revision/ID migration section of the Zephyr 4.1 blog post to include the ZMK variant (`//zmk`).
#3265) feat: Add ZMK_BOARD_COMPAT Kconfig symbol, and check for it To properly detect users selecting a base board ID, when a ZMK variant is available, add a ZMK_BOARD_COMPAT Kconfig symbol that the ZMK variants will enable, allowing us to detect using the bare varand and warn/error in CI so users don't end up with passing CI that results in an unusable firmware due to missing ZMK enablement for keyboard name, settings storage, etc. refactor(boards): Add ZMK_BOARD_COMPAT to ZMK board variants To clearly indicate the ZMK board variants are set up for ZMK usage, select the ZMK_BOARD_COMPAT symbols for them. fix(boards): Fix pillbug board.yml to report extension Properly not the ZMK variant is part of an extension of the existing pillbug board.
Add an early guard to bail during the board compat check to ensure we don't error out for out-of-tree boards with no ZMK variant.
horasim
marked this pull request as ready for review
March 13, 2026 23:20
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is just for me lol