From 909a4a8a0112b9f9c62e3c260ac643b49a4258b2 Mon Sep 17 00:00:00 2001 From: Cem Aksoylar Date: Mon, 18 Sep 2023 22:35:20 -0700 Subject: [PATCH] Fill out keymap section and boards/shields --- docs/blog/2023-09-15-zmk-sotf-6.md | 151 ++++++++++++++++------------- 1 file changed, 82 insertions(+), 69 deletions(-) diff --git a/docs/blog/2023-09-15-zmk-sotf-6.md b/docs/blog/2023-09-15-zmk-sotf-6.md index 7cbba3d6..9db7777c 100644 --- a/docs/blog/2023-09-15-zmk-sotf-6.md +++ b/docs/blog/2023-09-15-zmk-sotf-6.md @@ -1,7 +1,7 @@ --- title: "ZMK State Of The Firmware #6" author: Cem Aksoylar -author_title: Project Contributor +author_title: Documentation maintainer author_url: https://github.com/caksoylar author_image_url: https://avatars.githubusercontent.com/u/7876996 tags: [SOTF, keyboards, firmware, oss, ble] @@ -9,7 +9,7 @@ tags: [SOTF, keyboards, firmware, oss, ble] Welcome to the sixth ZMK "State Of The Firmware" (SOTF)! -This update will cover all the major activity since [SOTF #5](/blog/2022/04/10/zmk-sotf-5). That was over a year ago (again!), so lots to cover! +This update will cover all the major activity since [SOTF #5](/blog/2022/04/10/zmk-sotf-5). That was over a year ago (again!), so there are many new exciting features and plenty of improvements to cover! ## Recent Activity @@ -17,136 +17,150 @@ Here's a summary of the various major changes since last time, broken down by th ### Keymaps/Behaviors -Global quick tap [#1187] +#### Hold-tap improvements -Key toggle [#1278] +[andrewjrae] added the [global quick tap property](../docs/behaviors/hold-tap.md#global-quick-tap) to the hold-tap behavior in [#1187](https://github.com/zmkfirmware/zmk/pull/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! -Mask triggering modifiers by default in mod morphs and add `keep-mods` property [#1412] +[urob] added the [`hold-trigger-on-release` property](../docs/behaviors/hold-tap.md#positional-hold-tap-and-hold-trigger-key-positions) in [#1423](https://github.com/zmkfirmware/zmk/pull/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. -Fix bug causing stuck keys with combo & hold-tap interactions [#1411] +#### Masking mods in mod-morphs -Add `hold-trigger-on-release` property for positional hold-tap uses [#1423] +[aumuell], [vrinek] and [urob] contributed to improving the behavior of [mod-morphs](../docs/behaviors/mod-morph.md) by masking the triggering modifiers and added `keep-mods` property in [#1412](https://github.com/zmkfirmware/zmk/pull/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. -Sticky key fixes [#1586], [#1745] +#### Parameterized macros -Parameterized macros [#1232] +[petejohanson] added [macros that can be parameterized](../docs/behaviors/macros.md#parameterized-macros) with one or two parameters in [#1232](https://github.com/zmkfirmware/zmk/pull/1232). This allows users to define macros in a more modular way and is a nice quality-of-life improvement. -Add sensor rotate behaviors to use invoke any behavior from encoders [#1758] +#### Arbitrary behaviors on encoder rotation -Caps word ignore modifiers [#1330] ? +[nickconway] and [petejohanson] added [sensor rotation behaviors](../docs/behaviors/sensor-rotate.md) to allow invoking arbitrary behaviors from encoders [#1758](https://github.com/zmkfirmware/zmk/pull/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. -Tap dances can be used in combos [#1518] ? +(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](https://github.com/zmkfirmware/zmk/issues/1494).) + +#### Key toggle behavior + +[cgoates] added the [key toggle behavior](../docs/behaviors/key-toggle.md) in [#1278](https://github.com/zmkfirmware/zmk/pull/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](https://github.com/zmkfirmware/zmk/pull/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](../docs/behaviors/sticky-key.md) in [#1586](https://github.com/zmkfirmware/zmk/pull/1586), [#1745](https://github.com/zmkfirmware/zmk/pull/1745). + +[okke-formsma] fixed an issue allowing tap dances to be invoked by combos in [#1518](https://github.com/zmkfirmware/zmk/pull/1518). + +[petejohanson] tweaked the caps word behavior to ignore modifiers in [#1330](https://github.com/zmkfirmware/zmk/pull/1330). ### Bluetooth and Split Improvements -Release held keys on peripheral disconnect [#1340] +Release held keys on peripheral disconnect [#1340](https://github.com/zmkfirmware/zmk/pull/1340) -Connections status check fix [#1810] +Connections status check fix [#1810](https://github.com/zmkfirmware/zmk/pull/1810) -Option to require passkey input on pairing [#1822] +Option to require passkey input on pairing [#1822](https://github.com/zmkfirmware/zmk/pull/1822) -Multiple peripherals support [#836] +Multiple peripherals support [#836](https://github.com/zmkfirmware/zmk/pull/836) -Improve `settings_reset` shield by making it clear bonds more reliably, and allow it to build for all boards [#1879] +Improve `settings_reset` shield by making it clear bonds more reliably, and allow it to build for all boards [#1879](https://github.com/zmkfirmware/zmk/pull/1879) -Use directed advertising for split communication and more robust central scanning [#1913] [#1912] +Use directed advertising for split communication and more robust central scanning [#1913](https://github.com/zmkfirmware/zmk/pull/1913) [#1912](https://github.com/zmkfirmware/zmk/pull/1912) ### Hardware Support -Encoder support refactor [#1039] +Encoder support refactor [#1039](https://github.com/zmkfirmware/zmk/pull/1039) -Encoder support in split peripheral halves [#728] [#1841] +Encoder support in split peripheral halves [#728](https://github.com/zmkfirmware/zmk/pull/728) [#1841](https://github.com/zmkfirmware/zmk/pull/1841) -Debouncing for direct GPIO driver [#1288] +Debouncing for direct GPIO driver [#1288](https://github.com/zmkfirmware/zmk/pull/1288) -Add toggle mode support for direct GPIO driver [#1305] +Add toggle mode support for direct GPIO driver [#1305](https://github.com/zmkfirmware/zmk/pull/1305) -595 shift register driver [#1325] +595 shift register driver [#1325](https://github.com/zmkfirmware/zmk/pull/1325) -Add RGB auto off options using idle timeout and USB status [#1010] +Add RGB auto off options using idle timeout and USB status [#1010](https://github.com/zmkfirmware/zmk/pull/1010) -EPD initialization improvements [#1098] +EPD initialization improvements [#1098](https://github.com/zmkfirmware/zmk/pull/1098) -MAX7318 GPIO expander driver [#1295] +MAX7318 GPIO expander driver [#1295](https://github.com/zmkfirmware/zmk/pull/1295) -nice!view support [#1462] with custom status screen [#1768] +nice!view support [#1462](https://github.com/zmkfirmware/zmk/pull/1462) with custom status screen [#1768](https://github.com/zmkfirmware/zmk/pull/1768) -Improvements for Seeeduino Xiao BLE [#1293], [d0176f36], [#1545], [#1927] +Improvements for Seeeduino Xiao BLE [#1293](https://github.com/zmkfirmware/zmk/pull/1293), [d0176f36], [#1545](https://github.com/zmkfirmware/zmk/pull/1545), [#1927](https://github.com/zmkfirmware/zmk/pull/1927) -Wait options during matrix reads and writes [#1385], [#1473] ? +Wait options during matrix reads and writes [#1385](https://github.com/zmkfirmware/zmk/pull/1385), [#1473](https://github.com/zmkfirmware/zmk/pull/1473) ? ### Miscellaneous -Improved customer page support [#1227] +Improved customer page support [#1227](https://github.com/zmkfirmware/zmk/pull/1227) -Switch to a reusable user config workflow [#1183] [#1258] +Switch to a reusable user config workflow [#1183](https://github.com/zmkfirmware/zmk/pull/1183) [#1258](https://github.com/zmkfirmware/zmk/pull/1258) -Pre-commit setup and standardize formatting [#1651] +Pre-commit setup and standardize formatting [#1651](https://github.com/zmkfirmware/zmk/pull/1651) -Refactors by Joel [#1269] [#1255] ? +Refactors by Joel [#1269](https://github.com/zmkfirmware/zmk/pull/1269) [#1255](https://github.com/zmkfirmware/zmk/pull/1255) ? -Allow setting BLE connection intervals [#862] ? +Allow setting BLE connection intervals [#862](https://github.com/zmkfirmware/zmk/pull/862) ? -Default to 1ms USB HID interval [#1271] ? +Default to 1ms USB HID interval [#1271](https://github.com/zmkfirmware/zmk/pull/1271) ? -Allow configuring battery level report interval [#1303] ? +Allow configuring battery level report interval [#1303](https://github.com/zmkfirmware/zmk/pull/1303) ? #### Display Features -Add setting to invert display colors [#1754] +Add setting to invert display colors [#1754](https://github.com/zmkfirmware/zmk/pull/1754) -Add battery percentage option for battery widget [#1563] ? +Add battery percentage option for battery widget [#1563](https://github.com/zmkfirmware/zmk/pull/1563) ? -Refactor to create new peripheral status widget [#1263] ? +Refactor to create new peripheral status widget [#1263](https://github.com/zmkfirmware/zmk/pull/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). +[petejohanson] helped prepare and test the upgrade of ZMK to Zephyr 3.2 in [#1499](https://github.com/zmkfirmware/zmk/pull/1499)(https://github.com/zmkfirmware/zmk/pull/1499). ### Documentation -Configuration options [#722] +Configuration options [#722](https://github.com/zmkfirmware/zmk/pull/722) -Battery sensor documentation [#868] +Battery sensor documentation [#868](https://github.com/zmkfirmware/zmk/pull/868) -New behavior guide [#1268] +New behavior guide [#1268](https://github.com/zmkfirmware/zmk/pull/1268) -Tap dance and hold-tap documentation improvements [#1298] +Tap dance and hold-tap documentation improvements [#1298](https://github.com/zmkfirmware/zmk/pull/1298) -New shield docs for other interconnects including Xiao, Arduino Uno and Blackpill [#1607] +New shield docs for other interconnects including Xiao, Arduino Uno and Blackpill [#1607](https://github.com/zmkfirmware/zmk/pull/1607) -A new Bluetooth feature page [#1499] +A new Bluetooth feature page [#1499](https://github.com/zmkfirmware/zmk/pull/1499) Various improvements and fixes by kurtis-lew, joelspadin, filterpaper, byran.tech, dxmh, caksoylar and many others ## New Shields -- Eternal keypad [#1136] -- nullbits SNAP [#1319] -- Aurora Sweep [#1504] -- Aurora Corne [#1520] -- Aurora Lily58 [#1553] -- Aurora Sofle [#1864] -- Aurora Helix [#1873] -- ZMK Uno shield [#1576] -- Waterfowl [#1554] -- Kyria Rev 3 [#1627] -- Leeloo v2 and Leeloo-Micro [#1762] -- Spaceman Pancake [#1400] -- Reviung5 [#1548] +- Eternal keypad [#1136](https://github.com/zmkfirmware/zmk/pull/1136) - [halcyonCorsair](https://github.com/halcyonCorsair) +- nullbits SNAP [#1319](https://github.com/zmkfirmware/zmk/pull/1319) - [jaygreco](https://github.com/jaygreco) +- Aurora Sweep [#1504](https://github.com/zmkfirmware/zmk/pull/1504) - [petejohanson] +- Aurora Corne [#1520](https://github.com/zmkfirmware/zmk/pull/1520) - [petejohanson] +- Aurora Lily58 [#1553](https://github.com/zmkfirmware/zmk/pull/1553) - [petejohanson] +- Aurora Sofle [#1864](https://github.com/zmkfirmware/zmk/pull/1864) - [petejohanson] +- Aurora Helix [#1873](https://github.com/zmkfirmware/zmk/pull/1873) - [petejohanson] +- ZMK Uno shield [#1576](https://github.com/zmkfirmware/zmk/pull/1576) - [petejohanson] +- Waterfowl [#1554](https://github.com/zmkfirmware/zmk/pull/1554) - [JW2586](https://github.com/JW2586) +- Kyria Rev 3 [#1627](https://github.com/zmkfirmware/zmk/pull/1627) - [petejohanson] +- Leeloo v2 and Leeloo-Micro [#1762](https://github.com/zmkfirmware/zmk/pull/1762) - [ClicketySplit](https://github.com/ClicketySplit) +- Spaceman Pancake [#1400](https://github.com/zmkfirmware/zmk/pull/1400) - [jasonhazel](https://github.com/jasonhazel) +- Reviung5 [#1548](https://github.com/zmkfirmware/zmk/pull/1548) - [zblesk](https://github.com/zblesk) ## New Boards -- RP2040 boards -- Puchi BLE [#1445] -- nRFMicro 1.3/1.4 (nRF52833) [#912] -- nRF5340 DK [#1562] -- PillBug [#1530] -- Preonic Rev 3 [#1575] -- Corne-ish Zen v2 [#1498] and v1 [#1593] -- Polarity Works CKP family of boards [#1547] +- RP2040 boards, including Sparkfun Pro Micro, Adafruit KB2040, Seeeduino Xiao RP2040 were added as part of the Zephyr 3.2 upgrade [#1499](https://github.com/zmkfirmware/zmk/pull/1499) - [petejohanson] +- Puchi BLE [#1445](https://github.com/zmkfirmware/zmk/pull/1445) - [BenRoe](https://github.com/BenRoe) +- nRFMicro 1.3/1.4 (nRF52833) [#912](https://github.com/zmkfirmware/zmk/pull/912) - [pashutk](https://github.com/pashutk) +- nRF5340 DK [#1562](https://github.com/zmkfirmware/zmk/pull/1562) - [joelspadin] +- PillBug [#1530](https://github.com/zmkfirmware/zmk/pull/1530) - [kylemccreery](https://github.com/kylemccreery) +- Preonic Rev 3 [#1575](https://github.com/zmkfirmware/zmk/pull/1575) - [jeromeOlivier](https://github.com/jeromeOlivier) +- Corne-ish Zen v2 [#1498](https://github.com/zmkfirmware/zmk/pull/1498) and v1 [#1593](https://github.com/zmkfirmware/zmk/pull/1593) - [petejohanson] and [caksoylar] +- Polarity Works CKP family of boards [#1547](https://github.com/zmkfirmware/zmk/pull/1547) - [ReFil](https://github.com/ReFil) ## Coming Soon! @@ -188,10 +202,9 @@ Some statistics of interest for ZMK: 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. [okke-formsma]: https://github.com/okke-formsma -[mcrosson]: https://github.com/mcrosson [nicell]: https://github.com/Nicell [petejohanson]: https://github.com/petejohanson [kurtis-lew]: https://github.com/kurtis-lew [joelspadin]: https://github.com/joelspadin -[bcat]: https://github.com/bcat [dxmh]: https://github.com/dxmh +[caksoylar]: https://github.com/caksoylar