From 849123715bf88f0cac23604a8394d8ef5cd4fbf1 Mon Sep 17 00:00:00 2001 From: AJ <1754228+280Zo@users.noreply.github.com> Date: Sun, 28 Jul 2024 13:31:50 -0700 Subject: [PATCH] Initial shield Change caps word to shell launch add a README and update BT config test new values for track ball test new values for track ball adjust automouse timeout shift around some keys Test Hyper Working Meh & Hyper add tap-preferred flavor to keymap home row add tap-preferred to number keys update thumb button Update num keys and thumb key Change scrolling speed add <> to numbers in keymap try adjusting mouse keys scroll speed try adjusting mouse keys scroll speed with numbers in <> try adjusting mouse keys scroll speed with numbers in <> remove scroll numbers add layer one to the mouse scroll layers test ac scrolling change cpi values change cpi values add trackball snipe layer adjust cpi to use dividor add slow mouse layer for sniping remove dividor on snipe and attach it to layer 8 make top thumb key only layer 8 and move middle click to another slot add mouse keys and L8 toggle to L8 adjust the speed of the trackball down adjust the speed of the trackball down adjust the speed of the trackball down added layer 1 back into the scroll layers change all right meta buttons to left meta update symbols layer combine the build jobs for qwerty and colemak dh combine the build jobs for qwerty and colemak dh and add back in build conditions combine the build jobs for qwerty and colemak dh combine the build jobs for qwerty and colemak dh combine the build jobs for qwerty and colemak dh combine the build jobs for qwerty and colemak dh combine the build jobs for qwerty and colemak dh combine the build jobs for qwerty and colemak dh combine the build jobs for qwerty and colemak dh combine the build jobs for qwerty and colemak dh combine the build jobs for qwerty and colemak dh combine the build jobs for qwerty and colemak dh combine the build jobs for qwerty and colemak dh combine the build jobs for qwerty and colemak dh combine the build jobs for qwerty and colemak dh combine the build jobs for qwerty and colemak dh adjusted the path to the keymap files added the board and shield to the matrix variables added the board and shield to the matrix variables combine the build jobs for qwerty and colemak dh add board back into the matrix add board back into the matrix add board back into the matrix add board back into the matrix add board back into the matrix add colemak hd and qwerty to the same build add colemak hd and qwerty to the same build add colemak hd and qwerty to the same build add colemak hd and qwerty to the same build add colemak hd and qwerty to the same build add colemak hd and qwerty to the same build add colemak hd and qwerty to the same build add colemak hd and qwerty to the same build add colemak hd and qwerty to the same build try just two boards try just default keymap change build.yaml change build.yaml change build.yaml change build.yaml change build.yaml change build.yaml change build.yaml change build.yaml change build.yaml change build.yaml separate the artifacts by layout separate the artifacts by layout separate the artifacts by layout working with separate artifacts --- .github/workflows/build.yml | 3 +- .github/workflows/user_config_build.yaml | 191 ++++++++++++++++++ README.md | 75 +++++++ build.yaml | 16 +- .../charybdis-mini-wireless/Kconfig.defconfig | 16 ++ .../charybdis-mini-wireless/Kconfig.shield | 5 + .../charybdis-mini-wireless/charybdis.conf | 0 .../charybdis-mini-wireless/charybdis.dtsi | 37 ++++ .../charybdis_left.conf | 0 .../charybdis_left.overlay | 12 ++ .../charybdis_right.conf | 23 +++ .../charybdis_right.overlay | 66 ++++++ .../charybdis-mini-wireless/charybdis_zmk.yml | 13 ++ .../keymaps/charybdis_colemak_dh.keymap | 147 ++++++++++++++ .../keymaps/charybdis_qwerty.keymap | 147 ++++++++++++++ config/charybdis.conf | 13 ++ config/charybdis.json | 55 +++++ config/kyria_rev3.conf | 10 - config/west.yml | 24 ++- 19 files changed, 836 insertions(+), 17 deletions(-) create mode 100644 .github/workflows/user_config_build.yaml create mode 100644 README.md create mode 100644 config/boards/shields/charybdis-mini-wireless/Kconfig.defconfig create mode 100644 config/boards/shields/charybdis-mini-wireless/Kconfig.shield rename boards/shields/.gitkeep => config/boards/shields/charybdis-mini-wireless/charybdis.conf (100%) create mode 100644 config/boards/shields/charybdis-mini-wireless/charybdis.dtsi create mode 100644 config/boards/shields/charybdis-mini-wireless/charybdis_left.conf create mode 100644 config/boards/shields/charybdis-mini-wireless/charybdis_left.overlay create mode 100644 config/boards/shields/charybdis-mini-wireless/charybdis_right.conf create mode 100644 config/boards/shields/charybdis-mini-wireless/charybdis_right.overlay create mode 100644 config/boards/shields/charybdis-mini-wireless/charybdis_zmk.yml create mode 100644 config/boards/shields/charybdis-mini-wireless/keymaps/charybdis_colemak_dh.keymap create mode 100644 config/boards/shields/charybdis-mini-wireless/keymaps/charybdis_qwerty.keymap create mode 100644 config/charybdis.conf create mode 100644 config/charybdis.json delete mode 100644 config/kyria_rev3.conf diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d74fb89..c09e8e1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,4 +2,5 @@ on: [push, pull_request, workflow_dispatch] jobs: build: - uses: zmkfirmware/zmk/.github/workflows/build-user-config.yml@main + uses: ./.github/workflows/user_config_build.yaml + # uses: zmkfirmware/zmk/.github/workflows/build-user-config.yml@main diff --git a/.github/workflows/user_config_build.yaml b/.github/workflows/user_config_build.yaml new file mode 100644 index 0000000..f5dcc87 --- /dev/null +++ b/.github/workflows/user_config_build.yaml @@ -0,0 +1,191 @@ +name: Reusable user config build + +on: + workflow_call: + inputs: + build_matrix_path: + description: "Path to the build matrix file" + default: "build.yaml" + required: false + type: string + config_path: + description: "Path to the config directory" + default: "config" + required: false + type: string + keymap_path: + description: "Path to the keymap directory" + default: "config/boards/shields/charybdis-mini-wireless/keymaps" + required: false + type: string + fallback_binary: + description: "Fallback binary format, if no *.uf2 file was built" + default: "bin" + required: false + type: string + +jobs: + matrix: + runs-on: ubuntu-latest + name: Fetch Build Keyboards + outputs: + build_matrix: ${{ env.build_matrix }} + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install yaml2json + run: python3 -m pip install remarshal + + - name: Fetch Build Matrix + run: | + echo "build_matrix=$(yaml2json '${{ inputs.build_matrix_path }}' | jq -c .)" >> $GITHUB_ENV + yaml2json "${{ inputs.build_matrix_path }}" | jq + + build: + runs-on: ubuntu-latest + container: + image: zmkfirmware/zmk-build-arm:stable + needs: matrix + name: Build + strategy: + fail-fast: false + matrix: ${{ fromJson(needs.matrix.outputs.build_matrix) }} + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Create build directory + run: | + echo "build_dir=$(mktemp -d)" >> $GITHUB_ENV + + - name: Prepare variables + shell: sh -x {0} + env: + board: ${{ matrix.board }} + shield: ${{ matrix.shield }} + keymap: ${{ matrix.keymap }} + artifact_name: ${{ matrix.artifact-name }} + snippet: ${{ matrix.snippet }} + run: | + if [ -e zephyr/module.yml ]; then + export zmk_load_arg=" -DZMK_EXTRA_MODULES='${GITHUB_WORKSPACE}'" + new_tmp_dir="${TMPDIR:-/tmp}/zmk-config" + mkdir -p "${new_tmp_dir}" + echo "base_dir=${new_tmp_dir}" >> $GITHUB_ENV + else + echo "base_dir=${GITHUB_WORKSPACE}" >> $GITHUB_ENV + fi + + if [ -n "${snippet}" ]; then + extra_west_args="-S \"${snippet}\"" + fi + + echo "zephyr_version=${ZEPHYR_VERSION}" >> $GITHUB_ENV + echo "extra_west_args=${extra_west_args}" >> $GITHUB_ENV + echo "extra_cmake_args=${shield:+-DSHIELD=\"$shield\"}${zmk_load_arg}" >> $GITHUB_ENV + echo "display_name=${shield:+$shield - }${board} - ${keymap}" >> $GITHUB_ENV + echo "artifact_name=${artifact_name:-${shield:+$shield-}${board}-zmk-${keymap}}" >> $GITHUB_ENV + + - name: Copy config files to isolated temporary directory + run: | + if [ "${{ env.base_dir }}" != "${GITHUB_WORKSPACE}" ]; then + mkdir "${{ env.base_dir }}/${{ inputs.config_path }}" + cp -R ${{ inputs.config_path }}/* "${{ env.base_dir }}/${{ inputs.config_path }}/" + cp -R ${{ inputs.keymap_path }}/${{ matrix.keymap }}.keymap \ + "${{ env.base_dir }}/${{ inputs.config_path }}/charybdis.keymap" + fi + + - name: Cache west modules + uses: actions/cache@v4 + continue-on-error: true + env: + cache_name: cache-zephyr-${{ env.zephyr_version }}-modules + with: + path: | + ${{ env.base_dir }}/modules/ + ${{ env.base_dir }}/tools/ + ${{ env.base_dir }}/zephyr/ + ${{ env.base_dir }}/bootloader/ + ${{ env.base_dir }}/zmk/ + key: ${{ runner.os }}-build-${{ env.cache_name }}-${{ hashFiles('**/west.yml', '**/build.yaml') }} + restore-keys: | + ${{ runner.os }}-build-${{ env.cache_name }}- + ${{ runner.os }}-build- + ${{ runner.os }}- + + - name: West Init + working-directory: ${{ env.base_dir }} + run: west init -l "${{ env.base_dir }}/${{ inputs.config_path }}" + + - name: West Update + working-directory: ${{ env.base_dir }} + run: west update + + - name: West Zephyr export + working-directory: ${{ env.base_dir }} + run: west zephyr-export + + - name: West Build (${{ env.display_name }}) + working-directory: ${{ env.base_dir }} + shell: sh -x {0} + run: west build -s zmk/app -d "${{ env.build_dir }}" -b "${{ matrix.board }}" ${{ env.extra_west_args }} -- -DZMK_CONFIG=${{ env.base_dir }}/${{ inputs.config_path }} ${{ env.extra_cmake_args }} ${{ matrix.cmake-args }} + + - name: ${{ env.display_name }} Kconfig file + run: | + if [ -f "${{ env.build_dir }}/zephyr/.config" ] + then + grep -v -e "^#" -e "^$" "${{ env.build_dir }}/zephyr/.config" | sort + else + echo "No Kconfig output" + fi + if: ${{ !cancelled() }} + + - name: ${{ env.display_name }} Devicetree file + run: | + if [ -f "${{ env.build_dir }}/zephyr/zephyr.dts" ] + then + cat "${{ env.build_dir }}/zephyr/zephyr.dts" + elif [ -f "${{ env.build_dir }}/zephyr/zephyr.dts.pre" ] + then + cat -s "${{ env.build_dir }}/zephyr/zephyr.dts.pre" + else + echo "No Devicetree output" + fi + if: ${{ !cancelled() }} + + - name: Rename artifacts + shell: sh -x {0} + run: | + mkdir "${{ env.build_dir }}/artifacts" + if [ -f "${{ env.build_dir }}/zephyr/zmk.uf2" ] + then + cp "${{ env.build_dir }}/zephyr/zmk.uf2" "${{ env.build_dir }}/artifacts/${{ env.artifact_name }}.uf2" + elif [ -f "${{ env.build_dir }}/zephyr/zmk.${{ inputs.fallback_binary }}" ] + then + cp "${{ env.build_dir }}/zephyr/zmk.${{ inputs.fallback_binary }}" "${{ env.build_dir }}/artifacts/${{ env.artifact_name }}.${{ inputs.fallback_binary }}" + fi + + - name: Archive (${{ env.display_name }}) + uses: actions/upload-artifact@v4 + with: + name: artifact-${{ env.artifact_name }} + path: ${{ env.build_dir }}/artifacts + + merge: + runs-on: ubuntu-latest + needs: build + name: Merge Output Artifacts + steps: + - name: Merge QWERTY Artifacts + uses: actions/upload-artifact/merge@v4 + with: + name: "qwerty-firmware" + pattern: artifact-charybdis_QWERTY* + delete-merged: true + - name: Merge Colemak DH Artifacts + uses: actions/upload-artifact/merge@v4 + with: + name: "colemak-dh-firmware" + pattern: artifact-charybdis_colemak* + delete-merged: true diff --git a/README.md b/README.md new file mode 100644 index 0000000..292d88d --- /dev/null +++ b/README.md @@ -0,0 +1,75 @@ +# Intro + +This repository outlines most of the steps needed to build/modify the ZMK firmware for a Wireless Charybdis keyboard. + +## Pre Built Firmware + +If you'd like to skip all the configuration steps and use something prebuilt, the firmware files for qwerty and colemak dh can be found in the Actions tab of this repo. There are a few things to note about how I've chosen to configure things. + +- The main branch builds the firmware with the colemak dh layout, and the layouts/qwerty branch builds the qwerty firmware. +- The keyboard name is Charybdis. This is what will show up when you connect to it with bluetooth. +- ZMK has terms for each side of a split keyboard. Central is the half that sends keyboard outputs over USB or advertises to other devices over bluetooth. Peripheral is the half that will only send keystrokes to the central once they are paired and connected through bluetooth. I have chosen the right side as central because it fits my desk layout better. +- To add support for the PMW3610 sensor, [inorichi's driver](https://github.com/inorichi/zmk-pmw3610-driver?tab=readme-ov-file) is included in the firmware. +- Looking at different options to include support for mouse keys (move and scroll), there are several repos out there. [krikun98](https://github.com/krikun98/zmk/tree/mouse-pr) has one that looked promising, but ultimately I settled on [petejohanson's work](https://github.com/petejohanson/zmk/blob/feat/pointers-move-scroll/docs/docs/behaviors/mouse-emulation.md). This will be included in the prebuilt firmware until ZMK merges it. + +## Update Key Mappings + +Before adding/updating a keymap, you need to select a behavior, then choose a parameter code. This process is more clearly outlined on ZMK's [Keymaps & Behaviors](https://zmk.dev/docs/features/keymaps) page. +- Behaviors are all documented on the [Behaviors Overview](https://zmk.dev/docs/behaviors) +- Codes are all documented on the [keycodes](https://zmk.dev/docs/codes) page + +There are a few options available to update the keymaps with the chosen behavior and code. + +### Edit Code Directly + +You can edit the charybdis.keymap file directly to match any configuration you want by using the behavior and codes from above. + +### Use a GUI + +Using a GUI to generate the keymap file content is the easiest option. There are multiple mappers out there that will generate keymap files for ZMK. The two I found most helpful are tammingaj's [Keymapper](https://www.keymapper.dev/code) and nickcoutsos' [keymap editor](https://nickcoutsos.github.io/keymap-editor/). I chose to use the latter for my project. + +If you'd like to use the keymap editor, follow the steps below. + +- Fork this repo +- Open a new tab to the [keymap editor](https://nickcoutsos.github.io/keymap-editor) +- Give it permission to your fork +- Select the branch you'd like to modify +- Update the keys to match what you'd like to use on your keyboard +- Save +- Wait for the pipeline to run +- Download and flash the new firmware + +## Building Your Own Firmware + +ZMK provide a comprehensive guide to follow when creating a [New Keyboard Shield](https://zmk.dev/docs/development/new-shield). I'll touch on some of the points here, but their docs should be what you reference when you're building your own firmware. + +### File Locations + +The file locations for setting up the repo to build the firmware matters. The formats and locations of the files can be found on ZMK's [Configuration Overview](https://zmk.dev/docs/config). One thing to note about this repo is that the keymap and json files are in the config directory to work with a GUI keymapper. Also, the matrix-transform is included as part of the charbdis.dtsi file. + +### Mapping GPIO Pins to Keys + +To set up some of the configuration files it requires a knowledge of which keys connect to which pins on the MCU (see the [Shield Overlays](https://zmk.dev/docs/development/new-shield#shield-overlays) section), and how the rows and columns are wired. + +To get this information, look at the PCB kcad files and follow the traces from key pads, to row and column through holes, to MCU through holes. Once you have that information you can update the shield.dtsi, shield_left.overlay, and shield_right.overlay files. + +### Changing the Central and Peripheral Assignments + +Follow the ZMK documentation to change the [Kconfig.deconfig](https://zmk.dev/docs/development/new-shield#kconfigdefconfig). + +### Changing the Keyboard Name + +Follow the ZMK [Kconfig.defconfig](https://zmk.dev/docs/development/new-shield#kconfigdefconfig) section to update the keyboard name. Make sure to read about the danger in exceeding the 16 character limit. + +## Creating Graphical Key Maps + +There are a lot of resources available to create key map images. Keymap Editor and KeyMapper mentioned in the Update Keymappings section have this ability, but they are not very customizable. + +[Keymap Drawer](https://keymap-drawer.streamlit.app/) has more options and is able to process ZMK keymaps, but I ultimately settled on the [Keyboard Layout Editor](http://www.keyboard-layout-editor.com/#/). + +## Upcoming Features + +ZMK is actively being developed and there are a few features I'll be adding to my builds as soon as they are released. + +- Mouse Pointer & Scrolling - [PR in review](https://github.com/zmkfirmware/zmk/pull/2027) +- Layer Locks - [Layer locks will become standard soon.](https://github.com/zmkfirmware/zmk/pull/1984) \ No newline at end of file diff --git a/build.yaml b/build.yaml index ca68e6e..cd5531c 100644 --- a/build.yaml +++ b/build.yaml @@ -19,6 +19,18 @@ --- include: - board: nice_nano_v2 - shield: kyria_rev3_left + shield: charybdis_left + keymap: charybdis_colemak_dh + artifact-name: charybdis_colemak_left - board: nice_nano_v2 - shield: kyria_rev3_right + shield: charybdis_right + keymap: charybdis_colemak_dh + artifact-name: charybdis_colemak_right + - board: nice_nano_v2 + shield: charybdis_left + keymap: charybdis_qwerty + artifact-name: charybdis_QWERTY_left + - board: nice_nano_v2 + shield: charybdis_right + keymap: charybdis_qwerty + artifact-name: charybdis_QWERTY_right diff --git a/config/boards/shields/charybdis-mini-wireless/Kconfig.defconfig b/config/boards/shields/charybdis-mini-wireless/Kconfig.defconfig new file mode 100644 index 0000000..e5c37d7 --- /dev/null +++ b/config/boards/shields/charybdis-mini-wireless/Kconfig.defconfig @@ -0,0 +1,16 @@ +if SHIELD_CHARYBDIS_RIGHT + +config ZMK_KEYBOARD_NAME + default "Charybdis" + +config ZMK_SPLIT_BLE_ROLE_CENTRAL + default y + +endif + +if SHIELD_CHARYBDIS_LEFT || SHIELD_CHARYBDIS_RIGHT + +config ZMK_SPLIT + default y + +endif \ No newline at end of file diff --git a/config/boards/shields/charybdis-mini-wireless/Kconfig.shield b/config/boards/shields/charybdis-mini-wireless/Kconfig.shield new file mode 100644 index 0000000..ece2a3d --- /dev/null +++ b/config/boards/shields/charybdis-mini-wireless/Kconfig.shield @@ -0,0 +1,5 @@ +config SHIELD_CHARYBDIS_LEFT + def_bool $(shields_list_contains,charybdis_left) + +config SHIELD_CHARYBDIS_RIGHT + def_bool $(shields_list_contains,charybdis_right) \ No newline at end of file diff --git a/boards/shields/.gitkeep b/config/boards/shields/charybdis-mini-wireless/charybdis.conf similarity index 100% rename from boards/shields/.gitkeep rename to config/boards/shields/charybdis-mini-wireless/charybdis.conf diff --git a/config/boards/shields/charybdis-mini-wireless/charybdis.dtsi b/config/boards/shields/charybdis-mini-wireless/charybdis.dtsi new file mode 100644 index 0000000..569d745 --- /dev/null +++ b/config/boards/shields/charybdis-mini-wireless/charybdis.dtsi @@ -0,0 +1,37 @@ +#include + +/ { + chosen { + zmk,kscan = &kscan0; + zmk,matrix_transform = &default_transform; + }; + + vbatt: vbatt { + compatible = "zmk,battery-nrf-vddh"; + }; + + default_transform: keymap_transform_0 { + compatible = "zmk,matrix-transform"; + columns = <12>; + rows = <4>; + + map = < + RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,11) RC(0,10) RC(0,9) RC(0,8) RC(0,7) RC(0,6) + RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,11) RC(1,10) RC(1,9) RC(1,8) RC(1,7) RC(1,6) + RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,11) RC(2,10) RC(2,9) RC(2,8) RC(2,7) RC(2,6) + RC(3,3) RC(3,4) RC(3,1) RC(3,7) RC(3,9) + >; + }; + + kscan0: kscan { + compatible = "zmk,kscan-gpio-matrix"; + wakeup-source; + diode-direction = "row2col"; + row-gpios + = <&pro_micro 18 GPIO_ACTIVE_HIGH> + , <&pro_micro 5 GPIO_ACTIVE_HIGH> + , <&pro_micro 4 GPIO_ACTIVE_HIGH> + , <&pro_micro 9 GPIO_ACTIVE_HIGH> + ; + }; +}; \ No newline at end of file diff --git a/config/boards/shields/charybdis-mini-wireless/charybdis_left.conf b/config/boards/shields/charybdis-mini-wireless/charybdis_left.conf new file mode 100644 index 0000000..e69de29 diff --git a/config/boards/shields/charybdis-mini-wireless/charybdis_left.overlay b/config/boards/shields/charybdis-mini-wireless/charybdis_left.overlay new file mode 100644 index 0000000..151c12f --- /dev/null +++ b/config/boards/shields/charybdis-mini-wireless/charybdis_left.overlay @@ -0,0 +1,12 @@ +#include "charybdis.dtsi" + +&kscan0 { + col-gpios + = <&pro_micro 19 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 20 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + ; +}; \ No newline at end of file diff --git a/config/boards/shields/charybdis-mini-wireless/charybdis_right.conf b/config/boards/shields/charybdis-mini-wireless/charybdis_right.conf new file mode 100644 index 0000000..2f6713d --- /dev/null +++ b/config/boards/shields/charybdis-mini-wireless/charybdis_right.conf @@ -0,0 +1,23 @@ +# https://zmk.dev/docs/config/power#kconfig-2 +CONFIG_ZMK_EXT_POWER=y + +# https://github.com/inorichi/zmk-pmw3610-driver?tab=readme-ov-file +CONFIG_SPI=y +CONFIG_INPUT=y +CONFIG_ZMK_MOUSE=y +CONFIG_PMW3610=y + +# https://github.com/inorichi/zmk-pmw3610-driver/blob/main/Kconfig +CONFIG_PMW3610_SMART_ALGORITHM=y +CONFIG_PMW3610_CPI=1600 +CONFIG_PMW3610_CPI_DIVIDOR=3 +CONFIG_PMW3610_SNIPE_CPI=200 +CONFIG_PMW3610_SNIPE_CPI_DIVIDOR=1 +CONFIG_PMW3610_SCROLL_TICK=20 +CONFIG_PMW3610_POLLING_RATE_125_SW=y +CONFIG_PMW3610_REST1_SAMPLE_TIME_MS=20 +CONFIG_PMW3610_RUN_DOWNSHIFT_TIME_MS=2000 +CONFIG_PMW3610_ORIENTATION_90=y +CONFIG_PMW3610_INVERT_X=y +CONFIG_PMW3610_INVERT_SCROLL_Y=n +CONFIG_PMW3610_AUTOMOUSE_TIMEOUT_MS=400 \ No newline at end of file diff --git a/config/boards/shields/charybdis-mini-wireless/charybdis_right.overlay b/config/boards/shields/charybdis-mini-wireless/charybdis_right.overlay new file mode 100644 index 0000000..9239dcf --- /dev/null +++ b/config/boards/shields/charybdis-mini-wireless/charybdis_right.overlay @@ -0,0 +1,66 @@ +#include "charybdis.dtsi" + +// The matrix transform is 6 columns over because the left half is 6 columns wide. +&default_transform { + col-offset = <6>; +}; + +&kscan0 { + col-gpios + = <&pro_micro 19 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 20 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + ; +}; + +// https://github.com/inorichi/zmk-pmw3610-driver +&pinctrl { + spi0_default: spi0_default { + group1 { + psels = , + , + ; + }; + }; + + spi0_sleep: spi0_sleep { + group1 { + psels = , + , + ; + low-power-enable; + }; + }; +}; + +&spi0 { + status = "okay"; + compatible = "nordic,nrf-spim"; + pinctrl-0 = <&spi0_default>; + pinctrl-1 = <&spi0_sleep>; + pinctrl-names = "default", "sleep"; + cs-gpios = <&gpio0 20 GPIO_ACTIVE_LOW>; + + trackball: trackball@0 { + status = "okay"; + compatible = "pixart,pmw3610"; + reg = <0>; + spi-max-frequency = <2000000>; + irq-gpios = <&gpio0 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; + /* optional features */ + snipe-layers = <8>; + scroll-layers = <1 2 5 6>; + automouse-layer = <4>; + }; +}; + +/ { + trackball_listener { + compatible = "zmk,input-listener"; + device = <&trackball>; + + }; +}; \ No newline at end of file diff --git a/config/boards/shields/charybdis-mini-wireless/charybdis_zmk.yml b/config/boards/shields/charybdis-mini-wireless/charybdis_zmk.yml new file mode 100644 index 0000000..518c7f6 --- /dev/null +++ b/config/boards/shields/charybdis-mini-wireless/charybdis_zmk.yml @@ -0,0 +1,13 @@ +file_format: "1" +id: charybdis +name: Charybdis +type: shield +url: https://github.com/Bastardkb/Charybdis/ +requires: [pro_micro] +features: + - keys + - pointer + - colemak DH +siblings: + - charybdis_left + - charybdis_right \ No newline at end of file diff --git a/config/boards/shields/charybdis-mini-wireless/keymaps/charybdis_colemak_dh.keymap b/config/boards/shields/charybdis-mini-wireless/keymaps/charybdis_colemak_dh.keymap new file mode 100644 index 0000000..5f77fbd --- /dev/null +++ b/config/boards/shields/charybdis-mini-wireless/keymaps/charybdis_colemak_dh.keymap @@ -0,0 +1,147 @@ +#include +#include +#include +#include +#include +#include + +#define U_TAPPING_TERM 200 + +/ { + chosen { zmk,matrix_transform = &default_transform; }; +}; + +/ { + hm: homerow_mod { + compatible = "zmk,behavior-hold-tap"; + #binding-cells = <2>; + flavor = "tap-preferred"; + tapping-term-ms = <250>; + quick-tap-ms = <150>; + require-prior-idle-ms = <125>; + bindings = <&kp>, <&kp>; + }; + + combos { + compatible = "zmk,combos"; + + Delete { + bindings = <&kp DELETE>; + key-positions = <8 9>; + }; + + CapsWord { + bindings = <&caps_word>; + key-positions = <17 18>; + }; + + Layer_7 { + bindings = <&mo 7>; + key-positions = <38 39>; + }; + }; + + macros { + VSplit: VSplit { + compatible = "zmk,behavior-macro"; + #binding-cells = <0>; + bindings = <&kp LEFT_SHIFT &kp SEMI &kp LS(V) &kp LS(S) &kp LS(P) &kp RET>; + label = "VSPLIT"; + }; + + HSplit: HSplit { + compatible = "zmk,behavior-macro"; + #binding-cells = <0>; + bindings = <&kp LEFT_SHIFT &kp SEMI &kp LS(S) &kp LS(P) &kp RET>; + label = "HSPLIT"; + }; + }; + + behaviors { + }; + + keymap { + compatible = "zmk,keymap"; + + Base { + bindings = < +&kp C_AC_SEARCH &kp Q &kp W &kp F &kp P &kp B &kp J &kp L &kp U &kp Y &kp APOS &to 5 +&hm LG(E) TAB &hm LEFT_GUI A &hm LEFT_ALT R &hm LCTRL S &hm LEFT_SHIFT T &kp G &kp M &hm LEFT_SHIFT N &hm RCTRL E &hm RIGHT_ALT I &hm LEFT_META O &kp DEL +&kp LA(LC(T)) &kp Z &mt LC(LA(LEFT_SHIFT)) X &mt LA(LC(LG(LEFT_SHIFT))) C &kp D &kp V &kp K &kp H &mt LA(LC(LG(LEFT_SHIFT))) COMMA &mt LC(LA(LEFT_SHIFT)) PERIOD &kp FSLH &to 6 + &hm LC(F10) C_PLAY_PAUSE < 1 BACKSPACE < 2 ESCAPE < 4 RETURN < 3 SPACE + >; + }; + + Num { + bindings = < +&none &none &none &none &none &none &kp SLASH &hm F7 N7 &hm F8 N8 &hm F9 N9 &hm F10 MINUS &none +&none &none &none &none &kp BACKSPACE &none &kp ASTRK &hm F4 N4 &hm F5 N5 &hm F6 N6 &hm F11 PLUS &none +&none &none &none &none &none &none &kp DOT &hm F1 N1 &hm F2 N2 &hm F3 N3 &hm F12 EQUAL &none + &none &none &none &kp N0 &none + >; + }; + + Nav { + bindings = < +&none &none &none &none &none &none &none &kp LS(LC(H)) &kp LS(LC(J)) &kp LS(LC(K)) &kp LS(LC(L)) &none +&trans &trans &trans &trans &trans &trans &VSplit &kp LEFT_ARROW &kp DOWN &kp UP &kp RIGHT_ARROW &none +&none &none &none &none &none &none &HSplit &kp HOME &kp PG_DN &kp PG_UP &kp END &none + &none &none &trans &trans &trans + >; + }; + + Sym { + bindings = < +&none &kp SQT &kp CARET &kp PLUS &kp MINUS &kp BSLH &kp GRAVE &kp TILDE &kp LEFT_BRACE &kp RIGHT_BRACE &kp AMPS &none +&kp PRCNT &hm LEFT_META EXCLAMATION &hm LEFT_ALT LT &hm LCTRL GT &hm LEFT_SHIFT SPACE &kp SLASH &kp COLON &mt LEFT_SHIFT SPACE &hm LCTRL LPAR &hm LEFT_ALT RPAR &kp HASH &none +&none &kp DQT &kp DLLR &kp EQUAL &kp ASTRK &kp PIPE &kp SEMICOLON &kp UNDERSCORE &kp LBKT &kp RBKT &kp AT_SIGN &none + &trans &trans &trans &none &trans + >; + }; + + Mouse { + bindings = < +&none &msc MOVE_LEFT &msc MOVE_UP &mmv MOVE_UP &msc MOVE_DOWN &msc MOVE_RIGHT &none &none &none &none &none &none +&none &mkp MB4 &mmv MOVE_LEFT &mmv MOVE_DOWN &mmv MOVE_RIGHT &mkp MB5 &none &kp RIGHT_SHIFT &kp RCTRL &kp LEFT_ALT &kp LEFT_META &none +&none &kp C_AC_UNDO &kp C_AC_CUT &kp C_AC_COPY &kp C_AC_PASTE &mkp MCLK &none &none &none &none &none &none + &tog 8 &mkp LCLK &mkp RCLK &none &none + >; + }; + + Game { + bindings = < +&kp N1 &kp TAB &kp Q &kp W &kp E &kp R &none &none &none &none &none &to 0 +&kp N2 &kp LCTRL &kp A &kp S &kp D &kp F &none &none &none &none &none &none +&kp N3 &kp LSHFT &kp Z &kp X &kp C &kp V &none &none &none &none &none &none + &none &kp SPACE &kp LEFT_ALT &none &none + >; + }; + + Photos { + bindings = < +&trans &kp LA(LC(LS(Z))) &kp LA(LC(LS(E))) &kp LA(LC(LS(A))) &kp LA(LC(LS(S))) &kp LA(LC(LS(B))) &none &none &none &none &none &none +&kp LC(LA(E)) &kp LEFT &kp DOWN &kp UP &kp RIGHT &kp LCTRL &none &none &none &none &none &none +&kp LS(DELETE) &kp LA(LS(A)) &kp LA(KP_N1) &kp LA(KP_N2) &kp LA(KP_N3) &none &none &none &none &none &none &to 0 + &none &none &trans &trans &trans + >; + }; + + Extras { + bindings = < +&kp C_SLEEP &none &none &none &none &kp C_BRIGHTNESS_MAXIMUM &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_CLR &kp C_AL_COFFEE +&kp C_POWER &none &none &none &none &kp C_BRIGHTNESS_INC &out OUT_TOG &kp C_PREVIOUS &kp C_PLAY_PAUSE &kp C_STOP &kp C_NEXT &none +&bootloader &none &none &none &none &kp C_BRIGHTNESS_DEC &kp PRINTSCREEN &kp C_VOLUME_DOWN &kp C_VOLUME_UP &kp K_MUTE &none &bootloader + &none &none &none &none &none + >; + }; + + slow_mouse { + bindings = < +&none &msc MOVE_LEFT &msc MOVE_UP &mmv MOVE_UP &msc MOVE_DOWN &msc MOVE_RIGHT &none &none &none &none &none &none +&none &mkp MB4 &mmv MOVE_LEFT &mmv MOVE_DOWN &mmv MOVE_RIGHT &mkp MB5 &none &kp RIGHT_SHIFT &kp RCTRL &kp LEFT_ALT &kp LEFT_META &none +&none &kp C_AC_UNDO &kp C_AC_CUT &kp C_AC_COPY &kp C_AC_PASTE &mkp MCLK &none &none &none &none &none &none + &tog 8 &mkp LCLK &mkp RCLK &none &none + >; + }; + }; +}; diff --git a/config/boards/shields/charybdis-mini-wireless/keymaps/charybdis_qwerty.keymap b/config/boards/shields/charybdis-mini-wireless/keymaps/charybdis_qwerty.keymap new file mode 100644 index 0000000..5f77fbd --- /dev/null +++ b/config/boards/shields/charybdis-mini-wireless/keymaps/charybdis_qwerty.keymap @@ -0,0 +1,147 @@ +#include +#include +#include +#include +#include +#include + +#define U_TAPPING_TERM 200 + +/ { + chosen { zmk,matrix_transform = &default_transform; }; +}; + +/ { + hm: homerow_mod { + compatible = "zmk,behavior-hold-tap"; + #binding-cells = <2>; + flavor = "tap-preferred"; + tapping-term-ms = <250>; + quick-tap-ms = <150>; + require-prior-idle-ms = <125>; + bindings = <&kp>, <&kp>; + }; + + combos { + compatible = "zmk,combos"; + + Delete { + bindings = <&kp DELETE>; + key-positions = <8 9>; + }; + + CapsWord { + bindings = <&caps_word>; + key-positions = <17 18>; + }; + + Layer_7 { + bindings = <&mo 7>; + key-positions = <38 39>; + }; + }; + + macros { + VSplit: VSplit { + compatible = "zmk,behavior-macro"; + #binding-cells = <0>; + bindings = <&kp LEFT_SHIFT &kp SEMI &kp LS(V) &kp LS(S) &kp LS(P) &kp RET>; + label = "VSPLIT"; + }; + + HSplit: HSplit { + compatible = "zmk,behavior-macro"; + #binding-cells = <0>; + bindings = <&kp LEFT_SHIFT &kp SEMI &kp LS(S) &kp LS(P) &kp RET>; + label = "HSPLIT"; + }; + }; + + behaviors { + }; + + keymap { + compatible = "zmk,keymap"; + + Base { + bindings = < +&kp C_AC_SEARCH &kp Q &kp W &kp F &kp P &kp B &kp J &kp L &kp U &kp Y &kp APOS &to 5 +&hm LG(E) TAB &hm LEFT_GUI A &hm LEFT_ALT R &hm LCTRL S &hm LEFT_SHIFT T &kp G &kp M &hm LEFT_SHIFT N &hm RCTRL E &hm RIGHT_ALT I &hm LEFT_META O &kp DEL +&kp LA(LC(T)) &kp Z &mt LC(LA(LEFT_SHIFT)) X &mt LA(LC(LG(LEFT_SHIFT))) C &kp D &kp V &kp K &kp H &mt LA(LC(LG(LEFT_SHIFT))) COMMA &mt LC(LA(LEFT_SHIFT)) PERIOD &kp FSLH &to 6 + &hm LC(F10) C_PLAY_PAUSE < 1 BACKSPACE < 2 ESCAPE < 4 RETURN < 3 SPACE + >; + }; + + Num { + bindings = < +&none &none &none &none &none &none &kp SLASH &hm F7 N7 &hm F8 N8 &hm F9 N9 &hm F10 MINUS &none +&none &none &none &none &kp BACKSPACE &none &kp ASTRK &hm F4 N4 &hm F5 N5 &hm F6 N6 &hm F11 PLUS &none +&none &none &none &none &none &none &kp DOT &hm F1 N1 &hm F2 N2 &hm F3 N3 &hm F12 EQUAL &none + &none &none &none &kp N0 &none + >; + }; + + Nav { + bindings = < +&none &none &none &none &none &none &none &kp LS(LC(H)) &kp LS(LC(J)) &kp LS(LC(K)) &kp LS(LC(L)) &none +&trans &trans &trans &trans &trans &trans &VSplit &kp LEFT_ARROW &kp DOWN &kp UP &kp RIGHT_ARROW &none +&none &none &none &none &none &none &HSplit &kp HOME &kp PG_DN &kp PG_UP &kp END &none + &none &none &trans &trans &trans + >; + }; + + Sym { + bindings = < +&none &kp SQT &kp CARET &kp PLUS &kp MINUS &kp BSLH &kp GRAVE &kp TILDE &kp LEFT_BRACE &kp RIGHT_BRACE &kp AMPS &none +&kp PRCNT &hm LEFT_META EXCLAMATION &hm LEFT_ALT LT &hm LCTRL GT &hm LEFT_SHIFT SPACE &kp SLASH &kp COLON &mt LEFT_SHIFT SPACE &hm LCTRL LPAR &hm LEFT_ALT RPAR &kp HASH &none +&none &kp DQT &kp DLLR &kp EQUAL &kp ASTRK &kp PIPE &kp SEMICOLON &kp UNDERSCORE &kp LBKT &kp RBKT &kp AT_SIGN &none + &trans &trans &trans &none &trans + >; + }; + + Mouse { + bindings = < +&none &msc MOVE_LEFT &msc MOVE_UP &mmv MOVE_UP &msc MOVE_DOWN &msc MOVE_RIGHT &none &none &none &none &none &none +&none &mkp MB4 &mmv MOVE_LEFT &mmv MOVE_DOWN &mmv MOVE_RIGHT &mkp MB5 &none &kp RIGHT_SHIFT &kp RCTRL &kp LEFT_ALT &kp LEFT_META &none +&none &kp C_AC_UNDO &kp C_AC_CUT &kp C_AC_COPY &kp C_AC_PASTE &mkp MCLK &none &none &none &none &none &none + &tog 8 &mkp LCLK &mkp RCLK &none &none + >; + }; + + Game { + bindings = < +&kp N1 &kp TAB &kp Q &kp W &kp E &kp R &none &none &none &none &none &to 0 +&kp N2 &kp LCTRL &kp A &kp S &kp D &kp F &none &none &none &none &none &none +&kp N3 &kp LSHFT &kp Z &kp X &kp C &kp V &none &none &none &none &none &none + &none &kp SPACE &kp LEFT_ALT &none &none + >; + }; + + Photos { + bindings = < +&trans &kp LA(LC(LS(Z))) &kp LA(LC(LS(E))) &kp LA(LC(LS(A))) &kp LA(LC(LS(S))) &kp LA(LC(LS(B))) &none &none &none &none &none &none +&kp LC(LA(E)) &kp LEFT &kp DOWN &kp UP &kp RIGHT &kp LCTRL &none &none &none &none &none &none +&kp LS(DELETE) &kp LA(LS(A)) &kp LA(KP_N1) &kp LA(KP_N2) &kp LA(KP_N3) &none &none &none &none &none &none &to 0 + &none &none &trans &trans &trans + >; + }; + + Extras { + bindings = < +&kp C_SLEEP &none &none &none &none &kp C_BRIGHTNESS_MAXIMUM &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_CLR &kp C_AL_COFFEE +&kp C_POWER &none &none &none &none &kp C_BRIGHTNESS_INC &out OUT_TOG &kp C_PREVIOUS &kp C_PLAY_PAUSE &kp C_STOP &kp C_NEXT &none +&bootloader &none &none &none &none &kp C_BRIGHTNESS_DEC &kp PRINTSCREEN &kp C_VOLUME_DOWN &kp C_VOLUME_UP &kp K_MUTE &none &bootloader + &none &none &none &none &none + >; + }; + + slow_mouse { + bindings = < +&none &msc MOVE_LEFT &msc MOVE_UP &mmv MOVE_UP &msc MOVE_DOWN &msc MOVE_RIGHT &none &none &none &none &none &none +&none &mkp MB4 &mmv MOVE_LEFT &mmv MOVE_DOWN &mmv MOVE_RIGHT &mkp MB5 &none &kp RIGHT_SHIFT &kp RCTRL &kp LEFT_ALT &kp LEFT_META &none +&none &kp C_AC_UNDO &kp C_AC_CUT &kp C_AC_COPY &kp C_AC_PASTE &mkp MCLK &none &none &none &none &none &none + &tog 8 &mkp LCLK &mkp RCLK &none &none + >; + }; + }; +}; diff --git a/config/charybdis.conf b/config/charybdis.conf new file mode 100644 index 0000000..cb1c223 --- /dev/null +++ b/config/charybdis.conf @@ -0,0 +1,13 @@ +CONFIG_ZMK_SLEEP=y +CONFIG_ZMK_MOUSE=y +CONFIG_BT_CTLR_TX_PWR_PLUS_8=y + +CONFIG_BT_PERIPHERAL_PREF_MAX_INT=9 +CONFIG_BT_PERIPHERAL_PREF_LATENCY=16 +CONFIG_BT_BUF_ACL_TX_COUNT=32 +CONFIG_BT_L2CAP_TX_BUF_COUNT=32 + +CONFIG_ZMK_BLE_EXPERIMENTAL_FEATURES=y +CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING=y +CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_PROXY=y +CONFIG_ZMK_BEHAVIORS_QUEUE_SIZE=512 \ No newline at end of file diff --git a/config/charybdis.json b/config/charybdis.json new file mode 100644 index 0000000..2a2b3dd --- /dev/null +++ b/config/charybdis.json @@ -0,0 +1,55 @@ +{ + "id": "charybdis", + "name": "charybdis", + "layouts": { + "default": { + "layout": [ + { "label": "", "row": 0, "col": 0, "x": 0, "y": 0.360 }, + { "label": "", "row": 0, "col": 1, "x": 1, "y": 0.360 }, + { "label": "", "row": 0, "col": 2, "x": 2, "y": 0.110 }, + { "label": "", "row": 0, "col": 3, "x": 3, "y": -0.015 }, + { "label": "", "row": 0, "col": 4, "x": 4, "y": 0.110 }, + { "label": "", "row": 0, "col": 5, "x": 5, "y": 0.110 }, + { "label": "", "row": 0, "col": 7, "x": 9, "y": 0.110 }, + { "label": "", "row": 0, "col": 8, "x": 10, "y": 0.110 }, + { "label": "", "row": 0, "col": 9, "x": 11, "y": -0.015 }, + { "label": "", "row": 0, "col": 10, "x": 12, "y": 0.110 }, + { "label": "", "row": 0, "col": 11, "x": 13, "y": 0.360 }, + { "label": "", "row": 0, "col": 12, "x": 14, "y": 0.360 }, + + { "label": "", "row": 1, "col": 0, "x": 0, "y": 1.360 }, + { "label": "", "row": 1, "col": 1, "x": 1, "y": 1.360 }, + { "label": "", "row": 1, "col": 2, "x": 2, "y": 1.110 }, + { "label": "", "row": 1, "col": 3, "x": 3, "y": 0.985 }, + { "label": "", "row": 1, "col": 4, "x": 4, "y": 1.110 }, + { "label": "", "row": 1, "col": 5, "x": 5, "y": 1.110 }, + { "label": "", "row": 1, "col": 7, "x": 9, "y": 1.110 }, + { "label": "", "row": 1, "col": 8, "x": 10, "y": 1.110 }, + { "label": "", "row": 1, "col": 9, "x": 11, "y": 0.985 }, + { "label": "", "row": 1, "col": 10, "x": 12, "y": 1.110 }, + { "label": "", "row": 1, "col": 11, "x": 13, "y": 1.360 }, + { "label": "", "row": 1, "col": 12, "x": 14, "y": 1.360 }, + + { "label": "", "row": 2, "col": 0, "x": 0, "y": 2.360 }, + { "label": "", "row": 2, "col": 1, "x": 1, "y": 2.360 }, + { "label": "", "row": 2, "col": 2, "x": 2, "y": 2.110 }, + { "label": "", "row": 2, "col": 3, "x": 3, "y": 1.985 }, + { "label": "", "row": 2, "col": 4, "x": 4, "y": 2.110 }, + { "label": "", "row": 2, "col": 5, "x": 5, "y": 2.110 }, + { "label": "", "row": 2, "col": 7, "x": 9, "y": 2.110 }, + { "label": "", "row": 2, "col": 8, "x": 10, "y": 2.110 }, + { "label": "", "row": 2, "col": 9, "x": 11, "y": 1.985 }, + { "label": "", "row": 2, "col": 10, "x": 12, "y": 2.110 }, + { "label": "", "row": 2, "col": 11, "x": 13, "y": 2.360 }, + { "label": "", "row": 2, "col": 12, "x": 14, "y": 2.360 }, + + { "label": "", "row": 3, "col": 3, "x": 3.48, "y": 3.13, "r": 0 }, + { "label": "", "row": 3, "col": 4, "x": 3.48, "y": 3.13, "r": 15, "rx": 3.98, "ry": 7.88 }, + { "label": "", "row": 3, "col": 5, "x": 3.48, "y": 3.18, "r": 30, "rx": 3.98, "ry": 7.88 }, + { "label": "", "row": 3, "col": 7, "x": 10.52, "y": 3.18, "r": -30, "rx": 11.02, "ry": 7.88 }, + { "label": "", "row": 3, "col": 8, "x": 10.52, "y": 3.13, "r": -15, "rx": 11.02, "ry": 7.88 } + ] + } + }, + "sensors": [] +} \ No newline at end of file diff --git a/config/kyria_rev3.conf b/config/kyria_rev3.conf deleted file mode 100644 index 7a0b5b6..0000000 --- a/config/kyria_rev3.conf +++ /dev/null @@ -1,10 +0,0 @@ -# Uncomment these two line to add support for encoders to your firmware -# CONFIG_EC11=y -# CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y - -# Uncomment the following line to enable the Kyria OLED Display -# CONFIG_ZMK_DISPLAY=y - -# Uncomment the following lines to enable RGB underglow -# CONFIG_ZMK_RGB_UNDERGLOW=y -# CONFIG_WS2812_STRIP=y diff --git a/config/west.yml b/config/west.yml index b886cbe..b766343 100644 --- a/config/west.yml +++ b/config/west.yml @@ -1,13 +1,29 @@ manifest: remotes: - name: zmkfirmware - url-base: https://github.com/zmkfirmware - # Additional modules containing boards/shields/custom code can be listed here as well - # See https://docs.zephyrproject.org/3.2.0/develop/west/manifest.html#projects + url-base: https://github.com/petejohanson + - name: pmw3610k-driver + url-base: https://github.com/inorichi projects: - name: zmk remote: zmkfirmware - revision: main + revision: feat/pointers-move-scroll import: app/west.yml + - name: zmk-pmw3610-driver + remote: pmw3610k-driver + revision: main self: path: config +# manifest: +# remotes: +# - name: zmkfirmware +# url-base: https://github.com/zmkfirmware +# # Additional modules containing boards/shields/custom code can be listed here as well +# # See https://docs.zephyrproject.org/3.2.0/develop/west/manifest.html#projects +# projects: +# - name: zmk +# remote: zmkfirmware +# revision: main +# import: app/west.yml +# self: +# path: config