mirror of
https://github.com/zmkfirmware/zmk.git
synced 2026-03-19 20:45:18 -05:00
Compare commits
139 Commits
v0.1.0
...
dependabot
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f40e7a4441 | ||
|
|
9a8fdd66ea | ||
|
|
0b5a103c18 | ||
|
|
f09e551929 | ||
|
|
ee69b9e3c7 | ||
|
|
5144de677d | ||
|
|
5225952f96 | ||
|
|
9fcce45cb5 | ||
|
|
62007e500b | ||
|
|
ccf20a1f5c | ||
|
|
c7fae18ae1 | ||
|
|
61da930ed5 | ||
|
|
3609ac6fc8 | ||
|
|
45700887ba | ||
|
|
a8a392807e | ||
|
|
f3233c1b60 | ||
|
|
919bce7962 | ||
|
|
cc19ff7c5b | ||
|
|
90363719a2 | ||
|
|
e57bf5af37 | ||
|
|
9aaf87c6d2 | ||
|
|
edf5c0814f | ||
|
|
6c266b7123 | ||
|
|
c25e927a2f | ||
|
|
c86f0d6ff4 | ||
|
|
af967667b0 | ||
|
|
2ae5185419 | ||
|
|
1530ae36c2 | ||
|
|
1bac680c4f | ||
|
|
d09087f4dc | ||
|
|
6d7bbc8670 | ||
|
|
8059e671b2 | ||
|
|
61325ee82c | ||
|
|
342d838913 | ||
|
|
7292df02d4 | ||
|
|
fe91cc6625 | ||
|
|
cef7af4408 | ||
|
|
9e905d6593 | ||
|
|
e93cd31a58 | ||
|
|
6b44d33db2 | ||
|
|
462d48b78e | ||
|
|
eb99b4ede0 | ||
|
|
239baa4875 | ||
|
|
9da5d3ba82 | ||
|
|
f568b25e56 | ||
|
|
cb00077273 | ||
|
|
461f5c832f | ||
|
|
879cff7595 | ||
|
|
ad6a181d7e | ||
|
|
f1b944b1ef | ||
|
|
4235c8b491 | ||
|
|
e3030bfcc8 | ||
|
|
00ff486931 | ||
|
|
c4ee8ab86b | ||
|
|
d9576c5534 | ||
|
|
c6738ce2e5 | ||
|
|
2a7ab8ed0a | ||
|
|
2c0e7daced | ||
|
|
84772ebf14 | ||
|
|
7823a43f62 | ||
|
|
90bca78300 | ||
|
|
a34839f001 | ||
|
|
6f85f48b19 | ||
|
|
9aadc3e5ab | ||
|
|
1c76bcb0a1 | ||
|
|
d733fbafa5 | ||
|
|
49f86f7ed0 | ||
|
|
5bb39ec3ea | ||
|
|
147c340c6e | ||
|
|
5ba7e260f4 | ||
|
|
bffbccc748 | ||
|
|
b366df8b17 | ||
|
|
4da89bd997 | ||
|
|
5d9920406c | ||
|
|
f5a838b4bd | ||
|
|
eb170c930f | ||
|
|
241ff39556 | ||
|
|
f20e6ea759 | ||
|
|
fadafc7759 | ||
|
|
1e3e62c13d | ||
|
|
21f54e7238 | ||
|
|
7186528f77 | ||
|
|
9406d39d14 | ||
|
|
82216be635 | ||
|
|
ea267b0f35 | ||
|
|
2fe55c4c41 | ||
|
|
d2eb6de7ad | ||
|
|
209085da73 | ||
|
|
18d0d2f476 | ||
|
|
8575fc8a9d | ||
|
|
9d234cbb10 | ||
|
|
e8ec9b65f8 | ||
|
|
d0d313409b | ||
|
|
5926269ea5 | ||
|
|
eeb8a00778 | ||
|
|
aa3e5dd70f | ||
|
|
627e6dbec9 | ||
|
|
424e53210e | ||
|
|
4b4a8a35f3 | ||
|
|
0f7c11248a | ||
|
|
8e065d55b9 | ||
|
|
425256bc0d | ||
|
|
72b00b3f58 | ||
|
|
e4885d5d4c | ||
|
|
4f72e7cb25 | ||
|
|
4882a62c40 | ||
|
|
40e9e5c5fa | ||
|
|
40ea92d201 | ||
|
|
db2fc2bffd | ||
|
|
e4f1454e0b | ||
|
|
c367d8f636 | ||
|
|
6941abc2af | ||
|
|
700e9b264f | ||
|
|
8dddb1d9d7 | ||
|
|
022603ec16 | ||
|
|
b93bf6d3fd | ||
|
|
d0ee30bfaa | ||
|
|
3377ed02a8 | ||
|
|
36508c27fd | ||
|
|
e6343f44ce | ||
|
|
bc6bb90414 | ||
|
|
05abd677c5 | ||
|
|
f0a77b888a | ||
|
|
85aba16eec | ||
|
|
3f6841c95f | ||
|
|
2f172f63c2 | ||
|
|
bb486619a1 | ||
|
|
cb867f92db | ||
|
|
d0016b34f8 | ||
|
|
ec6b770947 | ||
|
|
4ef231f4bb | ||
|
|
7013158a67 | ||
|
|
a8f5ab67b5 | ||
|
|
84baf929c9 | ||
|
|
6b40bfda53 | ||
|
|
7e8c542c94 | ||
|
|
0820991901 | ||
|
|
b26058b6c7 | ||
|
|
40925d48e6 |
1
.github/pull_request_template.md
vendored
1
.github/pull_request_template.md
vendored
@@ -6,3 +6,4 @@
|
||||
- [ ] Additional tests are included, if changing behaviors/core code that is testable.
|
||||
- [ ] 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)
|
||||
- [ ] [Pre-commit](https://zmk.dev/docs/development/local-toolchain/pre-commit) used to check formatting of files, commit messages, etc.
|
||||
- [ ] Includes any necessary [documentation changes](https://zmk.dev/docs/development/contributing/documentation).
|
||||
|
||||
2
.github/workflows/ble-test.yml
vendored
2
.github/workflows/ble-test.yml
vendored
@@ -61,7 +61,7 @@ jobs:
|
||||
- name: Enable babblesim group filter
|
||||
run: west config manifest.group-filter -- +babblesim
|
||||
- name: Update modules (west update)
|
||||
run: west update
|
||||
run: west update --fetch-opt=--filter=tree:0
|
||||
- name: Export Zephyr CMake package (west zephyr-export)
|
||||
run: west zephyr-export
|
||||
- name: Build BabbleSim components
|
||||
|
||||
9
.github/workflows/build-user-config.yml
vendored
9
.github/workflows/build-user-config.yml
vendored
@@ -34,13 +34,10 @@ jobs:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install yaml2json
|
||||
run: python3 -m pip install remarshal
|
||||
|
||||
- name: Fetch Build Matrix
|
||||
run: |
|
||||
echo "build_matrix=$(yaml2json '${{ inputs.build_matrix_path }}' | jq -c .)" >> $GITHUB_ENV
|
||||
yaml2json "${{ inputs.build_matrix_path }}" | jq
|
||||
echo "build_matrix=$(yq -oj -I0 '${{ inputs.build_matrix_path }}')" >> $GITHUB_ENV
|
||||
yq -oj "${{ inputs.build_matrix_path }}"
|
||||
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -117,7 +114,7 @@ jobs:
|
||||
|
||||
- name: West Update
|
||||
working-directory: ${{ env.base_dir }}
|
||||
run: west update
|
||||
run: west update --fetch-opt=--filter=tree:0
|
||||
|
||||
- name: West Zephyr export
|
||||
working-directory: ${{ env.base_dir }}
|
||||
|
||||
24
.github/workflows/build.yml
vendored
24
.github/workflows/build.yml
vendored
@@ -53,7 +53,7 @@ jobs:
|
||||
- name: Initialize workspace (west init)
|
||||
run: west init -l app
|
||||
- name: Update modules (west update)
|
||||
run: west update
|
||||
run: west update --fetch-opt=--filter=tree:0
|
||||
- name: Export Zephyr CMake package (west zephyr-export)
|
||||
run: west zephyr-export
|
||||
- name: Use Node.js
|
||||
@@ -63,7 +63,7 @@ jobs:
|
||||
- name: Install @actions/artifact
|
||||
run: npm install @actions/artifact
|
||||
- name: Build
|
||||
uses: actions/github-script@v7
|
||||
uses: actions/github-script@v8
|
||||
id: boards-list
|
||||
with:
|
||||
script: |
|
||||
@@ -95,7 +95,7 @@ jobs:
|
||||
throw new Error('Failed to build one or more configurations');
|
||||
}
|
||||
- name: Upload artifacts
|
||||
uses: actions/github-script@v7
|
||||
uses: actions/github-script@v8
|
||||
continue-on-error: ${{ github.event_name == 'pull_request' }}
|
||||
id: boards-upload
|
||||
with:
|
||||
@@ -146,7 +146,7 @@ jobs:
|
||||
include-list: ${{ steps.compile-list.outputs.result }}
|
||||
steps:
|
||||
- name: Join build lists
|
||||
uses: actions/github-script@v7
|
||||
uses: actions/github-script@v8
|
||||
id: compile-list
|
||||
with:
|
||||
script: |
|
||||
@@ -196,7 +196,7 @@ jobs:
|
||||
node-version: "14.x"
|
||||
- name: Install js-yaml
|
||||
run: npm install js-yaml
|
||||
- uses: actions/github-script@v7
|
||||
- uses: actions/github-script@v8
|
||||
id: core-list
|
||||
with:
|
||||
script: |
|
||||
@@ -225,7 +225,7 @@ jobs:
|
||||
node-version: "14.x"
|
||||
- name: Install js-yaml
|
||||
run: npm install js-yaml
|
||||
- uses: actions/github-script@v7
|
||||
- uses: actions/github-script@v8
|
||||
id: boards-list
|
||||
with:
|
||||
script: |
|
||||
@@ -302,7 +302,7 @@ jobs:
|
||||
nightly-include: ${{ steps.nightly-list.outputs.result }}
|
||||
steps:
|
||||
- name: Create nightly list
|
||||
uses: actions/github-script@v7
|
||||
uses: actions/github-script@v8
|
||||
id: nightly-list
|
||||
with:
|
||||
script: |
|
||||
@@ -355,7 +355,7 @@ jobs:
|
||||
- name: Install js-yaml
|
||||
run: npm install js-yaml
|
||||
- name: Aggregate Metadata
|
||||
uses: actions/github-script@v7
|
||||
uses: actions/github-script@v8
|
||||
id: aggregate-metadata
|
||||
with:
|
||||
script: |
|
||||
@@ -373,7 +373,7 @@ jobs:
|
||||
result-encoding: string
|
||||
|
||||
- name: Organize Metadata
|
||||
uses: actions/github-script@v7
|
||||
uses: actions/github-script@v8
|
||||
id: organize-metadata
|
||||
with:
|
||||
script: |
|
||||
@@ -430,12 +430,12 @@ jobs:
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: tj-actions/changed-files@v45
|
||||
- uses: tj-actions/changed-files@9200e69727eb73eb060652b19946b8a2fdfb654b # pin to v45.0.8 due to https://github.com/tj-actions/changed-files/issues/2463 https://www.stepsecurity.io/blog/harden-runner-detection-tj-actions-changed-files-action-is-compromised
|
||||
id: changed-files
|
||||
with:
|
||||
json: true
|
||||
escape_json: false
|
||||
- uses: actions/github-script@v7
|
||||
- uses: actions/github-script@v8
|
||||
id: board-changes
|
||||
with:
|
||||
script: |
|
||||
@@ -443,7 +443,7 @@ jobs:
|
||||
const boardChanges = changedFiles.filter(f => f.startsWith('app/boards'));
|
||||
return boardChanges.length ? 'true' : 'false';
|
||||
result-encoding: string
|
||||
- uses: actions/github-script@v7
|
||||
- uses: actions/github-script@v8
|
||||
id: core-changes
|
||||
with:
|
||||
script: |
|
||||
|
||||
66
.github/workflows/release-please.yml
vendored
66
.github/workflows/release-please.yml
vendored
@@ -11,28 +11,70 @@ permissions:
|
||||
name: release-please
|
||||
|
||||
jobs:
|
||||
release-please:
|
||||
handle-commit:
|
||||
name: Handle new commit
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
release_created: ${{ steps.release.outputs.release_created }}
|
||||
major: ${{ steps.release.outputs.major }}
|
||||
minor: ${{ steps.release.outputs.minor }}
|
||||
patch: ${{ steps.release.outputs.patch }}
|
||||
steps:
|
||||
- uses: googleapis/release-please-action@v4
|
||||
id: release
|
||||
with:
|
||||
token: ${{ secrets.ZMK_RELEASE_PLEASE_TOKEN }}
|
||||
target-branch: ${{ github.ref_name }}
|
||||
|
||||
release-new-version:
|
||||
name: Release new version
|
||||
needs: handle-commit
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ needs.handle-commit.outputs.release_created }}
|
||||
env:
|
||||
ZMK_RELEASE_PLEASE_TOKEN: ${{ secrets.ZMK_RELEASE_PLEASE_TOKEN }}
|
||||
VERSION: v${{ needs.handle-commit.outputs.major }}.${{ needs.handle-commit.outputs.minor }}
|
||||
steps:
|
||||
- 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' }}
|
||||
|
||||
- name: Create major.minor branch
|
||||
if: ${{ needs.handle-commit.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
|
||||
git remote add gh-token-branch "https://x-access-token:$ZMK_RELEASE_PLEASE_TOKEN@github.com/${{ github.repository }}.git"
|
||||
git checkout -b $VERSION-branch
|
||||
git push gh-token-branch $VERSION-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 }}
|
||||
git remote add gh-token "https://x-access-token:$ZMK_RELEASE_PLEASE_TOKEN@github.com/${{ github.repository }}.git"
|
||||
git tag -d $VERSION || true
|
||||
git tag -a $VERSION -m "Release $VERSION"
|
||||
git push --force gh-token $VERSION
|
||||
|
||||
bump-user-config-template-version:
|
||||
name: Bump user config template version
|
||||
needs: handle-commit
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ needs.handle-commit.outputs.release_created }}
|
||||
env:
|
||||
ZMK_RELEASE_PLEASE_TOKEN: ${{ secrets.ZMK_RELEASE_PLEASE_TOKEN }}
|
||||
VERSION: v${{ needs.handle-commit.outputs.major }}.${{ needs.handle-commit.outputs.minor }}
|
||||
steps:
|
||||
- name: Bump user config template
|
||||
run: |
|
||||
if [ -z "$VERSION" ]; then
|
||||
echo "VERSION is not set, exiting."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
git clone "https://x-access-token:$ZMK_RELEASE_PLEASE_TOKEN@github.com/zmkfirmware/unified-zmk-config-template.git"
|
||||
cd unified-zmk-config-template
|
||||
git config user.name github-actions[bot]
|
||||
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
|
||||
sed -i 's/^\(\s*\)revision: .*/\1revision: '"$VERSION"'/' config/west.yml
|
||||
sed -i 's|uses: zmkfirmware/zmk/.github/workflows/build-user-config.yml@.*|uses: zmkfirmware/zmk/.github/workflows/build-user-config.yml@'"$VERSION"'|' .github/workflows/build.yml
|
||||
git add .
|
||||
git commit -m "Version bump to $VERSION"
|
||||
git push origin main
|
||||
|
||||
28
.github/workflows/stale.yml
vendored
Normal file
28
.github/workflows/stale.yml
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
name: "Mark and close stale PRs in the repo"
|
||||
on:
|
||||
schedule:
|
||||
- cron: "00 14 * * *" # runs daily at 14:00 https://crontab.guru/#00_14_*_*_*
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- uses: actions/stale@v9.1.0
|
||||
with:
|
||||
days-before-pr-stale: 300 # ~10 months
|
||||
stale-pr-label: "stale"
|
||||
stale-pr-message: >
|
||||
This PR has been automatically marked as stale because it has not
|
||||
had activity in 10 months. It will be closed in 14 days if no
|
||||
further activity occurs. Feel free to give a status update or
|
||||
re-open when it has been rebased and is ready for review (again).
|
||||
Thanks!
|
||||
days-before-pr-close: 14
|
||||
close-pr-message: >
|
||||
This PR was closed because it had no activity for over 10 months.
|
||||
Feel free to give a status update or re-open when it has been
|
||||
rebased and is ready for review (again).
|
||||
days-before-issue-stale: 1000 # ~3 years
|
||||
days-before-issue-close: -1
|
||||
ascending: true # Process older PRs first
|
||||
operations-per-run: 30 # Default value, listed here again to make it explicit
|
||||
4
.github/workflows/test.yml
vendored
4
.github/workflows/test.yml
vendored
@@ -4,12 +4,14 @@ on:
|
||||
push:
|
||||
paths:
|
||||
- ".github/workflows/test.yml"
|
||||
- "app/run-test.sh"
|
||||
- "app/tests/**"
|
||||
- "app/src/**"
|
||||
- "app/include/**"
|
||||
pull_request:
|
||||
paths:
|
||||
- ".github/workflows/test.yml"
|
||||
- "app/run-test.sh"
|
||||
- "app/tests/**"
|
||||
- "app/src/**"
|
||||
- "app/include/**"
|
||||
@@ -59,7 +61,7 @@ jobs:
|
||||
- name: Initialize workspace (west init)
|
||||
run: west init -l app
|
||||
- name: Update modules (west update)
|
||||
run: west update
|
||||
run: west update --fetch-opt=--filter=tree:0
|
||||
- name: Export Zephyr CMake package (west zephyr-export)
|
||||
run: west zephyr-export
|
||||
- name: Test ${{ matrix.test }}
|
||||
|
||||
@@ -12,8 +12,8 @@ repos:
|
||||
types_or: [c++, c]
|
||||
args:
|
||||
- -i
|
||||
- repo: https://github.com/pre-commit/mirrors-prettier
|
||||
rev: v2.7.1
|
||||
- repo: https://github.com/rbubley/mirrors-prettier
|
||||
rev: 787fb9f542b140ba0b2aced38e6a3e68021647a3
|
||||
hooks:
|
||||
- id: prettier
|
||||
exclude: |
|
||||
@@ -22,9 +22,6 @@ repos:
|
||||
CHANGELOG.md|
|
||||
.release-please-manifest.json
|
||||
)$
|
||||
# Workaround for https://github.com/pre-commit/mirrors-prettier/issues/29
|
||||
additional_dependencies:
|
||||
- prettier@2.8.7
|
||||
- repo: https://github.com/jorisroovers/gitlint
|
||||
rev: v0.19.1
|
||||
hooks:
|
||||
|
||||
@@ -1 +1 @@
|
||||
{".":"0.1.0"}
|
||||
{".":"0.3.0"}
|
||||
|
||||
1
.vscode/extensions.json
vendored
1
.vscode/extensions.json
vendored
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"recommendations": [
|
||||
"esbenp.prettier-vscode",
|
||||
"ms-python.black-formatter",
|
||||
"ms-python.python",
|
||||
"ms-vscode.cpptools",
|
||||
"plorefice.devicetree",
|
||||
|
||||
4
.vscode/settings.json
vendored
4
.vscode/settings.json
vendored
@@ -3,7 +3,7 @@
|
||||
"*.overlay": "dts",
|
||||
"*.keymap": "dts"
|
||||
},
|
||||
"python.formatting.provider": "black",
|
||||
"python.analysis.include": ["app/scripts", "zephyr/scripts"],
|
||||
"[c]": {
|
||||
"editor.formatOnSave": true
|
||||
},
|
||||
@@ -13,7 +13,7 @@
|
||||
},
|
||||
"[python]": {
|
||||
"editor.formatOnSave": true,
|
||||
"editor.defaultFormatter": "ms-python.python"
|
||||
"editor.defaultFormatter": "ms-python.black-formatter"
|
||||
},
|
||||
"[css][json][jsonc][html][markdown][yaml]": {
|
||||
"editor.formatOnSave": true,
|
||||
|
||||
94
CHANGELOG.md
94
CHANGELOG.md
@@ -1,5 +1,99 @@
|
||||
# Changelog
|
||||
|
||||
## [0.3.0](https://github.com/zmkfirmware/zmk/compare/v0.2.1...v0.3.0) (2025-08-01)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **ble:** Add function to get profile address by index ([#2992](https://github.com/zmkfirmware/zmk/issues/2992)) ([9e905d6](https://github.com/zmkfirmware/zmk/commit/9e905d65936348824588dc3f424755353ac61186))
|
||||
* **ci:** Add stale GitHub Action to automatically close stale PRs ([#2924](https://github.com/zmkfirmware/zmk/issues/2924)) ([6d7bbc8](https://github.com/zmkfirmware/zmk/commit/6d7bbc8670d175fd63e8c834feb41f80e7b52e74))
|
||||
* **display:** nice!view individual profile status ([#2265](https://github.com/zmkfirmware/zmk/issues/2265)) ([d09087f](https://github.com/zmkfirmware/zmk/commit/d09087f4dc280b8fdb1d32d63b03cc10162b89ce))
|
||||
* Full-Duplex Wired Split ([#2766](https://github.com/zmkfirmware/zmk/issues/2766)) ([147c340](https://github.com/zmkfirmware/zmk/commit/147c340c6e8d377304acfdd64dc86cf83ebdfef2))
|
||||
* **metadata:** Add metadata to the mouse_key_press behavior ([#2950](https://github.com/zmkfirmware/zmk/issues/2950)) ([239baa4](https://github.com/zmkfirmware/zmk/commit/239baa487509ace108d36f0e5c627d61a3d95f53))
|
||||
* **pointing:** Allow peripheral input processing to stop propagation ([#2844](https://github.com/zmkfirmware/zmk/issues/2844)) ([462d48b](https://github.com/zmkfirmware/zmk/commit/462d48b78edac8bedb75666699ea4fa446d2152c))
|
||||
* **shield:** Add underglow for reviung5 ([#2191](https://github.com/zmkfirmware/zmk/issues/2191)) ([ad6a181](https://github.com/zmkfirmware/zmk/commit/ad6a181d7ec34fb6e31134f6bb991a9b2d0b8f78))
|
||||
* **shields:** Add a physical layout for a_dux ([#3000](https://github.com/zmkfirmware/zmk/issues/3000)) ([7292df0](https://github.com/zmkfirmware/zmk/commit/7292df02d4b05d783f432f8658de22d940909fe4))
|
||||
* **shields:** Add physical layouts for tester_xiao and tester_pro_micro ([#2852](https://github.com/zmkfirmware/zmk/issues/2852)) ([eb170c9](https://github.com/zmkfirmware/zmk/commit/eb170c930f56e3fb3df0b813d987abfd1dc31b9a))
|
||||
* **shields:** Add tester_pro_micro layouts ([eb170c9](https://github.com/zmkfirmware/zmk/commit/eb170c930f56e3fb3df0b813d987abfd1dc31b9a))
|
||||
* **shields:** Add tester_xiao layouts ([eb170c9](https://github.com/zmkfirmware/zmk/commit/eb170c930f56e3fb3df0b813d987abfd1dc31b9a))
|
||||
* **split:** Add full-duplex wired split support ([147c340](https://github.com/zmkfirmware/zmk/commit/147c340c6e8d377304acfdd64dc86cf83ebdfef2))
|
||||
* **split:** Runtime selection of split transport ([6b44d33](https://github.com/zmkfirmware/zmk/commit/6b44d33db2f4bad7d98e475e6f7968493b05af73))
|
||||
* **split:** Runtime selection of split transport ([#2886](https://github.com/zmkfirmware/zmk/issues/2886)) ([6b44d33](https://github.com/zmkfirmware/zmk/commit/6b44d33db2f4bad7d98e475e6f7968493b05af73))
|
||||
* **split:** Suspend/resume wired UART devices. ([6b44d33](https://github.com/zmkfirmware/zmk/commit/6b44d33db2f4bad7d98e475e6f7968493b05af73))
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **behaviors:** Correct macro release state for parametrized ([1bac680](https://github.com/zmkfirmware/zmk/commit/1bac680c4fb4f07e43c01754b6f1e72dab455e50))
|
||||
* **behaviors:** Correct macro release state for parametrized macros ([#2942](https://github.com/zmkfirmware/zmk/issues/2942)) ([1bac680](https://github.com/zmkfirmware/zmk/commit/1bac680c4fb4f07e43c01754b6f1e72dab455e50))
|
||||
* **ble,hid:** Fix smooth scrolling over BLE ([#2998](https://github.com/zmkfirmware/zmk/issues/2998)) ([342d838](https://github.com/zmkfirmware/zmk/commit/342d83891301b1be53233a12c7723bb99cbe5ff6)), closes [#2957](https://github.com/zmkfirmware/zmk/issues/2957)
|
||||
* **boards:** Disable high voltage DC-DC by default ([#2995](https://github.com/zmkfirmware/zmk/issues/2995)) ([8059e67](https://github.com/zmkfirmware/zmk/commit/8059e671b24a261939401afb5a65c4fa756adc2d)), closes [#2990](https://github.com/zmkfirmware/zmk/issues/2990)
|
||||
* changed shebang to make scripts more platform independent ([#2893](https://github.com/zmkfirmware/zmk/issues/2893)) ([84772eb](https://github.com/zmkfirmware/zmk/commit/84772ebf14e5a7c67ba573a61f0a50048802c799))
|
||||
* **ci:** pin tj-actions/changed-files due to compromise ([#2874](https://github.com/zmkfirmware/zmk/issues/2874)) ([4da89bd](https://github.com/zmkfirmware/zmk/commit/4da89bd99716bf6c1d7d788f3cdaec4cee7403e9))
|
||||
* **combos:** Properly clean up all old candidates. ([#2928](https://github.com/zmkfirmware/zmk/issues/2928)) ([e3030bf](https://github.com/zmkfirmware/zmk/commit/e3030bfcc87b7f511b0ebe993fb1f1f06215982e))
|
||||
* **combos:** Restore prompts for two deprecated Kconfigs ([#2926](https://github.com/zmkfirmware/zmk/issues/2926)) ([00ff486](https://github.com/zmkfirmware/zmk/commit/00ff48693113ed74a3345aa1ac81fdea302b3a09))
|
||||
* **core:** Correctly sync BAS battery level ([#2977](https://github.com/zmkfirmware/zmk/issues/2977)) ([af96766](https://github.com/zmkfirmware/zmk/commit/af967667b0e139a963178e63028c7be341cade9e))
|
||||
* **display:** Make stock battery widget depend on the right symbol ([#2953](https://github.com/zmkfirmware/zmk/issues/2953)) ([9da5d3b](https://github.com/zmkfirmware/zmk/commit/9da5d3ba82b38b74ad798a82a838d84c52220bbe))
|
||||
* **docs:** Fix soft off waker configuration example ([#2960](https://github.com/zmkfirmware/zmk/issues/2960)) ([eb99b4e](https://github.com/zmkfirmware/zmk/commit/eb99b4ede06bc01674ce16217ebbad40bc11ec50))
|
||||
* **docs:** remove title as alt text ([#2922](https://github.com/zmkfirmware/zmk/issues/2922)) ([d9576c5](https://github.com/zmkfirmware/zmk/commit/d9576c55346acfc8eed36709aaae28f91e0d06ad))
|
||||
* Fix build with Studio and USB but not UART ([#2996](https://github.com/zmkfirmware/zmk/issues/2996)) ([cef7af4](https://github.com/zmkfirmware/zmk/commit/cef7af4408cc44c20fab93a0b2e20b3429d0a98e))
|
||||
* **hid:** Fix scroll value truncation ([#2865](https://github.com/zmkfirmware/zmk/issues/2865)) ([2c0e7da](https://github.com/zmkfirmware/zmk/commit/2c0e7daced1421c34a9d417b7d3e9bccbf0ebd7f)), closes [#2864](https://github.com/zmkfirmware/zmk/issues/2864)
|
||||
* **pointing:** Avoids mutex leak for default layer toggle event ([#2934](https://github.com/zmkfirmware/zmk/issues/2934)) ([461f5c8](https://github.com/zmkfirmware/zmk/commit/461f5c832fb8854d87dca54d113d306323697219))
|
||||
* Properly override stack size on RP2040 ([147c340](https://github.com/zmkfirmware/zmk/commit/147c340c6e8d377304acfdd64dc86cf83ebdfef2))
|
||||
* **split:** add source to battery event ([#2901](https://github.com/zmkfirmware/zmk/issues/2901)) ([6f85f48](https://github.com/zmkfirmware/zmk/commit/6f85f48b19afae04f98e9abacb36ce1425b61f78))
|
||||
* **split:** Compile and run properly in wired polling mode. ([#3012](https://github.com/zmkfirmware/zmk/issues/3012)) ([2ae5185](https://github.com/zmkfirmware/zmk/commit/2ae51854192aed92af95536f79547e2928cd1bf5))
|
||||
* **split:** Conditionally build all split code ([#2884](https://github.com/zmkfirmware/zmk/issues/2884)) ([5bb39ec](https://github.com/zmkfirmware/zmk/commit/5bb39ec3eae23055593350cb3689a8240028181e))
|
||||
* **split:** Enable wired split by default if DTS is set ([#3010](https://github.com/zmkfirmware/zmk/issues/3010)) ([1530ae3](https://github.com/zmkfirmware/zmk/commit/1530ae36c22e3e2285e895737c74de5d960a5ae4))
|
||||
* **split:** Minor wired split fixes. ([6b44d33](https://github.com/zmkfirmware/zmk/commit/6b44d33db2f4bad7d98e475e6f7968493b05af73))
|
||||
* Unconditionally define HID payloads to avoid error. ([6b44d33](https://github.com/zmkfirmware/zmk/commit/6b44d33db2f4bad7d98e475e6f7968493b05af73))
|
||||
|
||||
## [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)
|
||||
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
module.exports = {
|
||||
endOfLine: "auto",
|
||||
trailingComma: "es5",
|
||||
};
|
||||
|
||||
@@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 3.13.1)
|
||||
|
||||
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")
|
||||
|
||||
# Find Zephyr. This also loads Zephyr's build system.
|
||||
@@ -16,6 +17,7 @@ if(CONFIG_ZMK_BEHAVIOR_LOCAL_IDS)
|
||||
endif()
|
||||
|
||||
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)
|
||||
|
||||
# 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/position_state_changed.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_USB_DEVICE_STACK app PRIVATE src/events/usb_conn_state_changed.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_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)
|
||||
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_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)
|
||||
@@ -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_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_INPUT_TWO_AXIS app PRIVATE src/behaviors/behavior_input_two_axis.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/conditional_layer.c)
|
||||
target_sources(app PRIVATE src/endpoints.c)
|
||||
@@ -94,7 +96,7 @@ target_sources_ifdef(CONFIG_ZMK_BATTERY_REPORTING app PRIVATE src/battery.c)
|
||||
target_sources_ifdef(CONFIG_ZMK_HID_INDICATORS app PRIVATE src/events/hid_indicators_changed.c)
|
||||
|
||||
target_sources_ifdef(CONFIG_ZMK_SPLIT app PRIVATE src/events/split_peripheral_status_changed.c)
|
||||
add_subdirectory(src/split)
|
||||
add_subdirectory_ifdef(CONFIG_ZMK_SPLIT src/split)
|
||||
|
||||
target_sources_ifdef(CONFIG_USB_DEVICE_STACK app PRIVATE src/usb.c)
|
||||
target_sources_ifdef(CONFIG_ZMK_USB app PRIVATE src/usb_hid.c)
|
||||
|
||||
152
app/Kconfig
152
app/Kconfig
@@ -46,7 +46,7 @@ config NRF_STORE_REBOOT_TYPE_GPREGRET
|
||||
bool
|
||||
default y
|
||||
|
||||
endif
|
||||
endif # SOC_SERIES_NRF52X
|
||||
|
||||
menu "HID"
|
||||
|
||||
@@ -81,14 +81,11 @@ if ZMK_HID_REPORT_TYPE_HKRO
|
||||
|
||||
config ZMK_HID_KEYBOARD_REPORT_SIZE
|
||||
int "# Keyboard Keys Reportable"
|
||||
default 6
|
||||
|
||||
endif
|
||||
endif # ZMK_HID_REPORT_TYPE_HKRO
|
||||
|
||||
config ZMK_HID_CONSUMER_REPORT_SIZE
|
||||
int "# Consumer Keys Reportable"
|
||||
default 6
|
||||
|
||||
|
||||
choice ZMK_HID_CONSUMER_REPORT_USAGES
|
||||
prompt "HID Report Type"
|
||||
@@ -142,8 +139,7 @@ config USB_NUMOF_EP_WRITE_RETRIES
|
||||
config USB_HID_POLL_INTERVAL_MS
|
||||
default 1
|
||||
|
||||
#ZMK_USB
|
||||
endif
|
||||
endif # ZMK_USB
|
||||
|
||||
menuconfig ZMK_BLE
|
||||
bool "BLE (HID over GATT)"
|
||||
@@ -163,17 +159,14 @@ if ZMK_BLE
|
||||
config ZMK_BLE_EXPERIMENTAL_CONN
|
||||
bool "Experimental BLE connection changes"
|
||||
help
|
||||
Enables a combination of 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,
|
||||
restores use of the updated/new LLCP implementation, and disables 2M PHY support.
|
||||
Enables settings that are planned to be default in future versions of ZMK
|
||||
to improve connection stability.
|
||||
|
||||
config ZMK_BLE_EXPERIMENTAL_SEC
|
||||
bool "Experimental BLE security changes"
|
||||
imply BT_SMP_ALLOW_UNAUTH_OVERWRITE
|
||||
help
|
||||
Enables a combination of 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.
|
||||
Enables security settings that are planned to be officially supported in the future.
|
||||
|
||||
config ZMK_BLE_EXPERIMENTAL_FEATURES
|
||||
bool "Experimental BLE connection and security settings/features"
|
||||
@@ -196,10 +189,6 @@ config BT_CTLR_PHY_2M
|
||||
config BT_TINYCRYPT_ECC
|
||||
default y if BT_HCI && !BT_CTLR
|
||||
|
||||
config SYSTEM_WORKQUEUE_STACK_SIZE
|
||||
default 4096 if SOC_RP2040
|
||||
default 2048
|
||||
|
||||
config ZMK_BLE_THREAD_STACK_SIZE
|
||||
int "BLE notify thread stack size"
|
||||
default 768
|
||||
@@ -245,19 +234,20 @@ config BT_PERIPHERAL_PREF_LATENCY
|
||||
config BT_PERIPHERAL_PREF_TIMEOUT
|
||||
default 400
|
||||
|
||||
#ZMK_BLE
|
||||
endif
|
||||
# The device name should be 16 characters or less so it fits within the
|
||||
# advertising data.
|
||||
config BT_DEVICE_NAME_MAX
|
||||
default 16
|
||||
|
||||
#Output Types
|
||||
endmenu
|
||||
endif # ZMK_BLE
|
||||
|
||||
# HID
|
||||
endmenu
|
||||
endmenu # Output Types
|
||||
|
||||
endmenu # HID
|
||||
|
||||
rsource "src/split/Kconfig"
|
||||
|
||||
#Basic Keyboard Setup
|
||||
endmenu
|
||||
endmenu # Basic Keyboard Setup
|
||||
|
||||
menu "Keymaps"
|
||||
|
||||
@@ -275,7 +265,7 @@ config ZMK_KEYMAP_LAYER_NAME_MAX_LEN
|
||||
int "Max Layer Name Length"
|
||||
default 20
|
||||
|
||||
endif
|
||||
endif # ZMK_KEYMAP_SETTINGS_STORAGE
|
||||
|
||||
endmenu # Keymaps
|
||||
|
||||
@@ -292,67 +282,51 @@ menuconfig 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
|
||||
bool "RGB underglow toggling also controls external power"
|
||||
default y
|
||||
|
||||
config ZMK_RGB_UNDERGLOW_BRT_MIN
|
||||
int "RGB underglow minimum brightness in percent"
|
||||
range 0 100
|
||||
default 0
|
||||
|
||||
config ZMK_RGB_UNDERGLOW_BRT_MAX
|
||||
int "RGB underglow maximum brightness in percent"
|
||||
range ZMK_RGB_UNDERGLOW_BRT_MIN 100
|
||||
default 100
|
||||
|
||||
config ZMK_RGB_UNDERGLOW_HUE_STEP
|
||||
int "RGB underglow hue step in degrees"
|
||||
range 0 359
|
||||
default 10
|
||||
|
||||
config ZMK_RGB_UNDERGLOW_SAT_STEP
|
||||
int "RGB underglow saturation step in percent"
|
||||
range 0 100
|
||||
default 10
|
||||
|
||||
config ZMK_RGB_UNDERGLOW_BRT_STEP
|
||||
int "RGB underglow brightness step in percent"
|
||||
range 0 100
|
||||
default 10
|
||||
|
||||
config ZMK_RGB_UNDERGLOW_HUE_START
|
||||
int "RGB underglow start hue value in degrees"
|
||||
range 0 359
|
||||
default 0
|
||||
|
||||
config ZMK_RGB_UNDERGLOW_SAT_START
|
||||
int "RGB underglow start saturations value in percent"
|
||||
range 0 100
|
||||
default 100
|
||||
|
||||
config ZMK_RGB_UNDERGLOW_BRT_START
|
||||
int "RGB underglow start brightness value in percent"
|
||||
range ZMK_RGB_UNDERGLOW_BRT_MIN ZMK_RGB_UNDERGLOW_BRT_MAX
|
||||
default ZMK_RGB_UNDERGLOW_BRT_MAX
|
||||
|
||||
config ZMK_RGB_UNDERGLOW_SPD_START
|
||||
int "RGB underglow start animation speed value"
|
||||
range 1 5
|
||||
default 3
|
||||
|
||||
config ZMK_RGB_UNDERGLOW_EFF_START
|
||||
int "RGB underglow start effect int value related to the effect enum list"
|
||||
range 0 3
|
||||
default 0
|
||||
|
||||
config ZMK_RGB_UNDERGLOW_ON_START
|
||||
bool "RGB underglow starts on by default"
|
||||
default y
|
||||
|
||||
config ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE
|
||||
bool "Turn off RGB underglow when keyboard goes into idle state"
|
||||
@@ -361,8 +335,7 @@ config ZMK_RGB_UNDERGLOW_AUTO_OFF_USB
|
||||
bool "Turn off RGB underglow when USB is disconnected"
|
||||
depends on USB_DEVICE_STACK
|
||||
|
||||
#ZMK_RGB_UNDERGLOW
|
||||
endif
|
||||
endif # ZMK_RGB_UNDERGLOW
|
||||
|
||||
menuconfig ZMK_BACKLIGHT
|
||||
bool "LED backlight"
|
||||
@@ -373,16 +346,13 @@ if ZMK_BACKLIGHT
|
||||
config ZMK_BACKLIGHT_BRT_STEP
|
||||
int "Brightness step in percent"
|
||||
range 1 100
|
||||
default 20
|
||||
|
||||
config ZMK_BACKLIGHT_BRT_START
|
||||
int "Default brightness in percent"
|
||||
range 1 100
|
||||
default 40
|
||||
|
||||
config ZMK_BACKLIGHT_ON_START
|
||||
bool "Default backlight state"
|
||||
default y
|
||||
|
||||
config ZMK_BACKLIGHT_AUTO_OFF_IDLE
|
||||
bool "Turn off backlight when keyboard goes into idle state"
|
||||
@@ -390,19 +360,11 @@ config ZMK_BACKLIGHT_AUTO_OFF_IDLE
|
||||
config ZMK_BACKLIGHT_AUTO_OFF_USB
|
||||
bool "Turn off backlight when USB is disconnected"
|
||||
|
||||
#ZMK_BACKLIGHT
|
||||
endif
|
||||
endif # ZMK_BACKLIGHT
|
||||
|
||||
#Display/LED Options
|
||||
endmenu
|
||||
endmenu # Display/LED Options
|
||||
|
||||
menu "Mouse Options"
|
||||
|
||||
config ZMK_MOUSE
|
||||
bool "Enable ZMK mouse emulation"
|
||||
|
||||
#Mouse Options
|
||||
endmenu
|
||||
rsource "src/pointing/Kconfig"
|
||||
|
||||
menu "Power Management"
|
||||
|
||||
@@ -424,7 +386,8 @@ config ZMK_BATTERY_REPORTING_FETCH_MODE_LITHIUM_VOLTAGE
|
||||
bool "Lithium Voltage"
|
||||
|
||||
endchoice
|
||||
endif
|
||||
|
||||
endif # ZMK_BATTERY_REPORTING
|
||||
|
||||
config ZMK_IDLE_TIMEOUT
|
||||
int "Milliseconds of inactivity before entering idle state (OLED shutoff, etc)"
|
||||
@@ -446,12 +409,10 @@ config ZMK_IDLE_SLEEP_TIMEOUT
|
||||
int "Milliseconds of inactivity before entering deep sleep"
|
||||
default 900000
|
||||
|
||||
#ZMK_SLEEP
|
||||
endif
|
||||
endif # ZMK_SLEEP
|
||||
|
||||
config ZMK_EXT_POWER
|
||||
bool "Enable support to control external power output"
|
||||
default y
|
||||
|
||||
config ZMK_PM
|
||||
bool
|
||||
@@ -473,7 +434,7 @@ config ZMK_GPIO_KEY_WAKEUP_TRIGGER
|
||||
default y
|
||||
depends on DT_HAS_ZMK_GPIO_KEY_WAKEUP_TRIGGER_ENABLED && ZMK_PM_SOFT_OFF
|
||||
|
||||
#Power Management
|
||||
# Power Management
|
||||
endmenu
|
||||
|
||||
menu "Combo options"
|
||||
@@ -483,14 +444,18 @@ config ZMK_COMBO_MAX_PRESSED_COMBOS
|
||||
default 4
|
||||
|
||||
config ZMK_COMBO_MAX_COMBOS_PER_KEY
|
||||
int "Maximum number of combos per key"
|
||||
default 5
|
||||
int "Deprecated: Max combos per key"
|
||||
default 0
|
||||
help
|
||||
Deprecated: Storage for combos is now determined automatically
|
||||
|
||||
config ZMK_COMBO_MAX_KEYS_PER_COMBO
|
||||
int "Maximum number of keys per combo"
|
||||
default 4
|
||||
int "Deprecated: Max keys per combo"
|
||||
default 0
|
||||
help
|
||||
Deprecated: This is now auto-calculated based on `key-positions` in devicetree
|
||||
|
||||
#Combo options
|
||||
# Combo options
|
||||
endmenu
|
||||
|
||||
menu "Behavior Options"
|
||||
@@ -525,8 +490,7 @@ config ZMK_USB_HID_INIT_PRIORITY
|
||||
int "USB HID Init Priority"
|
||||
default 95
|
||||
|
||||
#USB
|
||||
endif
|
||||
endif # USB
|
||||
|
||||
if ZMK_BLE || ZMK_SPLIT_BLE
|
||||
|
||||
@@ -534,11 +498,13 @@ config ZMK_BLE_INIT_PRIORITY
|
||||
int "BLE Init Priority"
|
||||
default 50
|
||||
|
||||
#ZMK_BLE || ZMK_SPLIT_BLE
|
||||
endif
|
||||
endif # ZMK_BLE || ZMK_SPLIT_BLE
|
||||
|
||||
#Initialization Priorities
|
||||
endmenu
|
||||
endmenu # Initialization Priorities
|
||||
|
||||
config ZMK_PHYSICAL_LAYOUT_KEY_ROTATION
|
||||
bool "Support rotation of keys in physical layouts"
|
||||
default y
|
||||
|
||||
menuconfig ZMK_KSCAN
|
||||
bool "ZMK KScan Integration"
|
||||
@@ -612,8 +578,7 @@ config USB_CDC_ACM_RINGBUF_SIZE
|
||||
config LOG_PROCESS_THREAD_STARTUP_DELAY_MS
|
||||
default 1000
|
||||
|
||||
#ZMK_USB_LOGGING
|
||||
endif
|
||||
endif # ZMK_USB_LOGGING
|
||||
|
||||
config ZMK_RTT_LOGGING
|
||||
bool "Enable RTT logging to help debug"
|
||||
@@ -629,8 +594,7 @@ if ZMK_RTT_LOGGING
|
||||
config SEGGER_RTT_BUFFER_SIZE_UP
|
||||
default 8192
|
||||
|
||||
#ZMK_RTT_LOGGING
|
||||
endif
|
||||
endif # ZMK_RTT_LOGGING
|
||||
|
||||
if ZMK_USB_LOGGING || ZMK_RTT_LOGGING
|
||||
|
||||
@@ -640,11 +604,9 @@ config LOG_BUFFER_SIZE
|
||||
config LOG_PROCESS_THREAD_SLEEP_MS
|
||||
default 100
|
||||
|
||||
#ZMK_USB_LOGGING || ZMK_RTT_LOGGING
|
||||
endif
|
||||
endif # ZMK_USB_LOGGING || ZMK_RTT_LOGGING
|
||||
|
||||
#Logging
|
||||
endmenu
|
||||
endmenu # Logging
|
||||
|
||||
if SETTINGS
|
||||
|
||||
@@ -660,21 +622,17 @@ config ZMK_SETTINGS_RESET_ON_START_INIT_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.
|
||||
|
||||
|
||||
endif
|
||||
|
||||
endif # ZMK_SETTINGS_RESET_ON_START
|
||||
|
||||
config ZMK_SETTINGS_SAVE_DEBOUNCE
|
||||
int "Milliseconds to debounce settings saves"
|
||||
default 60000
|
||||
|
||||
#SETTINGS
|
||||
endif
|
||||
endif # SETTINGS
|
||||
|
||||
config ZMK_BATTERY_REPORT_INTERVAL
|
||||
depends on ZMK_BATTERY_REPORTING
|
||||
int "Battery level report interval in seconds"
|
||||
default 60
|
||||
|
||||
config ZMK_LOW_PRIORITY_WORK_QUEUE
|
||||
bool "Work queue for low priority items"
|
||||
@@ -689,13 +647,11 @@ config ZMK_LOW_PRIORITY_THREAD_PRIORITY
|
||||
int "Low priority thread priority"
|
||||
default 10
|
||||
|
||||
endif
|
||||
endif # ZMK_LOW_PRIORITY_WORK_QUEUE
|
||||
|
||||
#Advanced
|
||||
endmenu
|
||||
endmenu # Advanced
|
||||
|
||||
#ZMK
|
||||
endmenu
|
||||
endmenu # ZMK
|
||||
|
||||
config KERNEL_BIN_NAME
|
||||
default "zmk"
|
||||
@@ -740,12 +696,22 @@ module = ZMK
|
||||
module-str = zmk
|
||||
source "subsys/logging/Kconfig.template.log_config"
|
||||
|
||||
# This loads ZMK's internal board and shield Kconfigs
|
||||
rsource "boards/Kconfig"
|
||||
rsource "boards/shields/*/Kconfig.defconfig"
|
||||
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.shield"
|
||||
|
||||
# This loads ZMK's sensible defaults
|
||||
rsource "Kconfig.defaults"
|
||||
|
||||
source "Kconfig.zephyr"
|
||||
|
||||
@@ -51,13 +51,11 @@ if ZMK_BEHAVIOR_HOLD_TAP
|
||||
|
||||
config ZMK_BEHAVIOR_HOLD_TAP_MAX_HELD
|
||||
int "Hold Tap Max Held"
|
||||
default 10
|
||||
help
|
||||
Max number of simultaneously held hold-taps
|
||||
|
||||
config ZMK_BEHAVIOR_HOLD_TAP_MAX_CAPTURED_EVENTS
|
||||
int "Hold Tap Max Captured Events"
|
||||
default 40
|
||||
help
|
||||
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
|
||||
bool
|
||||
default y
|
||||
depends on DT_HAS_ZMK_BEHAVIOR_MOUSE_KEY_PRESS_ENABLED
|
||||
imply ZMK_MOUSE
|
||||
depends on DT_HAS_ZMK_BEHAVIOR_MOUSE_KEY_PRESS_ENABLED && ZMK_POINTING
|
||||
|
||||
config ZMK_BEHAVIOR_STICKY_KEY
|
||||
bool
|
||||
@@ -83,7 +80,6 @@ if ZMK_BEHAVIOR_STICKY_KEY
|
||||
|
||||
config ZMK_BEHAVIOR_STICKY_KEY_MAX_HELD
|
||||
int "Sticky Key Max Held"
|
||||
default 10
|
||||
help
|
||||
Max number of simultaneously held sticky keys
|
||||
|
||||
@@ -94,6 +90,26 @@ config ZMK_BEHAVIOR_SOFT_OFF
|
||||
default y
|
||||
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
|
||||
bool
|
||||
|
||||
|
||||
113
app/Kconfig.defaults
Normal file
113
app/Kconfig.defaults
Normal file
@@ -0,0 +1,113 @@
|
||||
# Copyright (c) 2024 The ZMK Contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
config SYSTEM_WORKQUEUE_STACK_SIZE
|
||||
default 2048 if SOC_RP2040
|
||||
default 2048 if ZMK_BLE
|
||||
|
||||
# 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"
|
||||
@@ -3,7 +3,7 @@ VERSION_MAJOR = 0
|
||||
# x-release-please-end
|
||||
|
||||
# x-release-please-start-minor
|
||||
VERSION_MINOR = 1
|
||||
VERSION_MINOR = 3
|
||||
# x-release-please-end
|
||||
|
||||
# x-release-please-start-patch
|
||||
|
||||
2
app/boards/aliases.cmake
Normal file
2
app/boards/aliases.cmake
Normal file
@@ -0,0 +1,2 @@
|
||||
# defines board aliases for shorter names (or for renaming boards)
|
||||
set(mikoto_520_BOARD_ALIAS "mikoto")
|
||||
@@ -6,7 +6,7 @@ if BOARD_GLOVE80_LH
|
||||
config BOARD
|
||||
default "glove80 lh"
|
||||
|
||||
config ZMK_SPLIT_BLE_ROLE_CENTRAL
|
||||
config ZMK_SPLIT_ROLE_CENTRAL
|
||||
default y
|
||||
|
||||
endif # BOARD_GLOVE80_LH
|
||||
|
||||
@@ -2,17 +2,17 @@ config BOARD_ENABLE_DCDC
|
||||
bool "Enable DCDC mode"
|
||||
select SOC_DCDC_NRF52X
|
||||
default y
|
||||
depends on (BOARD_MIKOTO_520)
|
||||
depends on (BOARD_MIKOTO)
|
||||
|
||||
config BOARD_ENABLE_DCDC_HV
|
||||
bool "High voltage DCDC converter"
|
||||
select SOC_DCDC_NRF52X_HV
|
||||
default y
|
||||
depends on (BOARD_MIKOTO_520)
|
||||
default n
|
||||
depends on (BOARD_MIKOTO)
|
||||
|
||||
choice BOARD_MIKOTO_CHARGER_CURRENT
|
||||
prompt "Charge current to supply to attached batteries"
|
||||
depends on (BOARD_MIKOTO_520)
|
||||
depends on (BOARD_MIKOTO)
|
||||
|
||||
config BOARD_MIKOTO_CHARGER_CURRENT_40MA
|
||||
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
|
||||
bool "Disable charge current"
|
||||
|
||||
endchoice
|
||||
endchoice
|
||||
|
||||
@@ -3,6 +3,6 @@
|
||||
# Copyright (c) 2020 The ZMK Contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
config BOARD_MIKOTO_520
|
||||
bool "mikoto_520"
|
||||
config BOARD_MIKOTO
|
||||
bool "mikoto"
|
||||
depends on SOC_NRF52840_QIAA
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# Copyright (c) 2020 The ZMK Contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
if BOARD_MIKOTO_520
|
||||
if BOARD_MIKOTO
|
||||
|
||||
config BOARD
|
||||
default "mikoto"
|
||||
@@ -25,4 +25,4 @@ choice BOARD_MIKOTO_CHARGER_CURRENT
|
||||
default BOARD_MIKOTO_CHARGER_CURRENT_100MA
|
||||
endchoice
|
||||
|
||||
endif # BOARD_MIKOTO_520
|
||||
endif # BOARD_MIKOTO
|
||||
|
||||
59
app/boards/arm/mikoto/arduino_pro_micro_pins_v6.dtsi
Normal file
59
app/boards/arm/mikoto/arduino_pro_micro_pins_v6.dtsi
Normal 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 {};
|
||||
@@ -17,7 +17,7 @@
|
||||
uart0_sleep: uart0_sleep {
|
||||
group1 {
|
||||
psels = <NRF_PSEL(UART_RX, 0, 4)>,
|
||||
<NRF_PSEL(UART_TX, 0, 8)>;
|
||||
<NRF_PSEL(UART_TX, 0, 8)>;
|
||||
low-power-enable;
|
||||
};
|
||||
};
|
||||
@@ -25,14 +25,14 @@
|
||||
i2c0_default: i2c0_default {
|
||||
group1 {
|
||||
psels = <NRF_PSEL(TWIM_SDA, 0, 17)>,
|
||||
<NRF_PSEL(TWIM_SCL, 0, 20)>;
|
||||
<NRF_PSEL(TWIM_SCL, 0, 20)>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c0_sleep: i2c0_sleep {
|
||||
group1 {
|
||||
psels = <NRF_PSEL(TWIM_SDA, 0, 17)>,
|
||||
<NRF_PSEL(TWIM_SCL, 0, 20)>;
|
||||
<NRF_PSEL(TWIM_SCL, 0, 20)>;
|
||||
low-power-enable;
|
||||
};
|
||||
};
|
||||
@@ -6,8 +6,6 @@
|
||||
|
||||
/dts-v1/;
|
||||
#include <nordic/nrf52840_qiaa.dtsi>
|
||||
#include "arduino_pro_micro_pins.dtsi"
|
||||
#include "mikoto_520-pinctrl.dtsi"
|
||||
|
||||
/ {
|
||||
model = "mikoto";
|
||||
@@ -1,5 +1,5 @@
|
||||
identifier: mikoto_520
|
||||
name: mikoto_520
|
||||
identifier: mikoto
|
||||
name: mikoto
|
||||
type: mcu
|
||||
arch: arm
|
||||
toolchain:
|
||||
@@ -1,6 +1,6 @@
|
||||
file_format: "1"
|
||||
id: mikoto_520
|
||||
name: Mikoto 5.20
|
||||
id: mikoto
|
||||
name: Mikoto
|
||||
type: board
|
||||
arch: arm
|
||||
outputs:
|
||||
@@ -8,3 +8,9 @@ outputs:
|
||||
- ble
|
||||
url: https://github.com/zhiayang/mikoto
|
||||
exposes: [pro_micro]
|
||||
revisions:
|
||||
- "5.20"
|
||||
- "6.1"
|
||||
- "6.3"
|
||||
- "7.2"
|
||||
default_revision: "5.20"
|
||||
8
app/boards/arm/mikoto/mikoto_5_20_0.overlay
Normal file
8
app/boards/arm/mikoto/mikoto_5_20_0.overlay
Normal 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"
|
||||
8
app/boards/arm/mikoto/mikoto_6_1_0.overlay
Normal file
8
app/boards/arm/mikoto/mikoto_6_1_0.overlay
Normal 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"
|
||||
2
app/boards/arm/mikoto/mikoto_7_2_0.conf
Normal file
2
app/boards/arm/mikoto/mikoto_7_2_0.conf
Normal file
@@ -0,0 +1,2 @@
|
||||
CONFIG_I2C=y
|
||||
CONFIG_ZMK_MAX17048=y
|
||||
47
app/boards/arm/mikoto/mikoto_7_2_0.overlay
Normal file
47
app/boards/arm/mikoto/mikoto_7_2_0.overlay
Normal 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;
|
||||
};
|
||||
};
|
||||
@@ -2,11 +2,10 @@
|
||||
|
||||
CONFIG_SOC_SERIES_NRF52X=y
|
||||
CONFIG_SOC_NRF52840_QIAA=y
|
||||
CONFIG_BOARD_MIKOTO_520=y
|
||||
CONFIG_BOARD_MIKOTO=y
|
||||
|
||||
# Enable MPU
|
||||
CONFIG_ARM_MPU=y
|
||||
|
||||
CONFIG_PINCTRL=y
|
||||
|
||||
# enable GPIO
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
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 *p1 = DEVICE_DT_GET(DT_NODELABEL(gpio1));
|
||||
#if CONFIG_BOARD_MIKOTO_CHARGER_CURRENT_40MA
|
||||
|
||||
7
app/boards/arm/mikoto/revision.cmake
Normal file
7
app/boards/arm/mikoto/revision.cmake
Normal 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+
|
||||
)
|
||||
@@ -9,5 +9,5 @@ config BOARD_ENABLE_DCDC
|
||||
config BOARD_ENABLE_DCDC_HV
|
||||
bool "High voltage DCDC converter"
|
||||
select SOC_DCDC_NRF52X_HV
|
||||
default y
|
||||
default n
|
||||
depends on (BOARD_NICE_NANO_V2)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
file_format: "1"
|
||||
id: seeeduino_xiao
|
||||
name: Seeeduino XIAO
|
||||
name: Seeed Studio XIAO SAMD21
|
||||
type: board
|
||||
arch: arm
|
||||
outputs:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
file_format: "1"
|
||||
id: seeeduino_xiao_ble
|
||||
name: Seeeduino XIAO BLE
|
||||
name: Seeed Studio XIAO nRF52840
|
||||
type: board
|
||||
arch: arm
|
||||
outputs:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
file_format: "1"
|
||||
id: seeeduino_xiao_rp2040
|
||||
name: Seeeduino XIAO RP2040
|
||||
name: Seeed Studio XIAO RP2040
|
||||
type: board
|
||||
arch: arm
|
||||
outputs:
|
||||
|
||||
@@ -5,9 +5,9 @@ type: interconnect
|
||||
url: https://wiki.seeedstudio.com/Seeeduino-XIAO/
|
||||
manufacturer: Seeed
|
||||
description: |
|
||||
The Seeed(uino) XIAO is a popular smaller format micro-controller, that has gained popularity as an alternative
|
||||
The Seeed Studio XIAO is a popular smaller format micro-controller, that has gained popularity as an alternative
|
||||
to the SparkFun Pro Micro. Since its creation, several pin compatible controllers, such
|
||||
as the Seeeduino XIAO BLE, Adafruit QT Py and Adafruit QT Py RP2040, have become available.
|
||||
as the Seeed Studio XIAO nRF52840 (also known as XIAO BLE), Adafruit QT Py and Adafruit QT Py RP2040, have become available.
|
||||
node_labels:
|
||||
gpio: xiao_d
|
||||
i2c: xiao_i2c
|
||||
|
||||
12
app/boards/nrf52840dongle_nrf52840.conf
Normal file
12
app/boards/nrf52840dongle_nrf52840.conf
Normal file
@@ -0,0 +1,12 @@
|
||||
# Copyright (c) 2025 The ZMK Contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
CONFIG_ZMK_BLE=y
|
||||
CONFIG_ZMK_USB=y
|
||||
|
||||
CONFIG_MPU_ALLOW_FLASH_WRITE=y
|
||||
CONFIG_NVS=y
|
||||
CONFIG_SETTINGS_NVS=y
|
||||
CONFIG_FLASH=y
|
||||
CONFIG_FLASH_PAGE_LAYOUT=y
|
||||
CONFIG_FLASH_MAP=y
|
||||
@@ -3,3 +3,10 @@ CONFIG_SERIAL=n
|
||||
CONFIG_UART_CONSOLE=n
|
||||
CONFIG_UART_INTERRUPT_DRIVEN=n
|
||||
CONFIG_ZMK_USB=y
|
||||
|
||||
CONFIG_MPU_ALLOW_FLASH_WRITE=y
|
||||
CONFIG_NVS=y
|
||||
CONFIG_SETTINGS_NVS=y
|
||||
CONFIG_FLASH=y
|
||||
CONFIG_FLASH_PAGE_LAYOUT=y
|
||||
CONFIG_FLASH_MAP=y
|
||||
15
app/boards/rpi_pico.overlay
Normal file
15
app/boards/rpi_pico.overlay
Normal file
@@ -0,0 +1,15 @@
|
||||
|
||||
&uart0 { status = "disabled"; };
|
||||
|
||||
&code_partition {
|
||||
reg = <0x100 (DT_SIZE_M(2) - 0x100 - DT_SIZE_K(512))>;
|
||||
};
|
||||
|
||||
&flash0 {
|
||||
partitions {
|
||||
storage_partition: partition@180000 {
|
||||
reg = <0x180000 DT_SIZE_K(512)>;
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
};
|
||||
50
app/boards/shields/a_dux/a_dux-layouts.dtsi
Normal file
50
app/boards/shields/a_dux/a_dux-layouts.dtsi
Normal file
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Copyright (c) 2025 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
#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 133 0 0 0>
|
||||
, <&key_physical_attrs 100 100 100 31 0 0 0>
|
||||
, <&key_physical_attrs 100 100 200 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 300 28 0 0 0>
|
||||
, <&key_physical_attrs 100 100 400 42 0 0 0>
|
||||
, <&key_physical_attrs 100 100 800 42 0 0 0>
|
||||
, <&key_physical_attrs 100 100 900 28 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1000 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1100 31 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1200 133 0 0 0>
|
||||
, <&key_physical_attrs 100 100 0 233 0 0 0>
|
||||
, <&key_physical_attrs 100 100 100 131 0 0 0>
|
||||
, <&key_physical_attrs 100 100 200 100 0 0 0>
|
||||
, <&key_physical_attrs 100 100 300 128 0 0 0>
|
||||
, <&key_physical_attrs 100 100 400 142 0 0 0>
|
||||
, <&key_physical_attrs 100 100 800 142 0 0 0>
|
||||
, <&key_physical_attrs 100 100 900 128 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1000 100 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1100 131 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1200 233 0 0 0>
|
||||
, <&key_physical_attrs 100 100 0 333 0 0 0>
|
||||
, <&key_physical_attrs 100 100 100 231 0 0 0>
|
||||
, <&key_physical_attrs 100 100 200 200 0 0 0>
|
||||
, <&key_physical_attrs 100 100 300 228 0 0 0>
|
||||
, <&key_physical_attrs 100 100 400 242 0 0 0>
|
||||
, <&key_physical_attrs 100 100 800 242 0 0 0>
|
||||
, <&key_physical_attrs 100 100 900 228 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1000 200 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1100 231 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1200 333 0 0 0>
|
||||
, <&key_physical_attrs 100 100 400 375 0 0 0>
|
||||
, <&key_physical_attrs 100 100 500 400 0 0 0>
|
||||
, <&key_physical_attrs 100 100 700 400 0 0 0>
|
||||
, <&key_physical_attrs 100 100 800 375 0 0 0>
|
||||
;
|
||||
};
|
||||
};
|
||||
@@ -5,12 +5,18 @@
|
||||
*/
|
||||
|
||||
#include <dt-bindings/zmk/matrix_transform.h>
|
||||
#include "a_dux-layouts.dtsi"
|
||||
|
||||
&physical_layout0 {
|
||||
transform = <&default_transform>;
|
||||
};
|
||||
|
||||
|
||||
/ {
|
||||
|
||||
chosen {
|
||||
zmk,kscan = &kscan0;
|
||||
zmk,matrix-transform = &default_transform;
|
||||
zmk,physical-layout = &physical_layout0;
|
||||
};
|
||||
|
||||
default_transform: keymap_transform_0 {
|
||||
@@ -49,5 +55,4 @@
|
||||
<&pro_micro 9 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||
;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
71
app/boards/shields/lotus58/lotus58-layouts.dtsi
Normal file
71
app/boards/shields/lotus58/lotus58-layouts.dtsi
Normal file
@@ -0,0 +1,71 @@
|
||||
#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 37 0 0 0>
|
||||
, <&key_physical_attrs 100 100 200 12 0 0 0>
|
||||
, <&key_physical_attrs 100 100 300 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 400 12 0 0 0>
|
||||
, <&key_physical_attrs 100 100 500 25 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1050 25 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1150 12 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1250 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1350 12 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1450 37 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1550 50 0 0 0>
|
||||
, <&key_physical_attrs 100 100 0 150 0 0 0>
|
||||
, <&key_physical_attrs 100 100 100 137 0 0 0>
|
||||
, <&key_physical_attrs 100 100 200 112 0 0 0>
|
||||
, <&key_physical_attrs 100 100 300 100 0 0 0>
|
||||
, <&key_physical_attrs 100 100 400 112 0 0 0>
|
||||
, <&key_physical_attrs 100 100 500 125 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1050 125 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1150 112 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1250 100 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1350 112 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1450 137 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1550 150 0 0 0>
|
||||
, <&key_physical_attrs 100 100 0 250 0 0 0>
|
||||
, <&key_physical_attrs 100 100 100 237 0 0 0>
|
||||
, <&key_physical_attrs 100 100 200 212 0 0 0>
|
||||
, <&key_physical_attrs 100 100 300 200 0 0 0>
|
||||
, <&key_physical_attrs 100 100 400 212 0 0 0>
|
||||
, <&key_physical_attrs 100 100 500 225 0 0 0>
|
||||
, <&key_physical_attrs 100 100 625 75 0 0 0>
|
||||
, <&key_physical_attrs 100 100 925 75 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1050 225 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1150 212 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1250 200 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1350 212 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1450 237 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1550 250 0 0 0>
|
||||
, <&key_physical_attrs 100 100 0 350 0 0 0>
|
||||
, <&key_physical_attrs 100 100 100 337 0 0 0>
|
||||
, <&key_physical_attrs 100 100 200 312 0 0 0>
|
||||
, <&key_physical_attrs 100 100 300 300 0 0 0>
|
||||
, <&key_physical_attrs 100 100 400 312 0 0 0>
|
||||
, <&key_physical_attrs 100 100 500 325 0 0 0>
|
||||
, <&key_physical_attrs 100 100 625 275 0 0 0>
|
||||
, <&key_physical_attrs 100 100 925 275 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1050 325 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1150 312 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1250 300 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1350 312 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1450 337 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1550 350 0 0 0>
|
||||
, <&key_physical_attrs 100 100 250 412 0 0 0>
|
||||
, <&key_physical_attrs 100 100 350 415 0 0 0>
|
||||
, <&key_physical_attrs 100 100 450 425 0 0 0>
|
||||
, <&key_physical_attrs 100 150 575 400 3000 625 475>
|
||||
, <&key_physical_attrs 100 150 975 400 (-3000) 1025 475>
|
||||
, <&key_physical_attrs 100 100 1100 425 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1200 415 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1300 415 0 0 0>
|
||||
;
|
||||
};
|
||||
};
|
||||
@@ -6,17 +6,19 @@
|
||||
|
||||
#include <dt-bindings/zmk/matrix_transform.h>
|
||||
|
||||
#include "lotus58-layouts.dtsi"
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
zephyr,display = &oled;
|
||||
zmk,kscan = &kscan0;
|
||||
zmk,matrix-transform = &default_transform;
|
||||
zmk,physical-layout = &physical_layout0;
|
||||
};
|
||||
|
||||
default_transform: keymap_transform_0 {
|
||||
compatible = "zmk,matrix-transform";
|
||||
columns = <16>;
|
||||
rows = <4>;
|
||||
rows = <5>;
|
||||
// | SW6 | SW5 | SW4 | SW3 | SW2 | SW1 | | SW1 | SW2 | SW3 | SW4 | SW5 | SW6 |
|
||||
// | SW12 | SW11 | SW10 | SW9 | SW8 | SW7 | | SW7 | SW8 | SW9 | SW10 | SW11 | SW12 |
|
||||
// | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 | SW30 | | SW30 | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 |
|
||||
@@ -68,6 +70,10 @@ RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,5) RC(4,6) RC(3,6) RC(3,7
|
||||
};
|
||||
};
|
||||
|
||||
&physical_layout0 {
|
||||
transform = <&default_transform>;
|
||||
};
|
||||
|
||||
&pro_micro_i2c {
|
||||
status = "okay";
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ features:
|
||||
- keys
|
||||
- display
|
||||
- encoder
|
||||
- studio
|
||||
siblings:
|
||||
- lotus58_left
|
||||
- lotus58_right
|
||||
|
||||
@@ -4,9 +4,21 @@ The nice!view is a low-power, high refresh rate display meant to replace I2C OLE
|
||||
|
||||
This shield requires that an `&nice_view_spi` labeled SPI bus is provided with _at least_ MOSI, SCK, and CS pins defined.
|
||||
|
||||
## Custom widget
|
||||
|
||||
The nice!view shield includes a custom vertical widget.
|
||||
|
||||
Profile indicators show the status of the first five BLE profiles using numbers from 1 to 5.
|
||||
The number corresponding to the currently selected profile is drawn in a filled disk
|
||||
and the circle outline around each profile number correspond to the following states:
|
||||
|
||||
- solid outline: connected
|
||||
- dashed outline: not connected
|
||||
- no outline: not bound
|
||||
|
||||
## Disable custom widget
|
||||
|
||||
The nice!view shield includes a custom vertical widget. To use the built-in ZMK one, add the following item to your `.conf` file:
|
||||
To use the built-in ZMK widget instead of the custom nice!view one, add the following item to your `.conf` file:
|
||||
|
||||
```
|
||||
CONFIG_ZMK_DISPLAY_STATUS_SCREEN_BUILT_IN=y
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
*
|
||||
* Copyright (c) 2023 The ZMK Contributors
|
||||
* Copyright (c) 2025 The ZMK Contributors
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
@@ -33,6 +33,8 @@ struct output_status_state {
|
||||
int active_profile_index;
|
||||
bool active_profile_connected;
|
||||
bool active_profile_bonded;
|
||||
bool profiles_connected[NICEVIEW_PROFILE_COUNT];
|
||||
bool profiles_bonded[NICEVIEW_PROFILE_COUNT];
|
||||
};
|
||||
|
||||
struct layer_status_state {
|
||||
@@ -142,15 +144,24 @@ static void draw_middle(lv_obj_t *widget, lv_color_t cbuf[], const struct status
|
||||
lv_canvas_draw_rect(canvas, 0, 0, CANVAS_SIZE, CANVAS_SIZE, &rect_black_dsc);
|
||||
|
||||
// Draw circles
|
||||
int circle_offsets[5][2] = {
|
||||
int circle_offsets[NICEVIEW_PROFILE_COUNT][2] = {
|
||||
{13, 13}, {55, 13}, {34, 34}, {13, 55}, {55, 55},
|
||||
};
|
||||
|
||||
for (int i = 0; i < 5; i++) {
|
||||
for (int i = 0; i < NICEVIEW_PROFILE_COUNT; i++) {
|
||||
bool selected = i == state->active_profile_index;
|
||||
|
||||
lv_canvas_draw_arc(canvas, circle_offsets[i][0], circle_offsets[i][1], 13, 0, 360,
|
||||
&arc_dsc);
|
||||
if (state->profiles_connected[i]) {
|
||||
lv_canvas_draw_arc(canvas, circle_offsets[i][0], circle_offsets[i][1], 13, 0, 360,
|
||||
&arc_dsc);
|
||||
} else if (state->profiles_bonded[i]) {
|
||||
const int segments = 8;
|
||||
const int gap = 20;
|
||||
for (int j = 0; j < segments; ++j)
|
||||
lv_canvas_draw_arc(canvas, circle_offsets[i][0], circle_offsets[i][1], 13,
|
||||
360. / segments * j + gap / 2.0,
|
||||
360. / segments * (j + 1) - gap / 2.0, &arc_dsc);
|
||||
}
|
||||
|
||||
if (selected) {
|
||||
lv_canvas_draw_arc(canvas, circle_offsets[i][0], circle_offsets[i][1], 9, 0, 359,
|
||||
@@ -234,6 +245,10 @@ static void set_output_status(struct zmk_widget_status *widget,
|
||||
widget->state.active_profile_index = state->active_profile_index;
|
||||
widget->state.active_profile_connected = state->active_profile_connected;
|
||||
widget->state.active_profile_bonded = state->active_profile_bonded;
|
||||
for (int i = 0; i < NICEVIEW_PROFILE_COUNT; ++i) {
|
||||
widget->state.profiles_connected[i] = state->profiles_connected[i];
|
||||
widget->state.profiles_bonded[i] = state->profiles_bonded[i];
|
||||
}
|
||||
|
||||
draw_top(widget->obj, widget->cbuf, &widget->state);
|
||||
draw_middle(widget->obj, widget->cbuf2, &widget->state);
|
||||
@@ -245,12 +260,17 @@ static void output_status_update_cb(struct output_status_state state) {
|
||||
}
|
||||
|
||||
static struct output_status_state output_status_get_state(const zmk_event_t *_eh) {
|
||||
return (struct output_status_state){
|
||||
struct output_status_state state = {
|
||||
.selected_endpoint = zmk_endpoints_selected(),
|
||||
.active_profile_index = zmk_ble_active_profile_index(),
|
||||
.active_profile_connected = zmk_ble_active_profile_is_connected(),
|
||||
.active_profile_bonded = !zmk_ble_active_profile_is_open(),
|
||||
};
|
||||
for (int i = 0; i < MIN(NICEVIEW_PROFILE_COUNT, ZMK_BLE_PROFILE_COUNT); ++i) {
|
||||
state.profiles_connected[i] = zmk_ble_profile_is_connected(i);
|
||||
state.profiles_bonded[i] = !zmk_ble_profile_is_open(i);
|
||||
}
|
||||
return state;
|
||||
}
|
||||
|
||||
ZMK_DISPLAY_WIDGET_LISTENER(widget_output_status, struct output_status_state,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
*
|
||||
* Copyright (c) 2023 The ZMK Contributors
|
||||
* Copyright (c) 2025 The ZMK Contributors
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
@@ -8,6 +8,8 @@
|
||||
#include <lvgl.h>
|
||||
#include <zmk/endpoints.h>
|
||||
|
||||
#define NICEVIEW_PROFILE_COUNT 5
|
||||
|
||||
#define CANVAS_SIZE 68
|
||||
|
||||
#define LVGL_BACKGROUND \
|
||||
@@ -23,6 +25,8 @@ struct status_state {
|
||||
int active_profile_index;
|
||||
bool active_profile_connected;
|
||||
bool active_profile_bonded;
|
||||
bool profiles_connected[NICEVIEW_PROFILE_COUNT];
|
||||
bool profiles_bonded[NICEVIEW_PROFILE_COUNT];
|
||||
uint8_t layer_index;
|
||||
const char *layer_label;
|
||||
uint8_t wpm[10];
|
||||
|
||||
52
app/boards/shields/reviung5/boards/nice_nano_v2.overlay
Normal file
52
app/boards/shields/reviung5/boards/nice_nano_v2.overlay
Normal file
@@ -0,0 +1,52 @@
|
||||
/*
|
||||
* Copyright (c) 2024 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include <dt-bindings/led/led.h>
|
||||
|
||||
&pinctrl {
|
||||
spi3_default: spi3_default {
|
||||
group1 {
|
||||
psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;
|
||||
};
|
||||
};
|
||||
|
||||
spi3_sleep: spi3_sleep {
|
||||
group1 {
|
||||
psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;
|
||||
low-power-enable;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&spi3 {
|
||||
compatible = "nordic,nrf-spim";
|
||||
status = "okay";
|
||||
|
||||
pinctrl-0 = <&spi3_default>;
|
||||
pinctrl-1 = <&spi3_sleep>;
|
||||
pinctrl-names = "default", "sleep";
|
||||
|
||||
led_strip: ws2812@0 {
|
||||
compatible = "worldsemi,ws2812-spi";
|
||||
|
||||
/* SPI */
|
||||
reg = <0>; /* ignored, but necessary for SPI bindings */
|
||||
spi-max-frequency = <4000000>;
|
||||
|
||||
/* WS2812 */
|
||||
chain-length = <4>;
|
||||
spi-one-frame = <0x70>;
|
||||
spi-zero-frame = <0x40>;
|
||||
|
||||
color-mapping = <LED_COLOR_ID_GREEN LED_COLOR_ID_RED LED_COLOR_ID_BLUE>;
|
||||
};
|
||||
};
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
zmk,underglow = &led_strip;
|
||||
};
|
||||
};
|
||||
@@ -1,3 +1,7 @@
|
||||
# Encoder support. Uncomment to enable.
|
||||
# Uncomment the following two lines to add support for encoders
|
||||
# CONFIG_EC11=y
|
||||
# CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y
|
||||
|
||||
# Uncomment the following two lines to enable RGB underglow
|
||||
# CONFIG_ZMK_RGB_UNDERGLOW=y
|
||||
# CONFIG_WS2812_STRIP=y
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2022 The ZMK Contributors
|
||||
* Copyright (c) 2024 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
@@ -8,20 +8,31 @@
|
||||
#include <dt-bindings/zmk/keys.h>
|
||||
#include <dt-bindings/zmk/bt.h>
|
||||
#include <dt-bindings/zmk/outputs.h>
|
||||
#include <dt-bindings/zmk/rgb.h>
|
||||
|
||||
#define BASE 0
|
||||
#define BLE 1
|
||||
#define RGB 2
|
||||
|
||||
/ {
|
||||
|
||||
behaviors {
|
||||
rgb_encoder: rgb_encoder {
|
||||
compatible = "zmk,behavior-sensor-rotate";
|
||||
#sensor-binding-cells = <0>;
|
||||
bindings = <&rgb_ug RGB_BRI>, <&rgb_ug RGB_BRD>;
|
||||
};
|
||||
};
|
||||
|
||||
keymap {
|
||||
compatible = "zmk,keymap";
|
||||
|
||||
base_layer {
|
||||
display-name = "BASE";
|
||||
bindings = <
|
||||
// ╭─────────────┬──────────────┬──────────────────┬─────────────┬─────────────╮
|
||||
&mo BLE &kp C_PREVIOUS &kp C_PLAY_PAUSE &kp C_NEXT &kp C_MUTE
|
||||
// ╰─────────────┴──────────────┴──────────────────┴─────────────┴─────────────╯
|
||||
// ╭─────────┬────────────────┬──────────────────┬────────────┬────────────────╮
|
||||
&mo BLE &kp C_PREVIOUS &kp C_PLAY_PAUSE &kp C_NEXT < RGB C_MUTE
|
||||
// ╰─────────┴────────────────┴──────────────────┴────────────┴────────────────╯
|
||||
>;
|
||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
||||
};
|
||||
@@ -29,10 +40,20 @@
|
||||
ble_layer {
|
||||
display-name = "BLE";
|
||||
bindings = <
|
||||
// ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮
|
||||
&trans &out OUT_TOG &bt BT_PRV &bt BT_NXT &bt BT_CLR
|
||||
// ╰─────────────┴─────────────┴─────────────┴─────────────┴─────────────╯
|
||||
// ╭────────┬──────────────┬────────────┬────────────┬────────────╮
|
||||
&trans &out OUT_TOG &bt BT_PRV &bt BT_NXT &bt BT_CLR
|
||||
// ╰────────┴──────────────┴────────────┴────────────┴────────────╯
|
||||
>;
|
||||
};
|
||||
|
||||
rgb_layer {
|
||||
display-name = "RGB";
|
||||
bindings = <
|
||||
// ╭──────────────────┬─────────────────┬─────────────────┬──────────────────────────────────┬────────╮
|
||||
&rgb_ug RGB_TOG &rgb_ug RGB_EFR &rgb_ug RGB_EFF &rgb_ug RGB_COLOR_HSB(307,89,98) &trans
|
||||
// ╰──────────────────┴─────────────────┴─────────────────┴──────────────────────────────────┴────────╯
|
||||
>;
|
||||
sensor-bindings = <&rgb_encoder>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -7,3 +7,4 @@ requires: [pro_micro]
|
||||
features:
|
||||
- keys
|
||||
- encoder
|
||||
- underglow
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
/*
|
||||
* Copyright (c) 2025 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include <physical_layouts.dtsi>
|
||||
|
||||
/ {
|
||||
tester_position_map {
|
||||
compatible = "zmk,physical-layout-position-map";
|
||||
complete;
|
||||
|
||||
pinout_map: pinout_positions {
|
||||
physical-layout = <&physical_layout0>;
|
||||
positions = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17>;
|
||||
};
|
||||
inline_map: single_row_positions {
|
||||
physical-layout = <&physical_layout1>;
|
||||
positions = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17>;
|
||||
};
|
||||
};
|
||||
|
||||
physical_layout0: physical_layout_0 {
|
||||
compatible = "zmk,physical-layout";
|
||||
display-name = "Pro Micro Pinout";
|
||||
|
||||
// Map key positions to the Pro Micro pinout. The coordinate
|
||||
// deltas jump around a little because some of the Pro Micro
|
||||
// pins are out of order: D0 is "after" D1 and D16 is "before"
|
||||
// D14.
|
||||
keys // w h x y rot rx ry
|
||||
= <&key_physical_attrs 100 100 0 100 0 0 0> // D0
|
||||
, <&key_physical_attrs 100 100 0 0 0 0 0> // D1
|
||||
, <&key_physical_attrs 100 100 0 400 0 0 0> // D2
|
||||
, <&key_physical_attrs 100 100 0 500 0 0 0> // D3
|
||||
, <&key_physical_attrs 100 100 0 600 0 0 0> // D4
|
||||
, <&key_physical_attrs 100 100 0 700 0 0 0> // D5
|
||||
, <&key_physical_attrs 100 100 0 800 0 0 0> // D6
|
||||
, <&key_physical_attrs 100 100 0 900 0 0 0> // D7
|
||||
, <&key_physical_attrs 100 100 0 1000 0 0 0> // D8
|
||||
, <&key_physical_attrs 100 100 0 1100 0 0 0> // D9
|
||||
, <&key_physical_attrs 100 100 600 1100 0 0 0> // D10
|
||||
, <&key_physical_attrs 100 100 600 900 0 0 0> // D14
|
||||
, <&key_physical_attrs 100 100 600 800 0 0 0> // D15
|
||||
, <&key_physical_attrs 100 100 600 1000 0 0 0> // D16
|
||||
, <&key_physical_attrs 100 100 600 700 0 0 0> // D18
|
||||
, <&key_physical_attrs 100 100 600 600 0 0 0> // D19
|
||||
, <&key_physical_attrs 100 100 600 500 0 0 0> // D20
|
||||
, <&key_physical_attrs 100 100 600 400 0 0 0> // D21
|
||||
;
|
||||
};
|
||||
|
||||
physical_layout1: physical_layout_1 {
|
||||
compatible = "zmk,physical-layout";
|
||||
display-name = "Single Row";
|
||||
|
||||
// Single row of eighteen "keys", in ascending "Arduino" order.
|
||||
keys // w h x y rot rx ry
|
||||
= <&key_physical_attrs 100 100 0 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 100 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 200 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 300 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 400 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 500 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 600 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 700 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 800 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 900 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1000 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1100 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1200 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 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1700 0 0 0 0>
|
||||
;
|
||||
};
|
||||
};
|
||||
@@ -1,9 +1,18 @@
|
||||
#include <dt-bindings/zmk/matrix_transform.h>
|
||||
#include "tester_pro_micro-layouts.dtsi"
|
||||
|
||||
&physical_layout0 {
|
||||
transform = <&transform0>;
|
||||
};
|
||||
|
||||
&physical_layout1 {
|
||||
transform = <&transform0>;
|
||||
};
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
zmk,kscan = &kscan0;
|
||||
zmk,matrix-transform = &transform0;
|
||||
zmk,physical-layout = &physical_layout0;
|
||||
};
|
||||
|
||||
kscan0: kscan {
|
||||
@@ -41,4 +50,4 @@
|
||||
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(0,15) RC(0,16) RC(0,17)
|
||||
>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
12
app/boards/shields/tester_rpi_pico/Kconfig.defconfig
Normal file
12
app/boards/shields/tester_rpi_pico/Kconfig.defconfig
Normal file
@@ -0,0 +1,12 @@
|
||||
if SHIELD_TESTER_RPI_PICO
|
||||
|
||||
config ZMK_KEYBOARD_NAME
|
||||
default "ZMK Tester"
|
||||
|
||||
config ZMK_BLE
|
||||
def_bool n
|
||||
|
||||
config SETTINGS
|
||||
def_bool n
|
||||
|
||||
endif
|
||||
2
app/boards/shields/tester_rpi_pico/Kconfig.shield
Normal file
2
app/boards/shields/tester_rpi_pico/Kconfig.shield
Normal file
@@ -0,0 +1,2 @@
|
||||
config SHIELD_TESTER_RPI_PICO
|
||||
def_bool $(shields_list_contains,tester_rpi_pico)
|
||||
@@ -0,0 +1,95 @@
|
||||
/*
|
||||
* Copyright (c) 2025 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include <physical_layouts.dtsi>
|
||||
|
||||
/ {
|
||||
tester_position_map {
|
||||
compatible = "zmk,physical-layout-position-map";
|
||||
complete;
|
||||
|
||||
pinout_map: pinout_positions {
|
||||
physical-layout = <&physical_layout0>;
|
||||
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>;
|
||||
};
|
||||
inline_map: single_row_positions {
|
||||
physical-layout = <&physical_layout1>;
|
||||
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>;
|
||||
};
|
||||
};
|
||||
|
||||
physical_layout0: physical_layout_0 {
|
||||
compatible = "zmk,physical-layout";
|
||||
display-name = "Rpi Pico Pinout";
|
||||
|
||||
kscan = <&kscan0>;
|
||||
transform = <&matrix_transform0>;
|
||||
|
||||
keys // w h x y rot rx ry
|
||||
= <&key_physical_attrs 100 100 0 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 0 100 0 0 0>
|
||||
, <&key_physical_attrs 100 100 0 300 0 0 0>
|
||||
, <&key_physical_attrs 100 100 0 400 0 0 0>
|
||||
, <&key_physical_attrs 100 100 0 500 0 0 0>
|
||||
, <&key_physical_attrs 100 100 0 600 0 0 0>
|
||||
, <&key_physical_attrs 100 100 0 800 0 0 0>
|
||||
, <&key_physical_attrs 100 100 0 900 0 0 0>
|
||||
, <&key_physical_attrs 100 100 0 1000 0 0 0>
|
||||
, <&key_physical_attrs 100 100 0 1100 0 0 0>
|
||||
, <&key_physical_attrs 100 100 0 1300 0 0 0>
|
||||
, <&key_physical_attrs 100 100 0 1400 0 0 0>
|
||||
, <&key_physical_attrs 100 100 0 1500 0 0 0>
|
||||
, <&key_physical_attrs 100 100 0 1600 0 0 0>
|
||||
, <&key_physical_attrs 100 100 0 1800 0 0 0>
|
||||
, <&key_physical_attrs 100 100 0 1900 0 0 0>
|
||||
, <&key_physical_attrs 100 100 600 1900 0 0 0>
|
||||
, <&key_physical_attrs 100 100 600 1800 0 0 0>
|
||||
, <&key_physical_attrs 100 100 600 1600 0 0 0>
|
||||
, <&key_physical_attrs 100 100 600 1500 0 0 0>
|
||||
, <&key_physical_attrs 100 100 600 1400 0 0 0>
|
||||
, <&key_physical_attrs 100 100 600 1300 0 0 0>
|
||||
, <&key_physical_attrs 100 100 600 1100 0 0 0>
|
||||
, <&key_physical_attrs 100 100 600 900 0 0 0>
|
||||
, <&key_physical_attrs 100 100 600 800 0 0 0>
|
||||
, <&key_physical_attrs 100 100 600 600 0 0 0>
|
||||
;
|
||||
};
|
||||
|
||||
physical_layout1: physical_layout_1 {
|
||||
compatible = "zmk,physical-layout";
|
||||
display-name = "Single Row";
|
||||
|
||||
// Single row of eighteen "keys", in ascending "Arduino" order.
|
||||
keys // w h x y rot rx ry
|
||||
= <&key_physical_attrs 100 100 0 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 100 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 200 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 300 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 400 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 500 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 600 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 700 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 800 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 900 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1000 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1100 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1200 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 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1700 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1800 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1900 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 2000 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 2100 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 2200 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 2300 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 2400 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 2500 0 0 0 0>
|
||||
;
|
||||
};
|
||||
};
|
||||
77
app/boards/shields/tester_rpi_pico/tester_rpi_pico.keymap
Normal file
77
app/boards/shields/tester_rpi_pico/tester_rpi_pico.keymap
Normal file
@@ -0,0 +1,77 @@
|
||||
#include <behaviors.dtsi>
|
||||
#include <dt-bindings/zmk/keys.h>
|
||||
|
||||
#define PIN_MACRO(name, pin) \
|
||||
/ { \
|
||||
macros { \
|
||||
name: name { \
|
||||
compatible = "zmk,behavior-macro"; \
|
||||
wait-ms = <5>; \
|
||||
tap-ms = <5>; \
|
||||
#binding-cells = <0>; \
|
||||
bindings = <&kp P &kp I &kp N &kp SPACE>, pin, <&kp ENTER>; \
|
||||
}; \
|
||||
}; \
|
||||
};
|
||||
|
||||
PIN_MACRO(pin0, <&kp N0>)
|
||||
PIN_MACRO(pin1, <&kp N1>)
|
||||
PIN_MACRO(pin2, <&kp N2>)
|
||||
PIN_MACRO(pin3, <&kp N3>)
|
||||
PIN_MACRO(pin4, <&kp N4>)
|
||||
PIN_MACRO(pin5, <&kp N5>)
|
||||
PIN_MACRO(pin6, <&kp N6>)
|
||||
PIN_MACRO(pin7, <&kp N7>)
|
||||
PIN_MACRO(pin8, <&kp N8>)
|
||||
PIN_MACRO(pin9, <&kp N9>)
|
||||
PIN_MACRO(pin10, <&kp N1 &kp N0>)
|
||||
PIN_MACRO(pin11, <&kp N1 &kp N1>)
|
||||
PIN_MACRO(pin12, <&kp N1 &kp N2>)
|
||||
PIN_MACRO(pin13, <&kp N1 &kp N3>)
|
||||
PIN_MACRO(pin14, <&kp N1 &kp N4>)
|
||||
PIN_MACRO(pin15, <&kp N1 &kp N5>)
|
||||
PIN_MACRO(pin16, <&kp N1 &kp N6>)
|
||||
PIN_MACRO(pin17, <&kp N1 &kp N7>)
|
||||
PIN_MACRO(pin18, <&kp N1 &kp N8>)
|
||||
PIN_MACRO(pin19, <&kp N1 &kp N9>)
|
||||
PIN_MACRO(pin20, <&kp N2 &kp N0>)
|
||||
PIN_MACRO(pin21, <&kp N2 &kp N1>)
|
||||
PIN_MACRO(pin22, <&kp N2 &kp N2>)
|
||||
PIN_MACRO(pin26, <&kp N2 &kp N6>)
|
||||
PIN_MACRO(pin27, <&kp N2 &kp N7>)
|
||||
PIN_MACRO(pin28, <&kp N2 &kp N8>)
|
||||
|
||||
/ {
|
||||
keymap {
|
||||
compatible = "zmk,keymap";
|
||||
|
||||
default_layer {
|
||||
bindings = <&pin0
|
||||
&pin1
|
||||
&pin2
|
||||
&pin3
|
||||
&pin4
|
||||
&pin5
|
||||
&pin6
|
||||
&pin7
|
||||
&pin8
|
||||
&pin9
|
||||
&pin10
|
||||
&pin11
|
||||
&pin12
|
||||
&pin13
|
||||
&pin14
|
||||
&pin15
|
||||
&pin16
|
||||
&pin17
|
||||
&pin18
|
||||
&pin19
|
||||
&pin20
|
||||
&pin21
|
||||
&pin22
|
||||
&pin26
|
||||
&pin27
|
||||
&pin28>;
|
||||
};
|
||||
};
|
||||
};
|
||||
63
app/boards/shields/tester_rpi_pico/tester_rpi_pico.overlay
Normal file
63
app/boards/shields/tester_rpi_pico/tester_rpi_pico.overlay
Normal file
@@ -0,0 +1,63 @@
|
||||
#include <dt-bindings/zmk/matrix_transform.h>
|
||||
#include "tester_rpi_pico-layouts.dtsi"
|
||||
|
||||
&physical_layout0 {
|
||||
transform = <&transform0>;
|
||||
};
|
||||
|
||||
&physical_layout1 {
|
||||
transform = <&transform0>;
|
||||
};
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
zmk,kscan = &kscan0;
|
||||
zmk,physical-layout = &physical_layout0;
|
||||
};
|
||||
|
||||
kscan0: kscan {
|
||||
compatible = "zmk,kscan-gpio-direct";
|
||||
wakeup-source;
|
||||
debounce-press-ms = <10>;
|
||||
debounce-release-ms = <10>;
|
||||
input-gpios
|
||||
= <&pico_header 0 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||
, <&pico_header 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||
, <&pico_header 2 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||
, <&pico_header 3 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||
, <&pico_header 4 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||
, <&pico_header 5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||
, <&pico_header 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||
, <&pico_header 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||
, <&pico_header 8 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||
, <&pico_header 9 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||
, <&pico_header 10 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||
, <&pico_header 11 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||
, <&pico_header 12 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||
, <&pico_header 13 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||
, <&pico_header 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||
, <&pico_header 15 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||
, <&pico_header 16 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||
, <&pico_header 17 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||
, <&pico_header 18 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||
, <&pico_header 19 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||
, <&pico_header 20 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||
, <&pico_header 21 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||
, <&pico_header 22 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||
, <&pico_header 26 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||
, <&pico_header 27 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||
, <&pico_header 28 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||
;
|
||||
};
|
||||
|
||||
transform0: keymap_transform {
|
||||
compatible = "zmk,matrix-transform";
|
||||
columns = <26>;
|
||||
rows = <1>;
|
||||
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(0,15) RC(0,16) RC(0,17) RC(0,18) RC(0,19)
|
||||
RC(0,20) RC(0,21) RC(0,22) RC(0,23) RC(0,24) RC(0,25)
|
||||
>;
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,6 @@
|
||||
file_format: "1"
|
||||
id: tester_rpi_pico
|
||||
name: TesterRpiPico
|
||||
type: shield
|
||||
url: https://zmk.dev/docs/troubleshooting/hardware-issues
|
||||
requires: [rpi_pico]
|
||||
66
app/boards/shields/tester_xiao/tester_xiao-layouts.dtsi
Normal file
66
app/boards/shields/tester_xiao/tester_xiao-layouts.dtsi
Normal file
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
* Copyright (c) 2025 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include <physical_layouts.dtsi>
|
||||
|
||||
// The tester might not have any physical keys at all, so these
|
||||
// physical layouts are pretty much imaginary.
|
||||
|
||||
/ {
|
||||
tester_position_map {
|
||||
compatible = "zmk,physical-layout-position-map";
|
||||
complete;
|
||||
|
||||
pinout_map: pinout_positions {
|
||||
physical-layout = <&physical_layout0>;
|
||||
positions = <0 1 2 3 4 5 6 7 8 9 10>;
|
||||
};
|
||||
inline_map: single_row_positions {
|
||||
physical-layout = <&physical_layout1>;
|
||||
positions = <0 1 2 3 4 5 6 7 8 9 10>;
|
||||
};
|
||||
};
|
||||
|
||||
physical_layout0: physical_layout_0 {
|
||||
compatible = "zmk,physical-layout";
|
||||
display-name = "XIAO Pinout";
|
||||
|
||||
// Map key positions to the XIAO pinout.
|
||||
keys // w h x y rot rx ry
|
||||
= <&key_physical_attrs 100 100 0 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 0 100 0 0 0>
|
||||
, <&key_physical_attrs 100 100 0 200 0 0 0>
|
||||
, <&key_physical_attrs 100 100 0 300 0 0 0>
|
||||
, <&key_physical_attrs 100 100 0 400 0 0 0>
|
||||
, <&key_physical_attrs 100 100 0 500 0 0 0>
|
||||
, <&key_physical_attrs 100 100 0 600 0 0 0>
|
||||
, <&key_physical_attrs 100 100 600 600 0 0 0>
|
||||
, <&key_physical_attrs 100 100 600 500 0 0 0>
|
||||
, <&key_physical_attrs 100 100 600 400 0 0 0>
|
||||
, <&key_physical_attrs 100 100 600 300 0 0 0>
|
||||
;
|
||||
};
|
||||
|
||||
physical_layout1: physical_layout_1 {
|
||||
compatible = "zmk,physical-layout";
|
||||
display-name = "Single Row";
|
||||
|
||||
// Single row of eleven "keys".
|
||||
keys // w h x y rot rx ry
|
||||
= <&key_physical_attrs 100 100 0 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 100 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 200 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 300 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 400 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 500 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 600 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 700 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 800 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 900 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 1000 0 0 0 0>
|
||||
;
|
||||
};
|
||||
};
|
||||
@@ -1,9 +1,18 @@
|
||||
#include <dt-bindings/zmk/matrix_transform.h>
|
||||
#include "tester_xiao-layouts.dtsi"
|
||||
|
||||
&physical_layout0 {
|
||||
transform = <&transform0>;
|
||||
};
|
||||
|
||||
&physical_layout1 {
|
||||
transform = <&transform0>;
|
||||
};
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
zmk,kscan = &kscan0;
|
||||
zmk,matrix-transform = &transform0;
|
||||
zmk,physical-layout = &physical_layout0;
|
||||
};
|
||||
|
||||
kscan0: kscan {
|
||||
@@ -34,4 +43,4 @@
|
||||
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)
|
||||
>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -11,11 +11,20 @@ left_encoder: &encoder {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&arduino_serial {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
zmk,physical-layout = &split_matrix_physical_layout;
|
||||
};
|
||||
|
||||
wired_split {
|
||||
compatible = "zmk,wired-split";
|
||||
device = <&arduino_serial>;
|
||||
};
|
||||
|
||||
split_matrix_transform: split_matrix_transform {
|
||||
compatible = "zmk,matrix-transform";
|
||||
rows = <4>;
|
||||
|
||||
@@ -24,7 +24,7 @@ include:
|
||||
nickname: "display"
|
||||
- board: nice_nano_v2
|
||||
shield: kyria_left
|
||||
cmake-args: "-DCONFIG_ZMK_MOUSE=y"
|
||||
cmake-args: "-DCONFIG_ZMK_POINTING=y"
|
||||
nickname: "mouse"
|
||||
- board: sparkfun_pro_micro_rp2040
|
||||
shield: reviung41
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* Copyright (c) 2024 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include <behaviors/key_press.dtsi>
|
||||
#include <behaviors/key_toggle.dtsi>
|
||||
#include <behaviors/transparent.dtsi>
|
||||
@@ -19,6 +25,6 @@
|
||||
#include <behaviors/key_repeat.dtsi>
|
||||
#include <behaviors/backlight.dtsi>
|
||||
#include <behaviors/macros.dtsi>
|
||||
#include <behaviors/mouse_key_press.dtsi>
|
||||
#include <behaviors/soft_off.dtsi>
|
||||
#include <behaviors/studio_unlock.dtsi>
|
||||
#include <behaviors/mouse_keys.dtsi>
|
||||
|
||||
@@ -14,6 +14,12 @@
|
||||
mkp: mouse_key_press {
|
||||
compatible = "zmk,behavior-mouse-key-press";
|
||||
#binding-cells = <1>;
|
||||
display-name = "Mouse Key Press";
|
||||
};
|
||||
};
|
||||
|
||||
mkp_input_listener: mkp_input_listener {
|
||||
compatible = "zmk,input-listener";
|
||||
device = <&mkp>;
|
||||
};
|
||||
};
|
||||
|
||||
9
app/dts/behaviors/mouse_keys.dtsi
Normal file
9
app/dts/behaviors/mouse_keys.dtsi
Normal file
@@ -0,0 +1,9 @@
|
||||
/*
|
||||
* Copyright (c) 2024 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include "mouse_key_press.dtsi"
|
||||
#include "mouse_move.dtsi"
|
||||
#include "mouse_scroll.dtsi"
|
||||
25
app/dts/behaviors/mouse_move.dtsi
Normal file
25
app/dts/behaviors/mouse_move.dtsi
Normal file
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
* Copyright (c) 2024 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include <zephyr/dt-bindings/input/input-event-codes.h>
|
||||
|
||||
/ {
|
||||
behaviors {
|
||||
/omit-if-no-ref/ mmv: mouse_move {
|
||||
compatible = "zmk,behavior-input-two-axis";
|
||||
#binding-cells = <1>;
|
||||
x-input-code = <INPUT_REL_X>;
|
||||
y-input-code = <INPUT_REL_Y>;
|
||||
time-to-max-speed-ms = <300>;
|
||||
acceleration-exponent = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
mmv_input_listener: mmv_input_listener {
|
||||
compatible = "zmk,input-listener";
|
||||
device = <&mmv>;
|
||||
};
|
||||
};
|
||||
26
app/dts/behaviors/mouse_scroll.dtsi
Normal file
26
app/dts/behaviors/mouse_scroll.dtsi
Normal file
@@ -0,0 +1,26 @@
|
||||
|
||||
/*
|
||||
* Copyright (c) 2024 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include <zephyr/dt-bindings/input/input-event-codes.h>
|
||||
|
||||
/ {
|
||||
behaviors {
|
||||
/omit-if-no-ref/ msc: mouse_scroll {
|
||||
compatible = "zmk,behavior-input-two-axis";
|
||||
#binding-cells = <1>;
|
||||
x-input-code = <INPUT_REL_HWHEEL>;
|
||||
y-input-code = <INPUT_REL_WHEEL>;
|
||||
time-to-max-speed-ms = <300>;
|
||||
acceleration-exponent = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
msc_input_listener: msc_input_listener {
|
||||
compatible = "zmk,input-listener";
|
||||
device = <&msc>;
|
||||
};
|
||||
};
|
||||
28
app/dts/bindings/behaviors/zmk,behavior-input-two-axis.yaml
Normal file
28
app/dts/bindings/behaviors/zmk,behavior-input-two-axis.yaml
Normal file
@@ -0,0 +1,28 @@
|
||||
# Copyright (c) 2024 The ZMK Contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
description: Two axis input behavior
|
||||
|
||||
compatible: "zmk,behavior-input-two-axis"
|
||||
|
||||
include: one_param.yaml
|
||||
|
||||
properties:
|
||||
x-input-code:
|
||||
type: int
|
||||
required: true
|
||||
y-input-code:
|
||||
type: int
|
||||
required: true
|
||||
trigger-period-ms:
|
||||
type: int
|
||||
default: 16
|
||||
description: The time (in ms) between generated inputs when an input has non-zero speed.
|
||||
delay-ms:
|
||||
type: int
|
||||
time-to-max-speed-ms:
|
||||
type: int
|
||||
required: true
|
||||
acceleration-exponent:
|
||||
type: int
|
||||
default: 1
|
||||
@@ -6,3 +6,13 @@ description: Key toggle behavior
|
||||
compatible: "zmk,behavior-key-toggle"
|
||||
|
||||
include: one_param.yaml
|
||||
|
||||
properties:
|
||||
toggle-mode:
|
||||
type: string
|
||||
required: false
|
||||
default: "flip"
|
||||
enum:
|
||||
- "on"
|
||||
- "off"
|
||||
- "flip"
|
||||
|
||||
@@ -6,3 +6,13 @@ description: Toggle Layer
|
||||
compatible: "zmk,behavior-toggle-layer"
|
||||
|
||||
include: one_param.yaml
|
||||
|
||||
properties:
|
||||
toggle-mode:
|
||||
type: string
|
||||
required: false
|
||||
default: "flip"
|
||||
enum:
|
||||
- "on"
|
||||
- "off"
|
||||
- "flip"
|
||||
|
||||
6
app/dts/bindings/input_processors/ip_common.yaml
Normal file
6
app/dts/bindings/input_processors/ip_common.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
# Copyright (c) 2024 The ZMK Contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
properties:
|
||||
track-remainders:
|
||||
type: boolean
|
||||
13
app/dts/bindings/input_processors/ip_one_param.yaml
Normal file
13
app/dts/bindings/input_processors/ip_one_param.yaml
Normal file
@@ -0,0 +1,13 @@
|
||||
# Copyright (c) 2024 The ZMK Contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
include: ip_common.yaml
|
||||
|
||||
properties:
|
||||
"#input-processor-cells":
|
||||
type: int
|
||||
required: true
|
||||
const: 1
|
||||
|
||||
input-processor-cells:
|
||||
- param1
|
||||
14
app/dts/bindings/input_processors/ip_two_param.yaml
Normal file
14
app/dts/bindings/input_processors/ip_two_param.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
# Copyright (c) 2024 The ZMK Contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
include: ip_common.yaml
|
||||
|
||||
properties:
|
||||
"#input-processor-cells":
|
||||
type: int
|
||||
required: true
|
||||
const: 2
|
||||
|
||||
input-processor-cells:
|
||||
- param1
|
||||
- param2
|
||||
10
app/dts/bindings/input_processors/ip_zero_param.yaml
Normal file
10
app/dts/bindings/input_processors/ip_zero_param.yaml
Normal file
@@ -0,0 +1,10 @@
|
||||
# Copyright (c) 2024 The ZMK Contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
include: ip_common.yaml
|
||||
|
||||
properties:
|
||||
"#input-processor-cells":
|
||||
type: int
|
||||
required: true
|
||||
const: 0
|
||||
@@ -0,0 +1,18 @@
|
||||
# Copyright (c) 2024, The ZMK Contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
description: Input Processor for invoking behaviors on certain events
|
||||
|
||||
compatible: "zmk,input-processor-behaviors"
|
||||
|
||||
include: ip_zero_param.yaml
|
||||
|
||||
properties:
|
||||
type:
|
||||
type: int
|
||||
codes:
|
||||
type: array
|
||||
required: true
|
||||
bindings:
|
||||
type: phandle-array
|
||||
required: true
|
||||
@@ -0,0 +1,16 @@
|
||||
# Copyright (c) 2024, The ZMK Contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
description: Input Processor for remapping certain input codes to other codes
|
||||
|
||||
compatible: "zmk,input-processor-code-mapper"
|
||||
|
||||
include: ip_zero_param.yaml
|
||||
|
||||
properties:
|
||||
type:
|
||||
type: int
|
||||
required: true
|
||||
map:
|
||||
type: array
|
||||
required: true
|
||||
@@ -0,0 +1,16 @@
|
||||
# Copyright (c) 2024, The ZMK Contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
description: Input Processor for scaling values
|
||||
|
||||
compatible: "zmk,input-processor-scaler"
|
||||
|
||||
include: ip_two_param.yaml
|
||||
|
||||
properties:
|
||||
type:
|
||||
type: int
|
||||
required: true
|
||||
codes:
|
||||
type: array
|
||||
required: true
|
||||
@@ -0,0 +1,21 @@
|
||||
# Copyright (c) 2024, The ZMK Contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
description: Input Processor for temporarily enabling a layer after input events
|
||||
|
||||
compatible: "zmk,input-processor-temp-layer"
|
||||
|
||||
include: ip_two_param.yaml
|
||||
|
||||
properties:
|
||||
require-prior-idle-ms:
|
||||
type: int
|
||||
required: false
|
||||
default: 0
|
||||
description: Time in milliseconds that must pass after the last keystroke before the layer can be toggled
|
||||
|
||||
excluded-positions:
|
||||
type: array
|
||||
required: false
|
||||
default: []
|
||||
description: Array of key positions that will NOT trigger layer deactivation when pressed
|
||||
@@ -0,0 +1,18 @@
|
||||
# Copyright (c) 2024, The ZMK Contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
description: Input Processor for transforming values in various ways
|
||||
|
||||
compatible: "zmk,input-processor-transform"
|
||||
|
||||
include: ip_one_param.yaml
|
||||
|
||||
properties:
|
||||
type:
|
||||
type: int
|
||||
x-codes:
|
||||
type: array
|
||||
required: true
|
||||
y-codes:
|
||||
type: array
|
||||
required: true
|
||||
@@ -25,4 +25,3 @@ child-binding:
|
||||
type: boolean
|
||||
layers:
|
||||
type: array
|
||||
default: [-1]
|
||||
|
||||
26
app/dts/bindings/zmk,input-listener.yaml
Normal file
26
app/dts/bindings/zmk,input-listener.yaml
Normal file
@@ -0,0 +1,26 @@
|
||||
# Copyright (c) 2024 The ZMK Contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
description: |
|
||||
Listener to subscribe to input events and send HID updates after processing
|
||||
|
||||
compatible: "zmk,input-listener"
|
||||
|
||||
properties:
|
||||
device:
|
||||
type: phandle
|
||||
required: true
|
||||
input-processors:
|
||||
type: phandle-array
|
||||
|
||||
child-binding:
|
||||
description: "Listener overrides for certain layers"
|
||||
|
||||
properties:
|
||||
layers:
|
||||
type: array
|
||||
required: true
|
||||
process-next:
|
||||
type: boolean
|
||||
input-processors:
|
||||
type: phandle-array
|
||||
18
app/dts/bindings/zmk,input-split.yaml
Normal file
18
app/dts/bindings/zmk,input-split.yaml
Normal file
@@ -0,0 +1,18 @@
|
||||
# Copyright (c) 2024 The ZMK Contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
include: [base.yaml]
|
||||
|
||||
compatible: "zmk,input-split"
|
||||
|
||||
description: Device to wire up an input device for split use.
|
||||
|
||||
properties:
|
||||
reg:
|
||||
required: true
|
||||
|
||||
device:
|
||||
type: phandle
|
||||
|
||||
input-processors:
|
||||
type: phandle-array
|
||||
@@ -3,6 +3,8 @@ description: |
|
||||
|
||||
compatible: "zmk,kscan-composite"
|
||||
|
||||
include: kscan.yaml
|
||||
|
||||
properties:
|
||||
label:
|
||||
type: string
|
||||
|
||||
27
app/dts/bindings/zmk,wired-split.yaml
Normal file
27
app/dts/bindings/zmk,wired-split.yaml
Normal file
@@ -0,0 +1,27 @@
|
||||
# Copyright (c) 2025 The ZMK Contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
description: |
|
||||
Complete specification of wired split connection
|
||||
|
||||
compatible: "zmk,wired-split"
|
||||
|
||||
properties:
|
||||
device:
|
||||
type: phandle
|
||||
required: true
|
||||
description: The UART device for wired split communication
|
||||
|
||||
detect-gpios:
|
||||
type: phandle-array
|
||||
description: |
|
||||
If your split includes support for an extra GPIO to detect presence of the split cable, set
|
||||
this to the GPIO pin used to detect the connection.
|
||||
|
||||
half-duplex:
|
||||
type: boolean
|
||||
description: "Experimental: Enable half-duplex protocol mode"
|
||||
|
||||
dir-gpios:
|
||||
type: phandle-array
|
||||
description: "Experimental: Set the communication direction. Used for RS-422 style comms."
|
||||
11
app/dts/input/processors.dtsi
Normal file
11
app/dts/input/processors.dtsi
Normal file
@@ -0,0 +1,11 @@
|
||||
/*
|
||||
* Copyright (c) 2024 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include <input/processors/scaler.dtsi>
|
||||
#include <input/processors/code_mapper.dtsi>
|
||||
#include <input/processors/transform.dtsi>
|
||||
#include <input/processors/temp_layer.dtsi>
|
||||
#include <input/processors/behaviors.dtsi>
|
||||
16
app/dts/input/processors/behaviors.dtsi
Normal file
16
app/dts/input/processors/behaviors.dtsi
Normal file
@@ -0,0 +1,16 @@
|
||||
/*
|
||||
* Copyright (c) 2024 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include <zephyr/dt-bindings/input/input-event-codes.h>
|
||||
|
||||
/ {
|
||||
zip_button_behaviors: zip_button_behaviors {
|
||||
compatible = "zmk,input-processor-behaviors";
|
||||
#input-processor-cells = <0>;
|
||||
codes = <INPUT_BTN_0 INPUT_BTN_1 INPUT_BTN_2>;
|
||||
bindings = <&none &none &none>;
|
||||
};
|
||||
};
|
||||
29
app/dts/input/processors/code_mapper.dtsi
Normal file
29
app/dts/input/processors/code_mapper.dtsi
Normal file
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
* Copyright (c) 2024 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include <zephyr/dt-bindings/input/input-event-codes.h>
|
||||
|
||||
/ {
|
||||
/omit-if-no-ref/ zip_xy_swap_mapper: zip_xy_swap_mapper {
|
||||
compatible = "zmk,input-processor-code-mapper";
|
||||
#input-processor-cells = <0>;
|
||||
type = <INPUT_EV_REL>;
|
||||
map
|
||||
= <INPUT_REL_Y INPUT_REL_X>
|
||||
, <INPUT_REL_X INPUT_REL_Y>
|
||||
;
|
||||
};
|
||||
|
||||
/omit-if-no-ref/ zip_xy_to_scroll_mapper: zip_xy_to_scroll_mapper {
|
||||
compatible = "zmk,input-processor-code-mapper";
|
||||
#input-processor-cells = <0>;
|
||||
type = <INPUT_EV_REL>;
|
||||
map
|
||||
= <INPUT_REL_Y INPUT_REL_WHEEL>
|
||||
, <INPUT_REL_X INPUT_REL_HWHEEL>
|
||||
;
|
||||
};
|
||||
};
|
||||
41
app/dts/input/processors/scaler.dtsi
Normal file
41
app/dts/input/processors/scaler.dtsi
Normal file
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright (c) 2024 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include <zephyr/dt-bindings/input/input-event-codes.h>
|
||||
|
||||
/ {
|
||||
/omit-if-no-ref/ zip_x_scaler: zip_x_scaler {
|
||||
compatible = "zmk,input-processor-scaler";
|
||||
#input-processor-cells = <2>;
|
||||
type = <INPUT_EV_REL>;
|
||||
codes = <INPUT_REL_X>;
|
||||
track-remainders;
|
||||
};
|
||||
|
||||
/omit-if-no-ref/ zip_y_scaler: zip_y_scaler {
|
||||
compatible = "zmk,input-processor-scaler";
|
||||
#input-processor-cells = <2>;
|
||||
type = <INPUT_EV_REL>;
|
||||
codes = <INPUT_REL_Y>;
|
||||
track-remainders;
|
||||
};
|
||||
|
||||
/omit-if-no-ref/ zip_xy_scaler: zip_xy_scaler {
|
||||
compatible = "zmk,input-processor-scaler";
|
||||
#input-processor-cells = <2>;
|
||||
type = <INPUT_EV_REL>;
|
||||
codes = <INPUT_REL_X INPUT_REL_Y>;
|
||||
track-remainders;
|
||||
};
|
||||
|
||||
/omit-if-no-ref/ zip_scroll_scaler: zip_scroll_scaler {
|
||||
compatible = "zmk,input-processor-scaler";
|
||||
#input-processor-cells = <2>;
|
||||
type = <INPUT_EV_REL>;
|
||||
codes = <INPUT_REL_WHEEL INPUT_REL_HWHEEL>;
|
||||
track-remainders;
|
||||
};
|
||||
};
|
||||
14
app/dts/input/processors/temp_layer.dtsi
Normal file
14
app/dts/input/processors/temp_layer.dtsi
Normal file
@@ -0,0 +1,14 @@
|
||||
/*
|
||||
* Copyright (c) 2024 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include <zephyr/dt-bindings/input/input-event-codes.h>
|
||||
|
||||
/ {
|
||||
/omit-if-no-ref/ zip_temp_layer: zip_temp_layer {
|
||||
compatible = "zmk,input-processor-temp-layer";
|
||||
#input-processor-cells = <2>;
|
||||
};
|
||||
};
|
||||
25
app/dts/input/processors/transform.dtsi
Normal file
25
app/dts/input/processors/transform.dtsi
Normal file
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
* Copyright (c) 2024 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include <zephyr/dt-bindings/input/input-event-codes.h>
|
||||
|
||||
/ {
|
||||
/omit-if-no-ref/ zip_xy_transform: zip_xy_transform {
|
||||
compatible = "zmk,input-processor-transform";
|
||||
#input-processor-cells = <1>;
|
||||
type = <INPUT_EV_REL>;
|
||||
y-codes = <INPUT_REL_Y>;
|
||||
x-codes = <INPUT_REL_X>;
|
||||
};
|
||||
|
||||
/omit-if-no-ref/ zip_scroll_transform: zip_scroll_transform {
|
||||
compatible = "zmk,input-processor-transform";
|
||||
#input-processor-cells = <1>;
|
||||
type = <INPUT_EV_REL>;
|
||||
y-codes = <INPUT_REL_WHEEL>;
|
||||
x-codes = <INPUT_REL_HWHEEL>;
|
||||
};
|
||||
};
|
||||
64
app/dts/layouts/common/ortho_4x10/1x2u.dtsi
Normal file
64
app/dts/layouts/common/ortho_4x10/1x2u.dtsi
Normal file
@@ -0,0 +1,64 @@
|
||||
#include <layouts/common/ortho_4x10/position_map.dtsi>
|
||||
#include <physical_layouts.dtsi>
|
||||
|
||||
/ {
|
||||
layout_ortho_4x10_1x2u: layout_ortho_4x10_1x2u {
|
||||
compatible = "zmk,physical-layout";
|
||||
display-name = "1x2U Space";
|
||||
|
||||
keys // w h x y rot rx ry
|
||||
= <&key_physical_attrs 100 100 0 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 100 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 200 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 300 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 400 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 500 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 600 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 700 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 800 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 900 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 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 600 100 0 0 0>
|
||||
, <&key_physical_attrs 100 100 700 100 0 0 0>
|
||||
, <&key_physical_attrs 100 100 800 100 0 0 0>
|
||||
, <&key_physical_attrs 100 100 900 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>
|
||||
, <&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 600 200 0 0 0>
|
||||
, <&key_physical_attrs 100 100 700 200 0 0 0>
|
||||
, <&key_physical_attrs 100 100 800 200 0 0 0>
|
||||
, <&key_physical_attrs 100 100 900 200 0 0 0>
|
||||
, <&key_physical_attrs 100 100 0 300 0 0 0>
|
||||
, <&key_physical_attrs 100 100 100 300 0 0 0>
|
||||
, <&key_physical_attrs 100 100 200 300 0 0 0>
|
||||
, <&key_physical_attrs 100 100 300 300 0 0 0>
|
||||
, <&key_physical_attrs 200 100 400 300 0 0 0>
|
||||
, <&key_physical_attrs 100 100 600 300 0 0 0>
|
||||
, <&key_physical_attrs 100 100 700 300 0 0 0>
|
||||
, <&key_physical_attrs 100 100 800 300 0 0 0>
|
||||
, <&key_physical_attrs 100 100 900 300 0 0 0>
|
||||
;
|
||||
};
|
||||
};
|
||||
|
||||
&layouts_common_ortho_4x10_position_map {
|
||||
layout_ortho_4x10_1x2u_posmap: layout_ortho_4x10_1x2u {
|
||||
physical-layout = <&layout_ortho_4x10_1x2u>;
|
||||
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 39 35 36 37 38>
|
||||
;
|
||||
};
|
||||
};
|
||||
|
||||
64
app/dts/layouts/common/ortho_4x10/all1u.dtsi
Normal file
64
app/dts/layouts/common/ortho_4x10/all1u.dtsi
Normal file
@@ -0,0 +1,64 @@
|
||||
#include <layouts/common/ortho_4x10/position_map.dtsi>
|
||||
#include <physical_layouts.dtsi>
|
||||
|
||||
/ {
|
||||
layout_ortho_4x10_all1u: layout_ortho_4x10_all1u {
|
||||
compatible = "zmk,physical-layout";
|
||||
display-name = "All 1U/Grid";
|
||||
|
||||
keys // w h x y rot rx ry
|
||||
= <&key_physical_attrs 100 100 0 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 100 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 200 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 300 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 400 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 500 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 600 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 700 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 800 0 0 0 0>
|
||||
, <&key_physical_attrs 100 100 900 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 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 600 100 0 0 0>
|
||||
, <&key_physical_attrs 100 100 700 100 0 0 0>
|
||||
, <&key_physical_attrs 100 100 800 100 0 0 0>
|
||||
, <&key_physical_attrs 100 100 900 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>
|
||||
, <&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 600 200 0 0 0>
|
||||
, <&key_physical_attrs 100 100 700 200 0 0 0>
|
||||
, <&key_physical_attrs 100 100 800 200 0 0 0>
|
||||
, <&key_physical_attrs 100 100 900 200 0 0 0>
|
||||
, <&key_physical_attrs 100 100 0 300 0 0 0>
|
||||
, <&key_physical_attrs 100 100 100 300 0 0 0>
|
||||
, <&key_physical_attrs 100 100 200 300 0 0 0>
|
||||
, <&key_physical_attrs 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 600 300 0 0 0>
|
||||
, <&key_physical_attrs 100 100 700 300 0 0 0>
|
||||
, <&key_physical_attrs 100 100 800 300 0 0 0>
|
||||
, <&key_physical_attrs 100 100 900 300 0 0 0>
|
||||
;
|
||||
};
|
||||
};
|
||||
|
||||
&layouts_common_ortho_4x10_position_map {
|
||||
layout_ortho_4x10_all1u_posmap: layout_ortho_4x10_all1u {
|
||||
physical-layout = <&layout_ortho_4x10_all1u>;
|
||||
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>
|
||||
;
|
||||
};
|
||||
};
|
||||
7
app/dts/layouts/common/ortho_4x10/position_map.dtsi
Normal file
7
app/dts/layouts/common/ortho_4x10/position_map.dtsi
Normal file
@@ -0,0 +1,7 @@
|
||||
/ {
|
||||
layouts_common_ortho_4x10_position_map: layouts_common_ortho_4x10_position_map {
|
||||
compatible = "zmk,physical-layout-position-map";
|
||||
|
||||
complete;
|
||||
};
|
||||
};
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user