mirror of
https://github.com/zmkfirmware/zmk.git
synced 2026-03-20 04:55:20 -05:00
Compare commits
539 Commits
revert-213
...
dependabot
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e726c6e30a | ||
|
|
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 | ||
|
|
a9ff3a78a1 | ||
|
|
3f7c9d7cc4 | ||
|
|
978c7cb124 | ||
|
|
230b860f31 | ||
|
|
d39941dfbe | ||
|
|
fb359f5766 | ||
|
|
76ee97e1b6 | ||
|
|
33113c7028 | ||
|
|
6934e362b5 | ||
|
|
4fcc308910 | ||
|
|
ffa485c11b | ||
|
|
70542990c0 | ||
|
|
f8eff2fe34 | ||
|
|
888c0d966c | ||
|
|
58de2eb5e9 | ||
|
|
e4339241ea | ||
|
|
fed66a92d0 | ||
|
|
9d9f626938 | ||
|
|
14c6fb74ee | ||
|
|
b0f5789b12 | ||
|
|
2a5b73f294 | ||
|
|
4438b7b835 | ||
|
|
63af296b6e | ||
|
|
c9553c31e3 | ||
|
|
98e314baf2 | ||
|
|
c7473fc325 | ||
|
|
9320271dde | ||
|
|
8779530312 | ||
|
|
bac6bda34c | ||
|
|
4082370215 | ||
|
|
7248438ee4 | ||
|
|
2ded7919eb | ||
|
|
99b8506437 | ||
|
|
a173be9d71 | ||
|
|
cf2c46734d | ||
|
|
e6c1219f0c | ||
|
|
19a096ab67 | ||
|
|
f08b817d60 | ||
|
|
9935e8df47 | ||
|
|
644fc821f7 | ||
|
|
6e37f21f6b | ||
|
|
40f59df2cc | ||
|
|
1cfce345ba | ||
|
|
f4582bdaa7 | ||
|
|
249ecbc7e6 | ||
|
|
158bb31863 | ||
|
|
80df3195b7 | ||
|
|
cb5e605906 | ||
|
|
7d8dd64cdc | ||
|
|
f0a3947044 | ||
|
|
7ee25c7959 | ||
|
|
87cea76c93 | ||
|
|
9a68b2eeb7 | ||
|
|
428c36bc59 | ||
|
|
5487b108d5 | ||
|
|
55c67804eb | ||
|
|
0d8b23fccb | ||
|
|
e9681270d3 | ||
|
|
4c47d67e63 | ||
|
|
8ed556df62 | ||
|
|
369a009d99 | ||
|
|
200d98f623 | ||
|
|
8756a064d1 | ||
|
|
7293037f18 | ||
|
|
a057e4c89d | ||
|
|
7f1ee320ab | ||
|
|
b67f8bbe9f | ||
|
|
548fe7f6bd | ||
|
|
94100e307b | ||
|
|
2e9d72ba6b | ||
|
|
ea1a09bf99 | ||
|
|
a6d09f8c00 | ||
|
|
10868c72f7 | ||
|
|
64c1e1e3ff | ||
|
|
7dfc6ab31d | ||
|
|
11537ebee6 | ||
|
|
218a2fff8d | ||
|
|
bbe4f64bb2 | ||
|
|
c8841c4119 | ||
|
|
993a64d5b3 | ||
|
|
0adb80c02b | ||
|
|
6cbf25f04a | ||
|
|
0abc1eaf23 | ||
|
|
a72327bdff | ||
|
|
d3f2895744 | ||
|
|
dab4b2cdf3 | ||
|
|
78513af73e | ||
|
|
022ede9d1e | ||
|
|
16976db58c | ||
|
|
6e2d30d589 | ||
|
|
4aea919a4d | ||
|
|
47a17c64d7 | ||
|
|
6cac781ada | ||
|
|
29b39f2b9f | ||
|
|
c05aed2f19 | ||
|
|
60a8f29340 | ||
|
|
36f146226e | ||
|
|
73ca365530 | ||
|
|
90d6285d98 | ||
|
|
e195822559 | ||
|
|
99b424bb4b | ||
|
|
ce04352e2f | ||
|
|
8c21e7766d | ||
|
|
7276fd525f | ||
|
|
59c82ef27a | ||
|
|
608b6458a9 | ||
|
|
907b1caaa6 | ||
|
|
552d665f58 | ||
|
|
dafdc44b22 | ||
|
|
f618871f53 | ||
|
|
a314128ea8 | ||
|
|
e68abe57d8 | ||
|
|
e80b1584de | ||
|
|
91e1a7cfef | ||
|
|
026be009a6 | ||
|
|
a8f7888f4d | ||
|
|
a47f1fe2e1 | ||
|
|
ec32c566ce | ||
|
|
0a25fa2f95 | ||
|
|
1f900bfc9c | ||
|
|
a17266847d | ||
|
|
4a8ceba0db | ||
|
|
5d4b6df6a7 | ||
|
|
21e1b2acad | ||
|
|
17f0a4d307 | ||
|
|
58dcf5c285 | ||
|
|
33e3b02ddb | ||
|
|
f992352936 | ||
|
|
8166527ea3 | ||
|
|
fb18a4d871 | ||
|
|
b249135742 | ||
|
|
4fdfb01b6a | ||
|
|
9e36ebd525 | ||
|
|
11f600d9e5 | ||
|
|
cca637d66e | ||
|
|
de38676afd | ||
|
|
1baf18d671 | ||
|
|
6ae07d222a | ||
|
|
62900c62be | ||
|
|
c8c8835a19 | ||
|
|
a9167b2275 | ||
|
|
32d0a4bf41 | ||
|
|
92745903c9 | ||
|
|
67d595f29f | ||
|
|
82a22d731b | ||
|
|
6e03a0bb67 | ||
|
|
6b4d591c37 | ||
|
|
1c48f64730 | ||
|
|
f0319fde94 | ||
|
|
d52bb04090 | ||
|
|
58207fdb2c | ||
|
|
cddc92108c | ||
|
|
a2f32cc12c | ||
|
|
2a137bb675 | ||
|
|
ba6f21fd2b | ||
|
|
91447ac55c | ||
|
|
eaa8989f37 | ||
|
|
e0ec2ff84d | ||
|
|
03b5b38bc4 | ||
|
|
3975d2fdaf | ||
|
|
5176fbea6a | ||
|
|
782695f4a9 | ||
|
|
e0339a2a57 | ||
|
|
b84436e611 | ||
|
|
fd28eab179 | ||
|
|
d77e400eb9 | ||
|
|
c8c19598a7 | ||
|
|
0f972f1cc3 | ||
|
|
266227b580 | ||
|
|
aae4feeda8 | ||
|
|
b74cd39ab5 | ||
|
|
0120156002 | ||
|
|
745b960593 | ||
|
|
882226e261 | ||
|
|
d74896d780 | ||
|
|
f019524600 | ||
|
|
6946ca8b07 | ||
|
|
b866ec031f | ||
|
|
5f056f7199 | ||
|
|
503f6c8e58 | ||
|
|
b735a051ce | ||
|
|
d5061c5d3b | ||
|
|
6ae6bf78b4 | ||
|
|
fb67e4603a | ||
|
|
bafe648425 | ||
|
|
b1bcc3e418 | ||
|
|
feda96eb40 | ||
|
|
ea64fcaf71 | ||
|
|
6fe13c9565 | ||
|
|
08988ec7da | ||
|
|
b42d06ecf7 | ||
|
|
895f557ae5 | ||
|
|
96cd3a1ce2 | ||
|
|
4faeb365b1 | ||
|
|
ba0dee088f | ||
|
|
0d15ae84f4 | ||
|
|
8b909acdcf | ||
|
|
3de8a56fcb | ||
|
|
00e4818094 | ||
|
|
049c070b3a | ||
|
|
fb3af5327e | ||
|
|
6d50ba5553 | ||
|
|
3fec690def | ||
|
|
2eff266f5b | ||
|
|
2a0708d1fc | ||
|
|
2501f1f548 | ||
|
|
d75e388593 | ||
|
|
cd25c12ce9 | ||
|
|
78ed721c36 | ||
|
|
47a6715aa6 | ||
|
|
b9a025c76e | ||
|
|
b080befebb | ||
|
|
9e7fcde868 | ||
|
|
f92dce43e9 | ||
|
|
97294aa341 | ||
|
|
fd152baff0 | ||
|
|
7bd74a6b0f | ||
|
|
8c6bda260a | ||
|
|
3694ff85a0 | ||
|
|
e01f13f9f0 | ||
|
|
82eed0f5dd | ||
|
|
b4f9081b09 | ||
|
|
5fcf092901 | ||
|
|
74f7fe921b | ||
|
|
0438cb0ee5 | ||
|
|
c5cca5b34f | ||
|
|
80173f8ea3 | ||
|
|
f18974e8c4 | ||
|
|
f2ea1da036 | ||
|
|
96e55c8be6 | ||
|
|
483a4930e9 | ||
|
|
f7c34c70ba | ||
|
|
b576d52d58 | ||
|
|
49f7275beb | ||
|
|
29599e8b0a | ||
|
|
10d03ca46c | ||
|
|
4dce096161 | ||
|
|
9c6d1af102 | ||
|
|
7c9477be6e | ||
|
|
0bea7832e9 | ||
|
|
3e2c428fca | ||
|
|
03099b04b6 | ||
|
|
7cdf1e42ea | ||
|
|
7be955ff72 | ||
|
|
a080b5287f | ||
|
|
7c09eb217e | ||
|
|
e56db304ea | ||
|
|
308d6bce6e | ||
|
|
2d96f469c8 | ||
|
|
2ee76be6fe | ||
|
|
f0b20c1c93 | ||
|
|
8f5c7bbfd4 | ||
|
|
7d1f84e3eb | ||
|
|
4dfc45d4ab | ||
|
|
2423136788 | ||
|
|
af908826cd | ||
|
|
d1ad34761a | ||
|
|
0d3a4b7bbb | ||
|
|
4d566853af | ||
|
|
f4a070aacf | ||
|
|
16e92cf665 | ||
|
|
e22bc7620c | ||
|
|
a9021deef6 | ||
|
|
dfc6dc84b8 | ||
|
|
7a51a46b9f | ||
|
|
849eca7228 | ||
|
|
7d5aa0c0bf | ||
|
|
fe509c466f | ||
|
|
e7d6519534 | ||
|
|
eb5a6fcfe1 | ||
|
|
e65a1227d8 | ||
|
|
4bef4e98f5 | ||
|
|
fff1cbecdc | ||
|
|
d672b0c705 | ||
|
|
18b86b7720 | ||
|
|
25bb126a11 | ||
|
|
34910787ff | ||
|
|
f9bb18b676 | ||
|
|
e66f068fb5 | ||
|
|
29c0cdb3ab | ||
|
|
7e7110d85f | ||
|
|
41d81801ed | ||
|
|
d0e0ecb4e3 | ||
|
|
2df6dcd973 | ||
|
|
fa9ea9ea8b | ||
|
|
bb94a7aafe | ||
|
|
cac999b1d6 | ||
|
|
8d54e287f0 | ||
|
|
bd21f41412 | ||
|
|
5d960a758f | ||
|
|
4198fac90f | ||
|
|
09111f1cf3 | ||
|
|
c3144055e8 | ||
|
|
a0ad1d4c94 | ||
|
|
e78b25a445 | ||
|
|
933fdcd364 | ||
|
|
5ebe924e94 | ||
|
|
fceb0351a5 | ||
|
|
96968514e3 | ||
|
|
e78249ee06 | ||
|
|
0d4d4fb2b5 | ||
|
|
860e53b33a | ||
|
|
d3fffb9e89 | ||
|
|
b19df0cbf0 | ||
|
|
738c3c0e3b | ||
|
|
adb3a13dc5 | ||
|
|
58ccc5970d | ||
|
|
e806cd6da1 | ||
|
|
94c3b9a246 | ||
|
|
c684cee76f | ||
|
|
f2d8b9b0a3 | ||
|
|
44358798d3 | ||
|
|
931a36ff4a | ||
|
|
3a3eed2960 | ||
|
|
1f7cd7a107 | ||
|
|
828943156a | ||
|
|
736c5fb46e | ||
|
|
ce743f2b35 | ||
|
|
af7e4198ae | ||
|
|
94d9d837e3 | ||
|
|
341534aa15 | ||
|
|
8929355ac0 | ||
|
|
6f2e19ff88 | ||
|
|
3a38979684 | ||
|
|
c6e0551fb0 | ||
|
|
325e207781 | ||
|
|
aa6cfe250d | ||
|
|
bddee70b6b | ||
|
|
388ad71385 | ||
|
|
a77288f527 | ||
|
|
14b06a36bf | ||
|
|
1dfcfc7d3f | ||
|
|
610a806c84 | ||
|
|
2adaa00d10 | ||
|
|
08ab45fc78 | ||
|
|
37af94edde | ||
|
|
db7b197790 | ||
|
|
c9c620d19f | ||
|
|
8b20874c99 | ||
|
|
c007d60357 | ||
|
|
104c73d303 | ||
|
|
b44ec381f6 | ||
|
|
ccf0380179 | ||
|
|
c082f8d802 | ||
|
|
a9ae6796a0 | ||
|
|
fda6a5f185 | ||
|
|
604af2ebd3 | ||
|
|
0f49fa9ae4 | ||
|
|
c7fb418e88 | ||
|
|
40adb3858d | ||
|
|
cdcf4ebfb6 | ||
|
|
f72f415c5b | ||
|
|
50a303b8bb | ||
|
|
1d83f279cd | ||
|
|
edc72c1166 | ||
|
|
4bcecd98f8 | ||
|
|
2d6c9f797c | ||
|
|
18e5a1a26b | ||
|
|
cd6f8a680c | ||
|
|
b2a0a357e1 | ||
|
|
d9c0ded402 | ||
|
|
aeb5bed3d6 | ||
|
|
a6c0399493 | ||
|
|
324ada1d20 | ||
|
|
8e9b4fa57c | ||
|
|
3968d9febd | ||
|
|
b3f1d769f0 | ||
|
|
4fcbe3268a | ||
|
|
413820fc7f | ||
|
|
802881b625 | ||
|
|
f4e6d70465 | ||
|
|
94aa7d8d53 | ||
|
|
552347b8a4 | ||
|
|
a81a2d37a8 | ||
|
|
98e3b8b435 | ||
|
|
b6d9f3c911 | ||
|
|
58413ca8c5 | ||
|
|
d6de8a3acc | ||
|
|
ba1a6c08ad | ||
|
|
d06e90e713 | ||
|
|
bd9c71ab0a | ||
|
|
0b5afbf9c0 | ||
|
|
fb99496a73 | ||
|
|
f7e7c9c10b | ||
|
|
bf4008da02 | ||
|
|
f4fce9e158 | ||
|
|
b8846cf635 | ||
|
|
efbcd3c8f6 | ||
|
|
4b03fcb709 | ||
|
|
5826b80374 | ||
|
|
3a4cf185a1 | ||
|
|
be75da096c | ||
|
|
c2299e2203 | ||
|
|
f24a0bf9c8 | ||
|
|
aab09d504c | ||
|
|
4a5806ac73 | ||
|
|
0755b7a64c | ||
|
|
5685074835 | ||
|
|
b120daa16a | ||
|
|
275c0ce271 |
@@ -1,4 +1,4 @@
|
|||||||
FROM docker.io/zmkfirmware/zmk-dev-arm:3.2
|
FROM docker.io/zmkfirmware/zmk-dev-arm:3.5
|
||||||
|
|
||||||
COPY .bashrc tmp
|
COPY .bashrc tmp
|
||||||
RUN mv /tmp/.bashrc ~/.bashrc
|
RUN mv /tmp/.bashrc ~/.bashrc
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
"mounts": [
|
"mounts": [
|
||||||
"type=volume,source=zmk-root-user,target=/root",
|
"type=volume,source=zmk-root-user,target=/root",
|
||||||
"type=volume,source=zmk-config,target=/workspaces/zmk-config",
|
"type=volume,source=zmk-config,target=/workspaces/zmk-config",
|
||||||
|
"type=volume,source=zmk-modules,target=/workspaces/zmk-modules",
|
||||||
"type=volume,source=zmk-zephyr,target=${containerWorkspaceFolder}/zephyr",
|
"type=volume,source=zmk-zephyr,target=${containerWorkspaceFolder}/zephyr",
|
||||||
"type=volume,source=zmk-zephyr-modules,target=${containerWorkspaceFolder}/modules",
|
"type=volume,source=zmk-zephyr-modules,target=${containerWorkspaceFolder}/modules",
|
||||||
"type=volume,source=zmk-zephyr-tools,target=${containerWorkspaceFolder}/tools"
|
"type=volume,source=zmk-zephyr-tools,target=${containerWorkspaceFolder}/tools"
|
||||||
|
|||||||
47
.github/dependabot.yml
vendored
47
.github/dependabot.yml
vendored
@@ -8,3 +8,50 @@ updates:
|
|||||||
directory: "/docs"
|
directory: "/docs"
|
||||||
schedule:
|
schedule:
|
||||||
interval: "daily"
|
interval: "daily"
|
||||||
|
groups:
|
||||||
|
docusaurus-major:
|
||||||
|
applies-to: "version-updates"
|
||||||
|
dependency-type: "production"
|
||||||
|
patterns:
|
||||||
|
- "@docusaurus/*"
|
||||||
|
update-types:
|
||||||
|
- "major"
|
||||||
|
docusaurus-minor-patch:
|
||||||
|
applies-to: "version-updates"
|
||||||
|
dependency-type: "production"
|
||||||
|
patterns:
|
||||||
|
- "@docusaurus/*"
|
||||||
|
update-types:
|
||||||
|
- "minor"
|
||||||
|
- "patch"
|
||||||
|
tree-sitter:
|
||||||
|
applies-to: "version-updates"
|
||||||
|
dependency-type: "production"
|
||||||
|
patterns:
|
||||||
|
- "tree-sitter-devicetree"
|
||||||
|
- "web-tree-sitter"
|
||||||
|
prod-other-major:
|
||||||
|
applies-to: "version-updates"
|
||||||
|
dependency-type: "production"
|
||||||
|
exclude-patterns:
|
||||||
|
- "@docusaurus/*"
|
||||||
|
- "tree-sitter-devicetree"
|
||||||
|
- "web-tree-sitter"
|
||||||
|
update-types:
|
||||||
|
- "major"
|
||||||
|
prod-other-minor-patch:
|
||||||
|
applies-to: "version-updates"
|
||||||
|
dependency-type: "production"
|
||||||
|
exclude-patterns:
|
||||||
|
- "@docusaurus/*"
|
||||||
|
- "tree-sitter-devicetree"
|
||||||
|
- "web-tree-sitter"
|
||||||
|
update-types:
|
||||||
|
- "minor"
|
||||||
|
- "patch"
|
||||||
|
development:
|
||||||
|
applies-to: "version-updates"
|
||||||
|
dependency-type: "development"
|
||||||
|
update-types:
|
||||||
|
- "minor"
|
||||||
|
- "patch"
|
||||||
|
|||||||
18
.github/pull_request_template.md
vendored
18
.github/pull_request_template.md
vendored
@@ -1,15 +1,9 @@
|
|||||||
<!-- If you're adding a board/shield please fill out this check-list, otherwise you can delete it -->
|
<!-- Note: ZMK is generally not accepting PRs for new keyboards. New generic controller PRs *may* still be accepted, please discuss on the Discord server first. -->
|
||||||
|
|
||||||
## Board/Shield Check-list
|
## PR check-list
|
||||||
|
|
||||||
- [ ] This board/shield is tested working on real hardware
|
- [ ] Branch has a [clean commit history](https://zmk.dev/docs/development/contributing/pull-requests#clean-commit-history)
|
||||||
- [ ] Definitions follow the general style of other shields/boards upstream ([Reference](https://zmk.dev/docs/development/new-shield))
|
- [ ] Additional tests are included, if changing behaviors/core code that is testable.
|
||||||
- [ ] `.zmk.yml` metadata file added
|
|
||||||
- [ ] Proper Copyright + License headers added to applicable files (Generally, we stick to "The ZMK Contributors" for copyrights to help avoid churn when files get edited)
|
- [ ] Proper Copyright + License headers added to applicable files (Generally, we stick to "The ZMK Contributors" for copyrights to help avoid churn when files get edited)
|
||||||
- [ ] General consistent formatting of DeviceTree files
|
- [ ] [Pre-commit](https://zmk.dev/docs/development/local-toolchain/pre-commit) used to check formatting of files, commit messages, etc.
|
||||||
- [ ] Keymaps do not use deprecated key defines (Check using the [upgrader tool](https://zmk.dev/docs/codes/keymap-upgrader))
|
- [ ] Includes any necessary [documentation changes](https://zmk.dev/docs/development/contributing/documentation).
|
||||||
- [ ] `&pro_micro` used in favor of `&pro_micro_d/a` if applicable
|
|
||||||
- [ ] If split, no name added for the right/peripheral half
|
|
||||||
- [ ] Kconfig.defconfig file correctly wraps _all_ configuration in conditional on the shield symbol
|
|
||||||
- [ ] `.conf` file has optional extra features commented out
|
|
||||||
- [ ] Keyboard/PCB is part of a shipped group buy or is generally available in stock to purchase (OSH/personal projects without general availability should create a zmk-config repo instead)
|
|
||||||
|
|||||||
6
.github/workflows/ble-test.yml
vendored
6
.github/workflows/ble-test.yml
vendored
@@ -35,7 +35,7 @@ jobs:
|
|||||||
test: ${{ fromJSON(needs.collect-tests.outputs.test-dirs) }}
|
test: ${{ fromJSON(needs.collect-tests.outputs.test-dirs) }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: docker.io/zmkfirmware/zmk-build-arm:3.2
|
image: docker.io/zmkfirmware/zmk-build-arm:3.5
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
@@ -61,7 +61,7 @@ jobs:
|
|||||||
- name: Enable babblesim group filter
|
- name: Enable babblesim group filter
|
||||||
run: west config manifest.group-filter -- +babblesim
|
run: west config manifest.group-filter -- +babblesim
|
||||||
- name: Update modules (west update)
|
- name: Update modules (west update)
|
||||||
run: west update
|
run: west update --fetch-opt=--filter=tree:0
|
||||||
- name: Export Zephyr CMake package (west zephyr-export)
|
- name: Export Zephyr CMake package (west zephyr-export)
|
||||||
run: west zephyr-export
|
run: west zephyr-export
|
||||||
- name: Build BabbleSim components
|
- name: Build BabbleSim components
|
||||||
@@ -69,7 +69,7 @@ jobs:
|
|||||||
run: make everything
|
run: make everything
|
||||||
- name: Test ${{ matrix.test }}
|
- name: Test ${{ matrix.test }}
|
||||||
working-directory: app
|
working-directory: app
|
||||||
run: BSIM_COMPONENTS_PATH="${GITHUB_WORKSPACE}/tools/bsim/components/" BSIM_OUT_PATH="${GITHUB_WORKSPACE}/tools/bsim/" ./run-ble-test.sh tests/ble/${{ matrix.test }}
|
run: BSIM_COMPONENTS_PATH="${GITHUB_WORKSPACE}/tools/bsim/components" BSIM_OUT_PATH="${GITHUB_WORKSPACE}/tools/bsim" ./run-ble-test.sh tests/ble/${{ matrix.test }}
|
||||||
- name: Archive artifacts
|
- name: Archive artifacts
|
||||||
if: ${{ always() }}
|
if: ${{ always() }}
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
|
|||||||
36
.github/workflows/build-user-config.yml
vendored
36
.github/workflows/build-user-config.yml
vendored
@@ -26,7 +26,7 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
matrix:
|
matrix:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-22.04
|
||||||
name: Fetch Build Keyboards
|
name: Fetch Build Keyboards
|
||||||
outputs:
|
outputs:
|
||||||
build_matrix: ${{ env.build_matrix }}
|
build_matrix: ${{ env.build_matrix }}
|
||||||
@@ -34,13 +34,10 @@ jobs:
|
|||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Install yaml2json
|
|
||||||
run: python3 -m pip install remarshal
|
|
||||||
|
|
||||||
- name: Fetch Build Matrix
|
- name: Fetch Build Matrix
|
||||||
run: |
|
run: |
|
||||||
echo "build_matrix=$(yaml2json '${{ inputs.build_matrix_path }}' | jq -c .)" >> $GITHUB_ENV
|
echo "build_matrix=$(yq -oj -I0 '${{ inputs.build_matrix_path }}')" >> $GITHUB_ENV
|
||||||
yaml2json "${{ inputs.build_matrix_path }}" | jq
|
yq -oj "${{ inputs.build_matrix_path }}"
|
||||||
|
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -65,16 +62,23 @@ jobs:
|
|||||||
board: ${{ matrix.board }}
|
board: ${{ matrix.board }}
|
||||||
shield: ${{ matrix.shield }}
|
shield: ${{ matrix.shield }}
|
||||||
artifact_name: ${{ matrix.artifact-name }}
|
artifact_name: ${{ matrix.artifact-name }}
|
||||||
|
snippet: ${{ matrix.snippet }}
|
||||||
run: |
|
run: |
|
||||||
if [ -e zephyr/module.yml ]; then
|
if [ -e zephyr/module.yml ]; then
|
||||||
export zmk_load_arg=" -DZMK_EXTRA_MODULES='${GITHUB_WORKSPACE}'"
|
export zmk_load_arg=" -DZMK_EXTRA_MODULES='${GITHUB_WORKSPACE}'"
|
||||||
export new_tmp_dir=$(mktemp -d)
|
new_tmp_dir="${TMPDIR:-/tmp}/zmk-config"
|
||||||
|
mkdir -p "${new_tmp_dir}"
|
||||||
echo "base_dir=${new_tmp_dir}" >> $GITHUB_ENV
|
echo "base_dir=${new_tmp_dir}" >> $GITHUB_ENV
|
||||||
else
|
else
|
||||||
echo "base_dir=${GITHUB_WORKSPACE}" >> $GITHUB_ENV
|
echo "base_dir=${GITHUB_WORKSPACE}" >> $GITHUB_ENV
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -n "${snippet}" ]; then
|
||||||
|
extra_west_args="-S \"${snippet}\""
|
||||||
|
fi
|
||||||
|
|
||||||
echo "zephyr_version=${ZEPHYR_VERSION}" >> $GITHUB_ENV
|
echo "zephyr_version=${ZEPHYR_VERSION}" >> $GITHUB_ENV
|
||||||
|
echo "extra_west_args=${extra_west_args}" >> $GITHUB_ENV
|
||||||
echo "extra_cmake_args=${shield:+-DSHIELD=\"$shield\"}${zmk_load_arg}" >> $GITHUB_ENV
|
echo "extra_cmake_args=${shield:+-DSHIELD=\"$shield\"}${zmk_load_arg}" >> $GITHUB_ENV
|
||||||
echo "display_name=${shield:+$shield - }${board}" >> $GITHUB_ENV
|
echo "display_name=${shield:+$shield - }${board}" >> $GITHUB_ENV
|
||||||
echo "artifact_name=${artifact_name:-${shield:+$shield-}${board}-zmk}" >> $GITHUB_ENV
|
echo "artifact_name=${artifact_name:-${shield:+$shield-}${board}-zmk}" >> $GITHUB_ENV
|
||||||
@@ -110,7 +114,7 @@ jobs:
|
|||||||
|
|
||||||
- name: West Update
|
- name: West Update
|
||||||
working-directory: ${{ env.base_dir }}
|
working-directory: ${{ env.base_dir }}
|
||||||
run: west update
|
run: west update --fetch-opt=--filter=tree:0
|
||||||
|
|
||||||
- name: West Zephyr export
|
- name: West Zephyr export
|
||||||
working-directory: ${{ env.base_dir }}
|
working-directory: ${{ env.base_dir }}
|
||||||
@@ -119,7 +123,7 @@ jobs:
|
|||||||
- name: West Build (${{ env.display_name }})
|
- name: West Build (${{ env.display_name }})
|
||||||
working-directory: ${{ env.base_dir }}
|
working-directory: ${{ env.base_dir }}
|
||||||
shell: sh -x {0}
|
shell: sh -x {0}
|
||||||
run: west build -s zmk/app -d "${{ env.build_dir }}" -b "${{ matrix.board }}" -- -DZMK_CONFIG=${{ env.base_dir }}/${{ inputs.config_path }} ${{ env.extra_cmake_args }} ${{ matrix.cmake-args }}
|
run: west build -s zmk/app -d "${{ env.build_dir }}" -b "${{ matrix.board }}" ${{ env.extra_west_args }} -- -DZMK_CONFIG=${{ env.base_dir }}/${{ inputs.config_path }} ${{ env.extra_cmake_args }} ${{ matrix.cmake-args }}
|
||||||
|
|
||||||
- name: ${{ env.display_name }} Kconfig file
|
- name: ${{ env.display_name }} Kconfig file
|
||||||
run: |
|
run: |
|
||||||
@@ -159,5 +163,17 @@ jobs:
|
|||||||
- name: Archive (${{ env.display_name }})
|
- name: Archive (${{ env.display_name }})
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: ${{ inputs.archive_name }}
|
name: artifact-${{ env.artifact_name }}
|
||||||
path: ${{ env.build_dir }}/artifacts
|
path: ${{ env.build_dir }}/artifacts
|
||||||
|
|
||||||
|
merge:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: build
|
||||||
|
name: Merge Output Artifacts
|
||||||
|
steps:
|
||||||
|
- name: Merge Artifacts
|
||||||
|
uses: actions/upload-artifact/merge@v4
|
||||||
|
with:
|
||||||
|
name: ${{ inputs.archive_name }}
|
||||||
|
pattern: artifact-*
|
||||||
|
delete-merged: true
|
||||||
|
|||||||
29
.github/workflows/build.yml
vendored
29
.github/workflows/build.yml
vendored
@@ -12,12 +12,18 @@ on:
|
|||||||
schedule:
|
schedule:
|
||||||
- cron: "22 4 * * *"
|
- cron: "22 4 * * *"
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name == 'schedule' }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
if: ${{ always() }}
|
if: ${{ always() }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: docker.io/zmkfirmware/zmk-build-arm:3.2
|
image: docker.io/zmkfirmware/zmk-build-arm:3.5
|
||||||
needs: compile-matrix
|
needs: compile-matrix
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
@@ -25,6 +31,8 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Cache west modules
|
- name: Cache west modules
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
env:
|
env:
|
||||||
@@ -45,7 +53,7 @@ jobs:
|
|||||||
- name: Initialize workspace (west init)
|
- name: Initialize workspace (west init)
|
||||||
run: west init -l app
|
run: west init -l app
|
||||||
- name: Update modules (west update)
|
- name: Update modules (west update)
|
||||||
run: west update
|
run: west update --fetch-opt=--filter=tree:0
|
||||||
- name: Export Zephyr CMake package (west zephyr-export)
|
- name: Export Zephyr CMake package (west zephyr-export)
|
||||||
run: west zephyr-export
|
run: west zephyr-export
|
||||||
- name: Use Node.js
|
- name: Use Node.js
|
||||||
@@ -71,7 +79,7 @@ jobs:
|
|||||||
try {
|
try {
|
||||||
console.log(`::group::${{ matrix.board}} ${shieldArgs.shield} Build`)
|
console.log(`::group::${{ matrix.board}} ${shieldArgs.shield} Build`)
|
||||||
|
|
||||||
const output = execSync(`west build -s app -p -b ${{ matrix.board }} -- ${shieldArgs.shield ? '-DSHIELD="' + shieldArgs.shield + '"' : ''} ${shieldArgs['cmake-args'] || ''}`);
|
const output = execSync(`west build -s app -p -b ${{ matrix.board }} ${shieldArgs.snippet ? '-S ' + shieldArgs.snippet : ''} -- ${shieldArgs.shield ? '-DSHIELD="' + shieldArgs.shield + '"' : ''} ${shieldArgs['cmake-args'] || ''}`);
|
||||||
|
|
||||||
console.log(output.toString());
|
console.log(output.toString());
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@@ -131,7 +139,7 @@ jobs:
|
|||||||
throw new Error('Failed to build one or more configurations');
|
throw new Error('Failed to build one or more configurations');
|
||||||
}
|
}
|
||||||
compile-matrix:
|
compile-matrix:
|
||||||
if: ${{ always() }}
|
if: ${{ !cancelled() }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [core-coverage, board-changes, nightly]
|
needs: [core-coverage, board-changes, nightly]
|
||||||
outputs:
|
outputs:
|
||||||
@@ -162,6 +170,7 @@ jobs:
|
|||||||
perBoard[configuration.board].push({
|
perBoard[configuration.board].push({
|
||||||
shield: configuration.shield,
|
shield: configuration.shield,
|
||||||
'cmake-args': configuration['cmake-args'],
|
'cmake-args': configuration['cmake-args'],
|
||||||
|
snippet: configuration.snippet,
|
||||||
nickname: configuration.nickname
|
nickname: configuration.nickname
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -179,6 +188,8 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Use Node.js
|
- name: Use Node.js
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
@@ -284,7 +295,7 @@ jobs:
|
|||||||
});
|
});
|
||||||
}))).flat();
|
}))).flat();
|
||||||
nightly:
|
nightly:
|
||||||
if: ${{ github.event_name == 'schedule' }}
|
if: ${{ github.event_name == 'schedule' && github.repository_owner == 'zmkfirmware' }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: get-grouped-hardware
|
needs: get-grouped-hardware
|
||||||
outputs:
|
outputs:
|
||||||
@@ -335,6 +346,8 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Use Node.js
|
- name: Use Node.js
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
@@ -413,7 +426,11 @@ jobs:
|
|||||||
board-changes: ${{ steps.board-changes.outputs.result }}
|
board-changes: ${{ steps.board-changes.outputs.result }}
|
||||||
core-changes: ${{ steps.core-changes.outputs.result }}
|
core-changes: ${{ steps.core-changes.outputs.result }}
|
||||||
steps:
|
steps:
|
||||||
- uses: tj-actions/changed-files@v42
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
- 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
|
id: changed-files
|
||||||
with:
|
with:
|
||||||
json: true
|
json: true
|
||||||
|
|||||||
@@ -18,11 +18,11 @@ jobs:
|
|||||||
validate-metadata:
|
validate-metadata:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: docker.io/zmkfirmware/zmk-dev-arm:3.2
|
image: docker.io/zmkfirmware/zmk-dev-arm:3.5
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: pip install -r app/scripts/requirements.txt
|
run: pip install --break-system-packages -r app/scripts/requirements.txt
|
||||||
- name: West init
|
- name: West init
|
||||||
run: west init -l app
|
run: west init -l app
|
||||||
- name: Update modules (west update)
|
- name: Update modules (west update)
|
||||||
|
|||||||
4
.github/workflows/pre-commit.yml
vendored
4
.github/workflows/pre-commit.yml
vendored
@@ -9,7 +9,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: actions/setup-python@v5
|
- uses: actions/setup-python@v6
|
||||||
with:
|
with:
|
||||||
python-version: 3.x
|
python-version: 3.x
|
||||||
- uses: pre-commit/action@v3.0.0
|
- uses: pre-commit/action@v3.0.1
|
||||||
|
|||||||
80
.github/workflows/release-please.yml
vendored
Normal file
80
.github/workflows/release-please.yml
vendored
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- "v*.*-branch"
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
|
name: release-please
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
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
|
||||||
|
|
||||||
|
- name: Create major.minor branch
|
||||||
|
if: ${{ needs.handle-commit.outputs.patch == '0' }}
|
||||||
|
run: |
|
||||||
|
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
|
||||||
|
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:$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
|
||||||
6
.github/workflows/test.yml
vendored
6
.github/workflows/test.yml
vendored
@@ -4,12 +4,14 @@ on:
|
|||||||
push:
|
push:
|
||||||
paths:
|
paths:
|
||||||
- ".github/workflows/test.yml"
|
- ".github/workflows/test.yml"
|
||||||
|
- "app/run-test.sh"
|
||||||
- "app/tests/**"
|
- "app/tests/**"
|
||||||
- "app/src/**"
|
- "app/src/**"
|
||||||
- "app/include/**"
|
- "app/include/**"
|
||||||
pull_request:
|
pull_request:
|
||||||
paths:
|
paths:
|
||||||
- ".github/workflows/test.yml"
|
- ".github/workflows/test.yml"
|
||||||
|
- "app/run-test.sh"
|
||||||
- "app/tests/**"
|
- "app/tests/**"
|
||||||
- "app/src/**"
|
- "app/src/**"
|
||||||
- "app/include/**"
|
- "app/include/**"
|
||||||
@@ -35,7 +37,7 @@ jobs:
|
|||||||
test: ${{ fromJSON(needs.collect-tests.outputs.test-dirs) }}
|
test: ${{ fromJSON(needs.collect-tests.outputs.test-dirs) }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: docker.io/zmkfirmware/zmk-build-arm:3.2
|
image: docker.io/zmkfirmware/zmk-build-arm:3.5
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
@@ -59,7 +61,7 @@ jobs:
|
|||||||
- name: Initialize workspace (west init)
|
- name: Initialize workspace (west init)
|
||||||
run: west init -l app
|
run: west init -l app
|
||||||
- name: Update modules (west update)
|
- name: Update modules (west update)
|
||||||
run: west update
|
run: west update --fetch-opt=--filter=tree:0
|
||||||
- name: Export Zephyr CMake package (west zephyr-export)
|
- name: Export Zephyr CMake package (west zephyr-export)
|
||||||
run: west zephyr-export
|
run: west zephyr-export
|
||||||
- name: Test ${{ matrix.test }}
|
- name: Test ${{ matrix.test }}
|
||||||
|
|||||||
7
.gitignore
vendored
7
.gitignore
vendored
@@ -5,7 +5,14 @@
|
|||||||
/zephyr
|
/zephyr
|
||||||
/zmk-config
|
/zmk-config
|
||||||
/build
|
/build
|
||||||
|
|
||||||
|
# macOS
|
||||||
*.DS_Store
|
*.DS_Store
|
||||||
|
|
||||||
|
# Python
|
||||||
__pycache__
|
__pycache__
|
||||||
.python-version
|
.python-version
|
||||||
.venv
|
.venv
|
||||||
|
|
||||||
|
# clangd
|
||||||
|
app/.cache/
|
||||||
|
|||||||
138
.gitlint
Normal file
138
.gitlint
Normal file
@@ -0,0 +1,138 @@
|
|||||||
|
# Edit this file as you like.
|
||||||
|
#
|
||||||
|
# All these sections are optional. Each section with the exception of [general] represents
|
||||||
|
# one rule and each key in it is an option for that specific rule.
|
||||||
|
#
|
||||||
|
# Rules and sections can be referenced by their full name or by id. For example
|
||||||
|
# section "[body-max-line-length]" could also be written as "[B1]". Full section names are
|
||||||
|
# used in here for clarity.
|
||||||
|
#
|
||||||
|
[general]
|
||||||
|
# Ignore certain rules, this example uses both full name and id
|
||||||
|
# ignore=title-trailing-punctuation, T3
|
||||||
|
|
||||||
|
# verbosity should be a value between 1 and 3, the commandline -v flags take precedence over this
|
||||||
|
# verbosity = 2
|
||||||
|
|
||||||
|
# By default gitlint will ignore merge, revert, fixup, fixup=amend, and squash commits.
|
||||||
|
# ignore-merge-commits=true
|
||||||
|
# ignore-revert-commits=true
|
||||||
|
# ignore-fixup-commits=true
|
||||||
|
# ignore-fixup-amend-commits=true
|
||||||
|
# ignore-squash-commits=true
|
||||||
|
|
||||||
|
# Ignore any data sent to gitlint via stdin
|
||||||
|
# ignore-stdin=true
|
||||||
|
|
||||||
|
# Fetch additional meta-data from the local repository when manually passing a
|
||||||
|
# commit message to gitlint via stdin or --commit-msg. Disabled by default.
|
||||||
|
# staged=true
|
||||||
|
|
||||||
|
# Hard fail when the target commit range is empty. Note that gitlint will
|
||||||
|
# already fail by default on invalid commit ranges. This option is specifically
|
||||||
|
# to tell gitlint to fail on *valid but empty* commit ranges.
|
||||||
|
# Disabled by default.
|
||||||
|
# fail-without-commits=true
|
||||||
|
|
||||||
|
# Whether to use Python `search` instead of `match` semantics in rules that use
|
||||||
|
# regexes. Context: https://github.com/jorisroovers/gitlint/issues/254
|
||||||
|
# Disabled by default, but will be enabled by default in the future.
|
||||||
|
# regex-style-search=true
|
||||||
|
|
||||||
|
# Enable debug mode (prints more output). Disabled by default.
|
||||||
|
# debug=true
|
||||||
|
|
||||||
|
# Enable community contributed rules
|
||||||
|
# See http://jorisroovers.github.io/gitlint/contrib_rules for details
|
||||||
|
contrib=contrib-title-conventional-commits,CT1,contrib-disallow-cleanup-commits,CC2
|
||||||
|
|
||||||
|
# Set the extra-path where gitlint will search for user defined rules
|
||||||
|
# See http://jorisroovers.github.io/gitlint/user_defined_rules for details
|
||||||
|
# extra-path=examples/
|
||||||
|
|
||||||
|
[title-max-length]
|
||||||
|
line-length=80
|
||||||
|
|
||||||
|
# Conversely, you can also enforce minimal length of a title with the
|
||||||
|
# "title-min-length" rule:
|
||||||
|
# [title-min-length]
|
||||||
|
# min-length=5
|
||||||
|
|
||||||
|
# [title-must-not-contain-word]
|
||||||
|
# Comma-separated list of words that should not occur in the title. Matching is case
|
||||||
|
# insensitive. It's fine if the keyword occurs as part of a larger word (so "WIPING"
|
||||||
|
# will not cause a violation, but "WIP: my title" will.
|
||||||
|
# words=wip
|
||||||
|
|
||||||
|
# [title-match-regex]
|
||||||
|
# python-style regex that the commit-msg title must match
|
||||||
|
# Note that the regex can contradict with other rules if not used correctly
|
||||||
|
# (e.g. title-must-not-contain-word).
|
||||||
|
# regex=^US[0-9]*
|
||||||
|
|
||||||
|
# [body-max-line-length]
|
||||||
|
# line-length=72
|
||||||
|
|
||||||
|
# [body-min-length]
|
||||||
|
# min-length=5
|
||||||
|
|
||||||
|
# [body-is-missing]
|
||||||
|
# Whether to ignore this rule on merge commits (which typically only have a title)
|
||||||
|
# default = True
|
||||||
|
# ignore-merge-commits=false
|
||||||
|
|
||||||
|
# [body-changed-file-mention]
|
||||||
|
# List of files that need to be explicitly mentioned in the body when they are changed
|
||||||
|
# This is useful for when developers often erroneously edit certain files or git submodules.
|
||||||
|
# By specifying this rule, developers can only change the file when they explicitly reference
|
||||||
|
# it in the commit message.
|
||||||
|
# files=gitlint-core/gitlint/rules.py,README.md
|
||||||
|
|
||||||
|
# [body-match-regex]
|
||||||
|
# python-style regex that the commit-msg body must match.
|
||||||
|
# E.g. body must end in My-Commit-Tag: foo
|
||||||
|
# regex=My-Commit-Tag: foo$
|
||||||
|
|
||||||
|
# [author-valid-email]
|
||||||
|
# python-style regex that the commit author email address must match.
|
||||||
|
# For example, use the following regex if you only want to allow email addresses from foo.com
|
||||||
|
# regex=[^@]+@foo.com
|
||||||
|
|
||||||
|
# [ignore-by-title]
|
||||||
|
# Ignore certain rules for commits of which the title matches a regex
|
||||||
|
# E.g. Match commit titles that start with "Release"
|
||||||
|
# regex=^Release(.*)
|
||||||
|
|
||||||
|
# Ignore certain rules, you can reference them by their id or by their full name
|
||||||
|
# Use 'all' to ignore all rules
|
||||||
|
# ignore=T1,body-min-length
|
||||||
|
|
||||||
|
# [ignore-by-body]
|
||||||
|
# Ignore certain rules for commits of which the body has a line that matches a regex
|
||||||
|
# E.g. Match bodies that have a line that that contain "release"
|
||||||
|
# regex=(.*)release(.*)
|
||||||
|
#
|
||||||
|
# Ignore certain rules, you can reference them by their id or by their full name
|
||||||
|
# Use 'all' to ignore all rules
|
||||||
|
# ignore=T1,body-min-length
|
||||||
|
|
||||||
|
# [ignore-body-lines]
|
||||||
|
# Ignore certain lines in a commit body that match a regex.
|
||||||
|
# E.g. Ignore all lines that start with 'Co-Authored-By'
|
||||||
|
# regex=^Co-Authored-By
|
||||||
|
|
||||||
|
# [ignore-by-author-name]
|
||||||
|
# Ignore certain rules for commits of which the author name matches a regex
|
||||||
|
# E.g. Match commits made by dependabot
|
||||||
|
# regex=(.*)dependabot(.*)
|
||||||
|
#
|
||||||
|
# Ignore certain rules, you can reference them by their id or by their full name
|
||||||
|
# Use 'all' to ignore all rules
|
||||||
|
# ignore=T1,body-min-length
|
||||||
|
|
||||||
|
# This is a contrib rule - a community contributed rule. These are disabled by default.
|
||||||
|
# You need to explicitly enable them one-by-one by adding them to the "contrib" option
|
||||||
|
# under [general] section above.
|
||||||
|
# [contrib-title-conventional-commits]
|
||||||
|
# Specify allowed commit types. For details see: https://www.conventionalcommits.org/
|
||||||
|
# types = bugfix,user-story,epic
|
||||||
@@ -4,20 +4,28 @@ repos:
|
|||||||
rev: v1.5.1
|
rev: v1.5.1
|
||||||
hooks:
|
hooks:
|
||||||
- id: remove-tabs
|
- id: remove-tabs
|
||||||
exclude: "vendor-prefixes\\.txt$"
|
exclude: "vendor-prefixes\\.txt$|.git/COMMIT_EDITMSG"
|
||||||
- repo: https://github.com/pocc/pre-commit-hooks
|
- repo: https://github.com/pre-commit/mirrors-clang-format
|
||||||
rev: v1.3.5
|
rev: v18.1.8
|
||||||
hooks:
|
hooks:
|
||||||
- id: clang-format
|
- id: clang-format
|
||||||
|
types_or: [c++, c]
|
||||||
args:
|
args:
|
||||||
- -i
|
- -i
|
||||||
- repo: https://github.com/pre-commit/mirrors-prettier
|
- repo: https://github.com/rbubley/mirrors-prettier
|
||||||
rev: v2.7.1
|
rev: 787fb9f542b140ba0b2aced38e6a3e68021647a3
|
||||||
hooks:
|
hooks:
|
||||||
- id: prettier
|
- id: prettier
|
||||||
# Workaround for https://github.com/pre-commit/mirrors-prettier/issues/29
|
exclude: |
|
||||||
additional_dependencies:
|
(?x)^(
|
||||||
- prettier@2.8.7
|
.git/COMMIT_EDITMSG|
|
||||||
|
CHANGELOG.md|
|
||||||
|
.release-please-manifest.json
|
||||||
|
)$
|
||||||
|
- repo: https://github.com/jorisroovers/gitlint
|
||||||
|
rev: v0.19.1
|
||||||
|
hooks:
|
||||||
|
- id: gitlint
|
||||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||||
rev: v4.4.0
|
rev: v4.4.0
|
||||||
hooks:
|
hooks:
|
||||||
|
|||||||
1
.release-please-manifest.json
Normal file
1
.release-please-manifest.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{".":"0.3.0"}
|
||||||
4
.vscode/extensions.json
vendored
4
.vscode/extensions.json
vendored
@@ -1,9 +1,11 @@
|
|||||||
{
|
{
|
||||||
"recommendations": [
|
"recommendations": [
|
||||||
"esbenp.prettier-vscode",
|
"esbenp.prettier-vscode",
|
||||||
|
"ms-python.black-formatter",
|
||||||
"ms-python.python",
|
"ms-python.python",
|
||||||
"ms-vscode.cpptools",
|
"ms-vscode.cpptools",
|
||||||
"plorefice.devicetree",
|
"plorefice.devicetree",
|
||||||
"twxs.cmake"
|
"twxs.cmake",
|
||||||
|
"unifiedjs.vscode-mdx"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
4
.vscode/settings.json
vendored
4
.vscode/settings.json
vendored
@@ -3,7 +3,7 @@
|
|||||||
"*.overlay": "dts",
|
"*.overlay": "dts",
|
||||||
"*.keymap": "dts"
|
"*.keymap": "dts"
|
||||||
},
|
},
|
||||||
"python.formatting.provider": "black",
|
"python.analysis.include": ["app/scripts", "zephyr/scripts"],
|
||||||
"[c]": {
|
"[c]": {
|
||||||
"editor.formatOnSave": true
|
"editor.formatOnSave": true
|
||||||
},
|
},
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
},
|
},
|
||||||
"[python]": {
|
"[python]": {
|
||||||
"editor.formatOnSave": true,
|
"editor.formatOnSave": true,
|
||||||
"editor.defaultFormatter": "ms-python.python"
|
"editor.defaultFormatter": "ms-python.black-formatter"
|
||||||
},
|
},
|
||||||
"[css][json][jsonc][html][markdown][yaml]": {
|
"[css][json][jsonc][html][markdown][yaml]": {
|
||||||
"editor.formatOnSave": true,
|
"editor.formatOnSave": true,
|
||||||
|
|||||||
116
CHANGELOG.md
Normal file
116
CHANGELOG.md
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
# 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)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* **boards:** Add glove80 nexus node for extension GPIO. ([#2594](https://github.com/zmkfirmware/zmk/issues/2594)) ([fb359f5](https://github.com/zmkfirmware/zmk/commit/fb359f576619940164ca2e770b49b7b34f13428e))
|
||||||
|
* **boards:** add nrf52833-nosd snippet ([63af296](https://github.com/zmkfirmware/zmk/commit/63af296b6efd8d677d584f372c9da9a4fedaa496))
|
||||||
|
* **boards:** add nrf52840-nosd snippet ([4438b7b](https://github.com/zmkfirmware/zmk/commit/4438b7b835bfd1d4e89cdd955a4ab0fd2e2ae3bf))
|
||||||
|
* **ci:** Add release-please automation with VERSION ([#2622](https://github.com/zmkfirmware/zmk/issues/2622)) ([ffa485c](https://github.com/zmkfirmware/zmk/commit/ffa485c11b48444acf3adf1e3c1cb3eed16fad94))
|
||||||
|
* **drivers:** Support init high/low in 595 driver ([888c0d9](https://github.com/zmkfirmware/zmk/commit/888c0d966cd52f3ab5145992f61b14d6262c1951))
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **boards:** Disable uart serial node in Xiao BLE by default ([#2672](https://github.com/zmkfirmware/zmk/issues/2672)) ([230b860](https://github.com/zmkfirmware/zmk/commit/230b860f31063774c3bcc19afb6f92479462de24))
|
||||||
|
* **boards:** Fix typo in BT75 metadata ([c9553c3](https://github.com/zmkfirmware/zmk/commit/c9553c31e3a3f39964391b006492995b5bb09c39))
|
||||||
|
* Disable display feature for settings_reset ([b0f5789](https://github.com/zmkfirmware/zmk/commit/b0f5789b128f0f5599341398898fdb0e0407b2d3))
|
||||||
|
* Fix inconsistent column offset property ([c7473fc](https://github.com/zmkfirmware/zmk/commit/c7473fc32557d2d384ab78d3acf51a05488f0214))
|
||||||
|
* include a header file for RC macros ([#2649](https://github.com/zmkfirmware/zmk/issues/2649)) ([f8eff2f](https://github.com/zmkfirmware/zmk/commit/f8eff2fe34609c91211c25113f9d7db09f7d1689))
|
||||||
|
* **studio:** Improved error message when keyboard is missing a physical layout. ([fed66a9](https://github.com/zmkfirmware/zmk/commit/fed66a92d000f4c8e0019d9ccdd167271324e8e9))
|
||||||
@@ -86,6 +86,12 @@ documentation to areas not currently covered are greatly appreciated.
|
|||||||
ZMK uses `prettier` to format documentation files. You can run prettier with `npm run prettier:format`.
|
ZMK uses `prettier` to format documentation files. You can run prettier with `npm run prettier:format`.
|
||||||
You can setup git to run prettier automatically when you commit by installing the pre-commit hooks: `pip3 install pre-commit`, `pre-commit install`.
|
You can setup git to run prettier automatically when you commit by installing the pre-commit hooks: `pip3 install pre-commit`, `pre-commit install`.
|
||||||
|
|
||||||
|
### Linting
|
||||||
|
|
||||||
|
This repository utilizes ESLint for code linting to ensure consistent code style and identify potential errors or bugs early in the development process.
|
||||||
|
|
||||||
|
You can run ESLint with `npm run lint` to verify your changes.
|
||||||
|
|
||||||
## Code Contributions
|
## Code Contributions
|
||||||
|
|
||||||
### Development Setup
|
### Development Setup
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
endOfLine: "auto",
|
endOfLine: "auto",
|
||||||
|
trailingComma: "es5",
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 3.13.1)
|
|||||||
|
|
||||||
set(CONFIG_APPLICATION_DEFINED_SYSCALL true)
|
set(CONFIG_APPLICATION_DEFINED_SYSCALL true)
|
||||||
|
|
||||||
|
set(ZEPHYR_BOARD_ALIASES "boards/aliases.cmake")
|
||||||
set(ZEPHYR_EXTRA_MODULES "${ZMK_EXTRA_MODULES};${CMAKE_CURRENT_SOURCE_DIR}/module;${CMAKE_CURRENT_SOURCE_DIR}/keymap-module")
|
set(ZEPHYR_EXTRA_MODULES "${ZMK_EXTRA_MODULES};${CMAKE_CURRENT_SOURCE_DIR}/module;${CMAKE_CURRENT_SOURCE_DIR}/keymap-module")
|
||||||
|
|
||||||
# Find Zephyr. This also loads Zephyr's build system.
|
# Find Zephyr. This also loads Zephyr's build system.
|
||||||
@@ -11,33 +12,44 @@ project(zmk)
|
|||||||
zephyr_linker_sources(SECTIONS include/linker/zmk-behaviors.ld)
|
zephyr_linker_sources(SECTIONS include/linker/zmk-behaviors.ld)
|
||||||
zephyr_linker_sources(RODATA include/linker/zmk-events.ld)
|
zephyr_linker_sources(RODATA include/linker/zmk-events.ld)
|
||||||
|
|
||||||
|
if(CONFIG_ZMK_BEHAVIOR_LOCAL_IDS)
|
||||||
|
zephyr_linker_sources(DATA_SECTIONS include/linker/zmk-behavior-local-id-map.ld)
|
||||||
|
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
|
# Add your source file to the "app" target. This must come after
|
||||||
# find_package(Zephyr) which defines the target.
|
# find_package(Zephyr) which defines the target.
|
||||||
target_include_directories(app PRIVATE include)
|
target_include_directories(app PRIVATE include)
|
||||||
target_sources(app PRIVATE src/stdlib.c)
|
target_sources(app PRIVATE src/stdlib.c)
|
||||||
target_sources(app PRIVATE src/activity.c)
|
target_sources(app PRIVATE src/activity.c)
|
||||||
target_sources(app PRIVATE src/behavior.c)
|
target_sources(app PRIVATE src/behavior.c)
|
||||||
target_sources(app PRIVATE src/kscan.c)
|
target_sources_ifdef(CONFIG_ZMK_KSCAN_SIDEBAND_BEHAVIORS app PRIVATE src/kscan_sideband_behaviors.c)
|
||||||
target_sources(app PRIVATE src/matrix_transform.c)
|
target_sources(app PRIVATE src/matrix_transform.c)
|
||||||
|
target_sources(app PRIVATE src/physical_layouts.c)
|
||||||
target_sources(app PRIVATE src/sensors.c)
|
target_sources(app PRIVATE src/sensors.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_WPM app PRIVATE src/wpm.c)
|
target_sources_ifdef(CONFIG_ZMK_WPM app PRIVATE src/wpm.c)
|
||||||
target_sources(app PRIVATE src/event_manager.c)
|
target_sources(app PRIVATE src/event_manager.c)
|
||||||
|
target_sources_ifdef(CONFIG_ZMK_PM app PRIVATE src/pm.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_EXT_POWER app PRIVATE src/ext_power_generic.c)
|
target_sources_ifdef(CONFIG_ZMK_EXT_POWER app PRIVATE src/ext_power_generic.c)
|
||||||
|
target_sources_ifdef(CONFIG_ZMK_GPIO_KEY_WAKEUP_TRIGGER app PRIVATE src/gpio_key_wakeup_trigger.c)
|
||||||
target_sources(app PRIVATE src/events/activity_state_changed.c)
|
target_sources(app PRIVATE src/events/activity_state_changed.c)
|
||||||
target_sources(app PRIVATE src/events/position_state_changed.c)
|
target_sources(app PRIVATE src/events/position_state_changed.c)
|
||||||
target_sources(app PRIVATE src/events/sensor_event.c)
|
target_sources(app PRIVATE src/events/sensor_event.c)
|
||||||
target_sources(app PRIVATE src/events/mouse_button_state_changed.c)
|
|
||||||
target_sources_ifdef(CONFIG_ZMK_WPM app PRIVATE src/events/wpm_state_changed.c)
|
target_sources_ifdef(CONFIG_ZMK_WPM app PRIVATE src/events/wpm_state_changed.c)
|
||||||
target_sources_ifdef(CONFIG_USB_DEVICE_STACK app PRIVATE src/events/usb_conn_state_changed.c)
|
target_sources_ifdef(CONFIG_USB_DEVICE_STACK app PRIVATE src/events/usb_conn_state_changed.c)
|
||||||
target_sources(app PRIVATE src/behaviors/behavior_reset.c)
|
target_sources(app PRIVATE src/behaviors/behavior_reset.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_EXT_POWER app PRIVATE src/behaviors/behavior_ext_power.c)
|
target_sources_ifdef(CONFIG_ZMK_EXT_POWER app PRIVATE src/behaviors/behavior_ext_power.c)
|
||||||
|
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_SOFT_OFF app PRIVATE src/behaviors/behavior_soft_off.c)
|
||||||
|
add_subdirectory_ifdef(CONFIG_ZMK_POINTING src/pointing/)
|
||||||
if ((NOT CONFIG_ZMK_SPLIT) OR CONFIG_ZMK_SPLIT_ROLE_CENTRAL)
|
if ((NOT CONFIG_ZMK_SPLIT) OR CONFIG_ZMK_SPLIT_ROLE_CENTRAL)
|
||||||
target_sources(app PRIVATE src/hid.c)
|
target_sources(app PRIVATE src/hid.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_MOUSE app PRIVATE src/mouse.c)
|
|
||||||
target_sources(app PRIVATE src/behaviors/behavior_key_press.c)
|
target_sources(app PRIVATE src/behaviors/behavior_key_press.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_KEY_TOGGLE app PRIVATE src/behaviors/behavior_key_toggle.c)
|
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_KEY_TOGGLE app PRIVATE src/behaviors/behavior_key_toggle.c)
|
||||||
target_sources(app PRIVATE src/behaviors/behavior_hold_tap.c)
|
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_HOLD_TAP app PRIVATE src/behaviors/behavior_hold_tap.c)
|
||||||
target_sources(app PRIVATE src/behaviors/behavior_sticky_key.c)
|
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_STICKY_KEY app PRIVATE src/behaviors/behavior_sticky_key.c)
|
||||||
target_sources(app PRIVATE src/behaviors/behavior_caps_word.c)
|
target_sources(app PRIVATE src/behaviors/behavior_caps_word.c)
|
||||||
target_sources(app PRIVATE src/behaviors/behavior_key_repeat.c)
|
target_sources(app PRIVATE src/behaviors/behavior_key_repeat.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_MACRO app PRIVATE src/behaviors/behavior_macro.c)
|
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_MACRO app PRIVATE src/behaviors/behavior_macro.c)
|
||||||
@@ -52,8 +64,10 @@ if ((NOT CONFIG_ZMK_SPLIT) OR CONFIG_ZMK_SPLIT_ROLE_CENTRAL)
|
|||||||
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_SENSOR_ROTATE_VAR app PRIVATE src/behaviors/behavior_sensor_rotate_var.c)
|
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_SENSOR_ROTATE_VAR app PRIVATE src/behaviors/behavior_sensor_rotate_var.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_SENSOR_ROTATE_COMMON app PRIVATE src/behaviors/behavior_sensor_rotate_common.c)
|
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_SENSOR_ROTATE_COMMON app PRIVATE src/behaviors/behavior_sensor_rotate_common.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_MOUSE_KEY_PRESS app PRIVATE src/behaviors/behavior_mouse_key_press.c)
|
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_MOUSE_KEY_PRESS app PRIVATE src/behaviors/behavior_mouse_key_press.c)
|
||||||
|
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_STUDIO_UNLOCK app PRIVATE src/behaviors/behavior_studio_unlock.c)
|
||||||
|
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_INPUT_TWO_AXIS app PRIVATE src/behaviors/behavior_input_two_axis.c)
|
||||||
target_sources(app PRIVATE src/combo.c)
|
target_sources(app PRIVATE src/combo.c)
|
||||||
target_sources(app PRIVATE src/behaviors/behavior_tap_dance.c)
|
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_TAP_DANCE app PRIVATE src/behaviors/behavior_tap_dance.c)
|
||||||
target_sources(app PRIVATE src/behavior_queue.c)
|
target_sources(app PRIVATE src/behavior_queue.c)
|
||||||
target_sources(app PRIVATE src/conditional_layer.c)
|
target_sources(app PRIVATE src/conditional_layer.c)
|
||||||
target_sources(app PRIVATE src/endpoints.c)
|
target_sources(app PRIVATE src/endpoints.c)
|
||||||
@@ -82,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_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)
|
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_USB_DEVICE_STACK app PRIVATE src/usb.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_USB app PRIVATE src/usb_hid.c)
|
target_sources_ifdef(CONFIG_ZMK_USB app PRIVATE src/usb_hid.c)
|
||||||
@@ -92,5 +106,29 @@ target_sources_ifdef(CONFIG_ZMK_LOW_PRIORITY_WORK_QUEUE app PRIVATE src/workqueu
|
|||||||
target_sources(app PRIVATE src/main.c)
|
target_sources(app PRIVATE src/main.c)
|
||||||
|
|
||||||
add_subdirectory(src/display/)
|
add_subdirectory(src/display/)
|
||||||
|
add_subdirectory_ifdef(CONFIG_SETTINGS src/settings/)
|
||||||
|
|
||||||
|
if (CONFIG_ZMK_STUDIO_RPC)
|
||||||
|
# For some reason this is failing if run from a different sub-file.
|
||||||
|
list(APPEND CMAKE_MODULE_PATH ${ZEPHYR_BASE}/modules/nanopb)
|
||||||
|
|
||||||
|
include(nanopb)
|
||||||
|
|
||||||
|
# Turn off the default nanopb behavior
|
||||||
|
set(NANOPB_GENERATE_CPP_STANDALONE OFF)
|
||||||
|
|
||||||
|
nanopb_generate_cpp(proto_srcs proto_hdrs RELPATH ${ZEPHYR_ZMK_STUDIO_MESSAGES_MODULE_DIR}
|
||||||
|
${ZEPHYR_ZMK_STUDIO_MESSAGES_MODULE_DIR}/proto/zmk/studio.proto
|
||||||
|
${ZEPHYR_ZMK_STUDIO_MESSAGES_MODULE_DIR}/proto/zmk/meta.proto
|
||||||
|
${ZEPHYR_ZMK_STUDIO_MESSAGES_MODULE_DIR}/proto/zmk/core.proto
|
||||||
|
${ZEPHYR_ZMK_STUDIO_MESSAGES_MODULE_DIR}/proto/zmk/behaviors.proto
|
||||||
|
${ZEPHYR_ZMK_STUDIO_MESSAGES_MODULE_DIR}/proto/zmk/keymap.proto
|
||||||
|
)
|
||||||
|
|
||||||
|
target_include_directories(app PUBLIC ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
target_sources(app PRIVATE ${proto_srcs} ${proto_hdrs})
|
||||||
|
|
||||||
|
add_subdirectory(src/studio)
|
||||||
|
endif()
|
||||||
|
|
||||||
zephyr_cc_option(-Wfatal-errors)
|
zephyr_cc_option(-Wfatal-errors)
|
||||||
|
|||||||
266
app/Kconfig
266
app/Kconfig
@@ -37,6 +37,17 @@ config BT_DIS_MODEL
|
|||||||
config BT_DIS_MANUF
|
config BT_DIS_MANUF
|
||||||
default "ZMK Project"
|
default "ZMK Project"
|
||||||
|
|
||||||
|
# Hardware specific overrides
|
||||||
|
|
||||||
|
if SOC_SERIES_NRF52X
|
||||||
|
|
||||||
|
# Default on for our usage until boards implement retained bootmode.
|
||||||
|
config NRF_STORE_REBOOT_TYPE_GPREGRET
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
|
||||||
|
endif # SOC_SERIES_NRF52X
|
||||||
|
|
||||||
menu "HID"
|
menu "HID"
|
||||||
|
|
||||||
choice ZMK_HID_REPORT_TYPE
|
choice ZMK_HID_REPORT_TYPE
|
||||||
@@ -70,14 +81,11 @@ if ZMK_HID_REPORT_TYPE_HKRO
|
|||||||
|
|
||||||
config ZMK_HID_KEYBOARD_REPORT_SIZE
|
config ZMK_HID_KEYBOARD_REPORT_SIZE
|
||||||
int "# Keyboard Keys Reportable"
|
int "# Keyboard Keys Reportable"
|
||||||
default 6
|
|
||||||
|
|
||||||
endif
|
endif # ZMK_HID_REPORT_TYPE_HKRO
|
||||||
|
|
||||||
config ZMK_HID_CONSUMER_REPORT_SIZE
|
config ZMK_HID_CONSUMER_REPORT_SIZE
|
||||||
int "# Consumer Keys Reportable"
|
int "# Consumer Keys Reportable"
|
||||||
default 6
|
|
||||||
|
|
||||||
|
|
||||||
choice ZMK_HID_CONSUMER_REPORT_USAGES
|
choice ZMK_HID_CONSUMER_REPORT_USAGES
|
||||||
prompt "HID Report Type"
|
prompt "HID Report Type"
|
||||||
@@ -102,6 +110,12 @@ config ZMK_HID_INDICATORS
|
|||||||
Enable HID indicators, used for detecting state of Caps/Scroll/Num Lock,
|
Enable HID indicators, used for detecting state of Caps/Scroll/Num Lock,
|
||||||
Kata, and Compose.
|
Kata, and Compose.
|
||||||
|
|
||||||
|
config ZMK_HID_SEPARATE_MOD_RELEASE_REPORT
|
||||||
|
bool "Release Modifiers Separately"
|
||||||
|
help
|
||||||
|
Send a separate release event for the modifiers, to make sure the release
|
||||||
|
of the modifier doesn't get recognized before the actual key's release event.
|
||||||
|
|
||||||
menu "Output Types"
|
menu "Output Types"
|
||||||
|
|
||||||
config ZMK_USB
|
config ZMK_USB
|
||||||
@@ -125,8 +139,7 @@ config USB_NUMOF_EP_WRITE_RETRIES
|
|||||||
config USB_HID_POLL_INTERVAL_MS
|
config USB_HID_POLL_INTERVAL_MS
|
||||||
default 1
|
default 1
|
||||||
|
|
||||||
#ZMK_USB
|
endif # ZMK_USB
|
||||||
endif
|
|
||||||
|
|
||||||
menuconfig ZMK_BLE
|
menuconfig ZMK_BLE
|
||||||
bool "BLE (HID over GATT)"
|
bool "BLE (HID over GATT)"
|
||||||
@@ -136,6 +149,7 @@ menuconfig ZMK_BLE
|
|||||||
select BT_SMP_APP_PAIRING_ACCEPT
|
select BT_SMP_APP_PAIRING_ACCEPT
|
||||||
select BT_PERIPHERAL
|
select BT_PERIPHERAL
|
||||||
select BT_DIS
|
select BT_DIS
|
||||||
|
imply BT_DEVICE_NAME_DYNAMIC
|
||||||
imply BT_SETTINGS if !ARCH_POSIX
|
imply BT_SETTINGS if !ARCH_POSIX
|
||||||
imply SETTINGS if !ARCH_POSIX
|
imply SETTINGS if !ARCH_POSIX
|
||||||
imply ZMK_BATTERY_REPORTING if !ARCH_POSIX
|
imply ZMK_BATTERY_REPORTING if !ARCH_POSIX
|
||||||
@@ -145,17 +159,14 @@ if ZMK_BLE
|
|||||||
config ZMK_BLE_EXPERIMENTAL_CONN
|
config ZMK_BLE_EXPERIMENTAL_CONN
|
||||||
bool "Experimental BLE connection changes"
|
bool "Experimental BLE connection changes"
|
||||||
help
|
help
|
||||||
Enables a combination of settings that are planned to be default in future versions of ZMK
|
Enables settings that are planned to be default in future versions of ZMK
|
||||||
to improve connection stability. This includes changes to timing on BLE pairing initation,
|
to improve connection stability.
|
||||||
restores use of the updated/new LLCP implementation, and disables 2M PHY support.
|
|
||||||
|
|
||||||
config ZMK_BLE_EXPERIMENTAL_SEC
|
config ZMK_BLE_EXPERIMENTAL_SEC
|
||||||
bool "Experimental BLE security changes"
|
bool "Experimental BLE security changes"
|
||||||
imply BT_SMP_ALLOW_UNAUTH_OVERWRITE
|
imply BT_SMP_ALLOW_UNAUTH_OVERWRITE
|
||||||
help
|
help
|
||||||
Enables a combination of settings that are planned to be officially supported in the future.
|
Enables security settings that are planned to be officially supported in the future.
|
||||||
This includes enabling BT Secure Connection passkey entry, and allows overwrite of keys from
|
|
||||||
previously paired hosts.
|
|
||||||
|
|
||||||
config ZMK_BLE_EXPERIMENTAL_FEATURES
|
config ZMK_BLE_EXPERIMENTAL_FEATURES
|
||||||
bool "Experimental BLE connection and security settings/features"
|
bool "Experimental BLE connection and security settings/features"
|
||||||
@@ -166,17 +177,11 @@ config ZMK_BLE_EXPERIMENTAL_FEATURES
|
|||||||
|
|
||||||
config ZMK_BLE_PASSKEY_ENTRY
|
config ZMK_BLE_PASSKEY_ENTRY
|
||||||
bool "Require passkey entry on the keyboard to complete pairing"
|
bool "Require passkey entry on the keyboard to complete pairing"
|
||||||
default n
|
|
||||||
select RING_BUFFER
|
select RING_BUFFER
|
||||||
|
|
||||||
config BT_SMP_ALLOW_UNAUTH_OVERWRITE
|
config BT_SMP_ALLOW_UNAUTH_OVERWRITE
|
||||||
imply ZMK_BLE_PASSKEY_ENTRY
|
imply ZMK_BLE_PASSKEY_ENTRY
|
||||||
|
|
||||||
choice BT_LL_SW_LLCP_IMPL
|
|
||||||
default BT_LL_SW_LLCP_LEGACY if !ZMK_BLE_EXPERIMENTAL_CONN
|
|
||||||
|
|
||||||
endchoice
|
|
||||||
|
|
||||||
config BT_CTLR_PHY_2M
|
config BT_CTLR_PHY_2M
|
||||||
default n if ZMK_BLE_EXPERIMENTAL_CONN
|
default n if ZMK_BLE_EXPERIMENTAL_CONN
|
||||||
|
|
||||||
@@ -184,10 +189,6 @@ config BT_CTLR_PHY_2M
|
|||||||
config BT_TINYCRYPT_ECC
|
config BT_TINYCRYPT_ECC
|
||||||
default y if BT_HCI && !BT_CTLR
|
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
|
config ZMK_BLE_THREAD_STACK_SIZE
|
||||||
int "BLE notify thread stack size"
|
int "BLE notify thread stack size"
|
||||||
default 768
|
default 768
|
||||||
@@ -210,7 +211,6 @@ config ZMK_BLE_MOUSE_REPORT_QUEUE_SIZE
|
|||||||
|
|
||||||
config ZMK_BLE_CLEAR_BONDS_ON_START
|
config ZMK_BLE_CLEAR_BONDS_ON_START
|
||||||
bool "Configuration that clears all bond information from the keyboard on startup."
|
bool "Configuration that clears all bond information from the keyboard on startup."
|
||||||
default n
|
|
||||||
|
|
||||||
# HID GATT notifications sent this way are *not* picked up by Linux, and possibly others.
|
# HID GATT notifications sent this way are *not* picked up by Linux, and possibly others.
|
||||||
config BT_GATT_NOTIFY_MULTIPLE
|
config BT_GATT_NOTIFY_MULTIPLE
|
||||||
@@ -234,92 +234,99 @@ config BT_PERIPHERAL_PREF_LATENCY
|
|||||||
config BT_PERIPHERAL_PREF_TIMEOUT
|
config BT_PERIPHERAL_PREF_TIMEOUT
|
||||||
default 400
|
default 400
|
||||||
|
|
||||||
#ZMK_BLE
|
# The device name should be 16 characters or less so it fits within the
|
||||||
endif
|
# advertising data.
|
||||||
|
config BT_DEVICE_NAME_MAX
|
||||||
|
default 16
|
||||||
|
|
||||||
#Output Types
|
endif # ZMK_BLE
|
||||||
endmenu
|
|
||||||
|
|
||||||
# HID
|
endmenu # Output Types
|
||||||
endmenu
|
|
||||||
|
endmenu # HID
|
||||||
|
|
||||||
rsource "src/split/Kconfig"
|
rsource "src/split/Kconfig"
|
||||||
|
|
||||||
#Basic Keyboard Setup
|
endmenu # Basic Keyboard Setup
|
||||||
endmenu
|
|
||||||
|
menu "Keymaps"
|
||||||
|
|
||||||
|
config ZMK_KEYMAP_LAYER_REORDERING
|
||||||
|
bool "Layer Reordering Support"
|
||||||
|
|
||||||
|
config ZMK_KEYMAP_SETTINGS_STORAGE
|
||||||
|
bool "Settings Save/Load"
|
||||||
|
depends on SETTINGS
|
||||||
|
depends on ZMK_BEHAVIOR_LOCAL_IDS
|
||||||
|
|
||||||
|
if ZMK_KEYMAP_SETTINGS_STORAGE
|
||||||
|
|
||||||
|
config ZMK_KEYMAP_LAYER_NAME_MAX_LEN
|
||||||
|
int "Max Layer Name Length"
|
||||||
|
default 20
|
||||||
|
|
||||||
|
endif # ZMK_KEYMAP_SETTINGS_STORAGE
|
||||||
|
|
||||||
|
endmenu # Keymaps
|
||||||
|
|
||||||
|
rsource "src/studio/Kconfig"
|
||||||
|
|
||||||
menu "Display/LED Options"
|
menu "Display/LED Options"
|
||||||
|
|
||||||
rsource "src/display/Kconfig"
|
rsource "src/display/Kconfig"
|
||||||
|
|
||||||
menuconfig ZMK_RGB_UNDERGLOW
|
menuconfig ZMK_RGB_UNDERGLOW
|
||||||
bool "RGB Adressable LED Underglow"
|
bool "RGB Addressable LED Underglow"
|
||||||
select LED_STRIP
|
select LED_STRIP
|
||||||
select ZMK_LOW_PRIORITY_WORK_QUEUE
|
select ZMK_LOW_PRIORITY_WORK_QUEUE
|
||||||
|
|
||||||
if ZMK_RGB_UNDERGLOW
|
if ZMK_RGB_UNDERGLOW
|
||||||
|
|
||||||
# This default value cuts down on tons of excess .conf files, if you're using GPIO, manually disable this
|
|
||||||
config SPI
|
|
||||||
default y
|
|
||||||
|
|
||||||
config ZMK_RGB_UNDERGLOW_EXT_POWER
|
config ZMK_RGB_UNDERGLOW_EXT_POWER
|
||||||
bool "RGB underglow toggling also controls external power"
|
bool "RGB underglow toggling also controls external power"
|
||||||
default y
|
|
||||||
|
|
||||||
config ZMK_RGB_UNDERGLOW_BRT_MIN
|
config ZMK_RGB_UNDERGLOW_BRT_MIN
|
||||||
int "RGB underglow minimum brightness in percent"
|
int "RGB underglow minimum brightness in percent"
|
||||||
range 0 100
|
range 0 100
|
||||||
default 0
|
|
||||||
|
|
||||||
config ZMK_RGB_UNDERGLOW_BRT_MAX
|
config ZMK_RGB_UNDERGLOW_BRT_MAX
|
||||||
int "RGB underglow maximum brightness in percent"
|
int "RGB underglow maximum brightness in percent"
|
||||||
range ZMK_RGB_UNDERGLOW_BRT_MIN 100
|
range ZMK_RGB_UNDERGLOW_BRT_MIN 100
|
||||||
default 100
|
|
||||||
|
|
||||||
config ZMK_RGB_UNDERGLOW_HUE_STEP
|
config ZMK_RGB_UNDERGLOW_HUE_STEP
|
||||||
int "RGB underglow hue step in degrees"
|
int "RGB underglow hue step in degrees"
|
||||||
range 0 359
|
range 0 359
|
||||||
default 10
|
|
||||||
|
|
||||||
config ZMK_RGB_UNDERGLOW_SAT_STEP
|
config ZMK_RGB_UNDERGLOW_SAT_STEP
|
||||||
int "RGB underglow saturation step in percent"
|
int "RGB underglow saturation step in percent"
|
||||||
range 0 100
|
range 0 100
|
||||||
default 10
|
|
||||||
|
|
||||||
config ZMK_RGB_UNDERGLOW_BRT_STEP
|
config ZMK_RGB_UNDERGLOW_BRT_STEP
|
||||||
int "RGB underglow brightness step in percent"
|
int "RGB underglow brightness step in percent"
|
||||||
range 0 100
|
range 0 100
|
||||||
default 10
|
|
||||||
|
|
||||||
config ZMK_RGB_UNDERGLOW_HUE_START
|
config ZMK_RGB_UNDERGLOW_HUE_START
|
||||||
int "RGB underglow start hue value in degrees"
|
int "RGB underglow start hue value in degrees"
|
||||||
range 0 359
|
range 0 359
|
||||||
default 0
|
|
||||||
|
|
||||||
config ZMK_RGB_UNDERGLOW_SAT_START
|
config ZMK_RGB_UNDERGLOW_SAT_START
|
||||||
int "RGB underglow start saturations value in percent"
|
int "RGB underglow start saturations value in percent"
|
||||||
range 0 100
|
range 0 100
|
||||||
default 100
|
|
||||||
|
|
||||||
config ZMK_RGB_UNDERGLOW_BRT_START
|
config ZMK_RGB_UNDERGLOW_BRT_START
|
||||||
int "RGB underglow start brightness value in percent"
|
int "RGB underglow start brightness value in percent"
|
||||||
range ZMK_RGB_UNDERGLOW_BRT_MIN ZMK_RGB_UNDERGLOW_BRT_MAX
|
range ZMK_RGB_UNDERGLOW_BRT_MIN ZMK_RGB_UNDERGLOW_BRT_MAX
|
||||||
default ZMK_RGB_UNDERGLOW_BRT_MAX
|
|
||||||
|
|
||||||
config ZMK_RGB_UNDERGLOW_SPD_START
|
config ZMK_RGB_UNDERGLOW_SPD_START
|
||||||
int "RGB underglow start animation speed value"
|
int "RGB underglow start animation speed value"
|
||||||
range 1 5
|
range 1 5
|
||||||
default 3
|
|
||||||
|
|
||||||
config ZMK_RGB_UNDERGLOW_EFF_START
|
config ZMK_RGB_UNDERGLOW_EFF_START
|
||||||
int "RGB underglow start effect int value related to the effect enum list"
|
int "RGB underglow start effect int value related to the effect enum list"
|
||||||
range 0 3
|
range 0 3
|
||||||
default 0
|
|
||||||
|
|
||||||
config ZMK_RGB_UNDERGLOW_ON_START
|
config ZMK_RGB_UNDERGLOW_ON_START
|
||||||
bool "RGB underglow starts on by default"
|
bool "RGB underglow starts on by default"
|
||||||
default y
|
|
||||||
|
|
||||||
config ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE
|
config ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE
|
||||||
bool "Turn off RGB underglow when keyboard goes into idle state"
|
bool "Turn off RGB underglow when keyboard goes into idle state"
|
||||||
@@ -328,8 +335,7 @@ config ZMK_RGB_UNDERGLOW_AUTO_OFF_USB
|
|||||||
bool "Turn off RGB underglow when USB is disconnected"
|
bool "Turn off RGB underglow when USB is disconnected"
|
||||||
depends on USB_DEVICE_STACK
|
depends on USB_DEVICE_STACK
|
||||||
|
|
||||||
#ZMK_RGB_UNDERGLOW
|
endif # ZMK_RGB_UNDERGLOW
|
||||||
endif
|
|
||||||
|
|
||||||
menuconfig ZMK_BACKLIGHT
|
menuconfig ZMK_BACKLIGHT
|
||||||
bool "LED backlight"
|
bool "LED backlight"
|
||||||
@@ -340,16 +346,13 @@ if ZMK_BACKLIGHT
|
|||||||
config ZMK_BACKLIGHT_BRT_STEP
|
config ZMK_BACKLIGHT_BRT_STEP
|
||||||
int "Brightness step in percent"
|
int "Brightness step in percent"
|
||||||
range 1 100
|
range 1 100
|
||||||
default 20
|
|
||||||
|
|
||||||
config ZMK_BACKLIGHT_BRT_START
|
config ZMK_BACKLIGHT_BRT_START
|
||||||
int "Default brightness in percent"
|
int "Default brightness in percent"
|
||||||
range 1 100
|
range 1 100
|
||||||
default 40
|
|
||||||
|
|
||||||
config ZMK_BACKLIGHT_ON_START
|
config ZMK_BACKLIGHT_ON_START
|
||||||
bool "Default backlight state"
|
bool "Default backlight state"
|
||||||
default y
|
|
||||||
|
|
||||||
config ZMK_BACKLIGHT_AUTO_OFF_IDLE
|
config ZMK_BACKLIGHT_AUTO_OFF_IDLE
|
||||||
bool "Turn off backlight when keyboard goes into idle state"
|
bool "Turn off backlight when keyboard goes into idle state"
|
||||||
@@ -357,36 +360,44 @@ config ZMK_BACKLIGHT_AUTO_OFF_IDLE
|
|||||||
config ZMK_BACKLIGHT_AUTO_OFF_USB
|
config ZMK_BACKLIGHT_AUTO_OFF_USB
|
||||||
bool "Turn off backlight when USB is disconnected"
|
bool "Turn off backlight when USB is disconnected"
|
||||||
|
|
||||||
#ZMK_BACKLIGHT
|
endif # ZMK_BACKLIGHT
|
||||||
endif
|
|
||||||
|
|
||||||
#Display/LED Options
|
endmenu # Display/LED Options
|
||||||
endmenu
|
|
||||||
|
|
||||||
menu "Mouse Options"
|
rsource "src/pointing/Kconfig"
|
||||||
|
|
||||||
config ZMK_MOUSE
|
|
||||||
bool "Enable ZMK mouse emulation"
|
|
||||||
default n
|
|
||||||
|
|
||||||
#Mouse Options
|
|
||||||
endmenu
|
|
||||||
|
|
||||||
menu "Power Management"
|
menu "Power Management"
|
||||||
|
|
||||||
config ZMK_BATTERY_REPORTING
|
config ZMK_BATTERY_REPORTING
|
||||||
bool "Battery level detection/reporting"
|
bool "Battery level detection/reporting"
|
||||||
default n
|
|
||||||
select SENSOR
|
select SENSOR
|
||||||
select ZMK_LOW_PRIORITY_WORK_QUEUE
|
select ZMK_LOW_PRIORITY_WORK_QUEUE
|
||||||
imply BT_BAS if ZMK_BLE
|
imply BT_BAS if ZMK_BLE
|
||||||
|
|
||||||
|
if ZMK_BATTERY_REPORTING
|
||||||
|
|
||||||
|
choice ZMK_BATTERY_REPORTING_FETCH_MODE
|
||||||
|
prompt "Battery Reporting Fetch Mode"
|
||||||
|
|
||||||
|
config ZMK_BATTERY_REPORTING_FETCH_MODE_STATE_OF_CHARGE
|
||||||
|
bool "State of charge"
|
||||||
|
|
||||||
|
config ZMK_BATTERY_REPORTING_FETCH_MODE_LITHIUM_VOLTAGE
|
||||||
|
bool "Lithium Voltage"
|
||||||
|
|
||||||
|
endchoice
|
||||||
|
|
||||||
|
endif # ZMK_BATTERY_REPORTING
|
||||||
|
|
||||||
config ZMK_IDLE_TIMEOUT
|
config ZMK_IDLE_TIMEOUT
|
||||||
int "Milliseconds of inactivity before entering idle state (OLED shutoff, etc)"
|
int "Milliseconds of inactivity before entering idle state (OLED shutoff, etc)"
|
||||||
default 30000
|
default 30000
|
||||||
|
|
||||||
config ZMK_SLEEP
|
config ZMK_SLEEP
|
||||||
bool "Enable deep sleep support"
|
bool "Enable deep sleep support"
|
||||||
|
depends on HAS_POWEROFF
|
||||||
|
select POWEROFF
|
||||||
|
select ZMK_PM_DEVICE_SUSPEND_RESUME
|
||||||
imply USB
|
imply USB
|
||||||
|
|
||||||
if ZMK_SLEEP
|
if ZMK_SLEEP
|
||||||
@@ -398,12 +409,30 @@ config ZMK_IDLE_SLEEP_TIMEOUT
|
|||||||
int "Milliseconds of inactivity before entering deep sleep"
|
int "Milliseconds of inactivity before entering deep sleep"
|
||||||
default 900000
|
default 900000
|
||||||
|
|
||||||
#ZMK_SLEEP
|
endif # ZMK_SLEEP
|
||||||
endif
|
|
||||||
|
|
||||||
config ZMK_EXT_POWER
|
config ZMK_EXT_POWER
|
||||||
bool "Enable support to control external power output"
|
bool "Enable support to control external power output"
|
||||||
|
|
||||||
|
config ZMK_PM
|
||||||
|
bool
|
||||||
|
|
||||||
|
config ZMK_PM_DEVICE_SUSPEND_RESUME
|
||||||
|
bool
|
||||||
|
select ZMK_PM
|
||||||
|
|
||||||
|
config ZMK_PM_SOFT_OFF
|
||||||
|
bool "Soft-off support"
|
||||||
|
depends on HAS_POWEROFF
|
||||||
|
select ZMK_PM
|
||||||
|
select PM_DEVICE
|
||||||
|
select ZMK_PM_DEVICE_SUSPEND_RESUME
|
||||||
|
select POWEROFF
|
||||||
|
|
||||||
|
config ZMK_GPIO_KEY_WAKEUP_TRIGGER
|
||||||
|
bool "Hardware supported wakeup (GPIO)"
|
||||||
default y
|
default y
|
||||||
|
depends on DT_HAS_ZMK_GPIO_KEY_WAKEUP_TRIGGER_ENABLED && ZMK_PM_SOFT_OFF
|
||||||
|
|
||||||
# Power Management
|
# Power Management
|
||||||
endmenu
|
endmenu
|
||||||
@@ -415,12 +444,16 @@ config ZMK_COMBO_MAX_PRESSED_COMBOS
|
|||||||
default 4
|
default 4
|
||||||
|
|
||||||
config ZMK_COMBO_MAX_COMBOS_PER_KEY
|
config ZMK_COMBO_MAX_COMBOS_PER_KEY
|
||||||
int "Maximum number of combos per key"
|
int "Deprecated: Max combos per key"
|
||||||
default 5
|
default 0
|
||||||
|
help
|
||||||
|
Deprecated: Storage for combos is now determined automatically
|
||||||
|
|
||||||
config ZMK_COMBO_MAX_KEYS_PER_COMBO
|
config ZMK_COMBO_MAX_KEYS_PER_COMBO
|
||||||
int "Maximum number of keys per combo"
|
int "Deprecated: Max keys per combo"
|
||||||
default 4
|
default 0
|
||||||
|
help
|
||||||
|
Deprecated: This is now auto-calculated based on `key-positions` in devicetree
|
||||||
|
|
||||||
# Combo options
|
# Combo options
|
||||||
endmenu
|
endmenu
|
||||||
@@ -451,10 +484,13 @@ if USB_DEVICE_STACK
|
|||||||
|
|
||||||
config ZMK_USB_INIT_PRIORITY
|
config ZMK_USB_INIT_PRIORITY
|
||||||
int "USB Init Priority"
|
int "USB Init Priority"
|
||||||
default 50
|
default 94
|
||||||
|
|
||||||
#USB
|
config ZMK_USB_HID_INIT_PRIORITY
|
||||||
endif
|
int "USB HID Init Priority"
|
||||||
|
default 95
|
||||||
|
|
||||||
|
endif # USB
|
||||||
|
|
||||||
if ZMK_BLE || ZMK_SPLIT_BLE
|
if ZMK_BLE || ZMK_SPLIT_BLE
|
||||||
|
|
||||||
@@ -462,11 +498,13 @@ config ZMK_BLE_INIT_PRIORITY
|
|||||||
int "BLE Init Priority"
|
int "BLE Init Priority"
|
||||||
default 50
|
default 50
|
||||||
|
|
||||||
#ZMK_BLE || ZMK_SPLIT_BLE
|
endif # ZMK_BLE || ZMK_SPLIT_BLE
|
||||||
endif
|
|
||||||
|
|
||||||
#Initialization Priorities
|
endmenu # Initialization Priorities
|
||||||
endmenu
|
|
||||||
|
config ZMK_PHYSICAL_LAYOUT_KEY_ROTATION
|
||||||
|
bool "Support rotation of keys in physical layouts"
|
||||||
|
default y
|
||||||
|
|
||||||
menuconfig ZMK_KSCAN
|
menuconfig ZMK_KSCAN
|
||||||
bool "ZMK KScan Integration"
|
bool "ZMK KScan Integration"
|
||||||
@@ -481,6 +519,21 @@ config ZMK_KSCAN_EVENT_QUEUE_SIZE
|
|||||||
|
|
||||||
endif # ZMK_KSCAN
|
endif # ZMK_KSCAN
|
||||||
|
|
||||||
|
config ZMK_KSCAN_SIDEBAND_BEHAVIORS
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
depends on DT_HAS_ZMK_KSCAN_SIDEBAND_BEHAVIORS_ENABLED
|
||||||
|
select KSCAN
|
||||||
|
|
||||||
|
if ZMK_KSCAN_SIDEBAND_BEHAVIORS
|
||||||
|
|
||||||
|
config ZMK_KSCAN_SIDEBAND_BEHAVIORS_INIT_PRIORITY
|
||||||
|
int "Keyboard scan sideband behaviors driver init priority"
|
||||||
|
# The default kscan init priority is 90, so be sure we are initialized later.
|
||||||
|
default 95
|
||||||
|
|
||||||
|
endif # ZMK_KSCAN_SIDEBAND_BEHAVIORS
|
||||||
|
|
||||||
menu "Logging"
|
menu "Logging"
|
||||||
|
|
||||||
config ZMK_LOGGING_MINIMAL
|
config ZMK_LOGGING_MINIMAL
|
||||||
@@ -525,8 +578,7 @@ config USB_CDC_ACM_RINGBUF_SIZE
|
|||||||
config LOG_PROCESS_THREAD_STARTUP_DELAY_MS
|
config LOG_PROCESS_THREAD_STARTUP_DELAY_MS
|
||||||
default 1000
|
default 1000
|
||||||
|
|
||||||
#ZMK_USB_LOGGING
|
endif # ZMK_USB_LOGGING
|
||||||
endif
|
|
||||||
|
|
||||||
config ZMK_RTT_LOGGING
|
config ZMK_RTT_LOGGING
|
||||||
bool "Enable RTT logging to help debug"
|
bool "Enable RTT logging to help debug"
|
||||||
@@ -542,8 +594,7 @@ if ZMK_RTT_LOGGING
|
|||||||
config SEGGER_RTT_BUFFER_SIZE_UP
|
config SEGGER_RTT_BUFFER_SIZE_UP
|
||||||
default 8192
|
default 8192
|
||||||
|
|
||||||
#ZMK_RTT_LOGGING
|
endif # ZMK_RTT_LOGGING
|
||||||
endif
|
|
||||||
|
|
||||||
if ZMK_USB_LOGGING || ZMK_RTT_LOGGING
|
if ZMK_USB_LOGGING || ZMK_RTT_LOGGING
|
||||||
|
|
||||||
@@ -553,25 +604,35 @@ config LOG_BUFFER_SIZE
|
|||||||
config LOG_PROCESS_THREAD_SLEEP_MS
|
config LOG_PROCESS_THREAD_SLEEP_MS
|
||||||
default 100
|
default 100
|
||||||
|
|
||||||
#ZMK_USB_LOGGING || ZMK_RTT_LOGGING
|
endif # ZMK_USB_LOGGING || ZMK_RTT_LOGGING
|
||||||
endif
|
|
||||||
|
|
||||||
#Logging
|
endmenu # Logging
|
||||||
endmenu
|
|
||||||
|
|
||||||
if SETTINGS
|
if SETTINGS
|
||||||
|
|
||||||
|
config ZMK_SETTINGS_RESET_ON_START
|
||||||
|
bool "Delete all persistent settings when the keyboard boots"
|
||||||
|
|
||||||
|
if ZMK_SETTINGS_RESET_ON_START
|
||||||
|
|
||||||
|
config ZMK_SETTINGS_RESET_ON_START_INIT_PRIORITY
|
||||||
|
int "Settings Reset ON Start Initialization Priority"
|
||||||
|
default 60
|
||||||
|
help
|
||||||
|
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 # ZMK_SETTINGS_RESET_ON_START
|
||||||
|
|
||||||
config ZMK_SETTINGS_SAVE_DEBOUNCE
|
config ZMK_SETTINGS_SAVE_DEBOUNCE
|
||||||
int "Milliseconds to debounce settings saves"
|
int "Milliseconds to debounce settings saves"
|
||||||
default 60000
|
default 60000
|
||||||
|
|
||||||
#SETTINGS
|
endif # SETTINGS
|
||||||
endif
|
|
||||||
|
|
||||||
config ZMK_BATTERY_REPORT_INTERVAL
|
config ZMK_BATTERY_REPORT_INTERVAL
|
||||||
depends on ZMK_BATTERY_REPORTING
|
depends on ZMK_BATTERY_REPORTING
|
||||||
int "Battery level report interval in seconds"
|
int "Battery level report interval in seconds"
|
||||||
default 60
|
|
||||||
|
|
||||||
config ZMK_LOW_PRIORITY_WORK_QUEUE
|
config ZMK_LOW_PRIORITY_WORK_QUEUE
|
||||||
bool "Work queue for low priority items"
|
bool "Work queue for low priority items"
|
||||||
@@ -586,16 +647,11 @@ config ZMK_LOW_PRIORITY_THREAD_PRIORITY
|
|||||||
int "Low priority thread priority"
|
int "Low priority thread priority"
|
||||||
default 10
|
default 10
|
||||||
|
|
||||||
endif
|
endif # ZMK_LOW_PRIORITY_WORK_QUEUE
|
||||||
|
|
||||||
#Advanced
|
endmenu # Advanced
|
||||||
endmenu
|
|
||||||
|
|
||||||
#ZMK
|
endmenu # ZMK
|
||||||
endmenu
|
|
||||||
|
|
||||||
config HEAP_MEM_POOL_SIZE
|
|
||||||
default 8192 if ZMK_DISPLAY
|
|
||||||
|
|
||||||
config KERNEL_BIN_NAME
|
config KERNEL_BIN_NAME
|
||||||
default "zmk"
|
default "zmk"
|
||||||
@@ -606,9 +662,11 @@ config REBOOT
|
|||||||
config USB_DEVICE_STACK
|
config USB_DEVICE_STACK
|
||||||
default y if HAS_HW_NRF_USBD
|
default y if HAS_HW_NRF_USBD
|
||||||
|
|
||||||
|
config FPU
|
||||||
|
default CPU_HAS_FPU
|
||||||
|
|
||||||
config ZMK_WPM
|
config ZMK_WPM
|
||||||
bool "Calculate WPM"
|
bool "Calculate WPM"
|
||||||
default n
|
|
||||||
|
|
||||||
config ZMK_KEYMAP_SENSORS
|
config ZMK_KEYMAP_SENSORS
|
||||||
bool "Enable Keymap Sensors support"
|
bool "Enable Keymap Sensors support"
|
||||||
@@ -638,12 +696,22 @@ module = ZMK
|
|||||||
module-str = zmk
|
module-str = zmk
|
||||||
source "subsys/logging/Kconfig.template.log_config"
|
source "subsys/logging/Kconfig.template.log_config"
|
||||||
|
|
||||||
|
# This loads ZMK's internal board and shield Kconfigs
|
||||||
rsource "boards/Kconfig"
|
rsource "boards/Kconfig"
|
||||||
rsource "boards/shields/*/Kconfig.defconfig"
|
rsource "boards/shields/*/Kconfig.defconfig"
|
||||||
rsource "boards/shields/*/Kconfig.shield"
|
rsource "boards/shields/*/Kconfig.shield"
|
||||||
|
|
||||||
|
# This loads custom shields defconfigs (from BOARD_ROOT)
|
||||||
|
# Duplicated from Kconfig.zephyr
|
||||||
|
osource "$(KCONFIG_BINARY_DIR)/Kconfig.shield.defconfig"
|
||||||
|
|
||||||
|
source "$(BOARD_DIR)/Kconfig.defconfig"
|
||||||
|
|
||||||
|
# This loads board and shield Kconfigs found under zmk-config/config/
|
||||||
osource "$(ZMK_CONFIG)/boards/shields/*/Kconfig.defconfig"
|
osource "$(ZMK_CONFIG)/boards/shields/*/Kconfig.defconfig"
|
||||||
osource "$(ZMK_CONFIG)/boards/shields/*/Kconfig.shield"
|
osource "$(ZMK_CONFIG)/boards/shields/*/Kconfig.shield"
|
||||||
|
|
||||||
|
# This loads ZMK's sensible defaults
|
||||||
|
rsource "Kconfig.defaults"
|
||||||
|
|
||||||
source "Kconfig.zephyr"
|
source "Kconfig.zephyr"
|
||||||
|
|||||||
@@ -1,6 +1,66 @@
|
|||||||
# Copyright (c) 2023 The ZMK Contributors
|
# Copyright (c) 2023 The ZMK Contributors
|
||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
config ZMK_BEHAVIOR_METADATA
|
||||||
|
bool "Metadata"
|
||||||
|
help
|
||||||
|
Enabling this option adds APIs for documenting and fetching
|
||||||
|
metadata describing a behaviors name, and supported parameters.
|
||||||
|
|
||||||
|
config ZMK_BEHAVIOR_LOCAL_IDS
|
||||||
|
bool "Local IDs"
|
||||||
|
|
||||||
|
if ZMK_BEHAVIOR_LOCAL_IDS
|
||||||
|
|
||||||
|
config ZMK_BEHAVIOR_LOCAL_IDS_IN_BINDINGS
|
||||||
|
bool "Track in behavior bindings"
|
||||||
|
|
||||||
|
choice ZMK_BEHAVIOR_LOCAL_ID_TYPE
|
||||||
|
prompt "Local ID Type"
|
||||||
|
|
||||||
|
config ZMK_BEHAVIOR_LOCAL_ID_TYPE_SETTINGS_TABLE
|
||||||
|
bool "Settings Table"
|
||||||
|
depends on SETTINGS
|
||||||
|
select ZMK_BEHAVIOR_LOCAL_IDS_IN_BINDINGS
|
||||||
|
help
|
||||||
|
Use persistent entries in the settings subsystem to identify
|
||||||
|
behaviors by local ID, which uses the device name to generate
|
||||||
|
a new settings entry tying a presistant local ID to that name.
|
||||||
|
This guarantees stable, colllision-free local IDs at the expense
|
||||||
|
of settings storage used.
|
||||||
|
|
||||||
|
config ZMK_BEHAVIOR_LOCAL_ID_TYPE_CRC16
|
||||||
|
bool "CRC16 Hash"
|
||||||
|
select CRC
|
||||||
|
help
|
||||||
|
Use the CRC16-ANSI hash of behavior device names to generate
|
||||||
|
stable behavior local IDs. This saves on settings storage at
|
||||||
|
the expense of (highly unlikely) risk of collisions.
|
||||||
|
|
||||||
|
endchoice
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
config ZMK_BEHAVIOR_HOLD_TAP
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
depends on DT_HAS_ZMK_BEHAVIOR_HOLD_TAP_ENABLED
|
||||||
|
|
||||||
|
if ZMK_BEHAVIOR_HOLD_TAP
|
||||||
|
|
||||||
|
config ZMK_BEHAVIOR_HOLD_TAP_MAX_HELD
|
||||||
|
int "Hold Tap Max Held"
|
||||||
|
help
|
||||||
|
Max number of simultaneously held hold-taps
|
||||||
|
|
||||||
|
config ZMK_BEHAVIOR_HOLD_TAP_MAX_CAPTURED_EVENTS
|
||||||
|
int "Hold Tap Max Captured Events"
|
||||||
|
help
|
||||||
|
Max number of captured system events while waiting to resolve hold taps
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
config ZMK_BEHAVIOR_KEY_TOGGLE
|
config ZMK_BEHAVIOR_KEY_TOGGLE
|
||||||
bool
|
bool
|
||||||
default y
|
default y
|
||||||
@@ -9,12 +69,49 @@ config ZMK_BEHAVIOR_KEY_TOGGLE
|
|||||||
config ZMK_BEHAVIOR_MOUSE_KEY_PRESS
|
config ZMK_BEHAVIOR_MOUSE_KEY_PRESS
|
||||||
bool
|
bool
|
||||||
default y
|
default y
|
||||||
depends on DT_HAS_ZMK_BEHAVIOR_MOUSE_KEY_PRESS_ENABLED
|
depends on DT_HAS_ZMK_BEHAVIOR_MOUSE_KEY_PRESS_ENABLED && ZMK_POINTING
|
||||||
imply ZMK_MOUSE
|
|
||||||
|
config ZMK_BEHAVIOR_STICKY_KEY
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
depends on DT_HAS_ZMK_BEHAVIOR_STICKY_KEY_ENABLED
|
||||||
|
|
||||||
|
if ZMK_BEHAVIOR_STICKY_KEY
|
||||||
|
|
||||||
|
config ZMK_BEHAVIOR_STICKY_KEY_MAX_HELD
|
||||||
|
int "Sticky Key Max Held"
|
||||||
|
help
|
||||||
|
Max number of simultaneously held sticky keys
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
config ZMK_BEHAVIOR_SOFT_OFF
|
||||||
|
bool
|
||||||
|
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
|
config ZMK_BEHAVIOR_SENSOR_ROTATE_COMMON
|
||||||
bool
|
bool
|
||||||
default n
|
|
||||||
|
|
||||||
config ZMK_BEHAVIOR_SENSOR_ROTATE
|
config ZMK_BEHAVIOR_SENSOR_ROTATE
|
||||||
bool
|
bool
|
||||||
@@ -28,6 +125,11 @@ config ZMK_BEHAVIOR_SENSOR_ROTATE_VAR
|
|||||||
depends on DT_HAS_ZMK_BEHAVIOR_SENSOR_ROTATE_VAR_ENABLED
|
depends on DT_HAS_ZMK_BEHAVIOR_SENSOR_ROTATE_VAR_ENABLED
|
||||||
select ZMK_BEHAVIOR_SENSOR_ROTATE_COMMON
|
select ZMK_BEHAVIOR_SENSOR_ROTATE_COMMON
|
||||||
|
|
||||||
|
config ZMK_BEHAVIOR_STUDIO_UNLOCK
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
depends on DT_HAS_ZMK_BEHAVIOR_STUDIO_UNLOCK_ENABLED && ZMK_STUDIO
|
||||||
|
|
||||||
config ZMK_BEHAVIOR_MACRO
|
config ZMK_BEHAVIOR_MACRO
|
||||||
bool
|
bool
|
||||||
default y
|
default y
|
||||||
|
|||||||
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"
|
||||||
13
app/VERSION
Normal file
13
app/VERSION
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# x-release-please-start-major
|
||||||
|
VERSION_MAJOR = 0
|
||||||
|
# x-release-please-end
|
||||||
|
|
||||||
|
# x-release-please-start-minor
|
||||||
|
VERSION_MINOR = 3
|
||||||
|
# x-release-please-end
|
||||||
|
|
||||||
|
# x-release-please-start-patch
|
||||||
|
PATCHLEVEL = 0
|
||||||
|
# x-release-please-end
|
||||||
|
|
||||||
|
VERSION_TWEAK = 0
|
||||||
@@ -4,6 +4,4 @@
|
|||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "usb_console.dtsi"
|
|
||||||
|
|
||||||
&xiao_serial { status = "disabled"; };
|
&xiao_serial { status = "disabled"; };
|
||||||
|
|||||||
@@ -4,6 +4,4 @@
|
|||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "usb_console.dtsi"
|
|
||||||
|
|
||||||
&pro_micro_serial { status = "disabled"; };
|
&pro_micro_serial { status = "disabled"; };
|
||||||
|
|||||||
@@ -4,6 +4,4 @@
|
|||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "usb_console.dtsi"
|
|
||||||
|
|
||||||
&xiao_serial { status = "disabled"; };
|
&xiao_serial { status = "disabled"; };
|
||||||
|
|||||||
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")
|
||||||
87
app/boards/arm/adv360pro/adv360pro-layouts.dtsi
Normal file
87
app/boards/arm/adv360pro/adv360pro-layouts.dtsi
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
#include <physical_layouts.dtsi>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
physical_layout0: physical_layout_0 {
|
||||||
|
compatible = "zmk,physical-layout";
|
||||||
|
display-name = "Default";
|
||||||
|
|
||||||
|
keys // w h x y rot rx ry
|
||||||
|
= <&key_physical_attrs 125 100 0 25 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 125 25 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 225 0 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 325 0 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 425 0 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 525 0 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 625 0 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1075 0 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1175 0 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1275 0 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1375 0 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1475 0 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1575 25 0 0 0>
|
||||||
|
, <&key_physical_attrs 125 100 1675 25 0 0 0>
|
||||||
|
, <&key_physical_attrs 125 100 0 125 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 125 125 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 225 100 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 325 100 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 425 100 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 525 100 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 625 100 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1075 100 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1175 100 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1275 100 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1375 100 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1475 100 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1575 125 0 0 0>
|
||||||
|
, <&key_physical_attrs 125 100 1675 125 0 0 0>
|
||||||
|
, <&key_physical_attrs 125 100 0 225 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 125 225 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 225 200 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 325 200 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 425 200 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 525 200 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 625 200 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 675 400 1500 525 400>
|
||||||
|
, <&key_physical_attrs 100 100 775 400 1500 525 400>
|
||||||
|
, <&key_physical_attrs 100 100 925 400 (-1500) 1275 400>
|
||||||
|
, <&key_physical_attrs 100 100 1025 400 (-1500) 1275 400>
|
||||||
|
, <&key_physical_attrs 100 100 1075 200 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1175 200 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1275 200 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1375 200 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1475 200 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1575 225 0 0 0>
|
||||||
|
, <&key_physical_attrs 125 100 1675 225 0 0 0>
|
||||||
|
, <&key_physical_attrs 125 100 0 325 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 125 325 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 225 300 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 325 300 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 425 300 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 525 300 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 775 500 1500 525 400>
|
||||||
|
, <&key_physical_attrs 100 100 925 500 (-1500) 1275 400>
|
||||||
|
, <&key_physical_attrs 100 100 1175 300 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1275 300 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1375 300 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1475 300 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1575 325 0 0 0>
|
||||||
|
, <&key_physical_attrs 125 100 1675 325 0 0 0>
|
||||||
|
, <&key_physical_attrs 125 100 0 425 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 125 425 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 225 400 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 325 400 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 425 400 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 200 575 500 1500 525 400>
|
||||||
|
, <&key_physical_attrs 100 200 675 500 1500 525 400>
|
||||||
|
, <&key_physical_attrs 100 100 775 600 1500 525 400>
|
||||||
|
, <&key_physical_attrs 100 100 925 600 (-1500) 1275 400>
|
||||||
|
, <&key_physical_attrs 100 200 1025 500 (-1500) 1275 400>
|
||||||
|
, <&key_physical_attrs 100 200 1125 500 (-1500) 1275 400>
|
||||||
|
, <&key_physical_attrs 100 100 1275 400 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1375 400 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1475 400 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1575 425 0 0 0>
|
||||||
|
, <&key_physical_attrs 125 100 1675 425 0 0 0>
|
||||||
|
;
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -11,8 +11,13 @@
|
|||||||
#include <dt-bindings/led/led.h>
|
#include <dt-bindings/led/led.h>
|
||||||
#include <dt-bindings/zmk/matrix_transform.h>
|
#include <dt-bindings/zmk/matrix_transform.h>
|
||||||
|
|
||||||
|
#include "adv360pro-layouts.dtsi"
|
||||||
#include "adv360pro-pinctrl.dtsi"
|
#include "adv360pro-pinctrl.dtsi"
|
||||||
|
|
||||||
|
&physical_layout0 {
|
||||||
|
transform = <&matrix_transform0>;
|
||||||
|
};
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "Adv360 Pro";
|
model = "Adv360 Pro";
|
||||||
compatible = "kinesis,adv360pro";
|
compatible = "kinesis,adv360pro";
|
||||||
@@ -21,15 +26,14 @@
|
|||||||
zephyr,code-partition = &code_partition;
|
zephyr,code-partition = &code_partition;
|
||||||
zephyr,sram = &sram0;
|
zephyr,sram = &sram0;
|
||||||
zephyr,flash = &flash0;
|
zephyr,flash = &flash0;
|
||||||
zephyr,console = &cdc_acm_uart;
|
|
||||||
zmk,kscan = &kscan0;
|
|
||||||
zmk,backlight = &backlight;
|
zmk,backlight = &backlight;
|
||||||
zmk,battery = &vbatt;
|
zmk,battery = &vbatt;
|
||||||
zmk,matrix-transform = &default_transform;
|
zmk,physical-layout = &physical_layout0;
|
||||||
|
zmk,kscan = &kscan0;
|
||||||
zmk,underglow = &led_strip;
|
zmk,underglow = &led_strip;
|
||||||
};
|
};
|
||||||
|
|
||||||
default_transform: keymap_transform_0 {
|
matrix_transform0: keymap_transform_0 {
|
||||||
compatible = "zmk,matrix-transform";
|
compatible = "zmk,matrix-transform";
|
||||||
columns = <20>;
|
columns = <20>;
|
||||||
rows = <5>;
|
rows = <5>;
|
||||||
@@ -90,11 +94,8 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&usbd {
|
zephyr_udc0: &usbd {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
cdc_acm_uart: cdc_acm_uart {
|
|
||||||
compatible = "zephyr,cdc-acm-uart";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&flash0 {
|
&flash0 {
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ features:
|
|||||||
- keys
|
- keys
|
||||||
- underglow
|
- underglow
|
||||||
- backlight
|
- backlight
|
||||||
|
- studio
|
||||||
outputs:
|
outputs:
|
||||||
- usb
|
- usb
|
||||||
- ble
|
- ble
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
/{
|
/{
|
||||||
kscan0: kscan {
|
kscan0: kscan {
|
||||||
compatible = "zmk,kscan-gpio-matrix";
|
compatible = "zmk,kscan-gpio-matrix";
|
||||||
|
wakeup-source;
|
||||||
|
|
||||||
diode-direction = "col2row";
|
diode-direction = "col2row";
|
||||||
row-gpios
|
row-gpios
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
/{
|
/{
|
||||||
kscan0: kscan {
|
kscan0: kscan {
|
||||||
compatible = "zmk,kscan-gpio-matrix";
|
compatible = "zmk,kscan-gpio-matrix";
|
||||||
|
wakeup-source;
|
||||||
|
|
||||||
diode-direction = "col2row";
|
diode-direction = "col2row";
|
||||||
row-gpios
|
row-gpios
|
||||||
@@ -35,6 +36,6 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&default_transform {
|
&matrix_transform0 {
|
||||||
col-offset = <10>;
|
col-offset = <10>;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -5,4 +5,5 @@
|
|||||||
|
|
||||||
board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
|
board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
|
||||||
|
|
||||||
|
include(${ZEPHYR_BASE}/boards/common/uf2.board.cmake)
|
||||||
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
|
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
|
||||||
|
|||||||
9
app/boards/arm/adv360pro/pre_dt_board.cmake
Normal file
9
app/boards/arm/adv360pro/pre_dt_board.cmake
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2024 The ZMK Contributors
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
#
|
||||||
|
|
||||||
|
# Suppresses duplicate unit-address warning at build time for power, clock, acl and flash-controller
|
||||||
|
# https://docs.zephyrproject.org/latest/build/dts/intro-input-output.html
|
||||||
|
|
||||||
|
list(APPEND EXTRA_DTC_FLAGS "-Wno-unique_unit_address_if_enabled")
|
||||||
20
app/boards/arm/bdn9/bdn9_rev2-layouts.dtsi
Normal file
20
app/boards/arm/bdn9/bdn9_rev2-layouts.dtsi
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
#include <physical_layouts.dtsi>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
physical_layout0: physical_layout_0 {
|
||||||
|
compatible = "zmk,physical-layout";
|
||||||
|
display-name = "BDN9";
|
||||||
|
|
||||||
|
keys // w h x y rot rx ry
|
||||||
|
= <&key_physical_attrs 100 100 0 0 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 100 0 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 200 0 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 0 100 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 100 100 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 200 100 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 0 200 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 100 200 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 200 200 0 0 0>
|
||||||
|
;
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -9,6 +9,14 @@
|
|||||||
#include <st/f0/stm32f072c(8-b)tx-pinctrl.dtsi>
|
#include <st/f0/stm32f072c(8-b)tx-pinctrl.dtsi>
|
||||||
#include <dt-bindings/led/led.h>
|
#include <dt-bindings/led/led.h>
|
||||||
|
|
||||||
|
#include <dt-bindings/zmk/matrix_transform.h>
|
||||||
|
|
||||||
|
#include "bdn9_rev2-layouts.dtsi"
|
||||||
|
|
||||||
|
&physical_layout0 {
|
||||||
|
transform = <&matrix_transform0>;
|
||||||
|
};
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "Keeb.io BDN9 rev2";
|
model = "Keeb.io BDN9 rev2";
|
||||||
compatible = "keebio,bdn9", "st,stm32f072";
|
compatible = "keebio,bdn9", "st,stm32f072";
|
||||||
@@ -16,12 +24,23 @@
|
|||||||
chosen {
|
chosen {
|
||||||
zephyr,sram = &sram0;
|
zephyr,sram = &sram0;
|
||||||
zephyr,flash = &flash0;
|
zephyr,flash = &flash0;
|
||||||
zephyr,console = &cdc_acm_uart;
|
|
||||||
zmk,kscan = &kscan;
|
|
||||||
zmk,underglow = &led_strip;
|
zmk,underglow = &led_strip;
|
||||||
|
zmk,physical-layout = &physical_layout0;
|
||||||
|
zmk,kscan = &kscan0;
|
||||||
};
|
};
|
||||||
|
|
||||||
kscan: kscan {
|
matrix_transform0: matrix_transform_0 {
|
||||||
|
compatible = "zmk,matrix-transform";
|
||||||
|
columns = <3>;
|
||||||
|
rows = <3>;
|
||||||
|
map = <
|
||||||
|
RC(0,0) RC(0,1) RC(0,2)
|
||||||
|
RC(0,3) RC(0,4) RC(0,5)
|
||||||
|
RC(0,6) RC(0,7) RC(0,8)
|
||||||
|
>;
|
||||||
|
};
|
||||||
|
|
||||||
|
kscan0: kscan_0 {
|
||||||
compatible = "zmk,kscan-gpio-direct";
|
compatible = "zmk,kscan-gpio-direct";
|
||||||
|
|
||||||
input-gpios
|
input-gpios
|
||||||
@@ -106,13 +125,13 @@
|
|||||||
apb1-prescaler = <1>;
|
apb1-prescaler = <1>;
|
||||||
};
|
};
|
||||||
|
|
||||||
&usb {
|
zephyr_udc0: &usb {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
pinctrl-0 = <&usb_dm_pa11 &usb_dp_pa12>;
|
pinctrl-0 = <&usb_dm_pa11 &usb_dp_pa12>;
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
cdc_acm_uart: cdc_acm_uart {
|
|
||||||
compatible = "zephyr,cdc-acm-uart";
|
// Overridden to lower RAM usage.
|
||||||
};
|
num-bidir-endpoints = <4>;
|
||||||
};
|
};
|
||||||
|
|
||||||
&rtc {
|
&rtc {
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#undef ZMK_BEHAVIORS_KEEP_ALL
|
||||||
|
|
||||||
#include <behaviors.dtsi>
|
#include <behaviors.dtsi>
|
||||||
#include <dt-bindings/zmk/keys.h>
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
|
||||||
|
|||||||
@@ -5,9 +5,6 @@ CONFIG_SOC_STM32F072XB=y
|
|||||||
# 72MHz system clock
|
# 72MHz system clock
|
||||||
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=72000000
|
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=72000000
|
||||||
|
|
||||||
# Floating Point Options
|
|
||||||
CONFIG_FPU=y
|
|
||||||
|
|
||||||
# enable GPIO
|
# enable GPIO
|
||||||
CONFIG_GPIO=y
|
CONFIG_GPIO=y
|
||||||
|
|
||||||
@@ -17,8 +14,7 @@ CONFIG_PINCTRL=y
|
|||||||
# Poll to avoid interrupt overlap issues
|
# Poll to avoid interrupt overlap issues
|
||||||
CONFIG_ZMK_KSCAN_DIRECT_POLLING=y
|
CONFIG_ZMK_KSCAN_DIRECT_POLLING=y
|
||||||
|
|
||||||
# Needed to reduce this to size that will fit on F072
|
CONFIG_ISR_STACK_SIZE=1024
|
||||||
CONFIG_HEAP_MEM_POOL_SIZE=1024
|
|
||||||
|
|
||||||
# clock configuration
|
# clock configuration
|
||||||
CONFIG_CLOCK_CONTROL=y
|
CONFIG_CLOCK_CONTROL=y
|
||||||
|
|||||||
9
app/boards/arm/blackpill_f401cc/blackpill_f401cc.zmk.yml
Normal file
9
app/boards/arm/blackpill_f401cc/blackpill_f401cc.zmk.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
file_format: "1"
|
||||||
|
id: blackpill_f401cc
|
||||||
|
name: BlackPill F401CC
|
||||||
|
type: board
|
||||||
|
arch: arm
|
||||||
|
outputs:
|
||||||
|
- usb
|
||||||
|
url: https://github.com/WeActStudio/WeActStudio.MiniSTM32F4x1
|
||||||
|
exposes: [blackpill]
|
||||||
@@ -53,5 +53,5 @@
|
|||||||
|
|
||||||
pro_micro_d: &pro_micro {};
|
pro_micro_d: &pro_micro {};
|
||||||
pro_micro_i2c: &i2c0 {};
|
pro_micro_i2c: &i2c0 {};
|
||||||
pro_micro_spi: &spi0 {};
|
pro_micro_spi: &spi1 {};
|
||||||
pro_micro_serial: &uart0 {};
|
pro_micro_serial: &uart0 {};
|
||||||
|
|||||||
@@ -36,4 +36,21 @@
|
|||||||
low-power-enable;
|
low-power-enable;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
spi1_default: spi1_default {
|
||||||
|
group1 {
|
||||||
|
psels = <NRF_PSEL(SPIM_SCK, 1, 13)>,
|
||||||
|
<NRF_PSEL(SPIM_MOSI, 0, 28)>,
|
||||||
|
<NRF_PSEL(SPIM_MISO, 0, 3)>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
spi1_sleep: spi1_sleep {
|
||||||
|
group1 {
|
||||||
|
psels = <NRF_PSEL(SPIM_SCK, 1, 13)>,
|
||||||
|
<NRF_PSEL(SPIM_MOSI, 0, 28)>,
|
||||||
|
<NRF_PSEL(SPIM_MISO, 0, 3)>;
|
||||||
|
low-power-enable;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -17,7 +17,6 @@
|
|||||||
zephyr,code-partition = &code_partition;
|
zephyr,code-partition = &code_partition;
|
||||||
zephyr,sram = &sram0;
|
zephyr,sram = &sram0;
|
||||||
zephyr,flash = &flash0;
|
zephyr,flash = &flash0;
|
||||||
zephyr,console = &cdc_acm_uart;
|
|
||||||
zmk,battery = &vbatt;
|
zmk,battery = &vbatt;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -67,6 +66,13 @@
|
|||||||
pinctrl-names = "default", "sleep";
|
pinctrl-names = "default", "sleep";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&spi1 {
|
||||||
|
compatible = "nordic,nrf-spim";
|
||||||
|
pinctrl-0 = <&spi1_default>;
|
||||||
|
pinctrl-1 = <&spi1_sleep>;
|
||||||
|
pinctrl-names = "default", "sleep";
|
||||||
|
};
|
||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
compatible = "nordic,nrf-uarte";
|
compatible = "nordic,nrf-uarte";
|
||||||
current-speed = <115200>;
|
current-speed = <115200>;
|
||||||
@@ -75,11 +81,8 @@
|
|||||||
pinctrl-names = "default", "sleep";
|
pinctrl-names = "default", "sleep";
|
||||||
};
|
};
|
||||||
|
|
||||||
&usbd {
|
zephyr_udc0: &usbd {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
cdc_acm_uart: cdc_acm_uart {
|
|
||||||
compatible = "zephyr,cdc-acm-uart";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
|
board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
|
||||||
include(${ZEPHYR_BASE}/boards/common/blackmagicprobe.board.cmake)
|
include(${ZEPHYR_BASE}/boards/common/uf2.board.cmake)
|
||||||
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
|
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
|
||||||
|
|||||||
9
app/boards/arm/bluemicro840/pre_dt_board.cmake
Normal file
9
app/boards/arm/bluemicro840/pre_dt_board.cmake
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2024 The ZMK Contributors
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
#
|
||||||
|
|
||||||
|
# Suppresses duplicate unit-address warning at build time for power, clock, acl and flash-controller
|
||||||
|
# https://docs.zephyrproject.org/latest/build/dts/intro-input-output.html
|
||||||
|
|
||||||
|
list(APPEND EXTRA_DTC_FLAGS "-Wno-unique_unit_address_if_enabled")
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
|
board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
|
||||||
include(${ZEPHYR_BASE}/boards/common/blackmagicprobe.board.cmake)
|
include(${ZEPHYR_BASE}/boards/common/uf2.board.cmake)
|
||||||
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
|
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
|
||||||
|
|||||||
@@ -16,10 +16,7 @@
|
|||||||
zephyr,code-partition = &code_partition;
|
zephyr,code-partition = &code_partition;
|
||||||
zephyr,sram = &sram0;
|
zephyr,sram = &sram0;
|
||||||
zephyr,flash = &flash0;
|
zephyr,flash = &flash0;
|
||||||
zephyr,console = &cdc_acm_uart;
|
|
||||||
zmk,battery = &vbatt;
|
zmk,battery = &vbatt;
|
||||||
zmk,kscan = &kscan0;
|
|
||||||
zmk,matrix-transform = &default_transform;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
sensors: sensors {
|
sensors: sensors {
|
||||||
@@ -70,23 +67,8 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&i2c0 {
|
zephyr_udc0: &usbd {
|
||||||
compatible = "nordic,nrf-twi";
|
|
||||||
sda-pin = <17>;
|
|
||||||
scl-pin = <20>;
|
|
||||||
};
|
|
||||||
|
|
||||||
&uart0 {
|
|
||||||
compatible = "nordic,nrf-uarte";
|
|
||||||
tx-pin = <6>;
|
|
||||||
rx-pin = <8>;
|
|
||||||
};
|
|
||||||
|
|
||||||
&usbd {
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
cdc_acm_uart: cdc_acm_uart {
|
|
||||||
compatible = "zephyr,cdc-acm-uart";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,12 +6,16 @@
|
|||||||
|
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
#include "bt60.dtsi"
|
#include "bt60.dtsi"
|
||||||
|
#include <layouts/common/60percent/all1u.dtsi>
|
||||||
|
#include <layouts/common/60percent/ansi.dtsi>
|
||||||
|
#include <layouts/common/60percent/hhkb.dtsi>
|
||||||
|
#include <layouts/common/60percent/iso.dtsi>
|
||||||
|
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
chosen {
|
chosen {
|
||||||
zmk,kscan = &kscan0;
|
zmk,kscan = &kscan0;
|
||||||
zmk,matrix-transform = &ansi_transform;
|
zmk,physical-layout = &layout_60_ansi;
|
||||||
};
|
};
|
||||||
|
|
||||||
ansi_transform: keymap_transform_0 {
|
ansi_transform: keymap_transform_0 {
|
||||||
@@ -66,21 +70,10 @@
|
|||||||
>;
|
>;
|
||||||
};
|
};
|
||||||
|
|
||||||
split_transform: keymap_transform_4 {
|
|
||||||
compatible = "zmk,matrix-transform";
|
|
||||||
columns = <15>;
|
|
||||||
rows = <5>;
|
|
||||||
map = <
|
|
||||||
RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) RC(0,12) RC(0,13) RC(0,14)
|
|
||||||
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) RC(1,12) RC(1,13)
|
|
||||||
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,13)
|
|
||||||
RC(3,0) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) RC(3,12) RC(3,14)
|
|
||||||
RC(4,0) RC(4,1) RC(4,2) RC(4,6) RC(4,10) RC(4,11) RC(4,12) RC(4,13)
|
|
||||||
>;
|
|
||||||
};
|
|
||||||
|
|
||||||
kscan0: kscan_0 {
|
kscan0: kscan_0 {
|
||||||
compatible = "zmk,kscan-gpio-matrix";
|
compatible = "zmk,kscan-gpio-matrix";
|
||||||
|
wakeup-source;
|
||||||
|
|
||||||
diode-direction = "col2row";
|
diode-direction = "col2row";
|
||||||
|
|
||||||
col-gpios
|
col-gpios
|
||||||
@@ -110,3 +103,19 @@
|
|||||||
;
|
;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&layout_60_ansi {
|
||||||
|
transform = <&ansi_transform>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&layout_60_iso {
|
||||||
|
transform = <&iso_transform>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&layout_60_all1u {
|
||||||
|
transform = <&all_1u_transform>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&layout_60_hhkb {
|
||||||
|
transform = <&hhkb_transform>;
|
||||||
|
};
|
||||||
|
|||||||
@@ -2,26 +2,25 @@
|
|||||||
#include <dt-bindings/zmk/keys.h>
|
#include <dt-bindings/zmk/keys.h>
|
||||||
#include <dt-bindings/zmk/bt.h>
|
#include <dt-bindings/zmk/bt.h>
|
||||||
|
|
||||||
#define ANSI true
|
#define ANSI
|
||||||
//#define HHKB true
|
//#define HHKB
|
||||||
//#define ISO true
|
//#define ISO
|
||||||
//#define ALL_1U true
|
//#define ALL_1U
|
||||||
//#define SPLIT_BKSP_RSHFT true
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
chosen {
|
chosen {
|
||||||
#ifdef ANSI
|
#ifdef ANSI
|
||||||
zmk,matrix-transform = &ansi_transform;
|
zmk,physical-layout = &layout_60_ansi;
|
||||||
#elif defined(HHKB)
|
|
||||||
zmk,matrix-transform = &hhkb_transform;
|
|
||||||
#elif defined(ISO)
|
#elif defined(ISO)
|
||||||
zmk,matrix-transform = &iso_transform;
|
zmk,physical-layout = &layout_60_iso;
|
||||||
#elif defined(ALL_1U)
|
#elif defined(ALL_1U)
|
||||||
zmk,matrix-transform = &all_1u_transform;
|
zmk,physical-layout = &layout_60_all1u;
|
||||||
|
#elif defined(HHKB)
|
||||||
|
zmk,physical-layout = &layout_60_hhkb;
|
||||||
#else
|
#else
|
||||||
zmk,matrix-transform = &split_transform;
|
#error "Layout not defined, please define a layout by uncommenting the appropriate line in bt60_v1.keymap"
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -31,7 +30,7 @@
|
|||||||
#ifdef ANSI
|
#ifdef ANSI
|
||||||
default_layer {
|
default_layer {
|
||||||
// ------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------
|
||||||
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BKSP |
|
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BSPC |
|
||||||
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | | |
|
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | | |
|
||||||
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER |
|
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER |
|
||||||
// | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT |
|
// | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT |
|
||||||
@@ -94,7 +93,7 @@
|
|||||||
#elif defined(ISO)
|
#elif defined(ISO)
|
||||||
default_layer {
|
default_layer {
|
||||||
// ------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------
|
||||||
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BKSP |
|
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BSPC |
|
||||||
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | |
|
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | |
|
||||||
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | # | ENTER |
|
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | # | ENTER |
|
||||||
// | SHIFT | | | Z | X | C | V | B | N | M | , | . | / | SHIFT |
|
// | SHIFT | | | Z | X | C | V | B | N | M | , | . | / | SHIFT |
|
||||||
@@ -122,7 +121,7 @@
|
|||||||
#elif defined(ALL_1U)
|
#elif defined(ALL_1U)
|
||||||
default_layer {
|
default_layer {
|
||||||
// ------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------
|
||||||
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BKSP |
|
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BSPC |
|
||||||
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | "|" |
|
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | "|" |
|
||||||
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER |
|
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER |
|
||||||
// | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHFT | UP | 1 |
|
// | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHFT | UP | 1 |
|
||||||
@@ -148,33 +147,7 @@
|
|||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
||||||
};
|
};
|
||||||
#else
|
#else
|
||||||
default_layer {
|
#error "Layout not defined, please define a layout by uncommenting the appropriate line in bt60_v2.keymap"
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |BKSP| DEL |
|
|
||||||
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
|
|
||||||
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER |
|
|
||||||
// | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT | 1 |
|
|
||||||
// | CTL | WIN | ALT | SPACE | ALT | 1 | CTRL |
|
|
||||||
// ------------------------------------------------------------------------------------------
|
|
||||||
bindings = <
|
|
||||||
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC &kp DEL
|
|
||||||
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH
|
|
||||||
&kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET
|
|
||||||
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &mo 1
|
|
||||||
&kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &kp RGUI &kp C_MENU &kp RCTRL
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
raise {
|
|
||||||
bindings = <
|
|
||||||
&kp GRAVE &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp DEL &trans
|
|
||||||
&trans &trans &kp UP &trans &trans &trans &trans &trans &kp INS &trans &kp PSCRN &kp SLCK &kp PAUSE_BREAK &sys_reset
|
|
||||||
&trans &kp LEFT &kp DOWN &kp RIGHT &trans &trans &trans &trans &trans &trans &kp HOME &kp PG_UP &bootloader
|
|
||||||
&kp C_PREV &kp C_VOL_DN &kp C_VOL_UP &kp C_MUTE &trans &trans &trans &trans &trans &kp END &kp PG_DN &kp C_NEXT &trans
|
|
||||||
&bt BT_PRV &bt BT_NXT &trans &trans &trans &trans &trans &bt BT_CLR
|
|
||||||
>;
|
|
||||||
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
|
|
||||||
};
|
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ arch: arm
|
|||||||
features:
|
features:
|
||||||
- keys
|
- keys
|
||||||
- encoder
|
- encoder
|
||||||
|
- studio
|
||||||
outputs:
|
outputs:
|
||||||
- usb
|
- usb
|
||||||
- ble
|
- ble
|
||||||
|
|||||||
@@ -6,12 +6,12 @@
|
|||||||
|
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
#include "bt60.dtsi"
|
#include "bt60.dtsi"
|
||||||
|
#include <layouts/common/60percent/ansi.dtsi>
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
chosen {
|
chosen {
|
||||||
zmk,kscan = &kscan0;
|
zmk,kscan = &kscan0;
|
||||||
zmk,matrix-transform = &default_transform;
|
zmk,physical-layout = &layout_60_ansi;
|
||||||
};
|
};
|
||||||
|
|
||||||
default_transform: keymap_transform_0 {
|
default_transform: keymap_transform_0 {
|
||||||
@@ -30,6 +30,8 @@
|
|||||||
|
|
||||||
kscan0: kscan_0 {
|
kscan0: kscan_0 {
|
||||||
compatible = "zmk,kscan-gpio-matrix";
|
compatible = "zmk,kscan-gpio-matrix";
|
||||||
|
wakeup-source;
|
||||||
|
|
||||||
diode-direction = "col2row";
|
diode-direction = "col2row";
|
||||||
|
|
||||||
col-gpios
|
col-gpios
|
||||||
@@ -58,3 +60,7 @@
|
|||||||
;
|
;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&layout_60_ansi {
|
||||||
|
transform = <&default_transform>;
|
||||||
|
};
|
||||||
|
|||||||
@@ -8,14 +8,14 @@
|
|||||||
|
|
||||||
default_layer {
|
default_layer {
|
||||||
// ------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------
|
||||||
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BKSP | DEL
|
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BSPC |
|
||||||
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | | |
|
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | | |
|
||||||
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER |
|
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER |
|
||||||
// | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT |
|
// | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT |
|
||||||
// | CTL | WIN | ALT | SPACE | ALT | 1 | MENU | CTRL |
|
// | CTL | WIN | ALT | SPACE | ALT | 1 | MENU | CTRL |
|
||||||
// ------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------
|
||||||
bindings = <
|
bindings = <
|
||||||
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC &bt BT_CLR
|
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC
|
||||||
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH
|
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH
|
||||||
&kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET
|
&kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET
|
||||||
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT
|
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
};
|
};
|
||||||
raise {
|
raise {
|
||||||
bindings = <
|
bindings = <
|
||||||
&kp GRAVE &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp DEL &trans
|
&kp GRAVE &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp DEL
|
||||||
&trans &trans &kp UP &trans &trans &trans &trans &trans &kp INS &trans &kp PSCRN &kp SLCK &kp PAUSE_BREAK &sys_reset
|
&trans &trans &kp UP &trans &trans &trans &trans &trans &kp INS &trans &kp PSCRN &kp SLCK &kp PAUSE_BREAK &sys_reset
|
||||||
&trans &kp LEFT &kp DOWN &kp RIGHT &trans &trans &trans &trans &trans &trans &kp HOME &kp PG_UP &bootloader
|
&trans &kp LEFT &kp DOWN &kp RIGHT &trans &trans &trans &trans &trans &trans &kp HOME &kp PG_UP &bootloader
|
||||||
&kp C_PREV &kp C_VOL_DN &kp C_VOL_UP &kp C_MUTE &trans &trans &trans &trans &trans &kp END &kp PG_DN &kp C_NEXT
|
&kp C_PREV &kp C_VOL_DN &kp C_VOL_UP &kp C_MUTE &trans &trans &trans &trans &trans &kp END &kp PG_DN &kp C_NEXT
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ arch: arm
|
|||||||
features:
|
features:
|
||||||
- keys
|
- keys
|
||||||
- encoder
|
- encoder
|
||||||
|
- studio
|
||||||
outputs:
|
outputs:
|
||||||
- usb
|
- usb
|
||||||
- ble
|
- ble
|
||||||
|
|||||||
9
app/boards/arm/bt60/pre_dt_board.cmake
Normal file
9
app/boards/arm/bt60/pre_dt_board.cmake
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2024 The ZMK Contributors
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
#
|
||||||
|
|
||||||
|
# Suppresses duplicate unit-address warning at build time for power, clock, acl and flash-controller
|
||||||
|
# https://docs.zephyrproject.org/latest/build/dts/intro-input-output.html
|
||||||
|
|
||||||
|
list(APPEND EXTRA_DTC_FLAGS "-Wno-unique_unit_address_if_enabled")
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
|
board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
|
||||||
|
include(${ZEPHYR_BASE}/boards/common/uf2.board.cmake)
|
||||||
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
|
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
|
||||||
|
|||||||
@@ -6,6 +6,10 @@
|
|||||||
|
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
#include "ckp.dtsi"
|
#include "ckp.dtsi"
|
||||||
|
#include <layouts/common/60percent/all1u.dtsi>
|
||||||
|
#include <layouts/common/60percent/ansi.dtsi>
|
||||||
|
#include <layouts/common/60percent/hhkb.dtsi>
|
||||||
|
#include <layouts/common/60percent/iso.dtsi>
|
||||||
|
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
@@ -13,7 +17,7 @@
|
|||||||
compatible = "polarityworks,bt60_v2";
|
compatible = "polarityworks,bt60_v2";
|
||||||
|
|
||||||
chosen {
|
chosen {
|
||||||
zmk,matrix-transform = &ansi_transform;
|
zmk,physical-layout = &layout_60_ansi;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -69,3 +73,19 @@
|
|||||||
>;
|
>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&layout_60_ansi {
|
||||||
|
transform = <&ansi_transform>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&layout_60_iso {
|
||||||
|
transform = <&iso_transform>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&layout_60_all1u {
|
||||||
|
transform = <&all_1u_transform>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&layout_60_hhkb {
|
||||||
|
transform = <&hhkb_transform>;
|
||||||
|
};
|
||||||
|
|||||||
@@ -12,13 +12,13 @@
|
|||||||
/ {
|
/ {
|
||||||
chosen {
|
chosen {
|
||||||
#ifdef ANSI
|
#ifdef ANSI
|
||||||
zmk,matrix-transform = &ansi_transform;
|
zmk,physical-layout = &layout_60_ansi;
|
||||||
#elif defined(ISO)
|
#elif defined(ISO)
|
||||||
zmk,matrix-transform = &iso_transform;
|
zmk,physical-layout = &layout_60_iso;
|
||||||
#elif defined(ALL_1U)
|
#elif defined(ALL_1U)
|
||||||
zmk,matrix-transform = &all_1u_transform;
|
zmk,physical-layout = &layout_60_all1u;
|
||||||
#elif defined(HHKB)
|
#elif defined(HHKB)
|
||||||
zmk,matrix-transform = &hhkb_transform;
|
zmk,physical-layout = &layout_60_hhkb;
|
||||||
#else
|
#else
|
||||||
#error "Layout not defined, please define a layout by uncommenting the appropriate line in bt60_v2.keymap"
|
#error "Layout not defined, please define a layout by uncommenting the appropriate line in bt60_v2.keymap"
|
||||||
#endif
|
#endif
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
#ifdef ANSI
|
#ifdef ANSI
|
||||||
default_layer {
|
default_layer {
|
||||||
// ------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------
|
||||||
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BKSP |
|
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BSPC |
|
||||||
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
|
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
|
||||||
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER |
|
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER |
|
||||||
// | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT |
|
// | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT |
|
||||||
@@ -65,7 +65,7 @@
|
|||||||
#elif defined(ISO)
|
#elif defined(ISO)
|
||||||
default_layer {
|
default_layer {
|
||||||
// ------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------
|
||||||
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BKSP |
|
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BSPC |
|
||||||
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | |
|
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | |
|
||||||
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | # | ENTER |
|
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | # | ENTER |
|
||||||
// | SHIFT | \ | Z | X | C | V | B | N | M | , | . | / | SHIFT |
|
// | SHIFT | \ | Z | X | C | V | B | N | M | , | . | / | SHIFT |
|
||||||
@@ -101,7 +101,7 @@
|
|||||||
#elif defined(ALL_1U)
|
#elif defined(ALL_1U)
|
||||||
default_layer {
|
default_layer {
|
||||||
// ------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------
|
||||||
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |BKSP | DEL |
|
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |BSPC | DEL |
|
||||||
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
|
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
|
||||||
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER |
|
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER |
|
||||||
// | SHFT |NONE| Z | X | C | V | B | N | M | , | . | / | SHFT | UP | 1 |
|
// | SHFT |NONE| Z | X | C | V | B | N | M | , | . | / | SHFT | UP | 1 |
|
||||||
@@ -118,7 +118,7 @@
|
|||||||
};
|
};
|
||||||
raise {
|
raise {
|
||||||
// ------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------
|
||||||
// |GRAVE| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |BKSP | DEL |
|
// |GRAVE| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |BSPC | DEL |
|
||||||
// | TAB | Q | W | E | HUI | HUD | Y | U | INS | O |PSCRN| SLCK| P_B | RGB_TOG |
|
// | TAB | Q | W | E | HUI | HUD | Y | U | INS | O |PSCRN| SLCK| P_B | RGB_TOG |
|
||||||
// | CAPS | A | S | D | BRI | BRD | H | J | K | L | HOME| PGUP| BOOT |
|
// | CAPS | A | S | D | BRI | BRD | H | J | K | L | HOME| PGUP| BOOT |
|
||||||
// | SHFT |NONE|VOLDN|VOLUP|MUTE|BLINC|BLDEC| N | M | , | END | PGDN | SHFT|BL_TOG| 1 |
|
// | SHFT |NONE|VOLDN|VOLUP|MUTE|BLINC|BLDEC| N | M | , | END | PGDN | SHFT|BL_TOG| 1 |
|
||||||
@@ -136,7 +136,7 @@
|
|||||||
#elif defined(HHKB)
|
#elif defined(HHKB)
|
||||||
default_layer {
|
default_layer {
|
||||||
// ------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------
|
||||||
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BKSP |
|
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BSPC |
|
||||||
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
|
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
|
||||||
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER |
|
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER |
|
||||||
// | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT |
|
// | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT |
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ features:
|
|||||||
- encoder
|
- encoder
|
||||||
- underglow
|
- underglow
|
||||||
- backlight
|
- backlight
|
||||||
|
- studio
|
||||||
outputs:
|
outputs:
|
||||||
- usb
|
- usb
|
||||||
- ble
|
- ble
|
||||||
|
|||||||
@@ -6,6 +6,10 @@
|
|||||||
|
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
#include "ckp.dtsi"
|
#include "ckp.dtsi"
|
||||||
|
#include <layouts/common/65percent/all1u.dtsi>
|
||||||
|
#include <layouts/common/65percent/ansi.dtsi>
|
||||||
|
#include <layouts/common/65percent/iso.dtsi>
|
||||||
|
#include <layouts/common/65percent/hhkb.dtsi>
|
||||||
|
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
@@ -13,7 +17,7 @@
|
|||||||
compatible = "polarityworks,bt65_v1";
|
compatible = "polarityworks,bt65_v1";
|
||||||
|
|
||||||
chosen {
|
chosen {
|
||||||
zmk,matrix-transform = &ansi_transform;
|
zmk,physical-layout = &layout_65_ansi;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -69,3 +73,19 @@
|
|||||||
>;
|
>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&layout_65_ansi {
|
||||||
|
transform = <&ansi_transform>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&layout_65_iso {
|
||||||
|
transform = <&iso_transform>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&layout_65_all1u {
|
||||||
|
transform = <&all_1u_transform>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&layout_65_hhkb {
|
||||||
|
transform = <&hhkb_transform>;
|
||||||
|
};
|
||||||
|
|||||||
@@ -12,13 +12,13 @@
|
|||||||
/ {
|
/ {
|
||||||
chosen {
|
chosen {
|
||||||
#ifdef ANSI
|
#ifdef ANSI
|
||||||
zmk,matrix-transform = &ansi_transform;
|
zmk,physical-layout = &layout_65_ansi;
|
||||||
#elif defined(ISO)
|
#elif defined(ISO)
|
||||||
zmk,matrix-transform = &iso_transform;
|
zmk,physical-layout = &layout_65_iso;
|
||||||
#elif defined(ALL_1U)
|
#elif defined(ALL_1U)
|
||||||
zmk,matrix-transform = &all_1u_transform;
|
zmk,physical-layout = &layout_65_all1u;
|
||||||
#elif defined(HHKB)
|
#elif defined(HHKB)
|
||||||
zmk,matrix-transform = &hhkb_transform;
|
zmk,physical-layout = &layout_65_hhkb;
|
||||||
#else
|
#else
|
||||||
#error "Layout not defined, please define a layout by uncommenting the appropriate line in bt65_v1.keymap"
|
#error "Layout not defined, please define a layout by uncommenting the appropriate line in bt65_v1.keymap"
|
||||||
#endif
|
#endif
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
#ifdef ANSI
|
#ifdef ANSI
|
||||||
default_layer {
|
default_layer {
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BKSP | DEL |
|
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BSPC | DEL |
|
||||||
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | INS |
|
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | INS |
|
||||||
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | PGUP|
|
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | PGUP|
|
||||||
// | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT | UP | PGDN|
|
// | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT | UP | PGDN|
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
bindings = <
|
bindings = <
|
||||||
|
|
||||||
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BKSP &kp DEL
|
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC &kp DEL
|
||||||
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH &kp INS
|
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH &kp INS
|
||||||
&kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET &kp PG_UP
|
&kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET &kp PG_UP
|
||||||
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp UP &kp PG_DN
|
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp UP &kp PG_DN
|
||||||
@@ -65,7 +65,7 @@
|
|||||||
#elif defined(ISO)
|
#elif defined(ISO)
|
||||||
default_layer {
|
default_layer {
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BKSP | DEL |
|
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BSPC | DEL |
|
||||||
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | | INS |
|
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | | INS |
|
||||||
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | # | ENTER | PGUP|
|
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | # | ENTER | PGUP|
|
||||||
// |SHIFT | \ | Z | X | C | V | B | N | M | , | . | / | SHIFT | UP | PGDN|
|
// |SHIFT | \ | Z | X | C | V | B | N | M | , | . | / | SHIFT | UP | PGDN|
|
||||||
@@ -73,7 +73,7 @@
|
|||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
bindings = <
|
bindings = <
|
||||||
|
|
||||||
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BKSP &kp DEL
|
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC &kp DEL
|
||||||
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp INS
|
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp INS
|
||||||
&kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp NON_US_HASH &kp RET &kp PG_UP
|
&kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp NON_US_HASH &kp RET &kp PG_UP
|
||||||
&kp LSHFT &kp NON_US_BSLH &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp UP &kp PG_DN
|
&kp LSHFT &kp NON_US_BSLH &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp UP &kp PG_DN
|
||||||
@@ -101,7 +101,7 @@
|
|||||||
#elif defined(ALL_1U)
|
#elif defined(ALL_1U)
|
||||||
default_layer {
|
default_layer {
|
||||||
// -------------------------------------------------------------------------------------------------
|
// -------------------------------------------------------------------------------------------------
|
||||||
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |BKSP | DEL | HOME|
|
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |BSPC | DEL | HOME|
|
||||||
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | END |
|
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | END |
|
||||||
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | PGUP|
|
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | PGUP|
|
||||||
// |SHIFT|NONE | Z | X | C | V | B | N | M | , | . | / |SHIFT|NONE | UP | PGDN|
|
// |SHIFT|NONE | Z | X | C | V | B | N | M | , | . | / |SHIFT|NONE | UP | PGDN|
|
||||||
@@ -136,7 +136,7 @@
|
|||||||
#elif defined(HHKB)
|
#elif defined(HHKB)
|
||||||
default_layer {
|
default_layer {
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BKSP | DEL |
|
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BSPC | DEL |
|
||||||
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | HOME|
|
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | HOME|
|
||||||
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | END |
|
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | END |
|
||||||
// | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT | PGUP|
|
// | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT | PGUP|
|
||||||
@@ -144,7 +144,7 @@
|
|||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
bindings = <
|
bindings = <
|
||||||
|
|
||||||
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BKSP &kp DEL
|
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC &kp DEL
|
||||||
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH &kp HOME
|
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH &kp HOME
|
||||||
&kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET &kp END
|
&kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET &kp END
|
||||||
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp PG_UP
|
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp PG_UP
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ features:
|
|||||||
- encoder
|
- encoder
|
||||||
- underglow
|
- underglow
|
||||||
- backlight
|
- backlight
|
||||||
|
- studio
|
||||||
outputs:
|
outputs:
|
||||||
- usb
|
- usb
|
||||||
- ble
|
- ble
|
||||||
|
|||||||
@@ -6,6 +6,9 @@
|
|||||||
|
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
#include "ckp.dtsi"
|
#include "ckp.dtsi"
|
||||||
|
#include <layouts/common/75percent/all1u.dtsi>
|
||||||
|
#include <layouts/common/75percent/ansi.dtsi>
|
||||||
|
#include <layouts/common/75percent/iso.dtsi>
|
||||||
|
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
@@ -13,7 +16,7 @@
|
|||||||
compatible = "polarityworks,bt75_v1";
|
compatible = "polarityworks,bt75_v1";
|
||||||
|
|
||||||
chosen {
|
chosen {
|
||||||
zmk,matrix-transform = &ansi_transform;
|
zmk,physical-layout = &layout_75_ansi;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -59,3 +62,15 @@
|
|||||||
>;
|
>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&layout_75_ansi {
|
||||||
|
transform = <&ansi_transform>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&layout_75_iso {
|
||||||
|
transform = <&iso_transform>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&layout_75_all1u {
|
||||||
|
transform = <&all_1u_transform>;
|
||||||
|
};
|
||||||
|
|||||||
@@ -11,11 +11,11 @@
|
|||||||
/ {
|
/ {
|
||||||
chosen {
|
chosen {
|
||||||
#ifdef ANSI
|
#ifdef ANSI
|
||||||
zmk,matrix-transform = &ansi_transform;
|
zmk,physical-layout = &layout_75_ansi;
|
||||||
#elif defined(ISO)
|
#elif defined(ISO)
|
||||||
zmk,matrix-transform = &iso_transform;
|
zmk,physical-layout = &layout_75_iso;
|
||||||
#elif defined(ALL_1U)
|
#elif defined(ALL_1U)
|
||||||
zmk,matrix-transform = &all_1u_transform;
|
zmk,physical-layout = &layout_75_all1u;
|
||||||
#else
|
#else
|
||||||
#error "Layout not defined, please define a layout using by uncommenting the appropriate line in bt75_v1.keymap"
|
#error "Layout not defined, please define a layout using by uncommenting the appropriate line in bt75_v1.keymap"
|
||||||
#endif
|
#endif
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
default_layer {
|
default_layer {
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
// | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F9 | F9 | F10 | F11 | F12 |PSCRN|HOME| END |
|
// | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F9 | F9 | F10 | F11 | F12 |PSCRN|HOME| END |
|
||||||
// |GRAVE| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BKSP | DEL |
|
// |GRAVE| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BSPC | DEL |
|
||||||
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | INS |
|
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | INS |
|
||||||
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | PGUP|
|
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | PGUP|
|
||||||
// | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT | UP | PGDN|
|
// | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT | UP | PGDN|
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
bindings = <
|
bindings = <
|
||||||
&kp ESC &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp PSCRN &kp HOME &kp END
|
&kp ESC &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp PSCRN &kp HOME &kp END
|
||||||
&kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BKSP &kp DEL
|
&kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC &kp DEL
|
||||||
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH &kp INS
|
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH &kp INS
|
||||||
&kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET &kp PG_UP
|
&kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET &kp PG_UP
|
||||||
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp UP &kp PG_DN
|
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp UP &kp PG_DN
|
||||||
@@ -66,7 +66,7 @@
|
|||||||
default_layer {
|
default_layer {
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
// | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F9 | F9 | F10 | F11 | F12 |PSCRN|HOME| END |
|
// | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F9 | F9 | F10 | F11 | F12 |PSCRN|HOME| END |
|
||||||
// |GRAVE| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BKSP | DEL |
|
// |GRAVE| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BSPC | DEL |
|
||||||
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | | INS |
|
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | | INS |
|
||||||
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | # | ENTER | PGUP|
|
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | # | ENTER | PGUP|
|
||||||
// |SHIFT | \ | Z | X | C | V | B | N | M | , | . | / | SHIFT | UP | PGDN|
|
// |SHIFT | \ | Z | X | C | V | B | N | M | , | . | / | SHIFT | UP | PGDN|
|
||||||
@@ -74,7 +74,7 @@
|
|||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
bindings = <
|
bindings = <
|
||||||
&kp ESC &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp PSCRN &kp HOME &kp END
|
&kp ESC &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp PSCRN &kp HOME &kp END
|
||||||
&kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BKSP &kp DEL
|
&kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC &kp DEL
|
||||||
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp INS
|
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp INS
|
||||||
&kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp NON_US_HASH &kp RET &kp PG_UP
|
&kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp NON_US_HASH &kp RET &kp PG_UP
|
||||||
&kp LSHFT &kp NON_US_BSLH &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp UP &kp PG_DN
|
&kp LSHFT &kp NON_US_BSLH &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp UP &kp PG_DN
|
||||||
@@ -105,7 +105,7 @@
|
|||||||
default_layer {
|
default_layer {
|
||||||
// -------------------------------------------------------------------------------------------------
|
// -------------------------------------------------------------------------------------------------
|
||||||
// | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F9 | F9 | F10 | F11 | F12 |PSCRN| P_B | INS |
|
// | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F9 | F9 | F10 | F11 | F12 |PSCRN| P_B | INS |
|
||||||
// |GRAVE| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |BKSP | DEL | HOME|
|
// |GRAVE| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |BSPC | DEL | HOME|
|
||||||
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | END |
|
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | END |
|
||||||
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | PGUP|
|
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | PGUP|
|
||||||
// |SHIFT|NONE | Z | X | C | V | B | N | M | , | . | / |SHIFT|NONE | UP | PGDN|
|
// |SHIFT|NONE | Z | X | C | V | B | N | M | , | . | / |SHIFT|NONE | UP | PGDN|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
file_format: "1"
|
file_format: "1"
|
||||||
id: bt75_v1
|
id: bt75_v1
|
||||||
name: BT75_V1
|
name: BT75 V1
|
||||||
type: board
|
type: board
|
||||||
arch: arm
|
arch: arm
|
||||||
features:
|
features:
|
||||||
@@ -8,6 +8,7 @@ features:
|
|||||||
- encoder
|
- encoder
|
||||||
- underglow
|
- underglow
|
||||||
- backlight
|
- backlight
|
||||||
|
- studio
|
||||||
outputs:
|
outputs:
|
||||||
- usb
|
- usb
|
||||||
- ble
|
- ble
|
||||||
|
|||||||
@@ -34,6 +34,8 @@
|
|||||||
|
|
||||||
kscan0: kscan_0 {
|
kscan0: kscan_0 {
|
||||||
compatible = "zmk,kscan-gpio-matrix";
|
compatible = "zmk,kscan-gpio-matrix";
|
||||||
|
wakeup-source;
|
||||||
|
|
||||||
diode-direction = "col2row";
|
diode-direction = "col2row";
|
||||||
|
|
||||||
col-gpios
|
col-gpios
|
||||||
@@ -140,7 +142,7 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&usbd {
|
zephyr_udc0: &usbd {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
9
app/boards/arm/ckp/pre_dt_board.cmake
Normal file
9
app/boards/arm/ckp/pre_dt_board.cmake
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2024 The ZMK Contributors
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
#
|
||||||
|
|
||||||
|
# Suppresses duplicate unit-address warning at build time for power, clock, acl and flash-controller
|
||||||
|
# https://docs.zephyrproject.org/latest/build/dts/intro-input-output.html
|
||||||
|
|
||||||
|
list(APPEND EXTRA_DTC_FLAGS "-Wno-unique_unit_address_if_enabled")
|
||||||
@@ -57,6 +57,13 @@ config IL0323
|
|||||||
config ZMK_DISPLAY_BLANK_ON_IDLE
|
config ZMK_DISPLAY_BLANK_ON_IDLE
|
||||||
default n
|
default n
|
||||||
|
|
||||||
|
# Needed for the IL0323 driver which allocs memory to clear the display
|
||||||
|
config HEAP_MEM_POOL_SIZE
|
||||||
|
default 1024
|
||||||
|
|
||||||
|
config LV_Z_MEM_POOL_SIZE
|
||||||
|
default 4096
|
||||||
|
|
||||||
endif # ZMK_DISPLAY
|
endif # ZMK_DISPLAY
|
||||||
|
|
||||||
menuconfig CUSTOM_WIDGET_BATTERY_STATUS
|
menuconfig CUSTOM_WIDGET_BATTERY_STATUS
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
|
board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
|
||||||
include(${ZEPHYR_BASE}/boards/common/blackmagicprobe.board.cmake)
|
include(${ZEPHYR_BASE}/boards/common/uf2.board.cmake)
|
||||||
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
|
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
|
||||||
|
|||||||
@@ -10,6 +10,17 @@
|
|||||||
|
|
||||||
#include <dt-bindings/zmk/matrix_transform.h>
|
#include <dt-bindings/zmk/matrix_transform.h>
|
||||||
|
|
||||||
|
#include <layouts/foostan/corne/5column.dtsi>
|
||||||
|
#include <layouts/foostan/corne/6column.dtsi>
|
||||||
|
|
||||||
|
&foostan_corne_6col_layout {
|
||||||
|
transform = <&default_transform>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&foostan_corne_5col_layout {
|
||||||
|
transform = <&five_column_transform>;
|
||||||
|
};
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "Corne-ish Zen";
|
model = "Corne-ish Zen";
|
||||||
compatible = "corneish_zen";
|
compatible = "corneish_zen";
|
||||||
@@ -20,8 +31,7 @@
|
|||||||
zephyr,flash = &flash0;
|
zephyr,flash = &flash0;
|
||||||
zmk,kscan = &kscan0;
|
zmk,kscan = &kscan0;
|
||||||
zmk,display = &epd;
|
zmk,display = &epd;
|
||||||
zephyr,console = &cdc_acm_uart;
|
zmk,physical-layout = &foostan_corne_6col_layout;
|
||||||
zmk,matrix-transform = &default_transform;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
default_transform: keymap_transform_0 {
|
default_transform: keymap_transform_0 {
|
||||||
@@ -76,11 +86,8 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&usbd {
|
zephyr_udc0: &usbd {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
cdc_acm_uart: cdc_acm_uart {
|
|
||||||
compatible = "zephyr,cdc-acm-uart";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&flash0 {
|
&flash0 {
|
||||||
|
|||||||
@@ -11,8 +11,8 @@
|
|||||||
|
|
||||||
/ {
|
/ {
|
||||||
chosen {
|
chosen {
|
||||||
zmk,matrix-transform = &default_transform;
|
zmk,physical-layout = &foostan_corne_6col_layout;
|
||||||
// zmk,matrix-transform = &five_column_transform;
|
// zmk,physical-layout = &foostan_corne_5col_layout;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
default_layer {
|
default_layer {
|
||||||
display-name = "QWERTY";
|
display-name = "QWERTY";
|
||||||
// --------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------
|
||||||
// | TAB | Q | W | E | R | T | | Y | U | I | O | P | BKSP |
|
// | TAB | Q | W | E | R | T | | Y | U | I | O | P | BSPC |
|
||||||
// | CTRL | A | S | D | F | G | | H | J | K | L | ; | ' |
|
// | CTRL | A | S | D | F | G | | H | J | K | L | ; | ' |
|
||||||
// | SHFT | Z | X | C | V | B | | N | M | , | . | / | ESC |
|
// | SHFT | Z | X | C | V | B | | N | M | , | . | / | ESC |
|
||||||
// | GUI | LWR | SPC | | ENT | RSE | ALT |
|
// | GUI | LWR | SPC | | ENT | RSE | ALT |
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
lower_layer {
|
lower_layer {
|
||||||
display-name = "NUMBER";
|
display-name = "NUMBER";
|
||||||
// -----------------------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------------------
|
||||||
// | TAB | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BKSP |
|
// | TAB | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BSPC |
|
||||||
// | BTCLR| BT1 | BT2 | BT3 | BT4 | BT5 | | LFT | DWN | UP | RGT | | |
|
// | BTCLR| BT1 | BT2 | BT3 | BT4 | BT5 | | LFT | DWN | UP | RGT | | |
|
||||||
// | SHFT | | | | | | | | | | | | |
|
// | SHFT | | | | | | | | | | | | |
|
||||||
// | GUI | | SPC | | ENT | | ALT |
|
// | GUI | | SPC | | ENT | | ALT |
|
||||||
@@ -53,12 +53,12 @@
|
|||||||
raise_layer {
|
raise_layer {
|
||||||
display-name = "SYMBOL";
|
display-name = "SYMBOL";
|
||||||
// -----------------------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------------------
|
||||||
// | TAB | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BKSP |
|
// | TAB | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BSPC |
|
||||||
// | CTRL | | | | | | | - | = | [ | ] | \ | ` |
|
// | CTRL | | | | | | | - | = | [ | ] | \ | ` |
|
||||||
// | SHFT | | | | | | | _ | + | { | } | "|" | ~ |
|
// | SHFT | | | | | | | _ | + | { | } | "|" | ~ |
|
||||||
// | GUI | | SPC | | ENT | | ALT |
|
// | GUI | | SPC | | ENT | | ALT |
|
||||||
bindings = <
|
bindings = <
|
||||||
&kp TAB &kp EXCL &kp AT &kp HASH &kp DLLR &kp PRCNT &kp CARET &kp AMPS &kp KP_MULTIPLY &kp LPAR &kp RPAR &kp BSPC
|
&kp TAB &kp EXCL &kp AT &kp HASH &kp DLLR &kp PRCNT &kp CARET &kp AMPS &kp ASTRK &kp LPAR &kp RPAR &kp BSPC
|
||||||
&kp LCTRL &trans &trans &trans &trans &trans &kp MINUS &kp EQUAL &kp LBKT &kp RBKT &kp BSLH &kp GRAVE
|
&kp LCTRL &trans &trans &trans &trans &trans &kp MINUS &kp EQUAL &kp LBKT &kp RBKT &kp BSLH &kp GRAVE
|
||||||
&kp LSHFT &trans &trans &trans &trans &trans &kp UNDER &kp PLUS &kp LBRC &kp RBRC &kp PIPE &kp TILDE
|
&kp LSHFT &trans &trans &trans &trans &trans &kp UNDER &kp PLUS &kp LBRC &kp RBRC &kp PIPE &kp TILDE
|
||||||
&kp LGUI &trans &kp SPACE &kp RET &trans &kp RALT
|
&kp LGUI &trans &kp SPACE &kp RET &trans &kp RALT
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ arch: arm
|
|||||||
features:
|
features:
|
||||||
- keys
|
- keys
|
||||||
- display
|
- display
|
||||||
|
- studio
|
||||||
outputs:
|
outputs:
|
||||||
- usb
|
- usb
|
||||||
- ble
|
- ble
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
|
|
||||||
kscan0: kscan {
|
kscan0: kscan {
|
||||||
compatible = "zmk,kscan-gpio-matrix";
|
compatible = "zmk,kscan-gpio-matrix";
|
||||||
|
wakeup-source;
|
||||||
|
|
||||||
diode-direction = "col2row";
|
diode-direction = "col2row";
|
||||||
row-gpios
|
row-gpios
|
||||||
@@ -87,7 +88,7 @@
|
|||||||
fuelgauge: bq274xx@55 {
|
fuelgauge: bq274xx@55 {
|
||||||
compatible = "ti,bq274xx";
|
compatible = "ti,bq274xx";
|
||||||
reg = <0x55>;
|
reg = <0x55>;
|
||||||
design-voltage = <3700>; //Battery Design Volatge in mV
|
design-voltage = <3700>; //Battery Design Voltage in mV
|
||||||
design-capacity = <180>; //Battery Design Capacity in mAh
|
design-capacity = <180>; //Battery Design Capacity in mAh
|
||||||
taper-current = <2>; //Battery Taper current in mAh
|
taper-current = <2>; //Battery Taper current in mAh
|
||||||
terminate-voltage = <2750>; //Battery Terminate Voltage in mV
|
terminate-voltage = <2750>; //Battery Terminate Voltage in mV
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ CONFIG_ZMK_BLE=y
|
|||||||
|
|
||||||
# enable display drivers
|
# enable display drivers
|
||||||
CONFIG_ZMK_DISPLAY_WORK_QUEUE_DEDICATED=y
|
CONFIG_ZMK_DISPLAY_WORK_QUEUE_DEDICATED=y
|
||||||
CONFIG_ZMK_DISPLAY_DEDICATED_THREAD_STACK_SIZE=2048
|
CONFIG_ZMK_DISPLAY_DEDICATED_THREAD_STACK_SIZE=4096
|
||||||
CONFIG_LV_Z_BITS_PER_PIXEL=1
|
CONFIG_LV_Z_BITS_PER_PIXEL=1
|
||||||
CONFIG_LV_COLOR_DEPTH_1=y
|
CONFIG_LV_COLOR_DEPTH_1=y
|
||||||
CONFIG_LV_DPI_DEF=145
|
CONFIG_LV_DPI_DEF=145
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
|
|
||||||
kscan0: kscan {
|
kscan0: kscan {
|
||||||
compatible = "zmk,kscan-gpio-matrix";
|
compatible = "zmk,kscan-gpio-matrix";
|
||||||
|
wakeup-source;
|
||||||
|
|
||||||
diode-direction = "col2row";
|
diode-direction = "col2row";
|
||||||
row-gpios
|
row-gpios
|
||||||
@@ -95,7 +96,7 @@
|
|||||||
fuelgauge: bq274xx@55 {
|
fuelgauge: bq274xx@55 {
|
||||||
compatible = "ti,bq274xx";
|
compatible = "ti,bq274xx";
|
||||||
reg = <0x55>;
|
reg = <0x55>;
|
||||||
design-voltage = <3700>; //Battery Design Volatge in mV
|
design-voltage = <3700>; //Battery Design Voltage in mV
|
||||||
design-capacity = <180>; //Battery Design Capacity in mAh
|
design-capacity = <180>; //Battery Design Capacity in mAh
|
||||||
taper-current = <2>; //Battery Taper current in mAh 2.1
|
taper-current = <2>; //Battery Taper current in mAh 2.1
|
||||||
terminate-voltage = <2750>; //Battery Terminate Voltage in mV
|
terminate-voltage = <2750>; //Battery Terminate Voltage in mV
|
||||||
|
|||||||
@@ -39,12 +39,12 @@ CONFIG_FLASH_MAP=y
|
|||||||
CONFIG_CLOCK_CONTROL_NRF_K32SRC_XTAL=y
|
CONFIG_CLOCK_CONTROL_NRF_K32SRC_XTAL=y
|
||||||
CONFIG_CLOCK_CONTROL_NRF_K32SRC_30PPM=y
|
CONFIG_CLOCK_CONTROL_NRF_K32SRC_30PPM=y
|
||||||
|
|
||||||
CONFIG_ZMK_USB=y
|
CONFIG_ZMK_USB=n
|
||||||
CONFIG_ZMK_BLE=y
|
CONFIG_ZMK_BLE=y
|
||||||
|
|
||||||
# enable display drivers
|
# enable display drivers
|
||||||
CONFIG_ZMK_DISPLAY_WORK_QUEUE_DEDICATED=y
|
CONFIG_ZMK_DISPLAY_WORK_QUEUE_DEDICATED=y
|
||||||
CONFIG_ZMK_DISPLAY_DEDICATED_THREAD_STACK_SIZE=2048
|
CONFIG_ZMK_DISPLAY_DEDICATED_THREAD_STACK_SIZE=4096
|
||||||
CONFIG_LV_Z_BITS_PER_PIXEL=1
|
CONFIG_LV_Z_BITS_PER_PIXEL=1
|
||||||
CONFIG_LV_COLOR_DEPTH_1=y
|
CONFIG_LV_COLOR_DEPTH_1=y
|
||||||
CONFIG_LV_DPI_DEF=145
|
CONFIG_LV_DPI_DEF=145
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ arch: arm
|
|||||||
features:
|
features:
|
||||||
- keys
|
- keys
|
||||||
- display
|
- display
|
||||||
|
- studio
|
||||||
outputs:
|
outputs:
|
||||||
- usb
|
- usb
|
||||||
- ble
|
- ble
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
|
|
||||||
kscan0: kscan {
|
kscan0: kscan {
|
||||||
compatible = "zmk,kscan-gpio-matrix";
|
compatible = "zmk,kscan-gpio-matrix";
|
||||||
|
wakeup-source;
|
||||||
|
|
||||||
diode-direction = "col2row";
|
diode-direction = "col2row";
|
||||||
row-gpios
|
row-gpios
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ CONFIG_ZMK_BLE=y
|
|||||||
|
|
||||||
# enable display drivers
|
# enable display drivers
|
||||||
CONFIG_ZMK_DISPLAY_WORK_QUEUE_DEDICATED=y
|
CONFIG_ZMK_DISPLAY_WORK_QUEUE_DEDICATED=y
|
||||||
CONFIG_ZMK_DISPLAY_DEDICATED_THREAD_STACK_SIZE=2048
|
CONFIG_ZMK_DISPLAY_DEDICATED_THREAD_STACK_SIZE=4096
|
||||||
CONFIG_LV_Z_BITS_PER_PIXEL=1
|
CONFIG_LV_Z_BITS_PER_PIXEL=1
|
||||||
CONFIG_LV_COLOR_DEPTH_1=y
|
CONFIG_LV_COLOR_DEPTH_1=y
|
||||||
CONFIG_LV_DPI_DEF=145
|
CONFIG_LV_DPI_DEF=145
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
|
|
||||||
kscan0: kscan {
|
kscan0: kscan {
|
||||||
compatible = "zmk,kscan-gpio-matrix";
|
compatible = "zmk,kscan-gpio-matrix";
|
||||||
|
wakeup-source;
|
||||||
|
|
||||||
diode-direction = "col2row";
|
diode-direction = "col2row";
|
||||||
row-gpios
|
row-gpios
|
||||||
|
|||||||
@@ -35,12 +35,12 @@ CONFIG_FLASH_MAP=y
|
|||||||
CONFIG_CLOCK_CONTROL_NRF_K32SRC_XTAL=y
|
CONFIG_CLOCK_CONTROL_NRF_K32SRC_XTAL=y
|
||||||
CONFIG_CLOCK_CONTROL_NRF_K32SRC_30PPM=y
|
CONFIG_CLOCK_CONTROL_NRF_K32SRC_30PPM=y
|
||||||
|
|
||||||
CONFIG_ZMK_USB=y
|
CONFIG_ZMK_USB=n
|
||||||
CONFIG_ZMK_BLE=y
|
CONFIG_ZMK_BLE=y
|
||||||
|
|
||||||
# enable display drivers
|
# enable display drivers
|
||||||
CONFIG_ZMK_DISPLAY_WORK_QUEUE_DEDICATED=y
|
CONFIG_ZMK_DISPLAY_WORK_QUEUE_DEDICATED=y
|
||||||
CONFIG_ZMK_DISPLAY_DEDICATED_THREAD_STACK_SIZE=2048
|
CONFIG_ZMK_DISPLAY_DEDICATED_THREAD_STACK_SIZE=4096
|
||||||
CONFIG_LV_Z_BITS_PER_PIXEL=1
|
CONFIG_LV_Z_BITS_PER_PIXEL=1
|
||||||
CONFIG_LV_COLOR_DEPTH_1=y
|
CONFIG_LV_COLOR_DEPTH_1=y
|
||||||
CONFIG_LV_DPI_DEF=145
|
CONFIG_LV_DPI_DEF=145
|
||||||
|
|||||||
9
app/boards/arm/corneish_zen/pre_dt_board.cmake
Normal file
9
app/boards/arm/corneish_zen/pre_dt_board.cmake
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2024 The ZMK Contributors
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
#
|
||||||
|
|
||||||
|
# Suppresses duplicate unit-address warning at build time for power, clock, acl and flash-controller
|
||||||
|
# https://docs.zephyrproject.org/latest/build/dts/intro-input-output.html
|
||||||
|
|
||||||
|
list(APPEND EXTRA_DTC_FLAGS "-Wno-unique_unit_address_if_enabled")
|
||||||
@@ -6,12 +6,12 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <zephyr/kernel.h>
|
#include <zephyr/kernel.h>
|
||||||
#include <zephyr/bluetooth/services/bas.h>
|
|
||||||
|
|
||||||
#include <zephyr/logging/log.h>
|
#include <zephyr/logging/log.h>
|
||||||
LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
|
LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
|
||||||
|
|
||||||
#include <zmk/display.h>
|
#include <zmk/display.h>
|
||||||
|
#include <zmk/battery.h>
|
||||||
#include "battery_status.h"
|
#include "battery_status.h"
|
||||||
#include <zmk/usb.h>
|
#include <zmk/usb.h>
|
||||||
#include <zmk/events/usb_conn_state_changed.h>
|
#include <zmk/events/usb_conn_state_changed.h>
|
||||||
@@ -66,8 +66,10 @@ void battery_status_update_cb(struct battery_status_state state) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static struct battery_status_state battery_status_get_state(const zmk_event_t *eh) {
|
static struct battery_status_state battery_status_get_state(const zmk_event_t *eh) {
|
||||||
|
const struct zmk_battery_state_changed *ev = as_zmk_battery_state_changed(eh);
|
||||||
|
|
||||||
return (struct battery_status_state){
|
return (struct battery_status_state){
|
||||||
.level = zmk_battery_state_of_charge(),
|
.level = (ev != NULL) ? ev->state_of_charge : zmk_battery_state_of_charge(),
|
||||||
#if IS_ENABLED(CONFIG_USB_DEVICE_STACK)
|
#if IS_ENABLED(CONFIG_USB_DEVICE_STACK)
|
||||||
.usb_present = zmk_usb_is_powered(),
|
.usb_present = zmk_usb_is_powered(),
|
||||||
#endif /* IS_ENABLED(CONFIG_USB_DEVICE_STACK) */
|
#endif /* IS_ENABLED(CONFIG_USB_DEVICE_STACK) */
|
||||||
|
|||||||
@@ -19,15 +19,15 @@ LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
|
|||||||
static sys_slist_t widgets = SYS_SLIST_STATIC_INIT(&widgets);
|
static sys_slist_t widgets = SYS_SLIST_STATIC_INIT(&widgets);
|
||||||
|
|
||||||
struct layer_status_state {
|
struct layer_status_state {
|
||||||
uint8_t index;
|
zmk_keymap_layer_index_t index;
|
||||||
const char *label;
|
const char *label;
|
||||||
};
|
};
|
||||||
|
|
||||||
static void set_layer_symbol(lv_obj_t *label, struct layer_status_state state) {
|
static void set_layer_symbol(lv_obj_t *label, struct layer_status_state state) {
|
||||||
const char *layer_label = state.label;
|
const char *layer_label = state.label;
|
||||||
uint8_t active_layer_index = state.index;
|
zmk_keymap_layer_index_t active_layer_index = state.index;
|
||||||
|
|
||||||
if (layer_label == NULL) {
|
if (layer_label == NULL || strlen(layer_label) == 0) {
|
||||||
char text[6] = {};
|
char text[6] = {};
|
||||||
|
|
||||||
sprintf(text, " %i", active_layer_index);
|
sprintf(text, " %i", active_layer_index);
|
||||||
@@ -44,8 +44,9 @@ static void layer_status_update_cb(struct layer_status_state state) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static struct layer_status_state layer_status_get_state(const zmk_event_t *eh) {
|
static struct layer_status_state layer_status_get_state(const zmk_event_t *eh) {
|
||||||
uint8_t index = zmk_keymap_highest_layer_active();
|
zmk_keymap_layer_index_t index = zmk_keymap_highest_layer_active();
|
||||||
return (struct layer_status_state){.index = index, .label = zmk_keymap_layer_name(index)};
|
return (struct layer_status_state){
|
||||||
|
.index = index, .label = zmk_keymap_layer_name(zmk_keymap_layer_index_to_id(index))};
|
||||||
}
|
}
|
||||||
|
|
||||||
ZMK_DISPLAY_WIDGET_LISTENER(widget_layer_status, struct layer_status_state, layer_status_update_cb,
|
ZMK_DISPLAY_WIDGET_LISTENER(widget_layer_status, struct layer_status_state, layer_status_update_cb,
|
||||||
|
|||||||
@@ -6,7 +6,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <zephyr/kernel.h>
|
#include <zephyr/kernel.h>
|
||||||
#include <zephyr/bluetooth/services/bas.h>
|
|
||||||
|
|
||||||
#include <zephyr/logging/log.h>
|
#include <zephyr/logging/log.h>
|
||||||
LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
|
LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
|
||||||
|
|||||||
@@ -16,7 +16,6 @@
|
|||||||
chosen {
|
chosen {
|
||||||
zephyr,sram = &sram0;
|
zephyr,sram = &sram0;
|
||||||
zephyr,flash = &flash0;
|
zephyr,flash = &flash0;
|
||||||
zephyr,console = &cdc_acm_uart;
|
|
||||||
zmk,kscan = &kscan0;
|
zmk,kscan = &kscan0;
|
||||||
zmk,matrix-transform = &default_transform;
|
zmk,matrix-transform = &default_transform;
|
||||||
};
|
};
|
||||||
@@ -65,11 +64,8 @@ RC(4,0) RC(4,1) RC(4,2) RC(4,5) RC(
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&usb {
|
zephyr_udc0: &usb {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
cdc_acm_uart: cdc_acm_uart {
|
|
||||||
compatible = "zephyr,cdc-acm-uart";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&flash0 {
|
&flash0 {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
default_layer {
|
default_layer {
|
||||||
// ------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------
|
||||||
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BKSP |
|
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BSPC |
|
||||||
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | "|" |
|
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | "|" |
|
||||||
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER |
|
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER |
|
||||||
// | SHIFT | Z | X | C | V | B | N | M | , | . | SHIFT(/) | ^ | DEL |
|
// | SHIFT | Z | X | C | V | B | N | M | , | . | SHIFT(/) | ^ | DEL |
|
||||||
|
|||||||
@@ -5,9 +5,6 @@ CONFIG_SOC_STM32F303XC=y
|
|||||||
# 72MHz system clock
|
# 72MHz system clock
|
||||||
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=72000000
|
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=72000000
|
||||||
|
|
||||||
# enable pinmux
|
|
||||||
CONFIG_PINMUX=y
|
|
||||||
|
|
||||||
# enable GPIO
|
# enable GPIO
|
||||||
CONFIG_GPIO=y
|
CONFIG_GPIO=y
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,12 @@
|
|||||||
|
|
||||||
#include <dt-bindings/zmk/matrix_transform.h>
|
#include <dt-bindings/zmk/matrix_transform.h>
|
||||||
|
|
||||||
|
#include <layouts/cuddlykeyboards/ferris.dtsi>
|
||||||
|
|
||||||
|
&cuddlykeyboards_ferris_layout {
|
||||||
|
transform = <&matrix_transform0>;
|
||||||
|
};
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "Ferris rev0.2";
|
model = "Ferris rev0.2";
|
||||||
compatible = "ferris,rev02", "st,stm32f072";
|
compatible = "ferris,rev02", "st,stm32f072";
|
||||||
@@ -17,15 +23,14 @@
|
|||||||
chosen {
|
chosen {
|
||||||
zephyr,sram = &sram0;
|
zephyr,sram = &sram0;
|
||||||
zephyr,flash = &flash0;
|
zephyr,flash = &flash0;
|
||||||
zephyr,console = &cdc_acm_uart;
|
zmk,kscan = &kscan0;
|
||||||
zmk,kscan = &kscan;
|
zmk,physical-layout = &cuddlykeyboards_ferris_layout;
|
||||||
zmk,matrix-transform = &transform;
|
|
||||||
/* TODO: Enable once we support the IC for underglow
|
/* TODO: Enable once we support the IC for underglow
|
||||||
zmk,underglow = &led_strip;
|
zmk,underglow = &led_strip;
|
||||||
*/
|
*/
|
||||||
};
|
};
|
||||||
|
|
||||||
transform: transform {
|
matrix_transform0: matrix_transform0 {
|
||||||
compatible = "zmk,matrix-transform";
|
compatible = "zmk,matrix-transform";
|
||||||
rows = <4>;
|
rows = <4>;
|
||||||
columns = <10>;
|
columns = <10>;
|
||||||
@@ -38,7 +43,7 @@
|
|||||||
>;
|
>;
|
||||||
};
|
};
|
||||||
|
|
||||||
kscan: kscan {
|
kscan0: kscan0 {
|
||||||
compatible = "zmk,kscan-composite";
|
compatible = "zmk,kscan-composite";
|
||||||
rows = <4>;
|
rows = <4>;
|
||||||
columns = <10>;
|
columns = <10>;
|
||||||
@@ -49,7 +54,7 @@
|
|||||||
|
|
||||||
right {
|
right {
|
||||||
kscan = <&kscan_right>;
|
kscan = <&kscan_right>;
|
||||||
column-offset = <5>;
|
col-offset = <5>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -110,17 +115,24 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&usb {
|
zephyr_udc0: &usb {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
cdc_acm_uart: cdc_acm_uart {
|
|
||||||
compatible = "zephyr,cdc-acm-uart";
|
pinctrl-0 = <&usb_dm_pa11 &usb_dp_pa12>;
|
||||||
};
|
pinctrl-names = "default";
|
||||||
|
|
||||||
|
// Overridden to lower RAM usage.
|
||||||
|
num-bidir-endpoints = <4>;
|
||||||
};
|
};
|
||||||
|
|
||||||
&clk_hsi {
|
&clk_hsi {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&clk_hsi48 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
&pll {
|
&pll {
|
||||||
prediv = <1>;
|
prediv = <1>;
|
||||||
mul = <6>;
|
mul = <6>;
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#undef ZMK_BEHAVIORS_KEEP_ALL
|
||||||
|
|
||||||
#include <behaviors.dtsi>
|
#include <behaviors.dtsi>
|
||||||
#include <dt-bindings/zmk/keys.h>
|
#include <dt-bindings/zmk/keys.h>
|
||||||
#include <dt-bindings/zmk/bt.h>
|
#include <dt-bindings/zmk/bt.h>
|
||||||
@@ -14,14 +16,14 @@
|
|||||||
#define SYM_L 4
|
#define SYM_L 4
|
||||||
|
|
||||||
// Using layer taps on thumbs, having quick tap as well helps w/ repeating space/backspace
|
// Using layer taps on thumbs, having quick tap as well helps w/ repeating space/backspace
|
||||||
< { quick_tap_ms = <200>; };
|
< { quick-tap-ms = <200>; };
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
behaviors {
|
behaviors {
|
||||||
hm: homerow_mods {
|
hm: homerow_mods {
|
||||||
compatible = "zmk,behavior-hold-tap";
|
compatible = "zmk,behavior-hold-tap";
|
||||||
#binding-cells = <2>;
|
#binding-cells = <2>;
|
||||||
tapping_term_ms = <200>;
|
tapping-term-ms = <200>;
|
||||||
flavor = "tap-preferred";
|
flavor = "tap-preferred";
|
||||||
bindings = <&kp>, <&kp>;
|
bindings = <&kp>, <&kp>;
|
||||||
};
|
};
|
||||||
@@ -33,16 +35,16 @@
|
|||||||
default_layer {
|
default_layer {
|
||||||
bindings = <
|
bindings = <
|
||||||
&kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P
|
&kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P
|
||||||
&hm LGUI A &hm LALT S &hm LCTRL D &hm LSHFT F &kp G &kp H &hm RSHFT J &hm RCTRL K &hm LALT L &hm LGUI QUOT
|
&hm LGUI A &hm LALT S &hm LCTRL D &hm LSHFT F &kp G &kp H &hm RSHFT J &hm RCTRL K &hm LALT L &hm LGUI SQT
|
||||||
&kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH
|
&kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH
|
||||||
< NAV_L TAB &kp ENTER < NUM_L SPACE < SYM_L BKSP
|
< NAV_L TAB &kp ENTER < NUM_L SPACE < SYM_L BSPC
|
||||||
>;
|
>;
|
||||||
};
|
};
|
||||||
|
|
||||||
nav_layer {
|
nav_layer {
|
||||||
bindings = <
|
bindings = <
|
||||||
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
|
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
|
||||||
&trans &trans &trans &trans &trans &trans &kp LARW &kp DARW &kp UARW &kp RARW
|
&trans &trans &trans &trans &trans &trans &kp LEFT &kp DOWN &kp UP &kp RIGHT
|
||||||
&trans &trans &trans &trans &trans &trans &kp HOME &kp PG_DN &kp PG_UP &kp END
|
&trans &trans &trans &trans &trans &trans &kp HOME &kp PG_DN &kp PG_UP &kp END
|
||||||
&trans &trans &kp ESC &kp DEL
|
&trans &trans &kp ESC &kp DEL
|
||||||
>;
|
>;
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ CONFIG_SOC_STM32F072XB=y
|
|||||||
# 48MHz system clock
|
# 48MHz system clock
|
||||||
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=48000000
|
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=48000000
|
||||||
|
|
||||||
# enable PINMUX
|
# enable PINCTRL
|
||||||
CONFIG_PINCTRL=y
|
CONFIG_PINCTRL=y
|
||||||
|
|
||||||
# enable GPIO
|
# enable GPIO
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ if BOARD_GLOVE80_LH
|
|||||||
config BOARD
|
config BOARD
|
||||||
default "glove80 lh"
|
default "glove80 lh"
|
||||||
|
|
||||||
config ZMK_SPLIT_BLE_ROLE_CENTRAL
|
config ZMK_SPLIT_ROLE_CENTRAL
|
||||||
default y
|
default y
|
||||||
|
|
||||||
endif # BOARD_GLOVE80_LH
|
endif # BOARD_GLOVE80_LH
|
||||||
|
|||||||
@@ -2,5 +2,5 @@
|
|||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
|
board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
|
||||||
include(${ZEPHYR_BASE}/boards/common/blackmagicprobe.board.cmake)
|
include(${ZEPHYR_BASE}/boards/common/uf2.board.cmake)
|
||||||
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
|
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
|
||||||
|
|||||||
91
app/boards/arm/glove80/glove80-layouts.dtsi
Normal file
91
app/boards/arm/glove80/glove80-layouts.dtsi
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
#include <physical_layouts.dtsi>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
physical_layout0: physical_layout_0 {
|
||||||
|
compatible = "zmk,physical-layout";
|
||||||
|
display-name = "Default";
|
||||||
|
|
||||||
|
keys // w h x y rot rx ry
|
||||||
|
= <&key_physical_attrs 100 100 0 50 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 100 50 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 200 0 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 300 0 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 400 0 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1300 0 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1400 0 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1500 0 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1600 50 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1700 50 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 0 150 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 100 150 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 200 100 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 300 100 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 400 100 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 500 100 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1200 100 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1300 100 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1400 100 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1500 100 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1600 150 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1700 150 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 0 250 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 100 250 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 200 200 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 300 200 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 400 200 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 500 200 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1200 200 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1300 200 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1400 200 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1500 200 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1600 250 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1700 250 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 0 350 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 100 350 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 200 300 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 300 300 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 400 300 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 500 300 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1200 300 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1300 300 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1400 300 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1500 300 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1600 350 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1700 350 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 0 450 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 100 450 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 200 400 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 300 400 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 400 400 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 500 400 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 400 450 3000 450 925>
|
||||||
|
, <&key_physical_attrs 100 100 400 450 4500 450 925>
|
||||||
|
, <&key_physical_attrs 100 100 400 450 6000 450 925>
|
||||||
|
, <&key_physical_attrs 100 100 1300 450 (-6000) 1350 925>
|
||||||
|
, <&key_physical_attrs 100 100 1300 450 (-4500) 1350 925>
|
||||||
|
, <&key_physical_attrs 100 100 1300 450 (-3000) 1350 925>
|
||||||
|
, <&key_physical_attrs 100 100 1200 400 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1300 400 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1400 400 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1500 400 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1600 450 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1700 450 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 0 550 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 100 550 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 200 500 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 300 500 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 400 500 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 400 550 2000 450 925>
|
||||||
|
, <&key_physical_attrs 100 100 400 550 4000 450 925>
|
||||||
|
, <&key_physical_attrs 100 100 400 550 6000 450 925>
|
||||||
|
, <&key_physical_attrs 100 100 1300 550 (-6000) 1350 925>
|
||||||
|
, <&key_physical_attrs 100 100 1300 550 (-4000) 1350 925>
|
||||||
|
, <&key_physical_attrs 100 100 1300 550 (-2000) 1350 925>
|
||||||
|
, <&key_physical_attrs 100 100 1300 500 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1400 500 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1500 500 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1600 550 0 0 0>
|
||||||
|
, <&key_physical_attrs 100 100 1700 550 0 0 0>
|
||||||
|
;
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -7,18 +7,23 @@
|
|||||||
#include <nordic/nrf52840_qiaa.dtsi>
|
#include <nordic/nrf52840_qiaa.dtsi>
|
||||||
|
|
||||||
#include <dt-bindings/zmk/matrix_transform.h>
|
#include <dt-bindings/zmk/matrix_transform.h>
|
||||||
|
#include "glove80-layouts.dtsi"
|
||||||
|
|
||||||
|
&physical_layout0 {
|
||||||
|
transform = <&matrix_transform0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
chosen {
|
chosen {
|
||||||
zmk,kscan = &kscan0;
|
zmk,kscan = &kscan0;
|
||||||
zmk,matrix-transform = &default_transform;
|
zmk,physical-layout = &physical_layout0;
|
||||||
zephyr,code-partition = &code_partition;
|
zephyr,code-partition = &code_partition;
|
||||||
zephyr,sram = &sram0;
|
zephyr,sram = &sram0;
|
||||||
zephyr,flash = &flash0;
|
zephyr,flash = &flash0;
|
||||||
zephyr,console = &cdc_acm_uart;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
default_transform: keymap_transform_0 {
|
matrix_transform0: keymap_transform_0 {
|
||||||
compatible = "zmk,matrix-transform";
|
compatible = "zmk,matrix-transform";
|
||||||
columns = <14>;
|
columns = <14>;
|
||||||
rows = <6>;
|
rows = <6>;
|
||||||
@@ -34,11 +39,12 @@
|
|||||||
|
|
||||||
kscan0: kscan {
|
kscan0: kscan {
|
||||||
compatible = "zmk,kscan-gpio-matrix";
|
compatible = "zmk,kscan-gpio-matrix";
|
||||||
|
wakeup-source;
|
||||||
|
|
||||||
diode-direction = "col2row";
|
diode-direction = "col2row";
|
||||||
debounce-press-ms = <4>;
|
debounce-press-ms = <4>;
|
||||||
debounce-release-ms = <20>;
|
debounce-release-ms = <20>;
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&adc {
|
&adc {
|
||||||
@@ -57,11 +63,8 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&usbd {
|
zephyr_udc0: &usbd {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
cdc_acm_uart: cdc_acm_uart {
|
|
||||||
compatible = "zephyr,cdc-acm-uart";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&flash0 {
|
&flash0 {
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ features:
|
|||||||
- keys
|
- keys
|
||||||
- underglow
|
- underglow
|
||||||
- backlight
|
- backlight
|
||||||
|
- studio
|
||||||
outputs:
|
outputs:
|
||||||
- usb
|
- usb
|
||||||
- ble
|
- ble
|
||||||
|
|||||||
@@ -36,6 +36,21 @@
|
|||||||
vbatt: vbatt {
|
vbatt: vbatt {
|
||||||
compatible = "zmk,battery-nrf-vddh";
|
compatible = "zmk,battery-nrf-vddh";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
glove80_ext: connector {
|
||||||
|
compatible = "moergo,glove80-ext";
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
gpio-map-mask = <0xffffffff 0xffffffc0>;
|
||||||
|
gpio-map-pass-thru = <0 0x3f>;
|
||||||
|
gpio-map
|
||||||
|
= <1 0 &gpio0 22 0> /* EXT1 */
|
||||||
|
, <2 0 &gpio0 21 0> /* EXT2 */
|
||||||
|
, <3 0 &gpio0 24 0> /* EXT3 */
|
||||||
|
, <4 0 &gpio0 20 0> /* EXT4 */
|
||||||
|
, <5 0 &gpio0 25 0> /* EXT5 */
|
||||||
|
, <6 0 &gpio1 00 0> /* EXT6 */
|
||||||
|
;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&spi3 {
|
&spi3 {
|
||||||
|
|||||||
@@ -37,6 +37,21 @@
|
|||||||
vbatt: vbatt {
|
vbatt: vbatt {
|
||||||
compatible = "zmk,battery-nrf-vddh";
|
compatible = "zmk,battery-nrf-vddh";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
glove80_ext: connector {
|
||||||
|
compatible = "moergo,glove80-ext";
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
gpio-map-mask = <0xffffffff 0xffffffc0>;
|
||||||
|
gpio-map-pass-thru = <0 0x3f>;
|
||||||
|
gpio-map
|
||||||
|
= <1 0 &gpio0 21 0> /* EXT1 */
|
||||||
|
, <2 0 &gpio0 24 0> /* EXT2 */
|
||||||
|
, <3 0 &gpio0 20 0> /* EXT3 */
|
||||||
|
, <4 0 &gpio0 25 0> /* EXT4 */
|
||||||
|
, <5 0 &gpio0 22 0> /* EXT5 */
|
||||||
|
, <6 0 &gpio1 00 0> /* EXT6 */
|
||||||
|
;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&spi3 {
|
&spi3 {
|
||||||
@@ -79,7 +94,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* For right hand, the columns are offset by 7 */
|
/* For right hand, the columns are offset by 7 */
|
||||||
&default_transform {
|
&matrix_transform0 {
|
||||||
col-offset = <7>;
|
col-offset = <7>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
9
app/boards/arm/glove80/pre_dt_board.cmake
Normal file
9
app/boards/arm/glove80/pre_dt_board.cmake
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2024 The ZMK Contributors
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
#
|
||||||
|
|
||||||
|
# Suppresses duplicate unit-address warning at build time for power, clock, acl and flash-controller
|
||||||
|
# https://docs.zephyrproject.org/latest/build/dts/intro-input-output.html
|
||||||
|
|
||||||
|
list(APPEND EXTRA_DTC_FLAGS "-Wno-unique_unit_address_if_enabled")
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user