Git Product home page Git Product logo

zmk-config's Introduction

zmk-config

This is the ZMK-Config repo for the Polarity works BT60 V1 keyboard, with this you can customise your layout and keymap to suit your exact needs. We have provided base keymaps for the following layouts: ANSI, ISO, Split backspace and right shift, Tsangan and all 1u bottom rows. These can be accessed by choosing the appropriate branch.

THIS IS NOT THE REPO FOR THE V2/BT65/BT75, those files can be accessed here

Customisation

In order to change the keymap to meet your needs, you will need a GitHub account. Click the "fork" button in the top right to create your own version of the repo, then use the drop down menu to select the branch with your layout. The keymap information is contained entirely within the file bt60.keymap. Download this file to your computer and open it in a text editor such as Atom or notepad++ then you can open and edit it. The full list of ZMK keycodes can be found here. After editing the keymap file upload it to the original folder using the "Add file" dialog in GitHub, then click on "Actions" and wait for the build process to complete (The orange dot will go to either a red X or green tick).

Compilation and downloading

If you have made any errors in the keymap the compilation will fail and there will be a red X in the actions dialog. Click on it and it will tell you where the problem is. If the build completes with no errors you will be able to find the firmware in the "Artifacts" section of the last action. Put the keyboard into bootloader (Either double tap the hardware reset button or use the behaviour, typically fn + enter) and drag and drop the .uf2 file onto the usb drive that shows up

More advanced

If you want to exercise greater control over your BT60 and have a unique layout implemented you will need to change the matrix transform. The following diagram displays which keys connect to which row and column pins. Note that everything is zero indexed in the matrix transform alt text The matrix transform can be found in bt60.dts, more information on how to do the matrix transforms can be found in the official ZMK documentation here We're always willing to accept pull requests if you've developed your own layouts :)

Local builds

Steps taken from ZMK Development Setup. Commands have been provided where the steps differ from the documentation. Tested on Ubuntu 20.04.

  1. Install prerequisites
  2. Install west
  3. Install toolchain
  4. [Initialize West](Initialize West)
    west init -l config
    
  5. Update To Fetch Modules
  6. Export Zephyr™ Core
  7. Install Zephyr Python Dependencies
  8. Build the firmware
    west build -s zmk/app -b bt60 -- -DZMK_CONFIG="$(pwd)/config"
    
  9. Built firmware will be build/zephyr/zmk.uf2

zmk-config's People

Contributors

hassa129 avatar keymap-editor[bot] avatar pascalpfeil avatar refil avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

zmk-config's Issues

Build no longer works

I cloned the ANSI branch, kicked off the build.yml workflow in GitHub, and the build [1] fails:

