The installation will prompt with several questions about installation location, and creating a default `~/.zephyrrc` for you with various variables. The defaults shouldn normally work as expected.
The installation will prompt with several questions about installation location, and creating a default `~/.zephyrrc` for you with various variables. The defaults shouldn normally work as expected.
</TabItem>
</TabItem>
<TabItemvalue="win">Windows instructions are coming soon!</TabItem>
<TabItemvalue="win">
#### GNU ARM Embedded
Since the Zephyr™ SDK is not available for Windows, we recommending following the steps to install the [GNU ARM Embedded](https://docs.zephyrproject.org/latest/getting_started/toolchain_3rd_party_x_compilers.html#gnu-arm-embedded).
</TabItem>
<TabItemvalue="mac">
<TabItemvalue="mac">
Instructions for macOS coming soon.
#### Zephyr™ ARM SDK
To build firmwares for the ARM architecture (all supported MCUs/keyboards at this point), you'll need to install the Zephyr™ ARM SDK to your system:
The installation will prompt with several questions about installation location, and creating a default `~/.zephyrrc` for you with various variables. The defaults shouldn normally work as expected.
</TabItem>
</TabItem>
</OsTabs>
</OsTabs>
@ -330,27 +347,87 @@ We suggest two main [options](https://docs.zephyrproject.org/latest/guides/env_v
To load the Zephyr environment properly for just one transient shell, run the following from your ZMK checkout directory:
To load the Zephyr environment properly for just one transient shell, run the following from your ZMK checkout directory:
<OsTabs>
<TabItemvalue="debian">
```
source zephyr/zephyr-env.sh
```
</TabItem>
<TabItemvalue="raspberryos">
```
source zephyr/zephyr-env.sh
```
</TabItem>
<TabItemvalue="fedora">
```
```
source zephyr/zephyr-env.sh
source zephyr/zephyr-env.sh
```
```
</TabItem>
<TabItemvalue="mac">
```
source zephyr/zephyr-env.sh
```
</TabItem>
<TabItemvalue="win">
```
source zephyr/zephyr-env.cmd
```
</TabItem>
</OsTabs>
#### All Shells
#### All Shells
To load the environment variables for your shell every time,
To load the environment variables for your shell every time,
append the existing `~/.zephyrrc` file to your shell's RC file and then start a new shell.
append the existing `~/.zephyrrc` file to your shell's RC file and then start a new shell.
##### Bash
<Tabs
groupId="shell"
defaultValue="bash"
values={[
{label: 'bash', value: 'bash'},
{label: 'zsh', value: 'zsh'},
{label: 'cmd.exe', value: 'cmd'},
]
}>
<TabItemvalue="bash">
```
```
cat ~/.zephyrrc >> ~/.bashrc
cat ~/.zephyrrc >> ~/.bashrc
```
```
##### ZSH
</TabItem>
<TabItemvalue="zsh">
```
```
cat ~/.zephyrrc >> ~/.zshrc
cat ~/.zephyrrc >> ~/.zshrc
```
```
</TabItem>
<TabItemvalue="cmd">
`cmd.exe` instructions coming soon!
</TabItem>
</Tabs>
## Build
## Build
From here on, building and flashing ZMK should all be done from the `app/` subdirectory of the ZMK checkout:
From here on, building and flashing ZMK should all be done from the `app/` subdirectory of the ZMK checkout: