Compare commits
674 Commits
Author | SHA1 | Date | |
---|---|---|---|
158aaef78c | |||
5acc3b2b7b | |||
78900720fd | |||
c67c3d375b | |||
75402109e9 | |||
fa657fef70 | |||
eb78ca1c1a | |||
d28a50e176 | |||
c7662e4f36 | |||
73cb6fd89f | |||
d538451adb | |||
cf84ea7662 | |||
8c35011d0a | |||
8c5acdea12 | |||
60c5ad821c | |||
622dc56250 | |||
d079372580 | |||
af70e3759a | |||
4bcc80ad46 | |||
d09c11dc78 | |||
82f9019cc9 | |||
4e2effc538 | |||
8d5517fa63 | |||
ee1505971f | |||
b6e1a20950 | |||
f2c789bb4a | |||
fab50be817 | |||
f04fd13dff | |||
eb60235cd5 | |||
2fb9816c77 | |||
6fbe91aecd | |||
a6857872f2 | |||
56323f75c6 | |||
11031adc1b | |||
d79f46e408 | |||
2ddfd60be7 | |||
63ef6516d3 | |||
522bf1daf2 | |||
a763dd5bbd | |||
c70c99367a | |||
b5b06f1094 | |||
caa7599b83 | |||
c2dbbc060a | |||
875eb43a28 | |||
2908f0b846 | |||
a3d938d822 | |||
6dfd7ed46f | |||
7b5d7907df | |||
79ad561b67 | |||
5a5f68038e | |||
4d4d7b76b0 | |||
c58c5fa8fa | |||
565bb704e0 | |||
890909c2d7 | |||
f15fff3258 | |||
7d94db8661 | |||
063f1444c6 | |||
2e671cfd8b | |||
1b8b6801d4 | |||
cc62eb503d | |||
0c4fd514f1 | |||
9be6d76c61 | |||
3d10171e2c | |||
e3ef5b2d9d | |||
f8cf58a512 | |||
efa5b30cfd | |||
fb54a59bba | |||
fbbc71ec34 | |||
a0bb7ff992 | |||
6eb6e3048a | |||
d08da05cb8 | |||
8336b5c72f | |||
b23ddb9ad8 | |||
67d512e639 | |||
4fbb395602 | |||
300505bd9e | |||
38f07e1fd2 | |||
b82f6ac402 | |||
be967d42d2 | |||
af72a58c8f | |||
9fb51cfe2b | |||
6d21898c14 | |||
096dc672c1 | |||
8e64ff574a | |||
5e2368984e | |||
15af5d7d0d | |||
62c1787d72 | |||
8fe667a1a4 | |||
031ccd4887 | |||
43fc7b5a4f | |||
4ced8d9371 | |||
1c6cdb8d74 | |||
c663f5e9f3 | |||
977918982d | |||
c2f7974c8e | |||
bc8ac86422 | |||
33adb8cba0 | |||
e754c9f2b4 | |||
869b7d9ae6 | |||
3ffe8d917a | |||
12379dc1eb | |||
d6bfbdb6b1 | |||
cc0b2f9814 | |||
5624804c68 | |||
2bde8ce206 | |||
086e8e938e | |||
cd374b1500 | |||
9d02ac37f7 | |||
603586800c | |||
90b043e01c | |||
5f794217b4 | |||
b71b81d539 | |||
17ae6f9b53 | |||
cebe521b11 | |||
0b572a1be6 | |||
378dbd32bd | |||
03e688e91f | |||
d5e0562a70 | |||
191c8cca33 | |||
7aa2ce2b38 | |||
6f03d20a92 | |||
e5c80fc6b3 | |||
aa11ef5bcf | |||
a6ef34cd16 | |||
4fdde75333 | |||
dafc46f1d1 | |||
baa564bddf | |||
3f44231d2d | |||
4864d5afca | |||
089a819179 | |||
751fbd75d3 | |||
3c868b9316 | |||
7ac1a34a34 | |||
ad82c4703a | |||
0262161914 | |||
d4654ab893 | |||
aec7569a04 | |||
0594121b68 | |||
4e8b740dd7 | |||
c92becc57e | |||
cd565a95a0 | |||
caf13bb9db | |||
4a4eda4c3c | |||
942c2a8d5a | |||
be9dfe65dd | |||
fa40356250 | |||
7247039742 | |||
e69d30a9e9 | |||
bdd10ef8e7 | |||
031ca3b40b | |||
8041a88f5d | |||
8b5cdfabf5 | |||
df4538d894 | |||
e484a3a179 | |||
9dc183afe4 | |||
e7a08ef1a9 | |||
950d765370 | |||
260e9a546e | |||
a4da5f219f | |||
6d365dd8f1 | |||
8253697a63 | |||
282253a7e0 | |||
41dbb4c86c | |||
78a0adfbb4 | |||
fa6d23235b | |||
119e54e9e3 | |||
32af90ae84 | |||
8a394503c7 | |||
8b84fa6b50 | |||
b39285807e | |||
6ef9717288 | |||
395766657f | |||
2f9f000d0c | |||
f76cc320fd | |||
465ab5a206 | |||
c9f9cb2510 | |||
249f1706f1 | |||
b8f29c3865 | |||
8ff8e9eae5 | |||
8abd87d586 | |||
8413411571 | |||
0094a6f571 | |||
634ebc9763 | |||
013b51a904 | |||
c4e182b98e | |||
bfa05cc5e7 | |||
f37f27f02a | |||
912124f71c | |||
04bf30aad8 | |||
e659c3dae9 | |||
2e0498080f | |||
030d503d35 | |||
199f01cc57 | |||
7baaac9531 | |||
efe0d96845 | |||
16d2db5048 | |||
071434c04f | |||
495e83b30f | |||
d1547320a0 | |||
ac2e19b4d6 | |||
7620c64b99 | |||
37b1898488 | |||
3d0f4fa692 | |||
a1c1427594 | |||
89b9a39614 | |||
0a84bf8b57 | |||
1c650aa55c | |||
3400908b08 | |||
73f9fb91a3 | |||
2b926774ca | |||
b699679037 | |||
a8de554d22 | |||
02af906de1 | |||
a823422cac | |||
bf918a8f6c | |||
a850f7d695 | |||
8ad2e30732 | |||
4852b04c20 | |||
3029a23cfa | |||
079ac7c166 | |||
b7b4ffc449 | |||
bf42707eed | |||
03f0d68342 | |||
4d31c51725 | |||
5fda349018 | |||
48c0b60141 | |||
dcd450645d | |||
2fd5631776 | |||
e31f13ff09 | |||
93023511ab | |||
ec5d3ef052 | |||
2420487e55 | |||
9ffe516c85 | |||
eab07b8655 | |||
5bb01794ee | |||
a76a6580f8 | |||
dd56bee9e1 | |||
a29f665769 | |||
e9e26c2b52 | |||
8fac6224d5 | |||
d0ac04a841 | |||
a32870ea1b | |||
8f2085421e | |||
5469f30dfe | |||
924147dfe4 | |||
5c592ab0c0 | |||
a871dab668 | |||
47bc02b2ff | |||
b1ed1c6082 | |||
340be4bae3 | |||
a9ba83c7be | |||
38d6aa2674 | |||
eb5172f4b5 | |||
ef80077b68 | |||
f21dc7914f | |||
501f988666 | |||
722dedc118 | |||
fcbbaf4485 | |||
cfe0709fc3 | |||
6d222b71c6 | |||
7778e6dcb0 | |||
8c05254a68 | |||
f9f67d4cb3 | |||
66eb5d0a90 | |||
d09ea04fa1 | |||
f903c7a8cb | |||
a8e9d4f207 | |||
1184e0d9be | |||
2d4832f57a | |||
73f3f6e56d | |||
af4a806e3f | |||
ef0734b7a6 | |||
42a37577e1 | |||
c3b06efb1d | |||
16557f9975 | |||
a69bf7af04 | |||
69640365f8 | |||
224ff1d262 | |||
18735599b4 | |||
a58906ceb3 | |||
9227eaa185 | |||
02737307ff | |||
022979c4e0 | |||
834d03b577 | |||
4f7fb29b76 | |||
dca7c3f86f | |||
33c80be940 | |||
7fc552632e | |||
5daae4bee9 | |||
8db8431d84 | |||
e3e587fc74 | |||
5c90facf93 | |||
5f9917856a | |||
b7d5a6c50b | |||
c8d1b6fefa | |||
4c2bdf7ab0 | |||
d09a06a1b3 | |||
5426a7a129 | |||
8075003e60 | |||
d5598eb714 | |||
257319f9ff | |||
b9834744d9 | |||
e3fed98ecb | |||
c3ad2e2daf | |||
26d444c616 | |||
ac80cee9da | |||
9a4f39b738 | |||
29a4e5c50b | |||
61c7c1f74c | |||
337776105d | |||
7220715dd1 | |||
248096aa9b | |||
7b838f330f | |||
5f07d3c958 | |||
8753ae354b | |||
4a0ffea41e | |||
1fc4bfa313 | |||
ca98cdc2df | |||
5f755b9822 | |||
e7d8c189f1 | |||
0a3c486476 | |||
145ec6189d | |||
8fbdc45648 | |||
6de8c9a3a2 | |||
719c99afa1 | |||
8129b73d8a | |||
c18d11b57a | |||
9289d934b0 | |||
c5fb6b4348 | |||
94e9bb406b | |||
54c1ae55bf | |||
7b9a1ac4be | |||
31c81d432c | |||
e2b77e9689 | |||
69acadf967 | |||
900bec6211 | |||
3f9400d974 | |||
822ba1edfa | |||
d21363325d | |||
aa68d95e56 | |||
3377813f5d | |||
f91e793e85 | |||
a426abf017 | |||
ebff2d0244 | |||
4e9967557e | |||
7a28c6ede3 | |||
636c96ad25 | |||
0debba3681 | |||
e2618dc35c | |||
dc2db0c1d4 | |||
e888187e03 | |||
f215da3b7c | |||
009f67a91b | |||
4f4602abd5 | |||
3e04bf5f1b | |||
b99e09ee0e | |||
8ea68f5841 | |||
284e29d4a1 | |||
5fe63d4b4d | |||
ae8458e12d | |||
ee178557ed | |||
c94c6fcc25 | |||
cf07d5bcc9 | |||
2ddb320401 | |||
cc35aaadbf | |||
fd32861c9f | |||
5d6d6b3e8f | |||
4f087591a8 | |||
b4b222a6e3 | |||
78a76b6c1e | |||
a0d43c3a64 | |||
e99b7f240a | |||
a65818d929 | |||
0ff53b2498 | |||
8f8fffc174 | |||
569be5951e | |||
0ab77cf2e5 | |||
82f7e7d7fe | |||
2224a768d5 | |||
d333a25868 | |||
42f61611e8 | |||
1d455fc5f3 | |||
2893038fda | |||
e9b8929357 | |||
3d83b3e7c5 | |||
b6d5cfe575 | |||
861a904924 | |||
16cca527a6 | |||
c8ceda461a | |||
c505ea48b3 | |||
d9740c9de1 | |||
32136afe24 | |||
0786314bfb | |||
1fa84ea83c | |||
4b4d024c6b | |||
33c453d771 | |||
a1cbdf145f | |||
dc0095c64b | |||
e69b638756 | |||
d674724d4e | |||
e807bb7e37 | |||
f387410c97 | |||
125d050761 | |||
ac2424fec6 | |||
40d0512794 | |||
191f626880 | |||
69f96e1411 | |||
7b96e54e8c | |||
5936a96620 | |||
49593dc81f | |||
5ab3b27e5f | |||
1513966c38 | |||
4a7fdda668 | |||
2693d6fd84 | |||
d0e1d36144 | |||
435aab534b | |||
f75e66dd19 | |||
abcaf39e6c | |||
860c218415 | |||
aa15b64f55 | |||
8e098ff49f | |||
c25dfe543b | |||
35474e19c8 | |||
b31ebe789d | |||
fffe8ee75f | |||
36a6f2ba3c | |||
e869c80af7 | |||
baa6000ed3 | |||
7be23a9cb4 | |||
783eb01037 | |||
45d60214f4 | |||
1d5ee895ad | |||
abe4d9cdca | |||
3c9dd36809 | |||
9c1662f8f9 | |||
2e01b67ecc | |||
130a2a31a6 | |||
bc8ff28a58 | |||
22b3cf4e91 | |||
e5e2b8a262 | |||
9baafef968 | |||
360a53fe7d | |||
1a831a01b7 | |||
9de5238103 | |||
96025250d1 | |||
2eea2cdc46 | |||
8ad3a36fb6 | |||
43a122e050 | |||
bbf63a8466 | |||
6b60089fc7 | |||
214e091ec2 | |||
244b7143b6 | |||
45b710f9e1 | |||
8caa8674d2 | |||
cb81913d18 | |||
a532d1cc5a | |||
8bbbe753fd | |||
de4d28cd60 | |||
2daaaba2a3 | |||
f73e69f56d | |||
52d3ef0fe4 | |||
25f608c1b4 | |||
4acdddbf48 | |||
b99143fdd2 | |||
cd94664d15 | |||
cd0043de8f | |||
ad8d934d3c | |||
11deaf60b4 | |||
b0e948c380 | |||
061f5adc15 | |||
36ae585468 | |||
1f3d709fcb | |||
9fa91ad494 | |||
a14c03b96e | |||
f8a7a6848d | |||
0696a62476 | |||
fd17ae34ec | |||
2a25e79760 | |||
7a939ca9b4 | |||
b9b8ff8302 | |||
8d8d6af124 | |||
c70ebd4a0e | |||
e578434ba8 | |||
2a4c746718 | |||
f29daff9b6 | |||
62af50ceef | |||
c635733a7f | |||
408f6e43cd | |||
73daecdc23 | |||
03a3a2673d | |||
63bc7b63a6 | |||
38f7c6e3f3 | |||
b108524314 | |||
05731202a2 | |||
1bea8b9d31 | |||
573db7a0ee | |||
6f53d10960 | |||
d4d8b0c6d3 | |||
314e3fc2f4 | |||
8757a19375 | |||
525cf0080f | |||
5fc4e331bd | |||
81b5ae9bdd | |||
33ddc90043 | |||
73e3053e25 | |||
a922627319 | |||
ea71945441 | |||
a939ee1197 | |||
319d9aa7b9 | |||
5db6f7967e | |||
809c5f2c01 | |||
e9f187f612 | |||
83625da36b | |||
b92bca7786 | |||
72ec742d2c | |||
c9f15cf081 | |||
6dbc1b800f | |||
04d6803b34 | |||
2dd406f08f | |||
76bd5142cf | |||
831deac212 | |||
1c8e99ca45 | |||
426bb9c651 | |||
86e7df0c2a | |||
da041fcd53 | |||
54593975bf | |||
cf84ec0123 | |||
abc101c122 | |||
291b665d6a | |||
ac74d106d6 | |||
01ea60a7a8 | |||
93737eccc9 | |||
1eb24155db | |||
7bff385840 | |||
e1f905def5 | |||
696bf80375 | |||
bc3d1f4fab | |||
c52ad5c38e | |||
d0cf7b8519 | |||
e891109c4e | |||
60aa0fda96 | |||
041f60f9a9 | |||
387a1aef8d | |||
e8d9e3955b | |||
2d8902c884 | |||
01ce77b01d | |||
742ff91cf8 | |||
765fa718c5 | |||
5ef5a79fd9 | |||
4e941c3caf | |||
eac3809266 | |||
bcc4dc4f25 | |||
afafce0a5e | |||
42a725e355 | |||
1d55b5e661 | |||
06cb283604 | |||
81df9ba478 | |||
e44cbf7556 | |||
3a22c4a31f | |||
4cd92cac1c | |||
3a0b5d4ed4 | |||
c035a37249 | |||
01be746fc4 | |||
148d66fc9f | |||
1d58530e79 | |||
d0ee4a1cb2 | |||
38813e864b | |||
4afbade6d1 | |||
9b910bbbf4 | |||
551489645a | |||
583cde398a | |||
c038292c1e | |||
c8253af773 | |||
f95f93b0fc | |||
ae9c5389f0 | |||
f497c5ee8e | |||
8a429fce33 | |||
5d6b291845 | |||
1439e3348f | |||
4bc57c8d46 | |||
3c1fccbd8e | |||
18ae0f61ab | |||
f24b55b212 | |||
a1b16b8227 | |||
319ac3b27b | |||
5b472a93de | |||
d5374b7e01 | |||
a729516edb | |||
536b4d5cf1 | |||
f8b427d5ab | |||
063f971177 | |||
4c8f33baa4 | |||
f7cf40fa77 | |||
23b7a02ebe | |||
47dc471bd4 | |||
164065682e | |||
7e39635c0a | |||
bbe0c515f8 | |||
1f8f0f70a2 | |||
14990ca5a2 | |||
1a90337284 | |||
24d824aae4 | |||
68e8d74188 | |||
359cec14fa | |||
020481b258 | |||
add7c13d61 | |||
b9d65269ca | |||
24d7d0ec77 | |||
01473075f8 | |||
80b72487ce | |||
539fa21bf8 | |||
16ad09299c | |||
c43f48f6a9 | |||
63dd131d81 | |||
4bbfecae90 | |||
6720e9c58c | |||
aea414fd82 | |||
f1a279810f | |||
8e5cd981e1 | |||
f217cd4657 | |||
af1ac6b1bd | |||
6c95ec0c09 | |||
0b6e1f1932 | |||
c92277a8ae | |||
8449ad0fc3 | |||
66060f1935 | |||
1ea9f2e92b | |||
aa33d8ba8e | |||
df397a3bba | |||
1f26ce7a9e | |||
9b5eff5b01 | |||
a0e8e26a21 | |||
2756912a0d | |||
eb1304b16c | |||
67ba46f5c8 | |||
95de18792f | |||
c0dbe9a336 | |||
9f4a9d5826 | |||
c5225ab500 | |||
729520f302 | |||
461eaed7aa | |||
145a1eca1b | |||
1db7ff7f18 | |||
bb691bed96 | |||
58c38175e6 | |||
5dfe2bc37a | |||
42c048e08a | |||
acfbfe0dae | |||
fc0b3eec53 | |||
d247c24e99 | |||
bd1f1068f7 | |||
86f7531173 | |||
7278b01775 | |||
3ac9b80e2e | |||
c48f372c87 | |||
83e6ddbbb4 | |||
045e5c9729 | |||
a2c23e9419 | |||
bbeb9c1ccd | |||
d048de70db | |||
2cace5a7e9 | |||
000c1c1475 | |||
fcf906657b | |||
73c4ca175b | |||
569b0c70be | |||
3bf1ce5cf8 | |||
7fd0201a92 | |||
d5ac75385b | |||
7dd57f16c3 | |||
f983b2de14 | |||
4e953f1169 | |||
b35389317e | |||
0e02b0c41e | |||
b43f6cb7ef |
2
.clangd
2
.clangd
@ -1,4 +1,4 @@
|
||||
CompileFlags:
|
||||
Add: [-Wno-unknown-attributes, -Wno-maybe-uninitialized, -Wno-unknown-warning-option]
|
||||
Remove: [-W*, -mcall-prologues]
|
||||
Remove: [-W*, -mmcu=*, -mcpu=*, -mfpu=*, -mfloat-abi=*, -mno-unaligned-access, -mno-thumb-interwork, -mcall-prologues]
|
||||
Compiler: clang
|
||||
|
82
.github/labeler.yml
vendored
82
.github/labeler.yml
vendored
@ -1,46 +1,56 @@
|
||||
core:
|
||||
- quantum/**/*
|
||||
- tmk_core/**/*
|
||||
- drivers/**/*
|
||||
- tests/**/*
|
||||
- util/**/*
|
||||
- platforms/**/*
|
||||
- builddefs/**/*
|
||||
- Makefile
|
||||
- '*.mk'
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- quantum/**
|
||||
- tmk_core/**
|
||||
- drivers/**
|
||||
- tests/**
|
||||
- util/**
|
||||
- platforms/**
|
||||
- builddefs/*.mk
|
||||
- Makefile
|
||||
- '*.mk'
|
||||
dependencies:
|
||||
- any:
|
||||
- 'lib/**/*'
|
||||
- '!lib/python/**/*'
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file: lib/**
|
||||
- all-globs-to-all-files: '!lib/python/**'
|
||||
keyboard:
|
||||
- any:
|
||||
- 'keyboards/**/*'
|
||||
- '!keyboards/**/keymaps/**/*'
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file: keyboards/**
|
||||
- all-globs-to-all-files: '!keyboards/**/keymaps/**'
|
||||
keymap:
|
||||
- users/**/*
|
||||
- layouts/**/*
|
||||
- keyboards/**/keymaps/**/*
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- users/**
|
||||
- layouts/**
|
||||
- keyboards/**/keymaps/**
|
||||
via:
|
||||
- keyboards/**/keymaps/via/*
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- keyboards/**/keymaps/via/*
|
||||
cli:
|
||||
- requirements.txt
|
||||
- lib/python/**/*
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- requirements.txt
|
||||
- lib/python/**
|
||||
python:
|
||||
- '**/*.py'
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- '**/*.py'
|
||||
documentation:
|
||||
- docs/**/*
|
||||
translation:
|
||||
- docs/fr-fr/**/*
|
||||
- docs/es/**/*
|
||||
- docs/ja/**/*
|
||||
- docs/he-il/**/*
|
||||
- docs/pt-br/**/*
|
||||
- docs/zh-cn/**/*
|
||||
- docs/de/**/*
|
||||
- docs/ru-ru/**/*
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- docs/**
|
||||
- builddefs/docsgen/**
|
||||
CI:
|
||||
- .github/**/*
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- .github/**
|
||||
dd:
|
||||
- data/constants/**/*
|
||||
- data/mappings/**/*
|
||||
- data/schemas/**/*
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- data/constants/**
|
||||
- data/mappings/**
|
||||
- data/schemas/**
|
||||
|
6
.github/workflows/auto_approve.yml
vendored
6
.github/workflows/auto_approve.yml
vendored
@ -13,8 +13,8 @@ jobs:
|
||||
if: github.repository == 'qmk/qmk_firmware'
|
||||
|
||||
steps:
|
||||
- uses: mheap/automatic-approve-action@v1
|
||||
- uses: zvecr/automatic-approve-action@safe_files
|
||||
with:
|
||||
token: ${{ secrets.QMK_BOT_TOKEN }}
|
||||
workflows: "format.yml,lint.yml,unit_test.yml"
|
||||
dangerous_files: "lib/python/,Makefile,paths.mk,builddefs/"
|
||||
workflows: "labeler.yml,lint.yml,docs.yml"
|
||||
safe_files: "keyboards/,docs/"
|
||||
|
139
.github/workflows/ci_build_major_branch.yml
vendored
Normal file
139
.github/workflows/ci_build_major_branch.yml
vendored
Normal file
@ -0,0 +1,139 @@
|
||||
name: CI Build Major Branch
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
actions: write
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master, develop]
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
branch:
|
||||
type: choice
|
||||
description: "Branch to build"
|
||||
options: [master, develop]
|
||||
|
||||
env:
|
||||
# https://docs.github.com/en/actions/learn-github-actions/usage-limits-billing-and-administration#usage-limits
|
||||
# We've decreased it from 20 to 15 to allow for other GHA to run unimpeded
|
||||
CONCURRENT_JOBS: 15
|
||||
|
||||
# Ensure we only have one build running at a time, cancelling any active builds if a new commit is pushed to the respective branch
|
||||
concurrency:
|
||||
group: ci_build-${{ github.event.inputs.branch || github.ref_name }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
determine_concurrency:
|
||||
name: "Determine concurrency"
|
||||
if: github.repository == 'qmk/qmk_firmware'
|
||||
runs-on: ubuntu-latest
|
||||
container: ghcr.io/qmk/qmk_cli
|
||||
|
||||
outputs:
|
||||
slice_length: ${{ steps.generate_slice_length.outputs.slice_length }}
|
||||
|
||||
steps:
|
||||
- name: Install prerequisites
|
||||
run: |
|
||||
apt-get update
|
||||
apt-get install -y jq
|
||||
|
||||
- name: Disable safe.directory check
|
||||
run: |
|
||||
git config --global --add safe.directory '*'
|
||||
|
||||
- name: Checkout QMK Firmware
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Determine concurrency
|
||||
id: generate_slice_length
|
||||
run: |
|
||||
target_count=$( {
|
||||
qmk find -km default 2>/dev/null
|
||||
# qmk find -km xap 2>/dev/null
|
||||
} | sort | uniq | wc -l)
|
||||
slice_length=$((target_count / ($CONCURRENT_JOBS - 1))) # Err on the side of caution
|
||||
echo "slice_length=$slice_length" >> $GITHUB_OUTPUT
|
||||
|
||||
build_targets:
|
||||
name: "Compile keymap ${{ matrix.keymap }}"
|
||||
needs: determine_concurrency
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
keymap: [default]
|
||||
# keymap: [default, xap]
|
||||
uses: ./.github/workflows/ci_build_major_branch_keymap.yml
|
||||
with:
|
||||
branch: ${{ inputs.branch || github.ref_name }}
|
||||
keymap: ${{ matrix.keymap }}
|
||||
slice_length: ${{ needs.determine_concurrency.outputs.slice_length }}
|
||||
secrets: inherit
|
||||
|
||||
rollup_tasks:
|
||||
name: "Consolidation"
|
||||
needs: build_targets
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Disable safe.directory check
|
||||
run: |
|
||||
git config --global --add safe.directory '*'
|
||||
|
||||
- name: Checkout QMK Firmware
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Download firmwares
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
pattern: firmware-*
|
||||
path: .
|
||||
merge-multiple: true
|
||||
|
||||
- name: Generate index page
|
||||
run: |
|
||||
python3 -m pip install -r ./util/ci/requirements.txt
|
||||
./util/ci/index_generator.py > index.html
|
||||
./util/ci/firmware_list_generator.py > firmware_list.json
|
||||
|
||||
- name: Upload to https://ci.qmk.fm/${{ inputs.branch || github.ref_name }}/${{ github.sha }}
|
||||
uses: jakejarvis/s3-sync-action@master
|
||||
with:
|
||||
args: --acl public-read --follow-symlinks --delete --exclude '*' --include 'index.html' --include 'firmware_list.json' --include '*.hex' --include '*.bin' --include '*.uf2'
|
||||
env:
|
||||
AWS_S3_BUCKET: ${{ vars.CI_QMK_FM_SPACES_BUCKET }}
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.CI_QMK_FM_SPACES_KEY }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_QMK_FM_SPACES_SECRET }}
|
||||
AWS_REGION: ${{ vars.CI_QMK_FM_SPACES_REGION }}
|
||||
AWS_S3_ENDPOINT: ${{ vars.CI_QMK_FM_SPACES_ENDPOINT }}
|
||||
SOURCE_DIR: .
|
||||
DEST_DIR: ${{ inputs.branch || github.ref_name }}/${{ github.sha }}
|
||||
|
||||
- name: Upload to https://ci.qmk.fm/${{ inputs.branch || github.ref_name }}/latest
|
||||
uses: jakejarvis/s3-sync-action@master
|
||||
with:
|
||||
args: --acl public-read --follow-symlinks --delete --exclude '*' --include 'index.html' --include 'firmware_list.json' --include '*.hex' --include '*.bin' --include '*.uf2'
|
||||
env:
|
||||
AWS_S3_BUCKET: ${{ vars.CI_QMK_FM_SPACES_BUCKET }}
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.CI_QMK_FM_SPACES_KEY }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_QMK_FM_SPACES_SECRET }}
|
||||
AWS_REGION: ${{ vars.CI_QMK_FM_SPACES_REGION }}
|
||||
AWS_S3_ENDPOINT: ${{ vars.CI_QMK_FM_SPACES_ENDPOINT }}
|
||||
SOURCE_DIR: .
|
||||
DEST_DIR: ${{ inputs.branch || github.ref_name }}/latest
|
||||
|
||||
- name: Check if failure marker file exists
|
||||
id: check_failure_marker
|
||||
uses: andstor/file-existence-action@v3
|
||||
with:
|
||||
files: ./.failed
|
||||
|
||||
- name: Fail build if needed
|
||||
if: steps.check_failure_marker.outputs.files_exists == 'true'
|
||||
run: |
|
||||
# Exit with failure if the compilation stage failed
|
||||
exit 1
|
181
.github/workflows/ci_build_major_branch_keymap.yml
vendored
Normal file
181
.github/workflows/ci_build_major_branch_keymap.yml
vendored
Normal file
@ -0,0 +1,181 @@
|
||||
name: CI Build Major Branch Keymap
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
actions: write
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
branch:
|
||||
type: string
|
||||
required: true
|
||||
keymap:
|
||||
type: string
|
||||
required: true
|
||||
slice_length:
|
||||
type: string
|
||||
required: true
|
||||
|
||||
jobs:
|
||||
generate_targets:
|
||||
name: "Generate targets (${{ inputs.keymap }})"
|
||||
runs-on: ubuntu-latest
|
||||
container: ghcr.io/qmk/qmk_cli
|
||||
|
||||
outputs:
|
||||
targets: ${{ steps.generate_targets.outputs.targets }}
|
||||
|
||||
steps:
|
||||
- name: Install prerequisites
|
||||
run: |
|
||||
apt-get update
|
||||
apt-get install -y jq
|
||||
|
||||
- name: Disable safe.directory check
|
||||
run: |
|
||||
git config --global --add safe.directory '*'
|
||||
|
||||
- name: Checkout QMK Firmware
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Generate build targets
|
||||
id: generate_targets
|
||||
run: |
|
||||
{ # Intentionally use `shuf` here so that we share manufacturers across all build groups -- some have a lot of ARM-based boards which inherently take longer
|
||||
counter=0
|
||||
echo -n '{'
|
||||
qmk find -km ${{ inputs.keymap }} 2>/dev/null | sort | uniq | shuf | xargs -L${{ inputs.slice_length }} | while IFS=$'\n' read target ; do
|
||||
if [ $counter -gt 0 ]; then
|
||||
echo -n ','
|
||||
fi
|
||||
counter=$((counter+1))
|
||||
printf "\"group %02d\":{" $counter
|
||||
echo -n '"targets":"'
|
||||
echo $target | tr ' ' '\n' | sort | uniq | xargs echo -n
|
||||
echo -n '"}'
|
||||
done
|
||||
echo -n '}'
|
||||
} | sed -e 's@\n@@g' > targets.json
|
||||
|
||||
# Output the target keys as a variable
|
||||
echo "targets=$(jq -c 'keys' targets.json)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Upload targets json
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: targets-${{ inputs.keymap }}
|
||||
path: targets.json
|
||||
|
||||
build_targets:
|
||||
name: "Compile ${{ matrix.target }} (${{ inputs.keymap }})"
|
||||
needs: generate_targets
|
||||
runs-on: ubuntu-latest
|
||||
container: ghcr.io/qmk/qmk_cli
|
||||
continue-on-error: true
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
target: ${{ fromJson(needs.generate_targets.outputs.targets) }}
|
||||
|
||||
steps:
|
||||
- name: Install prerequisites
|
||||
run: |
|
||||
apt-get update
|
||||
apt-get install -y jq
|
||||
|
||||
- name: Disable safe.directory check
|
||||
run: |
|
||||
git config --global --add safe.directory '*'
|
||||
|
||||
- name: Checkout QMK Firmware
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Get target definitions
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: targets-${{ inputs.keymap }}
|
||||
path: .
|
||||
|
||||
- name: Deploy submodules
|
||||
run: |
|
||||
qmk git-submodule -f
|
||||
|
||||
- name: Dump targets
|
||||
run: |
|
||||
jq -r '.["${{ matrix.target }}"].targets' targets.json | tr ' ' '\n' | sort
|
||||
|
||||
- name: Build targets
|
||||
continue-on-error: true
|
||||
run: |
|
||||
export NCPUS=$(( $(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null) -1 ))
|
||||
qmk mass-compile -t -j $NCPUS -e DUMP_CI_METADATA=yes $(jq -r '.["${{ matrix.target }}"].targets' targets.json) || touch .failed
|
||||
|
||||
- name: Upload binaries
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: firmware-${{ inputs.keymap }}-${{ matrix.target }}
|
||||
if-no-files-found: ignore
|
||||
path: |
|
||||
*.bin
|
||||
*.hex
|
||||
*.uf2
|
||||
.build/failed.*
|
||||
.failed
|
||||
|
||||
- name: Fail build if any group failed
|
||||
run: |
|
||||
# Exit with failure if the compilation stage failed
|
||||
[ ! -f .failed ] || exit 1
|
||||
|
||||
repack_firmware:
|
||||
if: always()
|
||||
name: "Repack artifacts"
|
||||
needs: build_targets
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout QMK Firmware
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Download firmwares
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
pattern: firmware-${{ inputs.keymap }}-*
|
||||
path: .
|
||||
merge-multiple: true
|
||||
|
||||
- name: Upload all firmwares
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: firmware-${{ inputs.keymap }}
|
||||
if-no-files-found: ignore
|
||||
path: |
|
||||
*.bin
|
||||
*.hex
|
||||
*.uf2
|
||||
.build/failed.*
|
||||
.failed
|
||||
|
||||
- name: Generate output logs
|
||||
run: |
|
||||
# Generate the step summary markdown
|
||||
./util/ci/generate_failure_markdown.sh > $GITHUB_STEP_SUMMARY || true
|
||||
# Truncate to a maximum of 1MB to deal with GitHub workflow limit
|
||||
truncate --size='<960K' $GITHUB_STEP_SUMMARY || true
|
||||
|
||||
- name: Delete temporary build artifacts
|
||||
uses: geekyeggo/delete-artifact@v5
|
||||
with:
|
||||
name: |
|
||||
firmware-${{ inputs.keymap }}-*
|
||||
targets-${{ inputs.keymap }}
|
||||
|
||||
- name: 'CI Discord Notification'
|
||||
if: always() && !cancelled()
|
||||
working-directory: util/ci/
|
||||
env:
|
||||
DISCORD_WEBHOOK: ${{ secrets.CI_DISCORD_WEBHOOK }}
|
||||
run: |
|
||||
python3 -m pip install -r requirements.txt
|
||||
python3 ./discord-results.py --branch ${{ inputs.branch || github.ref_name }} --sha $(git rev-parse HEAD) --keymap ${{ inputs.keymap }} --url ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
74
.github/workflows/ci_builds.yml
vendored
74
.github/workflows/ci_builds.yml
vendored
@ -1,74 +0,0 @@
|
||||
name: CI Builds
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master, develop]
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
branch:
|
||||
type: choice
|
||||
description: 'Branch to build'
|
||||
options: [master, develop]
|
||||
|
||||
concurrency: ci_build-${{ github.event.inputs.branch || github.ref_name }}
|
||||
|
||||
jobs:
|
||||
ci_builds:
|
||||
if: github.repository == 'qmk/qmk_firmware'
|
||||
name: "CI Build"
|
||||
runs-on: self-hosted
|
||||
timeout-minutes: 1380
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
keymap: [default, via]
|
||||
|
||||
container: ghcr.io/qmk/qmk_cli
|
||||
|
||||
steps:
|
||||
- name: Disable safe.directory check
|
||||
run : git config --global --add safe.directory '*'
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
ref: ${{ github.event.inputs.branch || github.ref }}
|
||||
|
||||
- name: Install dependencies
|
||||
run: pip3 install -r requirements.txt
|
||||
|
||||
- name: Run `qmk mass-compile` (keymap ${{ matrix.keymap }})
|
||||
run: |
|
||||
export NCPUS=$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null)
|
||||
qmk mass-compile -t -j $NCPUS -km ${{ matrix.keymap }} -e DUMP_CI_METADATA=yes || touch .failed
|
||||
# Generate the step summary markdown
|
||||
./util/ci/generate_failure_markdown.sh > $GITHUB_STEP_SUMMARY || true
|
||||
# Truncate to a maximum of 1MB to deal with GitHub workflow limit
|
||||
truncate --size='<960K' $GITHUB_STEP_SUMMARY || true
|
||||
# Exit with failure if the compilation stage failed
|
||||
[ ! -f .failed ] || exit 1
|
||||
|
||||
- name: 'Upload artifacts'
|
||||
uses: actions/upload-artifact@v4
|
||||
if: always()
|
||||
with:
|
||||
name: artifacts-${{ github.event.inputs.branch || github.ref_name }}-${{ matrix.keymap }}
|
||||
if-no-files-found: ignore
|
||||
path: |
|
||||
*.bin
|
||||
*.hex
|
||||
*.uf2
|
||||
.build/failed.*
|
||||
|
||||
- name: 'CI Discord Notification'
|
||||
if: always()
|
||||
working-directory: util/ci/
|
||||
env:
|
||||
DISCORD_WEBHOOK: ${{ secrets.CI_DISCORD_WEBHOOK }}
|
||||
run: |
|
||||
python3 -m pip install -r requirements.txt
|
||||
python3 ./discord-results.py --branch ${{ github.event.inputs.branch || github.ref_name }} --keymap ${{ matrix.keymap }} --url ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
41
.github/workflows/docs.yml
vendored
41
.github/workflows/docs.yml
vendored
@ -8,20 +8,27 @@ on:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- 'builddefs/docsgen/**'
|
||||
- 'tmk_core/**'
|
||||
- 'quantum/**'
|
||||
- 'platforms/**'
|
||||
- 'docs/**'
|
||||
- '.github/workflows/docs.yml'
|
||||
pull_request:
|
||||
paths:
|
||||
- 'builddefs/docsgen/**'
|
||||
- 'docs/**'
|
||||
- '.github/workflows/docs.yml'
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
|
||||
jobs:
|
||||
generate:
|
||||
runs-on: ubuntu-latest
|
||||
container: ghcr.io/qmk/qmk_cli
|
||||
|
||||
# protect against those who develop with their fork on master
|
||||
if: github.repository == 'qmk/qmk_firmware'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
@ -29,18 +36,30 @@ jobs:
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
apt-get update && apt-get install -y rsync nodejs npm doxygen
|
||||
npm install -g moxygen
|
||||
apt-get update && apt-get install -y rsync doxygen
|
||||
# install nvm
|
||||
touch $HOME/.bashrc
|
||||
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
|
||||
|
||||
- name: Install node
|
||||
run: |
|
||||
source $HOME/.bashrc
|
||||
nvm install 20
|
||||
nvm use 20
|
||||
corepack enable
|
||||
|
||||
- name: Build docs
|
||||
run: |
|
||||
source $HOME/.bashrc
|
||||
nvm use 20
|
||||
qmk --verbose generate-docs
|
||||
|
||||
- name: Deploy
|
||||
uses: JamesIves/github-pages-deploy-action@v4.5.0
|
||||
if: ${{ github.event_name == 'push' && github.repository == 'qmk/qmk_firmware' }}
|
||||
uses: JamesIves/github-pages-deploy-action@v4.6.3
|
||||
with:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
BASE_BRANCH: master
|
||||
BRANCH: gh-pages
|
||||
FOLDER: .build/docs
|
||||
GIT_CONFIG_EMAIL: hello@qmk.fm
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
branch: gh-pages
|
||||
folder: .build/docs
|
||||
git-config-name: QMK Bot
|
||||
git-config-email: hello@qmk.fm
|
||||
|
2
.github/workflows/format.yml
vendored
2
.github/workflows/format.yml
vendored
@ -35,7 +35,7 @@ jobs:
|
||||
|
||||
- name: Get changed files
|
||||
id: file_changes
|
||||
uses: tj-actions/changed-files@v43
|
||||
uses: tj-actions/changed-files@v44
|
||||
with:
|
||||
use_rest_api: true
|
||||
|
||||
|
15
.github/workflows/labeler.yml
vendored
15
.github/workflows/labeler.yml
vendored
@ -1,18 +1,13 @@
|
||||
name: "Pull Request Labeler"
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [opened, synchronize, reopened, ready_for_review, locked]
|
||||
- pull_request_target
|
||||
|
||||
jobs:
|
||||
triage:
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/labeler@v4
|
||||
with:
|
||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
configuration-path: '.github/labeler.yml'
|
||||
- uses: actions/labeler@v5
|
||||
|
2
.github/workflows/lint.yml
vendored
2
.github/workflows/lint.yml
vendored
@ -27,7 +27,7 @@ jobs:
|
||||
|
||||
- name: Get changed files
|
||||
id: file_changes
|
||||
uses: tj-actions/changed-files@v43
|
||||
uses: tj-actions/changed-files@v44
|
||||
with:
|
||||
use_rest_api: true
|
||||
|
||||
|
2
.github/workflows/unit_test.yml
vendored
2
.github/workflows/unit_test.yml
vendored
@ -32,4 +32,4 @@ jobs:
|
||||
- name: Install dependencies
|
||||
run: pip3 install -r requirements-dev.txt
|
||||
- name: Run tests
|
||||
run: make test:all
|
||||
run: qmk test-c
|
||||
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -25,6 +25,8 @@
|
||||
*.la
|
||||
*.stackdump
|
||||
*.sym
|
||||
index.html
|
||||
firmware_list.json
|
||||
|
||||
# QMK-specific
|
||||
api_data/v1
|
||||
@ -37,6 +39,7 @@ quantum/version.h
|
||||
|
||||
# DD config at wrong location
|
||||
/keyboards/**/keymaps/*/info.json
|
||||
/keyboards/**/keymaps/*/keyboard.json
|
||||
|
||||
# Old-style QMK Makefiles
|
||||
/keyboards/**/Makefile
|
||||
|
70
Doxyfile
70
Doxyfile
@ -21,7 +21,7 @@ DOXYFILE_ENCODING = UTF-8
|
||||
PROJECT_NAME = "QMK Firmware"
|
||||
PROJECT_NUMBER = https://github.com/qmk/qmk_firmware
|
||||
PROJECT_BRIEF = "Keyboard controller firmware for Atmel AVR and ARM USB families"
|
||||
OUTPUT_DIRECTORY = .build/doxygen
|
||||
OUTPUT_DIRECTORY = .build/docs/static/doxygen
|
||||
ALLOW_UNICODE_NAMES = NO
|
||||
OUTPUT_LANGUAGE = English
|
||||
BRIEF_MEMBER_DESC = YES
|
||||
@ -40,8 +40,8 @@ ABBREVIATE_BRIEF = "The $name class" \
|
||||
ALWAYS_DETAILED_SEC = NO
|
||||
INLINE_INHERITED_MEMB = NO
|
||||
FULL_PATH_NAMES = YES
|
||||
STRIP_FROM_PATH =
|
||||
STRIP_FROM_INC_PATH =
|
||||
STRIP_FROM_PATH =
|
||||
STRIP_FROM_INC_PATH =
|
||||
SHORT_NAMES = NO
|
||||
JAVADOC_AUTOBRIEF = NO
|
||||
QT_AUTOBRIEF = NO
|
||||
@ -49,13 +49,13 @@ MULTILINE_CPP_IS_BRIEF = NO
|
||||
INHERIT_DOCS = YES
|
||||
SEPARATE_MEMBER_PAGES = NO
|
||||
TAB_SIZE = 4
|
||||
ALIASES =
|
||||
TCL_SUBST =
|
||||
ALIASES =
|
||||
TCL_SUBST =
|
||||
OPTIMIZE_OUTPUT_FOR_C = YES
|
||||
OPTIMIZE_OUTPUT_JAVA = NO
|
||||
OPTIMIZE_FOR_FORTRAN = NO
|
||||
OPTIMIZE_OUTPUT_VHDL = NO
|
||||
EXTENSION_MAPPING =
|
||||
EXTENSION_MAPPING =
|
||||
MARKDOWN_SUPPORT = YES
|
||||
TOC_INCLUDE_HEADINGS = 2
|
||||
AUTOLINK_SUPPORT = YES
|
||||
@ -104,14 +104,14 @@ GENERATE_TODOLIST = YES
|
||||
GENERATE_TESTLIST = YES
|
||||
GENERATE_BUGLIST = YES
|
||||
GENERATE_DEPRECATEDLIST= YES
|
||||
ENABLED_SECTIONS =
|
||||
ENABLED_SECTIONS =
|
||||
MAX_INITIALIZER_LINES = 30
|
||||
SHOW_USED_FILES = YES
|
||||
SHOW_FILES = YES
|
||||
SHOW_NAMESPACES = YES
|
||||
FILE_VERSION_FILTER =
|
||||
LAYOUT_FILE =
|
||||
CITE_BIB_FILES =
|
||||
FILE_VERSION_FILTER =
|
||||
LAYOUT_FILE =
|
||||
CITE_BIB_FILES =
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to warning and progress messages
|
||||
@ -124,7 +124,7 @@ WARN_IF_DOC_ERROR = YES
|
||||
WARN_NO_PARAMDOC = NO
|
||||
WARN_AS_ERROR = NO
|
||||
WARN_FORMAT = "$file:$line: $text"
|
||||
WARN_LOGFILE =
|
||||
WARN_LOGFILE =
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the input files
|
||||
@ -143,19 +143,19 @@ FILE_PATTERNS = *.c \
|
||||
*.hpp \
|
||||
*.h++
|
||||
RECURSIVE = YES
|
||||
EXCLUDE =
|
||||
EXCLUDE =
|
||||
EXCLUDE_SYMLINKS = NO
|
||||
EXCLUDE_PATTERNS = */protocol/arm_atsam/*
|
||||
EXCLUDE_SYMBOLS =
|
||||
EXAMPLE_PATH =
|
||||
EXCLUDE_SYMBOLS =
|
||||
EXAMPLE_PATH =
|
||||
EXAMPLE_PATTERNS = *
|
||||
EXAMPLE_RECURSIVE = NO
|
||||
IMAGE_PATH =
|
||||
INPUT_FILTER =
|
||||
FILTER_PATTERNS =
|
||||
IMAGE_PATH =
|
||||
INPUT_FILTER =
|
||||
FILTER_PATTERNS =
|
||||
FILTER_SOURCE_FILES = NO
|
||||
FILTER_SOURCE_PATTERNS =
|
||||
USE_MDFILE_AS_MAINPAGE =
|
||||
FILTER_SOURCE_PATTERNS =
|
||||
USE_MDFILE_AS_MAINPAGE =
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to source browsing
|
||||
@ -177,7 +177,7 @@ VERBATIM_HEADERS = YES
|
||||
|
||||
ALPHABETICAL_INDEX = YES
|
||||
COLS_IN_ALPHA_INDEX = 5
|
||||
IGNORE_PREFIX =
|
||||
IGNORE_PREFIX =
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to disabled outputs
|
||||
@ -207,18 +207,18 @@ ENABLE_PREPROCESSING = YES
|
||||
MACRO_EXPANSION = NO
|
||||
EXPAND_ONLY_PREDEF = NO
|
||||
SEARCH_INCLUDES = YES
|
||||
INCLUDE_PATH =
|
||||
INCLUDE_FILE_PATTERNS =
|
||||
INCLUDE_PATH =
|
||||
INCLUDE_FILE_PATTERNS =
|
||||
PREDEFINED = __DOXYGEN__ PROGMEM
|
||||
EXPAND_AS_DEFINED =
|
||||
EXPAND_AS_DEFINED =
|
||||
SKIP_FUNCTION_MACROS = YES
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
TAGFILES =
|
||||
GENERATE_TAGFILE =
|
||||
TAGFILES =
|
||||
GENERATE_TAGFILE =
|
||||
ALLEXTERNALS = NO
|
||||
EXTERNAL_GROUPS = YES
|
||||
EXTERNAL_PAGES = YES
|
||||
@ -229,14 +229,14 @@ PERL_PATH = /usr/bin/perl
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
CLASS_DIAGRAMS = YES
|
||||
MSCGEN_PATH =
|
||||
DIA_PATH =
|
||||
MSCGEN_PATH =
|
||||
DIA_PATH =
|
||||
HIDE_UNDOC_RELATIONS = YES
|
||||
HAVE_DOT = NO
|
||||
DOT_NUM_THREADS = 0
|
||||
DOT_FONTNAME = Helvetica
|
||||
DOT_FONTSIZE = 10
|
||||
DOT_FONTPATH =
|
||||
DOT_FONTPATH =
|
||||
CLASS_GRAPH = YES
|
||||
COLLABORATION_GRAPH = YES
|
||||
GROUP_GRAPHS = YES
|
||||
@ -251,13 +251,13 @@ GRAPHICAL_HIERARCHY = YES
|
||||
DIRECTORY_GRAPH = YES
|
||||
DOT_IMAGE_FORMAT = png
|
||||
INTERACTIVE_SVG = NO
|
||||
DOT_PATH =
|
||||
DOTFILE_DIRS =
|
||||
MSCFILE_DIRS =
|
||||
DIAFILE_DIRS =
|
||||
PLANTUML_JAR_PATH =
|
||||
PLANTUML_CFG_FILE =
|
||||
PLANTUML_INCLUDE_PATH =
|
||||
DOT_PATH =
|
||||
DOTFILE_DIRS =
|
||||
MSCFILE_DIRS =
|
||||
DIAFILE_DIRS =
|
||||
PLANTUML_JAR_PATH =
|
||||
PLANTUML_CFG_FILE =
|
||||
PLANTUML_INCLUDE_PATH =
|
||||
DOT_GRAPH_MAX_NODES = 50
|
||||
MAX_DOT_GRAPH_DEPTH = 0
|
||||
DOT_TRANSPARENT = NO
|
||||
|
15
Makefile
15
Makefile
@ -465,3 +465,18 @@ distclean_userspace: clean
|
||||
rm -f $(QMK_USERSPACE)/*.bin $(QMK_USERSPACE)/*.hex $(QMK_USERSPACE)/*.uf2
|
||||
echo 'done.'
|
||||
endif
|
||||
|
||||
# Extra targets for formatting and/or pytest, running within the qmk/qmk_cli container to match GHA.
|
||||
CONTAINER_PREAMBLE := export HOME="/tmp"; export PATH="/tmp/.local/bin:\$$PATH"; python3 -m pip install --upgrade pip; python3 -m pip install -r requirements-dev.txt
|
||||
|
||||
.PHONY: format-core
|
||||
format-core:
|
||||
RUNTIME=docker ./util/docker_cmd.sh bash -lic "$(CONTAINER_PREAMBLE); qmk format-c --core-only -a && qmk format-python -a"
|
||||
|
||||
.PHONY: pytest
|
||||
pytest:
|
||||
RUNTIME=docker ./util/docker_cmd.sh bash -lic "$(CONTAINER_PREAMBLE); qmk pytest"
|
||||
|
||||
.PHONY: format-and-pytest
|
||||
format-and-pytest:
|
||||
RUNTIME=docker ./util/docker_cmd.sh bash -lic "$(CONTAINER_PREAMBLE); qmk format-c --core-only -a && qmk format-python -a && qmk pytest"
|
||||
|
@ -119,7 +119,7 @@ MAIN_KEYMAP_PATH_3 := $(KEYBOARD_PATH_3)/keymaps/$(KEYMAP)
|
||||
MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP)
|
||||
MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP)
|
||||
|
||||
# Pull in rules from info.json
|
||||
# Pull in rules from DD keyboard config
|
||||
INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --keyboard $(KEYBOARD) --output $(INTERMEDIATE_OUTPUT)/src/info_rules.mk)
|
||||
include $(INFO_RULES_MK)
|
||||
|
||||
@ -221,7 +221,7 @@ include $(BUILDDEFS_PATH)/converters.mk
|
||||
MCU_ORIG := $(MCU)
|
||||
include $(wildcard $(PLATFORM_PATH)/*/mcu_selection.mk)
|
||||
|
||||
# PLATFORM_KEY should be detected in info.json via key 'processor' (or rules.mk 'MCU')
|
||||
# PLATFORM_KEY should be detected in DD keyboard config via key 'processor' (or rules.mk 'MCU')
|
||||
ifeq ($(PLATFORM_KEY),)
|
||||
$(call CATASTROPHIC_ERROR,Platform not defined)
|
||||
endif
|
||||
@ -335,38 +335,54 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_5)/post_config.h)","")
|
||||
POST_CONFIG_H += $(KEYBOARD_PATH_5)/post_config.h
|
||||
endif
|
||||
|
||||
# Pull in stuff from info.json
|
||||
INFO_JSON_FILES :=
|
||||
# Create dependencies on DD keyboard config - structure validated elsewhere
|
||||
DD_CONFIG_FILES :=
|
||||
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/info.json)","")
|
||||
INFO_JSON_FILES += $(KEYBOARD_PATH_1)/info.json
|
||||
DD_CONFIG_FILES += $(KEYBOARD_PATH_1)/info.json
|
||||
endif
|
||||
ifneq ("$(wildcard $(KEYBOARD_PATH_2)/info.json)","")
|
||||
INFO_JSON_FILES += $(KEYBOARD_PATH_2)/info.json
|
||||
DD_CONFIG_FILES += $(KEYBOARD_PATH_2)/info.json
|
||||
endif
|
||||
ifneq ("$(wildcard $(KEYBOARD_PATH_3)/info.json)","")
|
||||
INFO_JSON_FILES += $(KEYBOARD_PATH_3)/info.json
|
||||
DD_CONFIG_FILES += $(KEYBOARD_PATH_3)/info.json
|
||||
endif
|
||||
ifneq ("$(wildcard $(KEYBOARD_PATH_4)/info.json)","")
|
||||
INFO_JSON_FILES += $(KEYBOARD_PATH_4)/info.json
|
||||
DD_CONFIG_FILES += $(KEYBOARD_PATH_4)/info.json
|
||||
endif
|
||||
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/info.json)","")
|
||||
INFO_JSON_FILES += $(KEYBOARD_PATH_5)/info.json
|
||||
DD_CONFIG_FILES += $(KEYBOARD_PATH_5)/info.json
|
||||
endif
|
||||
|
||||
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/keyboard.json)","")
|
||||
DD_CONFIG_FILES += $(KEYBOARD_PATH_1)/keyboard.json
|
||||
endif
|
||||
ifneq ("$(wildcard $(KEYBOARD_PATH_2)/keyboard.json)","")
|
||||
DD_CONFIG_FILES += $(KEYBOARD_PATH_2)/keyboard.json
|
||||
endif
|
||||
ifneq ("$(wildcard $(KEYBOARD_PATH_3)/keyboard.json)","")
|
||||
DD_CONFIG_FILES += $(KEYBOARD_PATH_3)/keyboard.json
|
||||
endif
|
||||
ifneq ("$(wildcard $(KEYBOARD_PATH_4)/keyboard.json)","")
|
||||
DD_CONFIG_FILES += $(KEYBOARD_PATH_4)/keyboard.json
|
||||
endif
|
||||
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/keyboard.json)","")
|
||||
DD_CONFIG_FILES += $(KEYBOARD_PATH_5)/keyboard.json
|
||||
endif
|
||||
|
||||
CONFIG_H += $(INTERMEDIATE_OUTPUT)/src/info_config.h
|
||||
KEYBOARD_SRC += $(INTERMEDIATE_OUTPUT)/src/default_keyboard.c
|
||||
|
||||
$(INTERMEDIATE_OUTPUT)/src/info_config.h: $(INFO_JSON_FILES)
|
||||
$(INTERMEDIATE_OUTPUT)/src/info_config.h: $(DD_CONFIG_FILES)
|
||||
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
|
||||
$(eval CMD=$(QMK_BIN) generate-config-h --quiet --keyboard $(KEYBOARD) --output $(INTERMEDIATE_OUTPUT)/src/info_config.h)
|
||||
@$(BUILD_CMD)
|
||||
|
||||
$(INTERMEDIATE_OUTPUT)/src/default_keyboard.c: $(INFO_JSON_FILES)
|
||||
$(INTERMEDIATE_OUTPUT)/src/default_keyboard.c: $(DD_CONFIG_FILES)
|
||||
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
|
||||
$(eval CMD=$(QMK_BIN) generate-keyboard-c --quiet --keyboard $(KEYBOARD) --output $(INTERMEDIATE_OUTPUT)/src/default_keyboard.c)
|
||||
@$(BUILD_CMD)
|
||||
|
||||
$(INTERMEDIATE_OUTPUT)/src/default_keyboard.h: $(INFO_JSON_FILES)
|
||||
$(INTERMEDIATE_OUTPUT)/src/default_keyboard.h: $(DD_CONFIG_FILES)
|
||||
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
|
||||
$(eval CMD=$(QMK_BIN) generate-keyboard-h --quiet --keyboard $(KEYBOARD) --include $(FOUND_KEYBOARD_H) --output $(INTERMEDIATE_OUTPUT)/src/default_keyboard.h)
|
||||
@$(BUILD_CMD)
|
||||
@ -505,22 +521,14 @@ ifeq ($(strip $(KEEP_INTERMEDIATES)), yes)
|
||||
OPT_DEFS += -save-temps=obj
|
||||
endif
|
||||
|
||||
# TODO: remove this bodge?
|
||||
PROJECT_DEFS := $(OPT_DEFS)
|
||||
PROJECT_INC := $(VPATH) $(EXTRAINCDIRS) $(KEYBOARD_PATHS)
|
||||
PROJECT_CONFIG := $(CONFIG_H)
|
||||
|
||||
CONFIG_H += $(POST_CONFIG_H)
|
||||
ALL_CONFIGS := $(PROJECT_CONFIG) $(CONFIG_H)
|
||||
|
||||
OUTPUTS := $(INTERMEDIATE_OUTPUT)
|
||||
$(INTERMEDIATE_OUTPUT)_SRC := $(SRC) $(PLATFORM_SRC)
|
||||
$(INTERMEDIATE_OUTPUT)_DEFS := $(OPT_DEFS) \
|
||||
$(INTERMEDIATE_OUTPUT)_DEFS := \
|
||||
-DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYBOARD_H=\"$(INTERMEDIATE_OUTPUT)/src/default_keyboard.h\" \
|
||||
-DQMK_KEYMAP=\"$(KEYMAP)\" -DQMK_KEYMAP_H=\"$(KEYMAP).h\" -DQMK_KEYMAP_CONFIG_H=\"$(KEYMAP_PATH)/config.h\" \
|
||||
$(PROJECT_DEFS)
|
||||
$(INTERMEDIATE_OUTPUT)_INC := $(VPATH) $(EXTRAINCDIRS) $(PROJECT_INC)
|
||||
$(INTERMEDIATE_OUTPUT)_CONFIG := $(CONFIG_H) $(PROJECT_CONFIG)
|
||||
$(OPT_DEFS)
|
||||
$(INTERMEDIATE_OUTPUT)_INC := $(VPATH) $(EXTRAINCDIRS) $(KEYBOARD_PATHS)
|
||||
$(INTERMEDIATE_OUTPUT)_CONFIG := $(CONFIG_H) $(POST_CONFIG_H)
|
||||
|
||||
# Default target.
|
||||
all: build check-size
|
||||
|
@ -340,7 +340,7 @@ LED_MATRIX_DRIVER := snled27351
|
||||
endif
|
||||
|
||||
LED_MATRIX_ENABLE ?= no
|
||||
VALID_LED_MATRIX_TYPES := is31fl3218 is31fl3729 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a snled27351 custom
|
||||
VALID_LED_MATRIX_TYPES := is31fl3218 is31fl3236 is31fl3729 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a snled27351 custom
|
||||
|
||||
ifeq ($(strip $(LED_MATRIX_ENABLE)), yes)
|
||||
ifeq ($(filter $(LED_MATRIX_DRIVER),$(VALID_LED_MATRIX_TYPES)),)
|
||||
@ -353,7 +353,7 @@ ifeq ($(strip $(LED_MATRIX_ENABLE)), yes)
|
||||
COMMON_VPATH += $(QUANTUM_DIR)/led_matrix/animations
|
||||
COMMON_VPATH += $(QUANTUM_DIR)/led_matrix/animations/runners
|
||||
POST_CONFIG_H += $(QUANTUM_DIR)/led_matrix/post_config.h
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_backlight.c
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_led_matrix.c
|
||||
SRC += $(QUANTUM_DIR)/led_matrix/led_matrix.c
|
||||
SRC += $(QUANTUM_DIR)/led_matrix/led_matrix_drivers.c
|
||||
LIB8TION_ENABLE := yes
|
||||
@ -365,6 +365,12 @@ ifeq ($(strip $(LED_MATRIX_ENABLE)), yes)
|
||||
SRC += is31fl3218-mono.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3236)
|
||||
I2C_DRIVER_REQUIRED = yes
|
||||
COMMON_VPATH += $(DRIVER_PATH)/led/issi
|
||||
SRC += is31fl3236-mono.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3729)
|
||||
I2C_DRIVER_REQUIRED = yes
|
||||
COMMON_VPATH += $(DRIVER_PATH)/led/issi
|
||||
@ -443,7 +449,7 @@ endif
|
||||
|
||||
RGB_MATRIX_ENABLE ?= no
|
||||
|
||||
VALID_RGB_MATRIX_TYPES := aw20216s is31fl3218 is31fl3729 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a snled27351 ws2812 custom
|
||||
VALID_RGB_MATRIX_TYPES := aw20216s is31fl3218 is31fl3236 is31fl3729 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a snled27351 ws2812 custom
|
||||
ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
|
||||
ifeq ($(filter $(RGB_MATRIX_DRIVER),$(VALID_RGB_MATRIX_TYPES)),)
|
||||
$(call CATASTROPHIC_ERROR,Invalid RGB_MATRIX_DRIVER,RGB_MATRIX_DRIVER="$(RGB_MATRIX_DRIVER)" is not a valid matrix type)
|
||||
@ -474,6 +480,12 @@ ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
|
||||
SRC += is31fl3218.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3236)
|
||||
I2C_DRIVER_REQUIRED = yes
|
||||
COMMON_VPATH += $(DRIVER_PATH)/led/issi
|
||||
SRC += is31fl3236.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3729)
|
||||
I2C_DRIVER_REQUIRED = yes
|
||||
COMMON_VPATH += $(DRIVER_PATH)/led/issi
|
||||
|
5
builddefs/docsgen/.gitignore
vendored
Normal file
5
builddefs/docsgen/.gitignore
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
node_modules
|
||||
.vitepress/cache
|
||||
.vitepress/.temp
|
||||
.vitepress/dist
|
||||
docs
|
51
builddefs/docsgen/.vitepress/config.mts
Normal file
51
builddefs/docsgen/.vitepress/config.mts
Normal file
@ -0,0 +1,51 @@
|
||||
import { defineConfig } from "vitepress";
|
||||
import { tabsMarkdownPlugin } from "vitepress-plugin-tabs";
|
||||
import sidebar from "../../../docs/_sidebar.json";
|
||||
|
||||
// https://vitepress.dev/reference/site-config
|
||||
export default defineConfig(({ mode }) => {
|
||||
const prod = mode === "production";
|
||||
return {
|
||||
title: "QMK Firmware",
|
||||
description: "Documentation for QMK Firmware",
|
||||
|
||||
srcDir: prod ? "docs" : "../../docs",
|
||||
outDir: "../../.build/docs",
|
||||
cleanUrls: true,
|
||||
|
||||
markdown: {
|
||||
config(md) {
|
||||
md.use(tabsMarkdownPlugin);
|
||||
},
|
||||
},
|
||||
|
||||
vite: {
|
||||
resolve: {
|
||||
preserveSymlinks: true,
|
||||
},
|
||||
},
|
||||
|
||||
themeConfig: {
|
||||
// https://vitepress.dev/reference/default-theme-config
|
||||
logo: {
|
||||
light: "/qmk-logo-light.svg",
|
||||
dark: "/qmk-logo-dark.svg",
|
||||
},
|
||||
title: 'QMK Firmware',
|
||||
|
||||
nav: [{ text: "Home", link: "/" }],
|
||||
|
||||
search: {
|
||||
provider: "local",
|
||||
},
|
||||
|
||||
sidebar: sidebar,
|
||||
|
||||
socialLinks: [
|
||||
{ icon: { svg: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="50px" height="50px"><path d="M 29 3 C 28.0625 3 27.164063 3.382813 26.5 4 C 25.835938 4.617188 25.363281 5.433594 25 6.40625 C 24.355469 8.140625 24.085938 10.394531 24.03125 13.03125 C 19.234375 13.179688 14.820313 14.421875 11.28125 16.46875 C 10.214844 15.46875 8.855469 14.96875 7.5 14.96875 C 6.089844 14.96875 4.675781 15.511719 3.59375 16.59375 C 1.425781 18.761719 1.425781 22.238281 3.59375 24.40625 L 3.84375 24.65625 C 3.3125 26.035156 3 27.488281 3 29 C 3 33.527344 5.566406 37.585938 9.5625 40.4375 C 13.558594 43.289063 19.007813 45 25 45 C 30.992188 45 36.441406 43.289063 40.4375 40.4375 C 44.433594 37.585938 47 33.527344 47 29 C 47 27.488281 46.6875 26.035156 46.15625 24.65625 L 46.40625 24.40625 C 48.574219 22.238281 48.574219 18.761719 46.40625 16.59375 C 45.324219 15.511719 43.910156 14.96875 42.5 14.96875 C 41.144531 14.96875 39.785156 15.46875 38.71875 16.46875 C 35.195313 14.433594 30.800781 13.191406 26.03125 13.03125 C 26.09375 10.546875 26.363281 8.46875 26.875 7.09375 C 27.164063 6.316406 27.527344 5.757813 27.875 5.4375 C 28.222656 5.117188 28.539063 5 29 5 C 29.460938 5 29.683594 5.125 30.03125 5.40625 C 30.378906 5.6875 30.785156 6.148438 31.3125 6.6875 C 32.253906 7.652344 33.695313 8.714844 36.09375 8.9375 C 36.539063 11.238281 38.574219 13 41 13 C 43.75 13 46 10.75 46 8 C 46 5.25 43.75 3 41 3 C 38.605469 3 36.574219 4.710938 36.09375 6.96875 C 34.3125 6.796875 33.527344 6.109375 32.75 5.3125 C 32.300781 4.851563 31.886719 4.3125 31.3125 3.84375 C 30.738281 3.375 29.9375 3 29 3 Z M 41 5 C 42.667969 5 44 6.332031 44 8 C 44 9.667969 42.667969 11 41 11 C 39.332031 11 38 9.667969 38 8 C 38 6.332031 39.332031 5 41 5 Z M 25 15 C 30.609375 15 35.675781 16.613281 39.28125 19.1875 C 42.886719 21.761719 45 25.226563 45 29 C 45 32.773438 42.886719 36.238281 39.28125 38.8125 C 35.675781 41.386719 30.609375 43 25 43 C 19.390625 43 14.324219 41.386719 10.71875 38.8125 C 7.113281 36.238281 5 32.773438 5 29 C 5 25.226563 7.113281 21.761719 10.71875 19.1875 C 14.324219 16.613281 19.390625 15 25 15 Z M 7.5 16.9375 C 8.203125 16.9375 8.914063 17.148438 9.53125 17.59375 C 7.527344 19.03125 5.886719 20.769531 4.75 22.71875 C 3.582031 21.296875 3.660156 19.339844 5 18 C 5.714844 17.285156 6.609375 16.9375 7.5 16.9375 Z M 42.5 16.9375 C 43.390625 16.9375 44.285156 17.285156 45 18 C 46.339844 19.339844 46.417969 21.296875 45.25 22.71875 C 44.113281 20.769531 42.472656 19.03125 40.46875 17.59375 C 41.085938 17.148438 41.796875 16.9375 42.5 16.9375 Z M 17 22 C 14.800781 22 13 23.800781 13 26 C 13 28.199219 14.800781 30 17 30 C 19.199219 30 21 28.199219 21 26 C 21 23.800781 19.199219 22 17 22 Z M 33 22 C 30.800781 22 29 23.800781 29 26 C 29 28.199219 30.800781 30 33 30 C 35.199219 30 37 28.199219 37 26 C 37 23.800781 35.199219 22 33 22 Z M 17 24 C 18.117188 24 19 24.882813 19 26 C 19 27.117188 18.117188 28 17 28 C 15.882813 28 15 27.117188 15 26 C 15 24.882813 15.882813 24 17 24 Z M 33 24 C 34.117188 24 35 24.882813 35 26 C 35 27.117188 34.117188 28 33 28 C 31.882813 28 31 27.117188 31 26 C 31 24.882813 31.882813 24 33 24 Z M 34.15625 33.84375 C 34.101563 33.851563 34.050781 33.859375 34 33.875 C 33.683594 33.9375 33.417969 34.144531 33.28125 34.4375 C 33.28125 34.4375 32.757813 35.164063 31.4375 36 C 30.117188 36.835938 28.058594 37.6875 25 37.6875 C 21.941406 37.6875 19.882813 36.835938 18.5625 36 C 17.242188 35.164063 16.71875 34.4375 16.71875 34.4375 C 16.492188 34.082031 16.066406 33.90625 15.65625 34 C 15.332031 34.082031 15.070313 34.316406 14.957031 34.632813 C 14.84375 34.945313 14.894531 35.292969 15.09375 35.5625 C 15.09375 35.5625 15.863281 36.671875 17.46875 37.6875 C 19.074219 38.703125 21.558594 39.6875 25 39.6875 C 28.441406 39.6875 30.925781 38.703125 32.53125 37.6875 C 34.136719 36.671875 34.90625 35.5625 34.90625 35.5625 C 35.207031 35.273438 35.296875 34.824219 35.128906 34.441406 C 34.960938 34.058594 34.574219 33.820313 34.15625 33.84375 Z"/></svg>' }, link: "https://reddit.com/r/olkb" },
|
||||
{ icon: "discord", link: "https://discord.gg/qmk" },
|
||||
{ icon: "github", link: "https://github.com/qmk/qmk_firmware" },
|
||||
],
|
||||
}
|
||||
};
|
||||
});
|
29
builddefs/docsgen/.vitepress/theme/QMKLayout.vue
Normal file
29
builddefs/docsgen/.vitepress/theme/QMKLayout.vue
Normal file
@ -0,0 +1,29 @@
|
||||
<script setup>
|
||||
import DefaultTheme from 'vitepress/theme'
|
||||
import { useRouter } from 'vitepress'
|
||||
import { onBeforeMount } from 'vue';
|
||||
import aliases from "../../../../docs/_aliases.json";
|
||||
|
||||
const router = useRouter()
|
||||
onBeforeMount(async () => {
|
||||
// Convert from docsify-style to vitepress-style URLs
|
||||
let newUrl = window.location.href.replace(/\/#\//, '/').replace(/\?id=/, '#');
|
||||
|
||||
// Convert any aliases
|
||||
let testUrl = new URL(newUrl);
|
||||
while (testUrl.pathname in aliases) {
|
||||
testUrl.pathname = aliases[testUrl.pathname];
|
||||
}
|
||||
newUrl = testUrl.toString();
|
||||
|
||||
// Redirect if required
|
||||
if (newUrl != window.location.href) {
|
||||
window.history.replaceState({}, '', newUrl);
|
||||
await router.go(newUrl);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<DefaultTheme.Layout/>
|
||||
</template>
|
19
builddefs/docsgen/.vitepress/theme/custom.css
Normal file
19
builddefs/docsgen/.vitepress/theme/custom.css
Normal file
@ -0,0 +1,19 @@
|
||||
/* Override <kbd> as vitepress doesn't put them with borders */
|
||||
kbd {
|
||||
border: 1px solid var(--vp-c-text-1);
|
||||
border-radius: 5px;
|
||||
margin: 0.2em;
|
||||
padding: 0.2em;
|
||||
}
|
||||
|
||||
:root {
|
||||
--vp-nav-logo-height: 32px;
|
||||
|
||||
--vp-layout-max-width: calc(98% + 64px);
|
||||
|
||||
--vp-sidebar-width: 300px;
|
||||
}
|
||||
|
||||
.VPDoc.has-aside .content-container {
|
||||
max-width: unset !important;
|
||||
}
|
13
builddefs/docsgen/.vitepress/theme/index.ts
Normal file
13
builddefs/docsgen/.vitepress/theme/index.ts
Normal file
@ -0,0 +1,13 @@
|
||||
import type { Theme } from 'vitepress'
|
||||
import DefaultTheme from 'vitepress/theme'
|
||||
import { enhanceAppWithTabs } from 'vitepress-plugin-tabs/client'
|
||||
import QMKLayout from './QMKLayout.vue'
|
||||
import './custom.css'
|
||||
|
||||
export default {
|
||||
extends: DefaultTheme,
|
||||
Layout: QMKLayout,
|
||||
enhanceApp({ app }) {
|
||||
enhanceAppWithTabs(app)
|
||||
}
|
||||
} satisfies Theme
|
6
builddefs/docsgen/build-docs.sh
Executable file
6
builddefs/docsgen/build-docs.sh
Executable file
@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
cd "$(dirname "$(realpath "${BASH_SOURCE[0]}")")"
|
||||
yarn install
|
||||
[[ -e docs ]] || ln -sf ../../docs docs
|
||||
DEBUG='vitepress:*,vite:*' yarn run docs:build
|
14
builddefs/docsgen/package.json
Normal file
14
builddefs/docsgen/package.json
Normal file
@ -0,0 +1,14 @@
|
||||
{
|
||||
"license": "GPL-2.0-or-later",
|
||||
"devDependencies": {
|
||||
"vite": "^5.2.10",
|
||||
"vitepress": "^1.1.0",
|
||||
"vitepress-plugin-tabs": "^0.5.0",
|
||||
"vue": "^3.4.24"
|
||||
},
|
||||
"scripts": {
|
||||
"docs:dev": "vitepress dev --host 0.0.0.0",
|
||||
"docs:build": "vitepress build",
|
||||
"docs:preview": "vitepress preview --host 0.0.0.0"
|
||||
}
|
||||
}
|
5
builddefs/docsgen/start-docs.sh
Executable file
5
builddefs/docsgen/start-docs.sh
Executable file
@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
cd "$(dirname "$(realpath "${BASH_SOURCE[0]}")")"
|
||||
yarn install
|
||||
DEBUG='vitepress:*,vite:*' yarn run docs:dev
|
797
builddefs/docsgen/yarn.lock
Normal file
797
builddefs/docsgen/yarn.lock
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -335,5 +335,9 @@
|
||||
"key": "ES_CIRC",
|
||||
"label": "^",
|
||||
}
|
||||
"ALGR(KC_NUHS)": {
|
||||
"key": "ES_GRV",
|
||||
"label": "`",
|
||||
}
|
||||
}
|
||||
}
|
239
data/constants/keycodes/keycodes_0.0.4_lighting.hjson
Normal file
239
data/constants/keycodes/keycodes_0.0.4_lighting.hjson
Normal file
@ -0,0 +1,239 @@
|
||||
{
|
||||
"keycodes": {
|
||||
"0x7810": {
|
||||
"group": "led_matrix",
|
||||
"key": "QK_LED_MATRIX_ON",
|
||||
"aliases": [
|
||||
"LM_ON"
|
||||
]
|
||||
},
|
||||
"0x7811": {
|
||||
"group": "led_matrix",
|
||||
"key": "QK_LED_MATRIX_OFF",
|
||||
"aliases": [
|
||||
"LM_OFF"
|
||||
]
|
||||
},
|
||||
"0x7812": {
|
||||
"group": "led_matrix",
|
||||
"key": "QK_LED_MATRIX_TOGGLE",
|
||||
"aliases": [
|
||||
"LM_TOGG"
|
||||
]
|
||||
},
|
||||
"0x7813": {
|
||||
"group": "led_matrix",
|
||||
"key": "QK_LED_MATRIX_MODE_NEXT",
|
||||
"aliases": [
|
||||
"LM_NEXT"
|
||||
]
|
||||
},
|
||||
"0x7814": {
|
||||
"group": "led_matrix",
|
||||
"key": "QK_LED_MATRIX_MODE_PREVIOUS",
|
||||
"aliases": [
|
||||
"LM_PREV"
|
||||
]
|
||||
},
|
||||
"0x7815": {
|
||||
"group": "led_matrix",
|
||||
"key": "QK_LED_MATRIX_BRIGHTNESS_UP",
|
||||
"aliases": [
|
||||
"LM_BRIU"
|
||||
]
|
||||
},
|
||||
"0x7816": {
|
||||
"group": "led_matrix",
|
||||
"key": "QK_LED_MATRIX_BRIGHTNESS_DOWN",
|
||||
"aliases": [
|
||||
"LM_BRID"
|
||||
]
|
||||
},
|
||||
"0x7817": {
|
||||
"group": "led_matrix",
|
||||
"key": "QK_LED_MATRIX_SPEED_UP",
|
||||
"aliases": [
|
||||
"LM_SPDU"
|
||||
]
|
||||
},
|
||||
"0x7818": {
|
||||
"group": "led_matrix",
|
||||
"key": "QK_LED_MATRIX_SPEED_DOWN",
|
||||
"aliases": [
|
||||
"LM_SPDD"
|
||||
]
|
||||
},
|
||||
|
||||
"0x7820": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_TOGGLE",
|
||||
"aliases": [
|
||||
"UG_TOGG"
|
||||
]
|
||||
},
|
||||
"0x7821": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_MODE_NEXT",
|
||||
"aliases": [
|
||||
"!reset!",
|
||||
"UG_NEXT"
|
||||
]
|
||||
},
|
||||
"0x7822": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_MODE_PREVIOUS",
|
||||
"aliases": [
|
||||
"!reset!",
|
||||
"UG_PREV"
|
||||
]
|
||||
},
|
||||
"0x7823": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_HUE_UP",
|
||||
"aliases": [
|
||||
"UG_HUEU"
|
||||
]
|
||||
},
|
||||
"0x7824": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_HUE_DOWN",
|
||||
"aliases": [
|
||||
"UG_HUED"
|
||||
]
|
||||
},
|
||||
"0x7825": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_SATURATION_UP",
|
||||
"aliases": [
|
||||
"UG_SATU"
|
||||
]
|
||||
},
|
||||
"0x7826": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_SATURATION_DOWN",
|
||||
"aliases": [
|
||||
"UG_SATD"
|
||||
]
|
||||
},
|
||||
"0x7827": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_VALUE_UP",
|
||||
"aliases": [
|
||||
"UG_VALU"
|
||||
]
|
||||
},
|
||||
"0x7828": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_VALUE_DOWN",
|
||||
"aliases": [
|
||||
"UG_VALD"
|
||||
]
|
||||
},
|
||||
"0x7829": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_SPEED_UP",
|
||||
"aliases": [
|
||||
"UG_SPDU"
|
||||
]
|
||||
},
|
||||
"0x782A": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_SPEED_DOWN",
|
||||
"aliases": [
|
||||
"UG_SPDD"
|
||||
]
|
||||
},
|
||||
|
||||
"0x7840": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_ON",
|
||||
"aliases": [
|
||||
"RM_ON"
|
||||
]
|
||||
},
|
||||
"0x7841": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_OFF",
|
||||
"aliases": [
|
||||
"RM_OFF"
|
||||
]
|
||||
},
|
||||
"0x7842": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_TOGGLE",
|
||||
"aliases": [
|
||||
"RM_TOGG"
|
||||
]
|
||||
},
|
||||
"0x7843": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_MODE_NEXT",
|
||||
"aliases": [
|
||||
"RM_NEXT"
|
||||
]
|
||||
},
|
||||
"0x7844": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_MODE_PREVIOUS",
|
||||
"aliases": [
|
||||
"RM_PREV"
|
||||
]
|
||||
},
|
||||
"0x7845": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_HUE_UP",
|
||||
"aliases": [
|
||||
"RM_HUEU"
|
||||
]
|
||||
},
|
||||
"0x7846": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_HUE_DOWN",
|
||||
"aliases": [
|
||||
"RM_HUED"
|
||||
]
|
||||
},
|
||||
"0x7847": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_SATURATION_UP",
|
||||
"aliases": [
|
||||
"RM_SATU"
|
||||
]
|
||||
},
|
||||
"0x7848": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_SATURATION_DOWN",
|
||||
"aliases": [
|
||||
"RM_SATD"
|
||||
]
|
||||
},
|
||||
"0x7849": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_VALUE_UP",
|
||||
"aliases": [
|
||||
"RM_VALU"
|
||||
]
|
||||
},
|
||||
"0x784A": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_VALUE_DOWN",
|
||||
"aliases": [
|
||||
"RM_VALD"
|
||||
]
|
||||
},
|
||||
"0x784B": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_SPEED_UP",
|
||||
"aliases": [
|
||||
"RM_SPDU"
|
||||
]
|
||||
},
|
||||
"0x784C": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_SPEED_DOWN",
|
||||
"aliases": [
|
||||
"RM_SPDD"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user