Compare commits

..

150 Commits

Author SHA1 Message Date
Pete Johanson
a9ff3a78a1 chore(main): release 0.1.0 (#2657) 2024-12-04 14:26:12 -05:00
Cem Aksoylar
3f7c9d7cc4 docs: Create a Hardware Integration index page (#2634)
Co-authored-by: Nicolas Munnich <98408764+Nick-Munnich@users.noreply.github.com>
2024-11-28 23:00:33 -08:00
Cem Aksoylar
978c7cb124 docs: Mention combos in reset behaviors (#2677)
Fixes #2652
2024-11-28 14:45:33 +01:00
Cem Aksoylar
230b860f31 fix(boards): Disable uart serial node in Xiao BLE by default (#2672) 2024-11-25 17:19:13 -05:00
dependabot[bot]
d39941dfbe chore(deps): bump the prod-other-minor-patch group across 1 directory with 2 updates
Bumps the prod-other-minor-patch group with 2 updates in the /docs directory: [@fortawesome/fontawesome-svg-core](https://github.com/FortAwesome/Font-Awesome) and [@fortawesome/free-solid-svg-icons](https://github.com/FortAwesome/Font-Awesome).


Updates `@fortawesome/fontawesome-svg-core` from 6.6.0 to 6.7.1
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/6.x/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/compare/6.6.0...6.7.1)

Updates `@fortawesome/free-solid-svg-icons` from 6.6.0 to 6.7.1
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/6.x/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/compare/6.6.0...6.7.1)

---
updated-dependencies:
- dependency-name: "@fortawesome/fontawesome-svg-core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-other-minor-patch
- dependency-name: "@fortawesome/free-solid-svg-icons"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-other-minor-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-23 14:45:34 -08:00
Pete Johanson
fb359f5766 feat(boards): Add glove80 nexus node for extension GPIO. (#2594)
Add generic extension nexus node for consistent GPIO access
to the extension pins in a left/right agnostic way.
2024-11-20 18:36:32 -05:00
Genteure
76ee97e1b6 docs: Move defines to the end in layer behaviors (#2639) 2024-11-20 09:58:05 -08:00
Danil Romanov
33113c7028 docs: Update new-shield.mdx (#2664) 2024-11-20 18:54:54 +01:00
Pete Johanson
6934e362b5 docs(ci): Netlify ignore command to check branch (#2659)
Add a separate ignore script that checks git changes but also
only deploys main and version branches to allow us to deploy
versioned docs.

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-11-18 20:26:26 -05:00
dependabot[bot]
4fcc308910 chore(deps): bump cross-spawn from 7.0.3 to 7.0.6 in /docs
Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.6.
- [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/moxystudio/node-cross-spawn/compare/v7.0.3...v7.0.6)

---
updated-dependencies:
- dependency-name: cross-spawn
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-18 14:22:33 -08:00
Pete Johanson
ffa485c11b feat(ci): Add release-please automation with VERSION (#2622)
* Add VERSION file that Zephyr will pick up
* Add release-please automation
* Updated docs on commits messages, and PR process
* Updated PR template to match.

---


Release-As: 0.1.0

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-11-18 16:46:26 -05:00
Azalea Colburn
70542990c0 docs: Remove dangling 0 in sticky keys docs 2024-11-18 10:56:26 -08:00
esplo
f8eff2fe34 fix: include a header file for RC macros (#2649) 2024-11-16 09:51:21 +01:00
Peter Johanson
888c0d966c feat(drivers): Support init high/low in 595 driver
Add support for initializing a pin to a given high/low value during
configuration. Needed for proper initialization by systems like
GPIO hogs or gpio-leds Zephyr drivers.
2024-11-15 11:00:37 -07:00
Nicolas Munnich
58de2eb5e9 docs: touchups on the soft off information for improved clarity. (#2647) 2024-11-15 00:44:40 +01:00
Cem Aksoylar
e4339241ea docs: Mention build.yaml in Studio instructions (#2644) 2024-11-14 09:20:51 +01:00
Nicolas Munnich
fed66a92d0 fix(studio): Improved error message when keyboard is missing a physical layout. 2024-11-13 11:38:41 -07:00
Nicolas Munnich
9d9f626938 docs: Some minor improvements to the studio features page 2024-11-13 11:17:11 -07:00
Peter Johanson
14c6fb74ee ci: Add gitlint and document commit conventions
* Add gitlint to pre-commit setup
* Update pre-commit setup for installing commit-hooks
* Add "Commit Conventions" contributing docs

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-11-12 18:39:27 -07:00
Cem Aksoylar
b0f5789b12 fix: Disable display feature for settings_reset 2024-11-12 18:38:33 -07:00
Alexander Krikun
2a5b73f294 docs: document nrf528xx-nosd snippets 2024-11-12 18:28:59 -07:00
Alexander Krikun
4438b7b835 feat(boards): add nrf52840-nosd snippet
Add snippet to build for nRF52840 boards while ignoring the SoftDevice.
This might be useful for especially memory-intensive applications.
2024-11-12 18:28:59 -07:00
Alexander Krikun
63af296b6e feat(boards): add nrf52833-nosd snippet
Add snippet to build for nRF52833 boards while ignoring the SoftDevice.
This is necessary as those boards are memory-constrained.
2024-11-12 18:28:59 -07:00
ReFil
c9553c31e3 fix(boards): Fix typo in BT75 metadata
Spotted this underscore that shouldn't be there when reading the studio blog post
2024-11-12 13:44:56 -07:00
Nicolas Munnich
98e314baf2 docs: Added permissions note for ZMK Studio USB use (#2638) 2024-11-12 10:08:23 -08:00
Joel Spadin
c7473fc325 fix: Fix inconsistent column offset property
Renamed the composite kscan's column-offset property to col-offset for
consistency with other properties such as matrix transform's col-offset
and matrix kscan's col-gpios.
2024-11-12 09:07:25 -07:00
Peter Johanson
9320271dde docs: Remove beta warning from ZMK Studio pages. 2024-11-11 16:44:06 -07:00
Peter Johanson
8779530312 blog: Add ZMK Studio release blog post.
Co-authored-by: Nicolas Munnich <98408764+Nick-Munnich@users.noreply.github.com>
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-11-11 16:44:06 -07:00
dependabot[bot]
bac6bda34c chore(deps): bump the docusaurus-minor-patch group (#2631)
Bumps the docusaurus-minor-patch group in /docs with 3 updates: [@docusaurus/core](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus), [@docusaurus/preset-classic](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-preset-classic) and [@docusaurus/theme-mermaid](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-theme-mermaid).


Updates `@docusaurus/core` from 3.5.2 to 3.6.1
- [Release notes](https://github.com/facebook/docusaurus/releases)
- [Changelog](https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/docusaurus/commits/v3.6.1/packages/docusaurus)

Updates `@docusaurus/preset-classic` from 3.5.2 to 3.6.1
- [Release notes](https://github.com/facebook/docusaurus/releases)
- [Changelog](https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/docusaurus/commits/v3.6.1/packages/docusaurus-preset-classic)

Updates `@docusaurus/theme-mermaid` from 3.5.2 to 3.6.1
- [Release notes](https://github.com/facebook/docusaurus/releases)
- [Changelog](https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/docusaurus/commits/v3.6.1/packages/docusaurus-theme-mermaid)

---
updated-dependencies:
- dependency-name: "@docusaurus/core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: docusaurus-minor-patch
- dependency-name: "@docusaurus/preset-classic"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: docusaurus-minor-patch
- dependency-name: "@docusaurus/theme-mermaid"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: docusaurus-minor-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-11 01:05:54 +01:00
Cem Aksoylar
4082370215 chore: Config dependabot for grouped npm updates (#2614) 2024-11-09 22:11:28 -08:00
Alex Olshansky
7248438ee4 docs: Fix typos in local-toolchain/setup (#2626) 2024-11-10 01:09:29 +01:00
Nicolas Munnich
2ded7919eb docs: Adjust physical layouts page 2024-11-07 11:59:31 -07:00
Nicolas Munnich
99b8506437 refactor: new physical layouts convention 2024-11-06 15:29:22 -07:00
Nicolas Munnich
a173be9d71 docs: documenting new convention for physical layouts 2024-11-06 15:29:22 -07:00
Joel Spadin
cf2c46734d feat(boards): Add numpad layouts
Added physical layouts for the following variants of numpads:

- With and without extra top row
- 2U plus key or 1U plus and backspace keys
- 2U 0 key or 1U 0 and 00 keys
- Full 1U grid/macropad layout

Other layouts exist, such as "southpaw" horizontally mirrored layouts,
and layouts with a fifth column, but those seem to be much less common.
2024-11-06 11:35:51 -07:00
dependabot[bot]
e6c1219f0c chore(deps-dev): bump @docusaurus/types from 3.5.2 to 3.6.0 in /docs (#2612)
Bumps [@docusaurus/types](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-types) from 3.5.2 to 3.6.0.
- [Release notes](https://github.com/facebook/docusaurus/releases)
- [Changelog](https://github.com/facebook/docusaurus/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/docusaurus/commits/v3.6.0/packages/docusaurus-types)

---
updated-dependencies:
- dependency-name: "@docusaurus/types"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-05 13:37:45 +01:00
Peter Johanson
19a096ab67 fix(keymap): Set bindings with changed layout
* Fix bug with setting keymap layer bindings when a non-stock layout
  is selected.
2024-11-04 13:30:40 -07:00
dependabot[bot]
f08b817d60 chore(deps-dev): bump webpack from 5.96.0 to 5.96.1 in /docs (#2607)
Bumps [webpack](https://github.com/webpack/webpack) from 5.96.0 to 5.96.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.96.0...v5.96.1)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-04 09:56:00 +01:00
Allister MacLeod
9935e8df47 chore: Marking C_AL_CALENDAR / C_AL_CAL as not available on macOS and iOS. (#2606) 2024-11-03 08:31:27 +01:00
Brian Tannous
644fc821f7 Set C_AL_CALC for macOS and iOS to false (#1595) 2024-11-03 01:25:48 +01:00
Less/Rikki
6e37f21f6b docs(feat): further generalize RGB information (#2485)
* docs(feat): Provide example of PIO SPI for RGB underglow

* docs(feat): further generalize RGB information

* docs: use nice_nano_v2 for board-specific shield config example

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>

---------

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-11-03 00:31:15 +01:00
Nicolas Munnich
40f59df2cc docs: studio features list (#2598)
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
Co-authored-by: Peter Johanson <peter@peterjohanson.com>
2024-11-03 00:30:01 +01:00
Nicolas Munnich
1cfce345ba docs: Add retro-tap sentence and fix anchor (#2605)
Co-authored-by: Felix Sargent <felix.sargent@gmail.com>
2024-11-03 00:29:09 +01:00
Nicolas Munnich
f4582bdaa7 feat(docs) Adding some additional clarity around low power states (#2330)
* docs(feat): Adding some additional clarity around low power states, with guide portion moved to hardware integration

---------

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-11-02 23:20:31 +01:00
Peter Johanson
249ecbc7e6 fix(studio): Bump nanopb version with build fixes.
* Pull in fixes for prefering generator/protoc instead of the
  host protoc, for better compatibility.
2024-11-01 13:17:29 -06:00
dependabot[bot]
158bb31863 chore(deps-dev): bump webpack from 5.95.0 to 5.96.0 in /docs (#2600)
Bumps [webpack](https://github.com/webpack/webpack) from 5.95.0 to 5.96.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.95.0...v5.96.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-01 09:50:53 +01:00
Nicolas Munnich
80df3195b7 docs: Add a hardware issues page under troubleshooting (#2360)
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
Co-authored-by: Anant Thazhemadam <47104651+thazhemadam@users.noreply.github.com>
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
2024-10-31 10:42:00 -07:00
Pauiii
cb5e605906 docs: Devcontainers-cli enhancement (#2548)
* docs: Split local toolchain setup for Docker in two separated approaches.

This includes adding a new dropdown for Docker which lists overall steps
that have to be done when setting up the environment. Furthermore, the
previous documentation is no listed under VSCode and new documentation
for the Devcontainer CLI has been added.

Since the described approaches for VS Code and Dev Container CLI varied
quiet a bit a more unified way of setting them up was added. Due to
that, the documentation for building and flashing could be simplified as
well.

* docs: Update documentation for building and flashing for devcontainers.

Moved information about creating volumes for Docker containers into the
overall Docker setup documentation. Add warning for changing build
directory or adding options for building at the top of the page.

* feat(devcontainers): Add new volume for mounting modules.

---------

Co-authored-by: Nicolas Munnich <98408764+Nick-Munnich@users.noreply.github.com>
2024-10-27 20:17:41 +01:00
Nicolas Munnich
7d8dd64cdc docs: Added a page on pin control for ZMK (#2508)
* docs(feat): Added a page on pin control for ZMK

* Added note on HAL modules

* docs: Added images of boards

---------

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-10-27 02:31:47 +02:00
Joel Spadin
f0a3947044 Update web-tree-sitter and tweak keymap upgrader (#2593)
* fix(docs): Fix TypeScript import diagnostics

Set the TypeScript module resolution mode to "bundler" so it correctly
resolves imports in .ts files instead of showing errors in IDEs.

* chore(docs): Update web-tree-sitter

Updated web-tree-sitter, and switched from having a copy of
tree-sitter-devicetree.wasm in the repo to using the latest version of
the tree-sitter-devicetree module, which now contains the .wasm file.

* fix(docs): Make keymap upgrader resize vertically only

Changed the textarea in the keymap ugprader to allow only vertical
resizing. This better fits the layout of the page, and it prevents you
from shrinking the box horizontally to the point where it doesn't fit
anything.
2024-10-26 09:55:09 +02:00
Nicolas Munnich
7ee25c7959 chore: updated path-to-regexp 2024-10-25 14:06:42 -07:00
dependabot[bot]
87cea76c93 chore(deps): bump react-toastify from 10.0.5 to 10.0.6 in /docs (#2589)
Bumps [react-toastify](https://github.com/fkhadra/react-toastify) from 10.0.5 to 10.0.6.
- [Release notes](https://github.com/fkhadra/react-toastify/releases)
- [Commits](https://github.com/fkhadra/react-toastify/compare/v10.0.5...v10.0.6)

---
updated-dependencies:
- dependency-name: react-toastify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-23 13:10:34 +02:00
dependabot[bot]
9a68b2eeb7 chore(deps-dev): bump @types/react from 18.3.5 to 18.3.12 in /docs (#2587)
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.3.5 to 18.3.12.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-23 13:07:45 +02:00
dependabot[bot]
428c36bc59 chore(deps-dev): bump eslint-plugin-react from 7.37.1 to 7.37.2 in /docs (#2588)
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.37.1 to 7.37.2.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.37.1...v7.37.2)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-23 13:05:51 +02:00
Nicolas Munnich
5487b108d5 docs: fixing some more broken anchors (#2586) 2024-10-23 02:16:59 +02:00
dependabot[bot]
55c67804eb chore(deps): bump http-proxy-middleware from 2.0.6 to 2.0.7 in /docs (#2585)
Bumps [http-proxy-middleware](https://github.com/chimurai/http-proxy-middleware) from 2.0.6 to 2.0.7.
- [Release notes](https://github.com/chimurai/http-proxy-middleware/releases)
- [Changelog](https://github.com/chimurai/http-proxy-middleware/blob/v2.0.7/CHANGELOG.md)
- [Commits](https://github.com/chimurai/http-proxy-middleware/compare/v2.0.6...v2.0.7)

---
updated-dependencies:
- dependency-name: http-proxy-middleware
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-23 01:52:19 +02:00
dependabot[bot]
0d8b23fccb chore(deps): bump mermaid from 10.9.1 to 10.9.3 in /docs (#2584)
Bumps [mermaid](https://github.com/mermaid-js/mermaid) from 10.9.1 to 10.9.3.
- [Release notes](https://github.com/mermaid-js/mermaid/releases)
- [Changelog](https://github.com/mermaid-js/mermaid/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/mermaid-js/mermaid/compare/v10.9.1...v10.9.3)

---
updated-dependencies:
- dependency-name: mermaid
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-23 01:49:45 +02:00
dependabot[bot]
e9681270d3 chore(deps): bump @mdx-js/react from 3.0.1 to 3.1.0 in /docs (#2580)
Bumps [@mdx-js/react](https://github.com/mdx-js/mdx/tree/HEAD/packages/react) from 3.0.1 to 3.1.0.
- [Release notes](https://github.com/mdx-js/mdx/releases)
- [Changelog](https://github.com/mdx-js/mdx/blob/main/changelog.md)
- [Commits](https://github.com/mdx-js/mdx/commits/3.1.0/packages/react)

---
updated-dependencies:
- dependency-name: "@mdx-js/react"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-23 01:48:09 +02:00
dependabot[bot]
4c47d67e63 chore(deps-dev): bump typescript from 5.5.4 to 5.6.3 in /docs (#2581)
Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.5.4 to 5.6.3.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.5.4...v5.6.3)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-23 01:39:19 +02:00
Peter Johanson
8ed556df62 chore(studio): Only clear settings for overridden key positions. 2024-10-21 14:53:31 -06:00
Peter Johanson
369a009d99 chore(shields): Add studio feature to qaz metadata 2024-10-21 10:08:51 -06:00
Zack Forbing
200d98f623 feat(shields): QAZ: added three physical layouts
* added three physical layouts

---------

Co-authored-by: Zack Forbing <zforbing@vertafore.com>
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-10-21 11:53:06 -04:00
dependabot[bot]
8756a064d1 chore(deps-dev): bump webpack from 5.94.0 to 5.95.0 in /docs (#2578)
Bumps [webpack](https://github.com/webpack/webpack) from 5.94.0 to 5.95.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.94.0...v5.95.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-21 09:01:53 +02:00
KingCoinless
7293037f18 docs(codes): Android Support: Basic Controls and Input + Display (#603)
* docs(codes): Android Support: Basic Controls and Input + Display
---------

Co-authored-by: Nicolas Munnich <98408764+Nick-Munnich@users.noreply.github.com>
2024-10-20 23:57:00 +02:00
dependabot[bot]
a057e4c89d chore(deps-dev): bump json-schema-to-typescript from 13.1.2 to 15.0.2 in /docs (#2454)
* chore(deps-dev): bump json-schema-to-typescript in /docs

Bumps [json-schema-to-typescript](https://github.com/bcherny/json-schema-to-typescript) from 13.1.2 to 15.0.2.
- [Changelog](https://github.com/bcherny/json-schema-to-typescript/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bcherny/json-schema-to-typescript/commits)

---
updated-dependencies:
- dependency-name: json-schema-to-typescript
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix: glob types missing

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nicolas Munnich <nickmunnich@gmail.com>
2024-10-20 18:38:11 +02:00
dependabot[bot]
7f1ee320ab chore(deps): bump cookie and express in /docs (#2570)
Bumps [cookie](https://github.com/jshttp/cookie) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together.

Updates `cookie` from 0.6.0 to 0.7.1
- [Release notes](https://github.com/jshttp/cookie/releases)
- [Commits](https://github.com/jshttp/cookie/compare/v0.6.0...v0.7.1)

Updates `express` from 4.19.2 to 4.21.1
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/4.21.1/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.19.2...4.21.1)

---
updated-dependencies:
- dependency-name: cookie
  dependency-type: indirect
- dependency-name: express
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-19 20:01:01 +02:00
dependabot[bot]
b67f8bbe9f chore(deps-dev): bump eslint-plugin-react from 7.35.0 to 7.37.1 in /docs (#2524)
Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.35.0 to 7.37.1.
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.35.0...v7.37.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-19 19:52:54 +02:00
dependabot[bot]
548fe7f6bd chore(deps): bump serve-static and express in /docs (#2483)
Bumps [serve-static](https://github.com/expressjs/serve-static) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together.

Updates `serve-static` from 1.15.0 to 1.16.2
- [Release notes](https://github.com/expressjs/serve-static/releases)
- [Changelog](https://github.com/expressjs/serve-static/blob/v1.16.2/HISTORY.md)
- [Commits](https://github.com/expressjs/serve-static/compare/v1.15.0...v1.16.2)

Updates `express` from 4.19.2 to 4.21.0
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/4.21.0/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.19.2...4.21.0)

---
updated-dependencies:
- dependency-name: serve-static
  dependency-type: indirect
- dependency-name: express
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-19 19:39:26 +02:00
dependabot[bot]
94100e307b chore(deps-dev): bump eslint-config-prettier in /docs (#2127)
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 8.10.0 to 9.1.0.
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v8.10.0...v9.1.0)

---
updated-dependencies:
- dependency-name: eslint-config-prettier
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-19 14:52:13 +02:00
dependabot[bot]
2e9d72ba6b chore(deps-dev): bump prettier from 2.8.8 to 3.3.3 in /docs (#2374)
Bumps [prettier](https://github.com/prettier/prettier) from 2.8.8 to 3.3.3.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.8.8...3.3.3)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-19 14:47:00 +02:00
Peter Johanson
ea1a09bf99 fix: Optimize layout changes by doing runtime mapping
* To avoid tons of migration, extra flash writes, etc, we keep
  the keymaps and settings using a key position index that's tied
  to the stock layout, and at runtime mapping key positions as
  needed.
2024-10-18 15:30:13 -06:00
Nicolas Munnich
a6d09f8c00 docs: Added mastodon link in footer 2024-10-17 15:01:30 -06:00
Peter Johanson
10868c72f7 chore: Tag studio enabled boards/shields. 2024-10-17 10:20:30 -06:00
Peter Johanson
64c1e1e3ff feat: Add studio as a feature option in metadata
* Allow boards/shields to indicate ZMK Studio support in the `features` list.
2024-10-17 10:20:30 -06:00
honorless
7dfc6ab31d refactor(shields): MurphPad
* Added matrix transforms and physical layouts for three typical
  configurations.

* Tweaked default keymap to be more immediately useful for ZMK and more
  closely resemble the default keymaps of non-ZMK firmware.

* Board-specific Kconfig settings migrated to main shield file, so they
  will be exposed to end-users through the setup script.

* Tidied formatting and shortened overlong layer labels.

* Aligned encoder configuration with current standards.

* Corrected default number of RGB LEDs.

* Enabled OLED by default in a less authoritarian way.
2024-10-16 18:21:40 -06:00
Alexander Krikun
11537ebee6 feat(shields): add physical layouts and update keymap for Jiran
Add physical layouts and update the keymap for Ladniy's Jiran.
Layouts are added for all three possible transforms:
- Full (with additional pinky key and number row)
- Jian (with additional pinky key), re-uses Jian layout
- 6 column (Corne), re-uses Jian layout

Keymap update includes &studio_unlock.
2024-10-16 17:04:39 -06:00
Alexander Krikun
218a2fff8d feat(shields): add physical layouts and update keymap for Jian
Add physical layouts and update the keymap for King of Hedgehogs' Jian.
Layouts are added for all three possible transforms:
- Full (with additional pinky key)
- 6 column (Corne)
- 5 column (Minidox)

The layouts are added to be re-usable for the Jiran and other custom boards/shields.

Keymap update includes, small guide clarifications, output selection,
tri-layer and &studio_unlock.
2024-10-16 17:04:39 -06:00
Alexander Krikun
bbe4f64bb2 feat(shields): add physical layouts and update keymap for Jorne
Add physical layouts and update the keymap for Joric's Jorne.
Layouts are added for all three possible transforms:
- Full (with additional pinky key)
- 6 column (Corne), re-uses Corne layout
- 5 column (Minidox), re-uses Corne layout

Keymap update includes quick-tap-ms (essential for this keymap), small
guide clarifications, output selection, tri-layer and &studio_unlock.
2024-10-16 17:04:39 -06:00
Peter Johanson
c8841c4119 docs: Add note about .keymap changes when using Studio 2024-10-16 13:09:51 -06:00
Peter Johanson
993a64d5b3 docs: Better document the layer display-name prop. 2024-10-16 11:57:27 -06:00
angweekiat
0adb80c02b fix(usb): detect USB power mode to fallback to BLE
* Add tracking to see if we ever hit a configured status before
  suspend, so we can properly track "is connected" even when
  connected to a suspended/asleep host.
2024-10-14 19:15:45 -04:00
Peter Johanson
6cbf25f04a docs: Update Studio status warnings to beta.
Co-authored-by: Nicolas Munnich <98408764+Nick-Munnich@users.noreply.github.com>
2024-10-14 09:42:06 -06:00
Peter Johanson
0abc1eaf23 docs: Add ZMK Studio links.
* Add a toplevel ZMK Studio link in our header.
* Add link to the web and app releases to the feature page.
2024-10-14 09:42:06 -06:00
Nicolas Munnich
a72327bdff docs: Physical layout docs improvements (#2533)
* docs: Added layout configuration reference page
* docs: Refactored and revamped physical layout creation information
* docs: Added note in studio features page
* docs: added studio_unlock note in features section
---------

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
Co-authored-by: Joel Spadin <joelspadin@gmail.com>
Co-authored-by: Peter Johanson <peter@peterjohanson.com>
2024-10-12 21:25:45 +02:00
Pete Johanson
d3f2895744 refactor: Give position map children labels. (#2544)
* To make is easier to reuse layouts and override the position
  maps for them, add labels to all the position map children in our
  shared layouts.
2024-10-10 13:03:32 -04:00
Pete Johanson
dab4b2cdf3 fix(studio): Reduce stack usage. (#2547)
* Imply nanopb setting for reduced stack usage.
2024-10-10 12:49:51 -04:00
Pete Johanson
78513af73e feat(studio): Move to nanopb with minor optimizations. (#2505)
* Reduced stack size.
2024-10-10 12:36:27 -04:00
Cem Aksoylar
022ede9d1e docs: Remove download for settings_reset and note local build 2024-10-08 17:04:36 -07:00
Cem Aksoylar
16976db58c docs: Fix columns names in kscan config 2024-10-08 14:58:04 -07:00
Cem Aksoylar
6e2d30d589 docs: Add missing hold-trigger-on-release to config 2024-10-08 14:58:04 -07:00
Allister MacLeod
4aea919a4d fix(display): Adding length check to layer_label in nice_view status widget. 2024-10-08 12:27:01 -04:00
Peter Johanson
47a17c64d7 fix: Defer auto enabling of kscan sideband.
* Now that device init of kscan sideband is in POST_KERNEL stage,
  use a separate SYS_INIT for auto enabling the device so processing
  of early/initial presses from referenced toggle mode kscan devices
  occurs at the proper time during init.
2024-10-08 10:20:39 -06:00
Peter Johanson
6cac781ada feat: Add basic metadata info to new behavior guide.
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
Co-authored-by: Nicolas Munnich <98408764+Nick-Munnich@users.noreply.github.com>
2024-10-08 00:45:37 -06:00
Peter Johanson
29b39f2b9f feat: A few enhancements to our RPC messages.
* More fine grained status reporting when saving changes. Needed to we
  can notify the client if we've got errors saving settings due to
  running out of space, etc.
* Return the max layer name lenght in the keymap payload, for the UI to
  leverage.
2024-10-03 15:10:58 -06:00
Nicolas Munnich
c05aed2f19 fix(boards): Corneish-zen physical layout 2024-10-03 08:57:18 -06:00
Joel Spadin
60a8f29340 feat(boards)!: refactor Corne layouts
Split up the Corne layout files to match the previous commit.
2024-10-02 18:48:18 -06:00
Joel Spadin
36f146226e feat(boards)!: refactor common layouts
Removed the combined .dtsi file for each group of common layouts, and
split the position map across the files in each group. This makes
reading the position maps slightly more difficult, but it aligns the
common layouts with the keyboard-specific ones such as
foostan/corne.dtsi in that simply including each header adds the
layout, with no need to set status = "okay".
2024-10-02 18:48:18 -06:00
Peter Johanson
73ca365530 feat(boards): PM RP2040 flash settings support. 2024-10-01 01:57:08 -06:00
LostQuasar
90d6285d98 blog: Remove reference to spaceman (#2520) 2024-09-30 19:43:58 -07:00
Nicolas Munnich
e195822559 docs: fixed broken anchors 2024-09-30 16:43:47 -07:00
Nicolas Munnich
99b424bb4b docs: Streamlined the new shield guide (#2515)
* docs: Streamlined the new shield guide

---------

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-10-01 00:00:55 +02:00
Peter Johanson
ce04352e2f feat: Add reviung41 physical layout. 2024-09-30 12:00:21 -06:00
Peter Johanson
8c21e7766d feat: Add physical layout to BDN9 rev2. 2024-09-30 12:00:21 -06:00
Peter Johanson
7276fd525f feat: Build asserts for requires studio layout bits.
* When building with ZMK Studio, assert that we have physical layouts,
  and those layouts have key information set.
2024-09-30 12:00:21 -06:00
Cem Aksoylar
59c82ef27a refactor(shields): Use space not hyphen for layout names 2024-09-30 11:30:10 -06:00
Cem Aksoylar
608b6458a9 feat(boards): Add physical layout to Corne-ish Zen 2024-09-30 11:30:10 -06:00
Cem Aksoylar
907b1caaa6 refactor(shields): Add physical layout chosen nodes for consistency 2024-09-30 11:30:10 -06:00
Cem Aksoylar
552d665f58 feat(boards): Add glove80 and adv360pro layouts 2024-09-30 11:30:10 -06:00
Cem Aksoylar
dafdc44b22 feat(shields): Use new shared layouts 2024-09-30 11:30:10 -06:00
Cem Aksoylar
f618871f53 feat(shields): Add more shared layouts 2024-09-30 11:30:10 -06:00
Nicolas Munnich
a314128ea8 docs: Pull encoders from new shield guide to its own page (#2510)
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-09-30 10:06:00 -07:00
ReFil
e68abe57d8 feat(shields): Shield physical layouts 2024-09-26 11:53:24 -06:00
ReFil
e80b1584de feat(boards): Preonic physical layout 2024-09-26 11:53:24 -06:00
ReFil
91e1a7cfef feat(boards): Planck physical layout 2024-09-26 11:53:24 -06:00
ReFil
026be009a6 feat(boards): CKP physical layout 2024-09-26 11:53:24 -06:00
ReFil
a8f7888f4d feat(boards): BT60 V1 Physical Layout 2024-09-26 11:53:24 -06:00
ReFil
a47f1fe2e1 feat(boards): nice!60 physical layout 2024-09-26 11:53:24 -06:00
ReFil
ec32c566ce feat(boards): Tofu65 V2 Physical layout 2024-09-26 11:53:24 -06:00
ReFil
0a25fa2f95 feat(boards): add common keyboard layouts 2024-09-26 11:53:24 -06:00
Nicolas Munnich
1f900bfc9c docs: Added a note on bluetooth profiles under "unable to connect to device" (#2509)
* docs: Added a note on bluetooth profiles under "unable to connect to device"

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>

---------

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-09-26 19:49:13 +02:00
Peter Johanson
a17266847d fix: Force Ubuntu 22.04, pending CI fixes. 2024-09-26 10:08:43 -06:00
Peter Johanson
4a8ceba0db chore: Fix keymap const warning. 2024-09-25 20:23:19 -06:00
Peter Johanson
5d4b6df6a7 feat(studio): Log entry into all RPC. 2024-09-25 17:46:50 -06:00
Peter Johanson
21e1b2acad feat: Add RPC thread analysis support. 2024-09-25 17:46:50 -06:00
ReFil
17f0a4d307 feat(ble): Set device name at runtime
This allows for the device name to be set at runtime, possible uses for this include a custom display screen that lets you type it in using the keycode state event, future configuration in zmk studio, or altering it per profile as per #1169
2024-09-25 15:35:42 -04:00
ReFil
58dcf5c285 feat(power): Support multiple ext_power GPIOS 2024-09-25 15:30:45 -04:00
Peter Johanson
33e3b02ddb feat: Split physical layout selection sync.
* Ensure the split peripherals have the same selected physical
  layout on connection and change.
2024-09-23 15:12:22 -06:00
Peter Johanson
f992352936 chore: Formatting fix. 2024-09-23 10:31:43 -06:00
Cem Aksoylar
8166527ea3 fix(docs): Remove split locality issue note 2024-09-23 10:17:29 -06:00
Cem Aksoylar
fb18a4d871 refactor: Condition source props on CONFIG_ZMK_SPLIT 2024-09-23 10:17:29 -06:00
Cem Aksoylar
b249135742 feat(sensors): Make sensors always trigger on central (for now) 2024-09-23 10:17:29 -06:00
Cem Aksoylar
4fdfb01b6a feat(split): Make combos invoke behaviors with locality
TODO: Currently the source is hardcoded to central for source local behaviors
2024-09-23 10:17:29 -06:00
Cem Aksoylar
9e36ebd525 feat(split): Make locality work nested behavior invocations
Co-authored-by: Tokazio <tokazio@hotmail.com>
2024-09-23 10:17:29 -06:00
Peter Johanson
11f600d9e5 fix(display): Check layer name length too. 2024-09-20 22:59:44 -06:00
Peter Johanson
cca637d66e fix: Properly calculate highest active layer for display. 2024-09-20 22:59:44 -06:00
Peter Johanson
de38676afd fix(core): Warn only with layouts + chosen transform
* Instead of erroring out, simply ignore physical layouts if we
  detect a chosen matrix transform, and warn instead.
2024-09-19 13:12:17 -06:00
Peter Johanson
1baf18d671 chore: Better errno formatting in logs. 2024-09-19 01:15:13 -06:00
Peter Johanson
6ae07d222a feat: Bit of extra studio keymap logging. 2024-09-18 13:08:35 -06:00
XiNGRZ
62900c62be fix(studio): Ensure null-termination of layer name read from settings
This fixes the string leak when a layer name is changed to a longer one,
but is discarded and reverted to the original shorter one from ZMK Studio.
2024-09-18 10:53:23 -06:00
Andrew Kannan
c8c8835a19 fix(studio): Update position map querying 2024-09-17 23:29:08 -06:00
Peter Johanson
a9167b2275 fix: Reduce RAM usage in the keymap
* When not building with runtime keymap support, make the keymap
  const.
2024-09-16 23:20:14 -06:00
Peter Johanson
32d0a4bf41 fix: Fix wakeup from kscan wrapped in sideband.
* If using a sideband kscan device to wrap a native kscan device,
  ensure the inner kscan device is also wakeup enabled to it can
  be waken from a deep sleep state by key press.
2024-09-16 15:17:26 -06:00
Abe Nonym
92745903c9 fix(ble): Properly compile with clear bonds on start 2024-09-16 12:06:34 -04:00
Maxime Vincent
67d595f29f pre-commit: re-format using clang-format hook (v18.1.8) 2024-09-13 16:04:26 -06:00
Maxime Vincent
82a22d731b pre-commit: use versioned clang-format hook (v18.1.8) 2024-09-13 16:04:26 -06:00
Jim Aho
6e03a0bb67 fix(docs): Fix wording in layers section in keymaps (#2474) 2024-09-12 13:57:19 -07:00
Peter Johanson
6b4d591c37 fix(bt): Fix compilation failure for clearing bonds.
* Refactor broke the build when clearing bonds on start.
2024-09-09 11:26:53 -06:00
Nicolas Munnich
1c48f64730 fix(docs): Fix broken anchor in Studio setup (#2465) 2024-09-07 09:26:24 -07:00
Nicolas Munnich
f0319fde94 docs(feat): Added a page on shift registers (#2452)
Added a page on shift registers
---------

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-09-07 13:19:01 +02:00
Pete Johanson
d52bb04090 Revert "feat: Split physical layout selection sync."
This reverts commit 03b5b38bc4.
2024-09-07 00:22:01 -06:00
337 changed files with 11231 additions and 4383 deletions

View File

@@ -9,6 +9,7 @@
"mounts": [ "mounts": [
"type=volume,source=zmk-root-user,target=/root", "type=volume,source=zmk-root-user,target=/root",
"type=volume,source=zmk-config,target=/workspaces/zmk-config", "type=volume,source=zmk-config,target=/workspaces/zmk-config",
"type=volume,source=zmk-modules,target=/workspaces/zmk-modules",
"type=volume,source=zmk-zephyr,target=${containerWorkspaceFolder}/zephyr", "type=volume,source=zmk-zephyr,target=${containerWorkspaceFolder}/zephyr",
"type=volume,source=zmk-zephyr-modules,target=${containerWorkspaceFolder}/modules", "type=volume,source=zmk-zephyr-modules,target=${containerWorkspaceFolder}/modules",
"type=volume,source=zmk-zephyr-tools,target=${containerWorkspaceFolder}/tools" "type=volume,source=zmk-zephyr-tools,target=${containerWorkspaceFolder}/tools"

View File

@@ -8,3 +8,50 @@ updates:
directory: "/docs" directory: "/docs"
schedule: schedule:
interval: "daily" interval: "daily"
groups:
docusaurus-major:
applies-to: "version-updates"
dependency-type: "production"
patterns:
- "@docusaurus/*"
update-types:
- "major"
docusaurus-minor-patch:
applies-to: "version-updates"
dependency-type: "production"
patterns:
- "@docusaurus/*"
update-types:
- "minor"
- "patch"
tree-sitter:
applies-to: "version-updates"
dependency-type: "production"
patterns:
- "tree-sitter-devicetree"
- "web-tree-sitter"
prod-other-major:
applies-to: "version-updates"
dependency-type: "production"
exclude-patterns:
- "@docusaurus/*"
- "tree-sitter-devicetree"
- "web-tree-sitter"
update-types:
- "major"
prod-other-minor-patch:
applies-to: "version-updates"
dependency-type: "production"
exclude-patterns:
- "@docusaurus/*"
- "tree-sitter-devicetree"
- "web-tree-sitter"
update-types:
- "minor"
- "patch"
development:
applies-to: "version-updates"
dependency-type: "development"
update-types:
- "minor"
- "patch"

View File

@@ -1,15 +1,8 @@
<!-- If you're adding a board/shield please fill out this check-list, otherwise you can delete it --> <!-- Note: ZMK is generally not accepting PRs for new keyboards. New generic controller PRs *may* still be accepted, please discuss on the Discord server first. -->
## Board/Shield Check-list ## PR check-list
- [ ] This board/shield is tested working on real hardware - [ ] Branch has a [clean commit history](https://zmk.dev/docs/development/contributing/pull-requests#clean-commit-history)
- [ ] Definitions follow the general style of other shields/boards upstream ([Reference](https://zmk.dev/docs/development/new-shield)) - [ ] Additional tests are included, if changing behaviors/core code that is testable.
- [ ] `.zmk.yml` metadata file added
- [ ] Proper Copyright + License headers added to applicable files (Generally, we stick to "The ZMK Contributors" for copyrights to help avoid churn when files get edited) - [ ] Proper Copyright + License headers added to applicable files (Generally, we stick to "The ZMK Contributors" for copyrights to help avoid churn when files get edited)
- [ ] General consistent formatting of DeviceTree files - [ ] [Pre-commit](https://zmk.dev/docs/development/local-toolchain/pre-commit) used to check formatting of files, commit messages, etc.
- [ ] Keymaps do not use deprecated key defines (Check using the [upgrader tool](https://zmk.dev/docs/codes/keymap-upgrader))
- [ ] `&pro_micro` used in favor of `&pro_micro_d/a` if applicable
- [ ] If split, no name added for the right/peripheral half
- [ ] Kconfig.defconfig file correctly wraps _all_ configuration in conditional on the shield symbol
- [ ] `.conf` file has optional extra features commented out
- [ ] Keyboard/PCB is part of a shipped group buy or is generally available in stock to purchase (OSH/personal projects without general availability should create a zmk-config repo instead)

View File

@@ -26,7 +26,7 @@ on:
jobs: jobs:
matrix: matrix:
runs-on: ubuntu-latest runs-on: ubuntu-22.04
name: Fetch Build Keyboards name: Fetch Build Keyboards
outputs: outputs:
build_matrix: ${{ env.build_matrix }} build_matrix: ${{ env.build_matrix }}

38
.github/workflows/release-please.yml vendored Normal file
View File

@@ -0,0 +1,38 @@
on:
push:
branches:
- main
- "v*.*-branch"
permissions:
contents: write
pull-requests: write
name: release-please
jobs:
release-please:
runs-on: ubuntu-latest
steps:
- uses: googleapis/release-please-action@v4
id: release
with:
token: ${{ secrets.ZMK_RELEASE_PLEASE_TOKEN }}
target-branch: ${{ github.ref_name }}
- uses: actions/checkout@v4
if: ${{ steps.release.outputs.release_created }}
- name: create major, minor branch
if: ${{ steps.release.outputs.release_created && steps.release.outputs.patch == '0' }}
run: |
git remote add gh-token-branch "https://x-access-token:${{ secrets.ZMK_RELEASE_PLEASE_TOKEN }}@github.com/${{ github.repository }}.git"
git checkout -b v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}-branch
git push gh-token-branch v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}-branch
- name: tag major and minor versions
if: ${{ steps.release.outputs.release_created }}
run: |
git config user.name github-actions[bot]
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
git remote add gh-token "https://x-access-token:${{ secrets.ZMK_RELEASE_PLEASE_TOKEN }}@github.com/${{ github.repository }}.git"
git tag -d v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }} || true
git tag -a v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }} -m "Release v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}"
git push --force gh-token v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}

138
.gitlint Normal file
View File

@@ -0,0 +1,138 @@
# Edit this file as you like.
#
# All these sections are optional. Each section with the exception of [general] represents
# one rule and each key in it is an option for that specific rule.
#
# Rules and sections can be referenced by their full name or by id. For example
# section "[body-max-line-length]" could also be written as "[B1]". Full section names are
# used in here for clarity.
#
[general]
# Ignore certain rules, this example uses both full name and id
# ignore=title-trailing-punctuation, T3
# verbosity should be a value between 1 and 3, the commandline -v flags take precedence over this
# verbosity = 2
# By default gitlint will ignore merge, revert, fixup, fixup=amend, and squash commits.
# ignore-merge-commits=true
# ignore-revert-commits=true
# ignore-fixup-commits=true
# ignore-fixup-amend-commits=true
# ignore-squash-commits=true
# Ignore any data sent to gitlint via stdin
# ignore-stdin=true
# Fetch additional meta-data from the local repository when manually passing a
# commit message to gitlint via stdin or --commit-msg. Disabled by default.
# staged=true
# Hard fail when the target commit range is empty. Note that gitlint will
# already fail by default on invalid commit ranges. This option is specifically
# to tell gitlint to fail on *valid but empty* commit ranges.
# Disabled by default.
# fail-without-commits=true
# Whether to use Python `search` instead of `match` semantics in rules that use
# regexes. Context: https://github.com/jorisroovers/gitlint/issues/254
# Disabled by default, but will be enabled by default in the future.
# regex-style-search=true
# Enable debug mode (prints more output). Disabled by default.
# debug=true
# Enable community contributed rules
# See http://jorisroovers.github.io/gitlint/contrib_rules for details
contrib=contrib-title-conventional-commits,CT1,contrib-disallow-cleanup-commits,CC2
# Set the extra-path where gitlint will search for user defined rules
# See http://jorisroovers.github.io/gitlint/user_defined_rules for details
# extra-path=examples/
[title-max-length]
line-length=80
# Conversely, you can also enforce minimal length of a title with the
# "title-min-length" rule:
# [title-min-length]
# min-length=5
# [title-must-not-contain-word]
# Comma-separated list of words that should not occur in the title. Matching is case
# insensitive. It's fine if the keyword occurs as part of a larger word (so "WIPING"
# will not cause a violation, but "WIP: my title" will.
# words=wip
# [title-match-regex]
# python-style regex that the commit-msg title must match
# Note that the regex can contradict with other rules if not used correctly
# (e.g. title-must-not-contain-word).
# regex=^US[0-9]*
# [body-max-line-length]
# line-length=72
# [body-min-length]
# min-length=5
# [body-is-missing]
# Whether to ignore this rule on merge commits (which typically only have a title)
# default = True
# ignore-merge-commits=false
# [body-changed-file-mention]
# List of files that need to be explicitly mentioned in the body when they are changed
# This is useful for when developers often erroneously edit certain files or git submodules.
# By specifying this rule, developers can only change the file when they explicitly reference
# it in the commit message.
# files=gitlint-core/gitlint/rules.py,README.md
# [body-match-regex]
# python-style regex that the commit-msg body must match.
# E.g. body must end in My-Commit-Tag: foo
# regex=My-Commit-Tag: foo$
# [author-valid-email]
# python-style regex that the commit author email address must match.
# For example, use the following regex if you only want to allow email addresses from foo.com
# regex=[^@]+@foo.com
# [ignore-by-title]
# Ignore certain rules for commits of which the title matches a regex
# E.g. Match commit titles that start with "Release"
# regex=^Release(.*)
# Ignore certain rules, you can reference them by their id or by their full name
# Use 'all' to ignore all rules
# ignore=T1,body-min-length
# [ignore-by-body]
# Ignore certain rules for commits of which the body has a line that matches a regex
# E.g. Match bodies that have a line that that contain "release"
# regex=(.*)release(.*)
#
# Ignore certain rules, you can reference them by their id or by their full name
# Use 'all' to ignore all rules
# ignore=T1,body-min-length
# [ignore-body-lines]
# Ignore certain lines in a commit body that match a regex.
# E.g. Ignore all lines that start with 'Co-Authored-By'
# regex=^Co-Authored-By
# [ignore-by-author-name]
# Ignore certain rules for commits of which the author name matches a regex
# E.g. Match commits made by dependabot
# regex=(.*)dependabot(.*)
#
# Ignore certain rules, you can reference them by their id or by their full name
# Use 'all' to ignore all rules
# ignore=T1,body-min-length
# This is a contrib rule - a community contributed rule. These are disabled by default.
# You need to explicitly enable them one-by-one by adding them to the "contrib" option
# under [general] section above.
# [contrib-title-conventional-commits]
# Specify allowed commit types. For details see: https://www.conventionalcommits.org/
# types = bugfix,user-story,epic

View File

@@ -4,20 +4,31 @@ repos:
rev: v1.5.1 rev: v1.5.1
hooks: hooks:
- id: remove-tabs - id: remove-tabs
exclude: "vendor-prefixes\\.txt$" exclude: "vendor-prefixes\\.txt$|.git/COMMIT_EDITMSG"
- repo: https://github.com/pocc/pre-commit-hooks - repo: https://github.com/pre-commit/mirrors-clang-format
rev: v1.3.5 rev: v18.1.8
hooks: hooks:
- id: clang-format - id: clang-format
types_or: [c++, c]
args: args:
- -i - -i
- repo: https://github.com/pre-commit/mirrors-prettier - repo: https://github.com/pre-commit/mirrors-prettier
rev: v2.7.1 rev: v2.7.1
hooks: hooks:
- id: prettier - id: prettier
exclude: |
(?x)^(
.git/COMMIT_EDITMSG|
CHANGELOG.md|
.release-please-manifest.json
)$
# Workaround for https://github.com/pre-commit/mirrors-prettier/issues/29 # Workaround for https://github.com/pre-commit/mirrors-prettier/issues/29
additional_dependencies: additional_dependencies:
- prettier@2.8.7 - prettier@2.8.7
- repo: https://github.com/jorisroovers/gitlint
rev: v0.19.1
hooks:
- id: gitlint
- repo: https://github.com/pre-commit/pre-commit-hooks - repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0 rev: v4.4.0
hooks: hooks:

View File

@@ -0,0 +1 @@
{".":"0.1.0"}

22
CHANGELOG.md Normal file
View File

@@ -0,0 +1,22 @@
# Changelog
## 0.1.0 (2024-11-29)
### Features
* **boards:** Add glove80 nexus node for extension GPIO. ([#2594](https://github.com/zmkfirmware/zmk/issues/2594)) ([fb359f5](https://github.com/zmkfirmware/zmk/commit/fb359f576619940164ca2e770b49b7b34f13428e))
* **boards:** add nrf52833-nosd snippet ([63af296](https://github.com/zmkfirmware/zmk/commit/63af296b6efd8d677d584f372c9da9a4fedaa496))
* **boards:** add nrf52840-nosd snippet ([4438b7b](https://github.com/zmkfirmware/zmk/commit/4438b7b835bfd1d4e89cdd955a4ab0fd2e2ae3bf))
* **ci:** Add release-please automation with VERSION ([#2622](https://github.com/zmkfirmware/zmk/issues/2622)) ([ffa485c](https://github.com/zmkfirmware/zmk/commit/ffa485c11b48444acf3adf1e3c1cb3eed16fad94))
* **drivers:** Support init high/low in 595 driver ([888c0d9](https://github.com/zmkfirmware/zmk/commit/888c0d966cd52f3ab5145992f61b14d6262c1951))
### Bug Fixes
* **boards:** Disable uart serial node in Xiao BLE by default ([#2672](https://github.com/zmkfirmware/zmk/issues/2672)) ([230b860](https://github.com/zmkfirmware/zmk/commit/230b860f31063774c3bcc19afb6f92479462de24))
* **boards:** Fix typo in BT75 metadata ([c9553c3](https://github.com/zmkfirmware/zmk/commit/c9553c31e3a3f39964391b006492995b5bb09c39))
* Disable display feature for settings_reset ([b0f5789](https://github.com/zmkfirmware/zmk/commit/b0f5789b128f0f5599341398898fdb0e0407b2d3))
* Fix inconsistent column offset property ([c7473fc](https://github.com/zmkfirmware/zmk/commit/c7473fc32557d2d384ab78d3acf51a05488f0214))
* include a header file for RC macros ([#2649](https://github.com/zmkfirmware/zmk/issues/2649)) ([f8eff2f](https://github.com/zmkfirmware/zmk/commit/f8eff2fe34609c91211c25113f9d7db09f7d1689))
* **studio:** Improved error message when keyboard is missing a physical layout. ([fed66a9](https://github.com/zmkfirmware/zmk/commit/fed66a92d000f4c8e0019d9ccdd167271324e8e9))

View File

@@ -153,6 +153,7 @@ menuconfig ZMK_BLE
select BT_SMP_APP_PAIRING_ACCEPT select BT_SMP_APP_PAIRING_ACCEPT
select BT_PERIPHERAL select BT_PERIPHERAL
select BT_DIS select BT_DIS
imply BT_DEVICE_NAME_DYNAMIC
imply BT_SETTINGS if !ARCH_POSIX imply BT_SETTINGS if !ARCH_POSIX
imply SETTINGS if !ARCH_POSIX imply SETTINGS if !ARCH_POSIX
imply ZMK_BATTERY_REPORTING if !ARCH_POSIX imply ZMK_BATTERY_REPORTING if !ARCH_POSIX

13
app/VERSION Normal file
View File

@@ -0,0 +1,13 @@
# x-release-please-start-major
VERSION_MAJOR = 0
# x-release-please-end
# x-release-please-start-minor
VERSION_MINOR = 1
# x-release-please-end
# x-release-please-start-patch
PATCHLEVEL = 0
# x-release-please-end
VERSION_TWEAK = 0

View File

@@ -0,0 +1,87 @@
#include <physical_layouts.dtsi>
/ {
physical_layout0: physical_layout_0 {
compatible = "zmk,physical-layout";
display-name = "Default";
keys // w h x y rot rx ry
= <&key_physical_attrs 125 100 0 25 0 0 0>
, <&key_physical_attrs 100 100 125 25 0 0 0>
, <&key_physical_attrs 100 100 225 0 0 0 0>
, <&key_physical_attrs 100 100 325 0 0 0 0>
, <&key_physical_attrs 100 100 425 0 0 0 0>
, <&key_physical_attrs 100 100 525 0 0 0 0>
, <&key_physical_attrs 100 100 625 0 0 0 0>
, <&key_physical_attrs 100 100 1075 0 0 0 0>
, <&key_physical_attrs 100 100 1175 0 0 0 0>
, <&key_physical_attrs 100 100 1275 0 0 0 0>
, <&key_physical_attrs 100 100 1375 0 0 0 0>
, <&key_physical_attrs 100 100 1475 0 0 0 0>
, <&key_physical_attrs 100 100 1575 25 0 0 0>
, <&key_physical_attrs 125 100 1675 25 0 0 0>
, <&key_physical_attrs 125 100 0 125 0 0 0>
, <&key_physical_attrs 100 100 125 125 0 0 0>
, <&key_physical_attrs 100 100 225 100 0 0 0>
, <&key_physical_attrs 100 100 325 100 0 0 0>
, <&key_physical_attrs 100 100 425 100 0 0 0>
, <&key_physical_attrs 100 100 525 100 0 0 0>
, <&key_physical_attrs 100 100 625 100 0 0 0>
, <&key_physical_attrs 100 100 1075 100 0 0 0>
, <&key_physical_attrs 100 100 1175 100 0 0 0>
, <&key_physical_attrs 100 100 1275 100 0 0 0>
, <&key_physical_attrs 100 100 1375 100 0 0 0>
, <&key_physical_attrs 100 100 1475 100 0 0 0>
, <&key_physical_attrs 100 100 1575 125 0 0 0>
, <&key_physical_attrs 125 100 1675 125 0 0 0>
, <&key_physical_attrs 125 100 0 225 0 0 0>
, <&key_physical_attrs 100 100 125 225 0 0 0>
, <&key_physical_attrs 100 100 225 200 0 0 0>
, <&key_physical_attrs 100 100 325 200 0 0 0>
, <&key_physical_attrs 100 100 425 200 0 0 0>
, <&key_physical_attrs 100 100 525 200 0 0 0>
, <&key_physical_attrs 100 100 625 200 0 0 0>
, <&key_physical_attrs 100 100 675 400 1500 525 400>
, <&key_physical_attrs 100 100 775 400 1500 525 400>
, <&key_physical_attrs 100 100 925 400 (-1500) 1275 400>
, <&key_physical_attrs 100 100 1025 400 (-1500) 1275 400>
, <&key_physical_attrs 100 100 1075 200 0 0 0>
, <&key_physical_attrs 100 100 1175 200 0 0 0>
, <&key_physical_attrs 100 100 1275 200 0 0 0>
, <&key_physical_attrs 100 100 1375 200 0 0 0>
, <&key_physical_attrs 100 100 1475 200 0 0 0>
, <&key_physical_attrs 100 100 1575 225 0 0 0>
, <&key_physical_attrs 125 100 1675 225 0 0 0>
, <&key_physical_attrs 125 100 0 325 0 0 0>
, <&key_physical_attrs 100 100 125 325 0 0 0>
, <&key_physical_attrs 100 100 225 300 0 0 0>
, <&key_physical_attrs 100 100 325 300 0 0 0>
, <&key_physical_attrs 100 100 425 300 0 0 0>
, <&key_physical_attrs 100 100 525 300 0 0 0>
, <&key_physical_attrs 100 100 775 500 1500 525 400>
, <&key_physical_attrs 100 100 925 500 (-1500) 1275 400>
, <&key_physical_attrs 100 100 1175 300 0 0 0>
, <&key_physical_attrs 100 100 1275 300 0 0 0>
, <&key_physical_attrs 100 100 1375 300 0 0 0>
, <&key_physical_attrs 100 100 1475 300 0 0 0>
, <&key_physical_attrs 100 100 1575 325 0 0 0>
, <&key_physical_attrs 125 100 1675 325 0 0 0>
, <&key_physical_attrs 125 100 0 425 0 0 0>
, <&key_physical_attrs 100 100 125 425 0 0 0>
, <&key_physical_attrs 100 100 225 400 0 0 0>
, <&key_physical_attrs 100 100 325 400 0 0 0>
, <&key_physical_attrs 100 100 425 400 0 0 0>
, <&key_physical_attrs 100 200 575 500 1500 525 400>
, <&key_physical_attrs 100 200 675 500 1500 525 400>
, <&key_physical_attrs 100 100 775 600 1500 525 400>
, <&key_physical_attrs 100 100 925 600 (-1500) 1275 400>
, <&key_physical_attrs 100 200 1025 500 (-1500) 1275 400>
, <&key_physical_attrs 100 200 1125 500 (-1500) 1275 400>
, <&key_physical_attrs 100 100 1275 400 0 0 0>
, <&key_physical_attrs 100 100 1375 400 0 0 0>
, <&key_physical_attrs 100 100 1475 400 0 0 0>
, <&key_physical_attrs 100 100 1575 425 0 0 0>
, <&key_physical_attrs 125 100 1675 425 0 0 0>
;
};
};

View File

@@ -11,8 +11,13 @@
#include <dt-bindings/led/led.h> #include <dt-bindings/led/led.h>
#include <dt-bindings/zmk/matrix_transform.h> #include <dt-bindings/zmk/matrix_transform.h>
#include "adv360pro-layouts.dtsi"
#include "adv360pro-pinctrl.dtsi" #include "adv360pro-pinctrl.dtsi"
&physical_layout0 {
transform = <&matrix_transform0>;
};
/ { / {
model = "Adv360 Pro"; model = "Adv360 Pro";
compatible = "kinesis,adv360pro"; compatible = "kinesis,adv360pro";
@@ -21,14 +26,14 @@
zephyr,code-partition = &code_partition; zephyr,code-partition = &code_partition;
zephyr,sram = &sram0; zephyr,sram = &sram0;
zephyr,flash = &flash0; zephyr,flash = &flash0;
zmk,kscan = &kscan0;
zmk,backlight = &backlight; zmk,backlight = &backlight;
zmk,battery = &vbatt; zmk,battery = &vbatt;
zmk,matrix-transform = &default_transform; zmk,physical-layout = &physical_layout0;
zmk,kscan = &kscan0;
zmk,underglow = &led_strip; zmk,underglow = &led_strip;
}; };
default_transform: keymap_transform_0 { matrix_transform0: keymap_transform_0 {
compatible = "zmk,matrix-transform"; compatible = "zmk,matrix-transform";
columns = <20>; columns = <20>;
rows = <5>; rows = <5>;

View File

@@ -8,6 +8,7 @@ features:
- keys - keys
- underglow - underglow
- backlight - backlight
- studio
outputs: outputs:
- usb - usb
- ble - ble

View File

@@ -36,6 +36,6 @@
}; };
}; };
&default_transform { &matrix_transform0 {
col-offset = <10>; col-offset = <10>;
}; };

View File

@@ -0,0 +1,20 @@
#include <physical_layouts.dtsi>
/ {
physical_layout0: physical_layout_0 {
compatible = "zmk,physical-layout";
display-name = "BDN9";
keys // w h x y rot rx ry
= <&key_physical_attrs 100 100 0 0 0 0 0>
, <&key_physical_attrs 100 100 100 0 0 0 0>
, <&key_physical_attrs 100 100 200 0 0 0 0>
, <&key_physical_attrs 100 100 0 100 0 0 0>
, <&key_physical_attrs 100 100 100 100 0 0 0>
, <&key_physical_attrs 100 100 200 100 0 0 0>
, <&key_physical_attrs 100 100 0 200 0 0 0>
, <&key_physical_attrs 100 100 100 200 0 0 0>
, <&key_physical_attrs 100 100 200 200 0 0 0>
;
};
};

View File

@@ -9,6 +9,14 @@
#include <st/f0/stm32f072c(8-b)tx-pinctrl.dtsi> #include <st/f0/stm32f072c(8-b)tx-pinctrl.dtsi>
#include <dt-bindings/led/led.h> #include <dt-bindings/led/led.h>
#include <dt-bindings/zmk/matrix_transform.h>
#include "bdn9_rev2-layouts.dtsi"
&physical_layout0 {
transform = <&matrix_transform0>;
};
/ { / {
model = "Keeb.io BDN9 rev2"; model = "Keeb.io BDN9 rev2";
compatible = "keebio,bdn9", "st,stm32f072"; compatible = "keebio,bdn9", "st,stm32f072";
@@ -16,11 +24,23 @@
chosen { chosen {
zephyr,sram = &sram0; zephyr,sram = &sram0;
zephyr,flash = &flash0; zephyr,flash = &flash0;
zmk,kscan = &kscan;
zmk,underglow = &led_strip; zmk,underglow = &led_strip;
zmk,physical-layout = &physical_layout0;
zmk,kscan = &kscan0;
}; };
kscan: kscan { matrix_transform0: matrix_transform_0 {
compatible = "zmk,matrix-transform";
columns = <3>;
rows = <3>;
map = <
RC(0,0) RC(0,1) RC(0,2)
RC(0,3) RC(0,4) RC(0,5)
RC(0,6) RC(0,7) RC(0,8)
>;
};
kscan0: kscan_0 {
compatible = "zmk,kscan-gpio-direct"; compatible = "zmk,kscan-gpio-direct";
input-gpios input-gpios

View File

@@ -17,8 +17,6 @@
zephyr,sram = &sram0; zephyr,sram = &sram0;
zephyr,flash = &flash0; zephyr,flash = &flash0;
zmk,battery = &vbatt; zmk,battery = &vbatt;
zmk,kscan = &kscan0;
zmk,matrix-transform = &default_transform;
}; };
sensors: sensors { sensors: sensors {

View File

@@ -6,12 +6,16 @@
/dts-v1/; /dts-v1/;
#include "bt60.dtsi" #include "bt60.dtsi"
#include <layouts/common/60percent/all1u.dtsi>
#include <layouts/common/60percent/ansi.dtsi>
#include <layouts/common/60percent/hhkb.dtsi>
#include <layouts/common/60percent/iso.dtsi>
/ { / {
chosen { chosen {
zmk,kscan = &kscan0; zmk,kscan = &kscan0;
zmk,matrix-transform = &ansi_transform; zmk,physical-layout = &layout_60_ansi;
}; };
ansi_transform: keymap_transform_0 { ansi_transform: keymap_transform_0 {
@@ -66,19 +70,6 @@
>; >;
}; };
split_transform: keymap_transform_4 {
compatible = "zmk,matrix-transform";
columns = <15>;
rows = <5>;
map = <
RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) RC(0,12) RC(0,13) RC(0,14)
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) RC(1,12) RC(1,13)
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,13)
RC(3,0) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) RC(3,12) RC(3,14)
RC(4,0) RC(4,1) RC(4,2) RC(4,6) RC(4,10) RC(4,11) RC(4,12) RC(4,13)
>;
};
kscan0: kscan_0 { kscan0: kscan_0 {
compatible = "zmk,kscan-gpio-matrix"; compatible = "zmk,kscan-gpio-matrix";
wakeup-source; wakeup-source;
@@ -112,3 +103,19 @@
; ;
}; };
}; };
&layout_60_ansi {
transform = <&ansi_transform>;
};
&layout_60_iso {
transform = <&iso_transform>;
};
&layout_60_all1u {
transform = <&all_1u_transform>;
};
&layout_60_hhkb {
transform = <&hhkb_transform>;
};

View File

@@ -2,26 +2,25 @@
#include <dt-bindings/zmk/keys.h> #include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/bt.h> #include <dt-bindings/zmk/bt.h>
#define ANSI true #define ANSI
//#define HHKB true //#define HHKB
//#define ISO true //#define ISO
//#define ALL_1U true //#define ALL_1U
//#define SPLIT_BKSP_RSHFT true
/ { / {
chosen { chosen {
#ifdef ANSI #ifdef ANSI
zmk,matrix-transform = &ansi_transform; zmk,physical-layout = &layout_60_ansi;
#elif defined(HHKB)
zmk,matrix-transform = &hhkb_transform;
#elif defined(ISO) #elif defined(ISO)
zmk,matrix-transform = &iso_transform; zmk,physical-layout = &layout_60_iso;
#elif defined(ALL_1U) #elif defined(ALL_1U)
zmk,matrix-transform = &all_1u_transform; zmk,physical-layout = &layout_60_all1u;
#elif defined(HHKB)
zmk,physical-layout = &layout_60_hhkb;
#else #else
zmk,matrix-transform = &split_transform; #error "Layout not defined, please define a layout by uncommenting the appropriate line in bt60_v1.keymap"
#endif #endif
}; };
@@ -148,33 +147,7 @@
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>; sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
}; };
#else #else
default_layer { #error "Layout not defined, please define a layout by uncommenting the appropriate line in bt60_v2.keymap"
// ------------------------------------------------------------------------------------------
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |BSPC| DEL |
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER |
// | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT | 1 |
// | CTL | WIN | ALT | SPACE | ALT | 1 | CTRL |
// ------------------------------------------------------------------------------------------
bindings = <
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC &kp DEL
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH
&kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &mo 1
&kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &kp RGUI &kp C_MENU &kp RCTRL
>;
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
};
raise {
bindings = <
&kp GRAVE &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp DEL &trans
&trans &trans &kp UP &trans &trans &trans &trans &trans &kp INS &trans &kp PSCRN &kp SLCK &kp PAUSE_BREAK &sys_reset
&trans &kp LEFT &kp DOWN &kp RIGHT &trans &trans &trans &trans &trans &trans &kp HOME &kp PG_UP &bootloader
&kp C_PREV &kp C_VOL_DN &kp C_VOL_UP &kp C_MUTE &trans &trans &trans &trans &trans &kp END &kp PG_DN &kp C_NEXT &trans
&bt BT_PRV &bt BT_NXT &trans &trans &trans &trans &trans &bt BT_CLR
>;
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
};
#endif #endif
}; };
}; };

View File

@@ -6,6 +6,7 @@ arch: arm
features: features:
- keys - keys
- encoder - encoder
- studio
outputs: outputs:
- usb - usb
- ble - ble

View File

@@ -6,12 +6,12 @@
/dts-v1/; /dts-v1/;
#include "bt60.dtsi" #include "bt60.dtsi"
#include <layouts/common/60percent/ansi.dtsi>
/ { / {
chosen { chosen {
zmk,kscan = &kscan0; zmk,kscan = &kscan0;
zmk,matrix-transform = &default_transform; zmk,physical-layout = &layout_60_ansi;
}; };
default_transform: keymap_transform_0 { default_transform: keymap_transform_0 {
@@ -60,3 +60,7 @@
; ;
}; };
}; };
&layout_60_ansi {
transform = <&default_transform>;
};

View File

@@ -8,14 +8,14 @@
default_layer { default_layer {
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BSPC | DEL // | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BSPC |
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | | | // | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | | |
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | // | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER |
// | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT | // | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT |
// | CTL | WIN | ALT | SPACE | ALT | 1 | MENU | CTRL | // | CTL | WIN | ALT | SPACE | ALT | 1 | MENU | CTRL |
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
bindings = < bindings = <
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC &bt BT_CLR &kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH
&kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET &kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT
@@ -25,7 +25,7 @@
}; };
raise { raise {
bindings = < bindings = <
&kp GRAVE &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp DEL &trans &kp GRAVE &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp DEL
&trans &trans &kp UP &trans &trans &trans &trans &trans &kp INS &trans &kp PSCRN &kp SLCK &kp PAUSE_BREAK &sys_reset &trans &trans &kp UP &trans &trans &trans &trans &trans &kp INS &trans &kp PSCRN &kp SLCK &kp PAUSE_BREAK &sys_reset
&trans &kp LEFT &kp DOWN &kp RIGHT &trans &trans &trans &trans &trans &trans &kp HOME &kp PG_UP &bootloader &trans &kp LEFT &kp DOWN &kp RIGHT &trans &trans &trans &trans &trans &trans &kp HOME &kp PG_UP &bootloader
&kp C_PREV &kp C_VOL_DN &kp C_VOL_UP &kp C_MUTE &trans &trans &trans &trans &trans &kp END &kp PG_DN &kp C_NEXT &kp C_PREV &kp C_VOL_DN &kp C_VOL_UP &kp C_MUTE &trans &trans &trans &trans &trans &kp END &kp PG_DN &kp C_NEXT

View File

@@ -6,6 +6,7 @@ arch: arm
features: features:
- keys - keys
- encoder - encoder
- studio
outputs: outputs:
- usb - usb
- ble - ble

View File

@@ -6,6 +6,10 @@
/dts-v1/; /dts-v1/;
#include "ckp.dtsi" #include "ckp.dtsi"
#include <layouts/common/60percent/all1u.dtsi>
#include <layouts/common/60percent/ansi.dtsi>
#include <layouts/common/60percent/hhkb.dtsi>
#include <layouts/common/60percent/iso.dtsi>
/ { / {
@@ -13,7 +17,7 @@
compatible = "polarityworks,bt60_v2"; compatible = "polarityworks,bt60_v2";
chosen { chosen {
zmk,matrix-transform = &ansi_transform; zmk,physical-layout = &layout_60_ansi;
}; };
@@ -69,3 +73,19 @@
>; >;
}; };
}; };
&layout_60_ansi {
transform = <&ansi_transform>;
};
&layout_60_iso {
transform = <&iso_transform>;
};
&layout_60_all1u {
transform = <&all_1u_transform>;
};
&layout_60_hhkb {
transform = <&hhkb_transform>;
};

View File

@@ -12,13 +12,13 @@
/ { / {
chosen { chosen {
#ifdef ANSI #ifdef ANSI
zmk,matrix-transform = &ansi_transform; zmk,physical-layout = &layout_60_ansi;
#elif defined(ISO) #elif defined(ISO)
zmk,matrix-transform = &iso_transform; zmk,physical-layout = &layout_60_iso;
#elif defined(ALL_1U) #elif defined(ALL_1U)
zmk,matrix-transform = &all_1u_transform; zmk,physical-layout = &layout_60_all1u;
#elif defined(HHKB) #elif defined(HHKB)
zmk,matrix-transform = &hhkb_transform; zmk,physical-layout = &layout_60_hhkb;
#else #else
#error "Layout not defined, please define a layout by uncommenting the appropriate line in bt60_v2.keymap" #error "Layout not defined, please define a layout by uncommenting the appropriate line in bt60_v2.keymap"
#endif #endif

View File

@@ -8,6 +8,7 @@ features:
- encoder - encoder
- underglow - underglow
- backlight - backlight
- studio
outputs: outputs:
- usb - usb
- ble - ble

View File

@@ -6,6 +6,10 @@
/dts-v1/; /dts-v1/;
#include "ckp.dtsi" #include "ckp.dtsi"
#include <layouts/common/65percent/all1u.dtsi>
#include <layouts/common/65percent/ansi.dtsi>
#include <layouts/common/65percent/iso.dtsi>
#include <layouts/common/65percent/hhkb.dtsi>
/ { / {
@@ -13,7 +17,7 @@
compatible = "polarityworks,bt65_v1"; compatible = "polarityworks,bt65_v1";
chosen { chosen {
zmk,matrix-transform = &ansi_transform; zmk,physical-layout = &layout_65_ansi;
}; };
@@ -69,3 +73,19 @@
>; >;
}; };
}; };
&layout_65_ansi {
transform = <&ansi_transform>;
};
&layout_65_iso {
transform = <&iso_transform>;
};
&layout_65_all1u {
transform = <&all_1u_transform>;
};
&layout_65_hhkb {
transform = <&hhkb_transform>;
};

View File

@@ -12,13 +12,13 @@
/ { / {
chosen { chosen {
#ifdef ANSI #ifdef ANSI
zmk,matrix-transform = &ansi_transform; zmk,physical-layout = &layout_65_ansi;
#elif defined(ISO) #elif defined(ISO)
zmk,matrix-transform = &iso_transform; zmk,physical-layout = &layout_65_iso;
#elif defined(ALL_1U) #elif defined(ALL_1U)
zmk,matrix-transform = &all_1u_transform; zmk,physical-layout = &layout_65_all1u;
#elif defined(HHKB) #elif defined(HHKB)
zmk,matrix-transform = &hhkb_transform; zmk,physical-layout = &layout_65_hhkb;
#else #else
#error "Layout not defined, please define a layout by uncommenting the appropriate line in bt65_v1.keymap" #error "Layout not defined, please define a layout by uncommenting the appropriate line in bt65_v1.keymap"
#endif #endif

View File

@@ -8,6 +8,7 @@ features:
- encoder - encoder
- underglow - underglow
- backlight - backlight
- studio
outputs: outputs:
- usb - usb
- ble - ble

View File

@@ -6,6 +6,9 @@
/dts-v1/; /dts-v1/;
#include "ckp.dtsi" #include "ckp.dtsi"
#include <layouts/common/75percent/all1u.dtsi>
#include <layouts/common/75percent/ansi.dtsi>
#include <layouts/common/75percent/iso.dtsi>
/ { / {
@@ -13,7 +16,7 @@
compatible = "polarityworks,bt75_v1"; compatible = "polarityworks,bt75_v1";
chosen { chosen {
zmk,matrix-transform = &ansi_transform; zmk,physical-layout = &layout_75_ansi;
}; };
@@ -59,3 +62,15 @@
>; >;
}; };
}; };
&layout_75_ansi {
transform = <&ansi_transform>;
};
&layout_75_iso {
transform = <&iso_transform>;
};
&layout_75_all1u {
transform = <&all_1u_transform>;
};

View File

@@ -11,11 +11,11 @@
/ { / {
chosen { chosen {
#ifdef ANSI #ifdef ANSI
zmk,matrix-transform = &ansi_transform; zmk,physical-layout = &layout_75_ansi;
#elif defined(ISO) #elif defined(ISO)
zmk,matrix-transform = &iso_transform; zmk,physical-layout = &layout_75_iso;
#elif defined(ALL_1U) #elif defined(ALL_1U)
zmk,matrix-transform = &all_1u_transform; zmk,physical-layout = &layout_75_all1u;
#else #else
#error "Layout not defined, please define a layout using by uncommenting the appropriate line in bt75_v1.keymap" #error "Layout not defined, please define a layout using by uncommenting the appropriate line in bt75_v1.keymap"
#endif #endif

View File

@@ -1,6 +1,6 @@
file_format: "1" file_format: "1"
id: bt75_v1 id: bt75_v1
name: BT75_V1 name: BT75 V1
type: board type: board
arch: arm arch: arm
features: features:
@@ -8,6 +8,7 @@ features:
- encoder - encoder
- underglow - underglow
- backlight - backlight
- studio
outputs: outputs:
- usb - usb
- ble - ble

View File

@@ -10,6 +10,17 @@
#include <dt-bindings/zmk/matrix_transform.h> #include <dt-bindings/zmk/matrix_transform.h>
#include <layouts/foostan/corne/5column.dtsi>
#include <layouts/foostan/corne/6column.dtsi>
&foostan_corne_6col_layout {
transform = <&default_transform>;
};
&foostan_corne_5col_layout {
transform = <&five_column_transform>;
};
/ { / {
model = "Corne-ish Zen"; model = "Corne-ish Zen";
compatible = "corneish_zen"; compatible = "corneish_zen";
@@ -20,7 +31,7 @@
zephyr,flash = &flash0; zephyr,flash = &flash0;
zmk,kscan = &kscan0; zmk,kscan = &kscan0;
zmk,display = &epd; zmk,display = &epd;
zmk,matrix-transform = &default_transform; zmk,physical-layout = &foostan_corne_6col_layout;
}; };
default_transform: keymap_transform_0 { default_transform: keymap_transform_0 {

View File

@@ -11,8 +11,8 @@
/ { / {
chosen { chosen {
zmk,matrix-transform = &default_transform; zmk,physical-layout = &foostan_corne_6col_layout;
// zmk,matrix-transform = &five_column_transform; // zmk,physical-layout = &foostan_corne_5col_layout;
}; };
}; };

View File

@@ -7,6 +7,7 @@ arch: arm
features: features:
- keys - keys
- display - display
- studio
outputs: outputs:
- usb - usb
- ble - ble

View File

@@ -7,6 +7,7 @@ arch: arm
features: features:
- keys - keys
- display - display
- studio
outputs: outputs:
- usb - usb
- ble - ble

View File

@@ -68,7 +68,7 @@ void battery_status_update_cb(struct battery_status_state state) {
static struct battery_status_state battery_status_get_state(const zmk_event_t *eh) { static struct battery_status_state battery_status_get_state(const zmk_event_t *eh) {
const struct zmk_battery_state_changed *ev = as_zmk_battery_state_changed(eh); const struct zmk_battery_state_changed *ev = as_zmk_battery_state_changed(eh);
return (struct battery_status_state) { return (struct battery_status_state){
.level = (ev != NULL) ? ev->state_of_charge : zmk_battery_state_of_charge(), .level = (ev != NULL) ? ev->state_of_charge : zmk_battery_state_of_charge(),
#if IS_ENABLED(CONFIG_USB_DEVICE_STACK) #if IS_ENABLED(CONFIG_USB_DEVICE_STACK)
.usb_present = zmk_usb_is_powered(), .usb_present = zmk_usb_is_powered(),

View File

@@ -19,15 +19,15 @@ LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
static sys_slist_t widgets = SYS_SLIST_STATIC_INIT(&widgets); static sys_slist_t widgets = SYS_SLIST_STATIC_INIT(&widgets);
struct layer_status_state { struct layer_status_state {
uint8_t index; zmk_keymap_layer_index_t index;
const char *label; const char *label;
}; };
static void set_layer_symbol(lv_obj_t *label, struct layer_status_state state) { static void set_layer_symbol(lv_obj_t *label, struct layer_status_state state) {
const char *layer_label = state.label; const char *layer_label = state.label;
uint8_t active_layer_index = state.index; zmk_keymap_layer_index_t active_layer_index = state.index;
if (layer_label == NULL) { if (layer_label == NULL || strlen(layer_label) == 0) {
char text[6] = {}; char text[6] = {};
sprintf(text, " %i", active_layer_index); sprintf(text, " %i", active_layer_index);
@@ -44,8 +44,9 @@ static void layer_status_update_cb(struct layer_status_state state) {
} }
static struct layer_status_state layer_status_get_state(const zmk_event_t *eh) { static struct layer_status_state layer_status_get_state(const zmk_event_t *eh) {
uint8_t index = zmk_keymap_highest_layer_active(); zmk_keymap_layer_index_t index = zmk_keymap_highest_layer_active();
return (struct layer_status_state){.index = index, .label = zmk_keymap_layer_name(index)}; return (struct layer_status_state){
.index = index, .label = zmk_keymap_layer_name(zmk_keymap_layer_index_to_id(index))};
} }
ZMK_DISPLAY_WIDGET_LISTENER(widget_layer_status, struct layer_status_state, layer_status_update_cb, ZMK_DISPLAY_WIDGET_LISTENER(widget_layer_status, struct layer_status_state, layer_status_update_cb,

View File

@@ -13,7 +13,7 @@
#include <layouts/cuddlykeyboards/ferris.dtsi> #include <layouts/cuddlykeyboards/ferris.dtsi>
&cuddlykeyboards_ferris_layout { &cuddlykeyboards_ferris_layout {
transform = <&transform>; transform = <&matrix_transform0>;
}; };
/ { / {
@@ -23,13 +23,14 @@
chosen { chosen {
zephyr,sram = &sram0; zephyr,sram = &sram0;
zephyr,flash = &flash0; zephyr,flash = &flash0;
zmk,kscan = &kscan; zmk,kscan = &kscan0;
zmk,physical-layout = &cuddlykeyboards_ferris_layout;
/* TODO: Enable once we support the IC for underglow /* TODO: Enable once we support the IC for underglow
zmk,underglow = &led_strip; zmk,underglow = &led_strip;
*/ */
}; };
transform: transform { matrix_transform0: matrix_transform0 {
compatible = "zmk,matrix-transform"; compatible = "zmk,matrix-transform";
rows = <4>; rows = <4>;
columns = <10>; columns = <10>;
@@ -42,7 +43,7 @@
>; >;
}; };
kscan: kscan { kscan0: kscan0 {
compatible = "zmk,kscan-composite"; compatible = "zmk,kscan-composite";
rows = <4>; rows = <4>;
columns = <10>; columns = <10>;
@@ -53,7 +54,7 @@
right { right {
kscan = <&kscan_right>; kscan = <&kscan_right>;
column-offset = <5>; col-offset = <5>;
}; };
}; };

View File

@@ -0,0 +1,91 @@
#include <physical_layouts.dtsi>
/ {
physical_layout0: physical_layout_0 {
compatible = "zmk,physical-layout";
display-name = "Default";
keys // w h x y rot rx ry
= <&key_physical_attrs 100 100 0 50 0 0 0>
, <&key_physical_attrs 100 100 100 50 0 0 0>
, <&key_physical_attrs 100 100 200 0 0 0 0>
, <&key_physical_attrs 100 100 300 0 0 0 0>
, <&key_physical_attrs 100 100 400 0 0 0 0>
, <&key_physical_attrs 100 100 1300 0 0 0 0>
, <&key_physical_attrs 100 100 1400 0 0 0 0>
, <&key_physical_attrs 100 100 1500 0 0 0 0>
, <&key_physical_attrs 100 100 1600 50 0 0 0>
, <&key_physical_attrs 100 100 1700 50 0 0 0>
, <&key_physical_attrs 100 100 0 150 0 0 0>
, <&key_physical_attrs 100 100 100 150 0 0 0>
, <&key_physical_attrs 100 100 200 100 0 0 0>
, <&key_physical_attrs 100 100 300 100 0 0 0>
, <&key_physical_attrs 100 100 400 100 0 0 0>
, <&key_physical_attrs 100 100 500 100 0 0 0>
, <&key_physical_attrs 100 100 1200 100 0 0 0>
, <&key_physical_attrs 100 100 1300 100 0 0 0>
, <&key_physical_attrs 100 100 1400 100 0 0 0>
, <&key_physical_attrs 100 100 1500 100 0 0 0>
, <&key_physical_attrs 100 100 1600 150 0 0 0>
, <&key_physical_attrs 100 100 1700 150 0 0 0>
, <&key_physical_attrs 100 100 0 250 0 0 0>
, <&key_physical_attrs 100 100 100 250 0 0 0>
, <&key_physical_attrs 100 100 200 200 0 0 0>
, <&key_physical_attrs 100 100 300 200 0 0 0>
, <&key_physical_attrs 100 100 400 200 0 0 0>
, <&key_physical_attrs 100 100 500 200 0 0 0>
, <&key_physical_attrs 100 100 1200 200 0 0 0>
, <&key_physical_attrs 100 100 1300 200 0 0 0>
, <&key_physical_attrs 100 100 1400 200 0 0 0>
, <&key_physical_attrs 100 100 1500 200 0 0 0>
, <&key_physical_attrs 100 100 1600 250 0 0 0>
, <&key_physical_attrs 100 100 1700 250 0 0 0>
, <&key_physical_attrs 100 100 0 350 0 0 0>
, <&key_physical_attrs 100 100 100 350 0 0 0>
, <&key_physical_attrs 100 100 200 300 0 0 0>
, <&key_physical_attrs 100 100 300 300 0 0 0>
, <&key_physical_attrs 100 100 400 300 0 0 0>
, <&key_physical_attrs 100 100 500 300 0 0 0>
, <&key_physical_attrs 100 100 1200 300 0 0 0>
, <&key_physical_attrs 100 100 1300 300 0 0 0>
, <&key_physical_attrs 100 100 1400 300 0 0 0>
, <&key_physical_attrs 100 100 1500 300 0 0 0>
, <&key_physical_attrs 100 100 1600 350 0 0 0>
, <&key_physical_attrs 100 100 1700 350 0 0 0>
, <&key_physical_attrs 100 100 0 450 0 0 0>
, <&key_physical_attrs 100 100 100 450 0 0 0>
, <&key_physical_attrs 100 100 200 400 0 0 0>
, <&key_physical_attrs 100 100 300 400 0 0 0>
, <&key_physical_attrs 100 100 400 400 0 0 0>
, <&key_physical_attrs 100 100 500 400 0 0 0>
, <&key_physical_attrs 100 100 400 450 3000 450 925>
, <&key_physical_attrs 100 100 400 450 4500 450 925>
, <&key_physical_attrs 100 100 400 450 6000 450 925>
, <&key_physical_attrs 100 100 1300 450 (-6000) 1350 925>
, <&key_physical_attrs 100 100 1300 450 (-4500) 1350 925>
, <&key_physical_attrs 100 100 1300 450 (-3000) 1350 925>
, <&key_physical_attrs 100 100 1200 400 0 0 0>
, <&key_physical_attrs 100 100 1300 400 0 0 0>
, <&key_physical_attrs 100 100 1400 400 0 0 0>
, <&key_physical_attrs 100 100 1500 400 0 0 0>
, <&key_physical_attrs 100 100 1600 450 0 0 0>
, <&key_physical_attrs 100 100 1700 450 0 0 0>
, <&key_physical_attrs 100 100 0 550 0 0 0>
, <&key_physical_attrs 100 100 100 550 0 0 0>
, <&key_physical_attrs 100 100 200 500 0 0 0>
, <&key_physical_attrs 100 100 300 500 0 0 0>
, <&key_physical_attrs 100 100 400 500 0 0 0>
, <&key_physical_attrs 100 100 400 550 2000 450 925>
, <&key_physical_attrs 100 100 400 550 4000 450 925>
, <&key_physical_attrs 100 100 400 550 6000 450 925>
, <&key_physical_attrs 100 100 1300 550 (-6000) 1350 925>
, <&key_physical_attrs 100 100 1300 550 (-4000) 1350 925>
, <&key_physical_attrs 100 100 1300 550 (-2000) 1350 925>
, <&key_physical_attrs 100 100 1300 500 0 0 0>
, <&key_physical_attrs 100 100 1400 500 0 0 0>
, <&key_physical_attrs 100 100 1500 500 0 0 0>
, <&key_physical_attrs 100 100 1600 550 0 0 0>
, <&key_physical_attrs 100 100 1700 550 0 0 0>
;
};
};

View File

@@ -7,17 +7,23 @@
#include <nordic/nrf52840_qiaa.dtsi> #include <nordic/nrf52840_qiaa.dtsi>
#include <dt-bindings/zmk/matrix_transform.h> #include <dt-bindings/zmk/matrix_transform.h>
#include "glove80-layouts.dtsi"
&physical_layout0 {
transform = <&matrix_transform0>;
};
/ { / {
chosen { chosen {
zmk,kscan = &kscan0; zmk,kscan = &kscan0;
zmk,matrix-transform = &default_transform; zmk,physical-layout = &physical_layout0;
zephyr,code-partition = &code_partition; zephyr,code-partition = &code_partition;
zephyr,sram = &sram0; zephyr,sram = &sram0;
zephyr,flash = &flash0; zephyr,flash = &flash0;
}; };
default_transform: keymap_transform_0 { matrix_transform0: keymap_transform_0 {
compatible = "zmk,matrix-transform"; compatible = "zmk,matrix-transform";
columns = <14>; columns = <14>;
rows = <6>; rows = <6>;
@@ -39,7 +45,6 @@
debounce-press-ms = <4>; debounce-press-ms = <4>;
debounce-release-ms = <20>; debounce-release-ms = <20>;
}; };
}; };
&adc { &adc {

View File

@@ -8,6 +8,7 @@ features:
- keys - keys
- underglow - underglow
- backlight - backlight
- studio
outputs: outputs:
- usb - usb
- ble - ble

View File

@@ -36,6 +36,21 @@
vbatt: vbatt { vbatt: vbatt {
compatible = "zmk,battery-nrf-vddh"; compatible = "zmk,battery-nrf-vddh";
}; };
glove80_ext: connector {
compatible = "moergo,glove80-ext";
#gpio-cells = <2>;
gpio-map-mask = <0xffffffff 0xffffffc0>;
gpio-map-pass-thru = <0 0x3f>;
gpio-map
= <1 0 &gpio0 22 0> /* EXT1 */
, <2 0 &gpio0 21 0> /* EXT2 */
, <3 0 &gpio0 24 0> /* EXT3 */
, <4 0 &gpio0 20 0> /* EXT4 */
, <5 0 &gpio0 25 0> /* EXT5 */
, <6 0 &gpio1 00 0> /* EXT6 */
;
};
}; };
&spi3 { &spi3 {

View File

@@ -37,6 +37,21 @@
vbatt: vbatt { vbatt: vbatt {
compatible = "zmk,battery-nrf-vddh"; compatible = "zmk,battery-nrf-vddh";
}; };
glove80_ext: connector {
compatible = "moergo,glove80-ext";
#gpio-cells = <2>;
gpio-map-mask = <0xffffffff 0xffffffc0>;
gpio-map-pass-thru = <0 0x3f>;
gpio-map
= <1 0 &gpio0 21 0> /* EXT1 */
, <2 0 &gpio0 24 0> /* EXT2 */
, <3 0 &gpio0 20 0> /* EXT3 */
, <4 0 &gpio0 25 0> /* EXT4 */
, <5 0 &gpio0 22 0> /* EXT5 */
, <6 0 &gpio1 00 0> /* EXT6 */
;
};
}; };
&spi3 { &spi3 {
@@ -79,7 +94,7 @@
}; };
/* For right hand, the columns are offset by 7 */ /* For right hand, the columns are offset by 7 */
&default_transform { &matrix_transform0 {
col-offset = <7>; col-offset = <7>;
}; };

View File

@@ -8,6 +8,8 @@
#include <rpi_pico/rp2040.dtsi> #include <rpi_pico/rp2040.dtsi>
#include <dt-bindings/zmk/matrix_transform.h> #include <dt-bindings/zmk/matrix_transform.h>
#include <layouts/common/65percent/ansi.dtsi>
/ { / {
chosen { chosen {
@@ -15,7 +17,7 @@
zephyr,flash = &flash0; zephyr,flash = &flash0;
zephyr,code-partition = &code_partition; zephyr,code-partition = &code_partition;
zmk,kscan = &kscan0; zmk,kscan = &kscan0;
zmk,matrix-transform = &default_transform; zmk,physical-layout = &layout_65_ansi;
}; };
xtal_clk: xtal-clk { xtal_clk: xtal-clk {
@@ -115,3 +117,6 @@ zephyr_udc0: &usbd {
status = "okay"; status = "okay";
}; };
&layout_65_ansi {
transform = <&default_transform>;
};

View File

@@ -10,6 +10,8 @@
#include <dt-bindings/led/led.h> #include <dt-bindings/led/led.h>
#include <dt-bindings/zmk/matrix_transform.h> #include <dt-bindings/zmk/matrix_transform.h>
#include <layouts/common/60percent/ansi.dtsi>
#include "nice60-pinctrl.dtsi" #include "nice60-pinctrl.dtsi"
/ { / {
@@ -22,7 +24,7 @@
zephyr,flash = &flash0; zephyr,flash = &flash0;
zmk,battery = &vbatt; zmk,battery = &vbatt;
zmk,kscan = &kscan0; zmk,kscan = &kscan0;
zmk,matrix-transform = &default_transform; zmk,physical-layout = &layout_60_ansi;
zmk,underglow = &led_strip; zmk,underglow = &led_strip;
}; };
@@ -169,3 +171,7 @@ zephyr_udc0: &usbd {
}; };
}; };
}; };
&layout_60_ansi {
transform = <&default_transform>;
};

View File

@@ -6,6 +6,7 @@ arch: arm
features: features:
- keys - keys
- underglow - underglow
- studio
outputs: outputs:
- usb - usb
- ble - ble

View File

@@ -9,6 +9,11 @@
#include <st/f3/stm32f303c(b-c)tx-pinctrl.dtsi> #include <st/f3/stm32f303c(b-c)tx-pinctrl.dtsi>
#include <dt-bindings/zmk/matrix_transform.h> #include <dt-bindings/zmk/matrix_transform.h>
#include <layouts/common/ortho_4x12/1x2u.dtsi>
#include <layouts/common/ortho_4x12/2x2u.dtsi>
#include <layouts/common/ortho_4x12/all1u.dtsi>
/ { / {
model = "Plack PCD, rev6"; model = "Plack PCD, rev6";
compatible = "planck,rev6", "st,stm32f303"; compatible = "planck,rev6", "st,stm32f303";
@@ -17,7 +22,7 @@
zephyr,sram = &sram0; zephyr,sram = &sram0;
zephyr,flash = &flash0; zephyr,flash = &flash0;
zmk,kscan = &kscan0; zmk,kscan = &kscan0;
zmk,matrix-transform = &layout_grid_transform; zmk,physical-layout = &layout_ortho_4x12_all1u;
}; };
kscan0: kscan { kscan0: kscan {
@@ -137,3 +142,15 @@ zephyr_udc0: &usb {
}; };
}; };
}; };
&layout_ortho_4x12_all1u {
transform = <&layout_grid_transform>;
};
&layout_ortho_4x12_1x2u {
transform = <&layout_mit_transform>;
};
&layout_ortho_4x12_2x2u {
transform = <&layout_2x2u_transform>;
};

View File

@@ -9,6 +9,9 @@
#include <st/f3/stm32f303c(b-c)tx-pinctrl.dtsi> #include <st/f3/stm32f303c(b-c)tx-pinctrl.dtsi>
#include <dt-bindings/zmk/matrix_transform.h> #include <dt-bindings/zmk/matrix_transform.h>
#include <layouts/common/ortho_5x12/1x2u.dtsi>
#include <layouts/common/ortho_5x12/2x2u.dtsi>
#include <layouts/common/ortho_5x12/all1u.dtsi>
/ { / {
model = "Preonic PCD, rev3"; model = "Preonic PCD, rev3";
@@ -18,7 +21,7 @@
zephyr,sram = &sram0; zephyr,sram = &sram0;
zephyr,flash = &flash0; zephyr,flash = &flash0;
zmk,kscan = &kscan0; zmk,kscan = &kscan0;
zmk,matrix-transform = &layout_grid_transform; zmk,physical-layout = &layout_ortho_5x12_all1u;
}; };
kscan0: kscan_0 { kscan0: kscan_0 {
@@ -131,3 +134,15 @@ zephyr_udc0: &usb {
}; };
}; };
}; };
&layout_ortho_5x12_all1u {
transform = <&layout_grid_transform>;
};
&layout_ortho_5x12_1x2u {
transform = <&layout_mit_transform>;
};
&layout_ortho_5x12_2x2u {
transform = <&layout_2x2u_transform>;
};

View File

@@ -13,7 +13,6 @@
#define RAISE 2 #define RAISE 2
/ { / {
chosen { zmk,matrix-transform = &layout_grid_transform; };
keymap { keymap {
compatible = "zmk,keymap"; compatible = "zmk,keymap";
default_layer { default_layer {

View File

@@ -19,6 +19,8 @@
}; };
}; };
&xiao_serial { status = "disabled"; };
&adc { &adc {
status = "okay"; status = "okay";
}; };

View File

@@ -6,9 +6,25 @@
#include <dt-bindings/zmk/matrix_transform.h> #include <dt-bindings/zmk/matrix_transform.h>
#include <layouts/common/ortho_5x12/all1u.dtsi>
/ { / {
chosen { chosen {
zmk,kscan = &kscan0; zmk,kscan = &kscan0;
zmk,physical-layout = &layout_ortho_5x12_all1u;
};
matrix_transform_50_all1u: keymap_transform_0 {
compatible = "zmk,matrix-transform";
columns = <12>;
rows = <5>;
map = <
RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11)
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11)
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11)
RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11)
RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,5) RC(4,6) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11)
>;
}; };
kscan0: kscan { kscan0: kscan {
@@ -40,4 +56,8 @@
, <&pro_micro 6 GPIO_ACTIVE_HIGH> , <&pro_micro 6 GPIO_ACTIVE_HIGH>
; ;
}; };
}; };
&layout_ortho_5x12_all1u {
transform = <&matrix_transform_50_all1u>;
};

View File

@@ -6,3 +6,4 @@ url: https://boardsource.xyz/store/5ecb802c86879c9a0c22db61
requires: [pro_micro] requires: [pro_micro]
features: features:
- keys - keys
- studio

View File

@@ -4,9 +4,26 @@
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
*/ */
#include <dt-bindings/zmk/matrix_transform.h>
#include <layouts/common/ortho_4x12/all1u.dtsi>
/ { / {
chosen { chosen {
zmk,kscan = &kscan0; zmk,kscan = &kscan0;
zmk,physical-layout = &layout_ortho_4x12_all1u;
};
matrix_transform_40_all1u: 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,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11)
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11)
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11)
RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11)
>;
}; };
kscan0: kscan_0 { kscan0: kscan_0 {
@@ -37,4 +54,8 @@
, <&pro_micro 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> , <&pro_micro 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
; ;
}; };
}; };
&layout_ortho_4x12_all1u {
transform = <&matrix_transform_40_all1u>;
};

View File

@@ -6,3 +6,4 @@ url: https://github.com/ai03-2725/Contra
requires: [pro_micro] requires: [pro_micro]
features: features:
- keys - keys
- studio

View File

@@ -6,7 +6,8 @@
#include <dt-bindings/zmk/matrix_transform.h> #include <dt-bindings/zmk/matrix_transform.h>
#include <layouts/foostan/corne.dtsi> #include <layouts/foostan/corne/5column.dtsi>
#include <layouts/foostan/corne/6column.dtsi>
&foostan_corne_6col_layout { &foostan_corne_6col_layout {
transform = <&default_transform>; transform = <&default_transform>;

View File

@@ -9,6 +9,7 @@ features:
- keys - keys
- display - display
- underglow - underglow
- studio
siblings: siblings:
- corne_left - corne_left
- corne_right - corne_right

View File

@@ -7,6 +7,7 @@ requires: [pro_micro]
exposes: [i2c_oled] exposes: [i2c_oled]
features: features:
- keys - keys
- studio
siblings: siblings:
- cradio_left - cradio_left
- cradio_right - cradio_right

View File

@@ -6,9 +6,24 @@
#include <dt-bindings/zmk/matrix_transform.h> #include <dt-bindings/zmk/matrix_transform.h>
#include <layouts/common/ortho_4x12/all1u.dtsi>
/ { / {
chosen { chosen {
zmk,kscan = &kscan0; zmk,kscan = &kscan0;
zmk,physical-layout = &layout_ortho_4x12_all1u;
};
matrix_transform_40_all1u: 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,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11)
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11)
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11)
RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11)
>;
}; };
kscan0: kscan_0 { kscan0: kscan_0 {
@@ -54,3 +69,7 @@
triggers-per-rotation = <20>; triggers-per-rotation = <20>;
}; };
}; };
&layout_ortho_4x12_all1u {
transform = <&matrix_transform_40_all1u>;
};

View File

@@ -7,3 +7,4 @@ requires: [pro_micro]
features: features:
- keys - keys
- encoder - encoder
- studio

View File

@@ -0,0 +1,41 @@
#include <physical_layouts.dtsi>
/ {
physical_layout0: physical_layout_0 {
compatible = "zmk,physical-layout";
display-name = "Default";
keys // w h x y rot rx ry
= <&key_physical_attrs 100 100 0 75 0 0 0>
, <&key_physical_attrs 100 100 100 25 0 0 0>
, <&key_physical_attrs 100 100 200 0 0 0 0>
, <&key_physical_attrs 100 100 300 25 0 0 0>
, <&key_physical_attrs 100 100 400 75 0 0 0>
, <&key_physical_attrs 100 100 600 75 0 0 0>
, <&key_physical_attrs 100 100 700 25 0 0 0>
, <&key_physical_attrs 100 100 800 0 0 0 0>
, <&key_physical_attrs 100 100 900 25 0 0 0>
, <&key_physical_attrs 100 100 1000 75 0 0 0>
, <&key_physical_attrs 100 100 0 175 0 0 0>
, <&key_physical_attrs 100 100 100 125 0 0 0>
, <&key_physical_attrs 100 100 200 100 0 0 0>
, <&key_physical_attrs 100 100 300 125 0 0 0>
, <&key_physical_attrs 100 100 400 175 0 0 0>
, <&key_physical_attrs 100 100 600 175 0 0 0>
, <&key_physical_attrs 100 100 700 125 0 0 0>
, <&key_physical_attrs 100 100 800 100 0 0 0>
, <&key_physical_attrs 100 100 900 125 0 0 0>
, <&key_physical_attrs 100 100 1000 175 0 0 0>
, <&key_physical_attrs 100 100 100 225 0 0 0>
, <&key_physical_attrs 100 100 200 200 0 0 0>
, <&key_physical_attrs 100 100 300 225 0 0 0>
, <&key_physical_attrs 100 100 700 225 0 0 0>
, <&key_physical_attrs 100 100 800 200 0 0 0>
, <&key_physical_attrs 100 100 900 225 0 0 0>
, <&key_physical_attrs 100 100 325 350 0 0 0>
, <&key_physical_attrs 100 100 425 375 0 0 0>
, <&key_physical_attrs 100 100 575 375 0 0 0>
, <&key_physical_attrs 100 100 675 350 0 0 0>
;
};
};

View File

@@ -5,15 +5,19 @@
*/ */
#include <dt-bindings/zmk/matrix_transform.h> #include <dt-bindings/zmk/matrix_transform.h>
#include "hummingbird-layouts.dtsi"
#include <physical_layouts.dtsi> &physical_layout0 {
transform = <&matrix_transform0>;
};
/ { / {
chosen { chosen {
zmk,kscan = &kscan0; zmk,kscan = &kscan0;
zmk,physical-layout = &physical_layout0;
}; };
default_transform: keymap_transform_0 { matrix_transform0: keymap_transform_0 {
compatible = "zmk,matrix-transform"; compatible = "zmk,matrix-transform";
columns = <7>; columns = <7>;
rows = <6>; rows = <6>;
@@ -49,46 +53,4 @@
, <&xiao_d 5 GPIO_ACTIVE_HIGH> , <&xiao_d 5 GPIO_ACTIVE_HIGH>
; ;
}; };
layout_0: layout_0 {
compatible = "zmk,physical-layout";
display-name = "Default";
transform = <&default_transform>;
keys // w h x y rot rx ry
= <&key_physical_attrs 100 100 0 75 0 0 0>
, <&key_physical_attrs 100 100 100 25 0 0 0>
, <&key_physical_attrs 100 100 200 0 0 0 0>
, <&key_physical_attrs 100 100 300 25 0 0 0>
, <&key_physical_attrs 100 100 400 75 0 0 0>
, <&key_physical_attrs 100 100 600 75 0 0 0>
, <&key_physical_attrs 100 100 700 25 0 0 0>
, <&key_physical_attrs 100 100 800 0 0 0 0>
, <&key_physical_attrs 100 100 900 25 0 0 0>
, <&key_physical_attrs 100 100 1000 75 0 0 0>
, <&key_physical_attrs 100 100 0 175 0 0 0>
, <&key_physical_attrs 100 100 100 125 0 0 0>
, <&key_physical_attrs 100 100 200 100 0 0 0>
, <&key_physical_attrs 100 100 300 125 0 0 0>
, <&key_physical_attrs 100 100 400 175 0 0 0>
, <&key_physical_attrs 100 100 600 175 0 0 0>
, <&key_physical_attrs 100 100 700 125 0 0 0>
, <&key_physical_attrs 100 100 800 100 0 0 0>
, <&key_physical_attrs 100 100 900 125 0 0 0>
, <&key_physical_attrs 100 100 1000 175 0 0 0>
, <&key_physical_attrs 100 100 100 225 0 0 0>
, <&key_physical_attrs 100 100 200 200 0 0 0>
, <&key_physical_attrs 100 100 300 225 0 0 0>
, <&key_physical_attrs 100 100 700 225 0 0 0>
, <&key_physical_attrs 100 100 800 200 0 0 0>
, <&key_physical_attrs 100 100 900 225 0 0 0>
, <&key_physical_attrs 100 100 325 350 0 0 0>
, <&key_physical_attrs 100 100 425 375 0 0 0>
, <&key_physical_attrs 100 100 575 375 0 0 0>
, <&key_physical_attrs 100 100 675 350 0 0 0>
;
};
}; };

View File

@@ -6,3 +6,4 @@ url: https://github.com/PJE66/hummingbird
requires: [seeed_xiao] requires: [seeed_xiao]
features: features:
- keys - keys
- studio

View File

@@ -6,10 +6,26 @@
#include <dt-bindings/zmk/matrix_transform.h> #include <dt-bindings/zmk/matrix_transform.h>
#include <layouts/kgoh/jian/full.dtsi>
#include <layouts/kgoh/jian/6column.dtsi>
#include <layouts/kgoh/jian/5column.dtsi>
&kgoh_jian_full_layout {
transform = <&default_transform>;
};
&kgoh_jian_6col_layout {
transform = <&crkbd_transform>;
};
&kgoh_jian_5col_layout {
transform = <&five_column_transform>;
};
/ { / {
chosen { chosen {
zmk,kscan = &kscan0; zmk,kscan = &kscan0;
zmk,matrix-transform = &default_transform; zmk,physical-layout = &kgoh_jian_full_layout;
}; };
default_transform: keymap_transform_0 { default_transform: keymap_transform_0 {
@@ -56,7 +72,7 @@
RC(0,1) RC(1,2) RC(0,2) RC(0,3) RC(0,4) RC(0,7) RC(0,8) RC(0,9) RC(1,9) RC(0,10) RC(0,1) RC(1,2) RC(0,2) RC(0,3) RC(0,4) RC(0,7) RC(0,8) RC(0,9) RC(1,9) RC(0,10)
RC(1,1) RC(2,2) RC(1,3) RC(1,4) RC(0,5) RC(0,6) RC(1,7) RC(1,8) RC(2,9) RC(1,10) RC(1,1) RC(2,2) RC(1,3) RC(1,4) RC(0,5) RC(0,6) RC(1,7) RC(1,8) RC(2,9) RC(1,10)
RC(3,2) RC(3,3) RC(2,3) RC(2,4) RC(1,5) RC(1,6) RC(2,7) RC(2,8) RC(3,8) RC(3,9) RC(3,2) RC(3,3) RC(2,3) RC(2,4) RC(1,5) RC(1,6) RC(2,7) RC(2,8) RC(3,8) RC(3,9)
RC(3,4) RC(2,5) RC(3,5) RC(3,6) RC(2,6) RC(3,7) RC(3,4) RC(2,5) RC(3,5) RC(3,6) RC(2,6) RC(3,7)
>; >;
}; };

View File

@@ -7,6 +7,7 @@
#include <behaviors.dtsi> #include <behaviors.dtsi>
#include <dt-bindings/zmk/keys.h> #include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/bt.h> #include <dt-bindings/zmk/bt.h>
#include <dt-bindings/zmk/outputs.h>
#define DEF 0 #define DEF 0
#define LWR 1 #define LWR 1
@@ -17,60 +18,72 @@
&mt { quick-tap-ms = <200>; }; &mt { quick-tap-ms = <200>; };
/ { / {
conditional_layers {
compatible = "zmk,conditional-layers";
tri_layer {
if-layers = <LWR RSE>;
then-layer = <ADJ>;
};
};
keymap { keymap {
compatible = "zmk,keymap"; compatible = "zmk,keymap";
default_layer { default_layer {
display-name = "MAIN";
// ----------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------
// | GUI | ~ | Q | W | E | R | T | | Y | U | I | O | P | [ | GUI/] | // | GUI | ~ | Q | W | E | R | T | | Y | U | I | O | P | [ | GUI/] |
// | CTRL | A | S | D | F | G | | H | J | K | L | ; |CTRL/'| // | CTRL | A | S | D | F | G | | H | J | K | L | ; |CTRL/'|
// | LALT | Z | X | C | V | B | | N | M | , | . | / | RALT | // | LALT | Z | X | C | V | B | | N | M | , | . | / |RALT/\|
// | RSE | SPC | LWR | | LWR | BSPC | RSE | // | RSE | SPC | LWR | | LWR | BSPC | RSE |
bindings = < bindings = <
&kp LWIN &kp GRAVE &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &mt RWIN RBKT &kp LWIN &kp GRAVE &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &mt RWIN RBKT
&kp LCTRL &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &mt RCTRL SQT &kp LCTRL &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &mt RCTRL SQT
&kp LALT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &mt RALT BSLH &kp LALT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &mt RALT BSLH
&lt RSE TAB &mt LSHFT SPACE &lt LWR RET &lt LWR ESC &mt RSHFT BSPC &lt RSE DEL &lt RSE TAB &mt LSHFT SPACE &lt LWR RET &lt LWR ESC &mt RSHFT BSPC &lt RSE DEL
>; >;
}; };
lower_layer { lower_layer {
display-name = "SYM";
// ----------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------
// | | _ | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | F12 | // | | _ | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
// | + | ! | @ | # | $ | % | | ^ | & | * | ( | ) | - | // | + | ! | @ | # | $ | % | | ^ | & | * | ( | ) | - |
// | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | // | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
// | GUI | | SPC | | ENT | | ALT | // | ADJ | | | | | | ADJ |
bindings = < bindings = <
&trans &kp UNDER &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &mt RGUI F12 &trans &kp UNDER &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &mt RGUI F12
&mt LCTRL PLUS &kp EXCL &kp AT &kp HASH &kp DLLR &kp PRCNT &kp CARET &kp AMPS &kp STAR &kp LPAR &kp RPAR &mt RCTRL MINUS &mt LCTRL PLUS &kp EXCL &kp AT &kp HASH &kp DLLR &kp PRCNT &kp CARET &kp AMPS &kp STAR &kp LPAR &kp RPAR &mt RCTRL MINUS
&mt LALT EQUAL &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &trans &mt LALT EQUAL &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &trans
&lt ADJ TAB &trans &trans &trans &trans &lt ADJ DEL &trans &trans &trans &trans &trans &trans
>; >;
}; };
raise_layer { raise_layer {
display-name = "NUM";
// ----------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------
// | | NMLK | / | 7 | 8 | 9 | - | | VOLU| HOME| PRSC| PGUP| SCLK| CLCK| | // | | NMLK | / | 7 | 8 | 9 | - | | VOLU| HOME| PRSC| PGUP| SCLK| CLCK| |
// | CTRL | * | 4 | 5 | 6 | + | | MUT | LEFT| UP | RGHT| INS | APP | // |CTRL/=| * | 4 | 5 | 6 | + | | MUT | LEFT| UP | RGHT| INS | APP |
// | | 0 | 1 | 2 | 3 | . | | VOLD| END | DOWN| PGDN| PAUS| | // | | 0 | 1 | 2 | 3 | . | | VOLD| END | DOWN| PGDN| PAUS| |
// | | | ADJ | | ADJ | | | // | | | ADJ | | ADJ | | |
bindings = < bindings = <
&trans &kp KP_NUM &kp KP_SLASH &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_MINUS &kp C_VOL_UP &kp HOME &kp PSCRN &kp PG_UP &kp SLCK &kp CAPS &trans &trans &kp KP_NUM &kp KP_SLASH &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_MINUS &kp C_VOL_UP &kp HOME &kp PSCRN &kp PG_UP &kp SLCK &kp CAPS &trans
&mt LCTRL EQUAL &kp KP_MULTIPLY &kp KP_N4 &kp KP_N5 &kp KP_N6 &kp KP_PLUS &kp C_MUTE &kp LEFT &kp UP &kp RIGHT &kp INS &mt RCTRL K_APP &mt LCTRL EQUAL &kp KP_MULTIPLY &kp KP_N4 &kp KP_N5 &kp KP_N6 &kp KP_PLUS &kp C_MUTE &kp LEFT &kp UP &kp RIGHT &kp INS &mt RCTRL K_APP
&trans &kp KP_N0 &kp KP_N1 &kp KP_N2 &kp KP_N3 &kp KP_DOT &kp C_VOL_DN &kp END &kp DOWN &kp PG_DN &kp PAUSE_BREAK &trans &trans &kp KP_N0 &kp KP_N1 &kp KP_N2 &kp KP_N3 &kp KP_DOT &kp C_VOL_DN &kp END &kp DOWN &kp PG_DN &kp PAUSE_BREAK &trans
&trans &trans &lt ADJ RET &lt ADJ ESC &trans &trans &trans &trans &trans &trans &trans &trans
>; >;
}; };
adjust_layer { adjust_layer {
display-name = "ADJ";
// ----------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------
// | RST | BLDR | | | | | | | | | | | | BLDR | RST | // | RST | BLDR | STU | | | | | | | | | | STU | BLDR | RST |
// | BTCLR| BT0 | BT1 | BT2 | BT3 | BT4 | | BT4 | BT3 | BT2 | BT1 | BT0 | BTCLR| // | BTCLR| BT0 | BT1 | BT2 | BT3 | BT4 | | BT4 | BT3 | BT2 | BT1 | BT0 | BTCLR|
// | | | | | | | | | | | | | | // | OUT | | | | | | | | | | | | OUT |
// | | | | | | | | // | | | | | | | |
bindings = < bindings = <
&sys_reset &bootloader &none &none &none &none &none &none &none &none &none &none &bootloader &sys_reset &sys_reset &bootloader &studio_unlock &none &none &none &none &none &none &none &none &studio_unlock &bootloader &sys_reset
&bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &bt BT_SEL 4 &bt BT_SEL 3 &bt BT_SEL 2 &bt BT_SEL 1 &bt BT_SEL 0 &bt BT_CLR &bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &bt BT_SEL 4 &bt BT_SEL 3 &bt BT_SEL 2 &bt BT_SEL 1 &bt BT_SEL 0 &bt BT_CLR
&none &none &none &none &none &none &none &none &none &none &none &none &out OUT_TOG &none &none &none &none &none &none &none &none &none &none &out OUT_TOG
&trans &none &trans &trans &none &trans &trans &none &trans &trans &none &trans
>; >;
}; };
}; };

View File

@@ -6,6 +6,7 @@ url: https://github.com/KGOH/Jian-Info
requires: [pro_micro] requires: [pro_micro]
features: features:
- keys - keys
- studio
siblings: siblings:
- jian_left - jian_left
- jian_right - jian_right

View File

@@ -0,0 +1,103 @@
#include <layouts/kgoh/jian/6column.dtsi>
#include <layouts/kgoh/jian/full.dtsi>
#include <physical_layouts.dtsi>
&layouts_kgoh_jian_position_map {
ladniy_jiran_full_posmap: full_jiran {
physical-layout = <&ladniy_jiran_full_layout>;
positions
= < 0 1 2 3 4 5 6 7 8 9 10 11 >
, <12 13 14 15 16 17 18 19 20 21 22 23 24 25>
, < 26 27 28 29 30 31 32 33 34 35 36 37 >
, < 38 39 40 41 42 43 44 45 46 47 48 49 >
, < 50 51 52 53 54 55 >;
};
};
&kgoh_jian_full_posmap {
positions
= < 44 45 46 47 48 49 50 51 52 53 54 55 >
, < 0 1 2 3 4 5 6 7 8 9 10 11 12 13>
, < 14 15 16 17 18 19 20 21 22 23 24 25 >
, < 26 27 28 29 30 31 32 33 34 35 36 37 >
, < 38 39 40 41 42 43 >;
};
&kgoh_jian_6col_posmap {
positions
= < 42 43 44 45 46 47 48 49 50 51 52 53 >
, <54 0 1 2 3 4 5 6 7 8 9 10 11 55>
, < 12 13 14 15 16 17 18 19 20 21 22 23 >
, < 24 25 26 27 28 29 30 31 32 33 34 35 >
, < 36 37 38 39 40 41 >;
};
&kgoh_jian_full_layout {
display-name = "Jian (with pinky)";
};
/ {
ladniy_jiran_full_layout: ladniy_jiran_full_layout {
compatible = "zmk,physical-layout";
display-name = "Full (with pinky/numbers)";
keys // w h x y rot rx ry
= <&key_physical_attrs 100 100 100 75 0 0 0>
, <&key_physical_attrs 100 100 200 62 0 0 0>
, <&key_physical_attrs 100 100 300 25 0 0 0>
, <&key_physical_attrs 100 100 400 0 0 0 0>
, <&key_physical_attrs 100 100 500 25 0 0 0>
, <&key_physical_attrs 100 100 600 37 0 0 0>
, <&key_physical_attrs 100 100 1000 37 0 0 0>
, <&key_physical_attrs 100 100 1100 25 0 0 0>
, <&key_physical_attrs 100 100 1200 0 0 0 0>
, <&key_physical_attrs 100 100 1300 25 0 0 0>
, <&key_physical_attrs 100 100 1400 62 0 0 0>
, <&key_physical_attrs 100 100 1500 75 0 0 0>
, <&key_physical_attrs 100 100 0 250 0 0 0>
, <&key_physical_attrs 100 100 100 175 0 0 0>
, <&key_physical_attrs 100 100 200 162 0 0 0>
, <&key_physical_attrs 100 100 300 125 0 0 0>
, <&key_physical_attrs 100 100 400 100 0 0 0>
, <&key_physical_attrs 100 100 500 125 0 0 0>
, <&key_physical_attrs 100 100 600 137 0 0 0>
, <&key_physical_attrs 100 100 1000 137 0 0 0>
, <&key_physical_attrs 100 100 1100 125 0 0 0>
, <&key_physical_attrs 100 100 1200 100 0 0 0>
, <&key_physical_attrs 100 100 1300 125 0 0 0>
, <&key_physical_attrs 100 100 1400 162 0 0 0>
, <&key_physical_attrs 100 100 1500 175 0 0 0>
, <&key_physical_attrs 100 100 1600 250 0 0 0>
, <&key_physical_attrs 100 100 100 275 0 0 0>
, <&key_physical_attrs 100 100 200 262 0 0 0>
, <&key_physical_attrs 100 100 300 225 0 0 0>
, <&key_physical_attrs 100 100 400 200 0 0 0>
, <&key_physical_attrs 100 100 500 225 0 0 0>
, <&key_physical_attrs 100 100 600 237 0 0 0>
, <&key_physical_attrs 100 100 1000 237 0 0 0>
, <&key_physical_attrs 100 100 1100 225 0 0 0>
, <&key_physical_attrs 100 100 1200 200 0 0 0>
, <&key_physical_attrs 100 100 1300 225 0 0 0>
, <&key_physical_attrs 100 100 1400 262 0 0 0>
, <&key_physical_attrs 100 100 1500 275 0 0 0>
, <&key_physical_attrs 100 100 100 375 0 0 0>
, <&key_physical_attrs 100 100 200 362 0 0 0>
, <&key_physical_attrs 100 100 300 325 0 0 0>
, <&key_physical_attrs 100 100 400 300 0 0 0>
, <&key_physical_attrs 100 100 500 325 0 0 0>
, <&key_physical_attrs 100 100 600 337 0 0 0>
, <&key_physical_attrs 100 100 1000 337 0 0 0>
, <&key_physical_attrs 100 100 1100 325 0 0 0>
, <&key_physical_attrs 100 100 1200 300 0 0 0>
, <&key_physical_attrs 100 100 1300 325 0 0 0>
, <&key_physical_attrs 100 100 1400 362 0 0 0>
, <&key_physical_attrs 100 100 1500 375 0 0 0>
, <&key_physical_attrs 100 100 500 425 0 0 0>
, <&key_physical_attrs 100 100 600 437 0 0 0>
, <&key_physical_attrs 100 100 700 450 0 0 0>
, <&key_physical_attrs 100 100 900 450 0 0 0>
, <&key_physical_attrs 100 100 1000 437 0 0 0>
, <&key_physical_attrs 100 100 1100 425 0 0 0>
;
};
};

View File

@@ -6,13 +6,27 @@
#include <dt-bindings/zmk/matrix_transform.h> #include <dt-bindings/zmk/matrix_transform.h>
#include "jiran-layouts.dtsi"
&ladniy_jiran_full_layout {
transform = <&jiran_transform>;
};
&kgoh_jian_full_layout {
transform = <&jian_transform>;
};
&kgoh_jian_6col_layout {
transform = <&crkbd_transform>;
};
/ { / {
chosen { chosen {
zmk,kscan = &kscan0; zmk,kscan = &kscan0;
zmk,matrix-transform = &default_transform; zmk,physical-layout = &ladniy_jiran_full_layout;
}; };
default_transform: keymap_transform_0 { jiran_transform: keymap_transform_0 {
compatible = "zmk,matrix-transform"; compatible = "zmk,matrix-transform";
columns = <12>; columns = <12>;
rows = <5>; rows = <5>;

View File

@@ -25,11 +25,11 @@
lower_layer { lower_layer {
bindings = < bindings = <
&kp GRAVE &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp EQUAL &kp GRAVE &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp EQUAL
&kp F11 &kp TAB &bt BT_CLR &kp HOME &sys_reset &kp PG_UP &kp C_VOL_UP &kp C_VOL_UP &kp PG_UP &sys_reset &kp HOME &kp INS &kp DEL &kp F12 &kp F11 &kp TAB &bt BT_CLR &kp HOME &sys_reset &kp PG_UP &kp C_VOL_UP &kp C_VOL_UP &kp PG_UP &studio_unlock &kp HOME &kp INS &kp DEL &kp F12
&kp LSHIFT &bt BT_NXT &kp LEFT &kp UP &kp RIGHT &kp C_MUTE &kp C_MUTE &kp LEFT &kp UP &kp RIGHT &kp PSCRN &mt RSHIFT SLCK &kp LSHIFT &bt BT_NXT &kp LEFT &kp UP &kp RIGHT &kp C_MUTE &kp C_MUTE &kp LEFT &kp UP &kp RIGHT &kp PSCRN &mt RSHIFT SLCK
&kp LCTRL &bt BT_PRV &kp END &kp DOWN &kp PG_DN &kp C_VOL_DN &kp C_VOL_DN &kp PG_DN &kp DOWN &kp END &kp PAUSE_BREAK &mt RCTRL KP_NUM &kp LCTRL &bt BT_PRV &kp END &kp DOWN &kp PG_DN &kp C_VOL_DN &kp C_VOL_DN &kp PG_DN &kp DOWN &kp END &kp PAUSE_BREAK &mt RCTRL KP_NUM
&trans &kp SPACE &kp LALT &mt RALT RET &kp BSPC &trans &trans &kp SPACE &kp LALT &mt RALT RET &kp BSPC &trans
>; >;
}; };
}; };
}; };

View File

@@ -6,6 +6,7 @@ url: https://github.com/Ladniy/jiran
requires: [pro_micro] requires: [pro_micro]
features: features:
- keys - keys
- studio
siblings: siblings:
- jiran_left - jiran_left
- jiran_right - jiran_right

View File

@@ -6,7 +6,7 @@
#include "jiran.dtsi" #include "jiran.dtsi"
&default_transform { &jiran_transform {
col-offset = <6>; col-offset = <6>;
}; };

View File

@@ -0,0 +1,84 @@
#include <layouts/foostan/corne/6column.dtsi>
#include <layouts/foostan/corne/5column.dtsi>
#include <physical_layouts.dtsi>
&layouts_foostan_corne_position_map {
joric_jorne_full_posmap: full {
physical-layout = <&joric_jorne_full_layout>;
positions
= < 0 1 2 3 4 5 6 7 8 9 10 11 12 13>
, < 14 15 16 17 18 19 20 21 22 23 24 25 >
, < 26 27 28 29 30 31 32 33 34 35 36 37 >
, < 38 39 40 41 42 43 >;
};
};
&foostan_corne_6col_posmap {
positions
= <42 0 1 2 3 4 5 6 7 8 9 10 11 43>
, < 12 13 14 15 16 17 18 19 20 21 22 23 >
, < 24 25 26 27 28 29 30 31 32 33 34 35 >
, < 36 37 38 39 40 41 >;
};
&foostan_corne_5col_posmap {
positions
= <36 37 0 1 2 3 4 5 6 7 8 9 38 39>
, < 40 10 11 12 13 14 15 16 17 18 19 41 >
, < 42 20 21 22 23 24 25 26 27 28 29 43 >
, < 30 31 32 33 34 35 >;
};
/ {
joric_jorne_full_layout: joric_jorne_full_layout {
compatible = "zmk,physical-layout";
display-name = "Full (with pinky)";
keys // w h x y rot rx ry
= <&key_physical_attrs 100 100 0 112 0 0 0>
, <&key_physical_attrs 100 100 100 37 0 0 0>
, <&key_physical_attrs 100 100 200 37 0 0 0>
, <&key_physical_attrs 100 100 300 12 0 0 0>
, <&key_physical_attrs 100 100 400 0 0 0 0>
, <&key_physical_attrs 100 100 500 12 0 0 0>
, <&key_physical_attrs 100 100 600 24 0 0 0>
, <&key_physical_attrs 100 100 900 24 0 0 0>
, <&key_physical_attrs 100 100 1000 12 0 0 0>
, <&key_physical_attrs 100 100 1100 0 0 0 0>
, <&key_physical_attrs 100 100 1200 12 0 0 0>
, <&key_physical_attrs 100 100 1300 37 0 0 0>
, <&key_physical_attrs 100 100 1400 37 0 0 0>
, <&key_physical_attrs 100 100 1500 112 0 0 0>
, <&key_physical_attrs 100 100 100 137 0 0 0>
, <&key_physical_attrs 100 100 200 137 0 0 0>
, <&key_physical_attrs 100 100 300 112 0 0 0>
, <&key_physical_attrs 100 100 400 100 0 0 0>
, <&key_physical_attrs 100 100 500 112 0 0 0>
, <&key_physical_attrs 100 100 600 124 0 0 0>
, <&key_physical_attrs 100 100 900 124 0 0 0>
, <&key_physical_attrs 100 100 1000 112 0 0 0>
, <&key_physical_attrs 100 100 1100 100 0 0 0>
, <&key_physical_attrs 100 100 1200 112 0 0 0>
, <&key_physical_attrs 100 100 1300 137 0 0 0>
, <&key_physical_attrs 100 100 1400 137 0 0 0>
, <&key_physical_attrs 100 100 100 237 0 0 0>
, <&key_physical_attrs 100 100 200 237 0 0 0>
, <&key_physical_attrs 100 100 300 212 0 0 0>
, <&key_physical_attrs 100 100 400 200 0 0 0>
, <&key_physical_attrs 100 100 500 212 0 0 0>
, <&key_physical_attrs 100 100 600 224 0 0 0>
, <&key_physical_attrs 100 100 900 224 0 0 0>
, <&key_physical_attrs 100 100 1000 212 0 0 0>
, <&key_physical_attrs 100 100 1100 200 0 0 0>
, <&key_physical_attrs 100 100 1200 212 0 0 0>
, <&key_physical_attrs 100 100 1300 237 0 0 0>
, <&key_physical_attrs 100 100 1400 237 0 0 0>
, <&key_physical_attrs 100 100 450 312 0 0 0>
, <&key_physical_attrs 100 100 550 312 1200 550 412>
, <&key_physical_attrs 100 150 648 283 2400 648 433>
, <&key_physical_attrs 100 150 852 283 (-2400) 952 433>
, <&key_physical_attrs 100 100 950 312 (-1200) 1050 412>
, <&key_physical_attrs 100 100 1050 312 0 0 0>
;
};
};

View File

@@ -6,14 +6,28 @@
#include <dt-bindings/zmk/matrix_transform.h> #include <dt-bindings/zmk/matrix_transform.h>
#include "jorne-layouts.dtsi"
&joric_jorne_full_layout {
transform = <&jorne_transform>;
};
&foostan_corne_6col_layout {
transform = <&crkbd_transform>;
};
&foostan_corne_5col_layout {
transform = <&five_column_transform>;
};
/ { / {
chosen { chosen {
zephyr,display = &oled; zephyr,display = &oled;
zmk,kscan = &kscan0; zmk,kscan = &kscan0;
zmk,matrix-transform = &default_transform; zmk,physical-layout = &joric_jorne_full_layout;
}; };
default_transform: keymap_transform_0 { jorne_transform: keymap_transform_0 {
compatible = "zmk,matrix-transform"; compatible = "zmk,matrix-transform";
columns = <12>; columns = <12>;
rows = <4>; rows = <4>;
@@ -57,7 +71,7 @@
RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10)
RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10)
RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10)
RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8)
>; >;
}; };

View File

@@ -7,67 +7,83 @@
#include <behaviors.dtsi> #include <behaviors.dtsi>
#include <dt-bindings/zmk/keys.h> #include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/bt.h> #include <dt-bindings/zmk/bt.h>
#include <dt-bindings/zmk/outputs.h>
#define DEF 0 #define DEF 0
#define LWR 1 #define LWR 1
#define RSE 2 #define RSE 2
#define ADJ 3 #define ADJ 3
&lt { quick-tap-ms = <200>; };
&mt { quick-tap-ms = <200>; };
/ { / {
conditional_layers {
compatible = "zmk,conditional-layers";
tri_layer {
if-layers = <LWR RSE>;
then-layer = <ADJ>;
};
};
keymap { keymap {
compatible = "zmk,keymap"; compatible = "zmk,keymap";
default_layer { default_layer {
display-name = "MAIN";
// ----------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------
// | GUI | ~ | Q | W | E | R | T | | Y | U | I | O | P | [ | GUI/] | // | GUI | ~ | Q | W | E | R | T | | Y | U | I | O | P | [ | GUI/] |
// | CTRL | A | S | D | F | G | | H | J | K | L | ; |CTRL/'| // | CTRL | A | S | D | F | G | | H | J | K | L | ; |CTRL/'|
// | LALT | Z | X | C | V | B | | N | M | , | . | / | RALT | // | LALT | Z | X | C | V | B | | N | M | , | . | / |RALT/\|
// | RSE | SPC | LWR | | LWR | BSPC | RSE | // | RSE | SPC | LWR | | LWR | BSPC | RSE |
bindings = < bindings = <
&kp LWIN &kp GRAVE &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &mt RWIN RBKT &kp LWIN &kp GRAVE &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &mt RWIN RBKT
&kp LCTRL &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &mt RCTRL SQT &kp LCTRL &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &mt RCTRL SQT
&kp LALT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp BSLH &kp LALT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &mt RALT BSLH
&lt RSE TAB &mt LSHFT SPACE &lt LWR RET &lt LWR ESC &mt RSHFT BSPC &lt RSE DEL &lt RSE TAB &mt LSHFT SPACE &lt LWR RET &lt LWR ESC &mt RSHFT BSPC &lt RSE DEL
>; >;
}; };
lower_layer { lower_layer {
display-name = "SYM";
// ----------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------
// | | _ | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | F12 | // | | _ | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
// | + | ! | @ | # | $ | % | | ^ | & | * | ( | ) | - | // | + | ! | @ | # | $ | % | | ^ | & | * | ( | ) | - |
// | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | // | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
// | GUI | | SPC | | ENT | | ALT | // | ADJ | | | | | | ADJ |
bindings = < bindings = <
&trans &kp UNDER &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &mt RGUI F12 &trans &kp UNDER &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &mt RGUI F12
&mt LCTRL PLUS &kp EXCL &kp AT &kp HASH &kp DLLR &kp PRCNT &kp CARET &kp AMPS &kp STAR &kp LPAR &kp RPAR &mt RCTRL MINUS &mt LCTRL PLUS &kp EXCL &kp AT &kp HASH &kp DLLR &kp PRCNT &kp CARET &kp AMPS &kp STAR &kp LPAR &kp RPAR &mt RCTRL MINUS
&mt LALT EQUAL &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &trans &mt LALT EQUAL &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &trans
&lt ADJ TAB &trans &trans &trans &trans &lt ADJ DEL &trans &trans &trans &trans &trans &trans
>; >;
}; };
raise_layer { raise_layer {
display-name = "NUM";
// ----------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------
// | | NMLK | / | 7 | 8 | 9 | - | | VOLU| HOME| PRSC| PGUP| SCLK| CLCK| | // | | NMLK | / | 7 | 8 | 9 | - | | VOLU| HOME| PRSC| PGUP| SCLK| CLCK| |
// | CTRL | * | 4 | 5 | 6 | + | | MUT | LEFT| UP | RGHT| INS | APP | // |CTRL/=| * | 4 | 5 | 6 | + | | MUT | LEFT| UP | RGHT| INS | APP |
// | | 0 | 1 | 2 | 3 | . | | VOLD| END | DOWN| PGDN| PAUS| | // | | 0 | 1 | 2 | 3 | . | | VOLD| END | DOWN| PGDN| PAUS| |
// | | | ADJ | | ADJ | | | // | | | ADJ | | ADJ | | |
bindings = < bindings = <
&trans &kp KP_NUM &kp KP_SLASH &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_MINUS &kp C_VOL_UP &kp HOME &kp PSCRN &kp PG_UP &kp SLCK &kp CAPS &trans &trans &kp KP_NUM &kp KP_SLASH &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_MINUS &kp C_VOL_UP &kp HOME &kp PSCRN &kp PG_UP &kp SLCK &kp CAPS &trans
&mt LCTRL EQUAL &kp KP_MULTIPLY &kp KP_N4 &kp KP_N5 &kp KP_N6 &kp KP_PLUS &kp C_MUTE &kp LEFT &kp UP &kp RIGHT &kp INS &mt RCTRL K_APP &mt LCTRL EQUAL &kp KP_MULTIPLY &kp KP_N4 &kp KP_N5 &kp KP_N6 &kp KP_PLUS &kp C_MUTE &kp LEFT &kp UP &kp RIGHT &kp INS &mt RCTRL K_APP
&trans &kp KP_N0 &kp KP_N1 &kp KP_N2 &kp KP_N3 &kp KP_DOT &kp C_VOL_DN &kp END &kp DOWN &kp PG_DN &kp PAUSE_BREAK &trans &trans &kp KP_N0 &kp KP_N1 &kp KP_N2 &kp KP_N3 &kp KP_DOT &kp C_VOL_DN &kp END &kp DOWN &kp PG_DN &kp PAUSE_BREAK &trans
&trans &trans &lt ADJ RET &lt ADJ ESC &trans &trans &trans &trans &trans &trans &trans &trans
>; >;
}; };
adjust_layer { adjust_layer {
display-name = "ADJ";
// ----------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------
// | RST | BLDR | | | | | | | | | | | | BLDR | RST | // | RST | BLDR | STU | | | | | | | | | | STU | BLDR | RST |
// | BTCLR| BT0 | BT1 | BT2 | BT3 | BT4 | | BT4 | BT3 | BT2 | BT1 | BT0 | BTCLR| // | BTCLR| BT0 | BT1 | BT2 | BT3 | BT4 | | BT4 | BT3 | BT2 | BT1 | BT0 | BTCLR|
// | | | | | | | | | | | | | | // | OUT | | | | | | | | | | | | OUT |
// | | | | | | | | // | | | | | | | |
bindings = < bindings = <
&sys_reset &bootloader &none &none &none &none &none &none &none &none &none &none &bootloader &sys_reset &sys_reset &bootloader &studio_unlock &none &none &none &none &none &none &none &none &studio_unlock &bootloader &sys_reset
&bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &bt BT_SEL 4 &bt BT_SEL 3 &bt BT_SEL 2 &bt BT_SEL 1 &bt BT_SEL 0 &bt BT_CLR &bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &bt BT_SEL 4 &bt BT_SEL 3 &bt BT_SEL 2 &bt BT_SEL 1 &bt BT_SEL 0 &bt BT_CLR
&none &none &none &none &none &none &none &none &none &none &none &none &out OUT_TOG &none &none &none &none &none &none &none &none &none &none &out OUT_TOG
&trans &none &trans &trans &none &trans &trans &none &trans &trans &none &trans
>; >;
}; };
}; };

View File

@@ -9,6 +9,7 @@ features:
- keys - keys
- display - display
- underglow - underglow
- studio
siblings: siblings:
- jorne_left - jorne_left
- jorne_right - jorne_right

View File

@@ -6,7 +6,7 @@
#include "jorne.dtsi" #include "jorne.dtsi"
&default_transform { &jorne_transform {
col-offset = <6>; col-offset = <6>;
}; };

View File

@@ -0,0 +1,137 @@
#include <physical_layouts.dtsi>
/ {
splitkb_kyria_6col_layout: splitkb_kyria_6col_layout {
compatible = "zmk,physical-layout";
display-name = "6 Column";
keys // w h x y rot rx ry
= <&key_physical_attrs 100 100 0 75 0 0 0>
, <&key_physical_attrs 100 100 100 75 0 0 0>
, <&key_physical_attrs 100 100 200 25 0 0 0>
, <&key_physical_attrs 100 100 300 0 0 0 0>
, <&key_physical_attrs 100 100 400 25 0 0 0>
, <&key_physical_attrs 100 100 500 37 0 0 0>
, <&key_physical_attrs 100 100 1100 37 0 0 0>
, <&key_physical_attrs 100 100 1200 25 0 0 0>
, <&key_physical_attrs 100 100 1300 0 0 0 0>
, <&key_physical_attrs 100 100 1400 25 0 0 0>
, <&key_physical_attrs 100 100 1500 75 0 0 0>
, <&key_physical_attrs 100 100 1600 75 0 0 0>
, <&key_physical_attrs 100 100 0 175 0 0 0>
, <&key_physical_attrs 100 100 100 175 0 0 0>
, <&key_physical_attrs 100 100 200 125 0 0 0>
, <&key_physical_attrs 100 100 300 100 0 0 0>
, <&key_physical_attrs 100 100 400 125 0 0 0>
, <&key_physical_attrs 100 100 500 137 0 0 0>
, <&key_physical_attrs 100 100 1100 137 0 0 0>
, <&key_physical_attrs 100 100 1200 125 0 0 0>
, <&key_physical_attrs 100 100 1300 100 0 0 0>
, <&key_physical_attrs 100 100 1400 125 0 0 0>
, <&key_physical_attrs 100 100 1500 175 0 0 0>
, <&key_physical_attrs 100 100 1600 175 0 0 0>
, <&key_physical_attrs 100 100 0 275 0 0 0>
, <&key_physical_attrs 100 100 100 275 0 0 0>
, <&key_physical_attrs 100 100 200 225 0 0 0>
, <&key_physical_attrs 100 100 300 200 0 0 0>
, <&key_physical_attrs 100 100 400 225 0 0 0>
, <&key_physical_attrs 100 100 500 237 0 0 0>
, <&key_physical_attrs 100 100 350 225 3000 400 792>
, <&key_physical_attrs 100 100 350 225 4500 400 792>
, <&key_physical_attrs 100 100 1250 225 (-4500) 1300 792>
, <&key_physical_attrs 100 100 1250 225 (-3000) 1300 792>
, <&key_physical_attrs 100 100 1100 237 0 0 0>
, <&key_physical_attrs 100 100 1200 225 0 0 0>
, <&key_physical_attrs 100 100 1300 200 0 0 0>
, <&key_physical_attrs 100 100 1400 225 0 0 0>
, <&key_physical_attrs 100 100 1500 275 0 0 0>
, <&key_physical_attrs 100 100 1600 275 0 0 0>
, <&key_physical_attrs 100 100 250 325 0 0 0>
, <&key_physical_attrs 100 100 350 325 0 0 0>
, <&key_physical_attrs 100 100 350 325 1500 400 792>
, <&key_physical_attrs 100 100 350 325 3000 400 792>
, <&key_physical_attrs 100 100 350 325 4500 400 792>
, <&key_physical_attrs 100 100 1250 325 (-4500) 1300 792>
, <&key_physical_attrs 100 100 1250 325 (-3000) 1300 792>
, <&key_physical_attrs 100 100 1250 325 (-1500) 1300 792>
, <&key_physical_attrs 100 100 1250 325 0 0 0>
, <&key_physical_attrs 100 100 1350 325 0 0 0>
;
};
splitkb_kyria_5col_layout: splitkb_kyria_5col_layout {
compatible = "zmk,physical-layout";
display-name = "5 Column";
keys // w h x y rot rx ry
= <&key_physical_attrs 100 100 0 75 0 0 0>
, <&key_physical_attrs 100 100 100 25 0 0 0>
, <&key_physical_attrs 100 100 200 0 0 0 0>
, <&key_physical_attrs 100 100 300 25 0 0 0>
, <&key_physical_attrs 100 100 400 37 0 0 0>
, <&key_physical_attrs 100 100 1000 37 0 0 0>
, <&key_physical_attrs 100 100 1100 25 0 0 0>
, <&key_physical_attrs 100 100 1200 0 0 0 0>
, <&key_physical_attrs 100 100 1300 25 0 0 0>
, <&key_physical_attrs 100 100 1400 75 0 0 0>
, <&key_physical_attrs 100 100 0 175 0 0 0>
, <&key_physical_attrs 100 100 100 125 0 0 0>
, <&key_physical_attrs 100 100 200 100 0 0 0>
, <&key_physical_attrs 100 100 300 125 0 0 0>
, <&key_physical_attrs 100 100 400 137 0 0 0>
, <&key_physical_attrs 100 100 1000 137 0 0 0>
, <&key_physical_attrs 100 100 1100 125 0 0 0>
, <&key_physical_attrs 100 100 1200 100 0 0 0>
, <&key_physical_attrs 100 100 1300 125 0 0 0>
, <&key_physical_attrs 100 100 1400 175 0 0 0>
, <&key_physical_attrs 100 100 0 275 0 0 0>
, <&key_physical_attrs 100 100 100 225 0 0 0>
, <&key_physical_attrs 100 100 200 200 0 0 0>
, <&key_physical_attrs 100 100 300 225 0 0 0>
, <&key_physical_attrs 100 100 400 237 0 0 0>
, <&key_physical_attrs 100 100 250 225 3000 300 792>
, <&key_physical_attrs 100 100 250 225 4500 300 792>
, <&key_physical_attrs 100 100 1150 225 (-4500) 1200 792>
, <&key_physical_attrs 100 100 1150 225 (-3000) 1200 792>
, <&key_physical_attrs 100 100 1000 237 0 0 0>
, <&key_physical_attrs 100 100 1100 225 0 0 0>
, <&key_physical_attrs 100 100 1200 200 0 0 0>
, <&key_physical_attrs 100 100 1300 225 0 0 0>
, <&key_physical_attrs 100 100 1400 275 0 0 0>
, <&key_physical_attrs 100 100 150 325 0 0 0>
, <&key_physical_attrs 100 100 250 325 0 0 0>
, <&key_physical_attrs 100 100 250 325 1500 300 792>
, <&key_physical_attrs 100 100 250 325 3000 300 792>
, <&key_physical_attrs 100 100 250 325 4500 300 792>
, <&key_physical_attrs 100 100 1150 325 (-4500) 1200 792>
, <&key_physical_attrs 100 100 1150 325 (-3000) 1200 792>
, <&key_physical_attrs 100 100 1150 325 (-1500) 1200 792>
, <&key_physical_attrs 100 100 1150 325 0 0 0>
, <&key_physical_attrs 100 100 1250 325 0 0 0>
;
};
splitkb_kyria_position_map {
compatible = "zmk,physical-layout-position-map";
complete;
twelve {
physical-layout = <&splitkb_kyria_6col_layout>;
positions
= < 0 1 2 3 4 5 6 7 8 9 10 11>
, <12 13 14 15 16 17 18 19 20 21 22 23>
, <24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39>
, < 40 41 42 43 44 45 46 47 48 49 >;
};
ten {
physical-layout = <&splitkb_kyria_5col_layout>;
positions
= <44 0 1 2 3 4 5 6 7 8 9 47>
, <45 10 11 12 13 14 15 16 17 18 19 48>
, <46 20 21 22 23 24 25 26 27 28 29 30 31 32 33 49>
, < 34 35 36 37 38 39 40 41 42 43 >;
};
};
};

View File

@@ -6,11 +6,15 @@
#include "kyria_common.dtsi" #include "kyria_common.dtsi"
/ { &splitkb_kyria_6col_layout {
chosen { transform = <&default_transform>;
zmk,matrix-transform = &default_transform; };
};
&splitkb_kyria_5col_layout {
transform = <&five_column_transform>;
};
/ {
default_transform: keymap_transform_0 { default_transform: keymap_transform_0 {
compatible = "zmk,matrix-transform"; compatible = "zmk,matrix-transform";
columns = <16>; columns = <16>;

View File

@@ -10,6 +10,7 @@ features:
- display - display
- encoder - encoder
- underglow - underglow
- studio
siblings: siblings:
- kyria_left - kyria_left
- kyria_right - kyria_right

View File

@@ -6,11 +6,13 @@
#include <dt-bindings/zmk/matrix_transform.h> #include <dt-bindings/zmk/matrix_transform.h>
#include "kyria-layouts.dtsi"
/ { / {
chosen { chosen {
zephyr,display = &oled; zephyr,display = &oled;
zmk,kscan = &kscan0; zmk,kscan = &kscan0;
zmk,matrix-transform = &default_transform; zmk,physical-layout = &splitkb_kyria_6col_layout;
}; };
kscan0: kscan { kscan0: kscan {

View File

@@ -6,11 +6,15 @@
#include "kyria_common.dtsi" #include "kyria_common.dtsi"
/ { &splitkb_kyria_6col_layout {
chosen { transform = <&default_transform>;
zmk,matrix-transform = &default_transform; };
};
&splitkb_kyria_5col_layout {
transform = <&five_column_transform>;
};
/ {
default_transform: keymap_transform_0 { default_transform: keymap_transform_0 {
compatible = "zmk,matrix-transform"; compatible = "zmk,matrix-transform";
columns = <16>; columns = <16>;

View File

@@ -6,11 +6,15 @@
#include "kyria_common.dtsi" #include "kyria_common.dtsi"
/ { &splitkb_kyria_6col_layout {
chosen { transform = <&default_transform>;
zmk,matrix-transform = &default_transform; };
};
&splitkb_kyria_5col_layout {
status = "disabled";
};
/ {
default_transform: keymap_transform_0 { default_transform: keymap_transform_0 {
compatible = "zmk,matrix-transform"; compatible = "zmk,matrix-transform";
columns = <14>; columns = <14>;

View File

@@ -10,6 +10,7 @@ features:
- display - display
- encoder - encoder
- underglow - underglow
- studio
siblings: siblings:
- kyria_rev3_left - kyria_rev3_left
- kyria_rev3_right - kyria_rev3_right

View File

@@ -6,11 +6,13 @@
#include <dt-bindings/zmk/matrix_transform.h> #include <dt-bindings/zmk/matrix_transform.h>
#include <layouts/kata0510/lily58.dtsi>
/ { / {
chosen { chosen {
zephyr,display = &oled; zephyr,display = &oled;
zmk,kscan = &kscan0; zmk,kscan = &kscan0;
zmk,matrix-transform = &default_transform; zmk,physical-layout = &kata0510_lily58_layout;
}; };
default_transform: keymap_transform_0 { default_transform: keymap_transform_0 {
@@ -60,6 +62,10 @@ RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,5) RC(4,6) RC(3,6) RC(3,7)
}; };
}; };
&kata0510_lily58_layout {
transform = <&default_transform>;
};
&pro_micro_i2c { &pro_micro_i2c {
status = "okay"; status = "okay";

View File

@@ -8,6 +8,7 @@ exposes: [i2c_oled]
features: features:
- keys - keys
- display - display
- studio
siblings: siblings:
- lily58_left - lily58_left
- lily58_right - lily58_right

View File

@@ -6,10 +6,12 @@
#include <dt-bindings/zmk/matrix_transform.h> #include <dt-bindings/zmk/matrix_transform.h>
#include <layouts/common/60percent/ansi.dtsi>
/ { / {
chosen { chosen {
zmk,kscan = &kscan0; zmk,kscan = &kscan0;
zmk,matrix-transform = &default_transform; zmk,physical-layout = &layout_60_ansi;
}; };
kscan0: kscan { kscan0: kscan {
@@ -58,3 +60,6 @@ RC(6,5) RC(6,6) RC(6,7) RC(7,0) RC(7
}; };
}; };
&layout_60_ansi {
transform = <&default_transform>;
};

View File

@@ -6,3 +6,4 @@ url: https://makerdiary.com/pages/m60-mechanical-keyboard
requires: [makerdiary_nrf52840_m2] requires: [makerdiary_nrf52840_m2]
features: features:
- keys - keys
- studio

View File

@@ -6,6 +6,9 @@ if SHIELD_MURPHPAD
config ZMK_KEYBOARD_NAME config ZMK_KEYBOARD_NAME
default "MurphPad" default "MurphPad"
config ZMK_DISPLAY
default y
if ZMK_DISPLAY if ZMK_DISPLAY
config I2C config I2C

View File

@@ -1,3 +0,0 @@
# Uncomment both to enable underglow
CONFIG_ZMK_RGB_UNDERGLOW=y
CONFIG_WS2812_STRIP=y

View File

@@ -31,7 +31,7 @@
spi-max-frequency = <4000000>; spi-max-frequency = <4000000>;
/* WS2812 */ /* WS2812 */
chain-length = <10>; /* arbitrary; change at will */ chain-length = <8>; /* number of SMD LED footprints on PCB */
spi-one-frame = <0x70>; spi-one-frame = <0x70>;
spi-zero-frame = <0x40>; spi-zero-frame = <0x40>;

View File

@@ -31,7 +31,7 @@
spi-max-frequency = <4000000>; spi-max-frequency = <4000000>;
/* WS2812 */ /* WS2812 */
chain-length = <10>; /* arbitrary; change at will */ chain-length = <8>; /* number of SMD LED footprints on PCB */
spi-one-frame = <0x70>; spi-one-frame = <0x70>;
spi-zero-frame = <0x40>; spi-zero-frame = <0x40>;

View File

@@ -0,0 +1,156 @@
/*
* Copyright (c) 2024 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include <physical_layouts.dtsi>
/ {
chosen {
zmk,physical-layout = &all_1u_layout;
};
all_1u_layout: keymap_layout_0 {
compatible = "zmk,physical-layout";
display-name = "Default";
transform = <&all_1u_transform>;
keys // w h x y rot rx ry
= <&key_physical_attrs 100 100 100 0 0 0 0>
, <&key_physical_attrs 100 100 200 0 0 0 0>
, <&key_physical_attrs 100 100 300 0 0 0 0>
, <&key_physical_attrs 100 100 400 0 0 0 0>
, <&key_physical_attrs 100 100 100 100 0 0 0>
, <&key_physical_attrs 100 100 200 100 0 0 0>
, <&key_physical_attrs 100 100 300 100 0 0 0>
, <&key_physical_attrs 100 100 400 100 0 0 0>
, <&key_physical_attrs 100 100 100 200 0 0 0>
, <&key_physical_attrs 100 100 200 200 0 0 0>
, <&key_physical_attrs 100 100 300 200 0 0 0>
, <&key_physical_attrs 100 100 400 200 0 0 0>
, <&key_physical_attrs 100 100 0 275 0 0 0>
, <&key_physical_attrs 100 100 100 300 0 0 0>
, <&key_physical_attrs 100 100 200 300 0 0 0>
, <&key_physical_attrs 100 100 300 300 0 0 0>
, <&key_physical_attrs 100 100 400 300 0 0 0>
, <&key_physical_attrs 100 100 0 400 0 0 0>
, <&key_physical_attrs 100 100 100 400 0 0 0>
, <&key_physical_attrs 100 100 200 400 0 0 0>
, <&key_physical_attrs 100 100 300 400 0 0 0>
, <&key_physical_attrs 100 100 400 400 0 0 0>
, <&key_physical_attrs 100 100 0 500 0 0 0>
, <&key_physical_attrs 100 100 100 500 0 0 0>
, <&key_physical_attrs 100 100 200 500 0 0 0>
, <&key_physical_attrs 100 100 300 500 0 0 0>
, <&key_physical_attrs 100 100 400 500 0 0 0>
, <&key_physical_attrs 100 100 100 700 0 0 0>
, <&key_physical_attrs 100 100 200 700 0 0 0>
, <&key_physical_attrs 100 100 300 700 0 0 0>
;
};
right_numpad_layout: keymap_layout_1 {
compatible = "zmk,physical-layout";
display-name = "Right Numpad";
transform = <&right_numpad_transform>;
keys // w h x y rot rx ry
= <&key_physical_attrs 100 100 100 0 0 0 0>
, <&key_physical_attrs 100 100 200 0 0 0 0>
, <&key_physical_attrs 100 100 300 0 0 0 0>
, <&key_physical_attrs 100 100 400 0 0 0 0>
, <&key_physical_attrs 100 100 100 100 0 0 0>
, <&key_physical_attrs 100 100 200 100 0 0 0>
, <&key_physical_attrs 100 100 300 100 0 0 0>
, <&key_physical_attrs 100 100 400 100 0 0 0>
, <&key_physical_attrs 100 200 100 200 0 0 0>
, <&key_physical_attrs 100 100 200 200 0 0 0>
, <&key_physical_attrs 100 100 300 200 0 0 0>
, <&key_physical_attrs 100 100 400 200 0 0 0>
, <&key_physical_attrs 100 100 0 275 0 0 0>
, <&key_physical_attrs 100 100 200 300 0 0 0>
, <&key_physical_attrs 100 100 300 300 0 0 0>
, <&key_physical_attrs 100 100 400 300 0 0 0>
, <&key_physical_attrs 100 100 0 400 0 0 0>
, <&key_physical_attrs 100 200 100 400 0 0 0>
, <&key_physical_attrs 100 100 200 400 0 0 0>
, <&key_physical_attrs 100 100 300 400 0 0 0>
, <&key_physical_attrs 100 100 400 400 0 0 0>
, <&key_physical_attrs 100 100 0 500 0 0 0>
, <&key_physical_attrs 100 100 200 500 0 0 0>
, <&key_physical_attrs 200 100 300 500 0 0 0>
, <&key_physical_attrs 100 100 100 700 0 0 0>
, <&key_physical_attrs 100 100 200 700 0 0 0>
, <&key_physical_attrs 100 100 300 700 0 0 0>
;
};
left_numpad_layout: keymap_layout_2 {
compatible = "zmk,physical-layout";
display-name = "Left Numpad";
transform = <&left_numpad_transform>;
keys // w h x y rot rx ry
= <&key_physical_attrs 100 100 100 0 0 0 0>
, <&key_physical_attrs 100 100 200 0 0 0 0>
, <&key_physical_attrs 100 100 300 0 0 0 0>
, <&key_physical_attrs 100 100 400 0 0 0 0>
, <&key_physical_attrs 100 100 100 100 0 0 0>
, <&key_physical_attrs 100 100 200 100 0 0 0>
, <&key_physical_attrs 100 100 300 100 0 0 0>
, <&key_physical_attrs 100 100 400 100 0 0 0>
, <&key_physical_attrs 100 100 100 200 0 0 0>
, <&key_physical_attrs 100 100 200 200 0 0 0>
, <&key_physical_attrs 100 100 300 200 0 0 0>
, <&key_physical_attrs 100 200 400 200 0 0 0>
, <&key_physical_attrs 100 100 0 275 0 0 0>
, <&key_physical_attrs 100 100 100 300 0 0 0>
, <&key_physical_attrs 100 100 200 300 0 0 0>
, <&key_physical_attrs 100 100 300 300 0 0 0>
, <&key_physical_attrs 100 100 0 400 0 0 0>
, <&key_physical_attrs 100 100 100 400 0 0 0>
, <&key_physical_attrs 100 100 200 400 0 0 0>
, <&key_physical_attrs 100 100 300 400 0 0 0>
, <&key_physical_attrs 100 200 400 400 0 0 0>
, <&key_physical_attrs 100 100 0 500 0 0 0>
, <&key_physical_attrs 200 100 100 500 0 0 0>
, <&key_physical_attrs 100 100 300 500 0 0 0>
, <&key_physical_attrs 100 100 100 700 0 0 0>
, <&key_physical_attrs 100 100 200 700 0 0 0>
, <&key_physical_attrs 100 100 300 700 0 0 0>
;
};
position_map {
compatible = "zmk,physical-layout-position-map";
all_1u_map {
physical-layout = <&all_1u_layout>;
positions
= <11 21 23 25 22 17 18 19 20 13 14 15 8 9 10 27>
, <28 29 16 26 24>
;
};
right_numpad_map {
physical-layout = <&right_numpad_layout>;
positions
= < 8 17 23 22 21 16 18 19 20 13 14 15 9 10 11 24>
, <25 26 27 28 29>
;
};
left_numpad_map {
physical-layout = <&left_numpad_layout>;
positions
= <11 20 22 23 21 16 17 18 19 13 14 15 8 9 10 24>
, <25 26 27 28 29>
;
};
};
};

View File

@@ -1,9 +1,15 @@
# Uncomment to turn on logging, and set ZMK logging to debug output # To enable logging, use the snippet per the documentation.
# CONFIG_ZMK_USB_LOGGING=y # Delaying log output may help catch issues close to startup. Uncomment and adjust if necessary (default is 1000ms)
#CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=3000
# Uncomment both to enable encoder # Uncomment both to enable encoder(s)
CONFIG_EC11=y CONFIG_EC11=y
CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y
# Uncomment to enable OLED # Uncomment to disable OLED
CONFIG_ZMK_DISPLAY=y #CONFIG_ZMK_DISPLAY=n
# Uncomment both to enable underglow
# Note that this will only work if an implementation exists for your board; check under the shield folder for board-specific overlays.
#CONFIG_ZMK_RGB_UNDERGLOW=y
#CONFIG_WS2812_STRIP=y

View File

@@ -7,16 +7,16 @@
#include <behaviors.dtsi> #include <behaviors.dtsi>
#include <dt-bindings/zmk/keys.h> #include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/bt.h> #include <dt-bindings/zmk/bt.h>
#include <dt-bindings/zmk/outputs.h>
#include <dt-bindings/zmk/rgb.h> #include <dt-bindings/zmk/rgb.h>
#define TIMEOUT 300 #define TIMEOUT 300
&encoder_1 { &middle_left_encoder {
status = "okay"; status = "okay";
}; };
&encoder_2 { &top_right_encoder {
status = "okay"; status = "okay";
}; };
@@ -25,62 +25,59 @@
compatible = "zmk,combos"; compatible = "zmk,combos";
combo_btclr { combo_btclr {
timeout-ms = <TIMEOUT>; timeout-ms = <TIMEOUT>;
key-positions = <1 6>; key-positions = <0 4>;
bindings = <&bt BT_CLR>; bindings = <&bt BT_CLR>;
}; };
combo_reset { combo_reset {
timeout-ms = <TIMEOUT>; timeout-ms = <TIMEOUT>;
key-positions = <1 3>; key-positions = <0 2>;
bindings = <&sys_reset>; bindings = <&sys_reset>;
}; };
combo_bootloader { combo_bootloader {
timeout-ms = <TIMEOUT>; timeout-ms = <TIMEOUT>;
key-positions = <1 2>; key-positions = <0 1>;
bindings = <&bootloader>; bindings = <&bootloader>;
}; };
combo_bt_nxt { combo_bt_nxt {
timeout-ms = <TIMEOUT>; timeout-ms = <TIMEOUT>;
key-positions = <1 4>; key-positions = <0 3>;
bindings = <&bt BT_NXT>; bindings = <&bt BT_NXT>;
}; };
}; };
sensors: sensors { keymap: keymap {
compatible = "zmk,keymap-sensors";
sensors = <&encoder_1 &encoder_2>;
triggers-per-rotation = <20>;
};
keymap0: keymap {
compatible = "zmk,keymap"; compatible = "zmk,keymap";
default_layer { default_layer {
display-name = "default layer"; display-name = "default";
bindings = < bindings = <
&bt BT_CLR &kp TAB &kp F5 &kp LC(LA(C)) &kp LG(D) &kp F1 &kp F2 &kp F3 &kp F4
&rgb_ug RGB_TOG &kp ESC &kp KP_DIVIDE &kp KP_MULTIPLY &kp KP_MINUS &kp KP_NUM &kp KP_DIVIDE &kp KP_MULTIPLY &kp KP_MINUS
&rgb_ug RGB_EFF &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_PLUS &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_PLUS
&kp C_MUTE &kp KP_N4 &kp KP_N5 &kp KP_N6 &trans &kp C_MUTE &kp KP_N4 &kp KP_N5 &kp KP_N6 &trans
&mo 1 &kp KP_N1 &kp KP_N2 &kp KP_N3 &kp KP_ENTER &mo 1 &kp KP_N1 &kp KP_N2 &kp KP_N3 &kp KP_ENTER
&kp BSPC &kp KP_N0 &trans &kp KP_DOT &trans &kp BSPC &kp KP_N0 &trans &kp KP_DOT &trans
&bt BT_CLR &rgb_ug RGB_TOG &rgb_ug RGB_EFF
>; >;
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>; sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>;
}; };
fn_layer { fn_layer {
display-name = "fn layer"; display-name = "fn";
bindings = < bindings = <
&trans &trans &trans &trans &trans &out OUT_TOG &bt BT_PRV &bt BT_NXT &trans
&trans &kp KP_NUM &trans &trans &trans &trans &trans &trans &trans
&trans &trans &trans &trans &trans &rgb_ug RGB_HUD &rgb_ug RGB_SPI &rgb_ug RGB_HUI &trans
&bt BT_CLR &trans &trans &trans &trans &bt BT_CLR &rgb_ug RGB_EFR &rgb_ug RGB_TOG &rgb_ug RGB_EFF &trans
&trans &trans &trans &trans &trans &trans &rgb_ug RGB_BRD &rgb_ug RGB_SPD &rgb_ug RGB_BRI &trans
&kp DEL &trans &trans &trans &trans &kp DEL &rgb_ug RGB_SAD &trans &rgb_ug RGB_SAI &trans
&trans &trans &trans
>; >;
sensor-bindings = <&inc_dec_kp PG_UP PG_DN &inc_dec_kp C_VOL_UP C_VOL_DN>; sensor-bindings = <&inc_dec_kp PG_UP PG_DN &inc_dec_kp C_VOL_UP C_VOL_DN>;
}; };
}; };
}; };

View File

@@ -6,35 +6,86 @@
#include <dt-bindings/zmk/matrix_transform.h> #include <dt-bindings/zmk/matrix_transform.h>
#include "murphpad-layout.dtsi"
/ { / {
chosen { chosen {
zephyr,display = &oled; zephyr,display = &oled;
zmk,kscan = &kscan0; zmk,kscan = &kscan;
zmk,physical-layouts = &all_1u_layout;
}; };
kscan0: kscan { kscan: kscan {
compatible = "zmk,kscan-gpio-matrix"; compatible = "zmk,kscan-gpio-matrix";
wakeup-source; wakeup-source;
diode-direction = "col2row"; diode-direction = "col2row";
row-gpios row-gpios
= <&pro_micro 20 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> = <&pro_micro 20 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 16 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> , <&pro_micro 16 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 14 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> , <&pro_micro 14 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 15 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> , <&pro_micro 15 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 18 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> , <&pro_micro 18 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 19 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> , <&pro_micro 19 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
; ;
col-gpios col-gpios
= <&pro_micro 9 GPIO_ACTIVE_HIGH> = <&pro_micro 9 GPIO_ACTIVE_HIGH>
, <&pro_micro 6 GPIO_ACTIVE_HIGH> , <&pro_micro 6 GPIO_ACTIVE_HIGH>
, <&pro_micro 5 GPIO_ACTIVE_HIGH> , <&pro_micro 5 GPIO_ACTIVE_HIGH>
, <&pro_micro 4 GPIO_ACTIVE_HIGH> , <&pro_micro 4 GPIO_ACTIVE_HIGH>
, <&pro_micro 10 GPIO_ACTIVE_HIGH> , <&pro_micro 10 GPIO_ACTIVE_HIGH>
; ;
}; };
encoder_1: encoder_1 { all_1u_transform: keymap_transform_0 {
compatible = "zmk,matrix-transform";
columns = <5>;
rows = <6>;
map = <
RC(0,1) RC(0,2) RC(0,3) RC(0,4)
RC(1,1) RC(1,2) RC(1,3) RC(1,4)
RC(2,1) RC(2,2) RC(2,3) RC(2,4)
RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4)
RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4)
RC(5,0) RC(5,1) RC(5,2) RC(5,3) RC(5,4)
RC(0,0) RC(1,0) RC(2,0)
>;
};
right_numpad_transform: keymap_transform_1 {
compatible = "zmk,matrix-transform";
columns = <5>;
rows = <6>;
map = <
RC(0,1) RC(0,2) RC(0,3) RC(0,4)
RC(1,1) RC(1,2) RC(1,3) RC(1,4)
RC(2,1) RC(2,2) RC(2,3) RC(2,4)
RC(3,0) RC(3,2) RC(3,3) RC(3,4)
RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4)
RC(5,0) RC(5,2) RC(5,4)
RC(0,0) RC(1,0) RC(2,0)
>;
};
left_numpad_transform: keymap_transform_2 {
compatible = "zmk,matrix-transform";
columns = <5>;
rows = <6>;
map = <
RC(0,1) RC(0,2) RC(0,3) RC(0,4)
RC(1,1) RC(1,2) RC(1,3) RC(1,4)
RC(2,1) RC(2,2) RC(2,3) RC(2,4)
RC(3,0) RC(3,1) RC(3,2) RC(3,3)
RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4)
RC(5,0) RC(5,1) RC(5,3)
RC(0,0) RC(1,0) RC(2,0)
>;
};
middle_left_encoder: encoder_1: encoder_1 {
compatible = "alps,ec11"; compatible = "alps,ec11";
a-gpios = <&pro_micro 8 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; a-gpios = <&pro_micro 8 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
b-gpios = <&pro_micro 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; b-gpios = <&pro_micro 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
@@ -42,7 +93,7 @@
status = "disabled"; status = "disabled";
}; };
encoder_2: encoder_2 { top_right_encoder: encoder_2: encoder_2 {
compatible = "alps,ec11"; compatible = "alps,ec11";
a-gpios = <&pro_micro 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; a-gpios = <&pro_micro 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
b-gpios = <&pro_micro 0 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; b-gpios = <&pro_micro 0 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
@@ -50,6 +101,12 @@
status = "disabled"; status = "disabled";
}; };
sensors: sensors {
compatible = "zmk,keymap-sensors";
sensors = <&middle_left_encoder &top_right_encoder>;
triggers-per-rotation = <20>;
};
}; };
&pro_micro_i2c { &pro_micro_i2c {

View File

@@ -71,7 +71,7 @@ static void battery_status_update_cb(struct battery_status_state state) {
} }
static struct battery_status_state battery_status_get_state(const zmk_event_t *eh) { static struct battery_status_state battery_status_get_state(const zmk_event_t *eh) {
return (struct battery_status_state) { return (struct battery_status_state){
.level = zmk_battery_state_of_charge(), .level = zmk_battery_state_of_charge(),
#if IS_ENABLED(CONFIG_USB_DEVICE_STACK) #if IS_ENABLED(CONFIG_USB_DEVICE_STACK)
.usb_present = zmk_usb_is_powered(), .usb_present = zmk_usb_is_powered(),

View File

@@ -36,7 +36,7 @@ struct output_status_state {
}; };
struct layer_status_state { struct layer_status_state {
uint8_t index; zmk_keymap_layer_index_t index;
const char *label; const char *label;
}; };
@@ -179,7 +179,7 @@ static void draw_bottom(lv_obj_t *widget, lv_color_t cbuf[], const struct status
lv_canvas_draw_rect(canvas, 0, 0, CANVAS_SIZE, CANVAS_SIZE, &rect_black_dsc); lv_canvas_draw_rect(canvas, 0, 0, CANVAS_SIZE, CANVAS_SIZE, &rect_black_dsc);
// Draw layer // Draw layer
if (state->layer_label == NULL) { if (state->layer_label == NULL || strlen(state->layer_label) == 0) {
char text[10] = {}; char text[10] = {};
sprintf(text, "LAYER %i", state->layer_index); sprintf(text, "LAYER %i", state->layer_index);
@@ -212,7 +212,7 @@ static void battery_status_update_cb(struct battery_status_state state) {
static struct battery_status_state battery_status_get_state(const zmk_event_t *eh) { static struct battery_status_state battery_status_get_state(const zmk_event_t *eh) {
const struct zmk_battery_state_changed *ev = as_zmk_battery_state_changed(eh); const struct zmk_battery_state_changed *ev = as_zmk_battery_state_changed(eh);
return (struct battery_status_state) { return (struct battery_status_state){
.level = (ev != NULL) ? ev->state_of_charge : zmk_battery_state_of_charge(), .level = (ev != NULL) ? ev->state_of_charge : zmk_battery_state_of_charge(),
#if IS_ENABLED(CONFIG_USB_DEVICE_STACK) #if IS_ENABLED(CONFIG_USB_DEVICE_STACK)
.usb_present = zmk_usb_is_powered(), .usb_present = zmk_usb_is_powered(),
@@ -277,8 +277,9 @@ static void layer_status_update_cb(struct layer_status_state state) {
} }
static struct layer_status_state layer_status_get_state(const zmk_event_t *eh) { static struct layer_status_state layer_status_get_state(const zmk_event_t *eh) {
uint8_t index = zmk_keymap_highest_layer_active(); zmk_keymap_layer_index_t index = zmk_keymap_highest_layer_active();
return (struct layer_status_state){.index = index, .label = zmk_keymap_layer_name(index)}; return (struct layer_status_state){
.index = index, .label = zmk_keymap_layer_name(zmk_keymap_layer_index_to_id(index))};
} }
ZMK_DISPLAY_WIDGET_LISTENER(widget_layer_status, struct layer_status_state, layer_status_update_cb, ZMK_DISPLAY_WIDGET_LISTENER(widget_layer_status, struct layer_status_state, layer_status_update_cb,

View File

@@ -0,0 +1,186 @@
/*
* Copyright (c) 2024 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include <physical_layouts.dtsi>
/ {
split_big_bar_layout: split_big_bar_layout {
compatible = "zmk,physical-layout";
display-name = "Split Big Bar";
transform = <&split_big_bar_transform>;
kscan = <&kscan0>;
keys // w h x y rot rx ry
= <&key_physical_attrs 100 100 0 0 0 0 0>
, <&key_physical_attrs 100 100 100 0 0 0 0>
, <&key_physical_attrs 100 100 200 0 0 0 0>
, <&key_physical_attrs 100 100 300 0 0 0 0>
, <&key_physical_attrs 100 100 400 0 0 0 0>
, <&key_physical_attrs 100 100 500 0 0 0 0>
, <&key_physical_attrs 100 100 600 0 0 0 0>
, <&key_physical_attrs 100 100 700 0 0 0 0>
, <&key_physical_attrs 100 100 800 0 0 0 0>
, <&key_physical_attrs 125 100 900 0 0 0 0>
, <&key_physical_attrs 125 100 0 100 0 0 0>
, <&key_physical_attrs 100 100 125 100 0 0 0>
, <&key_physical_attrs 100 100 225 100 0 0 0>
, <&key_physical_attrs 100 100 325 100 0 0 0>
, <&key_physical_attrs 100 100 425 100 0 0 0>
, <&key_physical_attrs 100 100 525 100 0 0 0>
, <&key_physical_attrs 100 100 625 100 0 0 0>
, <&key_physical_attrs 100 100 725 100 0 0 0>
, <&key_physical_attrs 100 100 825 100 0 0 0>
, <&key_physical_attrs 100 100 925 100 0 0 0>
, <&key_physical_attrs 175 100 0 200 0 0 0>
, <&key_physical_attrs 100 100 175 200 0 0 0>
, <&key_physical_attrs 100 100 275 200 0 0 0>
, <&key_physical_attrs 100 100 375 200 0 0 0>
, <&key_physical_attrs 100 100 475 200 0 0 0>
, <&key_physical_attrs 100 100 575 200 0 0 0>
, <&key_physical_attrs 100 100 675 200 0 0 0>
, <&key_physical_attrs 100 100 775 200 0 0 0>
, <&key_physical_attrs 150 100 875 200 0 0 0>
, <&key_physical_attrs 100 100 0 300 0 0 0>
, <&key_physical_attrs 100 100 100 300 0 0 0>
, <&key_physical_attrs 325 100 200 300 0 0 0>
, <&key_physical_attrs 300 100 525 300 0 0 0>
, <&key_physical_attrs 100 100 825 300 0 0 0>
, <&key_physical_attrs 100 100 925 300 0 0 0>
;
};
split_bar_layout: split_bar_layout {
compatible = "zmk,physical-layout";
display-name = "Split Bar";
transform = <&split_bar_transform>;
kscan = <&kscan0>;
keys // w h x y rot rx ry
= <&key_physical_attrs 100 100 0 0 0 0 0>
, <&key_physical_attrs 100 100 100 0 0 0 0>
, <&key_physical_attrs 100 100 200 0 0 0 0>
, <&key_physical_attrs 100 100 300 0 0 0 0>
, <&key_physical_attrs 100 100 400 0 0 0 0>
, <&key_physical_attrs 100 100 500 0 0 0 0>
, <&key_physical_attrs 100 100 600 0 0 0 0>
, <&key_physical_attrs 100 100 700 0 0 0 0>
, <&key_physical_attrs 100 100 800 0 0 0 0>
, <&key_physical_attrs 125 100 900 0 0 0 0>
, <&key_physical_attrs 125 100 0 100 0 0 0>
, <&key_physical_attrs 100 100 125 100 0 0 0>
, <&key_physical_attrs 100 100 225 100 0 0 0>
, <&key_physical_attrs 100 100 325 100 0 0 0>
, <&key_physical_attrs 100 100 425 100 0 0 0>
, <&key_physical_attrs 100 100 525 100 0 0 0>
, <&key_physical_attrs 100 100 625 100 0 0 0>
, <&key_physical_attrs 100 100 725 100 0 0 0>
, <&key_physical_attrs 100 100 825 100 0 0 0>
, <&key_physical_attrs 100 100 925 100 0 0 0>
, <&key_physical_attrs 175 100 0 200 0 0 0>
, <&key_physical_attrs 100 100 175 200 0 0 0>
, <&key_physical_attrs 100 100 275 200 0 0 0>
, <&key_physical_attrs 100 100 375 200 0 0 0>
, <&key_physical_attrs 100 100 475 200 0 0 0>
, <&key_physical_attrs 100 100 575 200 0 0 0>
, <&key_physical_attrs 100 100 675 200 0 0 0>
, <&key_physical_attrs 100 100 775 200 0 0 0>
, <&key_physical_attrs 150 100 875 200 0 0 0>
, <&key_physical_attrs 100 100 0 300 0 0 0>
, <&key_physical_attrs 100 100 100 300 0 0 0>
, <&key_physical_attrs 100 100 200 300 0 0 0>
, <&key_physical_attrs 225 100 300 300 0 0 0>
, <&key_physical_attrs 200 100 525 300 0 0 0>
, <&key_physical_attrs 100 100 725 300 0 0 0>
, <&key_physical_attrs 100 100 825 300 0 0 0>
, <&key_physical_attrs 100 100 925 300 0 0 0>
;
};
big_bar_layout: big_bar_layout {
compatible = "zmk,physical-layout";
display-name = "Big Bar";
transform = <&big_bar_transform>;
kscan = <&kscan0>;
keys // w h x y rot rx ry
= <&key_physical_attrs 100 100 0 0 0 0 0>
, <&key_physical_attrs 100 100 100 0 0 0 0>
, <&key_physical_attrs 100 100 200 0 0 0 0>
, <&key_physical_attrs 100 100 300 0 0 0 0>
, <&key_physical_attrs 100 100 400 0 0 0 0>
, <&key_physical_attrs 100 100 500 0 0 0 0>
, <&key_physical_attrs 100 100 600 0 0 0 0>
, <&key_physical_attrs 100 100 700 0 0 0 0>
, <&key_physical_attrs 100 100 800 0 0 0 0>
, <&key_physical_attrs 125 100 900 0 0 0 0>
, <&key_physical_attrs 125 100 0 100 0 0 0>
, <&key_physical_attrs 100 100 125 100 0 0 0>
, <&key_physical_attrs 100 100 225 100 0 0 0>
, <&key_physical_attrs 100 100 325 100 0 0 0>
, <&key_physical_attrs 100 100 425 100 0 0 0>
, <&key_physical_attrs 100 100 525 100 0 0 0>
, <&key_physical_attrs 100 100 625 100 0 0 0>
, <&key_physical_attrs 100 100 725 100 0 0 0>
, <&key_physical_attrs 100 100 825 100 0 0 0>
, <&key_physical_attrs 100 100 925 100 0 0 0>
, <&key_physical_attrs 175 100 0 200 0 0 0>
, <&key_physical_attrs 100 100 175 200 0 0 0>
, <&key_physical_attrs 100 100 275 200 0 0 0>
, <&key_physical_attrs 100 100 375 200 0 0 0>
, <&key_physical_attrs 100 100 475 200 0 0 0>
, <&key_physical_attrs 100 100 575 200 0 0 0>
, <&key_physical_attrs 100 100 675 200 0 0 0>
, <&key_physical_attrs 100 100 775 200 0 0 0>
, <&key_physical_attrs 150 100 875 200 0 0 0>
, <&key_physical_attrs 100 100 0 300 0 0 0>
, <&key_physical_attrs 100 100 100 300 0 0 0>
, <&key_physical_attrs 625 100 200 300 0 0 0>
, <&key_physical_attrs 100 100 825 300 0 0 0>
, <&key_physical_attrs 100 100 925 300 0 0 0>
;
};
position_map {
compatible = "zmk,physical-layout-position-map";
complete;
split_big_bar_posmap {
physical-layout = <&split_big_bar_layout>;
positions
= < 0 1 2 3 4 5 6 7 8 9>
, <10 11 12 13 14 15 16 17 18 19>
, <20 21 22 23 24 25 26 27 28>
, <29 30 35 31 36 33 34 32>
;
};
split_bar_posmap {
physical-layout = <&split_bar_layout>;
positions
= < 0 1 2 3 4 5 6 7 8 9>
, <10 11 12 13 14 15 16 17 18 19>
, <20 21 22 23 24 25 26 27 28>
, <29 30 31 32 34 35 36 33>
;
};
big_bar_posmap {
physical-layout = <&big_bar_layout>;
positions
= < 0 1 2 3 4 5 6 7 8 9>
, <10 11 12 13 14 15 16 17 18 19>
, <20 21 22 23 24 25 26 27 28>
, <29 30 35 34 36 32 33 31>
;
};
};
};

View File

@@ -1,18 +1,19 @@
/* /*
* Copyright (c) 2020 The ZMK Contributors * Copyright (c) 2024 The ZMK Contributors
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
*/ */
#include <dt-bindings/zmk/matrix_transform.h> #include <dt-bindings/zmk/matrix_transform.h>
#include "qaz-layouts.dtsi"
/ { / {
chosen { chosen {
zmk,kscan = &kscan0; zmk,kscan = &kscan0;
zmk,matrix-transform = &default_transform; zmk,physical-layout = &split_bar_layout;
}; };
default_transform: keymap_transform_0 { split_bar_transform: split_bar_transform {
compatible = "zmk,matrix-transform"; compatible = "zmk,matrix-transform";
columns = <7>; columns = <7>;
rows = <6>; rows = <6>;
@@ -24,6 +25,30 @@
>; >;
}; };
split_big_bar_transform: split_big_bar_transform {
compatible = "zmk,matrix-transform";
columns = <7>;
rows = <6>;
map = <
RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(4,0) RC(4,1) RC(4,2)
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(5,0) RC(5,1) RC(5,2)
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(4,3) RC(5,3)
RC(3,0) RC(3,1) RC(3,2) RC(3,5) RC(3,6) RC(4,4)
>;
};
big_bar_transform: big_bar_transform {
compatible = "zmk,matrix-transform";
columns = <7>;
rows = <6>;
map = <
RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(4,0) RC(4,1) RC(4,2)
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(5,0) RC(5,1) RC(5,2)
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(4,3) RC(5,3)
RC(3,0) RC(3,1) RC(3,4) RC(3,6) RC(4,4)
>;
};
kscan0: kscan_0 { kscan0: kscan_0 {
compatible = "zmk,kscan-gpio-matrix"; compatible = "zmk,kscan-gpio-matrix";
@@ -49,5 +74,4 @@
, <&pro_micro 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> , <&pro_micro 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
; ;
}; };
}; };

Some files were not shown because too many files have changed in this diff Show More