Commit graph

120 commits

Author SHA1 Message Date
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
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
Nicolas Munnich
49f86f7ed0
docs: Update hold-tap page (#2888)
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2025-03-23 18:12:50 -07: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
Cem Aksoylar
f5a838b4bd
docs: Fix wakeup-source property location for composite kscan (#2861) 2025-03-09 14:59:57 -07:00
Pete Johanson
209085da73
refactor(behaviors): Add max-held tap-dance config (#2838)
refactor(behaviors): Add max-held tap-dance config

Add new `CONFIG_ZMK_BEHAVIOR_TAP_DANCE_MAX_HELD` config for reducing RAM
usage on more constrained devices.

refactor(behaviors): Move defaults to Kconfig.defaults
2025-02-25 14:12:27 -05:00
Pete Johanson
aa3e5dd70f
feat(display): Add config for display update period (#2819)
Add `CONFIG_ZMK_DISPLAY_TICK_PERIOD_MS` Kconfig to allow tweaking
the period between display updates.
2025-02-10 13:32:16 -05:00
Pete Johanson
627e6dbec9
feat(display): Add ability to set display on/off pin. (#2814)
Zephyr is still working on the plan upstream for generically controlling
display "backlight" pins with GPIO/PWM, so in the meantime, add our
own chosen property `zmk,display-led` that is set to an LED device child
to allow blanking/unblanking of devices that use a dedicated backlight
control pin.
2025-02-07 17:49:30 -07:00
Cem Aksoylar
72b00b3f58
docs: Add pointers to final Kconfig/devicetree files (#2796)
docs: Add diagnosis pointers for Kconfig/devicetree outputs

docs: Add tip boxes for diagnosing config/devicetree changes
2025-01-25 13:04:50 -08:00
Pete Johanson
c367d8f636
feat(core): Make physical layout key rotation optional (#2770)
To be able to save on flash space, for layouts on space constrained
devices that don't require rotation, make key rotation props
optional behind a new Kconfig flag.
2025-01-15 16:48:18 -05:00
Cem Aksoylar
700e9b264f
docs: Move more sections under hardware integration (#2704)
docs: Move battery sensing hardware integration to new page

docs: Refactor lighting hardware integrations to new category

docs: Link to pin control page from lighting pages

docs: Consolidate lighting feature pages

docs: Remove incorrect redirect

docs: Consolidate lighting config pages
2025-01-13 21:14:25 -08:00
Cem Aksoylar
3377ed02a8
docs: Improve pointing docs (#2703)
docs: Add missing code fence languages in pointing

docs: Fix default msc exponent in example

docs: Make pointing hardware integration follow semantic structure
2025-01-04 11:15:32 -08:00
Nicolas Munnich
4ef231f4bb
feat: Added toggle-mode, allowing toggle-on and toggle-off (#2555)
feat: added toggle mode to key and layer toggles

docs: documented toggle mode changes
2024-12-12 19:13:56 -05:00
svek1
a8f5ab67b5
fix: allow kscan-composite to wake up device. (#2682)
* include kscan.yaml so we can set kscan-composite as a wakeup source
* modify enable and disable callback to check for wakeup capabilities of
composite and children
* disable children wakeup source

The disable function is only called
when the composite is not an enabled wakeup source.
In that case the children should also not be an enabled
wakeup source, so they can get suspended
2024-12-11 14:46:22 -05:00
Pete Johanson
6b40bfda53
feat(mouse): Add mouse move and scroll support (#2477)
* feat(mouse): Add mouse move and scroll support

    * Use Zephyr input subsystem for all pointers.
    * Input processors for modifying events, e.g. scaling, swapping
      codes, temporary (mouse) layers, etc.
    * Mouse move/scroll behaviors.
    * Infrastructure in place for physical pointer input devices.

* feat: Add input split support.

* docs: Add initial pointer docs.

---------

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
Co-authored-by: Alexander Krikun <krikun98@gmail.com>
Co-authored-by: Robert U <urob@users.noreply.github.com>
Co-authored-by: Shawn Meier <ftc@users.noreply.github.com>
Co-authored-by: Chris Andreae <chris@andreae.gen.nz>
Co-authored-by: Anant Thazhemadam <47104651+thazhemadam@users.noreply.github.com>
Co-authored-by: Erik Tollerud <erik.tollerud@gmail.com>
Co-authored-by: Nicolas Munnich <98408764+Nick-Munnich@users.noreply.github.com>
2024-12-09 19:45:41 -05:00
Nicolas Munnich
40925d48e6
refactor(Kconfig): Extracted designer defaults out into new files (#2537)
docs: Fix incorrect kconfig default values

fix(Kconfig): Added a name to EC11's trigger mode choice, allowing it to be set in device Kconfig.defconfig

refactor(Kconfig): Moved designer defaults out into new files
2024-12-04 16:19:35 -05:00
Alexander Krikun
2a5b73f294 docs: document nrf528xx-nosd snippets 2024-11-12 18:28:59 -07:00
Joel Spadin
c7473fc325 fix: Fix inconsistent column offset property
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.
2024-11-12 09:07:25 -07:00
Peter Johanson
9320271dde docs: Remove beta warning from ZMK Studio pages. 2024-11-11 16:44:06 -07:00
Nicolas Munnich
f4582bdaa7
feat(docs) Adding some additional clarity around low power states (#2330)
* docs(feat): Adding some additional clarity around low power states, with guide portion moved to hardware integration

---------

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-11-02 23:20:31 +01:00
Nicolas Munnich
5487b108d5
docs: fixing some more broken anchors (#2586) 2024-10-23 02:16:59 +02:00
Peter Johanson
993a64d5b3 docs: Better document the layer display-name prop. 2024-10-16 11:57:27 -06:00
Peter Johanson
6cbf25f04a docs: Update Studio status warnings to beta.
Co-authored-by: Nicolas Munnich <98408764+Nick-Munnich@users.noreply.github.com>
2024-10-14 09:42:06 -06:00
Nicolas Munnich
a72327bdff
docs: Physical layout docs improvements (#2533)
* docs: Added layout configuration reference page
* docs: Refactored and revamped physical layout creation information
* docs: Added note in studio features page
* docs: added studio_unlock note in features section
---------

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
Co-authored-by: Joel Spadin <joelspadin@gmail.com>
Co-authored-by: Peter Johanson <peter@peterjohanson.com>
2024-10-12 21:25:45 +02:00
Cem Aksoylar
16976db58c docs: Fix columns names in kscan config 2024-10-08 14:58:04 -07:00
Cem Aksoylar
6e2d30d589 docs: Add missing hold-trigger-on-release to config 2024-10-08 14:58:04 -07:00
Peter Johanson
3975d2fdaf feat: Add studio related documentation.
* Document setting up studio for a new keyboard definition.
* Document how to enable ZMK Studio for a build, adding reserved layers,
  and controlling which behaviors are built into a studio firmware.
* Document `&studio_unlock` behavior.
* Document studio configuration options.

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-09-05 12:22:08 -06:00
Nicolas Munnich
266227b580
refactor(docs): Refactor the development section (#2438) 2024-09-01 21:54:19 -07:00
Nicolas Munnich
5f056f7199
refactor(docs): Convert the keymaps section into a base folder (#2430)
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-08-21 10:39:18 -07:00
Cem Aksoylar
ea64fcaf71 fix(docs): Note direct pin use in matrix transform 2024-08-15 10:38:10 -07:00
Nicolas Munnich
049c070b3a
feat(docs): Minor improvements to the docs (#2411) 2024-08-13 10:47:45 -07:00
Pete Johanson
6d50ba5553 chore: Docs review tweaks.
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-08-12 16:57:54 -07:00
Peter Johanson
3fec690def feat: Add config settings for sticky keys/hold-tap
* Add new Kconfig symbols to config max held sticky-keys/hold-taps
  and for max captured events during hold-tap resolution.
2024-08-12 16:57:54 -07:00
Cem Aksoylar
2501f1f548 feat(docs): Add references to new split keyboards page 2024-08-07 23:57:58 -07:00
Cem Aksoylar
b9a025c76e
fix(docs): Document number of peripherals Kconfig (#2389)
Fixes #2373
2024-08-02 18:57:15 +02:00
Cem Aksoylar
b080befebb fix(docs): Fix link for matrix transform 2024-08-02 09:55:20 -07:00
Nicolas Munnich
f92dce43e9
feat(docs): Add modules feature page (#2380)
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-07-25 12:08:08 -07:00
Nicolas Munnich
fd152baff0
feat(docs): Add troubleshooting notes on experimental bluetooth options (#2387)
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-07-25 12:00:22 -07:00
Timoyoungster
29599e8b0a docs: hopefully more clear description of the new setting 2024-06-24 14:26:14 -06:00
Timoyoungster
10d03ca46c fix: adding option to separate implicit mod release from key release
This adds a new config value `ZMK_HID_SEPARATE_MOD_RELEASE_REPORT`
where, if enabled, the report for a key release is sent separately to
the accompanying modifier release signals, which are then sent in a
second report.

This fixes an issue where certain applications are unable to work with
implicitly modified keys (e.g. colon) due to them registering the
modifier release prior to the actual key release.

Have tested this on my personal keyboard and `wev` now shows the signals
in the correct order.

=> **Previously:** ```LSHIFT (pressed) -> colon (pressed) -> LSHIFT
(released) -> **semi**colon (released)```

=> **Now:** ```LSHIFT (pressed) -> colon (pressed) -> colon (released)
-> LSHIFT (released)```

(This time without accidental files)
2024-06-24 14:26:14 -06:00
Cem Aksoylar
7c09eb217e refactor(docs): Document and enforce header casing conventions 2024-06-17 11:46:32 -07:00
Horu
7d1f84e3eb
chore: fix typos in various places 2024-05-13 16:47:33 -04:00
ReFil
4dfc45d4ab
feat(docs): Document example toggle-mode implementation
---------

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-05-03 14:17:09 -04:00
Tobias Arndt
e7d6519534 fix(docs): Fix and note GPIO flags for charlieplex config 2024-03-30 19:13:39 -07:00
Cem Aksoylar
eb5a6fcfe1 refactor(docs): Split DT props table for sensor rotate variants 2024-03-30 17:03:51 -07:00
Cem Aksoylar
e65a1227d8 fix(docs): Correct property types for behavior bindings 2024-03-30 17:03:51 -07:00
Peter Johanson
e66f068fb5 fix(docs): Minor soft-off docs tweaks from review. 2024-03-27 20:59:26 -07:00
Peter Johanson
fceb0351a5 refactor: Fixes for soft-off based on review.
* Better naming for gpio-key behavior triggers.
* Tweaks to scanned behavior trigger to avoid bad semaphore use,
  and reduce chance of issues with slowly scanned matrixes.
* Various code cleanups of style issues.
2024-03-27 20:59:26 -07:00
Pete Johanson
96968514e3 fix(docs): Apply suggestions from code review
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-03-27 20:59:26 -07:00
Peter Johanson
e78249ee06 fix(bt): Fix BT tests after soft off work.
* Move to explicit enable of `ZMK_PM_SOFT_OFF` to turn
  on the feature and use the behaviors, which matches
  how other features work, and helps with split and
  testing schemes.
2024-03-27 20:59:26 -07:00