Run west build -s zmk/app -b bt60 -- -DZMK_CONFIG="${GITHUB_WORKSPACE}/config"
-- west build: generating a build system
Loading Zephyr default modules (Zephyr base).
-- Application: /__w/zmk-config-3/zmk-config-3/zmk/app
-- Adding ZMK config directory as board root: /__w/zmk-config-3/zmk-config-3/config
-- ZMK Config directory: /__w/zmk-config-3/zmk-config-3/config
-- Using keymap file: /__w/zmk-config-3/zmk-config-3/config/bt60.keymap
-- Using keymap file: /__w/zmk-config-3/zmk-config-3/config/bt60.keymap
-- Found Python3: /usr/bin/python3.8 (found suitable exact version "3.8.10") found components: Interpreter 
-- Cache files will be written to: /__w/zmk-config-3/zmk-config-3/zephyr/.cache
-- Zephyr version: 3.2.0 (/__w/zmk-config-3/zmk-config-3/zephyr)
-- Found west (found suitable version "0.1[4](https://github.com/notfed/zmk-config-3/actions/runs/6076038062/job/16483369815#step:8:5).0", minimum required is "0.7.1")
-- Board: bt60
-- ZEPHYR_TOOLCHAIN_VARIANT not set, trying to locate Zephyr SDK
-- Found host-tools: zephyr 0.1[5](https://github.com/notfed/zmk-config-3/actions/runs/6076038062/job/16483369815#step:8:6).2 (/opt/zephyr-sdk-0.15.2)
-- Found toolchain: zephyr 0.15.2 (/opt/zephyr-sdk-0.15.2)
-- Found Dtc: /opt/zephyr-sdk-0.15.2/sysroots/x8[6](https://github.com/notfed/zmk-config-3/actions/runs/6076038062/job/16483369815#step:8:7)_64-pokysdk-linux/usr/bin/dtc (found suitable version "1.6.0", minimum required is "1.4.6") 
-- Found BOARD.dts: /__w/zmk-config-3/zmk-config-3/config/boards/arm/bt60/bt60.dts
-- Found devicetree overlay: /__w/zmk-config-3/zmk-config-3/config/bt60.keymap
devicetree error: /keymap/layer_raise: undefined node label 'reset'
-- In: /__w/zmk-config-3/zmk-config-3/build/zephyr, command: /usr/bin/python3.[8](https://github.com/notfed/zmk-config-3/actions/runs/6076038062/job/16483369815#step:8:9);/__w/zmk-config-3/zmk-config-3/zephyr/scripts/dts/gen_defines.py;--dts;/__w/zmk-config-3/zmk-config-3/build/zephyr/zephyr.dts.pre;--dtc-flags;'';--bindings-dirs;/__w/zmk-config-3/zmk-config-3/zmk/app/drivers/zephyr/dts/bindings;/__w/zmk-config-3/zmk-config-3/zmk/app/dts/bindings;/__w/zmk-config-3/zmk-config-3/zephyr/dts/bindings;--header-out;/__w/zmk-config-3/zmk-config-3/build/zephyr/include/generated/devicetree_generated.h.new;--dts-out;/__w/zmk-config-3/zmk-config-3/build/zephyr/zephyr.dts.new;--edt-pickle-out;/__w/zmk-config-3/zmk-config-3/build/zephyr/edt.pickle;--vendor-prefixes;/__w/zmk-config-3/zmk-config-3/zmk/app/dts/bindings/vendor-prefixes.txt;--vendor-prefixes;/__w/zmk-config-3/zmk-config-3/zephyr/dts/bindings/vendor-prefixes.txt
-- Configuring incomplete, errors occurred!
CMake Error at /__w/zmk-config-3/zmk-config-3/zephyr/cmake/modules/dts.cmake:230 (message):
  gen_defines.py failed with return code: 1
Call Stack (most recent call first):
  /__w/zmk-config-3/zmk-config-3/zephyr/cmake/modules/zephyr_default.cmake:108 (include)
  /__w/zmk-config-3/zmk-config-3/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:66 (include)
  /__w/zmk-config-3/zmk-config-3/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:[9](https://github.com/notfed/zmk-config-3/actions/runs/6076038062/job/16483369815#step:8:10)2 (include_boilerplate)
  CMakeLists.txt:[15](https://github.com/notfed/zmk-config-3/actions/runs/6076038062/job/16483369815#step:8:16) (find_package)


FATAL ERROR: command exited with status 1: /usr/local/bin/cmake -DWEST_PYTHON=/usr/bin/python3 -B/__w/zmk-config-3/zmk-config-3/build -GNinja -DBOARD=bt60 -DZMK_CONFIG=/__w/zmk-config-3/zmk-config-3/config -S/__w/zmk-config-3/zmk-config-3/zmk/app
Error: Process completed with exit code 1.

The first error being:

devicetree error: /keymap/layer_raise: undefined node label 'reset'

Has something changed?

[1] https://github.com/notfed/zmk-config-3/actions/runs/6076038062/job/16483369815

release the keymaps

I think it would be a lot easier for users, especially non-programmers, to download the keymaps from the releases page on github. Is this anything you would be interested in doing?

(For people who want to customize it, they'd still need to fork it, etc.)

New layout

I have created a new layout that might be userful for other people, the HHKB layout. I can create a pull request for it, however I can't create a branch for it on your repository.

Could you create a branch for hhkb? I will create a pull request with the layout.

Cheers!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.