Skip to content

feat(docs): Improve the toolchain setup page#2272

Merged
caksoylar merged 33 commits intozmkfirmware:mainfrom
nmunnich:toolchain-docs
Jun 2, 2024
Merged

feat(docs): Improve the toolchain setup page#2272
caksoylar merged 33 commits intozmkfirmware:mainfrom
nmunnich:toolchain-docs

Conversation

@nmunnich
Copy link
Copy Markdown
Contributor

Making the changes discussed on Discord. In particular:

  • Removing the 'install west' section
  • Renaming "Install Dependencies" to "Install Zephyr and West".
  • Consolidating the Linux based operating systems which aren't Raspberry OS to one tab

Further improvement could be made by identifying a better way to handle Raspberry OS, since it is an outlier, but I feel that this is good enough for now.

KemoNine and others added 10 commits March 2, 2021 19:06
- Give a brief overview of docker+vscode vs native os
- Dedicated page for docker+vscode setup
- Dedicated page for native os setup
- Dedicated page for setting up zmk sources for development
…ns. Expand some notes and caution boxes so some pitfalls and ways to improve performance are more clear to users
@caksoylar caksoylar added the documentation Improvements or additions to documentation label Apr 15, 2024
@caksoylar caksoylar self-assigned this Apr 15, 2024
@caksoylar caksoylar changed the title feat(docs) Improving the setting up toolchain page feat(docs): Improve the toolchain setup page Apr 23, 2024
Copy link
Copy Markdown
Contributor

@caksoylar caksoylar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like a good improvement to me in general, to reduce confusion on what steps to follow and simply our docs.

I have one concern regarding following step 3 (Get Zephyr and install Python dependencies), it also makes you clone Zephyr and run west zephyr-export on the clone. Since fetching Zephyr will be handled by west update on the ZMK repo, we should skip that. How about adding some sub-bullet points like below:

