Compare commits

...

213 Commits

Author SHA1 Message Date
Pete Johanson
241ff39556 chore(main): release 0.2.1 (#2851) 2025-03-02 07:45:12 -07:00
Pete Johanson
f20e6ea759 fix(behaviors): Proper comma separated device list (#2850)
Properly generate the comma separated list of devs in caps word/
key repeat.
2025-03-02 06:49:07 -07:00
Pete Johanson
fadafc7759 chore(main): release 0.2.0 (#2693) 2025-03-01 11:29:58 -07:00
Pete Johanson
1e3e62c13d fix(pointing): Temp layer threading protection. (#2729)
fix(pointing): Temp layer threading protection.

Ensure all layer operations occur on the system work queue thread.

Fixes: #2719

fix(pointing): Handle layer events to disable events

Make the temp layer input processor propely handle layers getting
deactivated externally before the temp layer timeout.

Co-authored-by: Nicolas Munnich <98408764+Nick-Munnich@users.noreply.github.com>
2025-02-28 20:37:55 -05:00
Pete Johanson
21f54e7238 refactor(behaviors): Remove unneeded init funcs. (#2843)
Initialization functions are optional for Zephyr drivers, so remove
all our superfluous empty init functions.
2025-02-26 17:54:29 -05:00
Cem Aksoylar
7186528f77 fix(behaviors): Make multiple sticky keys work on same key position (#2758)
test(behaviors): Add same position sticky key tests

fix(behaviors): Make multiple sticky keys work on same key position

refactor(behaviors): Remove unused param2 in sticky keys
2025-02-26 17:54:08 -05:00
Pete Johanson
9406d39d14 refactor(behaviors): Small caps word RAM reduction. (#2842)
Don't use lazy initialized in-memory array of devices.
2025-02-26 17:01:04 -05:00
Nicolas Munnich
82216be635 chore: Add a deprecation warning to config/boards (#2811) 2025-02-26 15:16:50 -05:00
Xudong Zheng
ea267b0f35 fix(ble): enforce maximum length for dynamic device name (#2784) 2025-02-26 13:29:30 -05:00
Pete Johanson
2fe55c4c41 refactor(behaviors): Minor RAM usage tweaks (#2839)
Follow up cleanup of some config structs not marked as const.
2025-02-26 13:17:23 -05:00
Cem Aksoylar
d2eb6de7ad docs: Add query strings to tabs (#2840) 2025-02-25 16:31:57 -08:00
Pete Johanson
209085da73 refactor(behaviors): Add max-held tap-dance config (#2838)
refactor(behaviors): Add max-held tap-dance config

Add new `CONFIG_ZMK_BEHAVIOR_TAP_DANCE_MAX_HELD` config for reducing RAM
usage on more constrained devices.

refactor(behaviors): Move defaults to Kconfig.defaults
2025-02-25 14:12:27 -05:00
Pete Johanson
18d0d2f476 refactor(combos): Reduce combo RAM usage (#2837)
Properly mark combo configs as `const` so they are place in flash,
not RAM.
2025-02-25 13:38:51 -05:00
Cem Aksoylar
8575fc8a9d docs: Inline simple physical layout info in new shield guide (#2827)
docs: Inline simple physical layouts in new shield guide

docs: Fix broken anchor in module creation

docs: Make physical layout transform label consistent and comment
2025-02-17 15:59:54 -08:00
Cem Aksoylar
9d234cbb10 docs: Make default keymap in new shield guide complete (#2825)
Co-authored-by: Nicolas Munnich <98408764+Nick-Munnich@users.noreply.github.com>
2025-02-17 11:55:42 -08:00
Nicolas Munnich
e8ec9b65f8 docs: Add "planned: import/export keymap" to the studio features page (#2821) 2025-02-17 11:44:42 -08:00
Nicolas Munnich
d0d313409b docs: Improved some links to modules (#2822)
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2025-02-17 10:16:36 +01:00
Nicolas Munnich
5926269ea5 docs: Add KiCAD note and titles to physical layouts page (#2823)
docs: Note that Nick Coutsos' tool can import from KiCAD

docs: Add titles to some code blocks in physical layouts
2025-02-16 20:12:31 -08:00
Nicolas Munnich
eeb8a00778 docs: Add a page on module creation (#2456)
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2025-02-14 16:32:18 -08:00
Pete Johanson
aa3e5dd70f feat(display): Add config for display update period (#2819)
Add `CONFIG_ZMK_DISPLAY_TICK_PERIOD_MS` Kconfig to allow tweaking
the period between display updates.
2025-02-10 13:32:16 -05:00
Pete Johanson
627e6dbec9 feat(display): Add ability to set display on/off pin. (#2814)
Zephyr is still working on the plan upstream for generically controlling
display "backlight" pins with GPIO/PWM, so in the meantime, add our
own chosen property `zmk,display-led` that is set to an LED device child
to allow blanking/unblanking of devices that use a dedicated backlight
control pin.
2025-02-07 17:49:30 -07:00
Alex Rozhkov
424e53210e feat(shields): Add physical layout for Lotus58 (#2753)
Added physical layout and studio support for Lotus58.
2025-02-07 14:35:13 -05:00
Pete Johanson
4b4a8a35f3 fix(display): POSIX lvgl fixes (#2812)
fix(display): Do LVGL task processing in main on POSIX.

An SDL/Zephyr bug prevents proper display when SDL calls are
made from anything but the main thread, so add task handling
in our simple main function when on POSIX.

fix(usb): Compilation fix for 64-bit targets

Properly handle differences in the size of `size_t` on 64-bit
architectures.

fix(display): Imply, but don't force, LVGL mono theme

Some targets may be using color displays, so instead of forcing
on the mono theme, merely imply it to default it
2025-02-07 02:05:21 -05:00
Cem Aksoylar
0f7c11248a feat(pointing): Add pre-defined scroll scaler and mouse scroll tests (#2759)
feat(pointing): Add pre-defined scroll scaler

tests(pointing): Add mouse scroll tests
2025-02-04 10:27:14 -07:00
Nicolas Munnich
8e065d55b9 fix(kscan): Remove warning when keyboard is built without CONFIG_PM_DEVICE (#2808) 2025-02-01 11:16:52 -07:00
Pete Johanson
425256bc0d fix(display): Only default mono theme when 1bpp (#2804)
In order to have flexibility for color displays, only imply the mono
theme if we have 1bpp.
2025-01-31 22:53:35 -05:00
Cem Aksoylar
72b00b3f58 docs: Add pointers to final Kconfig/devicetree files (#2796)
docs: Add diagnosis pointers for Kconfig/devicetree outputs

docs: Add tip boxes for diagnosing config/devicetree changes
2025-01-25 13:04:50 -08:00
Cem Aksoylar
e4885d5d4c docs: Update keymaps index intro (#2790)
Co-authored-by: Nicolas Munnich <98408764+Nick-Munnich@users.noreply.github.com>
2025-01-25 12:30:50 -08:00
Cem Aksoylar
4f72e7cb25 docs: Update intro page (#2767) 2025-01-22 16:58:15 -08:00
Cem Aksoylar
4882a62c40 docs: Update dongle FAQ entry (#2788) 2025-01-22 10:09:03 +01:00
Xudong Zheng
40e9e5c5fa test(split): remove build banner from snapshot (#2787)
The test snapshot will otherwise be outdated each time there is a new
commit on https://github.com/zmkfirmware/zephyr.
2025-01-21 12:40:27 -05:00
Nick Winans
40ea92d201 docs: Link to ZMK Studio download page (#2783) 2025-01-20 21:30:55 -08:00
dependabot[bot]
db2fc2bffd chore(deps): bump katex from 0.16.11 to 0.16.21 in /docs (#2774)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-17 15:15:54 -08:00
Pete Johanson
e4f1454e0b refactor(keymap): Reduce flash usage for studio builds (#2771)
When building for ZMK Studio, we can use the constant stock keymap
for init of the in-memory keymap, to avoid duplicate flash usage
for the keymap from the devicetree.
2025-01-15 16:51:26 -05:00
Pete Johanson
c367d8f636 feat(core): Make physical layout key rotation optional (#2770)
To be able to save on flash space, for layouts on space constrained
devices that don't require rotation, make key rotation props
optional behind a new Kconfig flag.
2025-01-15 16:48:18 -05:00
Pete Johanson
6941abc2af fix(drivers): Proper static/const for data/config (#2769)
Save a tiny bit of RAM by properly marking our device config
struct instances const consistently, and also add missing static
modifiers to properly isolate config/data for drivers.
2025-01-15 12:35:35 -05:00
Cem Aksoylar
700e9b264f docs: Move more sections under hardware integration (#2704)
docs: Move battery sensing hardware integration to new page

docs: Refactor lighting hardware integrations to new category

docs: Link to pin control page from lighting pages

docs: Consolidate lighting feature pages

docs: Remove incorrect redirect

docs: Consolidate lighting config pages
2025-01-13 21:14:25 -08:00
Pete Johanson
8dddb1d9d7 Testing: split input test (#2762)
test(pointing): Add mock input device.

New mock input device to generate input events for tests.

test(split): Add peripheral input test.

Test event propagation from peripheral input devices.

fix(split): Proper scoping for local within switch.

Minor compile fix.

chore: Fix up test snapshots after logging changes.

Adjust the test snapshots after logging changes to the central.

fix(kscan): Don't fire last mock event twice.

Fix a bug where the kscan mock would raise the last mock event
twice before halting processing.
2025-01-13 15:15:16 -05:00
Cem Aksoylar
022603ec16 docs: Fix broken anchors in dongle page (#2764) 2025-01-13 09:21:55 +01:00
Aasim-A
b93bf6d3fd docs: Fix incorrect kscan value (#2763) 2025-01-12 15:51:30 +01:00
Pete Johanson
d0ee30bfaa Testing: split ble encoder test (#2754)
test(sensors): Add mock encoder sensor

Add a new mock sensor driver for generating mock encoder sensor channel
data.

test(split): Add a peripheral sensor split test

Test BLE split logic for peripheral sensors (encoders).
2025-01-06 14:41:02 -05:00
Cem Aksoylar
3377ed02a8 docs: Improve pointing docs (#2703)
docs: Add missing code fence languages in pointing

docs: Fix default msc exponent in example

docs: Make pointing hardware integration follow semantic structure
2025-01-04 11:15:32 -08:00
Pete Johanson
36508c27fd fix(studio): Allow adding layers after a layer move (#2748)
Properly return the available layers in the move layer response.
2025-01-03 19:19:19 -05:00
Pete Johanson
e6343f44ce test(split): Test split HID indicator setting. (#2747)
Add integration test for HID indicator state being propagated
to split peripherals.
2025-01-03 18:05:18 -05:00
Nicolas Munnich
bc6bb90414 docs: added a page on dongles.
Co-authored-by: rasmuskoit <rasmuskoit@gmail.com>
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2025-01-02 10:44:50 -08:00
Willow Herring
05abd677c5 chore: Add trailing lines to fix build warnings (#2743)
When building a unibody or central warnings get thrown for the backslash newlines at EOF in combos.h and input_listeners.h. Adding a trailing newline to the affected files rectifies this
2025-01-02 08:58:49 -07:00
Pete Johanson
f0a77b888a fix(combos): Properly report combos len with emply block (#2739)
Handle the scenario where there is an empty combos block and return
a zero combos length.
2025-01-01 18:14:53 -05:00
Pete Johanson
85aba16eec testing: Add split BLE tests (#2737)
* Enhance the BLE test runner to build additional peripheral builds
  when detecting peripheral*.overlay files in the test.
* Add basic and multiple-peripheral tests to exercise the testing
  support
* Add test for triggering local behaviors on split peripherals.

fix(ble): Fix building split code w/o settings

* Properly exclude storing peripheral addresses to settings when
  settings support isn't turned on.
2025-01-01 18:13:47 -05:00
Robert U
3f6841c95f chore: Allow running tests from anywhere and support EXTRA_MODULES (#2725)
* Allow running tests from anywhere in the workspace
* Trigger test workflow if run-test.sh changes
2024-12-20 15:19:56 -05:00
Nicolas Munnich
2f172f63c2 chore: Docs bullet point in PR checklist (#2718) 2024-12-20 14:31:37 -05:00
Nicolas Munnich
bb486619a1 fix: Kconfig refactor now works correctly with external modules (#2711) 2024-12-18 23:32:30 -07:00
Pete Johanson
cb867f92db Feature: input processor behavior invocation (#2714)
refactor(pointing): Allow stopping event propagation

    Allow input processors to return a special value if a given input event
    should not be further processed/propagated.

feat(pointing): Add behavior input processor

    Add the ability to intercept certain input events and trigger behaviors
    when they occur.

Co-authored-by: Jorge Villalobos <minusfive@users.noreply.github.com>
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-12-17 20:50:06 -05:00
dependabot[bot]
d0016b34f8 chore(deps-dev): bump the development group across 1 directory with 7 updates (#2698)
Bumps the development group with 7 updates in the /docs directory:

| Package | From | To |
| --- | --- | --- |
| [@docusaurus/module-type-aliases](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-module-type-aliases) | `3.6.1` | `3.6.3` |
| [@docusaurus/tsconfig](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-tsconfig) | `3.5.2` | `3.6.3` |
| [@docusaurus/types](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-types) | `3.6.1` | `3.6.3` |
| [json-schema-to-typescript](https://github.com/bcherny/json-schema-to-typescript) | `15.0.2` | `15.0.3` |
| [prettier](https://github.com/prettier/prettier) | `3.3.3` | `3.4.2` |
| [typescript](https://github.com/microsoft/TypeScript) | `5.6.3` | `5.7.2` |
| [webpack](https://github.com/webpack/webpack) | `5.96.1` | `5.97.1` |



Updates `@docusaurus/module-type-aliases` from 3.6.1 to 3.6.3
- [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.3/packages/docusaurus-module-type-aliases)

Updates `@docusaurus/tsconfig` from 3.5.2 to 3.6.3
- [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.3/packages/docusaurus-tsconfig)

Updates `@docusaurus/types` from 3.6.1 to 3.6.3
- [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.3/packages/docusaurus-types)

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

Updates `prettier` from 3.3.3 to 3.4.2
- [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/3.3.3...3.4.2)

Updates `typescript` from 5.6.3 to 5.7.2
- [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.6.3...v5.7.2)

Updates `webpack` from 5.96.1 to 5.97.1
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.96.1...v5.97.1)

---
updated-dependencies:
- dependency-name: "@docusaurus/module-type-aliases"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development
- dependency-name: "@docusaurus/tsconfig"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development
- dependency-name: "@docusaurus/types"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development
- dependency-name: json-schema-to-typescript
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-13 10:07:46 +01:00
Nicolas Munnich
ec6b770947 docs: Minor touchups to studio related bits (#2707) 2024-12-13 10:03:08 +01:00
Nicolas Munnich
4ef231f4bb feat: Added toggle-mode, allowing toggle-on and toggle-off (#2555)
feat: added toggle mode to key and layer toggles

docs: documented toggle mode changes
2024-12-12 19:13:56 -05:00
Joel Spadin
7013158a67 fix: Fix warnings in nanopb encoding code (#2643)
The "arg" field on nanopb structs is a void* because it is shared
between the encode and decode callbacks, even though the encode
callback probably should not modify the data. We are passing const data
using this non-const pointer, which causes warnings about discarding
const. This commit explicitly casts to void* to suppress these warnings.
2024-12-11 15:00:48 -05:00
svek1
a8f5ab67b5 fix: allow kscan-composite to wake up device. (#2682)
* include kscan.yaml so we can set kscan-composite as a wakeup source
* modify enable and disable callback to check for wakeup capabilities of
composite and children
* disable children wakeup source

The disable function is only called
when the composite is not an enabled wakeup source.
In that case the children should also not be an enabled
wakeup source, so they can get suspended
2024-12-11 14:46:22 -05:00
Pete Johanson
84baf929c9 fix(pointing): Complete header rename missed in refactor (#2702)
* Update a few mouse.h -> pointing.h missed refactors.
2024-12-10 02:29:35 -05:00
Pete Johanson
6b40bfda53 feat(mouse): Add mouse move and scroll support (#2477)
* feat(mouse): Add mouse move and scroll support

    * Use Zephyr input subsystem for all pointers.
    * Input processors for modifying events, e.g. scaling, swapping
      codes, temporary (mouse) layers, etc.
    * Mouse move/scroll behaviors.
    * Infrastructure in place for physical pointer input devices.

* feat: Add input split support.

* docs: Add initial pointer docs.

---------

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
Co-authored-by: Alexander Krikun <krikun98@gmail.com>
Co-authored-by: Robert U <urob@users.noreply.github.com>
Co-authored-by: Shawn Meier <ftc@users.noreply.github.com>
Co-authored-by: Chris Andreae <chris@andreae.gen.nz>
Co-authored-by: Anant Thazhemadam <47104651+thazhemadam@users.noreply.github.com>
Co-authored-by: Erik Tollerud <erik.tollerud@gmail.com>
Co-authored-by: Nicolas Munnich <98408764+Nick-Munnich@users.noreply.github.com>
2024-12-09 19:45:41 -05:00
pabile
7e8c542c94 feat(studio): Add ortho_4x10 grid layout (#2651)
* added 4x10 grid layout

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
2024-12-09 12:53:54 -05:00
Pete Johanson
0820991901 fix(studio): Properly return complete keymap from RPC (#2696)
Ensure the set active physical layout RPC returns the full keymap
details including the available layers.
2024-12-06 18:10:58 -05:00
yuki
b26058b6c7 feat(boards): Update for mikoto board definition (#1946)
* Set default revision to 5.20
* update mikoto board defs
* add revision info to mikoto.zmk.yml
* use zephyr aliases to handle mikoto_520
* enable pull-ups for on-board i2c
2024-12-05 02:02:58 -05:00
Nicolas Munnich
40925d48e6 refactor(Kconfig): Extracted designer defaults out into new files (#2537)
docs: Fix incorrect kconfig default values

fix(Kconfig): Added a name to EC11's trigger mode choice, allowing it to be set in device Kconfig.defconfig

refactor(Kconfig): Moved designer defaults out into new files
2024-12-04 16:19:35 -05:00
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
667 changed files with 20191 additions and 5462 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,9 @@
<!-- 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)) - [ ] Includes any necessary [documentation changes](https://zmk.dev/docs/development/contributing/documentation).
- [ ] `&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 }}

View File

@@ -4,12 +4,14 @@ on:
push: push:
paths: paths:
- ".github/workflows/test.yml" - ".github/workflows/test.yml"
- "app/run-test.sh"
- "app/tests/**" - "app/tests/**"
- "app/src/**" - "app/src/**"
- "app/include/**" - "app/include/**"
pull_request: pull_request:
paths: paths:
- ".github/workflows/test.yml" - ".github/workflows/test.yml"
- "app/run-test.sh"
- "app/tests/**" - "app/tests/**"
- "app/src/**" - "app/src/**"
- "app/include/**" - "app/include/**"

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.2.1"}

69
CHANGELOG.md Normal file
View File

@@ -0,0 +1,69 @@
# Changelog
## [0.2.1](https://github.com/zmkfirmware/zmk/compare/v0.2.0...v0.2.1) (2025-03-02)
### Bug Fixes
* **behaviors:** Proper comma separated device list ([#2850](https://github.com/zmkfirmware/zmk/issues/2850)) ([f20e6ea](https://github.com/zmkfirmware/zmk/commit/f20e6ea7594b49eef1e3acc017529073a0409962))
## [0.2.0](https://github.com/zmkfirmware/zmk/compare/v0.1.0...v0.2.0) (2025-03-01)
### Features
* Added `toggle-mode`, allowing toggle-on and toggle-off ([#2555](https://github.com/zmkfirmware/zmk/issues/2555)) ([4ef231f](https://github.com/zmkfirmware/zmk/commit/4ef231f4bba87151acfbd1cf3babd83b69813e45))
* added toggle mode to key and layer toggles ([4ef231f](https://github.com/zmkfirmware/zmk/commit/4ef231f4bba87151acfbd1cf3babd83b69813e45))
* **boards:** Update for mikoto board definition ([#1946](https://github.com/zmkfirmware/zmk/issues/1946)) ([b26058b](https://github.com/zmkfirmware/zmk/commit/b26058b6c7c83f8d1f095d2f9c6c3998b391a61b))
* **core:** Make physical layout key rotation optional ([#2770](https://github.com/zmkfirmware/zmk/issues/2770)) ([c367d8f](https://github.com/zmkfirmware/zmk/commit/c367d8f636f0842b414c2b58df6101761cdd676d))
* **display:** Add ability to set display on/off pin. ([#2814](https://github.com/zmkfirmware/zmk/issues/2814)) ([627e6db](https://github.com/zmkfirmware/zmk/commit/627e6dbec99211b3d7cce55904fb1c824ed87bf3))
* **display:** Add config for display update period ([#2819](https://github.com/zmkfirmware/zmk/issues/2819)) ([aa3e5dd](https://github.com/zmkfirmware/zmk/commit/aa3e5dd70fdd1b364fa9ad26f14425be613d180c))
* input processor behavior invocation ([#2714](https://github.com/zmkfirmware/zmk/issues/2714)) ([cb867f9](https://github.com/zmkfirmware/zmk/commit/cb867f92dbe4e32675c2137fc6aa914a44ecc8dc))
* **Kconfig:** Allow overriding ZMK Kconfig defaults ([#2537](https://github.com/zmkfirmware/zmk/issues/2537)) ([40925d4](https://github.com/zmkfirmware/zmk/commit/40925d48e67b3eeaeb3e848a2287ed628de9f674))
* **mouse:** Add mouse move and scroll support ([#2477](https://github.com/zmkfirmware/zmk/issues/2477)) ([6b40bfd](https://github.com/zmkfirmware/zmk/commit/6b40bfda53571f7a960ccc448aa87f29da7496ac))
* **pointing:** Add behavior input processor ([cb867f9](https://github.com/zmkfirmware/zmk/commit/cb867f92dbe4e32675c2137fc6aa914a44ecc8dc))
* **pointing:** Add pre-defined scroll scaler ([0f7c112](https://github.com/zmkfirmware/zmk/commit/0f7c11248a1ddb7c6559064c2a1e7a3c446d5d55))
* **pointing:** Add pre-defined scroll scaler and mouse scroll tests ([#2759](https://github.com/zmkfirmware/zmk/issues/2759)) ([0f7c112](https://github.com/zmkfirmware/zmk/commit/0f7c11248a1ddb7c6559064c2a1e7a3c446d5d55))
* **shields:** Add physical layout for Lotus58 ([#2753](https://github.com/zmkfirmware/zmk/issues/2753)) ([424e532](https://github.com/zmkfirmware/zmk/commit/424e53210ea16c2287abaf770ebf45be432d841a))
* **studio:** Add ortho_4x10 grid layout ([#2651](https://github.com/zmkfirmware/zmk/issues/2651)) ([7e8c542](https://github.com/zmkfirmware/zmk/commit/7e8c542c94908ac011ec7272a5f8ab10d2102632))
### Bug Fixes
* allow kscan-composite to wake up device. ([#2682](https://github.com/zmkfirmware/zmk/issues/2682)) ([a8f5ab6](https://github.com/zmkfirmware/zmk/commit/a8f5ab67b5d449a2624e2de7ddfb264da778ea6c))
* **behaviors:** Make multiple sticky keys work on same key position ([7186528](https://github.com/zmkfirmware/zmk/commit/7186528f77bf077173927c1c8506b4d434e5c371))
* **behaviors:** Make multiple sticky keys work on same key position ([#2758](https://github.com/zmkfirmware/zmk/issues/2758)) ([7186528](https://github.com/zmkfirmware/zmk/commit/7186528f77bf077173927c1c8506b4d434e5c371))
* **ble:** enforce maximum length for dynamic device name ([#2784](https://github.com/zmkfirmware/zmk/issues/2784)) ([ea267b0](https://github.com/zmkfirmware/zmk/commit/ea267b0f35f862b882ac568dde6365c3a0c85099))
* **combos:** Properly report combos len with emply block ([#2739](https://github.com/zmkfirmware/zmk/issues/2739)) ([f0a77b8](https://github.com/zmkfirmware/zmk/commit/f0a77b888ac482a863386ced08e04660ddacb026))
* **display:** Only default mono theme when 1bpp ([#2804](https://github.com/zmkfirmware/zmk/issues/2804)) ([425256b](https://github.com/zmkfirmware/zmk/commit/425256bc0de7ed08802533b170abba78ee90f546))
* **display:** POSIX lvgl fixes ([#2812](https://github.com/zmkfirmware/zmk/issues/2812)) ([4b4a8a3](https://github.com/zmkfirmware/zmk/commit/4b4a8a35f3f90f1af75cdf5d9c26b47d4b8dcabb))
* **drivers:** Proper static/const for data/config ([#2769](https://github.com/zmkfirmware/zmk/issues/2769)) ([6941abc](https://github.com/zmkfirmware/zmk/commit/6941abc2afab16502cff9c5149d8dc0fcd5112c9))
* Fix warnings in nanopb encoding code ([#2643](https://github.com/zmkfirmware/zmk/issues/2643)) ([7013158](https://github.com/zmkfirmware/zmk/commit/7013158a6715d94b34e8c471ce25bb5005f3bb49))
* Kconfig refactor now works correctly with external modules ([#2711](https://github.com/zmkfirmware/zmk/issues/2711)) ([bb48661](https://github.com/zmkfirmware/zmk/commit/bb486619a183f6df7fbb4620c80164555a22da0b))
* **Kconfig:** Added a name to EC11's trigger mode choice ([40925d4](https://github.com/zmkfirmware/zmk/commit/40925d48e67b3eeaeb3e848a2287ed628de9f674))
* **kscan:** Remove warning when keyboard is built without CONFIG_PM_DEVICE ([#2808](https://github.com/zmkfirmware/zmk/issues/2808)) ([8e065d5](https://github.com/zmkfirmware/zmk/commit/8e065d55b916481ef06ce37cddedb84cf1d15d99))
* **pointing:** Complete header rename missed in refactor ([#2702](https://github.com/zmkfirmware/zmk/issues/2702)) ([84baf92](https://github.com/zmkfirmware/zmk/commit/84baf929c9bb95f255d4bafd0e57f2ec47455fca))
* **pointing:** Temp layer threading protection. ([#2729](https://github.com/zmkfirmware/zmk/issues/2729)) ([1e3e62c](https://github.com/zmkfirmware/zmk/commit/1e3e62c13d0666d98831ee302ae2fb17e68196c9))
* **studio:** Allow adding layers after a layer move ([#2748](https://github.com/zmkfirmware/zmk/issues/2748)) ([36508c2](https://github.com/zmkfirmware/zmk/commit/36508c27fddfb84d912e0122e313ad3904ceb946))
* **studio:** Properly return complete keymap from RPC ([#2696](https://github.com/zmkfirmware/zmk/issues/2696)) ([0820991](https://github.com/zmkfirmware/zmk/commit/0820991901a95ab7a0eb1f1cc608a631d514e26c))
## 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

@@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 3.13.1)
set(CONFIG_APPLICATION_DEFINED_SYSCALL true) set(CONFIG_APPLICATION_DEFINED_SYSCALL true)
set(ZEPHYR_BOARD_ALIASES "boards/aliases.cmake")
set(ZEPHYR_EXTRA_MODULES "${ZMK_EXTRA_MODULES};${CMAKE_CURRENT_SOURCE_DIR}/module;${CMAKE_CURRENT_SOURCE_DIR}/keymap-module") set(ZEPHYR_EXTRA_MODULES "${ZMK_EXTRA_MODULES};${CMAKE_CURRENT_SOURCE_DIR}/module;${CMAKE_CURRENT_SOURCE_DIR}/keymap-module")
# Find Zephyr. This also loads Zephyr's build system. # Find Zephyr. This also loads Zephyr's build system.
@@ -16,6 +17,7 @@ if(CONFIG_ZMK_BEHAVIOR_LOCAL_IDS)
endif() endif()
zephyr_syscall_header(${APPLICATION_SOURCE_DIR}/include/drivers/behavior.h) zephyr_syscall_header(${APPLICATION_SOURCE_DIR}/include/drivers/behavior.h)
zephyr_syscall_header(${APPLICATION_SOURCE_DIR}/include/drivers/input_processor.h)
zephyr_syscall_header(${APPLICATION_SOURCE_DIR}/include/drivers/ext_power.h) zephyr_syscall_header(${APPLICATION_SOURCE_DIR}/include/drivers/ext_power.h)
# Add your source file to the "app" target. This must come after # Add your source file to the "app" target. This must come after
@@ -36,15 +38,14 @@ target_sources_ifdef(CONFIG_ZMK_GPIO_KEY_WAKEUP_TRIGGER app PRIVATE src/gpio_key
target_sources(app PRIVATE src/events/activity_state_changed.c) target_sources(app PRIVATE src/events/activity_state_changed.c)
target_sources(app PRIVATE src/events/position_state_changed.c) target_sources(app PRIVATE src/events/position_state_changed.c)
target_sources(app PRIVATE src/events/sensor_event.c) target_sources(app PRIVATE src/events/sensor_event.c)
target_sources(app PRIVATE src/events/mouse_button_state_changed.c)
target_sources_ifdef(CONFIG_ZMK_WPM app PRIVATE src/events/wpm_state_changed.c) target_sources_ifdef(CONFIG_ZMK_WPM app PRIVATE src/events/wpm_state_changed.c)
target_sources_ifdef(CONFIG_USB_DEVICE_STACK app PRIVATE src/events/usb_conn_state_changed.c) target_sources_ifdef(CONFIG_USB_DEVICE_STACK app PRIVATE src/events/usb_conn_state_changed.c)
target_sources(app PRIVATE src/behaviors/behavior_reset.c) target_sources(app PRIVATE src/behaviors/behavior_reset.c)
target_sources_ifdef(CONFIG_ZMK_EXT_POWER app PRIVATE src/behaviors/behavior_ext_power.c) target_sources_ifdef(CONFIG_ZMK_EXT_POWER app PRIVATE src/behaviors/behavior_ext_power.c)
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_SOFT_OFF app PRIVATE src/behaviors/behavior_soft_off.c) target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_SOFT_OFF app PRIVATE src/behaviors/behavior_soft_off.c)
add_subdirectory_ifdef(CONFIG_ZMK_POINTING src/pointing/)
if ((NOT CONFIG_ZMK_SPLIT) OR CONFIG_ZMK_SPLIT_ROLE_CENTRAL) if ((NOT CONFIG_ZMK_SPLIT) OR CONFIG_ZMK_SPLIT_ROLE_CENTRAL)
target_sources(app PRIVATE src/hid.c) target_sources(app PRIVATE src/hid.c)
target_sources_ifdef(CONFIG_ZMK_MOUSE app PRIVATE src/mouse.c)
target_sources(app PRIVATE src/behaviors/behavior_key_press.c) target_sources(app PRIVATE src/behaviors/behavior_key_press.c)
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_KEY_TOGGLE app PRIVATE src/behaviors/behavior_key_toggle.c) target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_KEY_TOGGLE app PRIVATE src/behaviors/behavior_key_toggle.c)
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_HOLD_TAP app PRIVATE src/behaviors/behavior_hold_tap.c) target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_HOLD_TAP app PRIVATE src/behaviors/behavior_hold_tap.c)
@@ -64,8 +65,9 @@ if ((NOT CONFIG_ZMK_SPLIT) OR CONFIG_ZMK_SPLIT_ROLE_CENTRAL)
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_SENSOR_ROTATE_COMMON app PRIVATE src/behaviors/behavior_sensor_rotate_common.c) target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_SENSOR_ROTATE_COMMON app PRIVATE src/behaviors/behavior_sensor_rotate_common.c)
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_MOUSE_KEY_PRESS app PRIVATE src/behaviors/behavior_mouse_key_press.c) target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_MOUSE_KEY_PRESS app PRIVATE src/behaviors/behavior_mouse_key_press.c)
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_STUDIO_UNLOCK app PRIVATE src/behaviors/behavior_studio_unlock.c) target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_STUDIO_UNLOCK app PRIVATE src/behaviors/behavior_studio_unlock.c)
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_INPUT_TWO_AXIS app PRIVATE src/behaviors/behavior_input_two_axis.c)
target_sources(app PRIVATE src/combo.c) target_sources(app PRIVATE src/combo.c)
target_sources(app PRIVATE src/behaviors/behavior_tap_dance.c) target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_TAP_DANCE app PRIVATE src/behaviors/behavior_tap_dance.c)
target_sources(app PRIVATE src/behavior_queue.c) target_sources(app PRIVATE src/behavior_queue.c)
target_sources(app PRIVATE src/conditional_layer.c) target_sources(app PRIVATE src/conditional_layer.c)
target_sources(app PRIVATE src/endpoints.c) target_sources(app PRIVATE src/endpoints.c)

View File

@@ -46,7 +46,7 @@ config NRF_STORE_REBOOT_TYPE_GPREGRET
bool bool
default y default y
endif endif # SOC_SERIES_NRF52X
menu "HID" menu "HID"
@@ -81,14 +81,11 @@ if ZMK_HID_REPORT_TYPE_HKRO
config ZMK_HID_KEYBOARD_REPORT_SIZE config ZMK_HID_KEYBOARD_REPORT_SIZE
int "# Keyboard Keys Reportable" int "# Keyboard Keys Reportable"
default 6
endif endif # ZMK_HID_REPORT_TYPE_HKRO
config ZMK_HID_CONSUMER_REPORT_SIZE config ZMK_HID_CONSUMER_REPORT_SIZE
int "# Consumer Keys Reportable" int "# Consumer Keys Reportable"
default 6
choice ZMK_HID_CONSUMER_REPORT_USAGES choice ZMK_HID_CONSUMER_REPORT_USAGES
prompt "HID Report Type" prompt "HID Report Type"
@@ -142,8 +139,7 @@ config USB_NUMOF_EP_WRITE_RETRIES
config USB_HID_POLL_INTERVAL_MS config USB_HID_POLL_INTERVAL_MS
default 1 default 1
#ZMK_USB endif # ZMK_USB
endif
menuconfig ZMK_BLE menuconfig ZMK_BLE
bool "BLE (HID over GATT)" bool "BLE (HID over GATT)"
@@ -153,6 +149,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
@@ -162,17 +159,14 @@ if ZMK_BLE
config ZMK_BLE_EXPERIMENTAL_CONN config ZMK_BLE_EXPERIMENTAL_CONN
bool "Experimental BLE connection changes" bool "Experimental BLE connection changes"
help help
Enables a combination of settings that are planned to be default in future versions of ZMK Enables settings that are planned to be default in future versions of ZMK
to improve connection stability. This includes changes to timing on BLE pairing initiation, to improve connection stability.
restores use of the updated/new LLCP implementation, and disables 2M PHY support.
config ZMK_BLE_EXPERIMENTAL_SEC config ZMK_BLE_EXPERIMENTAL_SEC
bool "Experimental BLE security changes" bool "Experimental BLE security changes"
imply BT_SMP_ALLOW_UNAUTH_OVERWRITE imply BT_SMP_ALLOW_UNAUTH_OVERWRITE
help help
Enables a combination of settings that are planned to be officially supported in the future. Enables security settings that are planned to be officially supported in the future.
This includes enabling BT Secure Connection passkey entry, and allows overwrite of keys from
previously paired hosts.
config ZMK_BLE_EXPERIMENTAL_FEATURES config ZMK_BLE_EXPERIMENTAL_FEATURES
bool "Experimental BLE connection and security settings/features" bool "Experimental BLE connection and security settings/features"
@@ -244,19 +238,20 @@ config BT_PERIPHERAL_PREF_LATENCY
config BT_PERIPHERAL_PREF_TIMEOUT config BT_PERIPHERAL_PREF_TIMEOUT
default 400 default 400
#ZMK_BLE # The device name should be 16 characters or less so it fits within the
endif # advertising data.
config BT_DEVICE_NAME_MAX
default 16
#Output Types endif # ZMK_BLE
endmenu
# HID endmenu # Output Types
endmenu
endmenu # HID
rsource "src/split/Kconfig" rsource "src/split/Kconfig"
#Basic Keyboard Setup endmenu # Basic Keyboard Setup
endmenu
menu "Keymaps" menu "Keymaps"
@@ -274,7 +269,7 @@ config ZMK_KEYMAP_LAYER_NAME_MAX_LEN
int "Max Layer Name Length" int "Max Layer Name Length"
default 20 default 20
endif endif # ZMK_KEYMAP_SETTINGS_STORAGE
endmenu # Keymaps endmenu # Keymaps
@@ -291,67 +286,51 @@ menuconfig ZMK_RGB_UNDERGLOW
if ZMK_RGB_UNDERGLOW if ZMK_RGB_UNDERGLOW
# This default value cuts down on tons of excess .conf files, if you're using GPIO, manually disable this
config SPI
default y
config ZMK_RGB_UNDERGLOW_EXT_POWER config ZMK_RGB_UNDERGLOW_EXT_POWER
bool "RGB underglow toggling also controls external power" bool "RGB underglow toggling also controls external power"
default y
config ZMK_RGB_UNDERGLOW_BRT_MIN config ZMK_RGB_UNDERGLOW_BRT_MIN
int "RGB underglow minimum brightness in percent" int "RGB underglow minimum brightness in percent"
range 0 100 range 0 100
default 0
config ZMK_RGB_UNDERGLOW_BRT_MAX config ZMK_RGB_UNDERGLOW_BRT_MAX
int "RGB underglow maximum brightness in percent" int "RGB underglow maximum brightness in percent"
range ZMK_RGB_UNDERGLOW_BRT_MIN 100 range ZMK_RGB_UNDERGLOW_BRT_MIN 100
default 100
config ZMK_RGB_UNDERGLOW_HUE_STEP config ZMK_RGB_UNDERGLOW_HUE_STEP
int "RGB underglow hue step in degrees" int "RGB underglow hue step in degrees"
range 0 359 range 0 359
default 10
config ZMK_RGB_UNDERGLOW_SAT_STEP config ZMK_RGB_UNDERGLOW_SAT_STEP
int "RGB underglow saturation step in percent" int "RGB underglow saturation step in percent"
range 0 100 range 0 100
default 10
config ZMK_RGB_UNDERGLOW_BRT_STEP config ZMK_RGB_UNDERGLOW_BRT_STEP
int "RGB underglow brightness step in percent" int "RGB underglow brightness step in percent"
range 0 100 range 0 100
default 10
config ZMK_RGB_UNDERGLOW_HUE_START config ZMK_RGB_UNDERGLOW_HUE_START
int "RGB underglow start hue value in degrees" int "RGB underglow start hue value in degrees"
range 0 359 range 0 359
default 0
config ZMK_RGB_UNDERGLOW_SAT_START config ZMK_RGB_UNDERGLOW_SAT_START
int "RGB underglow start saturations value in percent" int "RGB underglow start saturations value in percent"
range 0 100 range 0 100
default 100
config ZMK_RGB_UNDERGLOW_BRT_START config ZMK_RGB_UNDERGLOW_BRT_START
int "RGB underglow start brightness value in percent" int "RGB underglow start brightness value in percent"
range ZMK_RGB_UNDERGLOW_BRT_MIN ZMK_RGB_UNDERGLOW_BRT_MAX range ZMK_RGB_UNDERGLOW_BRT_MIN ZMK_RGB_UNDERGLOW_BRT_MAX
default ZMK_RGB_UNDERGLOW_BRT_MAX
config ZMK_RGB_UNDERGLOW_SPD_START config ZMK_RGB_UNDERGLOW_SPD_START
int "RGB underglow start animation speed value" int "RGB underglow start animation speed value"
range 1 5 range 1 5
default 3
config ZMK_RGB_UNDERGLOW_EFF_START config ZMK_RGB_UNDERGLOW_EFF_START
int "RGB underglow start effect int value related to the effect enum list" int "RGB underglow start effect int value related to the effect enum list"
range 0 3 range 0 3
default 0
config ZMK_RGB_UNDERGLOW_ON_START config ZMK_RGB_UNDERGLOW_ON_START
bool "RGB underglow starts on by default" bool "RGB underglow starts on by default"
default y
config ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE config ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE
bool "Turn off RGB underglow when keyboard goes into idle state" bool "Turn off RGB underglow when keyboard goes into idle state"
@@ -360,8 +339,7 @@ config ZMK_RGB_UNDERGLOW_AUTO_OFF_USB
bool "Turn off RGB underglow when USB is disconnected" bool "Turn off RGB underglow when USB is disconnected"
depends on USB_DEVICE_STACK depends on USB_DEVICE_STACK
#ZMK_RGB_UNDERGLOW endif # ZMK_RGB_UNDERGLOW
endif
menuconfig ZMK_BACKLIGHT menuconfig ZMK_BACKLIGHT
bool "LED backlight" bool "LED backlight"
@@ -372,16 +350,13 @@ if ZMK_BACKLIGHT
config ZMK_BACKLIGHT_BRT_STEP config ZMK_BACKLIGHT_BRT_STEP
int "Brightness step in percent" int "Brightness step in percent"
range 1 100 range 1 100
default 20
config ZMK_BACKLIGHT_BRT_START config ZMK_BACKLIGHT_BRT_START
int "Default brightness in percent" int "Default brightness in percent"
range 1 100 range 1 100
default 40
config ZMK_BACKLIGHT_ON_START config ZMK_BACKLIGHT_ON_START
bool "Default backlight state" bool "Default backlight state"
default y
config ZMK_BACKLIGHT_AUTO_OFF_IDLE config ZMK_BACKLIGHT_AUTO_OFF_IDLE
bool "Turn off backlight when keyboard goes into idle state" bool "Turn off backlight when keyboard goes into idle state"
@@ -389,19 +364,11 @@ config ZMK_BACKLIGHT_AUTO_OFF_IDLE
config ZMK_BACKLIGHT_AUTO_OFF_USB config ZMK_BACKLIGHT_AUTO_OFF_USB
bool "Turn off backlight when USB is disconnected" bool "Turn off backlight when USB is disconnected"
#ZMK_BACKLIGHT endif # ZMK_BACKLIGHT
endif
#Display/LED Options endmenu # Display/LED Options
endmenu
menu "Mouse Options" rsource "src/pointing/Kconfig"
config ZMK_MOUSE
bool "Enable ZMK mouse emulation"
#Mouse Options
endmenu
menu "Power Management" menu "Power Management"
@@ -423,7 +390,8 @@ config ZMK_BATTERY_REPORTING_FETCH_MODE_LITHIUM_VOLTAGE
bool "Lithium Voltage" bool "Lithium Voltage"
endchoice endchoice
endif
endif # ZMK_BATTERY_REPORTING
config ZMK_IDLE_TIMEOUT config ZMK_IDLE_TIMEOUT
int "Milliseconds of inactivity before entering idle state (OLED shutoff, etc)" int "Milliseconds of inactivity before entering idle state (OLED shutoff, etc)"
@@ -445,12 +413,10 @@ config ZMK_IDLE_SLEEP_TIMEOUT
int "Milliseconds of inactivity before entering deep sleep" int "Milliseconds of inactivity before entering deep sleep"
default 900000 default 900000
#ZMK_SLEEP endif # ZMK_SLEEP
endif
config ZMK_EXT_POWER config ZMK_EXT_POWER
bool "Enable support to control external power output" bool "Enable support to control external power output"
default y
config ZMK_PM config ZMK_PM
bool bool
@@ -472,7 +438,7 @@ config ZMK_GPIO_KEY_WAKEUP_TRIGGER
default y default y
depends on DT_HAS_ZMK_GPIO_KEY_WAKEUP_TRIGGER_ENABLED && ZMK_PM_SOFT_OFF depends on DT_HAS_ZMK_GPIO_KEY_WAKEUP_TRIGGER_ENABLED && ZMK_PM_SOFT_OFF
#Power Management # Power Management
endmenu endmenu
menu "Combo options" menu "Combo options"
@@ -489,7 +455,7 @@ config ZMK_COMBO_MAX_KEYS_PER_COMBO
int "Maximum number of keys per combo" int "Maximum number of keys per combo"
default 4 default 4
#Combo options # Combo options
endmenu endmenu
menu "Behavior Options" menu "Behavior Options"
@@ -524,8 +490,7 @@ config ZMK_USB_HID_INIT_PRIORITY
int "USB HID Init Priority" int "USB HID Init Priority"
default 95 default 95
#USB endif # USB
endif
if ZMK_BLE || ZMK_SPLIT_BLE if ZMK_BLE || ZMK_SPLIT_BLE
@@ -533,11 +498,13 @@ config ZMK_BLE_INIT_PRIORITY
int "BLE Init Priority" int "BLE Init Priority"
default 50 default 50
#ZMK_BLE || ZMK_SPLIT_BLE endif # ZMK_BLE || ZMK_SPLIT_BLE
endif
#Initialization Priorities endmenu # Initialization Priorities
endmenu
config ZMK_PHYSICAL_LAYOUT_KEY_ROTATION
bool "Support rotation of keys in physical layouts"
default y
menuconfig ZMK_KSCAN menuconfig ZMK_KSCAN
bool "ZMK KScan Integration" bool "ZMK KScan Integration"
@@ -611,8 +578,7 @@ config USB_CDC_ACM_RINGBUF_SIZE
config LOG_PROCESS_THREAD_STARTUP_DELAY_MS config LOG_PROCESS_THREAD_STARTUP_DELAY_MS
default 1000 default 1000
#ZMK_USB_LOGGING endif # ZMK_USB_LOGGING
endif
config ZMK_RTT_LOGGING config ZMK_RTT_LOGGING
bool "Enable RTT logging to help debug" bool "Enable RTT logging to help debug"
@@ -628,8 +594,7 @@ if ZMK_RTT_LOGGING
config SEGGER_RTT_BUFFER_SIZE_UP config SEGGER_RTT_BUFFER_SIZE_UP
default 8192 default 8192
#ZMK_RTT_LOGGING endif # ZMK_RTT_LOGGING
endif
if ZMK_USB_LOGGING || ZMK_RTT_LOGGING if ZMK_USB_LOGGING || ZMK_RTT_LOGGING
@@ -639,11 +604,9 @@ config LOG_BUFFER_SIZE
config LOG_PROCESS_THREAD_SLEEP_MS config LOG_PROCESS_THREAD_SLEEP_MS
default 100 default 100
#ZMK_USB_LOGGING || ZMK_RTT_LOGGING endif # ZMK_USB_LOGGING || ZMK_RTT_LOGGING
endif
#Logging endmenu # Logging
endmenu
if SETTINGS if SETTINGS
@@ -659,21 +622,17 @@ config ZMK_SETTINGS_RESET_ON_START_INIT_PRIORITY
Initialization priority for the settings reset on start. Must be lower priority/ Initialization priority for the settings reset on start. Must be lower priority/
higher value than FLASH_INIT_PRIORITY if using the NVS/Flash settings backend. higher value than FLASH_INIT_PRIORITY if using the NVS/Flash settings backend.
endif # ZMK_SETTINGS_RESET_ON_START
endif
config ZMK_SETTINGS_SAVE_DEBOUNCE config ZMK_SETTINGS_SAVE_DEBOUNCE
int "Milliseconds to debounce settings saves" int "Milliseconds to debounce settings saves"
default 60000 default 60000
#SETTINGS endif # SETTINGS
endif
config ZMK_BATTERY_REPORT_INTERVAL config ZMK_BATTERY_REPORT_INTERVAL
depends on ZMK_BATTERY_REPORTING depends on ZMK_BATTERY_REPORTING
int "Battery level report interval in seconds" int "Battery level report interval in seconds"
default 60
config ZMK_LOW_PRIORITY_WORK_QUEUE config ZMK_LOW_PRIORITY_WORK_QUEUE
bool "Work queue for low priority items" bool "Work queue for low priority items"
@@ -688,13 +647,11 @@ config ZMK_LOW_PRIORITY_THREAD_PRIORITY
int "Low priority thread priority" int "Low priority thread priority"
default 10 default 10
endif endif # ZMK_LOW_PRIORITY_WORK_QUEUE
#Advanced endmenu # Advanced
endmenu
#ZMK endmenu # ZMK
endmenu
config KERNEL_BIN_NAME config KERNEL_BIN_NAME
default "zmk" default "zmk"
@@ -739,12 +696,22 @@ module = ZMK
module-str = zmk module-str = zmk
source "subsys/logging/Kconfig.template.log_config" source "subsys/logging/Kconfig.template.log_config"
# This loads ZMK's internal board and shield Kconfigs
rsource "boards/Kconfig" rsource "boards/Kconfig"
rsource "boards/shields/*/Kconfig.defconfig" rsource "boards/shields/*/Kconfig.defconfig"
rsource "boards/shields/*/Kconfig.shield" rsource "boards/shields/*/Kconfig.shield"
# This loads custom shields defconfigs (from BOARD_ROOT)
# Duplicated from Kconfig.zephyr
osource "$(KCONFIG_BINARY_DIR)/Kconfig.shield.defconfig"
source "$(BOARD_DIR)/Kconfig.defconfig"
# This loads board and shield Kconfigs found under zmk-config/config/
osource "$(ZMK_CONFIG)/boards/shields/*/Kconfig.defconfig" osource "$(ZMK_CONFIG)/boards/shields/*/Kconfig.defconfig"
osource "$(ZMK_CONFIG)/boards/shields/*/Kconfig.shield" osource "$(ZMK_CONFIG)/boards/shields/*/Kconfig.shield"
# This loads ZMK's sensible defaults
rsource "Kconfig.defaults"
source "Kconfig.zephyr" source "Kconfig.zephyr"

View File

@@ -51,13 +51,11 @@ if ZMK_BEHAVIOR_HOLD_TAP
config ZMK_BEHAVIOR_HOLD_TAP_MAX_HELD config ZMK_BEHAVIOR_HOLD_TAP_MAX_HELD
int "Hold Tap Max Held" int "Hold Tap Max Held"
default 10
help help
Max number of simultaneously held hold-taps Max number of simultaneously held hold-taps
config ZMK_BEHAVIOR_HOLD_TAP_MAX_CAPTURED_EVENTS config ZMK_BEHAVIOR_HOLD_TAP_MAX_CAPTURED_EVENTS
int "Hold Tap Max Captured Events" int "Hold Tap Max Captured Events"
default 40
help help
Max number of captured system events while waiting to resolve hold taps Max number of captured system events while waiting to resolve hold taps
@@ -71,8 +69,7 @@ config ZMK_BEHAVIOR_KEY_TOGGLE
config ZMK_BEHAVIOR_MOUSE_KEY_PRESS config ZMK_BEHAVIOR_MOUSE_KEY_PRESS
bool bool
default y default y
depends on DT_HAS_ZMK_BEHAVIOR_MOUSE_KEY_PRESS_ENABLED depends on DT_HAS_ZMK_BEHAVIOR_MOUSE_KEY_PRESS_ENABLED && ZMK_POINTING
imply ZMK_MOUSE
config ZMK_BEHAVIOR_STICKY_KEY config ZMK_BEHAVIOR_STICKY_KEY
bool bool
@@ -83,7 +80,6 @@ if ZMK_BEHAVIOR_STICKY_KEY
config ZMK_BEHAVIOR_STICKY_KEY_MAX_HELD config ZMK_BEHAVIOR_STICKY_KEY_MAX_HELD
int "Sticky Key Max Held" int "Sticky Key Max Held"
default 10
help help
Max number of simultaneously held sticky keys Max number of simultaneously held sticky keys
@@ -94,6 +90,26 @@ config ZMK_BEHAVIOR_SOFT_OFF
default y default y
depends on DT_HAS_ZMK_BEHAVIOR_SOFT_OFF_ENABLED && ZMK_PM_SOFT_OFF depends on DT_HAS_ZMK_BEHAVIOR_SOFT_OFF_ENABLED && ZMK_PM_SOFT_OFF
config ZMK_BEHAVIOR_TAP_DANCE
bool
default y
depends on DT_HAS_ZMK_BEHAVIOR_TAP_DANCE_ENABLED
if ZMK_BEHAVIOR_TAP_DANCE
config ZMK_BEHAVIOR_TAP_DANCE_MAX_HELD
int "Tap-Dance Max Held"
help
Max number of simultaneously held taps-dances
endif
config ZMK_BEHAVIOR_INPUT_TWO_AXIS
bool
default y
depends on DT_HAS_ZMK_BEHAVIOR_INPUT_TWO_AXIS_ENABLED && ZMK_POINTING
config ZMK_BEHAVIOR_SENSOR_ROTATE_COMMON config ZMK_BEHAVIOR_SENSOR_ROTATE_COMMON
bool bool

109
app/Kconfig.defaults Normal file
View File

@@ -0,0 +1,109 @@
# Copyright (c) 2024 The ZMK Contributors
# SPDX-License-Identifier: MIT
# HID
if ZMK_HID_REPORT_TYPE_HKRO
config ZMK_HID_KEYBOARD_REPORT_SIZE
default 6
endif
config ZMK_HID_CONSUMER_REPORT_SIZE
default 6
# Behaviors
if ZMK_BEHAVIOR_HOLD_TAP
config ZMK_BEHAVIOR_HOLD_TAP_MAX_HELD
default 10
config ZMK_BEHAVIOR_HOLD_TAP_MAX_CAPTURED_EVENTS
default 40
endif
if ZMK_BEHAVIOR_STICKY_KEY
config ZMK_BEHAVIOR_STICKY_KEY_MAX_HELD
default 10
endif
if ZMK_BEHAVIOR_TAP_DANCE
config ZMK_BEHAVIOR_TAP_DANCE_MAX_HELD
default 10
endif
# Underglow
if ZMK_RGB_UNDERGLOW
# This default value cuts down on tons of excess .conf files, if you're using GPIO, manually disable this
config SPI
default y
config ZMK_RGB_UNDERGLOW_EXT_POWER
default y
config ZMK_RGB_UNDERGLOW_BRT_MIN
default 0
config ZMK_RGB_UNDERGLOW_BRT_MAX
default 100
config ZMK_RGB_UNDERGLOW_HUE_STEP
default 10
config ZMK_RGB_UNDERGLOW_SAT_STEP
default 10
config ZMK_RGB_UNDERGLOW_BRT_STEP
default 10
config ZMK_RGB_UNDERGLOW_HUE_START
default 0
config ZMK_RGB_UNDERGLOW_SAT_START
default 100
config ZMK_RGB_UNDERGLOW_BRT_START
default ZMK_RGB_UNDERGLOW_BRT_MAX
config ZMK_RGB_UNDERGLOW_SPD_START
default 3
config ZMK_RGB_UNDERGLOW_EFF_START
default 0
config ZMK_RGB_UNDERGLOW_ON_START
default y
endif # ZMK_RGB_UNDERGLOW
# Backlight
if ZMK_BACKLIGHT
config ZMK_BACKLIGHT_BRT_STEP
default 20
config ZMK_BACKLIGHT_BRT_START
default 40
config ZMK_BACKLIGHT_ON_START
default y
endif # ZMK_BACKLIGHT
# Ext_power
config ZMK_EXT_POWER
default y
# Battery
config ZMK_BATTERY_REPORT_INTERVAL
default 60
# Imports
rsource "src/split/Kconfig.defaults"

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 = 2
# x-release-please-end
# x-release-please-start-patch
PATCHLEVEL = 1
# x-release-please-end
VERSION_TWEAK = 0

2
app/boards/aliases.cmake Normal file
View File

@@ -0,0 +1,2 @@
# defines board aliases for shorter names (or for renaming boards)
set(mikoto_520_BOARD_ALIAS "mikoto")

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

@@ -2,17 +2,17 @@ config BOARD_ENABLE_DCDC
bool "Enable DCDC mode" bool "Enable DCDC mode"
select SOC_DCDC_NRF52X select SOC_DCDC_NRF52X
default y default y
depends on (BOARD_MIKOTO_520) depends on (BOARD_MIKOTO)
config BOARD_ENABLE_DCDC_HV config BOARD_ENABLE_DCDC_HV
bool "High voltage DCDC converter" bool "High voltage DCDC converter"
select SOC_DCDC_NRF52X_HV select SOC_DCDC_NRF52X_HV
default y default y
depends on (BOARD_MIKOTO_520) depends on (BOARD_MIKOTO)
choice BOARD_MIKOTO_CHARGER_CURRENT choice BOARD_MIKOTO_CHARGER_CURRENT
prompt "Charge current to supply to attached batteries" prompt "Charge current to supply to attached batteries"
depends on (BOARD_MIKOTO_520) depends on (BOARD_MIKOTO)
config BOARD_MIKOTO_CHARGER_CURRENT_40MA config BOARD_MIKOTO_CHARGER_CURRENT_40MA
bool "40mA charge current, for battery capacity 40mAh or higher" bool "40mA charge current, for battery capacity 40mAh or higher"
@@ -32,4 +32,4 @@ config BOARD_MIKOTO_CHARGER_CURRENT_350MA
config BOARD_MIKOTO_CHARGER_CURRENT_NONE config BOARD_MIKOTO_CHARGER_CURRENT_NONE
bool "Disable charge current" bool "Disable charge current"
endchoice endchoice

View File

@@ -3,6 +3,6 @@
# Copyright (c) 2020 The ZMK Contributors # Copyright (c) 2020 The ZMK Contributors
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
config BOARD_MIKOTO_520 config BOARD_MIKOTO
bool "mikoto_520" bool "mikoto"
depends on SOC_NRF52840_QIAA depends on SOC_NRF52840_QIAA

View File

@@ -3,7 +3,7 @@
# Copyright (c) 2020 The ZMK Contributors # Copyright (c) 2020 The ZMK Contributors
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
if BOARD_MIKOTO_520 if BOARD_MIKOTO
config BOARD config BOARD
default "mikoto" default "mikoto"
@@ -25,4 +25,4 @@ choice BOARD_MIKOTO_CHARGER_CURRENT
default BOARD_MIKOTO_CHARGER_CURRENT_100MA default BOARD_MIKOTO_CHARGER_CURRENT_100MA
endchoice endchoice
endif # BOARD_MIKOTO_520 endif # BOARD_MIKOTO

View File

@@ -0,0 +1,59 @@
/*
* Copyright (c) 2020 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
/ {
pro_micro: connector {
compatible = "arduino-pro-micro";
#gpio-cells = <2>;
gpio-map-mask = <0xffffffff 0xffffffc0>;
gpio-map-pass-thru = <0 0x3f>;
gpio-map
= <0 0 &gpio0 4 0> /* D0 */
, <1 0 &gpio0 8 0> /* D1 */
, <2 0 &gpio0 17 0> /* D2 */
, <3 0 &gpio0 20 0> /* D3 */
, <4 0 &gpio0 22 0> /* D4/A6 */
, <5 0 &gpio0 24 0> /* D5 */
, <6 0 &gpio1 8 0> /* D6/A7 */
, <7 0 &gpio1 2 0> /* D7 */
, <8 0 &gpio1 4 0> /* D8/A8 */
, <9 0 &gpio1 6 0> /* D9/A9 */
, <10 0 &gpio0 9 0> /* D10/A10 */
, <16 0 &gpio0 10 0> /* D16 */
, <14 0 &gpio1 13 0> /* D14 */
, <15 0 &gpio0 2 0> /* D15 */
, <18 0 &gpio0 29 0> /* D18/A0 */
, <19 0 &gpio0 31 0> /* D19/A1 */
, <20 0 &gpio0 25 0> /* D20/A2 */
, <21 0 &gpio0 11 0> /* D21/A3 */
;
};
pro_micro_a: connector_a {
compatible = "arduino-pro-micro";
#gpio-cells = <2>;
gpio-map-mask = <0xffffffff 0xffffffc0>;
gpio-map-pass-thru = <0 0x3f>;
gpio-map
= <0 0 &gpio0 29 0> /* D18/A0 */
, <1 0 &gpio0 31 0> /* D19/A1 */
, <2 0 &gpio0 25 0> /* D20/A2 */
, <3 0 &gpio0 11 0> /* D21/A3 */
, <6 0 &gpio0 22 0> /* D4/A6 */
, <7 0 &gpio1 8 0> /* D6/A7 */
, <8 0 &gpio1 4 0> /* D8/A8 */
, <9 0 &gpio1 6 0> /* D9/A9 */
, <10 0 &gpio0 9 0> /* D10/A10 */
;
};
};
pro_micro_d: &pro_micro {};
pro_micro_i2c: &i2c0 {};
pro_micro_spi: &spi0 {};
pro_micro_serial: &uart0 {};

View File

@@ -17,7 +17,7 @@
uart0_sleep: uart0_sleep { uart0_sleep: uart0_sleep {
group1 { group1 {
psels = <NRF_PSEL(UART_RX, 0, 4)>, psels = <NRF_PSEL(UART_RX, 0, 4)>,
<NRF_PSEL(UART_TX, 0, 8)>; <NRF_PSEL(UART_TX, 0, 8)>;
low-power-enable; low-power-enable;
}; };
}; };
@@ -25,14 +25,14 @@
i2c0_default: i2c0_default { i2c0_default: i2c0_default {
group1 { group1 {
psels = <NRF_PSEL(TWIM_SDA, 0, 17)>, psels = <NRF_PSEL(TWIM_SDA, 0, 17)>,
<NRF_PSEL(TWIM_SCL, 0, 20)>; <NRF_PSEL(TWIM_SCL, 0, 20)>;
}; };
}; };
i2c0_sleep: i2c0_sleep { i2c0_sleep: i2c0_sleep {
group1 { group1 {
psels = <NRF_PSEL(TWIM_SDA, 0, 17)>, psels = <NRF_PSEL(TWIM_SDA, 0, 17)>,
<NRF_PSEL(TWIM_SCL, 0, 20)>; <NRF_PSEL(TWIM_SCL, 0, 20)>;
low-power-enable; low-power-enable;
}; };
}; };

View File

@@ -6,8 +6,6 @@
/dts-v1/; /dts-v1/;
#include <nordic/nrf52840_qiaa.dtsi> #include <nordic/nrf52840_qiaa.dtsi>
#include "arduino_pro_micro_pins.dtsi"
#include "mikoto_520-pinctrl.dtsi"
/ { / {
model = "mikoto"; model = "mikoto";

View File

@@ -1,5 +1,5 @@
identifier: mikoto_520 identifier: mikoto
name: mikoto_520 name: mikoto
type: mcu type: mcu
arch: arm arch: arm
toolchain: toolchain:

View File

@@ -1,6 +1,6 @@
file_format: "1" file_format: "1"
id: mikoto_520 id: mikoto
name: Mikoto 5.20 name: Mikoto
type: board type: board
arch: arm arch: arm
outputs: outputs:
@@ -8,3 +8,9 @@ outputs:
- ble - ble
url: https://github.com/zhiayang/mikoto url: https://github.com/zhiayang/mikoto
exposes: [pro_micro] exposes: [pro_micro]
revisions:
- "5.20"
- "6.1"
- "6.3"
- "7.2"
default_revision: "5.20"

View File

@@ -0,0 +1,8 @@
/*
* Copyright (c) 2023 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include "mikoto-pinctrl.dtsi"
#include "arduino_pro_micro_pins_v5.dtsi"

View File

@@ -0,0 +1,8 @@
/*
* Copyright (c) 2023 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include "mikoto-pinctrl.dtsi"
#include "arduino_pro_micro_pins_v6.dtsi"

View File

@@ -0,0 +1,2 @@
CONFIG_I2C=y
CONFIG_ZMK_MAX17048=y

View File

@@ -0,0 +1,47 @@
/*
* Copyright (c) 2023 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include "mikoto-pinctrl.dtsi"
#include "arduino_pro_micro_pins_v6.dtsi"
&pinctrl {
i2c1_default: i2c1_default {
group1 {
psels = <NRF_PSEL(TWIM_SDA, 0, 23)>,
<NRF_PSEL(TWIM_SCL, 0, 19)>;
bias-pull-up;
};
};
i2c1_sleep: i2c1_sleep {
group1 {
psels = <NRF_PSEL(TWIM_SDA, 0, 23)>,
<NRF_PSEL(TWIM_SCL, 0, 19)>;
low-power-enable;
bias-pull-up;
};
};
};
&i2c1 {
status = "okay";
compatible = "nordic,nrf-twi";
pinctrl-0 = <&i2c1_default>;
pinctrl-1 = <&i2c1_sleep>;
pinctrl-names = "default", "sleep";
builtin_fuel_gauge: max17048@36 {
compatible = "zmk,maxim-max17048";
status = "okay";
reg = <0x36>;
};
};
/ {
chosen {
zmk,battery = &builtin_fuel_gauge;
};
};

View File

@@ -2,11 +2,10 @@
CONFIG_SOC_SERIES_NRF52X=y CONFIG_SOC_SERIES_NRF52X=y
CONFIG_SOC_NRF52840_QIAA=y CONFIG_SOC_NRF52840_QIAA=y
CONFIG_BOARD_MIKOTO_520=y CONFIG_BOARD_MIKOTO=y
# Enable MPU # Enable MPU
CONFIG_ARM_MPU=y CONFIG_ARM_MPU=y
CONFIG_PINCTRL=y CONFIG_PINCTRL=y
# enable GPIO # enable GPIO

View File

@@ -13,7 +13,7 @@
static int pinmux_mikoto_init(void) { static int pinmux_mikoto_init(void) {
#if CONFIG_BOARD_MIKOTO_520 #if CONFIG_BOARD_MIKOTO
const struct device *p0 = DEVICE_DT_GET(DT_NODELABEL(gpio0)); const struct device *p0 = DEVICE_DT_GET(DT_NODELABEL(gpio0));
const struct device *p1 = DEVICE_DT_GET(DT_NODELABEL(gpio1)); const struct device *p1 = DEVICE_DT_GET(DT_NODELABEL(gpio1));
#if CONFIG_BOARD_MIKOTO_CHARGER_CURRENT_40MA #if CONFIG_BOARD_MIKOTO_CHARGER_CURRENT_40MA

View File

@@ -0,0 +1,7 @@
board_check_revision(FORMAT MAJOR.MINOR.PATCH
DEFAULT_REVISION 5.20.0
VALID_REVISIONS
5.20.0 # first public release
6.1.0 6.3.0 # incompatible pinout change from v5+
7.2.0 # addition of MAX17048; compatible pinout with v6+
)

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>;

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