An open API service indexing awesome lists of open source software.

https://github.com/lmilojevicc/zmk-wireless-corne

Personal ZMK config and keymaps for Corne
https://github.com/lmilojevicc/zmk-wireless-corne

corne zmk zmk-config

Last synced: 7 days ago
JSON representation

Personal ZMK config and keymaps for Corne

Awesome Lists containing this project

README

          

# Corne ZMK Configuration

> [!WARNING]
> **This keyboard is not the same as [foostan's Corne](https://github.com/foostan/crkbd). It will not work with standard `corne` firmware.**

## Setup Instructions

The easiest way to get started is by letting GitHub build the firmware for you.

1. **Fork this Repository:** Click the "Fork" button at the top-right of this page.
2. **Enable GitHub Actions:** In your newly forked repository, navigate to the "Actions" tab. If prompted, click the button to enable workflows.
3. **Customize Your Keymap:** You can edit your keymap in a few ways:
- Directly edit the `config/corne.keymap` file.
- Use the [ZMK Studio](https://zmk.studio/) for live changes.
- Use the visual [Keymap Editor](https://nickcoutsos.github.io/keymap-editor/).
4. **Commit \& Download:** Once you commit your changes, the GitHub Action will automatically build your new firmware. You can download it from the "Actions" tab once the build is complete.

## Keymap Diagram

![Diagram of config/corne.keymap](keymap-drawer/corne.svg "generated by @caksoylar's Keymap Drawer")

## Building Firmware With Dev Container (Recommended)

Make sure you have `devcontainer` installed and available.

```bash
devcontainer --version # 0.80.3
```

### Initialize Dev Container Environment

```bash
devcontainer up --workspace-folder .
devcontainer exec --workspace-folder . /bin/bash
```

### Setup West

```bash
# 1. Initialize the West workspace using config's west.yml
west init -l config

# 2. Download Zephyr and ZMK modules
west update

# 3. Export CMake settings for Zephyr
west zephyr-export
```

### Build The Firmware Manually

```bash
west build -s zmk/app -d build/left -b corne_left//zmk -- \
-DSHIELD="nice_view_adapter nice_view_gem"

west build -s zmk/app -d build/right -b corne_right//zmk -- \
-DSHIELD="nice_view_adapter nice_view_gem"
```

### Build The Firmware With Bash Script

```bash
chmod +x ./devcontainer-build.sh
./devcontainer-build.sh
```

## Building Firmware Locally

### Set-up local environment

1. Create a new virtual environment:

```bash
python3 -m venv .venv
```

2. Activate the virtual environment:

```bash
source .venv/bin/activate
```

3. Install west:

```bash
pip install west
```

4. Initialize the application and update to fetch modules, including Zephyr:

```bash
west init -l config
west update
```

5. Export a Zephyr CMake package. This allows CMake to automatically load boilerplate code required for building Zephyr applications.

```bash
west zephyr-export
```

6. Install the additional dependencies found in Zephyr's requirements-base.txt:

```bash
pip install -r zephyr/scripts/requirements-base.txt
```

7. Install the Zephyr SDK: Follow the official instructions to [install the Zephyr SDK](https://docs.zephyrproject.org/3.5.0/develop/getting_started/index.html#install-zephyr-sdk), which contains the toolchains needed to compile the firmware.

### Building Firmware After Initial Setup

Once you've completed the initial configuration steps, you can easily build the firmware using the provided `build.sh` script.

```
chmod +x build.sh
./build.sh
```

## Troubleshooting Common Issues

### Missing packages

During the build process, you might see an error about missing Python packages, such as `elftools` or Google `protobuf`.

```bash
**********************************************************************
*** Could not import the Google protobuf Python libraries ***
*** ***
*** Easiest solution is often to install the dependencies via pip: ***
*** pip install protobuf grpcio-tools ***
**********************************************************************
```

1. Activate your Python virtual:

```bash
source .venv/bin/activate
```

1. Install the required package:

```bash
pip install pyelftools protobuf grpcio-tools
```

1. **Re-run** the build script. If the issue persists, try deactivating and reactivating the virtual environment (`deactivate` then `source .venv/bin/activate`).