3. [Get Zephyr and install Python dependencies](https://docs.zephyrproject.org/latest/develop/getting_started/index.html#get-zephyr-and-install-python-dependencies)
  - You can skip the steps starting with "Get the Zephyr source code" and "Export a Zephyr CMake package" since ZMK will fetch its own copy of Zephyr automatically
  - ZMK also does not need all of the additional dependencies found in Zephyr's `requirements.txt`, but only those found in `requirements-base.txt`. So you can modify parts of the related commands like below:

    ```diff
    - pip3 install -r zephyr/scripts/requirements.txt
    + pip3 install -r zephyr/scripts/requirements-base.txt
    ```

Note that I moved the extra info box here as well.

I believe we should keep the "Export Zephyr CMake package" section as well, in that case.

@nmunnich
Copy link
Copy Markdown
Contributor Author

Performed a larger redo of this by combining its content with that found in #437

This updates the approach used there to the modern docs, and continues to leverage the Zephyr docs. The previous comments were both resolved in the process, but another careful look is likely due.

Note that there are some blocks written in #437 which I was uncertain about including, so I'm listing them here:

:::note Windows Users
Please note the ZMK builds run slower (up to 3-5 minutes on slower hardware) with Docker on Windows if you don't use the WSL2 filesystem to store files. If you run into performance problems you can checkout the ZMK sources inside a WSL2 environment and run code . to open the sources. This can make builds run at near-native speed.

This approach will also need the Remote - WSL extension installed in VS Code.

Files stored within WSL2 can be accessed via Windows Explorer by navigating to \\wsl$.
:::

I don't know how accurate this is, and Zephyr does not recommend WSL, so I'm not sure this should be included.

:::danger The Docker environment will NOT run on arm CPUs like the Raspberry Pi or Apple Silicon. You must use the native environment if using an arm CPU. :::

Googling this seems to imply that there are workarounds, but I do not have access to a device to test it out. It is not included under the current docs, so I don't see a reason to include it until it is brought up by someone.

:::caution Windows Users If you're using the Docker environment on Windows, you must checkout the sources to a folder within C:\Users[your_user_here] to avoid a potential permissions issue.

If you're using the WSL2 filesystem the sources should go under ~/ to avoid potential permissions issues. :::

I think this is true, but I have not tested. I've included it anyway, as it certainly does not hurt.

Thoughts on these would be appreciated. I am aware that there is duplicated content in the Native section - this is because I thought it looked nicer that way, but would be willing to change it upon request.

@infused-kim
Copy link
Copy Markdown
Contributor

I can confirm that it’s working fine on Apple Silicon.

I don’t know if the zmk images have ARM versions. So it might be running using emulation, but it works just fine on Apple silicon and doesn’t need any special configuration.

@nmunnich nmunnich requested a review from caksoylar May 17, 2024 19:10
@caksoylar
Copy link
Copy Markdown
Contributor

FYI I'll try to review this weekend.

Copy link
Copy Markdown
Contributor

@caksoylar caksoylar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While it seems like a decent improvement, I have to say incorporating #437 into this PR has made it much harder to review. It also is too verbose in some places IMO, which I tried to address in comments.

I also gave up on adding comments to the native page after a while because of the content duplication, I think it will make maintenance harder.

Thanks for making the requested changes from earlier.

@caksoylar
Copy link
Copy Markdown
Contributor

caksoylar commented May 21, 2024

To address the points in your comment:

:::note Windows Users
[...]
I don't know how accurate this is, and Zephyr does not recommend WSL, so I'm not sure this should be included.

While the WSL un-recommendation doesn't apply to most ZMK users (because of uf2 flashing) I wouldn't put any WSL-specific instructions in our docs anyway. Users can simply follow the corresponding Linux distro instructions.

:::danger The Docker environment will NOT run on arm CPUs like the Raspberry Pi or Apple Silicon. You must use the native environment if using an arm CPU. :::
Googling this seems to imply that there are workarounds, but I do not have access to a device to test it out. It is not included under the current docs, so I don't see a reason to include it until it is brought up by someone.

I agree, it shouldn't be our responsibility to teach this to users.

:::caution Windows Users If you're using the Docker environment on Windows, you must checkout the sources to a folder within C:\Users[your_user_here] to avoid a potential permissions issue.
[...]
I think this is true, but I have not tested. I've included it anyway, as it certainly does not hurt.

I don't think this is very necessary either, but we can keep it I guess.

Thoughts on these would be appreciated. I am aware that there is duplicated content in the Native section - this is because I thought it looked nicer that way, but would be willing to change it upon request.

Like I noted in the review, I'd take the worse look over the maintenance difficulty.

nmunnich and others added 3 commits May 21, 2024 11:00
Removing detail from VSCode note

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

@caksoylar caksoylar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks again, the deduplication helped a lot. Can we do the same for the glob tab? Steps 2 and 3 seem to be identical.

Regarding the bullet points in the getting started page: Maybe we can integrate the following paragraphs into the bullet points? This way there is less repetition, but still visual separation.

nmunnich and others added 5 commits May 22, 2024 01:06
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
@nmunnich
Copy link
Copy Markdown
Contributor Author

nmunnich commented May 21, 2024

I deduplicated the glob tab, but in a slightly awkward way by getting rid of the function exporting the OsTabs environment. glob needing two tabs on 1 and 4 looks horrible, so I introduced a css class to just hide the second tab menu while keeping the switching functionality. There ought to be be a better way to do this, but I don't know if or how.

Tried integrating the bullet points, I quite like it.

Copy link
Copy Markdown
Contributor

@caksoylar caksoylar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, I personally think the hack is fine but we can see if anyone disagrees.

I am generally happy with this, but given the scope of changes we should see if anyone else from @zmkfirmware/docs has comments?

nmunnich and others added 2 commits May 23, 2024 11:12
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
@nmunnich
Copy link
Copy Markdown
Contributor Author

nmunnich commented May 23, 2024

I re-added the missing information and made the information in the ubuntu section a bit nicer too -- this is exactly what "note" blocks are for, imo. I have no idea if the powershell script works either, though.

@caksoylar
Copy link
Copy Markdown
Contributor

I'll do a final pass and if everything's good I'll merge tomorrow, unless anyone has objections.

@caksoylar caksoylar merged commit 308d6bc into zmkfirmware:main Jun 2, 2024
@nmunnich nmunnich deleted the toolchain-docs branch June 2, 2024 08:30
EnotionZ pushed a commit to EnotionZ/zmk that referenced this pull request Jun 22, 2024
Split the toolchain setup into separate docker and native pages
and improve instructions to better refer to Zephyr docs in certain steps.
Also refactor to improve consistency and add virtualenv instructions.

---------

Co-authored-by: KemoNine <mcrosson@kemonine.info>
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
alan-w-255 pushed a commit to alan-w-255/zmk that referenced this pull request Jun 30, 2024
Split the toolchain setup into separate docker and native pages
and improve instructions to better refer to Zephyr docs in certain steps.
Also refactor to improve consistency and add virtualenv instructions.

---------

Co-authored-by: KemoNine <mcrosson@kemonine.info>
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
aaroncorgan added a commit to aaron-j-reeves/zmk that referenced this pull request Jul 19, 2024
commit 528b34414f2082ff7ea214d8239fd3ce9eccce27
Author: aaroncorgan <aaron.reeves@corgan.com>
Date:   Fri Jul 19 13:24:36 2024 -0500

    Squashed commit of the following:

    commit 7bd74a6
    Author: Cem Aksoylar <caksoylar@users.noreply.github.com>
    Date:   Sat Jul 13 17:31:07 2024 -0700

        fix(docs): Add required display-name in physical layout examples

    commit 8c6bda2
    Author: Peter Johanson <peter@peterjohanson.com>
    Date:   Fri Jul 5 15:30:44 2024 -0600

        fix: Proper behavior metadata for key repeat/toggle

    commit 3694ff8
    Author: Peter Johanson <peter@peterjohanson.com>
    Date:   Fri Jul 5 12:56:33 2024 -0600

        fix: Fix up layer metadata, move to layer IDs.

        * Studio will use stable layer IDs to refer to layers, so that
          layer reordering doesn't affect behavior bindings, so update to match.
        * Fix a few layer metadata entries that missed being refactored.

    commit e01f13f
    Author: Peter Johanson <peter@peterjohanson.com>
    Date:   Thu Jul 4 18:26:27 2024 +0000

        fix: Fix external power settings load issue.

        * Because settings load is delayed now, enable external
          power on init, and let it be disabled on settings load
          later, to ensure power is on early for
          other peripheral initialization.

        Fixes: zmkfirmware#2361

    commit 82eed0f
    Author: Peter Johanson <peter@peterjohanson.com>
    Date:   Wed Jun 5 01:21:34 2024 -0700

        feat(boards): Add flash/settings to XIAO RP2040.

        * Add storage partition.
        * Default necessacy Kconfig symbols for flash/settings.

    commit b4f9081
    Author: Peter Johanson <peter@peterjohanson.com>
    Date:   Wed Jul 3 13:58:08 2024 -0600

        docs: Updated new shield documentation for physical layouts.

        * Document how to define one or more physical layouts and assign
          the chosen one.

        Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>

    commit 5fcf092
    Author: Peter Johanson <peter@peterjohanson.com>
    Date:   Wed May 1 14:07:48 2024 -0700

        refactor(shields): Set ZMK Uno physical layouts.

        * Add physical layout definitions for uno and split uno shields.

    commit 74f7fe9
    Author: Peter Johanson <peter@peterjohanson.com>
    Date:   Wed May 1 14:06:28 2024 -0700

        fix(splits): Increase split notify stack size.

    commit 0438cb0
    Author: Peter Johanson <peter@peterjohanson.com>
    Date:   Wed Apr 24 21:11:16 2024 -0700

        feat(kscan): More complete PM support to drivers.

        * Update our GPIO kscan drivers to more completely support PM device,
          by doing proper hardare init/deinit in the PM action hook.

    commit c5cca5b
    Author: Peter Johanson <peter@peterjohanson.com>
    Date:   Wed Apr 24 18:14:02 2024 -0700

        feat: Add keyboard physical layout system.

        * Add bindings to allow creating multiple physical layouts that specify
          their key's physical attributes, and the matching matrix transform
          and dependant kscan to use.
        * Synthesize a basic physical layout if none specified, for backwards
          compatibility.
        * Update matrix transform API to explicitly pass in the selected transform
          to the API instead of using a fixed chosen transform.
        * Move kscan subscription and handling into the physical layout code, so
          that selecting a different physical layout at runtime can also use the
          correct kscan instance.
        * Add `physical_layouts.dtsi` file to include so you can use the
          pre-configured `&key_physical_attrs` for adding you layout keys.

    commit 80173f8
    Author: Peter Johanson <peter@peterjohanson.com>
    Date:   Wed Jul 3 02:33:26 2024 -0600

        fix: Improve startup time with proper settings loading.

        * Avoid doing duplicate calls to setings_load_subtree, which iterates
          NVS fully each time under the hood, and instead use on settings_load
          later in the lifecycle.

    commit f18974e
    Author: Peter Johanson <peter@peterjohanson.com>
    Date:   Mon Jul 1 18:26:43 2024 +0000

        fix: Adjust hid indicator listeners for event refactor

        * Avoid static listener to prevent subscription
          issue.

    commit f2ea1da
    Author: ReFil <31960031+ReFil@users.noreply.github.com>
    Date:   Sun Jun 30 17:59:46 2024 +0100

        fix(boards): Suppress devicetree warning

        nRF5x boards throw a spurious warning for duplicate unit-address when the devicetree gets processed

        Upstream issue:  zephyrproject-rtos/zephyr#29713

        Warning suppressed as per: https://docs.zephyrproject.org/latest/build/dts/intro-input-output.html

    commit 96e55c8
    Author: Peter Johanson <peter@peterjohanson.com>
    Date:   Fri Jun 28 17:40:49 2024 -0600

        fix: BLE refactor mouse keys fix.

    commit 483a493
    Author: Peter Johanson <peter@peterjohanson.com>
    Date:   Wed Apr 17 16:44:22 2024 -0700

        feat(behaviors): Add local ID system for behaviors

        * Add a new feature for tracking a given behavior by a new concept
          of a "behavior local ID" which is a stable 16-bit identifier for
          a given behavior, that is resilient to new behaviors being added
          and requires no additional work on the part of the behavior
          authors.
        * Add implementations for either settings lookup table, or CRC16
          hashing of behavior device names for generating behavior local
          IDs.

    commit f7c34c7
    Author: Peter Johanson <peter@peterjohanson.com>
    Date:   Fri Apr 5 16:44:42 2024 +0000

        refactor(ble): Extract API to get active profile connection.

        * Add `struct bt_conn *zmk_ble_active_profile_conn(void)` function for
          fetching a connection for the current profile.

    commit b576d52
    Author: Peter Johanson <peter@peterjohanson.com>
    Date:   Wed Mar 27 22:17:32 2024 +0000

        feat(core): Support adding subs to other listeners.

        * Used for ZMK Studio event remappers to be sure the one
          RPC event listener subscribes to their mapped events.

    commit 49f7275
    Author: Peter Johanson <peter@peterjohanson.com>
    Date:   Tue Jun 25 11:57:54 2024 -0600

        fix: Add metadata to missed behaviors.

    commit 29599e8
    Author: Timoyoungster <timo.proemer04@gmail.com>
    Date:   Fri Jun 14 15:23:37 2024 +0200

        docs: hopefully more clear description of the new setting

    commit 10d03ca
    Author: Timoyoungster <timo.proemer04@gmail.com>
    Date:   Fri Jun 14 02:28:49 2024 +0200

        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)

    commit 4dce096
    Author: honorless <86894501+lesshonor@users.noreply.github.com>
    Date:   Sun Apr 7 18:13:35 2024 -0400

        docs: improve settings_reset link

    commit 9c6d1af
    Author: honorless <86894501+lesshonor@users.noreply.github.com>
    Date:   Mon Mar 25 14:43:54 2024 -0400

        ci(build): limit run scope

        * Cancel redundant non-nightly runs and jobs dependent on canceled jobs.

        * Limit scheduled runs to zmkfirmware-owned repos.

    commit 7c9477b
    Author: honorless <86894501+lesshonor@users.noreply.github.com>
    Date:   Mon Mar 25 14:26:35 2024 -0400

        ci(build): improve security posture

        * Limit unnecessary permissions.

        * Avoid storing credentials.

    commit 0bea783
    Author: honorless <86894501+lesshonor@users.noreply.github.com>
    Date:   Mon Mar 25 14:08:19 2024 -0400

        ci(build): amend changed-files invocation

    commit 3e2c428
    Author: Peter Johanson <peter@peterjohanson.com>
    Date:   Mon Jun 24 10:58:34 2024 -0600

        chore: Add rp2040/USB logging core coverage.

        * Include an rp2040 core build target, and include USB logging snippet
          for completeness.

    commit 03099b0
    Author: Peter Johanson <peter@peterjohanson.com>
    Date:   Wed Mar 27 12:27:49 2024 -0700

        feat(behaviors): Add behavior metadata information.

        * For upcoming ZMK studio work, make a set of rich metadata available
          to provide a friendly name for a behavior, and allow super flexible
          descriptions of the parameters the behaviors take.
        * Add ability to validate a zmk_behavior_binding against
          the behavior metadata available.

    commit 7cdf1e4
    Author: Peter Johanson <peter@peterjohanson.com>
    Date:   Mon Jun 24 10:48:21 2024 -0600

        fix: Actually add the `zmk-usb-logging` snippet.

        * D'oh.

    commit 7be955f
    Author: Peter Johanson <peter@peterjohanson.com>
    Date:   Fri Jun 21 13:12:13 2024 -0600

        fix(usb): Ensure USB init is last

        * To avoid USB init issues due to other initialization disrupting
          USB setup, move USB setup to a lower priority.

    commit a080b52
    Author: Peter Johanson <peter@peterjohanson.com>
    Date:   Mon Jun 17 15:39:32 2024 -0600

        refactor: Remove static CDC ACM logging nodes.

        * To avoid spurious CDC ACM instances when usint CDC ACM for something
          other than logging, move to the approach used by Zephyr of using a
          snippet to redirect console output to a CDC ACM node added by the
          snippet. Remove all the existing static CDC ACM nodes.
        * Add new `zmk-usb-logging` snippet that mirrors the upstream
          `cdc-acm-logging` snippet, but still does our extra USB logging
          configuration.
        * Updated logging docs accordingly.

        Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>

    commit 7c09eb2
    Author: Cem Aksoylar <caksoylar@users.noreply.github.com>
    Date:   Sun Jun 9 21:35:10 2024 -0700

        refactor(docs): Document and enforce header casing conventions

    commit e56db30
    Author: Cem Aksoylar <caksoylar@users.noreply.github.com>
    Date:   Sun Jun 9 21:32:26 2024 -0700

        refactor(docs): Split up troubleshooting page into a section

    commit 308d6bc
    Author: Nicolas Munnich <98408764+Nick-Munnich@users.noreply.github.com>
    Date:   Sun Jun 2 06:51:08 2024 +0200

        feat(docs): Improve the toolchain setup page (zmkfirmware#2272)

        Split the toolchain setup into separate docker and native pages
        and improve instructions to better refer to Zephyr docs in certain steps.
        Also refactor to improve consistency and add virtualenv instructions.

        ---------

        Co-authored-by: KemoNine <mcrosson@kemonine.info>
        Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>

    commit 2d96f46
    Author: Nicolas Munnich <98408764+Nick-Munnich@users.noreply.github.com>
    Date:   Sun May 26 07:16:33 2024 +0200

        fix(docs): Removing to-to typos (zmkfirmware#2310)

    commit 2ee76be
    Author: German Gutierrez <GermanG@users.noreply.github.com>
    Date:   Mon May 13 23:43:35 2024 +0200

        fix(soft_off): central waits 100ms in split if hold_time enabled

    commit f0b20c1
    Author: Joel Spadin <joelspadin@gmail.com>
    Date:   Fri Oct 13 13:07:55 2023 -0500

        feat(boards): Add nRF52 high voltage DC/DC config

        Added a Kconfig option to enable SOC_DCDC_NRF52X_HV for nice_nano_v2
        and mikoto. According to Nordic's documentation, the DC/DC regulator is
        more efficient than the LDO regulator, so this is enabled by default.

        The following boards do not support this mode and were not changed:

        - nice_nano
        - nice60
        - nrfmicro_11, nrfmicro_13
        - nrf52840_m2
        - bluemicro840

        I could not find schematics to confirm whether the following boards
        support this mode:

        - bt60_v1, bt60_v2
        - bt65_v1
        - bt75_v1
        - corneish_zen_v1, corneish_zen_v2
        - pillbug
        - puchi_ble_v1
        - s40nc

    commit 8f5c7bb
    Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Date:   Mon Feb 26 05:52:14 2024 +0000

        chore(deps): bump pre-commit/action from 3.0.0 to 3.0.1

        Bumps [pre-commit/action](https://github.com/pre-commit/action) from 3.0.0 to 3.0.1.
        - [Release notes](https://github.com/pre-commit/action/releases)
        - [Commits](pre-commit/action@v3.0.0...v3.0.1)

        ---
        updated-dependencies:
        - dependency-name: pre-commit/action
          dependency-type: direct:production
          update-type: version-update:semver-patch
        ...

        Signed-off-by: dependabot[bot] <support@github.com>

    commit 7d1f84e
    Author: Horu <73709188+HigherOrderLogic@users.noreply.github.com>
    Date:   Tue May 14 03:47:33 2024 +0700

        chore: fix typos in various places

    commit 4dfc45d
    Author: ReFil <31960031+ReFil@users.noreply.github.com>
    Date:   Fri May 3 19:17:09 2024 +0100

        feat(docs): Document example toggle-mode implementation

        ---------

        Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>

    commit 2423136
    Author: ReFil <31960031+ReFil@users.noreply.github.com>
    Date:   Fri May 3 08:22:05 2024 +0100

        fix(boards): Fix pulls on ZMK uno toggle switch

        The devicetree pulls always add on to the extra pulls configured by toggle mode, so these should not have pulls defined in the devicetree. Saved ~200uA avg on another board with a 3t toggle switch

    commit af90882
    Author: Peter Johanson <peter@peterjohanson.com>
    Date:   Wed May 1 11:01:32 2024 -0700

        fix: Initialize sideband kscan in APPLICATION.

        * In order to be sure the rest of the system is fully ready before
          intializing, because init may result in immediate events being
          triggered when used with toggle direct kscan inner devices.

    commit d1ad347
    Author: German Gutierrez <GermanG@users.noreply.github.com>
    Date:   Mon Apr 29 18:22:40 2024 +0200

        fix: shortening keymap_soft_off behavior node

        * Shorten the soft off node in order for it to work across splits.

    commit 0d3a4b7
    Author: Jarryd Tilbrook <jarryd@tilbrooktech.com>
    Date:   Thu Apr 25 22:26:26 2024 +0800

        fix(underglow): Correctly set underglow state

        This fixes a bug introduced in zmkfirmware#2244

    commit 4d56685
    Author: Pablo Martínez <58857054+elpekenin@users.noreply.github.com>
    Date:   Thu Apr 25 10:55:42 2024 +0200

        fix(rgb): auto-off logic

    commit f4a070a
    Author: Sadek Baroudi <sadekbaroudi@gmail.com>
    Date:   Sun Apr 21 12:37:47 2024 -0700

        fix(boards): nrf boards missing SPI in pinctrl and dtsi, requiring users to manually define in their shield definitions if they wanted to use SPI

    commit 16e92cf
    Author: Peter Johanson <peter@peterjohanson.com>
    Date:   Thu Apr 18 06:38:46 2024 +0000

        fix(behaviors): Add multiple soft-off instances properly.

        * Properly pass the node id for the unique
          soft-off behavior instance when defining it.

    commit e22bc76
    Author: Keeley Hoek <keeley@hoek.io>
    Date:   Sun Apr 7 07:05:51 2024 -0400

        fix(hid): Correct off-by-one buffer overflow with NKRO

    commit a9021de
    Author: Cem Aksoylar <caksoylar@users.noreply.github.com>
    Date:   Tue Apr 9 10:25:33 2024 -0700

        fix(docs): Add wakeup-source to split new shield example

    commit dfc6dc8
    Author: Cem Aksoylar <caksoylar@users.noreply.github.com>
    Date:   Tue Feb 27 11:50:54 2024 -0800

        fix(docs): Make clear the matrix transform example is incomplete

    commit 7a51a46
    Author: Cem Aksoylar <caksoylar@users.noreply.github.com>
    Date:   Tue Feb 27 11:41:46 2024 -0800

        feat(docs): Add pointer to shields folder in new shield docs

    commit 849eca7
    Author: Xudong Zheng <7pkvm5aw@slicealias.com>
    Date:   Fri Feb 23 16:59:48 2024 -0500

        refactor(underglow): fix uninitialized variable warning

commit dbbeb70
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Wed Apr 10 04:55:14 2024 +0000

    feat(mouse): Updated mouse keys docs.

commit 0b1d513
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Tue Apr 9 21:43:07 2024 -0700

    fix(mouse): Fix up tests and make ZMK_MOUSE explicit.

commit 1974fe9
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Sun Mar 24 18:30:08 2024 +0000

    refactor(mouse): Lots of mouse refactors.

    * Dedicated mouse source directory.
    * Split mouse HID into dedicated USB endpoint and HoG service.
    * Enable composite USB device automatically, tweak the
      various default sizes.

commit 4ea55c3
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Wed Apr 10 02:13:51 2024 +0000

    refactor(mouse): Tweak behavior inclusion, listener code

    * Always import mouse keys behavior and their associated listeners.
    * Tweak listener code to only add listener nodes when
      listener and the associated input device are enabled.

commit f446ab4
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Mon Feb 19 10:23:16 2024 +0000

    fix: Testing fixes for listener refactor.

commit ca28e83
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Mon Feb 19 01:55:06 2024 -0800

    chore: Minor input behavior clean-up.

commit 36c7827
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Mon Feb 12 20:12:34 2024 +0000

    refactor: Proper per-device input listeners.

    * Buffer data from input devices and only surface to HID once synd'd.

commit 3ff6051
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Mon Dec 11 16:28:31 2023 -0800

    fix(mouse): Fixes for logging.

    * Corrected logging for two-axis input timestamps.

commit 664a61e
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Mon Dec 11 15:45:50 2023 -0800

    refactor(mouse): Remove mouse work queue, Kconfig

    * Remove now-unused mouse work queue and related mouse main file.
    * Move ticks config into a DTS property on the two axis input behavior.

commit 368f98c
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Thu Nov 23 22:23:13 2023 +0000

    feat(mouse): Add input configs for data mods.

    * Add ability to swap X/Y, invert X and Y values, and apply a
      scalar multiplier/divisor.

commit 0ba8a29
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Tue Nov 21 00:30:25 2023 +0000

    refactor: Use input system for pointer events.

commit 96ad160
Author: Cem Aksoylar <caksoylar@users.noreply.github.com>
Date:   Wed Nov 15 23:41:26 2023 -0800

    fix(mouse): Bump up default mouse tick duration to prevent crashes

commit 9a68b37
Author: Cem Aksoylar <caksoylar@users.noreply.github.com>
Date:   Sun Oct 15 23:27:45 2023 -0700

    feat(mouse): Split move/scroll & x/y acceleration

commit 2eba88d
Author: Cem Aksoylar <caksoylar@users.noreply.github.com>
Date:   Wed Nov 15 21:11:41 2023 -0800

    feat(mouse): Add mouse move and scroll support [WIP]

    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>
arabshapt pushed a commit to arabshapt/zmk that referenced this pull request Jul 20, 2024
commit 7bd74a6
Author: Cem Aksoylar <caksoylar@users.noreply.github.com>
Date:   Sat Jul 13 17:31:07 2024 -0700

    fix(docs): Add required display-name in physical layout examples

commit 8c6bda2
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Fri Jul 5 15:30:44 2024 -0600

    fix: Proper behavior metadata for key repeat/toggle

commit 3694ff8
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Fri Jul 5 12:56:33 2024 -0600

    fix: Fix up layer metadata, move to layer IDs.

    * Studio will use stable layer IDs to refer to layers, so that
      layer reordering doesn't affect behavior bindings, so update to match.
    * Fix a few layer metadata entries that missed being refactored.

commit e01f13f
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Thu Jul 4 18:26:27 2024 +0000

    fix: Fix external power settings load issue.

    * Because settings load is delayed now, enable external
      power on init, and let it be disabled on settings load
      later, to ensure power is on early for
      other peripheral initialization.

    Fixes: zmkfirmware#2361

commit 82eed0f
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Wed Jun 5 01:21:34 2024 -0700

    feat(boards): Add flash/settings to XIAO RP2040.

    * Add storage partition.
    * Default necessacy Kconfig symbols for flash/settings.

commit b4f9081
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Wed Jul 3 13:58:08 2024 -0600

    docs: Updated new shield documentation for physical layouts.

    * Document how to define one or more physical layouts and assign
      the chosen one.

    Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>

commit 5fcf092
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Wed May 1 14:07:48 2024 -0700

    refactor(shields): Set ZMK Uno physical layouts.

    * Add physical layout definitions for uno and split uno shields.

commit 74f7fe9
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Wed May 1 14:06:28 2024 -0700

    fix(splits): Increase split notify stack size.

commit 0438cb0
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Wed Apr 24 21:11:16 2024 -0700

    feat(kscan): More complete PM support to drivers.

    * Update our GPIO kscan drivers to more completely support PM device,
      by doing proper hardare init/deinit in the PM action hook.

commit c5cca5b
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Wed Apr 24 18:14:02 2024 -0700

    feat: Add keyboard physical layout system.

    * Add bindings to allow creating multiple physical layouts that specify
      their key's physical attributes, and the matching matrix transform
      and dependant kscan to use.
    * Synthesize a basic physical layout if none specified, for backwards
      compatibility.
    * Update matrix transform API to explicitly pass in the selected transform
      to the API instead of using a fixed chosen transform.
    * Move kscan subscription and handling into the physical layout code, so
      that selecting a different physical layout at runtime can also use the
      correct kscan instance.
    * Add `physical_layouts.dtsi` file to include so you can use the
      pre-configured `&key_physical_attrs` for adding you layout keys.

commit 80173f8
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Wed Jul 3 02:33:26 2024 -0600

    fix: Improve startup time with proper settings loading.

    * Avoid doing duplicate calls to setings_load_subtree, which iterates
      NVS fully each time under the hood, and instead use on settings_load
      later in the lifecycle.

commit f18974e
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Mon Jul 1 18:26:43 2024 +0000

    fix: Adjust hid indicator listeners for event refactor

    * Avoid static listener to prevent subscription
      issue.

commit f2ea1da
Author: ReFil <31960031+ReFil@users.noreply.github.com>
Date:   Sun Jun 30 17:59:46 2024 +0100

    fix(boards): Suppress devicetree warning

    nRF5x boards throw a spurious warning for duplicate unit-address when the devicetree gets processed

    Upstream issue:  zephyrproject-rtos/zephyr#29713

    Warning suppressed as per: https://docs.zephyrproject.org/latest/build/dts/intro-input-output.html

commit 96e55c8
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Fri Jun 28 17:40:49 2024 -0600

    fix: BLE refactor mouse keys fix.

commit 483a493
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Wed Apr 17 16:44:22 2024 -0700

    feat(behaviors): Add local ID system for behaviors

    * Add a new feature for tracking a given behavior by a new concept
      of a "behavior local ID" which is a stable 16-bit identifier for
      a given behavior, that is resilient to new behaviors being added
      and requires no additional work on the part of the behavior
      authors.
    * Add implementations for either settings lookup table, or CRC16
      hashing of behavior device names for generating behavior local
      IDs.

commit f7c34c7
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Fri Apr 5 16:44:42 2024 +0000

    refactor(ble): Extract API to get active profile connection.

    * Add `struct bt_conn *zmk_ble_active_profile_conn(void)` function for
      fetching a connection for the current profile.

commit b576d52
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Wed Mar 27 22:17:32 2024 +0000

    feat(core): Support adding subs to other listeners.

    * Used for ZMK Studio event remappers to be sure the one
      RPC event listener subscribes to their mapped events.

commit 49f7275
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Tue Jun 25 11:57:54 2024 -0600

    fix: Add metadata to missed behaviors.

commit 29599e8
Author: Timoyoungster <timo.proemer04@gmail.com>
Date:   Fri Jun 14 15:23:37 2024 +0200

    docs: hopefully more clear description of the new setting

commit 10d03ca
Author: Timoyoungster <timo.proemer04@gmail.com>
Date:   Fri Jun 14 02:28:49 2024 +0200

    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)

commit 4dce096
Author: honorless <86894501+lesshonor@users.noreply.github.com>
Date:   Sun Apr 7 18:13:35 2024 -0400

    docs: improve settings_reset link

commit 9c6d1af
Author: honorless <86894501+lesshonor@users.noreply.github.com>
Date:   Mon Mar 25 14:43:54 2024 -0400

    ci(build): limit run scope

    * Cancel redundant non-nightly runs and jobs dependent on canceled jobs.

    * Limit scheduled runs to zmkfirmware-owned repos.

commit 7c9477b
Author: honorless <86894501+lesshonor@users.noreply.github.com>
Date:   Mon Mar 25 14:26:35 2024 -0400

    ci(build): improve security posture

    * Limit unnecessary permissions.

    * Avoid storing credentials.

commit 0bea783
Author: honorless <86894501+lesshonor@users.noreply.github.com>
Date:   Mon Mar 25 14:08:19 2024 -0400

    ci(build): amend changed-files invocation

commit 3e2c428
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Mon Jun 24 10:58:34 2024 -0600

    chore: Add rp2040/USB logging core coverage.

    * Include an rp2040 core build target, and include USB logging snippet
      for completeness.

commit 03099b0
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Wed Mar 27 12:27:49 2024 -0700

    feat(behaviors): Add behavior metadata information.

    * For upcoming ZMK studio work, make a set of rich metadata available
      to provide a friendly name for a behavior, and allow super flexible
      descriptions of the parameters the behaviors take.
    * Add ability to validate a zmk_behavior_binding against
      the behavior metadata available.

commit 7cdf1e4
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Mon Jun 24 10:48:21 2024 -0600

    fix: Actually add the `zmk-usb-logging` snippet.

    * D'oh.

commit 7be955f
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Fri Jun 21 13:12:13 2024 -0600

    fix(usb): Ensure USB init is last

    * To avoid USB init issues due to other initialization disrupting
      USB setup, move USB setup to a lower priority.

commit a080b52
Author: Peter Johanson <peter@peterjohanson.com>
Date:   Mon Jun 17 15:39:32 2024 -0600

    refactor: Remove static CDC ACM logging nodes.

    * To avoid spurious CDC ACM instances when usint CDC ACM for something
      other than logging, move to the approach used by Zephyr of using a
      snippet to redirect console output to a CDC ACM node added by the
      snippet. Remove all the existing static CDC ACM nodes.
    * Add new `zmk-usb-logging` snippet that mirrors the upstream
      `cdc-acm-logging` snippet, but still does our extra USB logging
      configuration.
    * Updated logging docs accordingly.

    Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>

commit 7c09eb2
Author: Cem Aksoylar <caksoylar@users.noreply.github.com>
Date:   Sun Jun 9 21:35:10 2024 -0700

    refactor(docs): Document and enforce header casing conventions

commit e56db30
Author: Cem Aksoylar <caksoylar@users.noreply.github.com>
Date:   Sun Jun 9 21:32:26 2024 -0700

    refactor(docs): Split up troubleshooting page into a section

commit 308d6bc
Author: Nicolas Munnich <98408764+Nick-Munnich@users.noreply.github.com>
Date:   Sun Jun 2 06:51:08 2024 +0200

    feat(docs): Improve the toolchain setup page (zmkfirmware#2272)

    Split the toolchain setup into separate docker and native pages
    and improve instructions to better refer to Zephyr docs in certain steps.
    Also refactor to improve consistency and add virtualenv instructions.

    ---------

    Co-authored-by: KemoNine <mcrosson@kemonine.info>
    Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>

commit 2d96f46
Author: Nicolas Munnich <98408764+Nick-Munnich@users.noreply.github.com>
Date:   Sun May 26 07:16:33 2024 +0200

    fix(docs): Removing to-to typos (zmkfirmware#2310)

commit 2ee76be
Author: German Gutierrez <GermanG@users.noreply.github.com>
Date:   Mon May 13 23:43:35 2024 +0200

    fix(soft_off): central waits 100ms in split if hold_time enabled

commit f0b20c1
Author: Joel Spadin <joelspadin@gmail.com>
Date:   Fri Oct 13 13:07:55 2023 -0500

    feat(boards): Add nRF52 high voltage DC/DC config

    Added a Kconfig option to enable SOC_DCDC_NRF52X_HV for nice_nano_v2
    and mikoto. According to Nordic's documentation, the DC/DC regulator is
    more efficient than the LDO regulator, so this is enabled by default.

    The following boards do not support this mode and were not changed:

    - nice_nano
    - nice60
    - nrfmicro_11, nrfmicro_13
    - nrf52840_m2
    - bluemicro840

    I could not find schematics to confirm whether the following boards
    support this mode:

    - bt60_v1, bt60_v2
    - bt65_v1
    - bt75_v1
    - corneish_zen_v1, corneish_zen_v2
    - pillbug
    - puchi_ble_v1
    - s40nc

commit 8f5c7bb
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Feb 26 05:52:14 2024 +0000

    chore(deps): bump pre-commit/action from 3.0.0 to 3.0.1

    Bumps [pre-commit/action](https://github.com/pre-commit/action) from 3.0.0 to 3.0.1.
    - [Release notes](https://github.com/pre-commit/action/releases)
    - [Commits](pre-commit/action@v3.0.0...v3.0.1)

    ---
    updated-dependencies:
    - dependency-name: pre-commit/action
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

commit 7d1f84e
Author: Horu <73709188+HigherOrderLogic@users.noreply.github.com>
Date:   Tue May 14 03:47:33 2024 +0700

    chore: fix typos in various places
flolbr pushed a commit to flolbr/zmk that referenced this pull request Jul 28, 2024
Split the toolchain setup into separate docker and native pages
and improve instructions to better refer to Zephyr docs in certain steps.
Also refactor to improve consistency and add virtualenv instructions.

---------

Co-authored-by: KemoNine <mcrosson@kemonine.info>
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
lammai pushed a commit to lammai/zmk that referenced this pull request Oct 27, 2024
Split the toolchain setup into separate docker and native pages
and improve instructions to better refer to Zephyr docs in certain steps.
Also refactor to improve consistency and add virtualenv instructions.

---------

Co-authored-by: KemoNine <mcrosson@kemonine.info>
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
earwin pushed a commit to earwin/zmk that referenced this pull request Nov 13, 2024
Split the toolchain setup into separate docker and native pages
and improve instructions to better refer to Zephyr docs in certain steps.
Also refactor to improve consistency and add virtualenv instructions.

---------

Co-authored-by: KemoNine <mcrosson@kemonine.info>
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
cfergeau pushed a commit to cfergeau/zmk that referenced this pull request Dec 21, 2024
Split the toolchain setup into separate docker and native pages
and improve instructions to better refer to Zephyr docs in certain steps.
Also refactor to improve consistency and add virtualenv instructions.

---------

Co-authored-by: KemoNine <mcrosson@kemonine.info>
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants