Commit Graph

1530 Commits

Author SHA1 Message Date
Bartosz Nowak 86e92682b0 Update app/boards/shields/ergodash/ergodash_left.overlay
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-03 00:48:28 +01:00
Bartosz Nowak 0e86d0d90c Update app/boards/shields/ergodash/ergodash_right.overlay
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-03 00:48:28 +01:00
Bartosz Nowak fdf667edce Update app/boards/shields/ergodash/ergodash-layouts.dtsi
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-03 00:48:28 +01:00
Bartosz Nowak 8e7d8ddde8 Delete app/boards/shields/ergodash/ergodash_right.conf 2025-12-03 00:48:28 +01:00
Bartosz Nowak b149264a7c Delete app/boards/shields/ergodash/ergodash_left.conf 2025-12-03 00:48:28 +01:00
Bartosz Nowak ff0f6d452b Delete app/boards/shields/ergodash/ergodash.studio.json 2025-12-03 00:48:28 +01:00
Bartosz Nowak 730ddb8531 Update app/boards/shields/ergodash/ergodash.zmk.yml 2025-12-03 00:48:28 +01:00
Bartosz Nowak c4bec82d80 Modify ergodash keymap for button functionality 2025-12-03 00:48:28 +01:00
Bartosz Nowak 21f7decd38 Delete app/boards/shields/ergodash/ergodash.conf 2025-12-03 00:48:28 +01:00
Bartosz Nowak 4eece778fd Update app/boards/shields/ergodash/Kconfig.shield 2025-12-03 00:48:28 +01:00
Bartosz Nowak 9e17928b1b Delete app/boards/shields/ergodash/build.yaml 2025-12-03 00:48:28 +01:00
Bartosz Nowak 2da1f0c49c feat: add support for zmk studio 2025-12-03 00:48:28 +01: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
Willow Herring 7738924349
feat(split): Add HID indicators and physical layout set to Wired split (#3103) 2025-11-02 17:01:08 -07:00
Andrés Mejía 61de01abb0
feat(layouts): Add physical layout for Redox shield 2025-09-16 23:23:46 +02: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
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
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
Pete Johanson edf5c0814f
chore(main): release 0.3.0 (#2858) 2025-08-01 18:44:20 -04:00
Nicolas Munnich c86f0d6ff4
chore: Add some basic encoder tests (#2845)
Adds some encoder tests for rotating, and basic layers.
Mock Kscans don't seem to interact nicely, slightly on the hacky side.
However, better to have hacky tests than no tests.
2025-07-31 18:29:59 -04:00
Genteure af967667b0
fix(core): Correctly sync BAS battery level (#2977)
Fix BAS battery level showing 100% if controller boots up with 0% battery charge.

Closes zmkfirmware/zmk#2972
2025-07-31 17:51:21 -04:00
Pete Johanson 2ae5185419
fix(split): Compile and run properly in wired polling mode. (#3012)
Fixes for regressions from split refactors that broke polling mode
specifically.

Co-authored-by: honorless <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2025-07-31 17:09:25 -04:00
Pete Johanson 1530ae36c2
fix(split): Enable wired split by default if DTS is set (#3010)
Remove the previous condition on ZMK_SPLIT_WIRED that only enabled it if
!ZMK_BLE. We'll defer to the `depends on` to ensure the DTS exists to
use wired split to make that decision on enabling the feature.
2025-07-30 13:43:46 -04:00
Cem Aksoylar 1bac680c4f
fix(behaviors): Correct macro release state for parametrized macros (#2942)
test(behaviors): Add parametrized macro test that fails

fix(behaviors): Correct macro release state for parametrized
2025-07-29 18:39:26 -04:00
snoyer d09087f4dc
feat(display): nice!view individual profile status (#2265)
Allow the nice!view widget to display the status of each profile by:

- not adding a circle around the number if the profile is not bound
- drawing a dashed circle around the number if a profile is bound but not connected
2025-07-26 18:46:51 +02:00
Joel Spadin 8059e671b2
fix(boards): Disable high voltage DC-DC by default (#2995)
Given a typical setup of a battery at ~4 V and a nice!nano v2 running at
3.3 V, I measured a small increase in power usage (using a Nordic PPK2)
when SOC_DCDC_NRF52X_HV was enabled. This changes the nice_nano_v2 and
mikoto boards so this option is disabled by default.

Fixes #2990
2025-07-21 17:14:29 +02:00
Tobias Adolph 342d838913
fix(ble,hid): Fix smooth scrolling over BLE (#2998)
- Use correct MIN16 value in hid report. -32768 in 2's compliment is 8000(hex)
- Initialize resolution multiplier array
- Properly implement `read_hids_mouse_feature_report`

Fixes: #2957

Co-authored-by: Tobias Adolph <43353209+adolto@users.noreply.github.comgit>
2025-07-20 09:13:18 -06:00
Dimitri Krassovski 7292df02d4
feat(shields): Add a physical layout for a_dux (#3000) 2025-07-19 21:44:05 -07:00
snoyer fe91cc6625
refactor(ble): add functions to check if profile is open/connected by address (#2993)
Helper functions for BLE profile statuses.
2025-07-19 07:51:53 -06:00
Joel Spadin cef7af4408
fix: Fix build with Studio and USB but not UART (#2996)
Changed CONFIG_ZMK_STUDIO_TRANSPORT_UART to automatically enable itself
whenever a zmk,studio-rpc-uart chosen node is specified. The previous
behavior of enabling if CONFIG_ZMK_USB was enabled broke builds when
CONFIG_ZMK_STUDIO was enabled but the chosen node wasn't specified.
2025-07-11 22:07:38 -06:00
snoyer 9e905d6593
feat(ble): Add function to get profile address by index (#2992) 2025-07-09 20:25:11 -06:00
Pete Johanson 6b44d33db2
feat(split): Runtime selection of split transport (#2886)
feat(split): Runtime selection of split transport

Allow building multiple split transports, and select an active
one based on the transport availability. Wired split availability
depends on additional `detect-gpios` which must be a GPIO pin
that goes active when a wired connection is present.

feat(split): Suspend/resume wired UART devices.

To better support runtime split support, suspend/resume the UART
as necessary to save power when not using the UART.

docs(split): Document adjusting nRF52 UART interrupt priorities

For wired split on nRF52, you may need to adjust the priority for UART
interrupts lower, to ensure the interrupts used for timing sensitive
BT operations can run when needed, so document this in our pinctrl docs.

refactor(split): Restore use of aync UART on nRF52.

With fixes for Zephyr UART driver, re-enable using async API on nRF52.

fix(split): Minor wired split fixes.

Various minor fixes for wired split to avoid spurious TX in half duplex,
etc.

fix: Unconditionally define HID payloads to avoid error.

Don't conditionally define HID indicator payload, to avoid compilation
errors.

docs(split): Expand on details of split transports.

Expand the split keyboard documentation with a more fleshed out section
on the available split trasnports, and what is and isn't supported by
each, including the runtime selection functionality.

---------

Co-authored-by: Nicolas Munnich <98408764+nmunnich@users.noreply.github.com>
2025-06-16 03:45:25 -04:00
badjeff 462d48b78e
feat(pointing): Allow peripheral input processing to stop propagation (#2844)
Allow peripheral input processors to prevent event propagation to centrals.

---------

Co-authored-by: Pete Johanson <peter@peterjohanson.com>
2025-06-16 02:23:25 -04:00
George Norton 239baa4875
feat(metadata): Add metadata to the mouse_key_press behavior (#2950)
Adds metadata to the mouse key press behavior so that mouse buttons can be
configured through studio
2025-06-02 14:32:18 -04:00
Cem Aksoylar 9da5d3ba82
fix(display): Make stock battery widget depend on the right symbol (#2953) 2025-06-02 07:25:08 -06:00
cormoran 461f5c832f
fix(pointing): Avoids mutex leak for default layer toggle event (#2934)
Remove unnecessary special check for toggle of layer 0,
to avoid mutex leak.
2025-05-09 20:01:17 -04:00
FearlessSpiff ad6a181d7e
feat(shield): Add underglow for reviung5 (#2191) 2025-05-05 20:46:21 +02:00
Aasim-A 4235c8b491
chore: Add typescript support to eslint, fix errors (#2923) 2025-04-22 20:51:41 -07:00
Pete Johanson e3030bfcc8
fix(combos): Properly clean up all old candidates. (#2928) 2025-04-22 01:17:12 -04:00
Pete Johanson 00ff486931
fix(combos): Restore prompts for two deprecated Kconfigs (#2926)
Restore prompts for deprecated combo Kconfig symbols, to avoid errors
for existing builds that set them explicitly.
2025-04-21 02:47:39 -04:00
Pete Johanson c4ee8ab86b
refactor(combos): Reduce RAM usage, simplify config (#2849)
* Reference combos by index, not 32-bit pointers, and store bitfields
instead of arrays in several places, to bring down our flash/RAM usage.
* Use bit field to track candidate combos, to avoid needing an explicit
`ZMK_COMBO_MAX_COMBOS_PER_KEY` setting.
* Determine the max keys per combo automatically from the devicetree,
so we remove the ZMK_COMBO_MAX_KEYS_PER_COMBO Kconfig symbol.
2025-04-20 05:01:22 -04:00
Xudong Zheng c6738ce2e5
refactor(split): use LOG_HEXDUMP_DBG() to print position state data (#2854)
The previous code prints one line per byte, making debugging difficult.
2025-04-20 04:36:52 -04:00
Tobias Adolph 2c0e7daced
fix(hid): Fix scroll value truncation (#2865)
Fix 8 bit truncation of 16 bit scroll values when passed into
functions `zmk_hid_mouse_scroll_set` and
`zmk_hid_mouse_scroll_update`.

Fixes: #2864

Co-authored-by: Tobias Adolph <43353209+adolto@users.noreply.github.comgit>
2025-04-20 04:28:51 -04:00
Tygo van den Hurk 84772ebf14
fix: changed shebang to make scripts more platform independent (#2893)
See for example this thread:

https://stackoverflow.com/questions/21612980/why-is-usr-bin-env-bash-superior-to-bin-bash

on why its better to use '#!/usr/bin/env bash' instead.
Without this change these scripts will not run on some
platforms. This is not a breaking change for the
platforms it already works on.
2025-04-20 04:23:31 -04:00
Maximilian Engl 6f85f48b19
fix(split): add source to battery event (#2901) 2025-04-04 10:43:51 -07:00
Pete Johanson 5bb39ec3ea
fix(split): Conditionally build all split code (#2884)
Don't add the split CMake subdirectory unless the feature is enabled.
2025-03-18 18:49:59 -04:00
Pete Johanson 147c340c6e
Feature: Full-Duplex Wired Split (#2766)
refactor(split): Refactor split code for extension

Extract central/peripheral code to allow for plugging in alternate
transports, instead of tying all split logic to BT.

feat(split): Add full-duplex wired split support

* Depends on full-duplex hardware UART for communication.
* Supports all existing central commands/peripheral events, including
  sensors/inputs from peripherals.
* Only one wired split peripheral supported (for now)
* Relies on chosen `zmk,split-uart` referencing the UART device.

docs: Add wired split config docs.

Migrate split to its own dedicated config file, and add details
on wired split config.

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

fix: Properly override stack size on RP2040

Move the system work queue stack size override on RP2040 ouf of
a `ZMK_BLE` conditional so it is properly applied generally for that
SoC.

---------

Co-authored-by: Nicolas Munnich <98408764+Nick-Munnich@users.noreply.github.com>
2025-03-18 02:48:32 -04:00
Genteure 5ba7e260f4
docs: update name of XIAO boards (#2869) 2025-03-17 15:15:57 -07:00