mirror of
https://github.com/zmkfirmware/zmk.git
synced 2026-03-20 13:05:20 -05:00
Compare commits
664 Commits
revert-200
...
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 | ||
|
|
3c14c7c112 | ||
|
|
789c11629e | ||
|
|
72d5c01e46 | ||
|
|
1f8b45d57d | ||
|
|
1dbd6910cb | ||
|
|
08d9391a8a | ||
|
|
bf5284b3b9 | ||
|
|
d4be70587d | ||
|
|
37fcf190e6 | ||
|
|
84e056793b | ||
|
|
a0465391be | ||
|
|
1a3529a3e6 | ||
|
|
6b547019c2 | ||
|
|
a3fbc2a5ba | ||
|
|
19613128b9 | ||
|
|
0dc04df09c | ||
|
|
7196f9f075 | ||
|
|
fa91648cce | ||
|
|
e3f458e539 | ||
|
|
57684f8a66 | ||
|
|
5cbffd6625 | ||
|
|
1b326ff856 | ||
|
|
dcfe07d9f6 | ||
|
|
ee855de349 | ||
|
|
f014eb45a7 | ||
|
|
00962a7255 | ||
|
|
a0a952413a | ||
|
|
13c856d1d3 | ||
|
|
0827ff245f | ||
|
|
f71458aca0 | ||
|
|
8c14b155e8 | ||
|
|
0890aaeaff | ||
|
|
e5050e40fe | ||
|
|
e89cffc959 | ||
|
|
331915f989 | ||
|
|
644feeb40d | ||
|
|
33209dee1d | ||
|
|
50e473276f | ||
|
|
466cf92029 | ||
|
|
2829185a94 | ||
|
|
db9ab30335 | ||
|
|
6bf4870704 | ||
|
|
7652fbeb6b | ||
|
|
12bc8b0402 | ||
|
|
cebf651d11 | ||
|
|
395ffaa790 | ||
|
|
74875314f8 | ||
|
|
69f962fab2 | ||
|
|
bc7b4b56bd | ||
|
|
7d1c1ae8fd | ||
|
|
7b9466c7dc | ||
|
|
194a9790eb | ||
|
|
b813f34e34 | ||
|
|
f4fe7fa40f | ||
|
|
604c95118e | ||
|
|
b8cb407351 | ||
|
|
7a5155f36e | ||
|
|
5257cde1f5 | ||
|
|
6f8d080b6a | ||
|
|
b3146e665e | ||
|
|
0e2f94b73b | ||
|
|
d35311af97 | ||
|
|
7ef6ec7560 | ||
|
|
c965e35140 | ||
|
|
a593c7260a | ||
|
|
12d73ba4f9 | ||
|
|
78fa1e77c4 | ||
|
|
1b8b6b4a0e | ||
|
|
f4f402fa44 | ||
|
|
9b3a98691c | ||
|
|
52ed49b4bb | ||
|
|
ff57ccc75a | ||
|
|
2c50cff891 | ||
|
|
b35a5e83c0 | ||
|
|
63c8c5700a | ||
|
|
96f9031951 | ||
|
|
384637ae6c | ||
|
|
09d47d8117 | ||
|
|
55bf7cae7e | ||
|
|
56d863cba6 | ||
|
|
2bab81a304 | ||
|
|
76a209c728 | ||
|
|
f3ad08b619 | ||
|
|
88338a9b3c | ||
|
|
291bbc2257 | ||
|
|
3656ec63d0 | ||
|
|
efd403a567 | ||
|
|
0ab6a0ad11 | ||
|
|
17a6f0b128 | ||
|
|
0fd8e25807 | ||
|
|
23ecf08119 | ||
|
|
36eda571b7 | ||
|
|
5ecd3521f5 | ||
|
|
d4e8dee444 | ||
|
|
ba5637fdef | ||
|
|
3ae9e74056 | ||
|
|
05925c72d7 | ||
|
|
179bdbc41a | ||
|
|
dbe5dfb1d8 | ||
|
|
9bacaffe62 | ||
|
|
8ee3467adf | ||
|
|
042e5209b3 | ||
|
|
ecefd6d24b | ||
|
|
55aed8e89d | ||
|
|
c63d0791d5 | ||
|
|
693530c2f1 | ||
|
|
da15564d0e | ||
|
|
3fad4dba07 | ||
|
|
329d6474ee | ||
|
|
744f70c80c | ||
|
|
69f7bfb409 | ||
|
|
817ce8764f | ||
|
|
d9bb0d7d0e | ||
|
|
4e55c5f6e9 | ||
|
|
6276e973d5 | ||
|
|
84b93350b8 | ||
|
|
a3f30ee799 | ||
|
|
f77e38f2b9 | ||
|
|
0a4b1a6533 | ||
|
|
d7d9eed317 | ||
|
|
8776911da5 | ||
|
|
3027b2a6e8 | ||
|
|
f6716f869a | ||
|
|
2a1904e184 | ||
|
|
afe65ead9c |
@@ -6,3 +6,8 @@ fi
|
|||||||
if [ -f "$WORKSPACE_DIR/zephyr/zephyr-env.sh" ]; then
|
if [ -f "$WORKSPACE_DIR/zephyr/zephyr-env.sh" ]; then
|
||||||
source "$WORKSPACE_DIR/zephyr/zephyr-env.sh"
|
source "$WORKSPACE_DIR/zephyr/zephyr-env.sh"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -d "$WORKSPACE_DIR/tools/bsim" ]; then
|
||||||
|
export BSIM_OUT_PATH="$WORKSPACE_DIR/tools/bsim/"
|
||||||
|
export BSIM_COMPONENTS_PATH="$WORKSPACE_DIR/tools/bsim/components/"
|
||||||
|
fi
|
||||||
@@ -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,13 +9,18 @@
|
|||||||
"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"
|
||||||
],
|
],
|
||||||
"extensions": ["ms-vscode.cpptools"],
|
"customizations": {
|
||||||
"settings": {
|
"vscode": {
|
||||||
"terminal.integrated.shell.linux": "/bin/bash"
|
"extensions": ["ms-vscode.cpptools"],
|
||||||
|
"settings": {
|
||||||
|
"terminal.integrated.shell.linux": "/bin/bash"
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"forwardPorts": [3000]
|
"forwardPorts": [3000]
|
||||||
}
|
}
|
||||||
|
|||||||
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)
|
|
||||||
|
|||||||
78
.github/workflows/ble-test.yml
vendored
Normal file
78
.github/workflows/ble-test.yml
vendored
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
name: BLE Tests
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- ".github/workflows/ble-test.yml"
|
||||||
|
- "app/tests/ble/**"
|
||||||
|
- "app/src/**"
|
||||||
|
- "app/run-ble-test.sh"
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- ".github/workflows/ble-test.yml"
|
||||||
|
- "app/tests/ble/**"
|
||||||
|
- "app/src/**"
|
||||||
|
- "app/run-ble-test.sh"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
collect-tests:
|
||||||
|
outputs:
|
||||||
|
test-dirs: ${{ steps.test-dirs.outputs.test-dirs }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Find test directories
|
||||||
|
id: test-dirs
|
||||||
|
run: |
|
||||||
|
cd app/tests/ble
|
||||||
|
export TESTS=$(ls -d * | grep -v central | jq -R -s -c 'split("\n")[:-1]')
|
||||||
|
echo "test-dirs=${TESTS}" > $GITHUB_OUTPUT
|
||||||
|
run-tests:
|
||||||
|
needs: collect-tests
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
test: ${{ fromJSON(needs.collect-tests.outputs.test-dirs) }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: docker.io/zmkfirmware/zmk-build-arm:3.5
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Cache west modules
|
||||||
|
uses: actions/cache@v4
|
||||||
|
env:
|
||||||
|
cache-name: cache-zephyr-modules
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
modules/
|
||||||
|
tools/
|
||||||
|
zephyr/
|
||||||
|
bootloader/
|
||||||
|
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('app/west.yml') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-build-${{ env.cache-name }}-
|
||||||
|
${{ runner.os }}-build-
|
||||||
|
${{ runner.os }}-
|
||||||
|
timeout-minutes: 2
|
||||||
|
continue-on-error: true
|
||||||
|
- name: Initialize workspace (west init)
|
||||||
|
run: west init -l app
|
||||||
|
- name: Enable babblesim group filter
|
||||||
|
run: west config manifest.group-filter -- +babblesim
|
||||||
|
- name: Update modules (west update)
|
||||||
|
run: west update --fetch-opt=--filter=tree:0
|
||||||
|
- name: Export Zephyr CMake package (west zephyr-export)
|
||||||
|
run: west zephyr-export
|
||||||
|
- name: Build BabbleSim components
|
||||||
|
working-directory: tools/bsim
|
||||||
|
run: make everything
|
||||||
|
- name: Test ${{ matrix.test }}
|
||||||
|
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 }}
|
||||||
|
- name: Archive artifacts
|
||||||
|
if: ${{ always() }}
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: "${{ matrix.test }}-log-files"
|
||||||
|
path: app/build/**/*.log
|
||||||
109
.github/workflows/build-user-config.yml
vendored
109
.github/workflows/build-user-config.yml
vendored
@@ -26,21 +26,18 @@ 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 }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
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
|
||||||
@@ -52,33 +49,59 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix: ${{ fromJson(needs.matrix.outputs.build_matrix) }}
|
matrix: ${{ fromJson(needs.matrix.outputs.build_matrix) }}
|
||||||
steps:
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Create build directory
|
||||||
|
run: |
|
||||||
|
echo "build_dir=$(mktemp -d)" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Prepare variables
|
- name: Prepare variables
|
||||||
shell: sh -x {0}
|
shell: sh -x {0}
|
||||||
env:
|
env:
|
||||||
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: |
|
||||||
echo "zephyr_version=${ZEPHYR_VERSION}" >> $GITHUB_ENV
|
if [ -e zephyr/module.yml ]; then
|
||||||
echo "extra_cmake_args=${shield:+-DSHIELD=\"$shield\"}" >> $GITHUB_ENV
|
export zmk_load_arg=" -DZMK_EXTRA_MODULES='${GITHUB_WORKSPACE}'"
|
||||||
echo "display_name=${shield:+$shield - }${board}" >> $GITHUB_ENV
|
new_tmp_dir="${TMPDIR:-/tmp}/zmk-config"
|
||||||
echo "artifact_name=${artifact_name:-\"${shield:+$shield-}${board}-zmk\"}" >> $GITHUB_ENV
|
mkdir -p "${new_tmp_dir}"
|
||||||
|
echo "base_dir=${new_tmp_dir}" >> $GITHUB_ENV
|
||||||
|
else
|
||||||
|
echo "base_dir=${GITHUB_WORKSPACE}" >> $GITHUB_ENV
|
||||||
|
fi
|
||||||
|
|
||||||
- name: Checkout
|
if [ -n "${snippet}" ]; then
|
||||||
uses: actions/checkout@v3
|
extra_west_args="-S \"${snippet}\""
|
||||||
|
fi
|
||||||
|
|
||||||
|
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 "display_name=${shield:+$shield - }${board}" >> $GITHUB_ENV
|
||||||
|
echo "artifact_name=${artifact_name:-${shield:+$shield-}${board}-zmk}" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Copy config files to isolated temporary directory
|
||||||
|
run: |
|
||||||
|
if [ "${{ env.base_dir }}" != "${GITHUB_WORKSPACE}" ]; then
|
||||||
|
mkdir "${{ env.base_dir }}/${{ inputs.config_path }}"
|
||||||
|
cp -R ${{ inputs.config_path }}/* "${{ env.base_dir }}/${{ inputs.config_path }}/"
|
||||||
|
fi
|
||||||
|
|
||||||
- name: Cache west modules
|
- name: Cache west modules
|
||||||
uses: actions/cache@v3.0.11
|
uses: actions/cache@v4
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
env:
|
env:
|
||||||
cache_name: cache-zephyr-${{ env.zephyr_version }}-modules
|
cache_name: cache-zephyr-${{ env.zephyr_version }}-modules
|
||||||
with:
|
with:
|
||||||
path: |
|
path: |
|
||||||
modules/
|
${{ env.base_dir }}/modules/
|
||||||
tools/
|
${{ env.base_dir }}/tools/
|
||||||
zephyr/
|
${{ env.base_dir }}/zephyr/
|
||||||
bootloader/
|
${{ env.base_dir }}/bootloader/
|
||||||
zmk/
|
${{ env.base_dir }}/zmk/
|
||||||
key: ${{ runner.os }}-build-${{ env.cache_name }}-${{ hashFiles('**/west.yml', '**/build.yaml') }}
|
key: ${{ runner.os }}-build-${{ env.cache_name }}-${{ hashFiles('**/west.yml', '**/build.yaml') }}
|
||||||
restore-keys: |
|
restore-keys: |
|
||||||
${{ runner.os }}-build-${{ env.cache_name }}-
|
${{ runner.os }}-build-${{ env.cache_name }}-
|
||||||
@@ -86,23 +109,27 @@ jobs:
|
|||||||
${{ runner.os }}-
|
${{ runner.os }}-
|
||||||
|
|
||||||
- name: West Init
|
- name: West Init
|
||||||
run: west init -l "${{ inputs.config_path }}"
|
working-directory: ${{ env.base_dir }}
|
||||||
|
run: west init -l "${{ env.base_dir }}/${{ inputs.config_path }}"
|
||||||
|
|
||||||
- name: West Update
|
- name: West Update
|
||||||
run: west update
|
working-directory: ${{ env.base_dir }}
|
||||||
|
run: west update --fetch-opt=--filter=tree:0
|
||||||
|
|
||||||
- name: West Zephyr export
|
- name: West Zephyr export
|
||||||
|
working-directory: ${{ env.base_dir }}
|
||||||
run: west zephyr-export
|
run: west zephyr-export
|
||||||
|
|
||||||
- name: West Build (${{ env.display_name }})
|
- name: West Build (${{ env.display_name }})
|
||||||
|
working-directory: ${{ env.base_dir }}
|
||||||
shell: sh -x {0}
|
shell: sh -x {0}
|
||||||
run: west build -s zmk/app -b "${{ matrix.board }}" -- -DZMK_CONFIG="${GITHUB_WORKSPACE}/${{ 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: |
|
||||||
if [ -f build/zephyr/.config ]
|
if [ -f "${{ env.build_dir }}/zephyr/.config" ]
|
||||||
then
|
then
|
||||||
grep -v -e "^#" -e "^$" build/zephyr/.config | sort
|
grep -v -e "^#" -e "^$" "${{ env.build_dir }}/zephyr/.config" | sort
|
||||||
else
|
else
|
||||||
echo "No Kconfig output"
|
echo "No Kconfig output"
|
||||||
fi
|
fi
|
||||||
@@ -110,12 +137,12 @@ jobs:
|
|||||||
|
|
||||||
- name: ${{ env.display_name }} Devicetree file
|
- name: ${{ env.display_name }} Devicetree file
|
||||||
run: |
|
run: |
|
||||||
if [ -f build/zephyr/zephyr.dts ]
|
if [ -f "${{ env.build_dir }}/zephyr/zephyr.dts" ]
|
||||||
then
|
then
|
||||||
cat build/zephyr/zephyr.dts
|
cat "${{ env.build_dir }}/zephyr/zephyr.dts"
|
||||||
elif [ -f build/zephyr/zephyr.dts.pre ]
|
elif [ -f "${{ env.build_dir }}/zephyr/zephyr.dts.pre" ]
|
||||||
then
|
then
|
||||||
cat -s build/zephyr/zephyr.dts.pre
|
cat -s "${{ env.build_dir }}/zephyr/zephyr.dts.pre"
|
||||||
else
|
else
|
||||||
echo "No Devicetree output"
|
echo "No Devicetree output"
|
||||||
fi
|
fi
|
||||||
@@ -124,17 +151,29 @@ jobs:
|
|||||||
- name: Rename artifacts
|
- name: Rename artifacts
|
||||||
shell: sh -x {0}
|
shell: sh -x {0}
|
||||||
run: |
|
run: |
|
||||||
mkdir build/artifacts
|
mkdir "${{ env.build_dir }}/artifacts"
|
||||||
if [ -f build/zephyr/zmk.uf2 ]
|
if [ -f "${{ env.build_dir }}/zephyr/zmk.uf2" ]
|
||||||
then
|
then
|
||||||
cp build/zephyr/zmk.uf2 "build/artifacts/${{ env.artifact_name }}.uf2"
|
cp "${{ env.build_dir }}/zephyr/zmk.uf2" "${{ env.build_dir }}/artifacts/${{ env.artifact_name }}.uf2"
|
||||||
elif [ -f build/zephyr/zmk.${{ inputs.fallback_binary }} ]
|
elif [ -f "${{ env.build_dir }}/zephyr/zmk.${{ inputs.fallback_binary }}" ]
|
||||||
then
|
then
|
||||||
cp "build/zephyr/zmk.${{ inputs.fallback_binary }}" "build/artifacts/${{ env.artifact_name }}.${{ inputs.fallback_binary }}"
|
cp "${{ env.build_dir }}/zephyr/zmk.${{ inputs.fallback_binary }}" "${{ env.build_dir }}/artifacts/${{ env.artifact_name }}.${{ inputs.fallback_binary }}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Archive (${{ env.display_name }})
|
- name: Archive (${{ env.display_name }})
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: artifact-${{ env.artifact_name }}
|
||||||
|
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:
|
with:
|
||||||
name: ${{ inputs.archive_name }}
|
name: ${{ inputs.archive_name }}
|
||||||
path: build/artifacts
|
pattern: artifact-*
|
||||||
|
delete-merged: true
|
||||||
|
|||||||
113
.github/workflows/build.yml
vendored
113
.github/workflows/build.yml
vendored
@@ -12,21 +12,29 @@ 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:
|
||||||
include: ${{ fromJSON(needs.compile-matrix.outputs.include-list) }}
|
include: ${{ fromJSON(needs.compile-matrix.outputs.include-list) }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Cache west modules
|
- name: Cache west modules
|
||||||
uses: actions/cache@v3.0.2
|
uses: actions/cache@v4
|
||||||
env:
|
env:
|
||||||
cache-name: cache-zephyr-modules
|
cache-name: cache-zephyr-modules
|
||||||
with:
|
with:
|
||||||
@@ -45,23 +53,21 @@ 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
|
||||||
uses: actions/setup-node@v2
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: "14.x"
|
node-version: "14.x"
|
||||||
- name: Install @actions/artifact
|
- name: Install @actions/artifact
|
||||||
run: npm install @actions/artifact
|
run: npm install @actions/artifact
|
||||||
- name: Build and upload artifacts
|
- name: Build
|
||||||
uses: actions/github-script@v4
|
uses: actions/github-script@v7
|
||||||
id: boards-list
|
id: boards-list
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const artifact = require('@actions/artifact');
|
|
||||||
const artifactClient = artifact.create();
|
|
||||||
|
|
||||||
const execSync = require('child_process').execSync;
|
const execSync = require('child_process').execSync;
|
||||||
|
|
||||||
@@ -71,10 +77,39 @@ jobs:
|
|||||||
|
|
||||||
for (const shieldArgs of buildShieldArgs) {
|
for (const shieldArgs of buildShieldArgs) {
|
||||||
try {
|
try {
|
||||||
const output = execSync(`west build -s app -p -b ${{ matrix.board }} -- ${shieldArgs.shield ? '-DSHIELD="' + shieldArgs.shield + '"' : ''} ${shieldArgs['cmake-args'] || ''}`);
|
|
||||||
|
|
||||||
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.snippet ? '-S ' + shieldArgs.snippet : ''} -- ${shieldArgs.shield ? '-DSHIELD="' + shieldArgs.shield + '"' : ''} ${shieldArgs['cmake-args'] || ''}`);
|
||||||
|
|
||||||
console.log(output.toString());
|
console.log(output.toString());
|
||||||
|
} catch (e) {
|
||||||
|
console.error(`::error::Failed to build ${{ matrix.board }} ${shieldArgs.shield} ${shieldArgs['cmake-args']}`);
|
||||||
|
console.error(e);
|
||||||
|
error = true;
|
||||||
|
} finally {
|
||||||
|
console.log('::endgroup::');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (error) {
|
||||||
|
throw new Error('Failed to build one or more configurations');
|
||||||
|
}
|
||||||
|
- name: Upload artifacts
|
||||||
|
uses: actions/github-script@v7
|
||||||
|
continue-on-error: ${{ github.event_name == 'pull_request' }}
|
||||||
|
id: boards-upload
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const fs = require('fs');
|
||||||
|
const {default: artifact} = require('@actions/artifact');
|
||||||
|
|
||||||
|
const buildShieldArgs = JSON.parse(`${{ matrix.shieldArgs }}`);
|
||||||
|
|
||||||
|
let error = false;
|
||||||
|
|
||||||
|
for (const shieldArgs of buildShieldArgs) {
|
||||||
|
try {
|
||||||
|
console.log(`::group::${{ matrix.board}} ${shieldArgs.shield} Upload`)
|
||||||
|
|
||||||
const fileExtensions = ["hex", "uf2"];
|
const fileExtensions = ["hex", "uf2"];
|
||||||
|
|
||||||
@@ -90,9 +125,9 @@ jobs:
|
|||||||
const cmakeName = shieldArgs['cmake-args'] ? '-' + (shieldArgs.nickname || shieldArgs['cmake-args'].split(' ').join('')) : '';
|
const cmakeName = shieldArgs['cmake-args'] ? '-' + (shieldArgs.nickname || shieldArgs['cmake-args'].split(' ').join('')) : '';
|
||||||
const artifactName = `${{ matrix.board }}${shieldArgs.shield ? '-' + shieldArgs.shield : ''}${cmakeName}-zmk`;
|
const artifactName = `${{ matrix.board }}${shieldArgs.shield ? '-' + shieldArgs.shield : ''}${cmakeName}-zmk`;
|
||||||
|
|
||||||
await artifactClient.uploadArtifact(artifactName, files, rootDirectory, options);
|
await artifact.uploadArtifact(artifactName, files, rootDirectory, options);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(`::error::Failed to build or upload ${{ matrix.board }} ${shieldArgs.shield} ${shieldArgs['cmake-args']}`);
|
console.error(`::error::Failed to upload ${{ matrix.board }} ${shieldArgs.shield} ${shieldArgs['cmake-args']}`);
|
||||||
console.error(e);
|
console.error(e);
|
||||||
error = true;
|
error = true;
|
||||||
} finally {
|
} finally {
|
||||||
@@ -104,14 +139,14 @@ 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:
|
||||||
include-list: ${{ steps.compile-list.outputs.result }}
|
include-list: ${{ steps.compile-list.outputs.result }}
|
||||||
steps:
|
steps:
|
||||||
- name: Join build lists
|
- name: Join build lists
|
||||||
uses: actions/github-script@v4
|
uses: actions/github-script@v7
|
||||||
id: compile-list
|
id: compile-list
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
@@ -135,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
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -151,14 +187,16 @@ jobs:
|
|||||||
core-include: ${{ steps.core-list.outputs.result }}
|
core-include: ${{ steps.core-list.outputs.result }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Use Node.js
|
- name: Use Node.js
|
||||||
uses: actions/setup-node@v2
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: "14.x"
|
node-version: "14.x"
|
||||||
- name: Install js-yaml
|
- name: Install js-yaml
|
||||||
run: npm install js-yaml
|
run: npm install js-yaml
|
||||||
- uses: actions/github-script@v4
|
- uses: actions/github-script@v7
|
||||||
id: core-list
|
id: core-list
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
@@ -180,14 +218,14 @@ jobs:
|
|||||||
boards-include: ${{ steps.boards-list.outputs.result }}
|
boards-include: ${{ steps.boards-list.outputs.result }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
- name: Use Node.js
|
- name: Use Node.js
|
||||||
uses: actions/setup-node@v2
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: "14.x"
|
node-version: "14.x"
|
||||||
- name: Install js-yaml
|
- name: Install js-yaml
|
||||||
run: npm install js-yaml
|
run: npm install js-yaml
|
||||||
- uses: actions/github-script@v4
|
- uses: actions/github-script@v7
|
||||||
id: boards-list
|
id: boards-list
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
@@ -257,14 +295,14 @@ 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:
|
||||||
nightly-include: ${{ steps.nightly-list.outputs.result }}
|
nightly-include: ${{ steps.nightly-list.outputs.result }}
|
||||||
steps:
|
steps:
|
||||||
- name: Create nightly list
|
- name: Create nightly list
|
||||||
uses: actions/github-script@v4
|
uses: actions/github-script@v7
|
||||||
id: nightly-list
|
id: nightly-list
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
@@ -307,15 +345,17 @@ jobs:
|
|||||||
organized-metadata: ${{ steps.organize-metadata.outputs.result }}
|
organized-metadata: ${{ steps.organize-metadata.outputs.result }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- name: Use Node.js
|
- name: Use Node.js
|
||||||
uses: actions/setup-node@v2
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: "14.x"
|
node-version: "14.x"
|
||||||
- name: Install js-yaml
|
- name: Install js-yaml
|
||||||
run: npm install js-yaml
|
run: npm install js-yaml
|
||||||
- name: Aggregate Metadata
|
- name: Aggregate Metadata
|
||||||
uses: actions/github-script@v4
|
uses: actions/github-script@v7
|
||||||
id: aggregate-metadata
|
id: aggregate-metadata
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
@@ -333,7 +373,7 @@ jobs:
|
|||||||
result-encoding: string
|
result-encoding: string
|
||||||
|
|
||||||
- name: Organize Metadata
|
- name: Organize Metadata
|
||||||
uses: actions/github-script@v4
|
uses: actions/github-script@v7
|
||||||
id: organize-metadata
|
id: organize-metadata
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
@@ -382,27 +422,32 @@ jobs:
|
|||||||
if: ${{ github.event_name != 'schedule' }}
|
if: ${{ github.event_name != 'schedule' }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
outputs:
|
outputs:
|
||||||
changed-files: ${{ steps.changed-files.outputs.all }}
|
changed-files: ${{ steps.changed-files.outputs.all_changed_files }}
|
||||||
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: Ana06/get-changed-files@v2.0.0
|
- 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:
|
||||||
format: "json"
|
json: true
|
||||||
- uses: actions/github-script@v4
|
escape_json: false
|
||||||
|
- uses: actions/github-script@v7
|
||||||
id: board-changes
|
id: board-changes
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
const changedFiles = JSON.parse(`${{ steps.changed-files.outputs.all }}`);
|
const changedFiles = JSON.parse(`${{ steps.changed-files.outputs.all_changed_files }}`);
|
||||||
const boardChanges = changedFiles.filter(f => f.startsWith('app/boards'));
|
const boardChanges = changedFiles.filter(f => f.startsWith('app/boards'));
|
||||||
return boardChanges.length ? 'true' : 'false';
|
return boardChanges.length ? 'true' : 'false';
|
||||||
result-encoding: string
|
result-encoding: string
|
||||||
- uses: actions/github-script@v4
|
- uses: actions/github-script@v7
|
||||||
id: core-changes
|
id: core-changes
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
const changedFiles = JSON.parse(`${{ steps.changed-files.outputs.all }}`);
|
const changedFiles = JSON.parse(`${{ steps.changed-files.outputs.all_changed_files }}`);
|
||||||
const boardChanges = changedFiles.filter(f => f.startsWith('app/boards'));
|
const boardChanges = changedFiles.filter(f => f.startsWith('app/boards'));
|
||||||
const appChanges = changedFiles.filter(f => f.startsWith('app'));
|
const appChanges = changedFiles.filter(f => f.startsWith('app'));
|
||||||
const ymlChanges = changedFiles.includes('.github/workflows/build.yml');
|
const ymlChanges = changedFiles.includes('.github/workflows/build.yml');
|
||||||
|
|||||||
4
.github/workflows/doc-checks.yml
vendored
4
.github/workflows/doc-checks.yml
vendored
@@ -14,7 +14,7 @@ jobs:
|
|||||||
lint:
|
lint:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: bahmutov/npm-install@v1
|
- uses: bahmutov/npm-install@v1
|
||||||
with:
|
with:
|
||||||
working-directory: docs
|
working-directory: docs
|
||||||
@@ -24,7 +24,7 @@ jobs:
|
|||||||
typecheck:
|
typecheck:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: bahmutov/npm-install@v1
|
- uses: bahmutov/npm-install@v1
|
||||||
with:
|
with:
|
||||||
working-directory: docs
|
working-directory: docs
|
||||||
|
|||||||
@@ -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@v3
|
- 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)
|
||||||
|
|||||||
6
.github/workflows/pre-commit.yml
vendored
6
.github/workflows/pre-commit.yml
vendored
@@ -8,8 +8,8 @@ jobs:
|
|||||||
pre-commit:
|
pre-commit:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: actions/setup-python@v4
|
- 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
|
||||||
22
.github/workflows/test.yml
vendored
22
.github/workflows/test.yml
vendored
@@ -4,13 +4,17 @@ 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/**"
|
||||||
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/**"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
collect-tests:
|
collect-tests:
|
||||||
@@ -19,13 +23,13 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
- name: Find test directories
|
- name: Find test directories
|
||||||
id: test-dirs
|
id: test-dirs
|
||||||
run: |
|
run: |
|
||||||
cd app/tests/
|
cd app/tests/
|
||||||
export TESTS=$(ls -d * | jq -R -s -c 'split("\n")[:-1]')
|
export TESTS=$(ls -d * | grep -v ble | jq -R -s -c 'split("\n")[:-1]')
|
||||||
echo "::set-output name=test-dirs::${TESTS}"
|
echo "test-dirs=${TESTS}" >> $GITHUB_OUTPUT
|
||||||
run-tests:
|
run-tests:
|
||||||
needs: collect-tests
|
needs: collect-tests
|
||||||
strategy:
|
strategy:
|
||||||
@@ -33,12 +37,12 @@ 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@v3
|
uses: actions/checkout@v4
|
||||||
- name: Cache west modules
|
- name: Cache west modules
|
||||||
uses: actions/cache@v3.0.2
|
uses: actions/cache@v4
|
||||||
env:
|
env:
|
||||||
cache-name: cache-zephyr-modules
|
cache-name: cache-zephyr-modules
|
||||||
with:
|
with:
|
||||||
@@ -57,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 }}
|
||||||
@@ -65,7 +69,7 @@ jobs:
|
|||||||
run: west test tests/${{ matrix.test }}
|
run: west test tests/${{ matrix.test }}
|
||||||
- name: Archive artifacts
|
- name: Archive artifacts
|
||||||
if: ${{ always() }}
|
if: ${{ always() }}
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: "log-files"
|
name: "${{ matrix.test }}-log-files"
|
||||||
path: app/build/**/*.log
|
path: app/build/**/*.log
|
||||||
|
|||||||
11
.gitignore
vendored
11
.gitignore
vendored
@@ -5,5 +5,14 @@
|
|||||||
/zephyr
|
/zephyr
|
||||||
/zmk-config
|
/zmk-config
|
||||||
/build
|
/build
|
||||||
|
|
||||||
|
# macOS
|
||||||
*.DS_Store
|
*.DS_Store
|
||||||
__pycache__
|
|
||||||
|
# Python
|
||||||
|
__pycache__
|
||||||
|
.python-version
|
||||||
|
.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,32 +2,39 @@ cmake_minimum_required(VERSION 3.13.1)
|
|||||||
|
|
||||||
set(CONFIG_APPLICATION_DEFINED_SYSCALL true)
|
set(CONFIG_APPLICATION_DEFINED_SYSCALL true)
|
||||||
|
|
||||||
# Add our custom Zephyr module for drivers w/ syscalls, etc.
|
set(ZEPHYR_BOARD_ALIASES "boards/aliases.cmake")
|
||||||
list(APPEND DTS_ROOT ${CMAKE_SOURCE_DIR}/drivers/zephyr)
|
set(ZEPHYR_EXTRA_MODULES "${ZMK_EXTRA_MODULES};${CMAKE_CURRENT_SOURCE_DIR}/module;${CMAKE_CURRENT_SOURCE_DIR}/keymap-module")
|
||||||
|
|
||||||
set(ZephyrBuildConfiguration_ROOT ${CMAKE_SOURCE_DIR}/cmake)
|
|
||||||
|
|
||||||
list(APPEND ZEPHYR_EXTRA_MODULES
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/module
|
|
||||||
)
|
|
||||||
|
|
||||||
# Find Zephyr. This also loads Zephyr's build system.
|
# Find Zephyr. This also loads Zephyr's build system.
|
||||||
find_package(Zephyr REQUIRED HINTS ../zephyr)
|
find_package(Zephyr REQUIRED HINTS ../zephyr)
|
||||||
project(zmk)
|
project(zmk)
|
||||||
|
|
||||||
|
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/kscan.c)
|
target_sources(app PRIVATE src/behavior.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)
|
||||||
@@ -35,12 +42,14 @@ 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(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)
|
||||||
@@ -54,8 +63,11 @@ if ((NOT CONFIG_ZMK_SPLIT) OR CONFIG_ZMK_SPLIT_ROLE_CENTRAL)
|
|||||||
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_SENSOR_ROTATE app PRIVATE src/behaviors/behavior_sensor_rotate.c)
|
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_SENSOR_ROTATE app PRIVATE src/behaviors/behavior_sensor_rotate.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_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_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)
|
||||||
@@ -65,6 +77,7 @@ if ((NOT CONFIG_ZMK_SPLIT) OR CONFIG_ZMK_SPLIT_ROLE_CENTRAL)
|
|||||||
target_sources(app PRIVATE src/events/layer_state_changed.c)
|
target_sources(app PRIVATE src/events/layer_state_changed.c)
|
||||||
target_sources(app PRIVATE src/events/modifiers_state_changed.c)
|
target_sources(app PRIVATE src/events/modifiers_state_changed.c)
|
||||||
target_sources(app PRIVATE src/events/keycode_state_changed.c)
|
target_sources(app PRIVATE src/events/keycode_state_changed.c)
|
||||||
|
target_sources_ifdef(CONFIG_ZMK_HID_INDICATORS app PRIVATE src/hid_indicators.c)
|
||||||
|
|
||||||
if (CONFIG_ZMK_BLE)
|
if (CONFIG_ZMK_BLE)
|
||||||
target_sources(app PRIVATE src/events/ble_active_profile_changed.c)
|
target_sources(app PRIVATE src/events/ble_active_profile_changed.c)
|
||||||
@@ -80,16 +93,42 @@ target_sources_ifdef(CONFIG_ZMK_BACKLIGHT app PRIVATE src/behaviors/behavior_bac
|
|||||||
target_sources_ifdef(CONFIG_ZMK_BATTERY_REPORTING app PRIVATE src/events/battery_state_changed.c)
|
target_sources_ifdef(CONFIG_ZMK_BATTERY_REPORTING app PRIVATE src/events/battery_state_changed.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_BATTERY_REPORTING app PRIVATE src/battery.c)
|
target_sources_ifdef(CONFIG_ZMK_BATTERY_REPORTING app PRIVATE src/battery.c)
|
||||||
|
|
||||||
|
target_sources_ifdef(CONFIG_ZMK_HID_INDICATORS app PRIVATE src/events/hid_indicators_changed.c)
|
||||||
|
|
||||||
target_sources_ifdef(CONFIG_ZMK_SPLIT app PRIVATE src/events/split_peripheral_status_changed.c)
|
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)
|
||||||
target_sources_ifdef(CONFIG_ZMK_RGB_UNDERGLOW app PRIVATE src/rgb_underglow.c)
|
target_sources_ifdef(CONFIG_ZMK_RGB_UNDERGLOW app PRIVATE src/rgb_underglow.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_BACKLIGHT app PRIVATE src/backlight.c)
|
target_sources_ifdef(CONFIG_ZMK_BACKLIGHT app PRIVATE src/backlight.c)
|
||||||
target_sources(app PRIVATE src/workqueue.c)
|
target_sources_ifdef(CONFIG_ZMK_LOW_PRIORITY_WORK_QUEUE app PRIVATE src/workqueue.c)
|
||||||
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)
|
||||||
|
|||||||
326
app/Kconfig
326
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
|
||||||
@@ -53,22 +64,28 @@ config ZMK_HID_REPORT_TYPE_NKRO
|
|||||||
help
|
help
|
||||||
Enable full N-Key Roll Over for HID output. This selection will prevent the keyboard
|
Enable full N-Key Roll Over for HID output. This selection will prevent the keyboard
|
||||||
from working with some BIOS/UEFI versions that only support "boot keyboard" support.
|
from working with some BIOS/UEFI versions that only support "boot keyboard" support.
|
||||||
This option also prevents using some infrequently used higher range HID usages.
|
This option also prevents using some infrequently used higher range HID usages (notably F13-F24 and INTL1-9)
|
||||||
|
These usages can be re enabled with ZMK_HID_KEYBOARD_NKRO_EXTENDED_REPORT.
|
||||||
|
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
|
config ZMK_HID_KEYBOARD_NKRO_EXTENDED_REPORT
|
||||||
|
bool "Enable extended NKRO reporting"
|
||||||
|
depends on ZMK_HID_REPORT_TYPE_NKRO
|
||||||
|
help
|
||||||
|
Enables higher usage range for NKRO (F13-F24 and INTL1-9).
|
||||||
|
Please note this is not compatible with Android currently and you will get no input
|
||||||
|
|
||||||
|
|
||||||
if ZMK_HID_REPORT_TYPE_HKRO
|
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"
|
||||||
@@ -87,6 +104,18 @@ config ZMK_HID_CONSUMER_REPORT_USAGES_BASIC
|
|||||||
|
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
|
config ZMK_HID_INDICATORS
|
||||||
|
bool "HID Indicators"
|
||||||
|
help
|
||||||
|
Enable HID indicators, used for detecting state of Caps/Scroll/Num Lock,
|
||||||
|
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
|
||||||
@@ -98,7 +127,6 @@ config ZMK_USB
|
|||||||
|
|
||||||
config ZMK_USB_BOOT
|
config ZMK_USB_BOOT
|
||||||
bool "USB Boot Protocol Support"
|
bool "USB Boot Protocol Support"
|
||||||
default y
|
|
||||||
depends on ZMK_USB
|
depends on ZMK_USB
|
||||||
select USB_HID_BOOT_PROTOCOL
|
select USB_HID_BOOT_PROTOCOL
|
||||||
select USB_DEVICE_SOF
|
select USB_DEVICE_SOF
|
||||||
@@ -111,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)"
|
||||||
@@ -122,25 +149,46 @@ 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
|
||||||
select BT_SETTINGS
|
imply BT_DEVICE_NAME_DYNAMIC
|
||||||
select SETTINGS
|
imply BT_SETTINGS if !ARCH_POSIX
|
||||||
imply ZMK_BATTERY_REPORTING
|
imply SETTINGS if !ARCH_POSIX
|
||||||
|
imply ZMK_BATTERY_REPORTING if !ARCH_POSIX
|
||||||
|
|
||||||
if ZMK_BLE
|
if ZMK_BLE
|
||||||
|
|
||||||
|
config ZMK_BLE_EXPERIMENTAL_CONN
|
||||||
|
bool "Experimental BLE connection changes"
|
||||||
|
help
|
||||||
|
Enables settings that are planned to be default in future versions of ZMK
|
||||||
|
to improve connection stability.
|
||||||
|
|
||||||
|
config ZMK_BLE_EXPERIMENTAL_SEC
|
||||||
|
bool "Experimental BLE security changes"
|
||||||
|
imply BT_SMP_ALLOW_UNAUTH_OVERWRITE
|
||||||
|
help
|
||||||
|
Enables security settings that are planned to be officially supported in the future.
|
||||||
|
|
||||||
|
config ZMK_BLE_EXPERIMENTAL_FEATURES
|
||||||
|
bool "Experimental BLE connection and security settings/features"
|
||||||
|
select ZMK_BLE_EXPERIMENTAL_CONN
|
||||||
|
select ZMK_BLE_EXPERIMENTAL_SEC
|
||||||
|
help
|
||||||
|
Enables experimental connection changes and security features.
|
||||||
|
|
||||||
|
config ZMK_BLE_PASSKEY_ENTRY
|
||||||
|
bool "Require passkey entry on the keyboard to complete pairing"
|
||||||
|
select RING_BUFFER
|
||||||
|
|
||||||
|
config BT_SMP_ALLOW_UNAUTH_OVERWRITE
|
||||||
|
imply ZMK_BLE_PASSKEY_ENTRY
|
||||||
|
|
||||||
|
config BT_CTLR_PHY_2M
|
||||||
|
default n if ZMK_BLE_EXPERIMENTAL_CONN
|
||||||
|
|
||||||
# BT_TINYCRYPT_ECC is required for BT_SMP_SC_PAIR_ONLY when using HCI
|
# BT_TINYCRYPT_ECC is required for BT_SMP_SC_PAIR_ONLY when using HCI
|
||||||
config BT_TINYCRYPT_ECC
|
config BT_TINYCRYPT_ECC
|
||||||
default y if BT_HCI && !BT_CTLR
|
default y if BT_HCI && !BT_CTLR
|
||||||
|
|
||||||
choice BT_LL_SW_LLCP_IMPL
|
|
||||||
default BT_LL_SW_LLCP_LEGACY
|
|
||||||
|
|
||||||
endchoice
|
|
||||||
|
|
||||||
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
|
||||||
@@ -157,25 +205,23 @@ config ZMK_BLE_CONSUMER_REPORT_QUEUE_SIZE
|
|||||||
int "Max number of consumer HID reports to queue for sending over BLE"
|
int "Max number of consumer HID reports to queue for sending over BLE"
|
||||||
default 5
|
default 5
|
||||||
|
|
||||||
|
config ZMK_BLE_MOUSE_REPORT_QUEUE_SIZE
|
||||||
|
int "Max number of mouse HID reports to queue for sending over BLE"
|
||||||
|
default 20
|
||||||
|
|
||||||
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
|
||||||
default n
|
default n
|
||||||
|
|
||||||
config BT_GATT_AUTO_SEC_REQ
|
config BT_GATT_AUTO_SEC_REQ
|
||||||
default n
|
default (ZMK_SPLIT_BLE && !ZMK_SPLIT_ROLE_CENTRAL)
|
||||||
|
|
||||||
config BT_DEVICE_APPEARANCE
|
config BT_DEVICE_APPEARANCE
|
||||||
default 961
|
default 961
|
||||||
|
|
||||||
config ZMK_BLE_PASSKEY_ENTRY
|
|
||||||
bool "Require passkey entry on the keyboard to complete pairing"
|
|
||||||
default n
|
|
||||||
select RING_BUFFER
|
|
||||||
|
|
||||||
config BT_PERIPHERAL_PREF_MIN_INT
|
config BT_PERIPHERAL_PREF_MIN_INT
|
||||||
default 6
|
default 6
|
||||||
|
|
||||||
@@ -188,91 +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
|
||||||
|
|
||||||
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"
|
||||||
@@ -281,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"
|
||||||
@@ -293,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"
|
||||||
@@ -310,19 +360,34 @@ 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
|
|
||||||
|
rsource "src/pointing/Kconfig"
|
||||||
|
|
||||||
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 BT_BAS if ZMK_BLE
|
select ZMK_LOW_PRIORITY_WORK_QUEUE
|
||||||
|
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)"
|
||||||
@@ -330,6 +395,9 @@ config ZMK_IDLE_TIMEOUT
|
|||||||
|
|
||||||
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
|
||||||
@@ -341,14 +409,32 @@ config ZMK_IDLE_SLEEP_TIMEOUT
|
|||||||
int "Milliseconds of inactivity before entering deep sleep"
|
int "Milliseconds of inactivity before entering deep sleep"
|
||||||
default 900000
|
default 900000
|
||||||
|
|
||||||
#ZMK_SLEEP
|
endif # ZMK_SLEEP
|
||||||
endif
|
|
||||||
|
|
||||||
config ZMK_EXT_POWER
|
config ZMK_EXT_POWER
|
||||||
bool "Enable support to control external power output"
|
bool "Enable support to control external power output"
|
||||||
default y
|
|
||||||
|
|
||||||
#Power Management
|
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
|
||||||
|
depends on DT_HAS_ZMK_GPIO_KEY_WAKEUP_TRIGGER_ENABLED && ZMK_PM_SOFT_OFF
|
||||||
|
|
||||||
|
# Power Management
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
menu "Combo options"
|
menu "Combo options"
|
||||||
@@ -358,14 +444,18 @@ 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
|
||||||
|
|
||||||
menu "Behavior Options"
|
menu "Behavior Options"
|
||||||
@@ -394,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
|
||||||
|
|
||||||
@@ -405,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"
|
||||||
@@ -424,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
|
||||||
@@ -468,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"
|
||||||
@@ -485,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
|
||||||
|
|
||||||
@@ -496,25 +604,40 @@ 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
|
||||||
|
bool "Work queue for low priority items"
|
||||||
|
|
||||||
|
if ZMK_LOW_PRIORITY_WORK_QUEUE
|
||||||
|
|
||||||
config ZMK_LOW_PRIORITY_THREAD_STACK_SIZE
|
config ZMK_LOW_PRIORITY_THREAD_STACK_SIZE
|
||||||
int "Low priority thread stack size"
|
int "Low priority thread stack size"
|
||||||
@@ -524,14 +647,11 @@ config ZMK_LOW_PRIORITY_THREAD_PRIORITY
|
|||||||
int "Low priority thread priority"
|
int "Low priority thread priority"
|
||||||
default 10
|
default 10
|
||||||
|
|
||||||
#Advanced
|
endif # ZMK_LOW_PRIORITY_WORK_QUEUE
|
||||||
endmenu
|
|
||||||
|
|
||||||
#ZMK
|
endmenu # Advanced
|
||||||
endmenu
|
|
||||||
|
|
||||||
config HEAP_MEM_POOL_SIZE
|
endmenu # ZMK
|
||||||
default 8192
|
|
||||||
|
|
||||||
config KERNEL_BIN_NAME
|
config KERNEL_BIN_NAME
|
||||||
default "zmk"
|
default "zmk"
|
||||||
@@ -542,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"
|
||||||
@@ -574,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,15 +1,117 @@
|
|||||||
# 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
|
||||||
depends on DT_HAS_ZMK_BEHAVIOR_KEY_TOGGLE_ENABLED
|
depends on DT_HAS_ZMK_BEHAVIOR_KEY_TOGGLE_ENABLED
|
||||||
|
|
||||||
|
config ZMK_BEHAVIOR_MOUSE_KEY_PRESS
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
depends on DT_HAS_ZMK_BEHAVIOR_MOUSE_KEY_PRESS_ENABLED && ZMK_POINTING
|
||||||
|
|
||||||
|
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
|
||||||
@@ -23,7 +125,12 @@ 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
|
||||||
depends on DT_HAS_ZMK_BEHAVIOR_MACRO_ENABLED || DT_HAS_ZMK_BEHAVIOR_MACRO_ONE_PARAM_ENABLED || DT_HAS_ZMK_BEHAVIOR_MACRO_TWO_PARAM_ENABLED
|
depends on DT_HAS_ZMK_BEHAVIOR_MACRO_ENABLED || DT_HAS_ZMK_BEHAVIOR_MACRO_ONE_PARAM_ENABLED || DT_HAS_ZMK_BEHAVIOR_MACRO_TWO_PARAM_ENABLED
|
||||||
|
|||||||
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")
|
||||||
7
app/boards/arm/adv360pro/Kconfig
Normal file
7
app/boards/arm/adv360pro/Kconfig
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
config BOARD_ENABLE_DCDC
|
||||||
|
bool "Enable DCDC mode"
|
||||||
|
select SOC_DCDC_NRF52X
|
||||||
|
default y
|
||||||
|
depends on BOARD_ADV360PRO_LEFT || BOARD_ADV360PRO_RIGHT
|
||||||
12
app/boards/arm/adv360pro/Kconfig.board
Normal file
12
app/boards/arm/adv360pro/Kconfig.board
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2023 The ZMK Contributors
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
#
|
||||||
|
|
||||||
|
config BOARD_ADV360PRO_LEFT
|
||||||
|
bool "adv360pro_left"
|
||||||
|
depends on SOC_NRF52840_QIAA
|
||||||
|
|
||||||
|
config BOARD_ADV360PRO_RIGHT
|
||||||
|
bool "adv360pro_right"
|
||||||
|
depends on SOC_NRF52840_QIAA
|
||||||
55
app/boards/arm/adv360pro/Kconfig.defconfig
Normal file
55
app/boards/arm/adv360pro/Kconfig.defconfig
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2023 The ZMK Contributors
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
#
|
||||||
|
|
||||||
|
if BOARD_ADV360PRO_LEFT
|
||||||
|
|
||||||
|
config ZMK_KEYBOARD_NAME
|
||||||
|
default "Adv360 Pro"
|
||||||
|
|
||||||
|
config ZMK_SPLIT_ROLE_CENTRAL
|
||||||
|
default y
|
||||||
|
|
||||||
|
endif # BOARD_ADV360PRO_LEFT
|
||||||
|
|
||||||
|
if BOARD_ADV360PRO_RIGHT
|
||||||
|
|
||||||
|
config ZMK_KEYBOARD_NAME
|
||||||
|
default "Adv360 Pro rt"
|
||||||
|
|
||||||
|
endif # BOARD_ADV360PRO_RIGHT
|
||||||
|
|
||||||
|
|
||||||
|
if BOARD_ADV360PRO_LEFT || BOARD_ADV360PRO_RIGHT
|
||||||
|
|
||||||
|
config BOARD
|
||||||
|
default "adv360pro"
|
||||||
|
|
||||||
|
config ZMK_SPLIT
|
||||||
|
default y
|
||||||
|
|
||||||
|
config SPI
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
|
||||||
|
config BT_CTLR
|
||||||
|
default BT
|
||||||
|
|
||||||
|
if USB
|
||||||
|
|
||||||
|
config USB_NRFX
|
||||||
|
default y
|
||||||
|
|
||||||
|
config USB_DEVICE_STACK
|
||||||
|
default y
|
||||||
|
|
||||||
|
endif # USB
|
||||||
|
|
||||||
|
config ZMK_BATTERY_VOLTAGE_DIVIDER
|
||||||
|
default y
|
||||||
|
|
||||||
|
config SPI
|
||||||
|
default y
|
||||||
|
|
||||||
|
endif # BOARD_ADV360PRO_LEFT || BOARD_ADV360PRO_RIGHT
|
||||||
7
app/boards/arm/adv360pro/README.md
Executable file
7
app/boards/arm/adv360pro/README.md
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
# Kinesis Advantage 360 Professional
|
||||||
|
|
||||||
|
This board definition provides upstream support for the [Kinesis Advantage 360 Professional](https://kinesis-ergo.com/keyboards/advantage360/)
|
||||||
|
|
||||||
|
Kinesis offer a specific [custom configuration](https://github.com/KinesisCorporation/Adv360-Pro-ZMK/) for the 360 Pro that references [a customised version of ZMK](https://github.com/ReFil/zmk/tree/adv360-z3.2-2) with Advantage 360 Pro specific functionality and changes over base ZMK. The Kinesis fork is regularly updated to bring the latest updates and changes from base ZMK however will not always be completely up to date, some features such as new keycodes will not be immediately available on the 360 Pro after they are implemented in base ZMK.
|
||||||
|
|
||||||
|
When using this board definition some of the more advanced features (the indicator RGB leds) will not work, and Kinesis cannot provide customer service for usage of base ZMK. Likewise the ZMK community cannot provide support for either the Kinesis keymap editor, nor any usage of the Kinesis custom fork.
|
||||||
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>
|
||||||
|
;
|
||||||
|
};
|
||||||
|
};
|
||||||
30
app/boards/arm/adv360pro/adv360pro-pinctrl.dtsi
Normal file
30
app/boards/arm/adv360pro/adv360pro-pinctrl.dtsi
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2023 The ZMK Contributors
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
&pinctrl {
|
||||||
|
spi3_default: spi3_default {
|
||||||
|
group1 {
|
||||||
|
psels = <NRF_PSEL(SPIM_MOSI, 0, 20)>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
spi3_sleep: spi3_sleep {
|
||||||
|
group1 {
|
||||||
|
psels = <NRF_PSEL(SPIM_MOSI, 0, 20)>;
|
||||||
|
low-power-enable;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
pwm0_default: pwm0_default {
|
||||||
|
group1 {
|
||||||
|
psels = <NRF_PSEL(PWM_OUT0, 0, 17)>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
pwm0_sleep: pwm0_sleep {
|
||||||
|
group1 {
|
||||||
|
psels = <NRF_PSEL(PWM_OUT0, 0, 17)>;
|
||||||
|
low-power-enable;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
160
app/boards/arm/adv360pro/adv360pro.dtsi
Normal file
160
app/boards/arm/adv360pro/adv360pro.dtsi
Normal file
@@ -0,0 +1,160 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
* Copyright (c) 2023 The ZMK Contributors
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
#include <nordic/nrf52840_qiaa.dtsi>
|
||||||
|
|
||||||
|
#include <dt-bindings/led/led.h>
|
||||||
|
#include <dt-bindings/zmk/matrix_transform.h>
|
||||||
|
|
||||||
|
#include "adv360pro-layouts.dtsi"
|
||||||
|
#include "adv360pro-pinctrl.dtsi"
|
||||||
|
|
||||||
|
&physical_layout0 {
|
||||||
|
transform = <&matrix_transform0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Adv360 Pro";
|
||||||
|
compatible = "kinesis,adv360pro";
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
zephyr,code-partition = &code_partition;
|
||||||
|
zephyr,sram = &sram0;
|
||||||
|
zephyr,flash = &flash0;
|
||||||
|
zmk,backlight = &backlight;
|
||||||
|
zmk,battery = &vbatt;
|
||||||
|
zmk,physical-layout = &physical_layout0;
|
||||||
|
zmk,kscan = &kscan0;
|
||||||
|
zmk,underglow = &led_strip;
|
||||||
|
};
|
||||||
|
|
||||||
|
matrix_transform0: keymap_transform_0 {
|
||||||
|
compatible = "zmk,matrix-transform";
|
||||||
|
columns = <20>;
|
||||||
|
rows = <5>;
|
||||||
|
|
||||||
|
|
||||||
|
map = <
|
||||||
|
RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,5) RC(4,6) RC(4,13) RC(4,14) RC(4,15) RC(4,16) RC(4,17) RC(4,18) RC(4,19)
|
||||||
|
RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,13) RC(3,14) RC(3,15) RC(3,16) RC(3,17) RC(3,18) RC(3,19)
|
||||||
|
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,13) RC(2,14) RC(2,15) RC(2,16) RC(2,17) RC(2,18) RC(2,19)
|
||||||
|
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,9) RC(1,10) RC(1,14) RC(1,15) RC(1,16) RC(1,17) RC(1,18) RC(1,19)
|
||||||
|
RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) RC(0,12) RC(0,15) RC(0,16) RC(0,17) RC(0,18) RC(0,19)
|
||||||
|
|
||||||
|
>;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Node name must match original "EXT_POWER" label to preserve user settings.
|
||||||
|
EXT_POWER {
|
||||||
|
compatible = "zmk,ext-power-generic";
|
||||||
|
control-gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
vbatt: vbatt {
|
||||||
|
compatible = "zmk,battery-voltage-divider";
|
||||||
|
io-channels = <&adc 2>;
|
||||||
|
output-ohms = <100000>;
|
||||||
|
full-ohms = <(100000 + 100000)>;
|
||||||
|
};
|
||||||
|
|
||||||
|
backlight: pwmleds {
|
||||||
|
compatible = "pwm-leds";
|
||||||
|
pwm_led_0 {
|
||||||
|
pwms = <&pwm0 0 10000 PWM_POLARITY_NORMAL>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
&pwm0 {
|
||||||
|
status = "okay";
|
||||||
|
pinctrl-0 = <&pwm0_default>;
|
||||||
|
pinctrl-1 = <&pwm0_sleep>;
|
||||||
|
pinctrl-names = "default", "sleep";
|
||||||
|
};
|
||||||
|
|
||||||
|
&adc {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpiote {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
zephyr_udc0: &usbd {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
/*
|
||||||
|
* For more information, see:
|
||||||
|
* http://docs.zephyrproject.org/latest/devices/dts/flash_partitions.html
|
||||||
|
*/
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
sd_partition: partition@0 {
|
||||||
|
reg = <0x00000000 0x00026000>;
|
||||||
|
};
|
||||||
|
code_partition: partition@26000 {
|
||||||
|
reg = <0x00026000 0x000c6000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The flash starting at 0x000ec000 and ending at
|
||||||
|
* 0x000f3fff is reserved for use by the application.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Storage partition will be used by FCB/LittleFS/NVS
|
||||||
|
* if enabled.
|
||||||
|
*/
|
||||||
|
storage_partition: partition@ec000 {
|
||||||
|
reg = <0x000ec000 0x00008000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
boot_partition: partition@f4000 {
|
||||||
|
reg = <0x000f4000 0x0000c000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&spi3 {
|
||||||
|
compatible = "nordic,nrf-spim";
|
||||||
|
status = "okay";
|
||||||
|
pinctrl-0 = <&spi3_default>;
|
||||||
|
pinctrl-1 = <&spi3_sleep>;
|
||||||
|
pinctrl-names = "default", "sleep";
|
||||||
|
|
||||||
|
led_strip: ws2812@0 {
|
||||||
|
compatible = "worldsemi,ws2812-spi";
|
||||||
|
|
||||||
|
/* SPI */
|
||||||
|
reg = <0>;
|
||||||
|
spi-max-frequency = <4000000>;
|
||||||
|
|
||||||
|
/* WS2812 */
|
||||||
|
chain-length = <3>; /* number of LEDs */
|
||||||
|
spi-one-frame = <0x70>;
|
||||||
|
spi-zero-frame = <0x40>;
|
||||||
|
|
||||||
|
color-mapping = <LED_COLOR_ID_GREEN
|
||||||
|
LED_COLOR_ID_RED
|
||||||
|
LED_COLOR_ID_BLUE>;
|
||||||
|
};
|
||||||
|
};
|
||||||
48
app/boards/arm/adv360pro/adv360pro.keymap
Normal file
48
app/boards/arm/adv360pro/adv360pro.keymap
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <dt-bindings/zmk/bt.h>
|
||||||
|
#include <dt-bindings/zmk/rgb.h>
|
||||||
|
#include <dt-bindings/zmk/backlight.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
keymap {
|
||||||
|
compatible = "zmk,keymap";
|
||||||
|
|
||||||
|
default_layer {
|
||||||
|
bindings = <
|
||||||
|
&kp EQUAL &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &tog 1 &mo 3 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS
|
||||||
|
&kp TAB &kp Q &kp W &kp E &kp R &kp T &none &none &kp Y &kp U &kp I &kp O &kp P &kp BSLH
|
||||||
|
&kp ESC &kp A &kp S &kp D &kp F &kp G &none &kp LCTRL &kp LALT &kp LGUI &kp RCTRL &none &kp H &kp J &kp K &kp L &kp SEMI &kp SQT
|
||||||
|
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp HOME &kp PG_UP &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT
|
||||||
|
&mo 2 &kp GRAVE &kp CAPS &kp LEFT &kp RIGHT &kp BSPC &kp DEL &kp END &kp PG_DN &kp ENTER &kp SPACE &kp UP &kp DOWN &kp LBKT &kp RBKT &mo 2
|
||||||
|
>;
|
||||||
|
};
|
||||||
|
keypad {
|
||||||
|
bindings = <
|
||||||
|
&kp EQUAL &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &trans &mo 3 &kp N6 &kp KP_NUM &kp KP_EQUAL &kp KP_DIVIDE &kp KP_MULTIPLY &kp MINUS
|
||||||
|
&kp TAB &kp Q &kp W &kp E &kp R &kp T &none &none &kp Y &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_MINUS &kp BSLH
|
||||||
|
&kp ESC &kp A &kp S &kp D &kp F &kp G &none &kp LCTRL &kp LALT &kp LGUI &kp RCTRL &none &kp H &kp KP_N4 &kp KP_N5 &kp KP_N6 &kp KP_PLUS &kp SQT
|
||||||
|
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp HOME &kp PG_UP &kp N &kp KP_N1 &kp KP_N2 &kp KP_N3 &kp KP_ENTER &kp RSHFT
|
||||||
|
&mo 2 &kp GRAVE &kp CAPS &kp LEFT &kp RIGHT &kp BSPC &kp DEL &kp END &kp PG_DN &kp ENTER &kp KP_N0 &kp UP &kp DOWN &kp KP_DOT &kp RBKT &mo 2
|
||||||
|
>;
|
||||||
|
};
|
||||||
|
fn {
|
||||||
|
bindings = <
|
||||||
|
&kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &tog 1 &mo 3 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12
|
||||||
|
&trans &trans &trans &trans &trans &trans &none &none &trans &trans &trans &trans &trans &trans
|
||||||
|
&trans &trans &trans &trans &trans &trans &none &trans &trans &trans &trans &none &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 &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
|
||||||
|
>;
|
||||||
|
};
|
||||||
|
mod {
|
||||||
|
bindings = <
|
||||||
|
&none &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &none &trans &none &none &none &none &none &none
|
||||||
|
&none &none &none &none &none &none &bootloader &bootloader &none &none &none &none &none &none
|
||||||
|
&none &none &none &none &none &none &none &none &none &bt BT_CLR &none &none &none &none &none &none &none &none
|
||||||
|
&none &none &none &none &none &none &none &none &none &none &none &none &none &none
|
||||||
|
&none &none &none &none &none &none &none &none &none &bl BL_TOG &rgb_ug RGB_TOG &bl BL_INC &bl BL_DEC &none &none &none
|
||||||
|
>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
19
app/boards/arm/adv360pro/adv360pro.yaml
Normal file
19
app/boards/arm/adv360pro/adv360pro.yaml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
identifier: adv360pro
|
||||||
|
name: Advantage 360 Pro
|
||||||
|
type: keyboard
|
||||||
|
arch: arm
|
||||||
|
toolchain:
|
||||||
|
- zephyr
|
||||||
|
- gnuarmemb
|
||||||
|
- xtools
|
||||||
|
supported:
|
||||||
|
- gpio
|
||||||
|
- i2c
|
||||||
|
- counter
|
||||||
|
- spi
|
||||||
|
- usb_device
|
||||||
|
- nvs
|
||||||
|
- can
|
||||||
|
- kscan
|
||||||
|
- ble
|
||||||
|
- pwm
|
||||||
17
app/boards/arm/adv360pro/adv360pro.zmk.yml
Normal file
17
app/boards/arm/adv360pro/adv360pro.zmk.yml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
file_format: "1"
|
||||||
|
id: adv360pro
|
||||||
|
name: Advantage 360 Pro
|
||||||
|
type: board
|
||||||
|
url: https://kinesis-ergo.com/keyboards/advantage360
|
||||||
|
arch: arm
|
||||||
|
features:
|
||||||
|
- keys
|
||||||
|
- underglow
|
||||||
|
- backlight
|
||||||
|
- studio
|
||||||
|
outputs:
|
||||||
|
- usb
|
||||||
|
- ble
|
||||||
|
siblings:
|
||||||
|
- adv360pro_left
|
||||||
|
- adv360pro_right
|
||||||
37
app/boards/arm/adv360pro/adv360pro_left.dts
Normal file
37
app/boards/arm/adv360pro/adv360pro_left.dts
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
* Copyright (c) 2023 The ZMK Contributors
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "adv360pro.dtsi"
|
||||||
|
|
||||||
|
/{
|
||||||
|
kscan0: kscan {
|
||||||
|
compatible = "zmk,kscan-gpio-matrix";
|
||||||
|
wakeup-source;
|
||||||
|
|
||||||
|
diode-direction = "col2row";
|
||||||
|
row-gpios
|
||||||
|
= <&gpio1 11 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
||||||
|
, <&gpio1 15 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
||||||
|
, <&gpio0 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
||||||
|
, <&gpio1 14 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
||||||
|
, <&gpio1 12 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
||||||
|
;
|
||||||
|
|
||||||
|
col-gpios
|
||||||
|
= <&gpio0 25 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpio0 11 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpio0 2 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpio0 28 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpio0 29 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpio0 30 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpio0 31 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpio1 9 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpio0 12 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpio0 7 GPIO_ACTIVE_HIGH>
|
||||||
|
;
|
||||||
|
};
|
||||||
|
};
|
||||||
55
app/boards/arm/adv360pro/adv360pro_left_defconfig
Normal file
55
app/boards/arm/adv360pro/adv360pro_left_defconfig
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2023 The ZMK Contributors
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
#
|
||||||
|
|
||||||
|
CONFIG_SOC_SERIES_NRF52X=y
|
||||||
|
CONFIG_SOC_NRF52840_QIAA=y
|
||||||
|
CONFIG_BOARD_ADV360PRO_LEFT=y
|
||||||
|
|
||||||
|
# Enable MPU
|
||||||
|
CONFIG_ARM_MPU=y
|
||||||
|
|
||||||
|
# enable GPIO
|
||||||
|
CONFIG_GPIO=y
|
||||||
|
|
||||||
|
# Enable SPI for LEDS
|
||||||
|
CONFIG_PINCTRL=y
|
||||||
|
CONFIG_SPI=y
|
||||||
|
CONFIG_SPI_NRFX=y
|
||||||
|
|
||||||
|
# Enable writing to flash
|
||||||
|
CONFIG_USE_DT_CODE_PARTITION=y
|
||||||
|
CONFIG_MPU_ALLOW_FLASH_WRITE=y
|
||||||
|
CONFIG_NVS=y
|
||||||
|
CONFIG_SETTINGS_NVS=y
|
||||||
|
CONFIG_FLASH=y
|
||||||
|
CONFIG_FLASH_PAGE_LAYOUT=y
|
||||||
|
CONFIG_FLASH_MAP=y
|
||||||
|
|
||||||
|
# Enable 32kHz crystal
|
||||||
|
CONFIG_CLOCK_CONTROL_NRF_K32SRC_XTAL=y
|
||||||
|
CONFIG_CLOCK_CONTROL_NRF_K32SRC_150PPM=y
|
||||||
|
|
||||||
|
#RGB leds config
|
||||||
|
CONFIG_WS2812_STRIP=y
|
||||||
|
CONFIG_ZMK_RGB_UNDERGLOW=y
|
||||||
|
CONFIG_ZMK_RGB_UNDERGLOW_EXT_POWER=y
|
||||||
|
CONFIG_ZMK_RGB_UNDERGLOW_ON_START=n
|
||||||
|
CONFIG_ZMK_RGB_UNDERGLOW_EFF_START=0
|
||||||
|
CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE=y
|
||||||
|
|
||||||
|
#Backlighting configuration
|
||||||
|
CONFIG_PWM=y
|
||||||
|
CONFIG_LED_PWM=y
|
||||||
|
CONFIG_ZMK_BACKLIGHT=y
|
||||||
|
CONFIG_ZMK_BACKLIGHT_BRT_START=20
|
||||||
|
CONFIG_ZMK_BACKLIGHT_AUTO_OFF_IDLE=y
|
||||||
|
|
||||||
|
#Misc configuration
|
||||||
|
CONFIG_BT_CTLR_TX_PWR_PLUS_8=y
|
||||||
|
CONFIG_ZMK_HID_REPORT_TYPE_NKRO=y
|
||||||
|
CONFIG_ZMK_HID_CONSUMER_REPORT_USAGES_BASIC=y
|
||||||
|
CONFIG_BUILD_OUTPUT_UF2=y
|
||||||
|
CONFIG_ZMK_USB=y
|
||||||
|
CONFIG_ZMK_BLE=y
|
||||||
41
app/boards/arm/adv360pro/adv360pro_right.dts
Normal file
41
app/boards/arm/adv360pro/adv360pro_right.dts
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
* Copyright (c) 2023 The ZMK Contributors
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "adv360pro.dtsi"
|
||||||
|
|
||||||
|
/{
|
||||||
|
kscan0: kscan {
|
||||||
|
compatible = "zmk,kscan-gpio-matrix";
|
||||||
|
wakeup-source;
|
||||||
|
|
||||||
|
diode-direction = "col2row";
|
||||||
|
row-gpios
|
||||||
|
= <&gpio0 19 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
||||||
|
, <&gpio0 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
||||||
|
, <&gpio0 31 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
||||||
|
, <&gpio0 30 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
||||||
|
, <&gpio0 29 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
||||||
|
;
|
||||||
|
|
||||||
|
col-gpios
|
||||||
|
= <&gpio0 12 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpio1 9 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpio0 7 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpio1 11 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpio1 10 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpio1 13 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpio1 15 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpio0 3 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpio0 2 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpio0 28 GPIO_ACTIVE_HIGH>
|
||||||
|
;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&matrix_transform0 {
|
||||||
|
col-offset = <10>;
|
||||||
|
};
|
||||||
54
app/boards/arm/adv360pro/adv360pro_right_defconfig
Normal file
54
app/boards/arm/adv360pro/adv360pro_right_defconfig
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2023 The ZMK Contributors
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
#
|
||||||
|
|
||||||
|
CONFIG_SOC_SERIES_NRF52X=y
|
||||||
|
CONFIG_SOC_NRF52840_QIAA=y
|
||||||
|
CONFIG_BOARD_ADV360PRO_RIGHT=y
|
||||||
|
|
||||||
|
# Enable MPU
|
||||||
|
CONFIG_ARM_MPU=y
|
||||||
|
|
||||||
|
# enable GPIO
|
||||||
|
CONFIG_GPIO=y
|
||||||
|
|
||||||
|
# Enable SPI for LEDS
|
||||||
|
CONFIG_PINCTRL=y
|
||||||
|
CONFIG_SPI=y
|
||||||
|
CONFIG_SPI_NRFX=y
|
||||||
|
|
||||||
|
# Enable writing to flash
|
||||||
|
CONFIG_USE_DT_CODE_PARTITION=y
|
||||||
|
CONFIG_MPU_ALLOW_FLASH_WRITE=y
|
||||||
|
CONFIG_NVS=y
|
||||||
|
CONFIG_SETTINGS_NVS=y
|
||||||
|
CONFIG_FLASH=y
|
||||||
|
CONFIG_FLASH_PAGE_LAYOUT=y
|
||||||
|
CONFIG_FLASH_MAP=y
|
||||||
|
|
||||||
|
# Enable 32kHz crystal
|
||||||
|
CONFIG_CLOCK_CONTROL_NRF_K32SRC_XTAL=y
|
||||||
|
CONFIG_CLOCK_CONTROL_NRF_K32SRC_150PPM=y
|
||||||
|
|
||||||
|
#RGB leds config
|
||||||
|
CONFIG_WS2812_STRIP=y
|
||||||
|
CONFIG_ZMK_RGB_UNDERGLOW=y
|
||||||
|
CONFIG_ZMK_RGB_UNDERGLOW_EXT_POWER=y
|
||||||
|
CONFIG_ZMK_RGB_UNDERGLOW_ON_START=n
|
||||||
|
CONFIG_ZMK_RGB_UNDERGLOW_EFF_START=0
|
||||||
|
CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE=y
|
||||||
|
|
||||||
|
#Backlighting configuration
|
||||||
|
CONFIG_PWM=y
|
||||||
|
CONFIG_LED_PWM=y
|
||||||
|
CONFIG_ZMK_BACKLIGHT=y
|
||||||
|
CONFIG_ZMK_BACKLIGHT_BRT_START=20
|
||||||
|
CONFIG_ZMK_BACKLIGHT_AUTO_OFF_IDLE=y
|
||||||
|
|
||||||
|
#Misc configuration
|
||||||
|
CONFIG_BT_CTLR_TX_PWR_PLUS_8=y
|
||||||
|
CONFIG_ZMK_HID_REPORT_TYPE_NKRO=y
|
||||||
|
CONFIG_ZMK_HID_CONSUMER_REPORT_USAGES_BASIC=y
|
||||||
|
CONFIG_BUILD_OUTPUT_UF2=y
|
||||||
|
CONFIG_ZMK_BLE=y
|
||||||
9
app/boards/arm/adv360pro/board.cmake
Normal file
9
app/boards/arm/adv360pro/board.cmake
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2023 The ZMK Contributors
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
#
|
||||||
|
|
||||||
|
board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
|
||||||
|
|
||||||
|
include(${ZEPHYR_BASE}/boards/common/uf2.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,14 +24,24 @@
|
|||||||
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";
|
||||||
label = "KSCAN";
|
|
||||||
|
|
||||||
input-gpios
|
input-gpios
|
||||||
= <&gpiob 12 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
= <&gpiob 12 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>
|
||||||
@@ -40,7 +58,6 @@
|
|||||||
|
|
||||||
left_encoder: encoder_left {
|
left_encoder: encoder_left {
|
||||||
compatible = "alps,ec11";
|
compatible = "alps,ec11";
|
||||||
label = "LEFT_ENCODER";
|
|
||||||
a-gpios = <&gpioa 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
a-gpios = <&gpioa 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
||||||
b-gpios = <&gpioa 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
b-gpios = <&gpioa 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
||||||
steps = <80>;
|
steps = <80>;
|
||||||
@@ -48,7 +65,6 @@
|
|||||||
};
|
};
|
||||||
mid_encoder: encoder_mid {
|
mid_encoder: encoder_mid {
|
||||||
compatible = "alps,ec11";
|
compatible = "alps,ec11";
|
||||||
label = "MID_ENCODER";
|
|
||||||
a-gpios = <&gpioa 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
a-gpios = <&gpioa 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
||||||
b-gpios = <&gpioa 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
b-gpios = <&gpioa 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
||||||
steps = <80>;
|
steps = <80>;
|
||||||
@@ -56,7 +72,6 @@
|
|||||||
};
|
};
|
||||||
right_encoder: encoder_right {
|
right_encoder: encoder_right {
|
||||||
compatible = "alps,ec11";
|
compatible = "alps,ec11";
|
||||||
label = "RIGHT_ENCODER";
|
|
||||||
a-gpios = <&gpioa 15 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
a-gpios = <&gpioa 15 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
||||||
b-gpios = <&gpiob 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
b-gpios = <&gpiob 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
||||||
steps = <80>;
|
steps = <80>;
|
||||||
@@ -78,7 +93,6 @@
|
|||||||
|
|
||||||
led_strip: ws2812@0 {
|
led_strip: ws2812@0 {
|
||||||
compatible = "worldsemi,ws2812-spi";
|
compatible = "worldsemi,ws2812-spi";
|
||||||
label = "WS2812";
|
|
||||||
|
|
||||||
/* SPI */
|
/* SPI */
|
||||||
reg = <0>; /* ignored, but necessary for SPI bindings */
|
reg = <0>; /* ignored, but necessary for SPI bindings */
|
||||||
@@ -111,14 +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.
|
||||||
label = "CDC_ACM_0";
|
num-bidir-endpoints = <4>;
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&rtc {
|
&rtc {
|
||||||
@@ -137,7 +150,6 @@
|
|||||||
|
|
||||||
/* Set 6Kb of storage at the end of the 128Kb of flash */
|
/* Set 6Kb of storage at the end of the 128Kb of flash */
|
||||||
storage_partition: partition@1e800 {
|
storage_partition: partition@1e800 {
|
||||||
label = "storage";
|
|
||||||
reg = <0x0001e800 0x00001800>;
|
reg = <0x0001e800 0x00001800>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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,10 +14,9 @@ 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
|
||||||
|
|
||||||
CONFIG_ZMK_USB=y
|
CONFIG_ZMK_USB=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;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -25,20 +24,18 @@
|
|||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
blue_led: led_0 {
|
blue_led: led_0 {
|
||||||
gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
|
gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
|
||||||
label = "Blue LED";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
ext-power {
|
// Node name must match original "EXT_POWER" label to preserve user settings.
|
||||||
|
EXT_POWER {
|
||||||
compatible = "zmk,ext-power-generic";
|
compatible = "zmk,ext-power-generic";
|
||||||
label = "EXT_POWER";
|
|
||||||
init-delay-ms = <20>;
|
init-delay-ms = <20>;
|
||||||
control-gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
|
control-gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
|
||||||
};
|
};
|
||||||
|
|
||||||
vbatt: vbatt {
|
vbatt: vbatt {
|
||||||
compatible = "zmk,battery-voltage-divider";
|
compatible = "zmk,battery-voltage-divider";
|
||||||
label = "BATTERY";
|
|
||||||
io-channels = <&adc 7>;
|
io-channels = <&adc 7>;
|
||||||
output-ohms = <2000000>;
|
output-ohms = <2000000>;
|
||||||
full-ohms = <(2000000 + 806000)>;
|
full-ohms = <(2000000 + 806000)>;
|
||||||
@@ -69,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>;
|
||||||
@@ -77,12 +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";
|
|
||||||
label = "CDC_ACM_0";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -97,11 +97,9 @@
|
|||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
|
|
||||||
sd_partition: partition@0 {
|
sd_partition: partition@0 {
|
||||||
label = "softdevice";
|
|
||||||
reg = <0x00000000 0x00026000>;
|
reg = <0x00000000 0x00026000>;
|
||||||
};
|
};
|
||||||
code_partition: partition@26000 {
|
code_partition: partition@26000 {
|
||||||
label = "code_partition";
|
|
||||||
reg = <0x00026000 0x000c6000>;
|
reg = <0x00026000 0x000c6000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -115,12 +113,10 @@
|
|||||||
* if enabled.
|
* if enabled.
|
||||||
*/
|
*/
|
||||||
storage_partition: partition@ec000 {
|
storage_partition: partition@ec000 {
|
||||||
label = "storage";
|
|
||||||
reg = <0x000ec000 0x00008000>;
|
reg = <0x000ec000 0x00008000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
boot_partition: partition@f4000 {
|
boot_partition: partition@f4000 {
|
||||||
label = "adafruit_boot";
|
|
||||||
reg = <0x000f4000 0x0000c000>;
|
reg = <0x000f4000 0x0000c000>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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 {
|
||||||
@@ -32,7 +29,6 @@
|
|||||||
|
|
||||||
left_encoder: encoder_left {
|
left_encoder: encoder_left {
|
||||||
compatible = "alps,ec11";
|
compatible = "alps,ec11";
|
||||||
label = "LEFT_ENCODER";
|
|
||||||
a-gpios = <&gpio1 1 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
a-gpios = <&gpio1 1 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
||||||
b-gpios = <&gpio1 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
b-gpios = <&gpio1 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
||||||
steps = <80>;
|
steps = <80>;
|
||||||
@@ -44,13 +40,11 @@
|
|||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
blue_led: led_0 {
|
blue_led: led_0 {
|
||||||
gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
|
gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
|
||||||
label = "Blue LED";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
vbatt: vbatt {
|
vbatt: vbatt {
|
||||||
compatible = "zmk,battery-voltage-divider";
|
compatible = "zmk,battery-voltage-divider";
|
||||||
label = "BATTERY";
|
|
||||||
io-channels = <&adc 2>;
|
io-channels = <&adc 2>;
|
||||||
output-ohms = <2000000>;
|
output-ohms = <2000000>;
|
||||||
full-ohms = <(2000000 + 806000)>;
|
full-ohms = <(2000000 + 806000)>;
|
||||||
@@ -73,24 +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";
|
|
||||||
label = "CDC_ACM_0";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -105,11 +83,9 @@
|
|||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
|
|
||||||
sd_partition: partition@0 {
|
sd_partition: partition@0 {
|
||||||
label = "softdevice";
|
|
||||||
reg = <0x00000000 0x00026000>;
|
reg = <0x00000000 0x00026000>;
|
||||||
};
|
};
|
||||||
code_partition: partition@26000 {
|
code_partition: partition@26000 {
|
||||||
label = "code_partition";
|
|
||||||
reg = <0x00026000 0x000c6000>;
|
reg = <0x00026000 0x000c6000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -123,12 +99,10 @@
|
|||||||
* if enabled.
|
* if enabled.
|
||||||
*/
|
*/
|
||||||
storage_partition: partition@ec000 {
|
storage_partition: partition@ec000 {
|
||||||
label = "storage";
|
|
||||||
reg = <0x000ec000 0x00008000>;
|
reg = <0x000ec000 0x00008000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
boot_partition: partition@f4000 {
|
boot_partition: partition@f4000 {
|
||||||
label = "adafruit_boot";
|
|
||||||
reg = <0x000f4000 0x0000c000>;
|
reg = <0x000f4000 0x0000c000>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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,22 +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";
|
||||||
label = "KSCAN";
|
wakeup-source;
|
||||||
|
|
||||||
diode-direction = "col2row";
|
diode-direction = "col2row";
|
||||||
|
|
||||||
col-gpios
|
col-gpios
|
||||||
@@ -111,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,7 +30,8 @@
|
|||||||
|
|
||||||
kscan0: kscan_0 {
|
kscan0: kscan_0 {
|
||||||
compatible = "zmk,kscan-gpio-matrix";
|
compatible = "zmk,kscan-gpio-matrix";
|
||||||
label = "KSCAN";
|
wakeup-source;
|
||||||
|
|
||||||
diode-direction = "col2row";
|
diode-direction = "col2row";
|
||||||
|
|
||||||
col-gpios
|
col-gpios
|
||||||
@@ -59,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,7 +34,8 @@
|
|||||||
|
|
||||||
kscan0: kscan_0 {
|
kscan0: kscan_0 {
|
||||||
compatible = "zmk,kscan-gpio-matrix";
|
compatible = "zmk,kscan-gpio-matrix";
|
||||||
label = "KSCAN";
|
wakeup-source;
|
||||||
|
|
||||||
diode-direction = "col2row";
|
diode-direction = "col2row";
|
||||||
|
|
||||||
col-gpios
|
col-gpios
|
||||||
@@ -66,15 +67,14 @@
|
|||||||
;
|
;
|
||||||
};
|
};
|
||||||
|
|
||||||
ext-power {
|
// Node name must match original "EXT_POWER" label to preserve user settings.
|
||||||
|
EXT_POWER {
|
||||||
compatible = "zmk,ext-power-generic";
|
compatible = "zmk,ext-power-generic";
|
||||||
label = "EXT_POWER";
|
|
||||||
control-gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
|
control-gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
|
||||||
};
|
};
|
||||||
|
|
||||||
encoder_1: encoder_1 {
|
encoder_1: encoder_1 {
|
||||||
compatible = "alps,ec11";
|
compatible = "alps,ec11";
|
||||||
label = "ENCODER_ONE";
|
|
||||||
a-gpios = <&gpio0 21 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
a-gpios = <&gpio0 21 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
||||||
b-gpios = <&gpio0 19 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
b-gpios = <&gpio0 19 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
||||||
steps = <80>;
|
steps = <80>;
|
||||||
@@ -83,7 +83,6 @@
|
|||||||
|
|
||||||
encoder_2: encoder_2 {
|
encoder_2: encoder_2 {
|
||||||
compatible = "alps,ec11";
|
compatible = "alps,ec11";
|
||||||
label = "ENCODER_TWO";
|
|
||||||
a-gpios = <&gpio0 26 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
a-gpios = <&gpio0 26 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
||||||
b-gpios = <&gpio0 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
b-gpios = <&gpio0 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
||||||
steps = <80>;
|
steps = <80>;
|
||||||
@@ -92,7 +91,6 @@
|
|||||||
|
|
||||||
encoder_3: encoder_3 {
|
encoder_3: encoder_3 {
|
||||||
compatible = "alps,ec11";
|
compatible = "alps,ec11";
|
||||||
label = "encoder_3";
|
|
||||||
a-gpios = <&gpio0 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
a-gpios = <&gpio0 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
||||||
b-gpios = <&gpio0 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
b-gpios = <&gpio0 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
|
||||||
steps = <80>;
|
steps = <80>;
|
||||||
@@ -101,7 +99,6 @@
|
|||||||
|
|
||||||
backlight: pwmleds {
|
backlight: pwmleds {
|
||||||
compatible = "pwm-leds";
|
compatible = "pwm-leds";
|
||||||
label = "Backlight LEDs";
|
|
||||||
pwm_led_0 {
|
pwm_led_0 {
|
||||||
pwms = <&pwm0 0 10000 PWM_POLARITY_NORMAL>;
|
pwms = <&pwm0 0 10000 PWM_POLARITY_NORMAL>;
|
||||||
};
|
};
|
||||||
@@ -111,13 +108,11 @@
|
|||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
blue_led: led_0 {
|
blue_led: led_0 {
|
||||||
gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
|
gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
|
||||||
label = "Blue LED";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
vbatt: vbatt {
|
vbatt: vbatt {
|
||||||
compatible = "zmk,battery-voltage-divider";
|
compatible = "zmk,battery-voltage-divider";
|
||||||
label = "VBATT";
|
|
||||||
io-channels = <&adc 2>;
|
io-channels = <&adc 2>;
|
||||||
output-ohms = <100000>;
|
output-ohms = <100000>;
|
||||||
full-ohms = <(100000 + 100000)>;
|
full-ohms = <(100000 + 100000)>;
|
||||||
@@ -147,7 +142,7 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&usbd {
|
zephyr_udc0: &usbd {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -163,11 +158,9 @@
|
|||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
|
|
||||||
sd_partition: partition@0 {
|
sd_partition: partition@0 {
|
||||||
label = "softdevice";
|
|
||||||
reg = <0x00000000 0x00026000>;
|
reg = <0x00000000 0x00026000>;
|
||||||
};
|
};
|
||||||
code_partition: partition@26000 {
|
code_partition: partition@26000 {
|
||||||
label = "code_partition";
|
|
||||||
reg = <0x00026000 0x000c6000>;
|
reg = <0x00026000 0x000c6000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -181,12 +174,10 @@
|
|||||||
* if enabled.
|
* if enabled.
|
||||||
*/
|
*/
|
||||||
storage_partition: partition@ec000 {
|
storage_partition: partition@ec000 {
|
||||||
label = "storage";
|
|
||||||
reg = <0x000ec000 0x00008000>;
|
reg = <0x000ec000 0x00008000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
boot_partition: partition@f4000 {
|
boot_partition: partition@f4000 {
|
||||||
label = "adafruit_boot";
|
|
||||||
reg = <0x000f4000 0x0000c000>;
|
reg = <0x000f4000 0x0000c000>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -201,7 +192,6 @@
|
|||||||
|
|
||||||
led_strip: ws2812@0 {
|
led_strip: ws2812@0 {
|
||||||
compatible = "worldsemi,ws2812-spi";
|
compatible = "worldsemi,ws2812-spi";
|
||||||
label = "WS2812";
|
|
||||||
|
|
||||||
/* SPI */
|
/* SPI */
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
|
|||||||
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,12 +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";
|
|
||||||
label = "CDC_ACM_0";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&flash0 {
|
&flash0 {
|
||||||
@@ -95,11 +101,9 @@
|
|||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
|
|
||||||
sd_partition: partition@0 {
|
sd_partition: partition@0 {
|
||||||
label = "softdevice";
|
|
||||||
reg = <0x00000000 0x00026000>;
|
reg = <0x00000000 0x00026000>;
|
||||||
};
|
};
|
||||||
code_partition: partition@26000 {
|
code_partition: partition@26000 {
|
||||||
label = "code_partition";
|
|
||||||
reg = <0x00026000 0x000c6000>;
|
reg = <0x00026000 0x000c6000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -113,12 +117,10 @@
|
|||||||
* if enabled.
|
* if enabled.
|
||||||
*/
|
*/
|
||||||
storage_partition: partition@ec000 {
|
storage_partition: partition@ec000 {
|
||||||
label = "storage";
|
|
||||||
reg = <0x000ec000 0x00008000>;
|
reg = <0x000ec000 0x00008000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
boot_partition: partition@f4000 {
|
boot_partition: partition@f4000 {
|
||||||
label = "adafruit_boot";
|
|
||||||
reg = <0x000f4000 0x0000c000>;
|
reg = <0x000f4000 0x0000c000>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -21,9 +21,9 @@
|
|||||||
compatible = "zmk,keymap";
|
compatible = "zmk,keymap";
|
||||||
|
|
||||||
default_layer {
|
default_layer {
|
||||||
label = "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 |
|
||||||
@@ -36,9 +36,9 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
lower_layer {
|
lower_layer {
|
||||||
label = "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 |
|
||||||
@@ -51,16 +51,16 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
raise_layer {
|
raise_layer {
|
||||||
label = "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,7 +15,7 @@
|
|||||||
|
|
||||||
kscan0: kscan {
|
kscan0: kscan {
|
||||||
compatible = "zmk,kscan-gpio-matrix";
|
compatible = "zmk,kscan-gpio-matrix";
|
||||||
label = "KSCAN";
|
wakeup-source;
|
||||||
|
|
||||||
diode-direction = "col2row";
|
diode-direction = "col2row";
|
||||||
row-gpios
|
row-gpios
|
||||||
@@ -39,7 +39,6 @@
|
|||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
blue_led: led_0 {
|
blue_led: led_0 {
|
||||||
gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
|
gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
|
||||||
label = "Blue LED";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -88,9 +87,8 @@
|
|||||||
|
|
||||||
fuelgauge: bq274xx@55 {
|
fuelgauge: bq274xx@55 {
|
||||||
compatible = "ti,bq274xx";
|
compatible = "ti,bq274xx";
|
||||||
label = "BATTERY";
|
|
||||||
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
|
||||||
@@ -109,7 +107,6 @@
|
|||||||
epd: il0323@0 {
|
epd: il0323@0 {
|
||||||
compatible = "gooddisplay,il0323";
|
compatible = "gooddisplay,il0323";
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
label = "DISPLAY";
|
|
||||||
width = <80>;
|
width = <80>;
|
||||||
height = <128>;
|
height = <128>;
|
||||||
spi-max-frequency = <4000000>;
|
spi-max-frequency = <4000000>;
|
||||||
|
|||||||
@@ -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,7 +15,7 @@
|
|||||||
|
|
||||||
kscan0: kscan {
|
kscan0: kscan {
|
||||||
compatible = "zmk,kscan-gpio-matrix";
|
compatible = "zmk,kscan-gpio-matrix";
|
||||||
label = "KSCAN";
|
wakeup-source;
|
||||||
|
|
||||||
diode-direction = "col2row";
|
diode-direction = "col2row";
|
||||||
row-gpios
|
row-gpios
|
||||||
@@ -39,7 +39,6 @@
|
|||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
blue_led: led_0 {
|
blue_led: led_0 {
|
||||||
gpios = <&gpio0 26 GPIO_ACTIVE_HIGH>;
|
gpios = <&gpio0 26 GPIO_ACTIVE_HIGH>;
|
||||||
label = "Blue LED";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -96,9 +95,8 @@
|
|||||||
|
|
||||||
fuelgauge: bq274xx@55 {
|
fuelgauge: bq274xx@55 {
|
||||||
compatible = "ti,bq274xx";
|
compatible = "ti,bq274xx";
|
||||||
label = "BATTERY";
|
|
||||||
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
|
||||||
@@ -117,7 +115,6 @@
|
|||||||
epd: il0323@0 {
|
epd: il0323@0 {
|
||||||
compatible = "gooddisplay,il0323";
|
compatible = "gooddisplay,il0323";
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
label = "DISPLAY";
|
|
||||||
width = <80>;
|
width = <80>;
|
||||||
height = <128>;
|
height = <128>;
|
||||||
spi-max-frequency = <4000000>;
|
spi-max-frequency = <4000000>;
|
||||||
|
|||||||
@@ -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,7 +15,7 @@
|
|||||||
|
|
||||||
kscan0: kscan {
|
kscan0: kscan {
|
||||||
compatible = "zmk,kscan-gpio-matrix";
|
compatible = "zmk,kscan-gpio-matrix";
|
||||||
label = "KSCAN";
|
wakeup-source;
|
||||||
|
|
||||||
diode-direction = "col2row";
|
diode-direction = "col2row";
|
||||||
row-gpios
|
row-gpios
|
||||||
@@ -39,13 +39,11 @@
|
|||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
blue_led: led_0 {
|
blue_led: led_0 {
|
||||||
gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
|
gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
|
||||||
label = "Blue LED";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
vbatt: vbatt {
|
vbatt: vbatt {
|
||||||
compatible = "zmk,battery-voltage-divider";
|
compatible = "zmk,battery-voltage-divider";
|
||||||
label = "BATTERY";
|
|
||||||
io-channels = <&adc 0>;
|
io-channels = <&adc 0>;
|
||||||
output-ohms = <1960000>;
|
output-ohms = <1960000>;
|
||||||
full-ohms = <(1960000 + 810000)>;
|
full-ohms = <(1960000 + 810000)>;
|
||||||
@@ -83,7 +81,6 @@
|
|||||||
epd: il0323@0 {
|
epd: il0323@0 {
|
||||||
compatible = "gooddisplay,il0323";
|
compatible = "gooddisplay,il0323";
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
label = "DISPLAY";
|
|
||||||
width = <80>;
|
width = <80>;
|
||||||
height = <128>;
|
height = <128>;
|
||||||
spi-max-frequency = <4000000>;
|
spi-max-frequency = <4000000>;
|
||||||
|
|||||||
@@ -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,7 +15,7 @@
|
|||||||
|
|
||||||
kscan0: kscan {
|
kscan0: kscan {
|
||||||
compatible = "zmk,kscan-gpio-matrix";
|
compatible = "zmk,kscan-gpio-matrix";
|
||||||
label = "KSCAN";
|
wakeup-source;
|
||||||
|
|
||||||
diode-direction = "col2row";
|
diode-direction = "col2row";
|
||||||
row-gpios
|
row-gpios
|
||||||
@@ -39,13 +39,11 @@
|
|||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
blue_led: led_0 {
|
blue_led: led_0 {
|
||||||
gpios = <&gpio0 26 GPIO_ACTIVE_HIGH>;
|
gpios = <&gpio0 26 GPIO_ACTIVE_HIGH>;
|
||||||
label = "Blue LED";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
vbatt: vbatt {
|
vbatt: vbatt {
|
||||||
compatible = "zmk,battery-voltage-divider";
|
compatible = "zmk,battery-voltage-divider";
|
||||||
label = "BATTERY";
|
|
||||||
io-channels = <&adc 0>;
|
io-channels = <&adc 0>;
|
||||||
output-ohms = <1960000>;
|
output-ohms = <1960000>;
|
||||||
full-ohms = <(1960000 + 810000)>;
|
full-ohms = <(1960000 + 810000)>;
|
||||||
@@ -90,7 +88,6 @@
|
|||||||
epd: il0323@0 {
|
epd: il0323@0 {
|
||||||
compatible = "gooddisplay,il0323";
|
compatible = "gooddisplay,il0323";
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
label = "DISPLAY";
|
|
||||||
width = <80>;
|
width = <80>;
|
||||||
height = <128>;
|
height = <128>;
|
||||||
spi-max-frequency = <4000000>;
|
spi-max-frequency = <4000000>;
|
||||||
|
|||||||
@@ -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) {
|
||||||
return (struct battery_status_state) {
|
const struct zmk_battery_state_changed *ev = as_zmk_battery_state_changed(eh);
|
||||||
.level = bt_bas_get_battery_level(),
|
|
||||||
|
return (struct battery_status_state){
|
||||||
|
.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_label(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,9 +16,8 @@
|
|||||||
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;
|
||||||
};
|
};
|
||||||
|
|
||||||
default_transform: keymap_transform_0 {
|
default_transform: keymap_transform_0 {
|
||||||
@@ -36,7 +35,6 @@ RC(4,0) RC(4,1) RC(4,2) RC(4,5) RC(
|
|||||||
|
|
||||||
kscan0: kscan {
|
kscan0: kscan {
|
||||||
compatible = "zmk,kscan-gpio-matrix";
|
compatible = "zmk,kscan-gpio-matrix";
|
||||||
label = "KSCAN";
|
|
||||||
|
|
||||||
diode-direction = "col2row";
|
diode-direction = "col2row";
|
||||||
row-gpios
|
row-gpios
|
||||||
@@ -66,12 +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";
|
|
||||||
label = "CDC_ACM_0";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&flash0 {
|
&flash0 {
|
||||||
@@ -86,7 +80,6 @@ RC(4,0) RC(4,1) RC(4,2) RC(4,5) RC(
|
|||||||
|
|
||||||
/* Set 6Kb of storage at the end of the 256Kb of flash */
|
/* Set 6Kb of storage at the end of the 256Kb of flash */
|
||||||
storage_partition: partition@3e800 {
|
storage_partition: partition@3e800 {
|
||||||
label = "storage";
|
|
||||||
reg = <0x0003e800 0x00001800>;
|
reg = <0x0003e800 0x00001800>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user