From 5c00c97e9a1647e2676586c303d19c5559e2e2f1 Mon Sep 17 00:00:00 2001 From: Idan Gazit Date: Fri, 9 Oct 2020 18:48:41 -0700 Subject: [PATCH] Wrap up documentation --- .../assets/dev-setup/vscode_devcontainer.png | Bin 0 -> 20773 bytes docs/docs/dev-setup.md | 62 ++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 docs/docs/assets/dev-setup/vscode_devcontainer.png diff --git a/docs/docs/assets/dev-setup/vscode_devcontainer.png b/docs/docs/assets/dev-setup/vscode_devcontainer.png new file mode 100644 index 0000000000000000000000000000000000000000..e5c22b0ac4f8080f47725e570a6bdca990470627 GIT binary patch literal 20773 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 literal 0 HcmV?d00001 diff --git a/docs/docs/dev-setup.md b/docs/docs/dev-setup.md index be3d6f95..6ef0f020 100644 --- a/docs/docs/dev-setup.md +++ b/docs/docs/dev-setup.md @@ -369,12 +369,63 @@ Since ZMK is built as a Zephyr™ application, the next step is to use `west` to initialize and update your workspace. The ZMK Zephyr™ application is in the `app/` source directory: + #### Step into the repository + + + +```sh +cd zmk +``` + + + + +```sh +cd zmk +``` + + + + +```sh +cd zmk +``` + + + + +```sh +cd zmk +``` + + + + ```sh cd zmk ``` + + + + +Open the `zmk` checkout folder in VS Code. The repository includes a configuration for containerized development, so an alert will pop up: + +![VS Code Dev Container Configuration Alert](assets/dev-setup/vscode_devcontainer.png) + +Click `Reopen in Container` in order to reopen the VS Code with the running container. + +The first time you do this on your machine, it will pull the docker image down from the registry and build the container. Subsequent launches are much faster! + +:::caution +All subsequent steps must be performed from the VS Code terminal _inside_ the container. +::: + + + + #### Initialize West ```sh @@ -393,6 +444,17 @@ section again for links to how to do this west update ``` +:::tip +This step pulls down quite a bit of tooling. Go grab a cup of coffee, it can take 10-15 minutes even on a good internet connection! +::: + +:::info +If you're using Docker, you're done with setup! You must restart the container at this point. The easiest way to do so is to close the VS Code window, verify that the container has stopped in Docker Dashboard, and reopen the container with VS Code. + +Once your container is restarted, proceed to [Building and Flashing](./dev-build.md). +::: + + #### Export Zephyr™ Core ```sh