12 KiB
title | author | author_title | author_url | author_image_url | tags | |||||
---|---|---|---|---|---|---|---|---|---|---|
ZMK State Of The Firmware #6 | Cem Aksoylar | Documentation maintainer | https://github.com/caksoylar | https://avatars.githubusercontent.com/u/7876996 |
|
Welcome to the sixth ZMK "State Of The Firmware" (SOTF)!
This update will cover all the major activity since SOTF #5. That was over a year ago (again!), so there are many new exciting features and plenty of improvements to cover!
Recent Activity
Here's a summary of the various major changes since last time, broken down by theme:
Keymaps/Behaviors
Hold-tap improvements
[andrewjrae] added the global quick tap property to the hold-tap behavior in #1187, which prevents the hold behavior from triggering if it hasn't been a certain duration since the last key press. This is a useful feature to prevent accidental hold activations during quick typing and made its way into many keymaps!
[urob] added the hold-trigger-on-release
property in #1423. This significantly increases the usefulness of positional constraints on hold-taps, since it allows combining multiple holds such as different modifiers for home-row mods usage.
Masking mods in mod-morphs
[aumuell], [vrinek] and [urob] contributed to improving the behavior of mod-morphs by masking the triggering modifiers and added keep-mods
property in #1412. This unlocks more use cases for mod-morphs, since you are no longer constrained to emitting keycodes that work well with the triggering modifier keycodes.
Parameterized macros
petejohanson added macros that can be parameterized with one or two parameters in #1232. This allows users to define macros in a more modular way and is a nice quality-of-life improvement.
Arbitrary behaviors on encoder rotation
[nickconway] and petejohanson added sensor rotation behaviors to allow invoking arbitrary behaviors from encoders #1758. Previously encoder rotations could only invoke the key-press behavior &kp
through the &inc_dec_kp
binding, whereas now you can define new sensor rotation behaviors to invoke others.
(Note that currently behaviors that have "locality" such as &rgb_ug
do not work as expected via encoder rotation bindings in split keyboards, due to issue #1494.)
Key toggle behavior
[cgoates] added the key toggle behavior in #1278, which can be used via its &kt
binding to toggle the state of a key between pressed and released.
Bug fixes and other improvements
petejohanson, [andrewjrae] and okke-formsma tracked down and fixed an issue causing stuck keys when there are combos on key positions involving hold-tap behaviors in #1411. This was an elusive bug that took a lot of effort from the community to nail down and fix!
[nguyendown] and joelspadin tracked down and fixed a couple tricky issues causing stuck keys with sticky keys in #1586, #1745.
okke-formsma fixed an issue allowing tap dances to be invoked by combos in #1518.
petejohanson tweaked the caps word behavior to ignore modifiers in #1330.
Bluetooth and Split Improvements
Release held keys on peripheral disconnect #1340
Connections status check fix #1810
Option to require passkey input on pairing #1822
Multiple peripherals support #836
Improve settings_reset
shield by making it clear bonds more reliably, and allow it to build for all boards #1879
Use directed advertising for split communication and more robust central scanning #1913 #1912
Hardware Support
Encoder support refactor #1039
Encoder support in split peripheral halves #728 #1841
Debouncing for direct GPIO driver #1288
Add toggle mode support for direct GPIO driver #1305
595 shift register driver #1325
Add RGB auto off options using idle timeout and USB status #1010
EPD initialization improvements #1098
MAX7318 GPIO expander driver #1295
nice!view support #1462 with custom status screen #1768
Improvements for Seeeduino Xiao BLE #1293, [d0176f36
], #1545, #1927
Wait options during matrix reads and writes #1385, #1473 ?
Miscellaneous
Improved customer page support #1227
Switch to a reusable user config workflow #1183 #1258
Pre-commit setup and standardize formatting #1651
Refactors by Joel #1269 #1255 ?
Allow setting BLE connection intervals #862 ?
Default to 1ms USB HID interval #1271 ?
Allow configuring battery level report interval #1303 ?
Display Features
Add setting to invert display colors #1754
Add battery percentage option for battery widget #1563 ?
Refactor to create new peripheral status widget #1263 ?
Zephyr 3.2
petejohanson helped prepare and test the upgrade of ZMK to Zephyr 3.2 in #1499(https://github.com/zmkfirmware/zmk/pull/1499).
Documentation
Configuration options #722
Battery sensor documentation #868
New behavior guide #1268
Tap dance and hold-tap documentation improvements #1298
New shield docs for other interconnects including Xiao, Arduino Uno and Blackpill #1607
A new Bluetooth feature page #1499
Various improvements and fixes by kurtis-lew, joelspadin, filterpaper, byran.tech, dxmh, caksoylar and many others
New Shields
- Eternal keypad #1136 - halcyonCorsair
- nullbits SNAP #1319 - jaygreco
- Aurora Sweep #1504 - petejohanson
- Aurora Corne #1520 - petejohanson
- Aurora Lily58 #1553 - petejohanson
- Aurora Sofle #1864 - petejohanson
- Aurora Helix #1873 - petejohanson
- ZMK Uno shield #1576 - petejohanson
- Waterfowl #1554 - JW2586
- Kyria Rev 3 #1627 - petejohanson
- Leeloo v2 and Leeloo-Micro #1762 - ClicketySplit
- Spaceman Pancake #1400 - jasonhazel
- Reviung5 #1548 - zblesk
New Boards
- RP2040 boards, including Sparkfun Pro Micro, Adafruit KB2040, Seeeduino Xiao RP2040 were added as part of the Zephyr 3.2 upgrade #1499 - petejohanson
- Puchi BLE #1445 - BenRoe
- nRFMicro 1.3/1.4 (nRF52833) #912 - pashutk
- nRF5340 DK #1562 - joelspadin
- PillBug #1530 - kylemccreery
- Preonic Rev 3 #1575 - jeromeOlivier
- Corne-ish Zen v2 #1498 and v1 #1593 - petejohanson and caksoylar
- Polarity Works CKP family of boards #1547 - ReFil
Coming Soon!
Some items listed in the last coming soon section are still under active development.
- Caps/Scroll/Num Lock LED support
- Mouse Keys
- Wired split support
- More modular approach to external boards/shields, custom code, user keymaps, etc.
- More shields and boards
Statistics
Some statistics of interest for ZMK:
- GitHub (lifetime stats)
- 163 Contributors
- 1239 Closed PRs
- 1845 Stars
- 1918 Forks
- Discord Chat
- 7865 total registered (130% up from last SOTF!)
- Website (last 30 days)
- 35.9K page views
- 3.29K new users
Sponsorship
Open Collective Pete Johanson (detail what is used for what)
Thanks!
As we approach the two year birthday for ZMK, I am reminded of how far we have come in such a short time, in large part thanks to the amazing community that has grown around it. I am so grateful to have so many contributors, testers, and user believing in the project and helping make it a joy to work on.