mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-09-10 17:15:43 +00:00
Compare commits
986 Commits
breakpoint
...
cmake-expe
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
92005dee35 | ||
|
|
5dd8efc7c0 | ||
|
|
cc22d67b32 | ||
|
|
a1cb005981 | ||
|
|
cfde338998 | ||
|
|
4d1ad14596 | ||
|
|
c34f0e4998 | ||
|
|
94d76a4f9e | ||
|
|
fe59b4e5d6 | ||
|
|
7093a41c6c | ||
|
|
c9ca9b9875 | ||
|
|
060c15f32b | ||
|
|
6a960cbf05 | ||
|
|
531c37b256 | ||
|
|
6468360ff1 | ||
|
|
40a3a431ef | ||
|
|
4d999378d0 | ||
|
|
2ebad0d33f | ||
|
|
d5760d02a6 | ||
|
|
9ae271c844 | ||
|
|
4aea69ba21 | ||
|
|
2031d063b5 | ||
|
|
d32724c08f | ||
|
|
26756d05a2 | ||
|
|
b45dbcd4c1 | ||
|
|
6fe0cd47ca | ||
|
|
ca8596e4a8 | ||
|
|
c3c401f91d | ||
|
|
b63e388692 | ||
|
|
81f3f0f3e9 | ||
|
|
d0c36a7683 | ||
|
|
c6cc638752 | ||
|
|
621dbdf8ee | ||
|
|
896f38c52c | ||
|
|
f56580404d | ||
|
|
5bb8f7ae84 | ||
|
|
d31d1488e8 | ||
|
|
6bdbf77238 | ||
|
|
e2630f9b40 | ||
|
|
c94241d447 | ||
|
|
e0b1637e15 | ||
|
|
a6b2b1ca41 | ||
|
|
02cb5db67b | ||
|
|
00c3946fbe | ||
|
|
3ee17cd5d3 | ||
|
|
d6ce42ae5b | ||
|
|
67dae1222f | ||
|
|
8d0f97d110 | ||
|
|
153bcdcd8d | ||
|
|
37ac5e68e6 | ||
|
|
b035cd094b | ||
|
|
15cb7ded76 | ||
|
|
5428d922a5 | ||
|
|
3303f7ea5d | ||
|
|
bb4abc8a9f | ||
|
|
0e4221fdf7 | ||
|
|
4f374640d0 | ||
|
|
e624ce959a | ||
|
|
8cd78b392f | ||
|
|
5ace174cd3 | ||
|
|
b1e6b3798a | ||
|
|
0bb9eada83 | ||
|
|
ac75242132 | ||
|
|
650a0b8ad4 | ||
|
|
0f07fcc8d4 | ||
|
|
b6a636d954 | ||
|
|
44cd8a2f88 | ||
|
|
f55d2cd6b6 | ||
|
|
63af5cd50e | ||
|
|
8bb7d24fba | ||
|
|
50b12ece13 | ||
|
|
c5b0e3a6a3 | ||
|
|
a1a5dd6ddd | ||
|
|
da52450152 | ||
|
|
7b9d471ba0 | ||
|
|
319da117b7 | ||
|
|
f8e89a1fe4 | ||
|
|
e437560144 | ||
|
|
d026803147 | ||
|
|
687b7341ed | ||
|
|
0f323a45ce | ||
|
|
1b3f7fcf7d | ||
|
|
f3f634ef67 | ||
|
|
b2ee950d9e | ||
|
|
2f7a06cf73 | ||
|
|
7654c2a23b | ||
|
|
012fa6dd45 | ||
|
|
54dca8cbff | ||
|
|
3eb04fee87 | ||
|
|
0996bca9e9 | ||
|
|
c18d5ebd2d | ||
|
|
915d7a18d7 | ||
|
|
e62fc866db | ||
|
|
c91296f001 | ||
|
|
99a39a1198 | ||
|
|
4283e69ac7 | ||
|
|
a71e58270c | ||
|
|
e0bd6fac10 | ||
|
|
a5e7390419 | ||
|
|
bcfe67883e | ||
|
|
6b9dced611 | ||
|
|
042e42d1b7 | ||
|
|
dff9ee25e2 | ||
|
|
6fe223b5ee | ||
|
|
b281d6efa2 | ||
|
|
36292faf94 | ||
|
|
e8a5630c7c | ||
|
|
96b0baa230 | ||
|
|
dbd1d3cba1 | ||
|
|
1d04a818d7 | ||
|
|
df814dec7a | ||
|
|
950afdceeb | ||
|
|
7be63bb524 | ||
|
|
943d0ff619 | ||
|
|
bf4121a770 | ||
|
|
24bf0dfb37 | ||
|
|
3b89fb61e8 | ||
|
|
eed3eb0b1d | ||
|
|
313fc4cb8f | ||
|
|
62a8f41209 | ||
|
|
ceb8222e57 | ||
|
|
17bbef5200 | ||
|
|
76fb534269 | ||
|
|
65f380c768 | ||
|
|
9c79d2933c | ||
|
|
ec3c2b75de | ||
|
|
5e4d23c54c | ||
|
|
2317c768e4 | ||
|
|
952b88528f | ||
|
|
c1664ac6e3 | ||
|
|
3d0f03f21e | ||
|
|
25cb1c6a5a | ||
|
|
8812db1d64 | ||
|
|
e6e11dfde7 | ||
|
|
c8237a7691 | ||
|
|
f067f42305 | ||
|
|
ca5eb9f664 | ||
|
|
61f3f5676a | ||
|
|
500c4b7484 | ||
|
|
07b7fed122 | ||
|
|
77f7351991 | ||
|
|
127b53bd23 | ||
|
|
95dd5738d2 | ||
|
|
d1a430b348 | ||
|
|
7ebb8c2dec | ||
|
|
6fabc330e3 | ||
|
|
80c6fbad1c | ||
|
|
f6390892e3 | ||
|
|
aeb3ed64c3 | ||
|
|
3fc9c03559 | ||
|
|
53727062db | ||
|
|
d35cdcc933 | ||
|
|
b85a9abc96 | ||
|
|
ee90ad28e6 | ||
|
|
e14254335d | ||
|
|
0596720f7f | ||
|
|
051401175d | ||
|
|
05631b276d | ||
|
|
bacec14073 | ||
|
|
b865b9e170 | ||
|
|
1d182995ed | ||
|
|
bda28fa384 | ||
|
|
89487677e3 | ||
|
|
7e0299117b | ||
|
|
314f6c1ddb | ||
|
|
ba7546a334 | ||
|
|
d70e9b8659 | ||
|
|
9b410a9214 | ||
|
|
e719f5e294 | ||
|
|
9f2cd9119f | ||
|
|
961f0b7b2d | ||
|
|
ea77246865 | ||
|
|
3bf01bb9ed | ||
|
|
7f805cc779 | ||
|
|
403b0addea | ||
|
|
93f2ed3abf | ||
|
|
24a86d5fdb | ||
|
|
0512e286a6 | ||
|
|
26854f5940 | ||
|
|
499fc3b85e | ||
|
|
9c0ce80d7e | ||
|
|
4b69225c22 | ||
|
|
2133cc1011 | ||
|
|
7996be6db6 | ||
|
|
f71f7733a3 | ||
|
|
f5ccd04a5f | ||
|
|
330b73a2df | ||
|
|
0152dd811d | ||
|
|
e837a32b2b | ||
|
|
2222836f09 | ||
|
|
f93d72e57f | ||
|
|
3a23d0aab7 | ||
|
|
08fc370621 | ||
|
|
1283863c0e | ||
|
|
48a79b08cc | ||
|
|
8f03657491 | ||
|
|
d2bed27414 | ||
|
|
b8b1cb04b2 | ||
|
|
3110a70f6f | ||
|
|
59f5889e62 | ||
|
|
7b5dee4064 | ||
|
|
f587a0c548 | ||
|
|
c9cee5acca | ||
|
|
609b23af34 | ||
|
|
7ce71625bc | ||
|
|
d1420cf1d9 | ||
|
|
86885ecbcc | ||
|
|
a0708b2a78 | ||
|
|
92f85ce929 | ||
|
|
92ea53aeda | ||
|
|
8d5ad26310 | ||
|
|
8f6c228adb | ||
|
|
2da0827d4f | ||
|
|
40ed20dddc | ||
|
|
17a0ccb432 | ||
|
|
4a7894d98c | ||
|
|
43843e19b6 | ||
|
|
f4ba17c4a0 | ||
|
|
d784f78bd0 | ||
|
|
7fad94ba2d | ||
|
|
86ab1c1331 | ||
|
|
beb9fcb8bc | ||
|
|
242f51007f | ||
|
|
5e8c0e4d5f | ||
|
|
9cf58ec834 | ||
|
|
a63808c23f | ||
|
|
7bd049a79a | ||
|
|
e4c41b4337 | ||
|
|
47b7b4bcff | ||
|
|
7ae9dbca1d | ||
|
|
7d692d64f3 | ||
|
|
9908ed7ecd | ||
|
|
2cdf99ae95 | ||
|
|
0b796b91a3 | ||
|
|
7d0358cfeb | ||
|
|
b5b422335a | ||
|
|
aa9882abd6 | ||
|
|
0bc804e6a1 | ||
|
|
999200c05a | ||
|
|
12f02dd8be | ||
|
|
74770ac79b | ||
|
|
7a099b7ea5 | ||
|
|
cd91a3ced7 | ||
|
|
e922b46a86 | ||
|
|
ef881364d4 | ||
|
|
37fc08af84 | ||
|
|
896d9aa98c | ||
|
|
b8ac4dddb6 | ||
|
|
9828f9d256 | ||
|
|
9a654e5728 | ||
|
|
b47f179a4a | ||
|
|
6ceff1367d | ||
|
|
13af265268 | ||
|
|
3f45fd4924 | ||
|
|
3ae87b1555 | ||
|
|
db1eeea478 | ||
|
|
bbf7a20b33 | ||
|
|
d10350cd2c | ||
|
|
b44e64a6bf | ||
|
|
584b7cf801 | ||
|
|
b1f4d49c43 | ||
|
|
9c6942ea40 | ||
|
|
0afe0e2441 | ||
|
|
ab1dd0faab | ||
|
|
78d366fca6 | ||
|
|
fe02abc479 | ||
|
|
4002843797 | ||
|
|
21f4375393 | ||
|
|
90f3d6201a | ||
|
|
0a9d06a505 | ||
|
|
f667821ed3 | ||
|
|
34bc896cf9 | ||
|
|
11d49d00e7 | ||
|
|
9991894514 | ||
|
|
01593501e3 | ||
|
|
1504e9ca4c | ||
|
|
3137883956 | ||
|
|
1d0b4c8d38 | ||
|
|
2ffdec5dc2 | ||
|
|
79b364d289 | ||
|
|
d0702b519d | ||
|
|
8c3e09b950 | ||
|
|
61009c506b | ||
|
|
b444e82985 | ||
|
|
55e671a6f9 | ||
|
|
98ed19045d | ||
|
|
95671148a4 | ||
|
|
50cd320616 | ||
|
|
bccf2cba6a | ||
|
|
3b987f4a9d | ||
|
|
bc3c6f0831 | ||
|
|
25ff06c01d | ||
|
|
5208361dcb | ||
|
|
462ab3c4d2 | ||
|
|
1b3b1427d2 | ||
|
|
bc78474906 | ||
|
|
cdaac25861 | ||
|
|
40f0325af8 | ||
|
|
989f2476b6 | ||
|
|
9c6b8fae40 | ||
|
|
4eb5c6803f | ||
|
|
758766820d | ||
|
|
e19cbe25f3 | ||
|
|
f07841cce3 | ||
|
|
6df5d64bb9 | ||
|
|
41a5046e89 | ||
|
|
e24f9b2c0a | ||
|
|
c67285587c | ||
|
|
b0604aca47 | ||
|
|
ff6c44db25 | ||
|
|
7d677cfdff | ||
|
|
df3c9a5401 | ||
|
|
ccb6c908dd | ||
|
|
f9aeea64c1 | ||
|
|
3499677b6a | ||
|
|
cf45a05296 | ||
|
|
c2362b4bea | ||
|
|
e871ddaae8 | ||
|
|
6dfaedb0d4 | ||
|
|
aa3b64db2b | ||
|
|
650864c27d | ||
|
|
a7febfbb62 | ||
|
|
8d6bf19fc7 | ||
|
|
2202a25c35 | ||
|
|
5dfaf0a218 | ||
|
|
c9a1804ca7 | ||
|
|
7a07e4a443 | ||
|
|
4d5abe1e74 | ||
|
|
11b6bb8179 | ||
|
|
a988f8a169 | ||
|
|
f0618a1d53 | ||
|
|
d5e622b979 | ||
|
|
a5f36b156b | ||
|
|
3dae56b634 | ||
|
|
53b7dbe671 | ||
|
|
ebb512db82 | ||
|
|
fb6c9eaed4 | ||
|
|
a01a8949eb | ||
|
|
17409dad54 | ||
|
|
903a42f869 | ||
|
|
18090062ea | ||
|
|
4d09bfa076 | ||
|
|
11fc7bf0dd | ||
|
|
c3406eb8d7 | ||
|
|
a1ecbaa45d | ||
|
|
87c4152738 | ||
|
|
0250de184d | ||
|
|
8e9d109b8c | ||
|
|
f20a05440e | ||
|
|
8c0267c0eb | ||
|
|
de6a6f963b | ||
|
|
10c3b9737f | ||
|
|
007bcb2106 | ||
|
|
a76e70cfff | ||
|
|
d3b00d9594 | ||
|
|
2889f62179 | ||
|
|
3115cdf663 | ||
|
|
a6900dd5c5 | ||
|
|
eeadbd2176 | ||
|
|
d55b07696b | ||
|
|
53132ab9cf | ||
|
|
f7e69639b5 | ||
|
|
49c912f9b4 | ||
|
|
7717630390 | ||
|
|
8dc66867e2 | ||
|
|
1c772eb618 | ||
|
|
ca8b4b8e30 | ||
|
|
0ee48d287a | ||
|
|
252b041b97 | ||
|
|
944b6107e2 | ||
|
|
b867522f8c | ||
|
|
d84a7351ea | ||
|
|
f6dd8dea2e | ||
|
|
2d843088a2 | ||
|
|
cc9520b7a0 | ||
|
|
e296d67146 | ||
|
|
ef6505ad75 | ||
|
|
242b80c63f | ||
|
|
968cc1fe7b | ||
|
|
2c878b1b16 | ||
|
|
328279ac59 | ||
|
|
d322b4c041 | ||
|
|
043d8e1140 | ||
|
|
80cc6ad187 | ||
|
|
8cc2e0e906 | ||
|
|
832479c7fb | ||
|
|
981f3c316c | ||
|
|
b727434391 | ||
|
|
ce7bb63999 | ||
|
|
acea06b4f5 | ||
|
|
9aaf1c26f0 | ||
|
|
b3dca4bb36 | ||
|
|
f1b5659ba8 | ||
|
|
6e42b58549 | ||
|
|
19ecd69757 | ||
|
|
ad817a71a3 | ||
|
|
3823046712 | ||
|
|
81ca83296f | ||
|
|
0edf478a53 | ||
|
|
fa132baa43 | ||
|
|
019c3217a6 | ||
|
|
8af872056a | ||
|
|
7ff55e67e1 | ||
|
|
419a7944a4 | ||
|
|
d14863c00b | ||
|
|
b24fa2f9db | ||
|
|
8767e74c82 | ||
|
|
1c69682605 | ||
|
|
fca6d16b55 | ||
|
|
695c4c6030 | ||
|
|
025e530f46 | ||
|
|
4d180c935a | ||
|
|
dd7b244872 | ||
|
|
79d5f2feb3 | ||
|
|
4c6415d768 | ||
|
|
8ca3f0fb7c | ||
|
|
ea05045923 | ||
|
|
aea1194ea3 | ||
|
|
dfb28334e4 | ||
|
|
4e658d47f8 | ||
|
|
0a51ea28fa | ||
|
|
9c7490d7cb | ||
|
|
603c86b6a2 | ||
|
|
713003b7fd | ||
|
|
300a0def4e | ||
|
|
cf935d97ae | ||
|
|
0f77ae6a20 | ||
|
|
64c399ba38 | ||
|
|
560b981746 | ||
|
|
53cc6170ae | ||
|
|
64c04640ce | ||
|
|
18d107b29b | ||
|
|
b738d52160 | ||
|
|
255e138ee1 | ||
|
|
fe6502f12e | ||
|
|
27504d974d | ||
|
|
c6d7f61e79 | ||
|
|
f2ad3ba7c3 | ||
|
|
771d85b86f | ||
|
|
5e502c3265 | ||
|
|
64d5ef4056 | ||
|
|
891780b17f | ||
|
|
cc9a3a84d0 | ||
|
|
d6ba3b4b84 | ||
|
|
e5b36e2c3f | ||
|
|
e99b2b6ec8 | ||
|
|
22be5190ab | ||
|
|
4973950ddc | ||
|
|
3723c0e3d5 | ||
|
|
327f7ee9a7 | ||
|
|
0b25528b6b | ||
|
|
0ce3f6bcfe | ||
|
|
a1f253cbef | ||
|
|
baecc69da5 | ||
|
|
4723f308ad | ||
|
|
88ec588ae7 | ||
|
|
272281f1a0 | ||
|
|
12f1a30d16 | ||
|
|
364a910b92 | ||
|
|
82a94ea1bd | ||
|
|
17c9388af5 | ||
|
|
dcd532830d | ||
|
|
d73ad52040 | ||
|
|
83a6f6534c | ||
|
|
e6ec2bde07 | ||
|
|
4858059280 | ||
|
|
f5a31fdda6 | ||
|
|
bd7c396c18 | ||
|
|
204ba02765 | ||
|
|
eb7a8d994a | ||
|
|
949bdd22ef | ||
|
|
737e6bf027 | ||
|
|
8e16920530 | ||
|
|
13fe1a9fe8 | ||
|
|
d907f104aa | ||
|
|
d448ff4c17 | ||
|
|
625e57480f | ||
|
|
3b60a05ae1 | ||
|
|
9f84b9ac09 | ||
|
|
275673c562 | ||
|
|
c6cc104810 | ||
|
|
69397d4fe2 | ||
|
|
7b795b2921 | ||
|
|
db7ca07909 | ||
|
|
a52b3aafd2 | ||
|
|
49f3ffa264 | ||
|
|
2cf904b20d | ||
|
|
4098ff5574 | ||
|
|
0ff52925c0 | ||
|
|
7acc3f4449 | ||
|
|
6fd4d8c7ee | ||
|
|
465b6a14e3 | ||
|
|
4c7f67f724 | ||
|
|
2bff00e1ba | ||
|
|
b6e42db64b | ||
|
|
917d93e968 | ||
|
|
b077e633c0 | ||
|
|
4f83b673bd | ||
|
|
401b4753fd | ||
|
|
fe27e46e6d | ||
|
|
955829bfd0 | ||
|
|
0730740add | ||
|
|
a92071494a | ||
|
|
80464674d3 | ||
|
|
44bcde102d | ||
|
|
2c98e795f7 | ||
|
|
d40516c3c7 | ||
|
|
e7d1b210ba | ||
|
|
5f46e29c72 | ||
|
|
4a53d9c431 | ||
|
|
45851a10f6 | ||
|
|
5873fbe569 | ||
|
|
3f2cbc9e68 | ||
|
|
6f575fb23b | ||
|
|
9c02b2990a | ||
|
|
83c6454a76 | ||
|
|
d196ab56d3 | ||
|
|
867f2fb280 | ||
|
|
0de7ccedac | ||
|
|
a306a31042 | ||
|
|
e1feab3167 | ||
|
|
d44581b036 | ||
|
|
b756c53c7b | ||
|
|
28832cf54c | ||
|
|
c965243bb7 | ||
|
|
5a3c9d3efd | ||
|
|
aba0441117 | ||
|
|
c35798f282 | ||
|
|
9a4c7a48ba | ||
|
|
33da7f77a4 | ||
|
|
c1aef03e98 | ||
|
|
e57d703d50 | ||
|
|
0cff636739 | ||
|
|
ec09087543 | ||
|
|
81513ab5f5 | ||
|
|
6e4b4a1360 | ||
|
|
2b5e5d9047 | ||
|
|
4cfdefa2b5 | ||
|
|
62eba54092 | ||
|
|
1bbacec44d | ||
|
|
53caeb7952 | ||
|
|
74d8f16c1d | ||
|
|
b61654fb95 | ||
|
|
6576127b4c | ||
|
|
377f87cb7e | ||
|
|
46c85c93f0 | ||
|
|
e11235ee14 | ||
|
|
20474ae232 | ||
|
|
a1676c3b8c | ||
|
|
f4a25bcfaf | ||
|
|
5e5b19cf94 | ||
|
|
6b81ba1d4c | ||
|
|
aba67829e9 | ||
|
|
64dea51094 | ||
|
|
4d83583410 | ||
|
|
8bc85c0f42 | ||
|
|
90fd08bf4b | ||
|
|
56555c61e1 | ||
|
|
59ae682dc9 | ||
|
|
caca029e12 | ||
|
|
2dd4359181 | ||
|
|
0becd33c4d | ||
|
|
14fabfd893 | ||
|
|
01de98428c | ||
|
|
3a726203a4 | ||
|
|
2891d901c3 | ||
|
|
b57714f793 | ||
|
|
a3ed1b0c8d | ||
|
|
1b045b1e60 | ||
|
|
cf55032485 | ||
|
|
1c024bfa91 | ||
|
|
c172ae107e | ||
|
|
f6023a36bc | ||
|
|
974a1eaf2a | ||
|
|
403c7eeb5c | ||
|
|
c5e3275299 | ||
|
|
31b8dd34a3 | ||
|
|
97910fac06 | ||
|
|
72dc1f88b9 | ||
|
|
b56ffc8920 | ||
|
|
5c730d971e | ||
|
|
b2384f1809 | ||
|
|
4a7d65b9d7 | ||
|
|
fee362e09a | ||
|
|
64508caa76 | ||
|
|
8f36e08be0 | ||
|
|
84a642266c | ||
|
|
68aa64172d | ||
|
|
e2ef3c8cc9 | ||
|
|
8b141020b2 | ||
|
|
6a02eb2874 | ||
|
|
b6b9b25525 | ||
|
|
be024a1d43 | ||
|
|
04dcf81d1e | ||
|
|
03a728f71c | ||
|
|
8e869da1da | ||
|
|
115c241f21 | ||
|
|
691668340c | ||
|
|
f9ee0571a7 | ||
|
|
6d41ba75d3 | ||
|
|
46ed46e384 | ||
|
|
c345278101 | ||
|
|
44800f119d | ||
|
|
5962ebaba1 | ||
|
|
20ee103399 | ||
|
|
b497d58d6d | ||
|
|
4b2fd42122 | ||
|
|
975d64cc2b | ||
|
|
b297531dbf | ||
|
|
3a5a4c708f | ||
|
|
0f5500182c | ||
|
|
24adecd922 | ||
|
|
8c09170fff | ||
|
|
ff73cb6290 | ||
|
|
17085ec49d | ||
|
|
867e4fc11c | ||
|
|
e4cfbd2532 | ||
|
|
cd1f05a23a | ||
|
|
fc2c9ccbc5 | ||
|
|
03ec3db651 | ||
|
|
9b8f18699f | ||
|
|
b4d5c22ed4 | ||
|
|
b585ece5ef | ||
|
|
ac561b9473 | ||
|
|
d0ebafaea6 | ||
|
|
4704a4e053 | ||
|
|
2ae215514a | ||
|
|
5a3594366f | ||
|
|
422fd8aed8 | ||
|
|
b8e12eed80 | ||
|
|
61696fda83 | ||
|
|
c6bc439eb2 | ||
|
|
c7c44de32f | ||
|
|
22b3d76f9b | ||
|
|
53100496c3 | ||
|
|
06b12a98c7 | ||
|
|
20bafb9313 | ||
|
|
ea96799970 | ||
|
|
943aae85d5 | ||
|
|
829c7e0931 | ||
|
|
724aa3a4b2 | ||
|
|
87cace28a6 | ||
|
|
590c889537 | ||
|
|
7cccba8a3b | ||
|
|
5fa2aab41e | ||
|
|
62d101b886 | ||
|
|
ced8142847 | ||
|
|
91bfc2ba3f | ||
|
|
a7ff2b8d54 | ||
|
|
d4096db271 | ||
|
|
a781672ce7 | ||
|
|
6b50b1be9b | ||
|
|
e08debb62f | ||
|
|
cd1d1d80bb | ||
|
|
801d2ff940 | ||
|
|
6bd76c97be | ||
|
|
2b61cc739f | ||
|
|
444760efcb | ||
|
|
69a9577558 | ||
|
|
ab667a8b64 | ||
|
|
77092675aa | ||
|
|
40fddcb1e5 | ||
|
|
4c32e060e8 | ||
|
|
3b80638ac3 | ||
|
|
202a708ba7 | ||
|
|
fd9c809fc3 | ||
|
|
7f2ac4c576 | ||
|
|
809c05ddf2 | ||
|
|
d81c54109a | ||
|
|
3de3f885de | ||
|
|
3232f52efb | ||
|
|
95e97fa839 | ||
|
|
517f8af99e | ||
|
|
003cee0098 | ||
|
|
1c5a67b767 | ||
|
|
b56c0fa674 | ||
|
|
430b551407 | ||
|
|
70f67ca908 | ||
|
|
8f506b5bc2 | ||
|
|
ab1898e660 | ||
|
|
d988c1c082 | ||
|
|
99b69dc80e | ||
|
|
f6eccf49e8 | ||
|
|
f75ac6042e | ||
|
|
e5721bbd37 | ||
|
|
89b72017a0 | ||
|
|
b8a9de206d | ||
|
|
b2036a4c9f | ||
|
|
c0e54737ad | ||
|
|
ae94be98ed | ||
|
|
d95a51fb17 | ||
|
|
8560280afe | ||
|
|
174263445f | ||
|
|
8d43f20624 | ||
|
|
3944eda299 | ||
|
|
90bd710b69 | ||
|
|
995aad1123 | ||
|
|
007a8c8b35 | ||
|
|
ff8d514262 | ||
|
|
5922751b17 | ||
|
|
0b079424c8 | ||
|
|
d27d6f0485 | ||
|
|
90c4a8785e | ||
|
|
5d3fccf006 | ||
|
|
4c28f93520 | ||
|
|
e8d6c62934 | ||
|
|
e0ff1189ce | ||
|
|
830bdd9a85 | ||
|
|
de64c61d17 | ||
|
|
bef4d9965d | ||
|
|
a3392fdd1e | ||
|
|
f46018457f | ||
|
|
0ab4f53691 | ||
|
|
f249789a8f | ||
|
|
4a0027d493 | ||
|
|
cf1c50987a | ||
|
|
359caf1432 | ||
|
|
2e36bde659 | ||
|
|
11ae141835 | ||
|
|
05a2f0453a | ||
|
|
6a80b7266a | ||
|
|
7526b2a621 | ||
|
|
8655b100b1 | ||
|
|
dd9d3d6c8e | ||
|
|
2e9ebf0756 | ||
|
|
54f441ca9f | ||
|
|
f1cf00ab70 | ||
|
|
c2b13bd77b | ||
|
|
7aa2d791f6 | ||
|
|
9c08c7d4b6 | ||
|
|
f3041c5500 | ||
|
|
2e126faf92 | ||
|
|
bb82ded302 | ||
|
|
a73014fa27 | ||
|
|
85984902cf | ||
|
|
dedc54a328 | ||
|
|
233ae20d33 | ||
|
|
f21443d6a2 | ||
|
|
e3a34d6062 | ||
|
|
79d083c635 | ||
|
|
0072f5bb1b | ||
|
|
293a9fb342 | ||
|
|
c6d0aa6ae4 | ||
|
|
1d3b27eb34 | ||
|
|
d7225eafbe | ||
|
|
62b89f8184 | ||
|
|
33cc81f36e | ||
|
|
571a9794af | ||
|
|
9e29fe16e6 | ||
|
|
8e50f1c5f5 | ||
|
|
64715084b2 | ||
|
|
2ea290f5b9 | ||
|
|
6543065180 | ||
|
|
fd6b1558ce | ||
|
|
309b4dc2b7 | ||
|
|
51360f3d54 | ||
|
|
1bf60eb6fc | ||
|
|
5c817bffe9 | ||
|
|
7311b17875 | ||
|
|
0f97402d21 | ||
|
|
6550b67005 | ||
|
|
35f460643a | ||
|
|
66af985a62 | ||
|
|
5373376020 | ||
|
|
1978007fae | ||
|
|
83e8e5845a | ||
|
|
e67e690cf3 | ||
|
|
2f15cde2d1 | ||
|
|
1130834513 | ||
|
|
2b2d1d43d8 | ||
|
|
4c5e0606fe | ||
|
|
962e4c0e18 | ||
|
|
e2ab98f960 | ||
|
|
99174edf0a | ||
|
|
1124bbc1db | ||
|
|
0fcf481cdd | ||
|
|
fecfb176b4 | ||
|
|
e2117564c5 | ||
|
|
49b81a9c2b | ||
|
|
9e4cfcd181 | ||
|
|
582f879d6f | ||
|
|
515dd18c28 | ||
|
|
ca13734f91 | ||
|
|
411ed54b0a | ||
|
|
3cb0888afa | ||
|
|
70b9cec3f2 | ||
|
|
222f685b90 | ||
|
|
408bb469bb | ||
|
|
e25672baef | ||
|
|
e0e22176bb | ||
|
|
e444cf9578 | ||
|
|
7cf3dd7b8d | ||
|
|
7578daaf16 | ||
|
|
a137edf5df | ||
|
|
812468abb4 | ||
|
|
2792ee6573 | ||
|
|
29b8bbc4a0 | ||
|
|
9a3df6e4e2 | ||
|
|
9c2703cab0 | ||
|
|
84e0a17aae | ||
|
|
291f988423 | ||
|
|
48a80a502d | ||
|
|
a5eaa461dc | ||
|
|
b6a4923863 | ||
|
|
06593acc7d | ||
|
|
89399b5494 | ||
|
|
35477a38b1 | ||
|
|
15ef0a7e3c | ||
|
|
4b6d458f49 | ||
|
|
68f550a3f2 | ||
|
|
b44317ff70 | ||
|
|
6d0f944e5e | ||
|
|
ecdc768451 | ||
|
|
25790fc886 | ||
|
|
57aff7ff18 | ||
|
|
454edf68d1 | ||
|
|
b8532d100d | ||
|
|
008f1312bb | ||
|
|
102f22f7e9 | ||
|
|
2d19e59d78 | ||
|
|
1431f314a4 | ||
|
|
598735a2b8 | ||
|
|
cbabc8dbe6 | ||
|
|
8698d109d7 | ||
|
|
bf2ed0174b | ||
|
|
7d51636581 | ||
|
|
96ba554ca8 | ||
|
|
9dc3f79196 | ||
|
|
f67f787cc2 | ||
|
|
57f9a2ad6d | ||
|
|
4b75b90f5c | ||
|
|
c2687906d2 | ||
|
|
7c72c5e436 | ||
|
|
d9aab6f9c7 | ||
|
|
608ed489de | ||
|
|
c6ab70ef0d | ||
|
|
57351e4a37 | ||
|
|
0435381c91 | ||
|
|
143b7a3c3d | ||
|
|
1dd3e46336 | ||
|
|
d9cba6e978 | ||
|
|
8c12559edb | ||
|
|
aa06a6e094 | ||
|
|
43870190af | ||
|
|
89fdafc27d | ||
|
|
37ade41ad9 | ||
|
|
96cd333371 | ||
|
|
57bf060198 | ||
|
|
99cd0b13e1 | ||
|
|
701747ad4f | ||
|
|
9bc7e9afbd | ||
|
|
6133b08e73 | ||
|
|
6ae0f83138 | ||
|
|
ba6ee29040 | ||
|
|
29e0d440c3 | ||
|
|
f4a4d841e5 | ||
|
|
1786932d9f | ||
|
|
a23333eb58 | ||
|
|
dd93b17e96 | ||
|
|
de92e8b3b0 | ||
|
|
75a145af59 | ||
|
|
e4f4e0a307 | ||
|
|
069e6a259a | ||
|
|
769a4f830d | ||
|
|
9e103a2c58 | ||
|
|
88d8817397 | ||
|
|
c9fe884b26 | ||
|
|
1df41e6db1 | ||
|
|
56e907b16e | ||
|
|
5447b075f9 | ||
|
|
d9a64d950f | ||
|
|
85ee55ff3b | ||
|
|
fa56e51894 | ||
|
|
e06f50c489 | ||
|
|
1215fc2a78 | ||
|
|
5a2ed77a08 | ||
|
|
6e6039995b | ||
|
|
c2aa0f67ec | ||
|
|
071268633d | ||
|
|
c6e291c416 | ||
|
|
beaea2eb0d | ||
|
|
261e7668c6 | ||
|
|
f2a8a13dba | ||
|
|
6668a0adb0 | ||
|
|
d30bf44a60 | ||
|
|
53423f0369 | ||
|
|
0d7edbbcbe | ||
|
|
6866466b07 | ||
|
|
ebcbbfc1e8 | ||
|
|
5d8ece1b3d | ||
|
|
acca2eb963 | ||
|
|
d4ead8783c | ||
|
|
bb3d694875 | ||
|
|
2183eda7ac | ||
|
|
405aa7b2ed | ||
|
|
25b9e34fbe | ||
|
|
760e5c2ee1 | ||
|
|
8cba1d3297 | ||
|
|
3fa1e8e273 | ||
|
|
71c1ca47db | ||
|
|
0e93b0d59b | ||
|
|
0b1d5497fc | ||
|
|
76c69f35c5 | ||
|
|
2709b6ed61 | ||
|
|
1fd2ef2bcb | ||
|
|
92fadf0110 | ||
|
|
3bf0a10990 | ||
|
|
92354b2ca8 | ||
|
|
db4934f922 | ||
|
|
af14b212b9 | ||
|
|
41b1f7283b | ||
|
|
ea1a6975a8 | ||
|
|
b4073e11e1 | ||
|
|
2f92880578 | ||
|
|
9e757ea5d0 | ||
|
|
4d1b1bc534 | ||
|
|
dd252ebb55 | ||
|
|
1dd77d9944 | ||
|
|
3af6fb5d0f | ||
|
|
d878edfaad | ||
|
|
76a8778672 | ||
|
|
ee772ad165 | ||
|
|
45c288d5b1 | ||
|
|
6af12001eb | ||
|
|
f288a3bb3b | ||
|
|
f32070bfef | ||
|
|
004ca55011 | ||
|
|
03d7c31e6c | ||
|
|
32dabd5320 | ||
|
|
82760bcea6 | ||
|
|
4540f52e98 | ||
|
|
68c54d846d | ||
|
|
cf3c26533c | ||
|
|
e85439eb04 | ||
|
|
f98a7e8ffe | ||
|
|
e68eb2f4ad | ||
|
|
0e8d22e2b7 | ||
|
|
50661ab65c | ||
|
|
9c320bc558 | ||
|
|
e9d5967a93 | ||
|
|
9ebd6eacd5 | ||
|
|
3f98542e52 | ||
|
|
3e59bbd731 | ||
|
|
12e4a36db7 | ||
|
|
402d3d8a86 | ||
|
|
b4f6a329d4 | ||
|
|
a5c2eea6c1 | ||
|
|
3274a80189 | ||
|
|
5ff7f289f2 | ||
|
|
102c7665f4 | ||
|
|
38a153b143 | ||
|
|
798d6a1c68 | ||
|
|
3d091f4a9d | ||
|
|
0b29af1019 | ||
|
|
f7095283e8 | ||
|
|
5d516ac2e2 | ||
|
|
739d4ad2fb | ||
|
|
b2c8e59cc1 | ||
|
|
2d45e5e4b4 | ||
|
|
891734e2d3 | ||
|
|
e0d0d81dfa | ||
|
|
3fffdf4c71 | ||
|
|
bb4f094a08 | ||
|
|
370c02cb9a | ||
|
|
17fec52b0f | ||
|
|
c952458c78 | ||
|
|
20b901366a | ||
|
|
4a0aa9ada2 | ||
|
|
4d74839d35 | ||
|
|
90fe668dd9 | ||
|
|
d648eb42ca | ||
|
|
4a87af0e9a | ||
|
|
c146563f4b | ||
|
|
8a8000b4ec | ||
|
|
9ddb0165a4 | ||
|
|
393a37c012 | ||
|
|
4ae7525923 | ||
|
|
baf573a144 | ||
|
|
d27b852fcc | ||
|
|
7e27e5e9c8 | ||
|
|
690eb4a453 | ||
|
|
af703e6c0a | ||
|
|
5a3770d363 | ||
|
|
1c2669f801 | ||
|
|
cbedec64a4 | ||
|
|
d915ab59ac |
3
.clangd
Normal file
3
.clangd
Normal file
@@ -0,0 +1,3 @@
|
||||
CompileFlags:
|
||||
Remove: -mcall-prologues
|
||||
Add: -nostdinc
|
||||
5
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
5
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
@@ -7,6 +7,9 @@ body:
|
||||
attributes:
|
||||
value: |
|
||||
Provide a general summary of the changes you want in the title above.
|
||||
|
||||
Please refrain from asking maintainers to add support for specific keyboards -- it is unlikely they will have hardware available, and will not be able to help.
|
||||
Your best bet is to take the initiative, add support, then submit a PR yourself.
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Feature Request Type
|
||||
@@ -18,4 +21,4 @@ body:
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Description
|
||||
description: A few sentences describing what it is that you'd like to see in QMK. Additional information (such as links to spec sheets, licensing info, other related issues or PRs, etc) would be helpful.
|
||||
description: A few sentences describing what it is that you'd like to see in QMK. Additional information (such as links to spec sheets, licensing info, other related issues or PRs, etc) would be helpful.
|
||||
|
||||
5
.github/ISSUE_TEMPLATE/other_issues.yml
vendored
5
.github/ISSUE_TEMPLATE/other_issues.yml
vendored
@@ -10,7 +10,10 @@ body:
|
||||
attributes:
|
||||
value: |
|
||||
Please check [https://docs.qmk.fm/#/support](https://docs.qmk.fm/#/support) for additional resources first. If that doesn't answer your question, choose the bug report template instead, as that may be more appropriate.
|
||||
|
||||
Please refrain from asking maintainers to add support for specific keyboards -- it is unlikely they will have hardware available, and will not be able to help.
|
||||
Your best bet is to take the initiative, add support, then submit a PR yourself.
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Issue Description
|
||||
description: Describe your issue in as much detail as possible.
|
||||
description: Describe your issue in as much detail as possible.
|
||||
|
||||
1
.github/labeler.yml
vendored
1
.github/labeler.yml
vendored
@@ -5,6 +5,7 @@ core:
|
||||
- tests/**/*
|
||||
- util/**/*
|
||||
- platforms/**/*
|
||||
- builddefs/**/*
|
||||
- Makefile
|
||||
- '*.mk'
|
||||
dependencies:
|
||||
|
||||
3
.github/workflows/api.yml
vendored
3
.github/workflows/api.yml
vendored
@@ -1,5 +1,8 @@
|
||||
name: Update API Data
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
|
||||
2
.github/workflows/auto_approve.yml
vendored
2
.github/workflows/auto_approve.yml
vendored
@@ -1,5 +1,7 @@
|
||||
name: Automatic Approve
|
||||
|
||||
permissions: {}
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "*/5 * * * *"
|
||||
|
||||
14
.github/workflows/auto_tag.yml
vendored
14
.github/workflows/auto_tag.yml
vendored
@@ -1,16 +1,20 @@
|
||||
name: Essential files modified
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- quantum/**/*
|
||||
- tmk_core/**/*
|
||||
- builddefs/**/*
|
||||
- drivers/**/*
|
||||
- tests/**/*
|
||||
- util/**/*
|
||||
- platforms/**/*
|
||||
- quantum/**/*
|
||||
- tests/**/*
|
||||
- tmk_core/**/*
|
||||
- util/**/*
|
||||
- Makefile
|
||||
- '*.mk'
|
||||
|
||||
@@ -27,7 +31,7 @@ jobs:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Bump version and push tag
|
||||
uses: anothrNick/github-tag-action@1.52.0
|
||||
uses: anothrNick/github-tag-action@1.61.0
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
DEFAULT_BUMP: 'patch'
|
||||
|
||||
60
.github/workflows/ci_builds.yml
vendored
Normal file
60
.github/workflows/ci_builds.yml
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
name: CI Builds
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 0,12 * * *'
|
||||
|
||||
jobs:
|
||||
ci_builds:
|
||||
name: "CI Build"
|
||||
runs-on: self-hosted
|
||||
timeout-minutes: 1380
|
||||
|
||||
if: github.repository == 'qmk/qmk_firmware'
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
branch: [master, develop]
|
||||
keymap: [default, via]
|
||||
|
||||
container: qmkfm/qmk_cli
|
||||
|
||||
steps:
|
||||
- name: Disable safe.directory check
|
||||
run : git config --global --add safe.directory '*'
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: recursive
|
||||
ref: ${{ matrix.branch }}
|
||||
|
||||
- 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@v3
|
||||
if: always()
|
||||
with:
|
||||
name: artifacts-${{ matrix.branch }}-${{ matrix.keymap }}
|
||||
if-no-files-found: ignore
|
||||
path: |
|
||||
*.bin
|
||||
*.hex
|
||||
*.uf2
|
||||
.build/failed.*
|
||||
7
.github/workflows/cli.yml
vendored
7
.github/workflows/cli.yml
vendored
@@ -1,5 +1,8 @@
|
||||
name: CLI CI
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
@@ -18,9 +21,13 @@ jobs:
|
||||
container: qmkfm/qmk_cli
|
||||
|
||||
steps:
|
||||
- name: Disable safe.directory check
|
||||
run : git config --global --add safe.directory '*'
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Install dependencies
|
||||
run: pip3 install -r requirements-dev.txt
|
||||
- name: Run tests
|
||||
|
||||
3
.github/workflows/develop_update.yml
vendored
3
.github/workflows/develop_update.yml
vendored
@@ -1,5 +1,8 @@
|
||||
name: Update develop after master merge
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
|
||||
3
.github/workflows/docs.yml
vendored
3
.github/workflows/docs.yml
vendored
@@ -1,5 +1,8 @@
|
||||
name: Generate Docs
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
|
||||
3
.github/workflows/feature_branch_update.yml
vendored
3
.github/workflows/feature_branch_update.yml
vendored
@@ -1,5 +1,8 @@
|
||||
name: Update feature branches after develop merge
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
|
||||
14
.github/workflows/format.yml
vendored
14
.github/workflows/format.yml
vendored
@@ -1,5 +1,8 @@
|
||||
name: PR Lint Format
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
@@ -19,6 +22,9 @@ jobs:
|
||||
container: qmkfm/qmk_cli
|
||||
|
||||
steps:
|
||||
- name: Disable safe.directory check
|
||||
run : git config --global --add safe.directory '*'
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
@@ -27,16 +33,14 @@ jobs:
|
||||
run: |
|
||||
pip3 install -r requirements-dev.txt
|
||||
|
||||
- uses: trilom/file-changes-action@v1.2.4
|
||||
- name: Get changed files
|
||||
id: file_changes
|
||||
with:
|
||||
output: ' '
|
||||
fileOutput: ' '
|
||||
uses: tj-actions/changed-files@v35
|
||||
|
||||
- name: Run qmk formatters
|
||||
shell: 'bash {0}'
|
||||
run: |
|
||||
cat ~/files_added.txt ~/files_modified.txt > ~/files_changed.txt
|
||||
echo '${{ steps.file_changes.outputs.added_files}}' '${{ steps.file_changes.outputs.modified_files}}' > ~/files_changed.txt
|
||||
qmk format-c --core-only $(< ~/files_changed.txt) || true
|
||||
qmk format-python $(< ~/files_changed.txt) || true
|
||||
qmk format-text $(< ~/files_changed.txt) || true
|
||||
|
||||
6
.github/workflows/format_push.yml
vendored
6
.github/workflows/format_push.yml
vendored
@@ -1,5 +1,8 @@
|
||||
name: Lint Format
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
@@ -13,6 +16,9 @@ jobs:
|
||||
container: qmkfm/qmk_cli
|
||||
|
||||
steps:
|
||||
- name: Disable safe.directory check
|
||||
run : git config --global --add safe.directory '*'
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
4
.github/workflows/labeler.yml
vendored
4
.github/workflows/labeler.yml
vendored
@@ -1,5 +1,9 @@
|
||||
name: "Pull Request Labeler"
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [opened, synchronize, reopened, ready_for_review, locked]
|
||||
|
||||
26
.github/workflows/lint.yml
vendored
26
.github/workflows/lint.yml
vendored
@@ -1,5 +1,8 @@
|
||||
name: PR Lint keyboards
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
@@ -12,6 +15,9 @@ jobs:
|
||||
container: qmkfm/qmk_cli
|
||||
|
||||
steps:
|
||||
- name: Disable safe.directory check
|
||||
run : git config --global --add safe.directory '*'
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
@@ -19,24 +25,24 @@ jobs:
|
||||
- name: Install dependencies
|
||||
run: pip3 install -r requirements-dev.txt
|
||||
|
||||
- uses: trilom/file-changes-action@v1.2.4
|
||||
- name: Get changed files
|
||||
id: file_changes
|
||||
with:
|
||||
output: '\n'
|
||||
uses: tj-actions/changed-files@v35
|
||||
|
||||
- name: Print info
|
||||
run: |
|
||||
git rev-parse --short HEAD
|
||||
echo ${{ github.event.pull_request.base.sha }}
|
||||
echo '${{ steps.file_changes.outputs.files}}'
|
||||
echo '${{ steps.file_changes.outputs.all_changed_files}}'
|
||||
|
||||
- name: Run qmk lint
|
||||
shell: 'bash {0}'
|
||||
run: |
|
||||
QMK_CHANGES=$(echo -e '${{ steps.file_changes.outputs.files}}')
|
||||
QMK_CHANGES=$(echo -e '${{ steps.file_changes.outputs.all_changed_files}}' | sed 's/ /\n/g')
|
||||
QMK_KEYBOARDS=$(qmk list-keyboards)
|
||||
|
||||
exit_code=0
|
||||
|
||||
for KB in $QMK_KEYBOARDS; do
|
||||
KEYBOARD_CHANGES=$(echo "$QMK_CHANGES" | grep -E '^(keyboards/'${KB}'/)')
|
||||
if [[ -z "$KEYBOARD_CHANGES" ]]; then
|
||||
@@ -52,6 +58,16 @@ jobs:
|
||||
exit_code=$(($exit_code + $?))
|
||||
fi
|
||||
done
|
||||
|
||||
qmk format-text ${{ steps.file_changes.outputs.all_changed_files}} || true
|
||||
for file in ${{ steps.file_changes.outputs.all_changed_files}}; do
|
||||
if ! git diff --quiet $file; then
|
||||
echo "File '${file}' Requires Formatting"
|
||||
echo "::error file=${file}::Requires Formatting"
|
||||
exit_code=$(($exit_code + 1))
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ $exit_code -gt 255 ]]; then
|
||||
exit 255
|
||||
fi
|
||||
|
||||
36
.github/workflows/regen.yml
vendored
Normal file
36
.github/workflows/regen.yml
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
name: PR Regenerate Files
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- 'data/constants/**'
|
||||
- 'lib/python/**'
|
||||
|
||||
jobs:
|
||||
regen:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
container: qmkfm/qmk_cli
|
||||
|
||||
steps:
|
||||
- name: Disable safe.directory check
|
||||
run : git config --global --add safe.directory '*'
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Run qmk generators
|
||||
run: |
|
||||
util/regen.sh
|
||||
git diff
|
||||
|
||||
- name: Fail when regeneration required
|
||||
run: |
|
||||
git diff
|
||||
for file in $(git diff --name-only); do
|
||||
echo "File '${file}' Requires Regeneration"
|
||||
echo "::error file=${file}::Requires Regeneration"
|
||||
done
|
||||
test -z "$(git diff --name-only)"
|
||||
46
.github/workflows/regen_push.yml
vendored
Normal file
46
.github/workflows/regen_push.yml
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
name: Regenerate Files
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
|
||||
jobs:
|
||||
regen:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
container: qmkfm/qmk_cli
|
||||
|
||||
steps:
|
||||
- name: Disable safe.directory check
|
||||
run : git config --global --add safe.directory '*'
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Run qmk generators
|
||||
run: |
|
||||
util/regen.sh
|
||||
git diff
|
||||
|
||||
- uses: rlespinasse/github-slug-action@v3.x
|
||||
|
||||
- name: Become QMK Bot
|
||||
run: |
|
||||
git config user.name 'QMK Bot'
|
||||
git config user.email 'hello@qmk.fm'
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v4
|
||||
if: ${{ github.repository == 'qmk/qmk_firmware'}}
|
||||
with:
|
||||
token: ${{ secrets.QMK_BOT_TOKEN }}
|
||||
delete-branch: true
|
||||
branch: bugfix/regen_${{ env.GITHUB_REF_SLUG }}
|
||||
author: QMK Bot <hello@qmk.fm>
|
||||
committer: QMK Bot <hello@qmk.fm>
|
||||
commit-message: Regenerate Files
|
||||
title: '[CI] Regenerate Files'
|
||||
11
.github/workflows/stale.yml
vendored
11
.github/workflows/stale.yml
vendored
@@ -1,18 +1,19 @@
|
||||
name: 'Close stale issues and PRs'
|
||||
on:
|
||||
schedule:
|
||||
- cron: '30 1 * * *'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
issues: write
|
||||
pull-requests: write
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '30 1 * * *'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/stale@v6
|
||||
- uses: actions/stale@v8
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
|
||||
3
.github/workflows/unit_test.yml
vendored
3
.github/workflows/unit_test.yml
vendored
@@ -1,5 +1,8 @@
|
||||
name: Unit Tests
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
|
||||
5
.gitignore
vendored
5
.gitignore
vendored
@@ -52,9 +52,12 @@ quantum/version.h
|
||||
.history/
|
||||
build/
|
||||
cmake-build-debug
|
||||
CMakeLists.txt
|
||||
# CMakeLists.txt
|
||||
*.pdf
|
||||
|
||||
# cmake toolchain downloads
|
||||
/toolchains
|
||||
|
||||
# Let these ones be user specific, since we have so many different configurations
|
||||
*.code-workspace
|
||||
.stfolder
|
||||
|
||||
4
.gitmodules
vendored
4
.gitmodules
vendored
@@ -21,3 +21,7 @@
|
||||
[submodule "lib/pico-sdk"]
|
||||
path = lib/pico-sdk
|
||||
url = https://github.com/qmk/pico-sdk.git
|
||||
[submodule "lib/lvgl"]
|
||||
path = lib/lvgl
|
||||
url = https://github.com/qmk/lvgl.git
|
||||
branch = release/v8.2
|
||||
|
||||
9
.vscode/cmake-kits.json
vendored
Normal file
9
.vscode/cmake-kits.json
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
[
|
||||
{
|
||||
"name": "AVR GCC",
|
||||
"compilers": {
|
||||
"CC": "C:\\QMK_MSYS\\mingw64\\bin\\avr-gcc.exe",
|
||||
"CXX": "C:\\QMK_MSYS\\mingw64\\bin\\avr-g++.exe"
|
||||
}
|
||||
}
|
||||
]
|
||||
4
.vscode/settings.json
vendored
4
.vscode/settings.json
vendored
@@ -5,8 +5,8 @@
|
||||
// Configure glob patterns for excluding files and folders.
|
||||
"files.exclude": {
|
||||
"**/.build": true,
|
||||
"**/*.hex": true,
|
||||
"**/*.bin": true,
|
||||
// "**/*.hex": true,
|
||||
// "**/*.bin": true,
|
||||
"**/*.uf2": true
|
||||
},
|
||||
"files.associations": {
|
||||
|
||||
114
.vscode/tasks.json
vendored
Normal file
114
.vscode/tasks.json
vendored
Normal file
@@ -0,0 +1,114 @@
|
||||
{
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "Load Keyboard",
|
||||
"dependsOrder": "sequence",
|
||||
"dependsOn":[
|
||||
"Only Load Keyboard",
|
||||
"Configure CMake"
|
||||
],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "Only Load Keyboard",
|
||||
"type": "shell",
|
||||
"command": "cmake -D QMK_KEYBOARD_FOLDER=\"${input:all_keyboards}\" -D QMK_KEYMAP_FOLDER=\"${input:keyboard_keymap}\" -P ${workspaceFolder}/cmake/ConfigureKeyboard.cmake",
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "Configure CMake",
|
||||
"type": "cmake",
|
||||
"command": "configure"
|
||||
},
|
||||
{
|
||||
"label": "Build",
|
||||
"problemMatcher": [
|
||||
{
|
||||
"base": "$gcc",
|
||||
"fileLocation": ["relative", "${workspaceFolder}/build"]
|
||||
},
|
||||
],
|
||||
"options": {
|
||||
"environment": {
|
||||
"CLICOLOR_FORCE": "1"
|
||||
}
|
||||
},
|
||||
"type": "cmake",
|
||||
"command": "build",
|
||||
"targets":[
|
||||
"${input:keyboard_target}"
|
||||
],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
},
|
||||
},
|
||||
// {
|
||||
// "label": "Rebuild",
|
||||
// "problemMatcher": [
|
||||
// {
|
||||
// "base": "$gcc",
|
||||
// "fileLocation": ["relative", "${workspaceFolder}/build"]
|
||||
// },
|
||||
// ],
|
||||
// "options": {
|
||||
// "environment": {
|
||||
// "CLICOLOR_FORCE": "1"
|
||||
// }
|
||||
// },
|
||||
// "type": "cmake",
|
||||
// "command": "cleanRebuild",
|
||||
// "targets":[
|
||||
// "${input:keyboard_target}"
|
||||
// ],
|
||||
// "group": {
|
||||
// "kind": "build",
|
||||
// "isDefault": true
|
||||
// },
|
||||
// }
|
||||
],
|
||||
"inputs": [
|
||||
{
|
||||
"id": "keyboard_target",
|
||||
"type": "command",
|
||||
"command": "shellCommand.execute",
|
||||
"args": {
|
||||
"command": "type build\\targets",
|
||||
"description": "Target:",
|
||||
"fieldSeparator": "|"
|
||||
},
|
||||
},
|
||||
{
|
||||
"id": "all_keyboards",
|
||||
"type": "command",
|
||||
"command": "shellCommand.execute",
|
||||
"args": {
|
||||
"command": "type build\\all_keyboards",
|
||||
"description": "Keyboard:",
|
||||
"default": ""
|
||||
},
|
||||
},
|
||||
{
|
||||
"id": "keymap",
|
||||
"description": "Keymap:",
|
||||
"type": "pickString",
|
||||
"options":[
|
||||
"default"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "keyboard_keymap",
|
||||
"type": "command",
|
||||
"command": "shellCommand.execute",
|
||||
"args": {
|
||||
"command": "cmake -D QMK_KEYBOARD_FOLDER=\"${input:all_keyboards}\" -P ${workspaceFolder}/cmake/GetKeymaps.cmake && type build\\keyboard_keymaps",
|
||||
"description": "Keymap:",
|
||||
"default": ""
|
||||
},
|
||||
},
|
||||
]
|
||||
}
|
||||
97
CMakeLists.txt
Normal file
97
CMakeLists.txt
Normal file
@@ -0,0 +1,97 @@
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE INTERNAL "")
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
|
||||
|
||||
include(UpdateSubmodule)
|
||||
include(ResolveKeyboard)
|
||||
include(ValidateJson)
|
||||
include(ProcessKeyboard)
|
||||
|
||||
set(QMK_KEYBOARDS_FOLDER "${CMAKE_SOURCE_DIR}/keyboards")
|
||||
|
||||
function(_get_all_cmake_targets out_var current_dir)
|
||||
get_property(targets DIRECTORY ${current_dir} PROPERTY BUILDSYSTEM_TARGETS)
|
||||
get_property(subdirs DIRECTORY ${current_dir} PROPERTY SUBDIRECTORIES)
|
||||
|
||||
foreach(subdir ${subdirs})
|
||||
_get_all_cmake_targets(subdir_targets ${subdir})
|
||||
list(APPEND targets ${subdir_targets})
|
||||
endforeach()
|
||||
|
||||
set(${out_var} ${targets} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
if(NOT DEFINED QMK_KEYBOARD)
|
||||
# configure step - populate targets
|
||||
project(qmk_firmware)
|
||||
|
||||
add_subdirectory(keyboards)
|
||||
|
||||
else()
|
||||
# build step
|
||||
if(NOT DEFINED QMK_KEYMAP_FOLDER)
|
||||
set(QMK_KEYMAP_FOLDER "default")
|
||||
endif()
|
||||
|
||||
resolve_keyboard(${QMK_KEYBOARD_FOLDER} QMK_KEYBOARD_FOLDER_ABS)
|
||||
cmake_path(IS_PREFIX QMK_KEYBOARDS_FOLDER "${QMK_KEYBOARD_FOLDER_ABS}" IS_KEYBOARDS_FOLDER)
|
||||
resolve_config_h(${QMK_KEYBOARD_FOLDER_ABS} QMK_KEYBOARD_CONFIG_H)
|
||||
process_keyboard()
|
||||
resolve_keyboard_h(${QMK_KEYBOARD_FOLDER_ABS} QMK_KEYBOARD_H)
|
||||
resolve_keymap_c(${QMK_KEYBOARD_FOLDER_ABS} ${QMK_KEYMAP_FOLDER} QMK_KEYMAP_C)
|
||||
|
||||
message(STATUS "config.h: ${QMK_KEYBOARD_CONFIG_H}")
|
||||
message(STATUS "keyboard.h: ${QMK_KEYBOARD_H}")
|
||||
message(STATUS "keymap.c: ${QMK_KEYMAP_C}")
|
||||
|
||||
|
||||
project(${QMK_KEYBOARD}
|
||||
LANGUAGES C CXX ASM
|
||||
HOMEPAGE_URL ${URL}
|
||||
VERSION ${DEVICE_VER})
|
||||
|
||||
# add_compile_options(
|
||||
# -include ${QMK_KEYBOARD_CONFIG_H}
|
||||
# )
|
||||
add_compile_definitions(
|
||||
QMK_KEYBOARD_H="${QMK_KEYBOARD_H}"
|
||||
KEYBOARD_${QMK_KEYBOARD}
|
||||
KEYMAP_C="${QMK_KEYMAP_C}"
|
||||
MATRIX_ROWS=8
|
||||
MATRIX_COLS=6
|
||||
)
|
||||
|
||||
if(DEFINED DIODE_DIRECTION)
|
||||
add_compile_definitions(DIODE_DIRECTION=${DIODE_DIRECTION})
|
||||
endif()
|
||||
|
||||
include_directories(${CMAKE_SOURCE_DIR})
|
||||
|
||||
# if(EXISTS ${QMK_KEYBOARD_FOLDER_ABS}/CMakeLists.txt)
|
||||
# add_subdirectory(${QMK_KEYBOARD_FOLDER_ABS})
|
||||
# else()
|
||||
file(GLOB KEYBOARD_SRC "${QMK_KEYBOARD_FOLDER_ABS}/*.c")
|
||||
list(REMOVE_ITEM KEYBOARD_SRC "${QMK_KEYMAP_C}")
|
||||
add_qmk_executable(${TARGET_NAME} ${KEYBOARD_SRC})
|
||||
|
||||
# endif()
|
||||
# add_library(qmk)
|
||||
|
||||
target_precompile_headers(qmk PUBLIC
|
||||
${QMK_KEYBOARD_CONFIG_H}
|
||||
)
|
||||
|
||||
resolve_keyboard_includes(${QMK_KEYBOARD_FOLDER_ABS})
|
||||
|
||||
add_subdirectory(quantum)
|
||||
add_subdirectory(platforms)
|
||||
add_subdirectory(tmk_core/protocol)
|
||||
|
||||
include(features/oled)
|
||||
include(features/backlight)
|
||||
include(features/eeprom)
|
||||
include(features/matrix)
|
||||
include(features/fnv)
|
||||
endif()
|
||||
67
Makefile
67
Makefile
@@ -19,8 +19,13 @@ endif
|
||||
# Otherwise the [OK], [ERROR] and [WARN] messages won't be displayed correctly
|
||||
override SILENT := false
|
||||
|
||||
ifeq ($(shell git rev-parse --is-inside-work-tree 2>/dev/null),)
|
||||
export SKIP_GIT := yes
|
||||
export NOT_REPO := yes
|
||||
endif
|
||||
|
||||
ifdef SKIP_VERSION
|
||||
SKIP_GIT := yes
|
||||
export SKIP_GIT := yes
|
||||
endif
|
||||
|
||||
ifndef SUB_IS_SILENT
|
||||
@@ -43,17 +48,10 @@ ON_ERROR := error_occurred=1
|
||||
|
||||
BREAK_ON_ERRORS = no
|
||||
|
||||
STARTING_MAKEFILE := $(firstword $(MAKEFILE_LIST))
|
||||
ROOT_MAKEFILE := $(lastword $(MAKEFILE_LIST))
|
||||
ROOT_DIR := $(dir $(ROOT_MAKEFILE))
|
||||
ROOT_DIR := $(dir $(lastword $(MAKEFILE_LIST)))
|
||||
ifeq ($(ROOT_DIR),)
|
||||
ROOT_DIR := .
|
||||
endif
|
||||
ABS_STARTING_MAKEFILE := $(abspath $(STARTING_MAKEFILE))
|
||||
ABS_ROOT_MAKEFILE := $(abspath $(ROOT_MAKEFILE))
|
||||
ABS_STARTING_DIR := $(dir $(ABS_STARTING_MAKEFILE))
|
||||
ABS_ROOT_DIR := $(dir $(ABS_ROOT_MAKEFILE))
|
||||
STARTING_DIR := $(subst $(ABS_ROOT_DIR),,$(ABS_STARTING_DIR))
|
||||
|
||||
include paths.mk
|
||||
|
||||
@@ -126,29 +124,16 @@ endef
|
||||
define PARSE_RULE
|
||||
RULE := $1
|
||||
COMMANDS :=
|
||||
REQUIRE_PLATFORM_KEY :=
|
||||
# If the rule starts with all, then continue the parsing from
|
||||
# PARSE_ALL_KEYBOARDS
|
||||
ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all),true)
|
||||
KEYBOARD_RULE=all
|
||||
$$(eval $$(call PARSE_ALL_KEYBOARDS))
|
||||
else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all-avr),true)
|
||||
KEYBOARD_RULE=all
|
||||
REQUIRE_PLATFORM_KEY := avr
|
||||
$$(eval $$(call PARSE_ALL_KEYBOARDS))
|
||||
else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all-chibios),true)
|
||||
KEYBOARD_RULE=all
|
||||
REQUIRE_PLATFORM_KEY := chibios
|
||||
$$(eval $$(call PARSE_ALL_KEYBOARDS))
|
||||
else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all-arm_atsam),true)
|
||||
KEYBOARD_RULE=all
|
||||
REQUIRE_PLATFORM_KEY := arm_atsam
|
||||
$$(eval $$(call PARSE_ALL_KEYBOARDS))
|
||||
else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,test),true)
|
||||
$$(eval $$(call PARSE_TEST))
|
||||
# If the rule starts with the name of a known keyboard, then continue
|
||||
# the parsing from PARSE_KEYBOARD
|
||||
else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(shell util/list_keyboards.sh | sort -u)),true)
|
||||
else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(shell $(QMK_BIN) list-keyboards --no-resolve-defaults)),true)
|
||||
KEYBOARD_RULE=$$(MATCHED_ITEM)
|
||||
$$(eval $$(call PARSE_KEYBOARD,$$(MATCHED_ITEM)))
|
||||
else
|
||||
@@ -241,7 +226,7 @@ endef
|
||||
# if we are going to compile all keyboards, match the rest of the rule
|
||||
# for each of them
|
||||
define PARSE_ALL_KEYBOARDS
|
||||
$$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYBOARD,$(shell util/list_keyboards.sh | sort -u)))
|
||||
$$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYBOARD,$(shell $(QMK_BIN) list-keyboards --no-resolve-defaults)))
|
||||
endef
|
||||
|
||||
# Prints a list of all known keymaps for the given keyboard
|
||||
@@ -273,7 +258,7 @@ define PARSE_KEYMAP
|
||||
# Format it in bold
|
||||
KB_SP := $(BOLD)$$(KB_SP)$(NO_COLOR)
|
||||
# Specify the variables that we are passing forward to submake
|
||||
MAKE_VARS := KEYBOARD=$$(CURRENT_KB) KEYMAP=$$(CURRENT_KM) REQUIRE_PLATFORM_KEY=$$(REQUIRE_PLATFORM_KEY) QMK_BIN=$$(QMK_BIN)
|
||||
MAKE_VARS := KEYBOARD=$$(CURRENT_KB) KEYMAP=$$(CURRENT_KM) QMK_BIN=$$(QMK_BIN)
|
||||
# And the first part of the make command
|
||||
MAKE_CMD := $$(MAKE) -r -R -C $(ROOT_DIR) -f $(BUILDDEFS_PATH)/build_keyboard.mk $$(MAKE_TARGET)
|
||||
# The message to display
|
||||
@@ -390,25 +375,15 @@ endef
|
||||
# Catch everything and parse the command line ourselves.
|
||||
.PHONY: %
|
||||
%:
|
||||
# Check if we have the CMP tool installed
|
||||
cmp $(ROOT_DIR)/Makefile $(ROOT_DIR)/Makefile >/dev/null 2>&1; if [ $$? -gt 0 ]; then printf "$(MSG_NO_CMP)"; exit 1; fi;
|
||||
# Ensure that $(QMK_BIN) works.
|
||||
if ! $(QMK_BIN) hello 1> /dev/null 2>&1; then printf "$(MSG_PYTHON_MISSING)"; exit 1; fi
|
||||
# Check if the submodules are dirty, and display a warning if they are
|
||||
ifdef NOT_REPO
|
||||
printf "$(MSG_NOT_REPO)"
|
||||
endif
|
||||
ifndef SKIP_GIT
|
||||
if [ ! -e lib/chibios ]; then git submodule sync lib/chibios && git submodule update --depth 50 --init lib/chibios; fi
|
||||
if [ ! -e lib/chibios-contrib ]; then git submodule sync lib/chibios-contrib && git submodule update --depth 50 --init lib/chibios-contrib; fi
|
||||
if [ ! -e lib/lufa ]; then git submodule sync lib/lufa && git submodule update --depth 50 --init lib/lufa; fi
|
||||
if [ ! -e lib/vusb ]; then git submodule sync lib/vusb && git submodule update --depth 50 --init lib/vusb; fi
|
||||
if [ ! -e lib/printf ]; then git submodule sync lib/printf && git submodule update --depth 50 --init lib/printf; fi
|
||||
if [ ! -e lib/pico-sdk ]; then git submodule sync lib/pico-sdk && git submodule update --depth 50 --init lib/pico-sdk; fi
|
||||
git submodule status --recursive 2>/dev/null | \
|
||||
while IFS= read -r x; do \
|
||||
case "$$x" in \
|
||||
\ *) ;; \
|
||||
*) printf "$(MSG_SUBMODULE_DIRTY)";break;; \
|
||||
esac \
|
||||
done
|
||||
$(QMK_BIN) git-submodule --sync
|
||||
# Check if the submodules are dirty, and display a warning if they are
|
||||
if ! $(QMK_BIN) git-submodule --check 1> /dev/null 2>&1; then printf "$(MSG_SUBMODULE_DIRTY)"; fi
|
||||
endif
|
||||
rm -f $(ERROR_FILE) > /dev/null 2>&1
|
||||
$(eval $(call PARSE_RULE,$@))
|
||||
@@ -429,22 +404,18 @@ lib/%:
|
||||
|
||||
.PHONY: git-submodule
|
||||
git-submodule:
|
||||
[ -e lib/ugfx ] && rm -rf lib/ugfx || true
|
||||
[ -e lib/pico-sdk ] && rm -rf lib/pico-sdk || true
|
||||
[ -e lib/chibios-contrib/ext/mcux-sdk ] && rm -rf lib/chibios-contrib/ext/mcux-sdk || true
|
||||
git submodule sync --recursive
|
||||
git submodule update --init --recursive --progress
|
||||
$(QMK_BIN) git-submodule
|
||||
|
||||
.PHONY: git-submodules
|
||||
git-submodules: git-submodule
|
||||
|
||||
.PHONY: list-keyboards
|
||||
list-keyboards:
|
||||
util/list_keyboards.sh | sort -u | tr '\n' ' '
|
||||
$(QMK_BIN) list-keyboards --no-resolve-defaults | tr '\n' ' '
|
||||
|
||||
.PHONY: generate-keyboards-file
|
||||
generate-keyboards-file:
|
||||
util/list_keyboards.sh | sort -u
|
||||
$(QMK_BIN) list-keyboards --no-resolve-defaults
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
|
||||
@@ -24,6 +24,8 @@ $(TEST)_SRC := \
|
||||
tests/test_common/matrix.c \
|
||||
tests/test_common/test_driver.cpp \
|
||||
tests/test_common/keyboard_report_util.cpp \
|
||||
tests/test_common/keycode_util.cpp \
|
||||
tests/test_common/keycode_table.cpp \
|
||||
tests/test_common/test_fixture.cpp \
|
||||
tests/test_common/test_keymap_key.cpp \
|
||||
tests/test_common/test_logger.cpp \
|
||||
|
||||
@@ -29,6 +29,11 @@ KEYBOARD_FILESAFE := $(subst /,_,$(KEYBOARD))
|
||||
TARGET ?= $(KEYBOARD_FILESAFE)_$(KEYMAP)
|
||||
KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD_FILESAFE)
|
||||
|
||||
ifeq ($(strip $(DUMP_CI_METADATA)),yes)
|
||||
$(info CI Metadata: KEYBOARD=$(KEYBOARD))
|
||||
$(info CI Metadata: KEYMAP=$(KEYMAP))
|
||||
endif
|
||||
|
||||
# Force expansion
|
||||
TARGET := $(TARGET)
|
||||
|
||||
@@ -46,11 +51,12 @@ ifdef SKIP_VERSION
|
||||
endif
|
||||
|
||||
# Generate the version.h file
|
||||
VERSION_H_FLAGS :=
|
||||
ifdef SKIP_VERSION
|
||||
VERSION_H_FLAGS := --skip-all
|
||||
VERSION_H_FLAGS += --skip-all
|
||||
endif
|
||||
ifdef SKIP_GIT
|
||||
VERSION_H_FLAGS := --skip-git
|
||||
VERSION_H_FLAGS += --skip-git
|
||||
endif
|
||||
|
||||
# Generate the board's version.h file.
|
||||
@@ -182,7 +188,14 @@ endif
|
||||
|
||||
include $(BUILDDEFS_PATH)/converters.mk
|
||||
|
||||
include $(BUILDDEFS_PATH)/mcu_selection.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')
|
||||
ifeq ($(PLATFORM_KEY),)
|
||||
$(call CATASTROPHIC_ERROR,Platform not defined)
|
||||
endif
|
||||
PLATFORM=$(shell echo $(PLATFORM_KEY) | tr '[:lower:]' '[:upper:]')
|
||||
|
||||
# Find all the C source files to be compiled in subfolders.
|
||||
KEYBOARD_SRC :=
|
||||
@@ -257,24 +270,6 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_5)/$(KEYBOARD_FOLDER_5).h)","")
|
||||
FOUND_KEYBOARD_H = $(KEYBOARD_FOLDER_5).h
|
||||
endif
|
||||
|
||||
# Determine and set parameters based on the keyboard's processor family.
|
||||
# We can assume a ChibiOS target When MCU_FAMILY is defined since it's
|
||||
# not used for LUFA
|
||||
ifdef MCU_FAMILY
|
||||
PLATFORM=CHIBIOS
|
||||
PLATFORM_KEY=chibios
|
||||
FIRMWARE_FORMAT?=bin
|
||||
OPT_DEFS += -DMCU_$(MCU_FAMILY)
|
||||
else ifdef ARM_ATSAM
|
||||
PLATFORM=ARM_ATSAM
|
||||
PLATFORM_KEY=arm_atsam
|
||||
FIRMWARE_FORMAT=bin
|
||||
else
|
||||
PLATFORM=AVR
|
||||
PLATFORM_KEY=avr
|
||||
FIRMWARE_FORMAT?=hex
|
||||
endif
|
||||
|
||||
# Find all of the config.h files and add them to our CONFIG_H define.
|
||||
CONFIG_H :=
|
||||
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/config.h)","")
|
||||
@@ -433,13 +428,6 @@ SRC += $(TMK_COMMON_SRC)
|
||||
OPT_DEFS += $(TMK_COMMON_DEFS)
|
||||
EXTRALDFLAGS += $(TMK_COMMON_LDFLAGS)
|
||||
|
||||
SKIP_COMPILE := no
|
||||
ifneq ($(REQUIRE_PLATFORM_KEY),)
|
||||
ifneq ($(REQUIRE_PLATFORM_KEY),$(PLATFORM_KEY))
|
||||
SKIP_COMPILE := yes
|
||||
endif
|
||||
endif
|
||||
|
||||
-include $(PLATFORM_PATH)/$(PLATFORM_KEY)/bootloader.mk
|
||||
include $(PLATFORM_PATH)/$(PLATFORM_KEY)/platform.mk
|
||||
-include $(PLATFORM_PATH)/$(PLATFORM_KEY)/flash.mk
|
||||
@@ -479,28 +467,28 @@ $(KEYBOARD_OUTPUT)_INC := $(PROJECT_INC)
|
||||
$(KEYBOARD_OUTPUT)_CONFIG := $(PROJECT_CONFIG)
|
||||
|
||||
# Default target.
|
||||
ifeq ($(SKIP_COMPILE),no)
|
||||
all: build check-size
|
||||
else
|
||||
all:
|
||||
echo "skipped" >&2
|
||||
endif
|
||||
|
||||
build: elf cpfirmware
|
||||
check-size: build
|
||||
check-md5: build
|
||||
objs-size: build
|
||||
|
||||
ifneq ($(strip $(TOP_SYMBOLS)),)
|
||||
ifeq ($(strip $(TOP_SYMBOLS)),yes)
|
||||
NUM_TOP_SYMBOLS := 10
|
||||
else
|
||||
NUM_TOP_SYMBOLS := $(strip $(TOP_SYMBOLS))
|
||||
endif
|
||||
all: top-symbols
|
||||
check-size: top-symbols
|
||||
top-symbols: build
|
||||
echo "###########################################"
|
||||
echo "# Highest flash usage:"
|
||||
$(NM) -Crtd --size-sort $(BUILD_DIR)/$(TARGET).elf | grep -i ' [t] ' | head -n10 | sed -e 's#^0000000# #g' -e 's#^000000# #g' -e 's#^00000# #g' -e 's#^0000# #g' -e 's#^000# #g' -e 's#^00# #g' -e 's#^0# #g'
|
||||
$(NM) -Crtd --size-sort $(BUILD_DIR)/$(TARGET).elf | grep -i ' [t] ' | head -n$(NUM_TOP_SYMBOLS) | sed -e 's#^0000000# #g' -e 's#^000000# #g' -e 's#^00000# #g' -e 's#^0000# #g' -e 's#^000# #g' -e 's#^00# #g' -e 's#^0# #g'
|
||||
echo "###########################################"
|
||||
echo "# Highest RAM usage:"
|
||||
$(NM) -Crtd --size-sort $(BUILD_DIR)/$(TARGET).elf | grep -i ' [dbv] ' | head -n10 | sed -e 's#^0000000# #g' -e 's#^000000# #g' -e 's#^00000# #g' -e 's#^0000# #g' -e 's#^000# #g' -e 's#^00# #g' -e 's#^0# #g'
|
||||
$(NM) -Crtd --size-sort $(BUILD_DIR)/$(TARGET).elf | grep -i ' [dbv] ' | head -n$(NUM_TOP_SYMBOLS) | sed -e 's#^0000000# #g' -e 's#^000000# #g' -e 's#^00000# #g' -e 's#^0000# #g' -e 's#^000# #g' -e 's#^00# #g' -e 's#^0# #g'
|
||||
echo "###########################################"
|
||||
endif
|
||||
|
||||
|
||||
@@ -62,6 +62,7 @@ include $(PLATFORM_PATH)/common.mk
|
||||
include $(TMK_PATH)/protocol.mk
|
||||
include $(QUANTUM_PATH)/debounce/tests/rules.mk
|
||||
include $(QUANTUM_PATH)/encoder/tests/rules.mk
|
||||
include $(QUANTUM_PATH)/os_detection/tests/rules.mk
|
||||
include $(QUANTUM_PATH)/sequencer/tests/rules.mk
|
||||
include $(QUANTUM_PATH)/wear_leveling/tests/rules.mk
|
||||
include $(QUANTUM_PATH)/logging/print.mk
|
||||
|
||||
@@ -84,6 +84,13 @@ endif
|
||||
ifeq ($(strip $(MIDI_ENABLE)), yes)
|
||||
OPT_DEFS += -DMIDI_ENABLE
|
||||
MUSIC_ENABLE = yes
|
||||
COMMON_VPATH += $(QUANTUM_PATH)/midi
|
||||
SRC += $(QUANTUM_DIR)/midi/midi.c
|
||||
SRC += $(QUANTUM_DIR)/midi/midi_device.c
|
||||
SRC += $(QUANTUM_DIR)/midi/qmk_midi.c
|
||||
SRC += $(QUANTUM_DIR)/midi/sysex_tools.c
|
||||
SRC += $(QUANTUM_DIR)/midi/bytequeue/bytequeue.c
|
||||
SRC += $(QUANTUM_DIR)/midi/bytequeue/interrupt_setting.c
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_midi.c
|
||||
endif
|
||||
|
||||
@@ -230,7 +237,7 @@ else
|
||||
# Wear-leveling EEPROM implementation, backed by MCU flash
|
||||
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING
|
||||
SRC += eeprom_driver.c eeprom_wear_leveling.c
|
||||
WEAR_LEVELING_DRIVER = embedded_flash
|
||||
WEAR_LEVELING_DRIVER ?= embedded_flash
|
||||
else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),)
|
||||
# True EEPROM on STM32L0xx, L1xx
|
||||
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_STM32_L0_L1
|
||||
@@ -239,7 +246,7 @@ else
|
||||
# Wear-leveling EEPROM implementation, backed by RP2040 flash
|
||||
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING
|
||||
SRC += eeprom_driver.c eeprom_wear_leveling.c
|
||||
WEAR_LEVELING_DRIVER = rp2040_flash
|
||||
WEAR_LEVELING_DRIVER ?= rp2040_flash
|
||||
else ifneq ($(filter $(MCU_SERIES),KL2x K20x),)
|
||||
# Teensy EEPROM implementations
|
||||
OPT_DEFS += -DEEPROM_KINETIS_FLEXRAM
|
||||
@@ -613,6 +620,7 @@ ifeq ($(strip $(VIA_ENABLE)), yes)
|
||||
DYNAMIC_KEYMAP_ENABLE := yes
|
||||
RAW_ENABLE := yes
|
||||
BOOTMAGIC_ENABLE := yes
|
||||
TRI_LAYER_ENABLE := yes
|
||||
SRC += $(QUANTUM_DIR)/via.c
|
||||
OPT_DEFS += -DVIA_ENABLE
|
||||
endif
|
||||
@@ -907,3 +915,11 @@ ifeq ($(strip $(ENCODER_ENABLE)), yes)
|
||||
OPT_DEFS += -DENCODER_MAP_ENABLE
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(OS_DETECTION_ENABLE)), yes)
|
||||
SRC += $(QUANTUM_DIR)/os_detection.c
|
||||
OPT_DEFS += -DOS_DETECTION_ENABLE
|
||||
ifeq ($(strip $(OS_DETECTION_DEBUG_ENABLE)), yes)
|
||||
OPT_DEFS += -DOS_DETECTION_DEBUG_ENABLE
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -218,8 +218,8 @@ gccversion :
|
||||
@$(SILENT) || printf "$(MSG_FLASH) $@" | $(AWK_CMD)
|
||||
@$(BUILD_CMD)
|
||||
|
||||
%.uf2: %.hex
|
||||
$(eval CMD=$(UF2CONV) $(BUILD_DIR)/$(TARGET).hex --output $(BUILD_DIR)/$(TARGET).uf2 --convert --family $(UF2_FAMILY) >/dev/null 2>&1)
|
||||
%.uf2: %.elf
|
||||
$(eval CMD=$(HEX) $< $(BUILD_DIR)/$(TARGET).tmp && $(UF2CONV) $(BUILD_DIR)/$(TARGET).tmp --output $@ --convert --family $(UF2_FAMILY) >/dev/null 2>&1)
|
||||
#@$(SILENT) || printf "$(MSG_EXECUTING) '$(CMD)':\n"
|
||||
@$(SILENT) || printf "$(MSG_UF2) $@" | $(AWK_CMD)
|
||||
@$(BUILD_CMD)
|
||||
|
||||
@@ -1,30 +1,25 @@
|
||||
# Note for new boards -- CTPC and CONVERT_TO_PROTON_C are deprecated terms
|
||||
# and should not be replicated for new boards. These will be removed from
|
||||
# documentation as well as existing keymaps in due course.
|
||||
ifeq ($(strip $(CTPC)), yes)
|
||||
CONVERT_TO_PROTON_C=yes
|
||||
endif
|
||||
ifeq ($(strip $(CONVERT_TO_PROTON_C)), yes)
|
||||
CONVERT_TO=proton_c
|
||||
|
||||
cpfirmware: ctpc_warning
|
||||
.INTERMEDIATE: ctpc_warning
|
||||
ctpc_warning: elf
|
||||
$(info @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)
|
||||
$(info The `CONVERT_TO_PROTON_C` and `CTPC` options are soon to be deprecated.)
|
||||
$(info Boards should be changed to use `CONVERT_TO=proton_c` instead.)
|
||||
$(info @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)
|
||||
ifneq ($(findstring yes, $(CTPC)$(CONVERT_TO_PROTON_C)),)
|
||||
$(call CATASTROPHIC_ERROR,The `CONVERT_TO_PROTON_C` and `CTPC` options are now deprecated. `CONVERT_TO=proton_c` should be used instead.)
|
||||
endif
|
||||
|
||||
# TODO: opt in rather than assume everything uses a pro micro
|
||||
PIN_COMPATIBLE ?= promicro
|
||||
ifneq ($(CONVERT_TO),)
|
||||
# stash so we can overwrite env provided vars if needed
|
||||
ACTIVE_CONVERTER=$(CONVERT_TO)
|
||||
|
||||
# glob to search each platfrorm and/or check for valid converter
|
||||
CONVERTER := $(wildcard $(PLATFORM_PATH)/*/converters/$(PIN_COMPATIBLE)_to_$(CONVERT_TO)/)
|
||||
ifeq ($(CONVERTER),)
|
||||
$(call CATASTROPHIC_ERROR,Converting from '$(PIN_COMPATIBLE)' to '$(CONVERT_TO)' not possible!)
|
||||
endif
|
||||
|
||||
-include $(CONVERTER)/pre_converter.mk
|
||||
|
||||
PLATFORM_KEY = $(shell echo $(CONVERTER) | cut -d "/" -f2)
|
||||
TARGET := $(TARGET)_$(CONVERT_TO)
|
||||
|
||||
# Configure any defaults
|
||||
@@ -33,6 +28,9 @@ ifneq ($(CONVERT_TO),)
|
||||
OPT_DEFS += -DCONVERTER_ENABLED
|
||||
VPATH += $(CONVERTER)
|
||||
|
||||
# Configure for "alias" - worst case it produces an idential define
|
||||
OPT_DEFS += -DCONVERT_TO_$(strip $(shell echo $(ACTIVE_CONVERTER) | tr '[:lower:]' '[:upper:]'))
|
||||
|
||||
# Finally run any converter specific logic
|
||||
include $(CONVERTER)/converter.mk
|
||||
endif
|
||||
|
||||
@@ -39,6 +39,7 @@ GENERIC_FEATURES = \
|
||||
VELOCIKEY \
|
||||
WPM \
|
||||
DYNAMIC_TAPPING_TERM \
|
||||
TRI_LAYER
|
||||
|
||||
define HANDLE_GENERIC_FEATURE
|
||||
# $$(info "Processing: $1_ENABLE $2.c")
|
||||
|
||||
@@ -1,911 +0,0 @@
|
||||
MCU_ORIG := $(MCU)
|
||||
|
||||
ifneq ($(findstring MKL26Z64, $(MCU)),)
|
||||
# Cortex version
|
||||
MCU = cortex-m0plus
|
||||
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 6
|
||||
|
||||
## chip/board settings
|
||||
# - the next two should match the directories in
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
|
||||
# OR
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = KINETIS
|
||||
MCU_SERIES = KL2x
|
||||
|
||||
# Linker script to use
|
||||
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
||||
# or <keyboard_dir>/ld/
|
||||
MCU_LDSCRIPT ?= MKL26Z64
|
||||
|
||||
# Startup code to use
|
||||
# - it should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP ?= kl2x
|
||||
|
||||
# Board: it should exist either in <chibios>/os/hal/boards/,
|
||||
# <keyboard_dir>/boards/, or drivers/boards/
|
||||
BOARD ?= PJRC_TEENSY_LC
|
||||
endif
|
||||
|
||||
ifneq ($(findstring MK20DX128, $(MCU)),)
|
||||
# Cortex version
|
||||
MCU = cortex-m4
|
||||
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 7
|
||||
|
||||
## chip/board settings
|
||||
# - the next two should match the directories in
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
|
||||
# OR
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = KINETIS
|
||||
MCU_SERIES = K20x
|
||||
|
||||
# Linker script to use
|
||||
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
||||
# or <keyboard_dir>/ld/
|
||||
MCU_LDSCRIPT ?= MK20DX128
|
||||
|
||||
# Startup code to use
|
||||
# - it should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP ?= k20x5
|
||||
|
||||
# Board: it should exist either in <chibios>/os/hal/boards/,
|
||||
# <keyboard_dir>/boards/, or drivers/boards/
|
||||
BOARD ?= PJRC_TEENSY_3
|
||||
endif
|
||||
|
||||
ifneq ($(findstring MK20DX256, $(MCU)),)
|
||||
# Cortex version
|
||||
MCU = cortex-m4
|
||||
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 7
|
||||
|
||||
## chip/board settings
|
||||
# - the next two should match the directories in
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
|
||||
# OR
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = KINETIS
|
||||
MCU_SERIES = K20x
|
||||
|
||||
# Linker script to use
|
||||
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
||||
# or <keyboard_dir>/ld/
|
||||
MCU_LDSCRIPT ?= MK20DX256
|
||||
|
||||
# Startup code to use
|
||||
# - it should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP ?= k20x7
|
||||
|
||||
# Board: it should exist either in <chibios>/os/hal/boards/,
|
||||
# <keyboard_dir>/boards/, or drivers/boards/
|
||||
BOARD ?= PJRC_TEENSY_3_1
|
||||
endif
|
||||
|
||||
ifneq ($(findstring MK64FX512, $(MCU)),)
|
||||
# Cortex version
|
||||
MCU = cortex-m4
|
||||
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 7
|
||||
|
||||
## chip/board settings
|
||||
# - the next two should match the directories in
|
||||
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = KINETIS
|
||||
MCU_SERIES = K60x
|
||||
|
||||
# Linker script to use
|
||||
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
||||
# or <keyboard_dir>/ld/
|
||||
MCU_LDSCRIPT ?= MK64FX512
|
||||
|
||||
# Startup code to use
|
||||
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP ?= k60x
|
||||
|
||||
# Board: it should exist either in <chibios>/os/hal/boards/,
|
||||
# <keyboard_dir>/boards/, or drivers/boards/
|
||||
BOARD ?= PJRC_TEENSY_3_5
|
||||
endif
|
||||
|
||||
ifneq ($(findstring MK66FX1M0, $(MCU)),)
|
||||
# Cortex version
|
||||
MCU = cortex-m4
|
||||
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 7
|
||||
|
||||
## chip/board settings
|
||||
# - the next two should match the directories in
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
|
||||
# OR
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = KINETIS
|
||||
MCU_SERIES = MK66F18
|
||||
|
||||
# Linker script to use
|
||||
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
||||
# or <keyboard_dir>/ld/
|
||||
MCU_LDSCRIPT ?= MK66FX1M0
|
||||
|
||||
# Startup code to use
|
||||
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP ?= MK66F18
|
||||
|
||||
# Board: it should exist either in <chibios>/os/hal/boards/,
|
||||
# <keyboard_dir>/boards/, or drivers/boards/
|
||||
BOARD ?= PJRC_TEENSY_3_6
|
||||
endif
|
||||
|
||||
ifneq ($(findstring RP2040, $(MCU)),)
|
||||
# Cortex version
|
||||
MCU = cortex-m0plus
|
||||
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
CHIBIOS_PORT = ARMv6-M-RP2
|
||||
|
||||
## chip/board settings
|
||||
# - the next two should match the directories in
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
|
||||
# OR
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = RP
|
||||
MCU_SERIES = RP2040
|
||||
|
||||
# Linker script to use
|
||||
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
||||
# or <keyboard_dir>/ld/
|
||||
STARTUPLD_CONTRIB = $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/ld
|
||||
MCU_LDSCRIPT ?= RP2040_FLASH_TIMECRIT
|
||||
LDFLAGS += -L $(STARTUPLD_CONTRIB)
|
||||
|
||||
# Startup code to use
|
||||
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP ?= rp2040
|
||||
|
||||
# Board: it should exist either in <chibios>/os/hal/boards/,
|
||||
# <keyboard_dir>/boards/, or drivers/boards/
|
||||
BOARD ?= GENERIC_PROMICRO_RP2040
|
||||
|
||||
# Default UF2 Bootloader settings
|
||||
UF2_FAMILY ?= RP2040
|
||||
FIRMWARE_FORMAT ?= uf2
|
||||
endif
|
||||
|
||||
ifneq ($(findstring STM32F042, $(MCU)),)
|
||||
# Cortex version
|
||||
MCU = cortex-m0
|
||||
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 6
|
||||
|
||||
## chip/board settings
|
||||
# - the next two should match the directories in
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
|
||||
# OR
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32F0xx
|
||||
|
||||
# Linker script to use
|
||||
# - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
|
||||
# or <keyboard_dir>/ld/
|
||||
MCU_LDSCRIPT ?= STM32F042x6
|
||||
|
||||
# Startup code to use
|
||||
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP ?= stm32f0xx
|
||||
|
||||
# Board: it should exist either in <chibios>/os/hal/boards/,
|
||||
# <keyboard_dir>/boards/, or drivers/boards/
|
||||
BOARD ?= GENERIC_STM32_F042X6
|
||||
|
||||
USE_FPU ?= no
|
||||
|
||||
# UF2 settings
|
||||
UF2_FAMILY ?= STM32F0
|
||||
|
||||
# Stack sizes: Since this chip has limited RAM capacity, the stack area needs to be reduced.
|
||||
# This ensures that the EEPROM page buffer fits into RAM
|
||||
USE_PROCESS_STACKSIZE = 0x600
|
||||
USE_EXCEPTIONS_STACKSIZE = 0x300
|
||||
|
||||
# Bootloader address for STM32 DFU
|
||||
STM32_BOOTLOADER_ADDRESS ?= 0x1FFFC400
|
||||
endif
|
||||
|
||||
ifneq ($(findstring STM32F072, $(MCU)),)
|
||||
# Cortex version
|
||||
MCU = cortex-m0
|
||||
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 6
|
||||
|
||||
## chip/board settings
|
||||
# - the next two should match the directories in
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
|
||||
# OR
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32F0xx
|
||||
|
||||
# Linker script to use
|
||||
# - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
|
||||
# or <keyboard_dir>/ld/
|
||||
MCU_LDSCRIPT ?= STM32F072xB
|
||||
|
||||
# Startup code to use
|
||||
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP ?= stm32f0xx
|
||||
|
||||
# Board: it should exist either in <chibios>/os/hal/boards/,
|
||||
# <keyboard_dir>/boards/, or drivers/boards/
|
||||
BOARD ?= GENERIC_STM32_F072XB
|
||||
|
||||
USE_FPU ?= no
|
||||
|
||||
# UF2 settings
|
||||
UF2_FAMILY ?= STM32F0
|
||||
|
||||
# Bootloader address for STM32 DFU
|
||||
STM32_BOOTLOADER_ADDRESS ?= 0x1FFFC800
|
||||
endif
|
||||
|
||||
ifneq ($(findstring STM32F103, $(MCU)),)
|
||||
# Cortex version
|
||||
MCU = cortex-m3
|
||||
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 7
|
||||
|
||||
## chip/board settings
|
||||
# - the next two should match the directories in
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
|
||||
# OR
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32F1xx
|
||||
|
||||
# Linker script to use
|
||||
# - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
|
||||
# or <keyboard_dir>/ld/
|
||||
MCU_LDSCRIPT ?= STM32F103x8
|
||||
|
||||
# Startup code to use
|
||||
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP ?= stm32f1xx
|
||||
|
||||
# Board: it should exist either in <chibios>/os/hal/boards/,
|
||||
# <keyboard_dir>/boards/, or drivers/boards/
|
||||
BOARD ?= GENERIC_STM32_F103
|
||||
|
||||
USE_FPU ?= no
|
||||
|
||||
# UF2 settings
|
||||
UF2_FAMILY ?= STM32F1
|
||||
endif
|
||||
|
||||
ifneq ($(findstring STM32F303, $(MCU)),)
|
||||
# Cortex version
|
||||
MCU = cortex-m4
|
||||
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 7
|
||||
|
||||
## chip/board settings
|
||||
# - the next two should match the directories in
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
|
||||
# OR
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32F3xx
|
||||
|
||||
# Linker script to use
|
||||
# - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
|
||||
# or <keyboard_dir>/ld/
|
||||
MCU_LDSCRIPT ?= STM32F303xC
|
||||
|
||||
# Startup code to use
|
||||
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP ?= stm32f3xx
|
||||
|
||||
# Board: it should exist either in <chibios>/os/hal/boards/,
|
||||
# <keyboard_dir>/boards/, or drivers/boards/
|
||||
BOARD ?= GENERIC_STM32_F303XC
|
||||
|
||||
USE_FPU ?= yes
|
||||
|
||||
# UF2 settings
|
||||
UF2_FAMILY ?= STM32F3
|
||||
|
||||
# Bootloader address for STM32 DFU
|
||||
STM32_BOOTLOADER_ADDRESS ?= 0x1FFFD800
|
||||
endif
|
||||
|
||||
ifneq ($(findstring STM32F401, $(MCU)),)
|
||||
# Cortex version
|
||||
MCU = cortex-m4
|
||||
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 7
|
||||
|
||||
## chip/board settings
|
||||
# - the next two should match the directories in
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
|
||||
# OR
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32F4xx
|
||||
|
||||
# Linker script to use
|
||||
# - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
|
||||
# or <keyboard_dir>/ld/
|
||||
ifeq ($(strip $(BOOTLOADER)), tinyuf2)
|
||||
MCU_LDSCRIPT ?= STM32F401xC_tinyuf2
|
||||
else
|
||||
MCU_LDSCRIPT ?= STM32F401xC
|
||||
endif
|
||||
|
||||
# Startup code to use
|
||||
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP ?= stm32f4xx
|
||||
|
||||
# Board: it should exist either in <chibios>/os/hal/boards/,
|
||||
# <keyboard_dir>/boards/, or drivers/boards/
|
||||
BOARD ?= GENERIC_STM32_F401XC
|
||||
|
||||
USE_FPU ?= yes
|
||||
|
||||
# UF2 settings
|
||||
UF2_FAMILY ?= STM32F4
|
||||
|
||||
# Bootloader address for STM32 DFU
|
||||
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
|
||||
endif
|
||||
|
||||
ifneq ($(findstring STM32F405, $(MCU)),)
|
||||
# Cortex version
|
||||
MCU = cortex-m4
|
||||
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 7
|
||||
|
||||
## chip/board settings
|
||||
# - the next two should match the directories in
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
|
||||
# OR
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32F4xx
|
||||
|
||||
# Linker script to use
|
||||
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
||||
# or <keyboard_dir>/ld/
|
||||
MCU_LDSCRIPT ?= STM32F405xG
|
||||
|
||||
# Startup code to use
|
||||
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP ?= stm32f4xx
|
||||
|
||||
# Board: it should exist either in <chibios>/os/hal/boards/,
|
||||
# <keyboard_dir>/boards/, or drivers/boards/
|
||||
BOARD ?= GENERIC_STM32_F405XG
|
||||
|
||||
USE_FPU ?= yes
|
||||
|
||||
# UF2 settings
|
||||
UF2_FAMILY ?= STM32F4
|
||||
|
||||
# Bootloader address for STM32 DFU
|
||||
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
|
||||
endif
|
||||
|
||||
ifneq ($(findstring STM32F407, $(MCU)),)
|
||||
# Cortex version
|
||||
MCU = cortex-m4
|
||||
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 7
|
||||
|
||||
## chip/board settings
|
||||
# - the next two should match the directories in
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
|
||||
# OR
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32F4xx
|
||||
|
||||
# Linker script to use
|
||||
# - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
|
||||
# or <keyboard_dir>/ld/
|
||||
MCU_LDSCRIPT ?= STM32F407xE
|
||||
|
||||
# Startup code to use
|
||||
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP ?= stm32f4xx
|
||||
|
||||
# Board: it should exist either in <chibios>/os/hal/boards/,
|
||||
# <keyboard_dir>/boards/, or drivers/boards/
|
||||
BOARD ?= GENERIC_STM32_F407XE
|
||||
|
||||
USE_FPU ?= yes
|
||||
|
||||
# UF2 settings
|
||||
UF2_FAMILY ?= STM32F4
|
||||
|
||||
# Bootloader address for STM32 DFU
|
||||
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
|
||||
endif
|
||||
|
||||
ifneq ($(findstring STM32F411, $(MCU)),)
|
||||
# Cortex version
|
||||
MCU = cortex-m4
|
||||
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 7
|
||||
|
||||
## chip/board settings
|
||||
# - the next two should match the directories in
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
|
||||
# OR
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32F4xx
|
||||
|
||||
# Linker script to use
|
||||
# - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
|
||||
# or <keyboard_dir>/ld/
|
||||
ifeq ($(strip $(BOOTLOADER)), tinyuf2)
|
||||
MCU_LDSCRIPT ?= STM32F411xE_tinyuf2
|
||||
else
|
||||
MCU_LDSCRIPT ?= STM32F411xE
|
||||
endif
|
||||
|
||||
# Startup code to use
|
||||
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP ?= stm32f4xx
|
||||
|
||||
# Board: it should exist either in <chibios>/os/hal/boards/,
|
||||
# <keyboard_dir>/boards/, or drivers/boards/
|
||||
BOARD ?= GENERIC_STM32_F411XE
|
||||
|
||||
USE_FPU ?= yes
|
||||
|
||||
# UF2 settings
|
||||
UF2_FAMILY ?= STM32F4
|
||||
|
||||
# Bootloader address for STM32 DFU
|
||||
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
|
||||
endif
|
||||
|
||||
ifneq ($(findstring STM32F446, $(MCU)),)
|
||||
# Cortex version
|
||||
MCU = cortex-m4
|
||||
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 7
|
||||
|
||||
## chip/board settings
|
||||
# - the next two should match the directories in
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
|
||||
# OR
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32F4xx
|
||||
|
||||
# Linker script to use
|
||||
# - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
|
||||
# or <keyboard_dir>/ld/
|
||||
MCU_LDSCRIPT ?= STM32F446xE
|
||||
|
||||
# Startup code to use
|
||||
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP ?= stm32f4xx
|
||||
|
||||
# Board: it should exist either in <chibios>/os/hal/boards/,
|
||||
# <keyboard_dir>/boards/, or drivers/boards/
|
||||
BOARD ?= GENERIC_STM32_F446XE
|
||||
|
||||
USE_FPU ?= yes
|
||||
|
||||
# Bootloader address for STM32 DFU
|
||||
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
|
||||
|
||||
# Default as no chibios efl config
|
||||
EEPROM_DRIVER ?= transient
|
||||
endif
|
||||
|
||||
ifneq ($(findstring STM32G431, $(MCU)),)
|
||||
# Cortex version
|
||||
MCU = cortex-m4
|
||||
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 7
|
||||
|
||||
## chip/board settings
|
||||
# - the next two should match the directories in
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
|
||||
# OR
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32G4xx
|
||||
|
||||
# Linker script to use
|
||||
# - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
|
||||
# or <keyboard_dir>/ld/
|
||||
MCU_LDSCRIPT ?= STM32G431xB
|
||||
|
||||
# Startup code to use
|
||||
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP ?= stm32g4xx
|
||||
|
||||
# Board: it should exist either in <chibios>/os/hal/boards/,
|
||||
# <keyboard_dir>/boards/, or drivers/boards/
|
||||
BOARD ?= GENERIC_STM32_G431XB
|
||||
|
||||
USE_FPU ?= yes
|
||||
|
||||
# UF2 settings
|
||||
UF2_FAMILY ?= STM32G4
|
||||
|
||||
# Bootloader address for STM32 DFU
|
||||
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
|
||||
endif
|
||||
|
||||
ifneq ($(findstring STM32G474, $(MCU)),)
|
||||
# Cortex version
|
||||
MCU = cortex-m4
|
||||
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 7
|
||||
|
||||
## chip/board settings
|
||||
# - the next two should match the directories in
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
|
||||
# OR
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32G4xx
|
||||
|
||||
# Linker script to use
|
||||
# - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
|
||||
# or <keyboard_dir>/ld/
|
||||
MCU_LDSCRIPT ?= STM32G474xE
|
||||
|
||||
# Startup code to use
|
||||
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP ?= stm32g4xx
|
||||
|
||||
# Board: it should exist either in <chibios>/os/hal/boards/,
|
||||
# <keyboard_dir>/boards/, or drivers/boards/
|
||||
BOARD ?= GENERIC_STM32_G474XE
|
||||
|
||||
USE_FPU ?= yes
|
||||
|
||||
# UF2 settings
|
||||
UF2_FAMILY ?= STM32G4
|
||||
|
||||
# Bootloader address for STM32 DFU
|
||||
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
|
||||
endif
|
||||
|
||||
ifneq (,$(filter $(MCU),STM32L432 STM32L442))
|
||||
# Cortex version
|
||||
MCU = cortex-m4
|
||||
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 7
|
||||
|
||||
## chip/board settings
|
||||
# - the next two should match the directories in
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
|
||||
# OR
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32L4xx
|
||||
|
||||
# Linker script to use
|
||||
# - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
|
||||
# or <keyboard_dir>/ld/
|
||||
MCU_LDSCRIPT ?= STM32L432xC
|
||||
|
||||
# Startup code to use
|
||||
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP ?= stm32l4xx
|
||||
|
||||
# Board: it should exist either in <chibios>/os/hal/boards/,
|
||||
# <keyboard_dir>/boards/, or drivers/boards/
|
||||
BOARD ?= GENERIC_STM32_L432XC
|
||||
|
||||
PLATFORM_NAME ?= platform_l432
|
||||
|
||||
USE_FPU ?= yes
|
||||
|
||||
# UF2 settings
|
||||
UF2_FAMILY ?= STM32L4
|
||||
|
||||
# Bootloader address for STM32 DFU
|
||||
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
|
||||
endif
|
||||
|
||||
ifneq (,$(filter $(MCU),STM32L433 STM32L443))
|
||||
# Cortex version
|
||||
MCU = cortex-m4
|
||||
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 7
|
||||
|
||||
## chip/board settings
|
||||
# - the next two should match the directories in
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
|
||||
# OR
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32L4xx
|
||||
|
||||
# Linker script to use
|
||||
# - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
|
||||
# or <keyboard_dir>/ld/
|
||||
MCU_LDSCRIPT ?= STM32L432xC
|
||||
|
||||
# Startup code to use
|
||||
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP ?= stm32l4xx
|
||||
|
||||
# Board: it should exist either in <chibios>/os/hal/boards/,
|
||||
# <keyboard_dir>/boards/, or drivers/boards/
|
||||
BOARD ?= GENERIC_STM32_L433XC
|
||||
|
||||
PLATFORM_NAME ?= platform_l432
|
||||
|
||||
USE_FPU ?= yes
|
||||
|
||||
# UF2 settings
|
||||
UF2_FAMILY ?= STM32L4
|
||||
|
||||
# Bootloader address for STM32 DFU
|
||||
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
|
||||
endif
|
||||
|
||||
ifneq (,$(filter $(MCU),STM32L412 STM32L422))
|
||||
# Cortex version
|
||||
MCU = cortex-m4
|
||||
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 7
|
||||
|
||||
## chip/board settings
|
||||
# - the next two should match the directories in
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
|
||||
# OR
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = STM32
|
||||
MCU_SERIES = STM32L4xx
|
||||
|
||||
# Linker script to use
|
||||
# - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
|
||||
# or <keyboard_dir>/ld/
|
||||
MCU_LDSCRIPT ?= STM32L412xB
|
||||
|
||||
# Startup code to use
|
||||
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP ?= stm32l4xx
|
||||
|
||||
# Board: it should exist either in <chibios>/os/hal/boards/,
|
||||
# <keyboard_dir>/boards/, or drivers/boards/
|
||||
BOARD ?= GENERIC_STM32_L412XB
|
||||
|
||||
PLATFORM_NAME ?= platform_l412_l422
|
||||
|
||||
USE_FPU ?= yes
|
||||
|
||||
# UF2 settings
|
||||
UF2_FAMILY ?= STM32L4
|
||||
|
||||
# Bootloader address for STM32 DFU
|
||||
STM32_BOOTLOADER_ADDRESS ?= 0x1FFF0000
|
||||
endif
|
||||
|
||||
ifneq ($(findstring WB32F3G71, $(MCU)),)
|
||||
# Cortex version
|
||||
MCU = cortex-m3
|
||||
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 7
|
||||
|
||||
## chip/board settings
|
||||
# - the next two should match the directories in
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
|
||||
# OR
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = WB32
|
||||
MCU_SERIES = WB32F3G71xx
|
||||
|
||||
# Linker script to use
|
||||
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
||||
# or <keyboard_dir>/ld/
|
||||
MCU_LDSCRIPT ?= WB32F3G71x9
|
||||
|
||||
# Startup code to use
|
||||
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP ?= wb32f3g71xx
|
||||
|
||||
# Board: it should exist either in <chibios>/os/hal/boards/,
|
||||
# <keyboard_dir>/boards/, or drivers/boards/
|
||||
BOARD ?= GENERIC_WB32_F3G71XX
|
||||
|
||||
USE_FPU ?= no
|
||||
|
||||
# Bootloader address for WB32 DFU
|
||||
WB32_BOOTLOADER_ADDRESS ?= 0x1FFFE000
|
||||
endif
|
||||
|
||||
ifneq ($(findstring WB32FQ95, $(MCU)),)
|
||||
# Cortex version
|
||||
MCU = cortex-m3
|
||||
|
||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||
ARMV = 7
|
||||
|
||||
## chip/board settings
|
||||
# - the next two should match the directories in
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
|
||||
# OR
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_FAMILY = WB32
|
||||
MCU_SERIES = WB32FQ95xx
|
||||
|
||||
# Linker script to use
|
||||
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
||||
# or <keyboard_dir>/ld/
|
||||
MCU_LDSCRIPT ?= WB32FQ95xB
|
||||
|
||||
# Startup code to use
|
||||
# - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
|
||||
MCU_STARTUP ?= wb32fq95xx
|
||||
|
||||
# Board: it should exist either in <chibios>/os/hal/boards/,
|
||||
# <keyboard_dir>/boards/, or drivers/boards/
|
||||
BOARD ?= GENERIC_WB32_FQ95XX
|
||||
|
||||
USE_FPU ?= no
|
||||
|
||||
# Bootloader address for WB32 DFU
|
||||
WB32_BOOTLOADER_ADDRESS ?= 0x1FFFE000
|
||||
endif
|
||||
|
||||
ifneq ($(findstring GD32VF103, $(MCU)),)
|
||||
# RISC-V
|
||||
MCU = risc-v
|
||||
|
||||
# RISC-V extensions and abi configuration
|
||||
MCU_ARCH = rv32imac
|
||||
MCU_ABI = ilp32
|
||||
MCU_CMODEL = medlow
|
||||
|
||||
## chip/board settings
|
||||
# - the next two should match the directories in
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_PORT_NAME)/$(MCU_SERIES)
|
||||
# OR
|
||||
# <chibios[-contrib]>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||
MCU_PORT_NAME = GD
|
||||
MCU_FAMILY = GD32V
|
||||
MCU_SERIES = GD32VF103
|
||||
|
||||
# Linker script to use
|
||||
# - it should exist either in <chibios>/os/common/startup/RISCV-ECLIC/compilers/GCC/ld/
|
||||
# or <keyboard_dir>/ld/
|
||||
MCU_LDSCRIPT ?= GD32VF103xB
|
||||
|
||||
# Startup code to use
|
||||
# - it should exist in <chibios>/os/common/startup/RISCV-ECLIC/compilers/GCC/mk/
|
||||
MCU_STARTUP ?= gd32vf103
|
||||
|
||||
# Board: it should exist either in <chibios>/os/hal/boards/,
|
||||
# <keyboard_dir>/boards/, or drivers/boards/
|
||||
BOARD ?= SIPEED_LONGAN_NANO
|
||||
|
||||
USE_FPU ?= no
|
||||
endif
|
||||
|
||||
ifneq (,$(filter $(MCU),at90usb162 atmega16u2 atmega32u2 atmega16u4 atmega32u4 at90usb646 at90usb647 at90usb1286 at90usb1287))
|
||||
PROTOCOL = LUFA
|
||||
|
||||
# Processor frequency.
|
||||
# This will define a symbol, F_CPU, in all source code files equal to the
|
||||
# processor frequency in Hz. You can then use this symbol in your source code to
|
||||
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
|
||||
# automatically to create a 32-bit value in your source code.
|
||||
#
|
||||
# This will be an integer division of F_USB below, as it is sourced by
|
||||
# F_USB after it has run through any CPU prescalers. Note that this value
|
||||
# does not *change* the processor frequency - it should merely be updated to
|
||||
# reflect the processor speed set externally so that the code can use accurate
|
||||
# software delays.
|
||||
F_CPU ?= 16000000
|
||||
|
||||
# LUFA specific
|
||||
#
|
||||
# Target architecture (see library "Board Types" documentation).
|
||||
ARCH = AVR8
|
||||
|
||||
# Input clock frequency.
|
||||
# This will define a symbol, F_USB, in all source code files equal to the
|
||||
# input clock frequency (before any prescaling is performed) in Hz. This value may
|
||||
# differ from F_CPU if prescaling is used on the latter, and is required as the
|
||||
# raw input clock is fed directly to the PLL sections of the AVR for high speed
|
||||
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
|
||||
# at the end, this will be done automatically to create a 32-bit value in your
|
||||
# source code.
|
||||
#
|
||||
# If no clock division is performed on the input clock inside the AVR (via the
|
||||
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
|
||||
F_USB ?= $(F_CPU)
|
||||
|
||||
# Interrupt driven control endpoint task
|
||||
ifeq (,$(filter $(NO_INTERRUPT_CONTROL_ENDPOINT),yes))
|
||||
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
|
||||
endif
|
||||
ifneq (,$(filter $(MCU),at90usb162 atmega16u2 atmega32u2))
|
||||
NO_I2C = yes
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq (,$(filter $(MCU),atmega32a))
|
||||
# MCU name for avrdude
|
||||
AVRDUDE_MCU = m32
|
||||
|
||||
PROTOCOL = VUSB
|
||||
|
||||
# Processor frequency.
|
||||
# This will define a symbol, F_CPU, in all source code files equal to the
|
||||
# processor frequency in Hz. You can then use this symbol in your source code to
|
||||
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
|
||||
# automatically to create a 32-bit value in your source code.
|
||||
F_CPU ?= 12000000
|
||||
endif
|
||||
|
||||
ifneq (,$(filter $(MCU),atmega328p))
|
||||
# MCU name for avrdude
|
||||
AVRDUDE_MCU = m328p
|
||||
|
||||
PROTOCOL = VUSB
|
||||
|
||||
# Processor frequency.
|
||||
# This will define a symbol, F_CPU, in all source code files equal to the
|
||||
# processor frequency in Hz. You can then use this symbol in your source code to
|
||||
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
|
||||
# automatically to create a 32-bit value in your source code.
|
||||
F_CPU ?= 16000000
|
||||
endif
|
||||
|
||||
ifneq (,$(filter $(MCU),atmega328))
|
||||
# MCU name for avrdude
|
||||
AVRDUDE_MCU = m328
|
||||
|
||||
PROTOCOL = VUSB
|
||||
|
||||
# Processor frequency.
|
||||
# This will define a symbol, F_CPU, in all source code files equal to the
|
||||
# processor frequency in Hz. You can then use this symbol in your source code to
|
||||
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
|
||||
# automatically to create a 32-bit value in your source code.
|
||||
F_CPU ?= 16000000
|
||||
endif
|
||||
|
||||
ifneq (,$(filter $(MCU),attiny85))
|
||||
PROTOCOL = VUSB
|
||||
|
||||
# Processor frequency.
|
||||
# This will define a symbol, F_CPU, in all source code files equal to the
|
||||
# processor frequency in Hz. You can then use this symbol in your source code to
|
||||
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
|
||||
# automatically to create a 32-bit value in your source code.
|
||||
F_CPU ?= 16500000
|
||||
endif
|
||||
@@ -64,9 +64,10 @@ MSG_ASSEMBLING = Assembling:
|
||||
MSG_CLEANING = Cleaning project:
|
||||
MSG_CREATING_LIBRARY = Creating library:
|
||||
MSG_GENERATING = Generating:
|
||||
MSG_NOT_REPO = $(WARN_COLOR)WARNING:$(NO_COLOR) Target folder is not a git repo, you probably downloaded a zip file instead of cloning.\n\
|
||||
Please consider following $(BOLD)https://docs.qmk.fm/\#/newbs_getting_started$(NO_COLOR).\n\n
|
||||
MSG_SUBMODULE_DIRTY = $(WARN_COLOR)WARNING:$(NO_COLOR) Some git submodules are out of date or modified.\n\
|
||||
Please consider running $(BOLD)make git-submodule$(NO_COLOR).\n\n
|
||||
MSG_NO_CMP = $(ERROR_COLOR)Error:$(NO_COLOR)$(BOLD) cmp command not found, please install diffutils\n$(NO_COLOR)
|
||||
Please consider running $(BOLD)qmk git-submodule$(NO_COLOR).\n\n
|
||||
|
||||
define GENERATE_MSG_MAKE_KB
|
||||
MSG_MAKE_KB_ACTUAL := Making $$(KB_SP) with keymap $(BOLD)$$(CURRENT_KM)$(NO_COLOR)
|
||||
@@ -106,4 +107,4 @@ MSG_BOOTLOADER_NOT_FOUND_QUICK_RETRY = $(MSG_BOOTLOADER_NOT_FOUND_BASE) Trying a
|
||||
define CATASTROPHIC_ERROR
|
||||
$(shell printf "\n * %-99s $(ERROR_STRING)\n" "$2" >&2)
|
||||
$(error $1)
|
||||
endef
|
||||
endef
|
||||
|
||||
@@ -84,7 +84,8 @@ OTHER_OPTION_NAMES = \
|
||||
PROGRAMMABLE_BUTTON_ENABLE \
|
||||
SECURE_ENABLE \
|
||||
CAPS_WORD_ENABLE \
|
||||
AUTOCORRECT_ENABLE
|
||||
AUTOCORRECT_ENABLE \
|
||||
TRI_LAYER_ENABLE
|
||||
|
||||
define NAME_ECHO
|
||||
@printf " %-30s = %-16s # %s\\n" "$1" "$($1)" "$(origin $1)"
|
||||
|
||||
@@ -3,6 +3,7 @@ FULL_TESTS := $(notdir $(TEST_LIST))
|
||||
|
||||
include $(QUANTUM_PATH)/debounce/tests/testlist.mk
|
||||
include $(QUANTUM_PATH)/encoder/tests/testlist.mk
|
||||
include $(QUANTUM_PATH)/os_detection/tests/testlist.mk
|
||||
include $(QUANTUM_PATH)/sequencer/tests/testlist.mk
|
||||
include $(QUANTUM_PATH)/wear_leveling/tests/testlist.mk
|
||||
include $(PLATFORM_PATH)/test/testlist.mk
|
||||
|
||||
41
chibios_mcu.json
Normal file
41
chibios_mcu.json
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"MKL26Z64" : {
|
||||
"MCU" : "cortex-m0plus",
|
||||
"ARMV": 6,
|
||||
"MCU_FAMILY": "KINETIS",
|
||||
"MCU_SERIES": "KL2x",
|
||||
"MCU_LDSCRIPT": "MKL26Z64",
|
||||
"MCU_STARTUP": "kl2x",
|
||||
"BOARD": "PJRC_TEENSY_LC"
|
||||
},
|
||||
"MK20DX128" : {
|
||||
"MCU" : "cortex-m4",
|
||||
"ARMV": 7,
|
||||
"MCU_FAMILY": "KINETIS",
|
||||
"MCU_SERIES": "K20x",
|
||||
"MCU_LDSCRIPT": "MK20DX128",
|
||||
"MCU_STARTUP": "k20x5",
|
||||
"BOARD": "PJRC_TEENSY_3"
|
||||
},
|
||||
"MK20DX256" : {
|
||||
"MCU" : "cortex-m4",
|
||||
"ARMV": 7,
|
||||
"MCU_FAMILY": "KINETIS",
|
||||
"MCU_SERIES": "K20x",
|
||||
"MCU_LDSCRIPT": "MK20DX256",
|
||||
"MCU_STARTUP": "k20x7",
|
||||
"BOARD": "PJRC_TEENSY_3_1"
|
||||
},
|
||||
"STM32F303" : {
|
||||
"MCU" : "cortex-m4",
|
||||
"ARMV": 7,
|
||||
"MCU_FAMILY": "STM32",
|
||||
"MCU_SERIES": "STM32F3xx",
|
||||
"MCU_LDSCRIPT": "STM32F303xC",
|
||||
"MCU_STARTUP": "stm32f3xx",
|
||||
"BOARD": "GENERIC_STM32_F303XC",
|
||||
"USE_FPU": true,
|
||||
"UF2_FAMILY": "STM32F3",
|
||||
"STM32_BOOTLOADER_ADDRESS": "0x1FFFD800"
|
||||
}
|
||||
}
|
||||
83
cmake/AddKeyboard.cmake
Normal file
83
cmake/AddKeyboard.cmake
Normal file
@@ -0,0 +1,83 @@
|
||||
include(ResolveKeyboard)
|
||||
include(ValidateJson)
|
||||
include(ResolveToolchain)
|
||||
|
||||
macro(add_keyboard KEYBOARD_FOLDER KEYMAP_FOLDER)
|
||||
# not entirely sure why this is necessary
|
||||
# set(TEMP_PATH ${KEYBOARD_FOLDER})
|
||||
# cmake_path(IS_RELATIVE TEMP_PATH IS_KEYBOARD_FOLDER_RELATIVE)
|
||||
# if(${IS_KEYBOARD_FOLDER_RELATIVE})
|
||||
# set(KEYBOARD_FOLDER_ABS ${CMAKE_SOURCE_DIR}/keyboards/${KEYBOARD_FOLDER})
|
||||
# if(NOT EXISTS ${KEYBOARD_FOLDER_ABS})
|
||||
# # message(FATAL_ERROR "Keyboard does not exist in QMK - try using an absolute path to the keyboard folder")
|
||||
# resolve_keyboard(${KEYBOARD_FOLDER} KEYBOARD_FOLDER_ABS)
|
||||
# endif()
|
||||
# else()
|
||||
# set(KEYBOARD_FOLDER_ABS ${KEYBOARD_FOLDER})
|
||||
# if(NOT EXISTS ${KEYBOARD_FOLDER_ABS})
|
||||
# message(FATAL_ERROR "Absolute path to keyboard does not exist")
|
||||
# endif()
|
||||
# endif()
|
||||
|
||||
resolve_keyboard(${KEYBOARD_FOLDER} KEYBOARD_FOLDER_ABS)
|
||||
|
||||
set(TEMP_PATH ${KEYBOARD_FOLDER})
|
||||
cmake_path(IS_RELATIVE TEMP_PATH IS_KEYBOARD_FOLDER_RELATIVE)
|
||||
|
||||
set(TEMP_PATH ${KEYMAP_FOLDER})
|
||||
cmake_path(IS_RELATIVE TEMP_PATH IS_KEYMAP_FOLDER_RELATIVE)
|
||||
if(${IS_KEYMAP_FOLDER_RELATIVE})
|
||||
set(KEYMAP_NAME ${KEYMAP_FOLDER})
|
||||
else()
|
||||
if(WIN32)
|
||||
set(KEYMAP_NAME $ENV{USERNAME})
|
||||
else()
|
||||
set(KEYMAP_NAME $ENV{USE})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# find the right toolchain
|
||||
|
||||
# not sure we need to validate here
|
||||
validate_json(${KEYBOARD_FOLDER_ABS}/info.json keyboard JSON_STRING)
|
||||
|
||||
string(JSON PROCESSOR GET ${JSON_STRING} processor)
|
||||
resolve_toolchain(${PROCESSOR} TOOLCHAIN)
|
||||
|
||||
string(JSON KEYBOARD_NAME GET ${JSON_STRING} keyboard_name)
|
||||
if(${IS_KEYBOARD_FOLDER_RELATIVE})
|
||||
string(MAKE_C_IDENTIFIER ${KEYBOARD_FOLDER} KEYBOARD_SLUG)
|
||||
else()
|
||||
string(MAKE_C_IDENTIFIER ${KEYBOARD_NAME} KEYBOARD_SLUG)
|
||||
endif()
|
||||
string(JSON MANUFACTURER GET ${JSON_STRING} manufacturer)
|
||||
set(TARGET_NAME "${KEYBOARD_SLUG}_${KEYMAP_NAME}")
|
||||
ExternalProject_Add(${TARGET_NAME}
|
||||
SOURCE_DIR ${CMAKE_SOURCE_DIR}
|
||||
# PREFIX ${CMAKE_SOURCE_DIR}/build/keyboards/${KEYBOARD_FOLDER}
|
||||
TMP_DIR ${CMAKE_SOURCE_DIR}/build/tmp
|
||||
DOWNLOAD_DIR ${CMAKE_SOURCE_DIR}/build/download
|
||||
BINARY_DIR ${CMAKE_SOURCE_DIR}/build/keyboards/${TARGET_NAME}
|
||||
STAMP_DIR ${CMAKE_SOURCE_DIR}/build/stamp
|
||||
LOG_DIR ${CMAKE_SOURCE_DIR}/build/log
|
||||
INSTALL_DIR ${CMAKE_SOURCE_DIR}/build/install
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/build/${TARGET_NAME}${QMK_EXTENSION} ${CMAKE_SOURCE_DIR}/${TARGET_NAME}${QMK_EXTENSION}
|
||||
# this seems to work well for all systems so far - not sure if it'd be useful to customize
|
||||
CMAKE_GENERATOR "Unix Makefiles"
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_SOURCE_DIR}/cmake/toolchains/${TOOLCHAIN}.cmake
|
||||
-DQMK_KEYBOARD=${KEYBOARD_SLUG}
|
||||
-DQMK_KEYBOARD_FOLDER=${KEYBOARD_FOLDER}
|
||||
-DQMK_KEYMAP_FOLDER=${KEYMAP_FOLDER}
|
||||
-DTARGET_NAME=${TARGET_NAME}
|
||||
)
|
||||
ExternalProject_Add_Step(${TARGET_NAME} copy_compile_commands
|
||||
DEPENDEES configure
|
||||
DEPENDERS build
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/build/keyboards/${TARGET_NAME}/compile_commands.json ${CMAKE_SOURCE_DIR}/compile_commands.json
|
||||
# BYPRODUCTS ${CMAKE_SOURCE_DIR}/compile_commands.json
|
||||
ALWAYS TRUE
|
||||
)
|
||||
|
||||
# file(APPEND "${CMAKE_SOURCE_DIR}/build/targets" "${TARGET_NAME}|${KEYBOARD_NAME} with ${KEYMAP_FOLDER}|${KEYBOARD_FOLDER}|Made by: ${MANUFACTURER}\n")
|
||||
endmacro(add_keyboard)
|
||||
44
cmake/ConfigureKeyboard.cmake
Normal file
44
cmake/ConfigureKeyboard.cmake
Normal file
@@ -0,0 +1,44 @@
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
|
||||
|
||||
include(ResolveKeyboard)
|
||||
include(ValidateJSON)
|
||||
|
||||
resolve_keyboard(${QMK_KEYBOARD_FOLDER} KEYBOARD_FOLDER_ABS)
|
||||
validate_json(${KEYBOARD_FOLDER_ABS}/info.json keyboard JSON_STRING)
|
||||
|
||||
if(NOT DEFINED QMK_KEYMAP_FOLDER)
|
||||
set(QMK_KEYMAP_FOLDER default)
|
||||
endif()
|
||||
|
||||
set(TEMP_PATH ${QMK_KEYBOARD_FOLDER})
|
||||
cmake_path(IS_RELATIVE TEMP_PATH IS_KEYBOARD_FOLDER_RELATIVE)
|
||||
|
||||
set(TEMP_PATH ${QMK_KEYMAP_FOLDER})
|
||||
cmake_path(IS_RELATIVE TEMP_PATH IS_KEYMAP_FOLDER_RELATIVE)
|
||||
|
||||
if(${IS_KEYMAP_FOLDER_RELATIVE})
|
||||
set(KEYMAP_NAME ${QMK_KEYMAP_FOLDER})
|
||||
else()
|
||||
if(WIN32)
|
||||
set(KEYMAP_NAME $ENV{USERNAME})
|
||||
else()
|
||||
set(KEYMAP_NAME $ENV{USE})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
string(JSON KEYBOARD_NAME GET ${JSON_STRING} keyboard_name)
|
||||
|
||||
if(${IS_KEYBOARD_FOLDER_RELATIVE})
|
||||
string(MAKE_C_IDENTIFIER ${QMK_KEYBOARD_FOLDER} KEYBOARD_SLUG)
|
||||
else()
|
||||
string(MAKE_C_IDENTIFIER ${KEYBOARD_NAME} KEYBOARD_SLUG)
|
||||
endif()
|
||||
|
||||
string(JSON MANUFACTURER GET ${JSON_STRING} manufacturer)
|
||||
|
||||
set(TARGET_NAME "${KEYBOARD_SLUG}_${KEYMAP_NAME}")
|
||||
file(APPEND "${CMAKE_SOURCE_DIR}/build/targets" "${TARGET_NAME}|${KEYBOARD_NAME} with ${QMK_KEYMAP_FOLDER}|${QMK_KEYBOARD_FOLDER}:${QMK_KEYMAP_FOLDER}|Made by: ${MANUFACTURER}\n")
|
||||
|
||||
message(STATUS "Added keyboard '${QMK_KEYBOARD_FOLDER}' with keymap '${QMK_KEYMAP_FOLDER}'")
|
||||
14
cmake/FindARMToolchain.cmake
Normal file
14
cmake/FindARMToolchain.cmake
Normal file
@@ -0,0 +1,14 @@
|
||||
macro(find_arm_toolchain)
|
||||
find_toolchain(arm-none-eabi TOOLCHAIN_ROOT)
|
||||
|
||||
if(NOT TOOLCHAIN_ROOT)
|
||||
include(GetARMToolchain)
|
||||
find_toolchain(arm-none-eabi TOOLCHAIN_ROOT)
|
||||
endif()
|
||||
|
||||
if(NOT TOOLCHAIN_ROOT)
|
||||
message(FATAL_ERROR "ARM Toolchain could not be found")
|
||||
endif()
|
||||
|
||||
message(STATUS "ARM toolchain found: ${TOOLCHAIN_ROOT}")
|
||||
endmacro()
|
||||
20
cmake/FindAVRToolchain.cmake
Normal file
20
cmake/FindAVRToolchain.cmake
Normal file
@@ -0,0 +1,20 @@
|
||||
macro(find_avr_toolchain)
|
||||
find_toolchain(avr TOOLCHAIN_ROOT)
|
||||
|
||||
if(NOT TOOLCHAIN_ROOT)
|
||||
include(GetAVRToolchain)
|
||||
find_toolchain(avr TOOLCHAIN_ROOT)
|
||||
endif()
|
||||
|
||||
find_program(DFU_PROGRAMMER NAMES dfu-programmer PATHS ${CMAKE_SOURCE_DIR}/toolchains/dfu-programmer/)
|
||||
if(${DFU_PROGRAMMER} STREQUAL "DFU_PROGRAMMER-NOTFOUND")
|
||||
include(GetDfuProgrammer)
|
||||
find_program(DFU_PROGRAMMER NAMES dfu-programmer PATHS ${CMAKE_SOURCE_DIR}/toolchains/dfu-programmer/)
|
||||
endif()
|
||||
|
||||
if(NOT TOOLCHAIN_ROOT)
|
||||
message(FATAL_ERROR "AVR Toolchain could not be found")
|
||||
endif()
|
||||
|
||||
message(STATUS "AVR toolchain found: ${TOOLCHAIN_ROOT}")
|
||||
endmacro()
|
||||
282
cmake/Findchibios.cmake
Normal file
282
cmake/Findchibios.cmake
Normal file
@@ -0,0 +1,282 @@
|
||||
include(ParseMakefile)
|
||||
|
||||
# STM32F303
|
||||
|
||||
set(MCU "cortex-m4")
|
||||
set(ARMV 7)
|
||||
set(MCU_FAMILY "STM32")
|
||||
set(MCU_SERIES "STM32F3xx")
|
||||
string(TOUPPER ${MCU_SERIES} MCU_SERIES_UPPER)
|
||||
set(MCU_LDSCRIPT "STM32F303xC")
|
||||
set(MCU_STARTUP "stm32f3xx")
|
||||
set(BOARD "GENERIC_STM32_F303XC")
|
||||
set(USE_FPU TRUE)
|
||||
set(UF2_FAMILY "STM32F3")
|
||||
set(STM32_BOOTLOADER_ADDRESS 0x1FFFD800)
|
||||
set(EEPROM_DRIVER "wear_leveling" FORCE)
|
||||
set(WEAR_LEVELING_DRIVER "embedded_flash" FORCE)
|
||||
|
||||
target_compile_definitions(qmk PUBLIC
|
||||
QMK_MCU_FAMILY_${MCU_FAMILY}
|
||||
QMK_MCU_SERIES_${MCU_SERIES_UPPER}
|
||||
)
|
||||
|
||||
target_compile_options(qmk PUBLIC
|
||||
-march=armv7-m
|
||||
)
|
||||
|
||||
target_compile_definitions(qmk PUBLIC
|
||||
MCU_${MCU_FAMILY}
|
||||
__ARM_ARCH_7M__
|
||||
)
|
||||
|
||||
# platforms/chibios/platform.mk
|
||||
|
||||
if(NOT DEFINED USE_PROCESS_STACKSIZE)
|
||||
set(USE_PROCESS_STACKSIZE 0x800)
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED USE_EXCEPTIONS_STACKSIZE)
|
||||
set(USE_EXCEPTIONS_STACKSIZE 0x400)
|
||||
endif()
|
||||
|
||||
target_link_options(qmk PUBLIC
|
||||
-Wl,--defsym=__process_stack_size__=${USE_PROCESS_STACKSIZE},--defsym=__main_stack_size__=${USE_EXCEPTIONS_STACKSIZE}
|
||||
)
|
||||
|
||||
if(NOT DEFINED MCU_PORT_NAME)
|
||||
set(MCU_PORT_NAME ${MCU_FAMILY})
|
||||
endif()
|
||||
set(MCU_ARCH ${MCU})
|
||||
if(NOT DEFINED CHIBIOS_PORT)
|
||||
set(CHIBIOS_PORT "ARMv${ARMV}-M")
|
||||
endif()
|
||||
if(NOT DEFINED PLATFORM_NAME)
|
||||
set(PLATFORM_NAME platform)
|
||||
endif()
|
||||
|
||||
set(CHIBIOS ${CMAKE_SOURCE_DIR}/lib/chibios)
|
||||
set(CHIBIOS_CONTRIB ${CMAKE_SOURCE_DIR}/lib/chibios-contrib)
|
||||
|
||||
# port*.mk
|
||||
include(chibios/ports/${CHIBIOS_PORT})
|
||||
|
||||
# platform.mk
|
||||
include(chibios/ports/${MCU_SERIES})
|
||||
|
||||
# startup_*.mk - might need to convert these
|
||||
find_file(STARTUP_MK startup_${MCU_STARTUP}.mk
|
||||
${CHIBIOS}/os/common/ports/ARMCMx/compilers/GCC/mk
|
||||
${CHIBIOS}/os/common/startup/ARMCMx/compilers/GCC/mk
|
||||
${CHIBIOS_CONTRIB}/os/common/startup/ARMCMx/compilers/GCC/mk
|
||||
)
|
||||
get_filename_component(STARTUP_DIR ${STARTUP_MK} DIRECTORY)
|
||||
ParseMakefile(${STARTUP_MK})
|
||||
target_sources(qmk PUBLIC ${STARTUPSRC})
|
||||
target_sources(qmk PUBLIC ${STARTUPASM})
|
||||
target_include_directories(qmk PUBLIC ${STARTUPINC})
|
||||
|
||||
# board paths - we should just standardize these
|
||||
find_path(BOARD_PATH
|
||||
NAMES
|
||||
boards/${BOARD}/board.mk
|
||||
board/board.mk
|
||||
PATHS
|
||||
${QMK_KEYBOARD_FOLDER}/boards/${BOARD}
|
||||
${CMAKE_SOURCE_DIR}/platforms/chibios/boards/${BOARD}
|
||||
${CHIBIOS}/os/hal/
|
||||
${CHIBIOS_CONTRIB}/os/hal/
|
||||
)
|
||||
# if(EXISTS ${BOARD_PATH}/rules.mk)
|
||||
# ParseMakefile(${BOARD_PATH}/rules.mk)
|
||||
# endif()
|
||||
|
||||
if(EXISTS ${BOARD_PATH}/configs/config.h)
|
||||
target_precompile_headers(qmk PUBLIC
|
||||
${BOARD_PATH}/configs/config.h
|
||||
)
|
||||
endif()
|
||||
|
||||
if(EXISTS ${BOARD_PATH}/configs/post_config.h)
|
||||
target_precompile_headers(qmk PUBLIC
|
||||
${BOARD_PATH}/configs/post_config.h
|
||||
)
|
||||
endif()
|
||||
|
||||
find_file(BOARD_MK board.mk
|
||||
${BOARD_PATH}/boards/${BOARD}
|
||||
${BOARD_PATH}/board
|
||||
)
|
||||
ParseMakefile(${BOARD_MK})
|
||||
|
||||
target_sources(qmk PUBLIC ${BOARDSRC})
|
||||
target_include_directories(qmk PUBLIC ${BOARDINC})
|
||||
|
||||
# allow board.c to be overriden
|
||||
file(RELATIVE_PATH INIT_HOOK_RELATIVE ${CMAKE_BINARY_DIR}
|
||||
"${CMAKE_SOURCE_DIR}/tmk_core/protocol/chibios/init_hooks.h")
|
||||
set_source_files_properties(${BOARDSRC} TARGET_DIRECTORY qmk PROPERTIES
|
||||
# COMPILE_OPTIONS "-include ../../../tmk_core/protocol/chibios/init_hooks.h"
|
||||
COMPILE_OPTIONS "-include ${INIT_HOOK_RELATIVE}"
|
||||
)
|
||||
|
||||
# bootloader
|
||||
if(DEFINED STM32_BOOTLOADER_ADDRESS)
|
||||
target_compile_definitions(qmk PUBLIC STM32_BOOTLOADER_ADDRESS=${STM32_BOOTLOADER_ADDRESS})
|
||||
endif()
|
||||
if(DEFINED WB32_BOOTLOADER_ADDRESS)
|
||||
target_compile_definitions(qmk PUBLIC WB32_BOOTLOADER_ADDRESS=${WB32_BOOTLOADER_ADDRESS})
|
||||
endif()
|
||||
|
||||
find_file(BOOTLOADER_DEFS_H bootloader_defs.h
|
||||
${QMK_KEYBOARD_FOLDER}
|
||||
${QMK_KEYBOARD_FOLDER}/boards/${BOARD}
|
||||
${BOARD_PATH}/configs
|
||||
)
|
||||
if(EXISTS ${BOOTLOADER_DEFS_H})
|
||||
target_compile_options(qmk PUBLIC -include ${BOOTLOADER_DEFS_H})
|
||||
endif()
|
||||
|
||||
# chconf directories
|
||||
find_path(CHCONFDIR chconf.h
|
||||
${QMK_KEYBOARD_FOLDER}
|
||||
${CMAKE_SOURCE_DIR}/platforms/chibios/boards/${BOARD}/configs
|
||||
${CMAKE_SOURCE_DIR}/platforms/chibios/boards/common/configs
|
||||
)
|
||||
target_include_directories(qmk PUBLIC ${CHCONFDIR})
|
||||
|
||||
# halconf directories
|
||||
find_path(HALCONFDIR halconf.h
|
||||
${QMK_KEYBOARD_FOLDER}
|
||||
${CMAKE_SOURCE_DIR}/platforms/chibios/boards/${BOARD}/configs
|
||||
${CMAKE_SOURCE_DIR}/platforms/chibios/boards/common/configs
|
||||
)
|
||||
target_include_directories(qmk PUBLIC ${HALCONFDIR})
|
||||
|
||||
# linker script
|
||||
find_file(LDSCRIPT ${MCU_LDSCRIPT}.ld
|
||||
${QMK_KEYBOARD_FOLDER}/ld
|
||||
${CMAKE_SOURCE_DIR}/platforms/chibios/boards/${BOARD}/ld
|
||||
${CMAKE_SOURCE_DIR}/platforms/chibios/boards/common/ld
|
||||
${STARTUPLD}
|
||||
${STARTUPLD_CONTRIB}
|
||||
)
|
||||
get_filename_component(LDSCRIPT_PATH ${LDSCRIPT} DIRECTORY)
|
||||
target_link_options(qmk PUBLIC
|
||||
-T ${LDSCRIPT}
|
||||
-L ${LDSCRIPT_PATH}
|
||||
)
|
||||
|
||||
# os/hal/hal.mk
|
||||
target_sources(qmk PUBLIC
|
||||
${CHIBIOS}/os/hal/src/hal.c
|
||||
${CHIBIOS}/os/hal/src/hal_st.c
|
||||
${CHIBIOS}/os/hal/src/hal_buffers.c
|
||||
${CHIBIOS}/os/hal/src/hal_queues.c
|
||||
${CHIBIOS}/os/hal/src/hal_flash.c
|
||||
${CHIBIOS}/os/hal/src/hal_mmcsd.c
|
||||
${CHIBIOS}/os/hal/src/hal_adc.c
|
||||
${CHIBIOS}/os/hal/src/hal_can.c
|
||||
${CHIBIOS}/os/hal/src/hal_crypto.c
|
||||
${CHIBIOS}/os/hal/src/hal_dac.c
|
||||
${CHIBIOS}/os/hal/src/hal_efl.c
|
||||
${CHIBIOS}/os/hal/src/hal_gpt.c
|
||||
${CHIBIOS}/os/hal/src/hal_i2c.c
|
||||
${CHIBIOS}/os/hal/src/hal_i2s.c
|
||||
${CHIBIOS}/os/hal/src/hal_icu.c
|
||||
${CHIBIOS}/os/hal/src/hal_mac.c
|
||||
${CHIBIOS}/os/hal/src/hal_mmc_spi.c
|
||||
${CHIBIOS}/os/hal/src/hal_pal.c
|
||||
${CHIBIOS}/os/hal/src/hal_pwm.c
|
||||
${CHIBIOS}/os/hal/src/hal_rtc.c
|
||||
${CHIBIOS}/os/hal/src/hal_sdc.c
|
||||
${CHIBIOS}/os/hal/src/hal_serial.c
|
||||
${CHIBIOS}/os/hal/src/hal_serial_usb.c
|
||||
${CHIBIOS}/os/hal/src/hal_sio.c
|
||||
${CHIBIOS}/os/hal/src/hal_spi.c
|
||||
${CHIBIOS}/os/hal/src/hal_trng.c
|
||||
${CHIBIOS}/os/hal/src/hal_uart.c
|
||||
${CHIBIOS}/os/hal/src/hal_usb.c
|
||||
${CHIBIOS}/os/hal/src/hal_wdg.c
|
||||
${CHIBIOS}/os/hal/src/hal_wspi.c
|
||||
)
|
||||
target_include_directories(qmk PUBLIC
|
||||
${CHIBIOS}/os/hal/include
|
||||
)
|
||||
|
||||
# os/hal/osal/rt-nil/osal.mk
|
||||
target_sources(qmk PUBLIC
|
||||
${CHIBIOS}/os/hal/osal/rt-nil/osal.c
|
||||
)
|
||||
target_include_directories(qmk PUBLIC
|
||||
${CHIBIOS}/os/hal/osal/rt-nil
|
||||
)
|
||||
|
||||
# os/rt/rt.mk
|
||||
target_sources(qmk PUBLIC
|
||||
${CHIBIOS}/os/rt/src/chsys.c
|
||||
${CHIBIOS}/os/rt/src/chrfcu.c
|
||||
${CHIBIOS}/os/rt/src/chdebug.c
|
||||
${CHIBIOS}/os/rt/src/chtrace.c
|
||||
${CHIBIOS}/os/rt/src/chvt.c
|
||||
${CHIBIOS}/os/rt/src/chschd.c
|
||||
${CHIBIOS}/os/rt/src/chinstances.c
|
||||
${CHIBIOS}/os/rt/src/chthreads.c
|
||||
${CHIBIOS}/os/rt/src/chsys.c
|
||||
${CHIBIOS}/os/rt/src/chrfcu.c
|
||||
${CHIBIOS}/os/rt/src/chdebug.c
|
||||
${CHIBIOS}/os/rt/src/chtrace.c
|
||||
${CHIBIOS}/os/rt/src/chvt.c
|
||||
${CHIBIOS}/os/rt/src/chschd.c
|
||||
${CHIBIOS}/os/rt/src/chinstances.c
|
||||
${CHIBIOS}/os/rt/src/chthreads.c
|
||||
${CHIBIOS}/os/rt/src/chtm.c
|
||||
${CHIBIOS}/os/rt/src/chstats.c
|
||||
${CHIBIOS}/os/rt/src/chregistry.c
|
||||
${CHIBIOS}/os/rt/src/chsem.c
|
||||
${CHIBIOS}/os/rt/src/chmtx.c
|
||||
${CHIBIOS}/os/rt/src/chcond.c
|
||||
${CHIBIOS}/os/rt/src/chevents.c
|
||||
${CHIBIOS}/os/rt/src/chmsg.c
|
||||
${CHIBIOS}/os/rt/src/chdynamic.c
|
||||
)
|
||||
target_include_directories(qmk PUBLIC
|
||||
${CHIBIOS}/os/rt/include
|
||||
)
|
||||
|
||||
# os/oslib/oslib.mk
|
||||
target_sources(qmk PUBLIC
|
||||
${CHIBIOS}/os/oslib/src/chmboxes.c
|
||||
${CHIBIOS}/os/oslib/src/chmemcore.c
|
||||
${CHIBIOS}/os/oslib/src/chmemheaps.c
|
||||
${CHIBIOS}/os/oslib/src/chmempools.c
|
||||
${CHIBIOS}/os/oslib/src/chpipes.c
|
||||
${CHIBIOS}/os/oslib/src/chobjcaches.c
|
||||
${CHIBIOS}/os/oslib/src/chdelegates.c
|
||||
${CHIBIOS}/os/oslib/src/chfactory.c
|
||||
)
|
||||
target_include_directories(qmk PUBLIC
|
||||
${CHIBIOS}/os/oslib/include
|
||||
)
|
||||
|
||||
# os/hal/lib/streams/streams.mk
|
||||
target_sources(qmk PUBLIC
|
||||
${CHIBIOS}/os/hal/lib/streams/chprintf.c
|
||||
${CHIBIOS}/os/hal/lib/streams/chscanf.c
|
||||
${CHIBIOS}/os/hal/lib/streams/memstreams.c
|
||||
${CHIBIOS}/os/hal/lib/streams/nullstreams.c
|
||||
${CHIBIOS}/os/hal/lib/streams/bufstreams.c
|
||||
)
|
||||
target_include_directories(qmk PUBLIC
|
||||
${CHIBIOS}/os/hal/lib/streams
|
||||
)
|
||||
|
||||
# resume platform.mk
|
||||
target_sources(qmk PUBLIC
|
||||
${CHIBIOS}/os/various/syscalls.c
|
||||
)
|
||||
target_include_directories(qmk PUBLIC
|
||||
${CHIBIOS}/os/license
|
||||
${CHIBIOS}/os/oslib/include
|
||||
${CHIBIOS}/os/various
|
||||
)
|
||||
27
cmake/Findlufa.cmake
Normal file
27
cmake/Findlufa.cmake
Normal file
@@ -0,0 +1,27 @@
|
||||
include(UpdateSubmodule)
|
||||
update_submodule(lib/lufa)
|
||||
set(LUFA_PATH ${CMAKE_SOURCE_DIR}/lib/lufa)
|
||||
set(LUFA_ROOT_PATH ${LUFA_PATH}/LUFA)
|
||||
target_sources(qmk PUBLIC
|
||||
${LUFA_ROOT_PATH}/Drivers/USB/Core/${ARCH}/USBController_${ARCH}.c
|
||||
${LUFA_ROOT_PATH}/Drivers/USB/Core/${ARCH}/USBInterrupt_${ARCH}.c
|
||||
${LUFA_ROOT_PATH}/Drivers/USB/Core/ConfigDescriptors.c
|
||||
${LUFA_ROOT_PATH}/Drivers/USB/Core/Events.c
|
||||
${LUFA_ROOT_PATH}/Drivers/USB/Core/USBTask.c
|
||||
${LUFA_ROOT_PATH}/Drivers/USB/Class/Common/HIDParser.c
|
||||
|
||||
${LUFA_ROOT_PATH}/Drivers/USB/Core/${ARCH}/Host_${ARCH}.c
|
||||
${LUFA_ROOT_PATH}/Drivers/USB/Core/${ARCH}/Pipe_${ARCH}.c
|
||||
${LUFA_ROOT_PATH}/Drivers/USB/Core/${ARCH}/PipeStream_${ARCH}.c
|
||||
${LUFA_ROOT_PATH}/Drivers/USB/Core/HostStandardReq.c
|
||||
|
||||
${LUFA_ROOT_PATH}/Drivers/USB/Core/${ARCH}/Device_${ARCH}.c
|
||||
${LUFA_ROOT_PATH}/Drivers/USB/Core/${ARCH}/Endpoint_${ARCH}.c
|
||||
${LUFA_ROOT_PATH}/Drivers/USB/Core/${ARCH}/EndpointStream_${ARCH}.c
|
||||
${LUFA_ROOT_PATH}/Drivers/USB/Core/DeviceStandardReq.c
|
||||
${LUFA_PATH}/LUFA/Drivers/USB/USB.h
|
||||
)
|
||||
target_include_directories(qmk PUBLIC ${LUFA_PATH})
|
||||
# target_link_libraries(lufa ${QMK_TARGET})
|
||||
# target_link_libraries(lufa tmk_core_protocol)
|
||||
# target_link_libraries(lufa tmk_core_protocol_lufa)
|
||||
24
cmake/GetARMToolchain.cmake
Normal file
24
cmake/GetARMToolchain.cmake
Normal file
@@ -0,0 +1,24 @@
|
||||
message("Downloading gcc-arm-none-eabi")
|
||||
if(WIN32)
|
||||
file(DOWNLOAD
|
||||
https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-win32.zip?rev=8f4a92e2ec2040f89912f372a55d8cf3&hash=8A9EAF77EF1957B779C59EADDBF2DAC118170BBF
|
||||
${CMAKE_SOURCE_DIR}/toolchains/downloads/gcc-arm-none-eabi-win32.zip
|
||||
EXPECTED_HASH MD5=2bc8f0c4c4659f8259c8176223eeafc1
|
||||
SHOW_PROGRESS
|
||||
)
|
||||
file(ARCHIVE_EXTRACT
|
||||
INPUT ${CMAKE_SOURCE_DIR}/toolchains/downloads/gcc-arm-none-eabi-win32.zip
|
||||
DESTINATION ${CMAKE_SOURCE_DIR}/toolchains/
|
||||
)
|
||||
elseif(UNIX)
|
||||
file(DOWNLOAD
|
||||
https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2?rev=78196d3461ba4c9089a67b5f33edf82a&hash=D484B37FF37D6FC3597EBE2877FB666A41D5253B
|
||||
${CMAKE_SOURCE_DIR}/toolchains/downloads/gcc-arm-none-eabi-x86_64-linux.tar.bz2
|
||||
EXPECTED_HASH MD5=3fe3d8bb693bd0a6e4615b6569443d0d
|
||||
SHOW_PROGRESS
|
||||
)
|
||||
file(ARCHIVE_EXTRACT
|
||||
INPUT ${CMAKE_SOURCE_DIR}/toolchains/downloads/gcc-arm-none-eabi-x86_64-linux.tar.bz2
|
||||
DESTINATION ${CMAKE_SOURCE_DIR}/toolchains/
|
||||
)
|
||||
endif()
|
||||
24
cmake/GetAVRToolchain.cmake
Normal file
24
cmake/GetAVRToolchain.cmake
Normal file
@@ -0,0 +1,24 @@
|
||||
message("Downloading avr-gcc")
|
||||
if(WIN32)
|
||||
file(DOWNLOAD
|
||||
https://github.com/ZakKemble/avr-gcc-build/releases/download/v12.1.0-1/avr-gcc-12.1.0-x64-windows.zip
|
||||
${CMAKE_SOURCE_DIR}/toolchains/downloads/avr-gcc-x64-windows.zip
|
||||
EXPECTED_HASH SHA256=e921a964fdeaedbe963352d0f26c6520a0a3eb8effc6ff232f3824b06c4ea0e2
|
||||
SHOW_PROGRESS
|
||||
)
|
||||
file(ARCHIVE_EXTRACT
|
||||
INPUT ${CMAKE_SOURCE_DIR}/toolchains/downloads/avr-gcc-x64-windows.zip
|
||||
DESTINATION ${CMAKE_SOURCE_DIR}/toolchains/
|
||||
)
|
||||
elseif(UNIX)
|
||||
file(DOWNLOAD
|
||||
https://github.com/ZakKemble/avr-gcc-build/releases/download/v12.1.0-1/avr-gcc-12.1.0-x64-linux.tar.bz2
|
||||
${CMAKE_SOURCE_DIR}/toolchains/downloads/avr-gcc-x64-linux.tar.bz2
|
||||
EXPECTED_HASH SHA256=feb034f4b85237032da8bac1f03765af5ebc4a8939b69bed57ff31bc482ca1a6
|
||||
SHOW_PROGRESS
|
||||
)
|
||||
file(ARCHIVE_EXTRACT
|
||||
INPUT ${CMAKE_SOURCE_DIR}/toolchains/downloads/avr-gcc-x64-linux.tar.bz2
|
||||
DESTINATION ${CMAKE_SOURCE_DIR}/toolchains/
|
||||
)
|
||||
endif()
|
||||
22
cmake/GetDfuProgrammer.cmake
Normal file
22
cmake/GetDfuProgrammer.cmake
Normal file
@@ -0,0 +1,22 @@
|
||||
message("Downloading dfu-programmer")
|
||||
if(WIN32)
|
||||
file(DOWNLOAD
|
||||
https://github.com/dfu-programmer/dfu-programmer/releases/download/v1.0.0/dfu-programmer-x64-1.0.0.7z
|
||||
${CMAKE_SOURCE_DIR}/toolchains/downloads/dfu-programmer-x64-1.0.0.7z
|
||||
SHOW_PROGRESS
|
||||
)
|
||||
file(ARCHIVE_EXTRACT
|
||||
INPUT ${CMAKE_SOURCE_DIR}/toolchains/downloads/dfu-programmer-x64-1.0.0.7z
|
||||
DESTINATION ${CMAKE_SOURCE_DIR}/toolchains/dfu-programmer/
|
||||
)
|
||||
elseif(UNIX)
|
||||
file(DOWNLOAD
|
||||
https://github.com/dfu-programmer/dfu-programmer/releases/download/v1.0.0/dfu-programmer-linux-1.0.0.7z
|
||||
${CMAKE_SOURCE_DIR}/toolchains/downloads/dfu-programmer-linux-1.0.0.7z
|
||||
SHOW_PROGRESS
|
||||
)
|
||||
file(ARCHIVE_EXTRACT
|
||||
INPUT ${CMAKE_SOURCE_DIR}/toolchains/downloads/dfu-programmer-linux-1.0.0.7z
|
||||
DESTINATION ${CMAKE_SOURCE_DIR}/toolchains/dfu-programmer/
|
||||
)
|
||||
endif()
|
||||
51
cmake/GetKeymaps.cmake
Normal file
51
cmake/GetKeymaps.cmake
Normal file
@@ -0,0 +1,51 @@
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
|
||||
|
||||
include(ResolveKeyboard)
|
||||
include(ValidateJson)
|
||||
|
||||
set(QMK_KEYBOARDS_FOLDER "${CMAKE_SOURCE_DIR}/keyboards")
|
||||
set(CMAKE_MESSAGE_INDENT "")
|
||||
|
||||
resolve_keyboard(${QMK_KEYBOARD_FOLDER} KEYBOARD_FOLDER_ABS)
|
||||
validate_json(${KEYBOARD_FOLDER_ABS}/info.json keyboard JSON_STR)
|
||||
cmake_path(IS_PREFIX QMK_KEYBOARDS_FOLDER "${KEYBOARD_FOLDER_ABS}" IS_KEYBOARDS_FOLDER)
|
||||
|
||||
file(WRITE "${CMAKE_SOURCE_DIR}/build/keyboard_keymaps" "")
|
||||
if(${IS_KEYBOARDS_FOLDER})
|
||||
file(RELATIVE_PATH RELATIVE_KEYBOARD_FOLDER ${QMK_KEYBOARDS_FOLDER} ${KEYBOARD_FOLDER_ABS})
|
||||
while(NOT ${RELATIVE_KEYBOARD_FOLDER} STREQUAL "")
|
||||
file(GLOB KEYMAPS "${QMK_KEYBOARDS_FOLDER}/${RELATIVE_KEYBOARD_FOLDER}/keymaps/*/keymap.c")
|
||||
foreach(KEYMAP ${KEYMAPS})
|
||||
file(RELATIVE_PATH KEYMAP_C "${QMK_KEYBOARDS_FOLDER}/${RELATIVE_KEYBOARD_FOLDER}/keymaps" "${KEYMAP}")
|
||||
get_filename_component(KEYMAP_FOLDER ${KEYMAP_C} DIRECTORY)
|
||||
# message(STATUS "${KEYMAP_FOLDER}")
|
||||
file(APPEND "${CMAKE_SOURCE_DIR}/build/keyboard_keymaps" "${KEYMAP_FOLDER}\n")
|
||||
endforeach()
|
||||
get_filename_component(RELATIVE_KEYBOARD_FOLDER ${RELATIVE_KEYBOARD_FOLDER} DIRECTORY)
|
||||
endwhile()
|
||||
else()
|
||||
if(EXISTS "${KEYBOARD_FOLDER_ABS}/keymap.c")
|
||||
set(${KEYMAP_C_STR} "${KEYBOARD_FOLDER_ABS}/keymap.c" PARENT_SCOPE)
|
||||
elseif(EXISTS "${KEYBOARD_FOLDER_ABS}/keymaps/${KEYMAP_FOLDER}/keymap.c")
|
||||
set(${KEYMAP_C_STR} "${KEYBOARD_FOLDER_ABS}/keymaps/${KEYMAP_FOLDER}/keymap.c" PARENT_SCOPE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
string(JSON COMMUNITY_LAYOUTS ERROR_VARIABLE NO_COMMUNITY_LAYOUTS GET ${JSON_STR} community_layouts)
|
||||
|
||||
if(${NO_COMMUNITY_LAYOUTS} STREQUAL "NOTFOUND")
|
||||
string(JSON NUM_LAYOUTS LENGTH ${COMMUNITY_LAYOUTS})
|
||||
math(EXPR MAX "${NUM_LAYOUTS} - 1")
|
||||
foreach(IDX RANGE ${MAX})
|
||||
string(JSON LAYOUT GET ${COMMUNITY_LAYOUTS} ${IDX})
|
||||
file(GLOB KEYMAPS "${CMAKE_SOURCE_DIR}/layouts/community/${LAYOUT}/*/keymap.c")
|
||||
foreach(KEYMAP ${KEYMAPS})
|
||||
file(RELATIVE_PATH KEYMAP_C "${CMAKE_SOURCE_DIR}/layouts/community/${LAYOUT}" "${KEYMAP}")
|
||||
get_filename_component(KEYMAP_FOLDER ${KEYMAP_C} DIRECTORY)
|
||||
# message(STATUS "${KEYMAP_FOLDER}")
|
||||
file(APPEND "${CMAKE_SOURCE_DIR}/build/keyboard_keymaps" "${KEYMAP_FOLDER}\n")
|
||||
endforeach()
|
||||
endforeach()
|
||||
endif()
|
||||
64
cmake/ParseHeader.cmake
Normal file
64
cmake/ParseHeader.cmake
Normal file
@@ -0,0 +1,64 @@
|
||||
# Simple CMake utility to read variables from MK files
|
||||
# - Gets contents from given file (name or path)
|
||||
# - Parses the assignment statements
|
||||
# - Makes the same assignments in the PARENT_SCOPE
|
||||
|
||||
if(POLICY CMP0007)
|
||||
cmake_policy(SET CMP0007 NEW)
|
||||
endif()
|
||||
|
||||
function(ParseHeader HeaderFile Prefix)
|
||||
_ParseHeader(${HeaderFile} ${Prefix})
|
||||
endfunction()
|
||||
|
||||
macro(_ParseHeader HeaderFile Prefix)
|
||||
message(CHECK_START "Parsing Header")
|
||||
list(APPEND CMAKE_MESSAGE_INDENT " ")
|
||||
message(STATUS "Reading \"${HeaderFile}\"")
|
||||
|
||||
file(READ "${HeaderFile}" FileContents)
|
||||
string(REGEX REPLACE "/\\*.*\\*/" "" FileContents ${FileContents})
|
||||
# replace the \ newlines with spaces
|
||||
string(REGEX REPLACE "\\\\\r?\n *" " " FileContents ${FileContents})
|
||||
# turn each line into an item in a list
|
||||
string(REGEX REPLACE "\r?\n" ";" FileLines ${FileContents})
|
||||
list(REMOVE_ITEM FileLines "")
|
||||
|
||||
foreach(line ${FileLines})
|
||||
# remove comments from the ends of each line
|
||||
string(REGEX REPLACE "//.*" "" line ${line})
|
||||
|
||||
# remove now-empty lines
|
||||
if("${line}" STREQUAL "")
|
||||
continue()
|
||||
endif()
|
||||
|
||||
# try to process includes, if the file exists
|
||||
if(line MATCHES "^#include \"(.+)\"")
|
||||
set(INCLUDED_HEADER ${CMAKE_MATCH_1})
|
||||
if(EXISTS ${INCLUDED_HEADER})
|
||||
_ParseHeader("${INCLUDED_HEADER}" ${Prefix})
|
||||
else()
|
||||
message(STATUS "Could not read ${INCLUDED_HEADER}")
|
||||
endif()
|
||||
continue()
|
||||
endif()
|
||||
|
||||
# array
|
||||
if(line MATCHES "#define ([A-Za-z0-9_]+) {(.*)}")
|
||||
set(VARIABLE_NAME ${CMAKE_MATCH_1})
|
||||
set(VARIABLE_VALUE ${CMAKE_MATCH_2})
|
||||
set(${Prefix}${VARIABLE_NAME} ${VARIABLE_VALUE})
|
||||
endif()
|
||||
|
||||
# regular variable
|
||||
if(line MATCHES "#define ([A-Za-z0-9_]+) (.*)")
|
||||
set(VARIABLE_NAME ${CMAKE_MATCH_1})
|
||||
set(VARIABLE_VALUE ${CMAKE_MATCH_2})
|
||||
set(${Prefix}${VARIABLE_NAME} ${VARIABLE_VALUE})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
list(POP_BACK CMAKE_MESSAGE_INDENT)
|
||||
message(CHECK_PASS "Complete")
|
||||
endmacro()
|
||||
98
cmake/ParseMakefile.cmake
Normal file
98
cmake/ParseMakefile.cmake
Normal file
@@ -0,0 +1,98 @@
|
||||
# Simple CMake utility to read variables from MK files
|
||||
# - Gets contents from given file (name or path)
|
||||
# - Parses the assignment statements
|
||||
# - Makes the same assignments in the PARENT_SCOPE
|
||||
|
||||
if(POLICY CMP0007)
|
||||
cmake_policy(SET CMP0007 NEW)
|
||||
endif()
|
||||
|
||||
function(ParseMakefile MKFile)
|
||||
_ParseMakefile(${MKFile} ${ARGN})
|
||||
endfunction()
|
||||
|
||||
macro(_ParseMakefile MKFile)
|
||||
message(CHECK_START "Parsing Makefile")
|
||||
list(APPEND CMAKE_MESSAGE_INDENT " ")
|
||||
message(STATUS "Reading \"${MKFile}\"")
|
||||
|
||||
file(READ "${MKFile}" FileContents)
|
||||
# replace the \ newlines with spaces
|
||||
string(REGEX REPLACE "\\\\\r?\n *" " " FileContents ${FileContents})
|
||||
# turn each line into an item in a list
|
||||
string(REGEX REPLACE "\r?\n" ";" FileLines ${FileContents})
|
||||
list(REMOVE_ITEM FileLines "")
|
||||
|
||||
foreach(line ${FileLines})
|
||||
# remove comments from the ends of each line
|
||||
string(REGEX REPLACE "#.*" "" line ${line})
|
||||
|
||||
# remove now-empty lines
|
||||
if("${line}" STREQUAL "")
|
||||
continue()
|
||||
endif()
|
||||
|
||||
# try to process includes, if the file exists
|
||||
if(line MATCHES "^-?include (.+)$")
|
||||
set(MAKE_CHILD ${CMAKE_MATCH_1})
|
||||
if(EXISTS ${MAKE_CHILD})
|
||||
_ParseMakefile("${MAKE_CHILD}" ${ARGN})
|
||||
else()
|
||||
message(STATUS "Could not read ${MAKE_CHILD}")
|
||||
endif()
|
||||
continue()
|
||||
endif()
|
||||
|
||||
# turn the assignment into a list with the first item being the variable name
|
||||
string(REPLACE "=" ";" line_split ${line})
|
||||
list(LENGTH line_split count)
|
||||
|
||||
if(count LESS 2)
|
||||
message(STATUS "Skipping ${line}")
|
||||
continue()
|
||||
endif()
|
||||
|
||||
list(GET line_split -1 value)
|
||||
string(STRIP ${value} value)
|
||||
# separate_arguments(value)
|
||||
# string(REPLACE " " ";" value ${value})
|
||||
list(REMOVE_AT line_split -1)
|
||||
|
||||
foreach(var_name ${line_split})
|
||||
string(STRIP ${var_name} var_name)
|
||||
# replace $(?) with the variable ? from cmake
|
||||
if(value MATCHES "\\$\\(([^\\(\\)]+)\\)")
|
||||
set(MAKE_VARIABLE "${CMAKE_MATCH_1}")
|
||||
string(REPLACE "$(${MAKE_VARIABLE})" "${${MAKE_VARIABLE}}" value ${value})
|
||||
endif()
|
||||
|
||||
# look for +, assuming it used to be +=
|
||||
if(${var_name} MATCHES "([^ \\+]+) *\\+")
|
||||
message(STATUS "Appending \"${CMAKE_MATCH_1}\" with \"${value}\"")
|
||||
# read parent variable in local & append
|
||||
set(LOCAL_${CMAKE_MATCH_1} ${CMAKE_MATCH_1})
|
||||
# APPEND accepts spaces between values
|
||||
list(APPEND LOCAL_${CMAKE_MATCH_1} ${value})
|
||||
set(${CMAKE_MATCH_1} ${LOCAL_${CMAKE_MATCH_1}})
|
||||
set(${CMAKE_MATCH_1} ${LOCAL_${CMAKE_MATCH_1}} PARENT_SCOPE)
|
||||
else()
|
||||
# set needs ; between elements to be considered a list
|
||||
string(REGEX REPLACE " +" ";" value ${value})
|
||||
# try to find variable in cache and FORCE wtih INTERNAL if it exists
|
||||
if(DEFINED CACHE${${var_name}})
|
||||
message(STATUS "Caching \"${var_name}\" to \"${value}\"")
|
||||
# set locally so replacement still work
|
||||
set(${var_name} ${value})
|
||||
set(${var_name} ${value} CACHE INTERNAL "")
|
||||
else()
|
||||
message(STATUS "Setting \"${var_name}\" to \"${value}\"")
|
||||
set(${var_name} ${value})
|
||||
set(${var_name} ${value} PARENT_SCOPE)
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
endforeach()
|
||||
|
||||
list(POP_BACK CMAKE_MESSAGE_INDENT)
|
||||
message(CHECK_PASS "Complete")
|
||||
endmacro()
|
||||
78
cmake/ProcessKeyboard.cmake
Normal file
78
cmake/ProcessKeyboard.cmake
Normal file
@@ -0,0 +1,78 @@
|
||||
include(ParseMakefile)
|
||||
include(Utils)
|
||||
|
||||
macro(process_keyboard)
|
||||
message(CHECK_START "Processing keyboard")
|
||||
list(APPEND CMAKE_MESSAGE_INDENT " ")
|
||||
|
||||
validate_json(${QMK_KEYBOARD_FOLDER_ABS}/info.json keyboard QMK_KEYBOARD_INFO_JSON_STRING)
|
||||
|
||||
# process rules from info.json
|
||||
file(READ ${CMAKE_SOURCE_DIR}/data/mappings/info_rules.hjson JSON_STRING)
|
||||
string(JSON MAPPING_LENGTH LENGTH ${JSON_STRING})
|
||||
math(EXPR MAX "${MAPPING_LENGTH} - 1")
|
||||
foreach(IDX RANGE ${MAX})
|
||||
string(JSON RULE_KEY MEMBER ${JSON_STRING} ${IDX})
|
||||
# string(JSON INFO_KEY GET ${JSON_STRING} ${RULE_KEY} info_key)
|
||||
json_get_with_default(INFO_KEY ${JSON_STRING} _ ${RULE_KEY} info_key)
|
||||
string(REPLACE "." " " INFO_KEYS ${INFO_KEY})
|
||||
string(JSON RULE_VALUE ERROR_VARIABLE RULE_KEY_NOT_FOUND GET ${QMK_KEYBOARD_INFO_JSON_STRING} ${INFO_KEYS})
|
||||
if(${RULE_KEY_NOT_FOUND} STREQUAL "NOTFOUND")
|
||||
json_get_with_default(VALUE_TYPE ${JSON_STRING} raw ${RULE_KEY} value_type)
|
||||
if(${VALUE_TYPE} STREQUAL "list")
|
||||
string(JSON NUM_VALUES LENGTH ${RULE_VALUE})
|
||||
math(EXPR MAX "${NUM_VALUES} - 1")
|
||||
foreach(IDX RANGE ${MAX})
|
||||
string(JSON VALUE GET ${RULE_VALUE} ${IDX})
|
||||
list(APPEND ${RULE_KEY} ${VALUE})
|
||||
endforeach()
|
||||
message(STATUS "Found rule '${INFO_KEY}': '${${RULE_KEY}}' assigned to '${RULE_KEY}'")
|
||||
else()
|
||||
set(${RULE_KEY} ${RULE_VALUE})
|
||||
message(STATUS "Found rule '${INFO_KEY}': '${RULE_VALUE}' assigned to '${RULE_KEY}'")
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# process definitions from info.json
|
||||
file(READ ${CMAKE_SOURCE_DIR}/data/mappings/info_config.hjson JSON_STRING)
|
||||
string(JSON MAPPING_LENGTH LENGTH ${JSON_STRING})
|
||||
math(EXPR MAX "${MAPPING_LENGTH} - 1")
|
||||
foreach(IDX RANGE ${MAX})
|
||||
string(JSON CONFIG_KEY MEMBER ${JSON_STRING} ${IDX})
|
||||
json_get_with_default(INFO_KEY ${JSON_STRING} _ ${CONFIG_KEY} info_key)
|
||||
string(REPLACE "." ";" INFO_KEYS ${INFO_KEY})
|
||||
# string(JSON CONFIG_VALUE ERROR_VARIABLE CONFIG_KEY_NOT_FOUND GET ${QMK_KEYBOARD_INFO_JSON_STRING} ${INFO_KEYS})
|
||||
json_get_with_default(CONFIG_VALUE ${QMK_KEYBOARD_INFO_JSON_STRING} NOTFOUND ${INFO_KEYS})
|
||||
if(NOT CONFIG_VALUE STREQUAL "NOTFOUND")
|
||||
set(${CONFIG_KEY} ${CONFIG_VALUE})
|
||||
json_get_with_default(VALUE_TYPE ${JSON_STRING} raw ${CONFIG_KEY} value_type)
|
||||
if(${VALUE_TYPE} STREQUAL "str")
|
||||
add_compile_definitions(${CONFIG_KEY}="${CONFIG_VALUE}")
|
||||
message(STATUS "Found definition '${INFO_KEY}': '\"${CONFIG_VALUE}\"' assigned to '${CONFIG_KEY}'")
|
||||
elseif(${VALUE_TYPE} STREQUAL "bcd_version")
|
||||
string(REGEX MATCH "^([0-9]+)\\.([0-9]+)\\.([0-9]+)" VERSION_MATCH ${CONFIG_VALUE})
|
||||
set(VERSION_MAJOR ${CMAKE_MATCH_1})
|
||||
set(VERSION_MINOR ${CMAKE_MATCH_2})
|
||||
set(VERSION_PATCH ${CMAKE_MATCH_3})
|
||||
math(EXPR BCD_VERSION "${VERSION_MAJOR} * 10000 + ${VERSION_MINOR} * 100 + ${VERSION_PATCH}" OUTPUT_FORMAT HEXADECIMAL)
|
||||
add_compile_definitions(${CONFIG_KEY}=${BCD_VERSION})
|
||||
message(STATUS "Found definition '${INFO_KEY}': '${BCD_VERSION}' assigned to '${CONFIG_KEY}'")
|
||||
else()
|
||||
add_compile_definitions(${CONFIG_KEY}=${CONFIG_VALUE})
|
||||
message(STATUS "Found definition '${INFO_KEY}': '${CONFIG_VALUE}' assigned to '${CONFIG_KEY}'")
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
string(JSON KEYBOARD_NAME GET ${QMK_KEYBOARD_INFO_JSON_STRING} keyboard_name)
|
||||
string(JSON MANUFACTURER GET ${QMK_KEYBOARD_INFO_JSON_STRING} manufacturer)
|
||||
string(JSON URL GET ${QMK_KEYBOARD_INFO_JSON_STRING} url)
|
||||
string(JSON QMK_MCU GET ${QMK_KEYBOARD_INFO_JSON_STRING} processor)
|
||||
|
||||
list(POP_BACK CMAKE_MESSAGE_INDENT)
|
||||
message(CHECK_PASS "info.json validated and loaded")
|
||||
|
||||
|
||||
ParseMakefile(${QMK_KEYBOARD_FOLDER_ABS}/rules.mk)
|
||||
endmacro()
|
||||
146
cmake/ResolveKeyboard.cmake
Normal file
146
cmake/ResolveKeyboard.cmake
Normal file
@@ -0,0 +1,146 @@
|
||||
include(Utils)
|
||||
|
||||
function(resolve_keyboard KEYBOARD KEYBOAD_FOLDER_ABS_STR)
|
||||
message(VERBOSE "Resolving ${KEYBOARD}")
|
||||
if(EXISTS "${CMAKE_SOURCE_DIR}/keyboards/${KEYBOARD}")
|
||||
message(VERBOSE "Found in repo: ${KEYBOARD}")
|
||||
set(${KEYBOAD_FOLDER_ABS_STR} "${CMAKE_SOURCE_DIR}/keyboards/${KEYBOARD}" PARENT_SCOPE)
|
||||
return()
|
||||
endif()
|
||||
if(EXISTS "${CMAKE_SOURCE_DIR}/build/keyboard_repository/${KEYBOARD}")
|
||||
message(VERBOSE "Already checked out: ${KEYBOARD}")
|
||||
set(${KEYBOAD_FOLDER_ABS_STR} "${CMAKE_SOURCE_DIR}/build/keyboard_repository/${KEYBOARD}" PARENT_SCOPE)
|
||||
return()
|
||||
endif()
|
||||
file(READ ${CMAKE_SOURCE_DIR}/data/keyboards.json KEYBOARDS_JSON)
|
||||
string(JSON KEYBOARD_SLUG ERROR_VARIABLE JSON_ERROR GET ${KEYBOARDS_JSON} ${KEYBOARD})
|
||||
if(${JSON_ERROR} STREQUAL "NOTFOUND")
|
||||
message(VERBOSE "Found ${KEYBOARD_SLUG}")
|
||||
if(${KEYBOARD_SLUG} MATCHES "^@([0-9a-zA-Z_]+/[0-9a-zA-Z_]+)")
|
||||
# keyboard slug is mapped to a github repo
|
||||
set(GIT_SLUG ${CMAKE_MATCH_1})
|
||||
# string(MAKE_C_IDENTIFIER ${KEYBOARD} KEYBOARD_NAME)
|
||||
message(VERBOSE "Cloning ${GIT_SLUG}")
|
||||
find_package(Git QUIET)
|
||||
if(GIT_FOUND)
|
||||
file(MAKE_DIRECTORY "${CMAKE_SOURCE_DIR}/build/keyboard_repository/${KEYBOARD}")
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} clone "https://github.com/${GIT_SLUG}.git" .
|
||||
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/build/keyboard_repository/${KEYBOARD}"
|
||||
RESULT_VARIABLE GIT_SUBMOD_RESULT)
|
||||
if(NOT GIT_SUBMOD_RESULT EQUAL "0")
|
||||
message(FATAL_ERROR "git clone failed with ${GIT_SUBMOD_RESULT}")
|
||||
endif()
|
||||
else()
|
||||
message("Git not found - skipping submodule update")
|
||||
endif()
|
||||
set(${KEYBOAD_FOLDER_ABS_STR} "${CMAKE_SOURCE_DIR}/build/keyboard_repository/${KEYBOARD}" PARENT_SCOPE)
|
||||
else()
|
||||
message(FATAL_ERROR "Didn't match")
|
||||
endif()
|
||||
else()
|
||||
message(FATAL_ERROR "Couldn't find")
|
||||
# set(${RESULT_STR} "NOTFOUND" PARENT_SCOPE)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(resolve_config_h KEYBOARD_FOLDER_ABS CONFIG_H_STR)
|
||||
set(${CONFIG_H_STR} PARENT_SCOPE)
|
||||
if(${IS_KEYBOARDS_FOLDER})
|
||||
file(RELATIVE_PATH RELATIVE_KEYBOARD_FOLDER ${QMK_KEYBOARDS_FOLDER} ${KEYBOARD_FOLDER_ABS})
|
||||
# get the deepest config.h
|
||||
while(NOT ${RELATIVE_KEYBOARD_FOLDER} STREQUAL "")
|
||||
if(EXISTS "${QMK_KEYBOARDS_FOLDER}/${RELATIVE_KEYBOARD_FOLDER}/config.h")
|
||||
parent_list(PREPEND ${CONFIG_H_STR} "${QMK_KEYBOARDS_FOLDER}/${RELATIVE_KEYBOARD_FOLDER}/config.h")
|
||||
# set(${CONFIG_H_STR} "${QMK_KEYBOARDS_FOLDER}/${RELATIVE_KEYBOARD_FOLDER}/config.h" PARENT_SCOPE)
|
||||
# return()
|
||||
endif()
|
||||
get_filename_component(RELATIVE_KEYBOARD_FOLDER ${RELATIVE_KEYBOARD_FOLDER} DIRECTORY)
|
||||
endwhile()
|
||||
# message(FATAL_ERROR "Could not find config.h in ${KEYBOARD_FOLDER_ABS}")
|
||||
else()
|
||||
if(EXISTS "${KEYBOARD_FOLDER_ABS}/config.h")
|
||||
set(${CONFIG_H_STR} "${KEYBOARD_FOLDER_ABS}/config.h" PARENT_SCOPE)
|
||||
else()
|
||||
message(FATAL_ERROR "Could not find config.h in ${KEYBOARD_FOLDER_ABS}")
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(resolve_keyboard_h KEYBOARD_FOLDER_ABS KEYBOARD_H_STR)
|
||||
if(${IS_KEYBOARDS_FOLDER})
|
||||
file(RELATIVE_PATH RELATIVE_KEYBOARD_FOLDER ${QMK_KEYBOARDS_FOLDER} ${KEYBOARD_FOLDER_ABS})
|
||||
# get the deepest header
|
||||
while(NOT ${RELATIVE_KEYBOARD_FOLDER} STREQUAL "")
|
||||
get_filename_component(LAST_PART ${RELATIVE_KEYBOARD_FOLDER} NAME)
|
||||
if(EXISTS "${QMK_KEYBOARDS_FOLDER}/${RELATIVE_KEYBOARD_FOLDER}/${LAST_PART}.h")
|
||||
set(${KEYBOARD_H_STR} "${QMK_KEYBOARDS_FOLDER}/${RELATIVE_KEYBOARD_FOLDER}/${LAST_PART}.h" PARENT_SCOPE)
|
||||
return()
|
||||
endif()
|
||||
get_filename_component(RELATIVE_KEYBOARD_FOLDER ${RELATIVE_KEYBOARD_FOLDER} DIRECTORY)
|
||||
endwhile()
|
||||
message(FATAL_ERROR "Could not find *.h in ${KEYBOARD_FOLDER_ABS}")
|
||||
else()
|
||||
if(EXISTS "${KEYBOARD_FOLDER_ABS}/keyboard.h")
|
||||
set(${KEYBOARD_H_STR} "${KEYBOARD_FOLDER_ABS}/keyboard.h" PARENT_SCOPE)
|
||||
else()
|
||||
message(FATAL_ERROR "Could not find keyboard.h in ${KEYBOARD_FOLDER_ABS}")
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(resolve_keymap_c KEYBOARD_FOLDER_ABS KEYMAP_FOLDER KEYMAP_C_STR)
|
||||
if(IS_ABSOLUTE ${KEYMAP_FOLDER})
|
||||
if(EXISTS "${KEYMAP_FOLDER}/keymap.c")
|
||||
set(${KEYMAP_C_STR} "${KEYMAP_FOLDER}/keymap.c" PARENT_SCOPE)
|
||||
return()
|
||||
endif()
|
||||
else()
|
||||
if(${IS_KEYBOARDS_FOLDER})
|
||||
file(RELATIVE_PATH RELATIVE_KEYBOARD_FOLDER ${QMK_KEYBOARDS_FOLDER} ${KEYBOARD_FOLDER_ABS})
|
||||
# get the deepest keymap.c
|
||||
while(NOT ${RELATIVE_KEYBOARD_FOLDER} STREQUAL "")
|
||||
if(EXISTS "${QMK_KEYBOARDS_FOLDER}/${RELATIVE_KEYBOARD_FOLDER}/keymaps/${KEYMAP_FOLDER}/keymap.c")
|
||||
set(${KEYMAP_C_STR} "${QMK_KEYBOARDS_FOLDER}/${RELATIVE_KEYBOARD_FOLDER}/keymaps/${KEYMAP_FOLDER}/keymap.c" PARENT_SCOPE)
|
||||
return()
|
||||
endif()
|
||||
get_filename_component(RELATIVE_KEYBOARD_FOLDER ${RELATIVE_KEYBOARD_FOLDER} DIRECTORY)
|
||||
endwhile()
|
||||
else()
|
||||
if(EXISTS "${KEYBOARD_FOLDER_ABS}/keymap.c")
|
||||
set(${KEYMAP_C_STR} "${KEYBOARD_FOLDER_ABS}/keymap.c" PARENT_SCOPE)
|
||||
return()
|
||||
elseif(EXISTS "${KEYBOARD_FOLDER_ABS}/keymaps/${KEYMAP_FOLDER}/keymap.c")
|
||||
set(${KEYMAP_C_STR} "${KEYBOARD_FOLDER_ABS}/keymaps/${KEYMAP_FOLDER}/keymap.c" PARENT_SCOPE)
|
||||
return()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# string(JSON COMMUNITY_LAYOUTS ERROR_VARIABLE NO_COMMUNITY_LAYOUTS GET ${QMK_KEYBOARD_INFO_JSON_STRING} community_layouts)
|
||||
|
||||
# if(${NO_COMMUNITY_LAYOUTS} STREQUAL "NOTFOUND")
|
||||
# string(JSON NUM_LAYOUTS LENGTH ${COMMUNITY_LAYOUTS})
|
||||
# math(EXPR MAX "${NUM_LAYOUTS} - 1")
|
||||
foreach(LAYOUT ${LAYOUTS})
|
||||
# foreach(IDX RANGE ${MAX})
|
||||
# string(JSON LAYOUT GET ${COMMUNITY_LAYOUTS} ${IDX})
|
||||
if(EXISTS "${CMAKE_SOURCE_DIR}/layouts/community/${LAYOUT}/${KEYMAP_FOLDER}/keymap.c")
|
||||
set(${KEYMAP_C_STR} "${CMAKE_SOURCE_DIR}/layouts/community/${LAYOUT}/${KEYMAP_FOLDER}/keymap.c" PARENT_SCOPE)
|
||||
return()
|
||||
endif()
|
||||
endforeach()
|
||||
# endif()
|
||||
message(FATAL_ERROR "Could not resolve keymap '${KEYMAP_FOLDER}'")
|
||||
endfunction()
|
||||
|
||||
function(resolve_keyboard_includes KEYBOARD_FOLDER_ABS)
|
||||
if(${IS_KEYBOARDS_FOLDER})
|
||||
file(RELATIVE_PATH RELATIVE_KEYBOARD_FOLDER ${QMK_KEYBOARDS_FOLDER} ${KEYBOARD_FOLDER_ABS})
|
||||
while(NOT ${RELATIVE_KEYBOARD_FOLDER} STREQUAL "")
|
||||
target_include_directories(qmk PUBLIC "${CMAKE_SOURCE_DIR}/keyboards/${RELATIVE_KEYBOARD_FOLDER}")
|
||||
get_filename_component(RELATIVE_KEYBOARD_FOLDER ${RELATIVE_KEYBOARD_FOLDER} DIRECTORY)
|
||||
endwhile()
|
||||
else()
|
||||
target_include_directories(qmk PUBLIC "${KEYBOARD_FOLDER_ABS}")
|
||||
endif()
|
||||
endfunction()
|
||||
60
cmake/ResolveToolchain.cmake
Normal file
60
cmake/ResolveToolchain.cmake
Normal file
@@ -0,0 +1,60 @@
|
||||
function(resolve_toolchain PROCESSOR TOOLCHAIN_STR)
|
||||
unset(${TOOLCHAIN_STR} PARENT_SCOPE)
|
||||
if(
|
||||
${PROCESSOR} MATCHES "^at.*"
|
||||
)
|
||||
set(${TOOLCHAIN_STR} "avr" PARENT_SCOPE)
|
||||
set(QMK_EXTENSION ".hex" PARENT_SCOPE)
|
||||
include(FindAVRToolchain)
|
||||
find_avr_toolchain()
|
||||
elseif(
|
||||
${PROCESSOR} MATCHES "^STM.*" OR
|
||||
${PROCESSOR} MATCHES "^WB32.*" OR
|
||||
${PROCESSOR} MATCHES "^MK.*" OR
|
||||
${PROCESSOR} MATCHES "RP2040" OR
|
||||
${PROCESSOR} MATCHES "^GD32.*"
|
||||
)
|
||||
set(${TOOLCHAIN_STR} "arm-none-eabi" PARENT_SCOPE)
|
||||
set(QMK_EXTENSION ".bin" PARENT_SCOPE)
|
||||
include(FindARMToolchain)
|
||||
find_arm_toolchain()
|
||||
elseif(
|
||||
${PROCESSOR} MATCHES "risc-v"
|
||||
)
|
||||
set(${TOOLCHAIN_STR} "riscv32-unknown-elf" PARENT_SCOPE)
|
||||
set(QMK_EXTENSION ".bin" PARENT_SCOPE)
|
||||
else()
|
||||
message(FATAL_ERROR "Could not find toolchain for ${PROCESSOR}")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(find_toolchain TOOLCHAIN TOOLCHAIN_ROOT_STR)
|
||||
unset(${TOOLCHAIN_STR} PARENT_SCOPE)
|
||||
if(UNIX)
|
||||
set(OS_SUFFIX "")
|
||||
find_path(TOOLCHAIN_ROOT
|
||||
NAMES
|
||||
${TOOLCHAIN}-gcc${OS_SUFFIX}
|
||||
PATHS
|
||||
"${CMAKE_SOURCE_DIR}/toolchains/avr-gcc/avr-gcc-12.1.0-x64-linux/bin/"
|
||||
"${CMAKE_SOURCE_DIR}/toolchains/gcc-arm-none-eabi-10.3-2021.10/bin/"
|
||||
/usr/bin/
|
||||
/usr/local/bin
|
||||
/bin/
|
||||
$ENV{AVR_ROOT}
|
||||
)
|
||||
elseif(WIN32)
|
||||
set(OS_SUFFIX ".exe")
|
||||
find_path(TOOLCHAIN_ROOT
|
||||
NAMES
|
||||
${TOOLCHAIN}-gcc${OS_SUFFIX}
|
||||
PATHS
|
||||
"${CMAKE_SOURCE_DIR}/toolchains/avr-gcc-12.1.0-x64-windows/bin"
|
||||
"${CMAKE_SOURCE_DIR}/toolchains/gcc-arm-none-eabi-10.3-2021.10/bin/"
|
||||
$ENV{AVR_ROOT}
|
||||
)
|
||||
else()
|
||||
message(FATAL_ERROR "Unsure how to handle this OS")
|
||||
endif(UNIX)
|
||||
set(${TOOLCHAIN_ROOT_STR} ${TOOLCHAIN_ROOT} PARENT_SCOPE)
|
||||
endfunction(find_toolchain)
|
||||
22
cmake/UpdateSubmodule.cmake
Normal file
22
cmake/UpdateSubmodule.cmake
Normal file
@@ -0,0 +1,22 @@
|
||||
# can be passed a relative path (to CMAKE_SOURCE_DIR) to update/checkout that submodule
|
||||
macro(update_submodule SUBMODULE)
|
||||
find_package(Git QUIET)
|
||||
if(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
|
||||
option(GIT_SUBMODULE "Check submodules during build" ON)
|
||||
if(GIT_SUBMODULE)
|
||||
message(STATUS "Updating submoudle ${SUBMODULE}")
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} submodule update ${SUBMODULE}
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
RESULT_VARIABLE GIT_SUBMOD_RESULT)
|
||||
if(NOT GIT_SUBMOD_RESULT EQUAL "0")
|
||||
message(FATAL_ERROR "git submodule update ${SUBMODULE} failed with ${GIT_SUBMOD_RESULT}, please checkout submodules")
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
message("Git not found - skipping submodule update")
|
||||
endif()
|
||||
|
||||
if(NOT EXISTS "${CMAKE_SOURCE_DIR}/${SUBMODULE}/.git")
|
||||
message(FATAL_ERROR "The submodule was not downloaded! GIT_SUBMODULE was turned off or failed. Please update submodules and try again.")
|
||||
endif()
|
||||
endmacro()
|
||||
25
cmake/Utils.cmake
Normal file
25
cmake/Utils.cmake
Normal file
@@ -0,0 +1,25 @@
|
||||
macro(json_get_with_default KEY_STR JSON_STR DEFAULT)
|
||||
# message(STATUS "Getting ${ARGN} for ${KEY_STR}")
|
||||
string(JSON ${KEY_STR} ERROR_VARIABLE JSON_ERROR GET ${JSON_STR} ${ARGN})
|
||||
if(NOT ${JSON_ERROR} STREQUAL "NOTFOUND")
|
||||
set(${KEY_STR} ${DEFAULT})
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
macro(json_get KEY_STR JSON_STR)
|
||||
# message(STATUS "Getting ${ARGN} for ${KEY_STR}")
|
||||
string(JSON ${KEY_STR} ERROR_VARIABLE JSON_ERROR GET ${JSON_STR} ${ARGN})
|
||||
if(NOT ${JSON_ERROR} STREQUAL "NOTFOUND")
|
||||
unset(${KEY_STR})
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
macro(parent_list ACTION LIST_STR)
|
||||
set(ARGS ${ARGN})
|
||||
string(REPLACE ";" " " ARGS ${ARGS})
|
||||
set(LOCAL_LIST ${${LIST_STR}})
|
||||
list(${ACTION} LOCAL_LIST ${ARGS})
|
||||
# set in current scope too
|
||||
set(${LIST_STR} ${LOCAL_LIST})
|
||||
set(${LIST_STR} ${LOCAL_LIST} PARENT_SCOPE)
|
||||
endmacro()
|
||||
199
cmake/ValidateJson.cmake
Normal file
199
cmake/ValidateJson.cmake
Normal file
@@ -0,0 +1,199 @@
|
||||
function(validate_json JSON_FILE SCHEMA_NAME JSON_STRING_STR)
|
||||
unset(${JSON_STRING_STR} PARENT_SCOPE)
|
||||
message(VERBOSE "Validating ${JSON_FILE} with '${SCHEMA_NAME}' schema")
|
||||
file(READ ${JSON_FILE} JSON_STRING)
|
||||
file(READ ${CMAKE_SOURCE_DIR}/data/schemas/${SCHEMA_NAME}.jsonschema SCHEMA_STRING)
|
||||
string(JSON SCHEMA_ID GET ${SCHEMA_STRING} $id)
|
||||
|
||||
set(DEFINITIONS "{}")
|
||||
file(READ ${CMAKE_SOURCE_DIR}/data/schemas/definitions.jsonschema DEFINITIONS_STRING)
|
||||
string(JSON DEFINITION_ID GET ${DEFINITIONS_STRING} $id)
|
||||
string(JSON DEFINITIONS SET ${DEFINITIONS} "${DEFINITION_ID}#" ${DEFINITIONS_STRING})
|
||||
|
||||
string(JSON SCHEMA_DEFINITIONS ERROR_VARIABLE JSON_ERROR GET ${SCHEMA_STRING} definitions)
|
||||
if(${JSON_ERROR} STREQUAL "NOTFOUND")
|
||||
string(JSON DEFINITIONS SET ${DEFINITIONS} "#" "{}")
|
||||
string(JSON DEFINITIONS SET ${DEFINITIONS} "#" definitions ${SCHEMA_DEFINITIONS})
|
||||
# string(JSON DEFINITIONS_LENGTH LENGTH ${SCHEMA_DEFINITIONS})
|
||||
# math(EXPR MAX "${DEFINITIONS_LENGTH} - 1")
|
||||
# foreach(IDX RANGE ${MAX})
|
||||
# string(JSON DEFINITION_NAME MEMBER ${SCHEMA_DEFINITIONS} ${IDX})
|
||||
# string(JSON DEFINITION GET ${SCHEMA_DEFINITIONS} ${DEFINITION_NAME})
|
||||
# message(VERBOSE "Loading local definition '${DEFINITION_NAME}'")
|
||||
# string(JSON DEFINITIONS_STRING SET ${DEFINITIONS_STRING} ${DEFINITION_NAME} ${DEFINITION})
|
||||
# endforeach()
|
||||
endif()
|
||||
|
||||
validate_object(${JSON_STRING} ${SCHEMA_STRING} OBJECT_ERROR)
|
||||
if(DEFINED OBJECT_ERROR)
|
||||
message(FATAL_ERROR ${OBJECT_ERROR})
|
||||
else()
|
||||
set(${JSON_STRING_STR} ${JSON_STRING} PARENT_SCOPE)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(validate_object JSON_STRING SCHEMA_STRING OBJECT_ERROR_STR)
|
||||
unset(${OBJECT_ERROR_STR} PARENT_SCOPE)
|
||||
set(OBJECT_ERROR)
|
||||
string(JSON PROPERTY_NAME_SCHEMA ERROR_VARIABLE PROPERTY_NAMES_ERROR GET ${SCHEMA_STRING} propertyNames)
|
||||
string(JSON REQUIRED_PROPERTIES ERROR_VARIABLE REQUIRED_PROPERTIES_ERROR GET ${SCHEMA_STRING} required)
|
||||
set(REQUIRED_LIST)
|
||||
if(${REQUIRED_PROPERTIES_ERROR} STREQUAL "NOTFOUND")
|
||||
string(JSON REQUIRED_LENGTH LENGTH ${REQUIRED_PROPERTIES})
|
||||
math(EXPR MAX "${REQUIRED_LENGTH} - 1")
|
||||
foreach(IDX RANGE ${MAX})
|
||||
string(JSON REQUIRED GET ${REQUIRED_PROPERTIES} ${IDX})
|
||||
list(APPEND REQUIRED_LIST ${REQUIRED})
|
||||
endforeach()
|
||||
endif()
|
||||
string(JSON NUM_PROPERTIES LENGTH ${JSON_STRING})
|
||||
math(EXPR MAX "${NUM_PROPERTIES} - 1")
|
||||
foreach(IDX RANGE ${MAX})
|
||||
string(JSON PROPERTY_NAME MEMBER ${JSON_STRING} ${IDX})
|
||||
list(REMOVE_ITEM REQUIRED_LIST ${PROPERTY_NAME})
|
||||
message(VERBOSE "Validating property '${PROPERTY_NAME}'")
|
||||
if(${PROPERTY_NAMES_ERROR} STREQUAL "NOTFOUND")
|
||||
validate_property(${PROPERTY_NAME} ${PROPERTY_NAME_SCHEMA} PROPERTY_NAME_ERROR)
|
||||
if(DEFINED PROPERTY_NAME_ERROR)
|
||||
list(APPEND OBJECT_ERROR "${PROPERTY_NAME_ERROR}")
|
||||
endif()
|
||||
endif()
|
||||
string(JSON PROPERTY GET ${JSON_STRING} ${PROPERTY_NAME})
|
||||
string(JSON SCHEMA_PROPERTIES ERROR_VARIABLE PROPERTIES_ERROR GET ${SCHEMA_STRING} properties ${PROPERTY_NAME})
|
||||
if(${PROPERTIES_ERROR} STREQUAL "NOTFOUND")
|
||||
string(JSON PROPERTY_SCHEMA GET ${SCHEMA_STRING} properties ${PROPERTY_NAME})
|
||||
else()
|
||||
string(JSON PROPERTY_SCHEMA ERROR_VARIABLE ADDITIONAL_PROPERTIES_ERROR GET ${SCHEMA_STRING} additionalProperties)
|
||||
if(NOT ${ADDITIONAL_PROPERTIES_ERROR} STREQUAL "NOTFOUND" OR "${PROPERTY_SCHEMA}" STREQUAL "OFF")
|
||||
list(APPEND OBJECT_ERROR "Additional properties like '${PROPERTY_NAME}' not permitted in '${JSON_STRING}'")
|
||||
endif()
|
||||
endif()
|
||||
validate_property(${PROPERTY} ${PROPERTY_SCHEMA} PROPERTY_ERROR)
|
||||
if(DEFINED PROPERTY_ERROR)
|
||||
list(APPEND OBJECT_ERROR "${PROPERTY_ERROR}")
|
||||
endif()
|
||||
endforeach()
|
||||
list(LENGTH REQUIRED_LIST REQUIRED_REMAINING_LENGTH)
|
||||
if(${REQUIRED_REMAINING_LENGTH} GREATER 0)
|
||||
list(APPEND OBJECT_ERROR "Required properties not found: ${REQUIRED_LIST}")
|
||||
endif()
|
||||
set(${OBJECT_ERROR_STR} ${OBJECT_ERROR} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(validate_property PROPERTY PROPERTY_SCHEMA PROPERTY_ERROR_STR)
|
||||
unset(${PROPERTY_ERROR_STR} PARENT_SCOPE)
|
||||
set(PROPERTY_ERROR)
|
||||
string(JSON PROPERTY_REF ERROR_VARIABLE JSON_ERROR GET ${PROPERTY_SCHEMA} $ref)
|
||||
if(${JSON_ERROR} STREQUAL "NOTFOUND")
|
||||
string(REPLACE "/" ";" REF_COMPONENTS "${PROPERTY_REF}")
|
||||
string(JSON PROPERTY_SCHEMA GET ${DEFINITIONS} ${REF_COMPONENTS})
|
||||
endif()
|
||||
string(JSON PROPERTY_TYPE ERROR_VARIABLE JSON_ERROR GET ${PROPERTY_SCHEMA} type)
|
||||
if(${JSON_ERROR} STREQUAL "NOTFOUND")
|
||||
message(VERBOSE "Validating property type '${PROPERTY_TYPE}'")
|
||||
if(${PROPERTY_TYPE} STREQUAL "object")
|
||||
validate_object(${PROPERTY} ${PROPERTY_SCHEMA} OBJECT_ERROR)
|
||||
if(DEFINED OBJECT_ERROR)
|
||||
list(APPEND PROPERTY_ERROR ${OBJECT_ERROR})
|
||||
endif()
|
||||
elseif(${PROPERTY_TYPE} STREQUAL "array")
|
||||
string(JSON ARRAY_LENGTH LENGTH ${PROPERTY})
|
||||
string(JSON MAX_ITEMS ERROR_VARIABLE JSON_ERROR GET ${PROPERTY_SCHEMA} maxItems)
|
||||
if(${JSON_ERROR} STREQUAL "NOTFOUND" AND ${ARRAY_LENGTH} GREATER ${MAX_ITEMS})
|
||||
list(APPEND PROPERTY_ERROR "Number of items in '${PROPERTY}' exceeds maximum ${MAX_ITEMS}")
|
||||
endif()
|
||||
string(JSON MIN_ITEMS ERROR_VARIABLE JSON_ERROR GET ${PROPERTY_SCHEMA} minItems)
|
||||
if(${JSON_ERROR} STREQUAL "NOTFOUND" AND ${ARRAY_LENGTH} LESS ${MIN_ITEMS})
|
||||
list(APPEND PROPERTY_ERROR "Number of items in '${PROPERTY}' is less than ${MIN_ITEMS}")
|
||||
endif()
|
||||
string(JSON ITEM_SCHEMA ERROR_VARIABLE JSON_ERROR GET ${PROPERTY_SCHEMA} items)
|
||||
if(${JSON_ERROR} STREQUAL "NOTFOUND")
|
||||
math(EXPR MAX "${ARRAY_LENGTH} - 1")
|
||||
foreach(IDX RANGE ${MAX})
|
||||
string(JSON ITEM GET ${PROPERTY} ${IDX})
|
||||
validate_property(${ITEM} ${ITEM_SCHEMA} ITEM_ERROR)
|
||||
if(DEFINED ITEM_ERROR)
|
||||
list(APPEND PROPERTY_ERROR ${ITEM_ERROR})
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
elseif(${PROPERTY_TYPE} STREQUAL "null")
|
||||
if(NOT "${PROPERTY}" STREQUAL "null")
|
||||
list(APPEND PROPERTY_ERROR "Property '${PROPERTY}' is not null'")
|
||||
endif()
|
||||
elseif(${PROPERTY_TYPE} STREQUAL "boolean")
|
||||
if(NOT "${PROPERTY}" STREQUAL "OFF" AND NOT "${PROPERTY}" STREQUAL "ON")
|
||||
list(APPEND PROPERTY_ERROR "Property '${PROPERTY}' is not a boolean'")
|
||||
endif()
|
||||
elseif(${PROPERTY_TYPE} STREQUAL "number")
|
||||
if(NOT "${PROPERTY}" MATCHES "-?[0-9]+\\.?[0-9]*")
|
||||
list(APPEND PROPERTY_ERROR "Property '${PROPERTY}' is not a number'")
|
||||
endif()
|
||||
elseif(${PROPERTY_TYPE} STREQUAL "integer")
|
||||
if(NOT "${PROPERTY}" MATCHES "-?[0-9]+")
|
||||
list(APPEND PROPERTY_ERROR "Property '${PROPERTY}' is not an integer'")
|
||||
endif()
|
||||
string(JSON MIN ERROR_VARIABLE JSON_ERROR GET ${PROPERTY_SCHEMA} minimum)
|
||||
if(${JSON_ERROR} STREQUAL "NOTFOUND" AND ${PROPERTY} LESS ${MIN})
|
||||
list(APPEND PROPERTY_ERROR "Property '${PROPERTY}' is less than the minimum of ${MIN}")
|
||||
endif()
|
||||
string(JSON MAX ERROR_VARIABLE JSON_ERROR GET ${PROPERTY_SCHEMA} maximum)
|
||||
if(${JSON_ERROR} STREQUAL "NOTFOUND" AND ${PROPERTY} GREATER ${MAX})
|
||||
list(APPEND PROPERTY_ERROR "Property '${PROPERTY}' is greater than the maximum of ${MAX}")
|
||||
endif()
|
||||
elseif(${PROPERTY_TYPE} STREQUAL "string")
|
||||
# cmake regex doesn't support {}, so other options might be needed here
|
||||
string(JSON PATTERN ERROR_VARIABLE JSON_ERROR GET ${PROPERTY_SCHEMA} pattern)
|
||||
if(${JSON_ERROR} STREQUAL "NOTFOUND" AND NOT "${PROPERTY}" MATCHES "${PATTERN}")
|
||||
list(APPEND PROPERTY_ERROR "Property '${PROPERTY}' does not match '${PATTERN}'")
|
||||
endif()
|
||||
string(LENGTH ${PROPERTY} STRING_LENGTH)
|
||||
string(JSON MIN_LENGTH ERROR_VARIABLE JSON_ERROR GET ${PROPERTY_SCHEMA} minLength)
|
||||
if(${JSON_ERROR} STREQUAL "NOTFOUND" AND ${STRING_LENGTH} LESS ${MIN_LENGTH})
|
||||
list(APPEND PROPERTY_ERROR "Length of property '${PROPERTY}' is less than the minimum of ${MIN_LENGTH}")
|
||||
endif()
|
||||
string(JSON MAX_LENGTH ERROR_VARIABLE JSON_ERROR GET ${PROPERTY_SCHEMA} maxLength)
|
||||
if(${JSON_ERROR} STREQUAL "NOTFOUND" AND ${STRING_LENGTH} GREATER ${MAX_LENGTH})
|
||||
list(APPEND PROPERTY_ERROR "Length of property '${PROPERTY}' is greater than the maximum of ${MAX_LENGTH}")
|
||||
endif()
|
||||
string(JSON ENUM_LIST ERROR_VARIABLE JSON_ERROR GET ${PROPERTY_SCHEMA} enum)
|
||||
if(${JSON_ERROR} STREQUAL "NOTFOUND")
|
||||
set(FOUND_IN_ENUM_LIST FALSE)
|
||||
string(JSON ENUM_LENGTH LENGTH ${ENUM_LIST})
|
||||
math(EXPR MAX "${ENUM_LENGTH} - 1")
|
||||
foreach(IDX RANGE ${MAX})
|
||||
string(JSON ENUM GET ${PROPERTY_SCHEMA} enum ${IDX})
|
||||
if(${ENUM} STREQUAL ${PROPERTY})
|
||||
set(FOUND_IN_ENUM_LIST TRUE)
|
||||
endif()
|
||||
endforeach()
|
||||
if(NOT ${FOUND_IN_ENUM_LIST})
|
||||
list(APPEND PROPERTY_ERROR "Property '${PROPERTY}' is not defined in the schema's enum: ${ENUM_LIST}")
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
message(VERBOSE "Unknown type '${PROPERTY_TYPE}'")
|
||||
endif()
|
||||
else()
|
||||
string(JSON PROPERTY_ONEOF ERROR_VARIABLE JSON_ERROR GET ${PROPERTY_SCHEMA} oneOf)
|
||||
if(${JSON_ERROR} STREQUAL "NOTFOUND")
|
||||
set(TYPE_SUCCESS FALSE)
|
||||
string(JSON NUM_ONEOF LENGTH ${PROPERTY_ONEOF})
|
||||
math(EXPR MAX "${NUM_ONEOF} - 1")
|
||||
set(ONEOF_ERRORS)
|
||||
foreach(IDX RANGE ${MAX})
|
||||
string(JSON PROPERTY_SCHEMA GET ${PROPERTY_ONEOF} ${IDX})
|
||||
validate_property(${PROPERTY} ${PROPERTY_SCHEMA} ONEOF_ERROR)
|
||||
if(NOT DEFINED ONEOF_ERROR)
|
||||
set(TYPE_SUCCESS TRUE)
|
||||
else()
|
||||
list(APPEND ONEOF_ERRORS "${ONEOF_ERROR}\n")
|
||||
endif()
|
||||
endforeach()
|
||||
if(NOT TYPE_SUCCESS)
|
||||
list(APPEND PROPERTY_ERROR "Could not validate oneOf type '${PROPERTY}' :\n${ONEOF_ERRORS}")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
set(${PROPERTY_ERROR_STR} ${PROPERTY_ERROR} PARENT_SCOPE)
|
||||
endfunction()
|
||||
2
cmake/chibios/LLD/ADCv3.cmake
Normal file
2
cmake/chibios/LLD/ADCv3.cmake
Normal file
@@ -0,0 +1,2 @@
|
||||
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/ADCv3/hal_adc_lld.c)
|
||||
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/ADCv3)
|
||||
2
cmake/chibios/LLD/CANv1.cmake
Normal file
2
cmake/chibios/LLD/CANv1.cmake
Normal file
@@ -0,0 +1,2 @@
|
||||
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/CANv1/hal_can_lld.c)
|
||||
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/CANv1)
|
||||
2
cmake/chibios/LLD/DACv1.cmake
Normal file
2
cmake/chibios/LLD/DACv1.cmake
Normal file
@@ -0,0 +1,2 @@
|
||||
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/DACv1/hal_dac_lld.c)
|
||||
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/DACv1)
|
||||
2
cmake/chibios/LLD/DMAv1.cmake
Normal file
2
cmake/chibios/LLD/DMAv1.cmake
Normal file
@@ -0,0 +1,2 @@
|
||||
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/DMAv1/stm32_dma.c)
|
||||
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/DMAv1)
|
||||
2
cmake/chibios/LLD/EXTIv1.cmake
Normal file
2
cmake/chibios/LLD/EXTIv1.cmake
Normal file
@@ -0,0 +1,2 @@
|
||||
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/EXTIv1/stm32_exti.c)
|
||||
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/EXTIv1)
|
||||
2
cmake/chibios/LLD/GPIOv2.cmake
Normal file
2
cmake/chibios/LLD/GPIOv2.cmake
Normal file
@@ -0,0 +1,2 @@
|
||||
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/GPIOv2/hal_pal_lld.c)
|
||||
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/GPIOv2)
|
||||
7
cmake/chibios/LLD/I2Cv2.cmake
Normal file
7
cmake/chibios/LLD/I2Cv2.cmake
Normal file
@@ -0,0 +1,7 @@
|
||||
if(${USE_HAL_I2C_FALLBACK})
|
||||
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/I2C/hal_i2c_lld.c)
|
||||
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/I2C)
|
||||
else()
|
||||
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/I2Cv2/hal_i2c_lld.c)
|
||||
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/I2Cv2)
|
||||
endif()
|
||||
2
cmake/chibios/LLD/RTCv2.cmake
Normal file
2
cmake/chibios/LLD/RTCv2.cmake
Normal file
@@ -0,0 +1,2 @@
|
||||
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/RTCv2/hal_rtc_lld.c)
|
||||
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/RTCv2)
|
||||
5
cmake/chibios/LLD/SPIv2.cmake
Normal file
5
cmake/chibios/LLD/SPIv2.cmake
Normal file
@@ -0,0 +1,5 @@
|
||||
target_sources(qmk PUBLIC
|
||||
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/SPIv2/hal_i2s_lld.c
|
||||
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/SPIv2/hal_spi_v2_lld.c
|
||||
)
|
||||
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/SPIv2)
|
||||
2
cmake/chibios/LLD/SYSTICKv1.cmake
Normal file
2
cmake/chibios/LLD/SYSTICKv1.cmake
Normal file
@@ -0,0 +1,2 @@
|
||||
target_sources(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/SYSTICKv1/hal_st_lld.c)
|
||||
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/SYSTICKv1)
|
||||
6
cmake/chibios/LLD/TIMv1.cmake
Normal file
6
cmake/chibios/LLD/TIMv1.cmake
Normal file
@@ -0,0 +1,6 @@
|
||||
target_sources(qmk PUBLIC
|
||||
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/TIMv1/hal_gpt_lld.c
|
||||
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/TIMv1/hal_icu_lld.c
|
||||
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/TIMv1/hal_pwm_lld.c
|
||||
)
|
||||
target_include_directories(qmk PUBLIC ${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/TIMv1)
|
||||
9
cmake/chibios/LLD/USARTv2.cmake
Normal file
9
cmake/chibios/LLD/USARTv2.cmake
Normal file
@@ -0,0 +1,9 @@
|
||||
target_sources(qmk PUBLIC
|
||||
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/USARTv2/hal_serial_lld.c
|
||||
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/USARTv2/hal_sio_lld.c
|
||||
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/USARTv2/hal_uart_lld.c
|
||||
)
|
||||
target_include_directories(qmk PUBLIC
|
||||
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/USART
|
||||
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/USARTv2
|
||||
)
|
||||
6
cmake/chibios/LLD/USBv1.cmake
Normal file
6
cmake/chibios/LLD/USBv1.cmake
Normal file
@@ -0,0 +1,6 @@
|
||||
target_sources(qmk PUBLIC
|
||||
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/USBv1/hal_usb_lld.c
|
||||
)
|
||||
target_include_directories(qmk PUBLIC
|
||||
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/USBv1
|
||||
)
|
||||
6
cmake/chibios/LLD/xWDGv1.cmake
Normal file
6
cmake/chibios/LLD/xWDGv1.cmake
Normal file
@@ -0,0 +1,6 @@
|
||||
target_sources(qmk PUBLIC
|
||||
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/xWDGv1/hal_wdg_lld.c
|
||||
)
|
||||
target_include_directories(qmk PUBLIC
|
||||
${CHIBIOS}/os/hal/ports/${MCU_PORT_NAME}/LLD/xWDGv1
|
||||
)
|
||||
10
cmake/chibios/ports/ARMv7-M.cmake
Normal file
10
cmake/chibios/ports/ARMv7-M.cmake
Normal file
@@ -0,0 +1,10 @@
|
||||
# os/common/ports/ARMv7/compilers/GCC/mk/port.mk
|
||||
target_sources(qmk PUBLIC
|
||||
${CHIBIOS}/os/common/ports/ARMv7-M/chcore.c
|
||||
${CHIBIOS}/os/common/ports/ARMv7-M/compilers/GCC/chcoreasm.S
|
||||
)
|
||||
target_include_directories(qmk PUBLIC
|
||||
${CHIBIOS}/os/common/portability/GCC
|
||||
${CHIBIOS}/os/common/ports/ARM-common
|
||||
${CHIBIOS}/os/common/ports/ARMv7-M
|
||||
)
|
||||
25
cmake/chibios/ports/STM32F3xx.cmake
Normal file
25
cmake/chibios/ports/STM32F3xx.cmake
Normal file
@@ -0,0 +1,25 @@
|
||||
# os/hal/ports/STM32/STM32F3xx/platform.mk
|
||||
target_sources(qmk PUBLIC
|
||||
${CHIBIOS}/os/hal/ports/common/ARMCMx/nvic.c
|
||||
${CHIBIOS}/os/hal/ports/STM32/STM32F3xx/stm32_isr.c
|
||||
${CHIBIOS}/os/hal/ports/STM32/STM32F3xx/hal_lld.c
|
||||
${CHIBIOS}/os/hal/ports/STM32/STM32F3xx/hal_efl_lld.c
|
||||
)
|
||||
target_include_directories(qmk PUBLIC
|
||||
${CHIBIOS}/os/hal/ports/common/ARMCMx
|
||||
${CHIBIOS}/os/hal/ports/STM32/STM32F3xx
|
||||
)
|
||||
include(chibios/LLD/ADCv3)
|
||||
include(chibios/LLD/CANv1)
|
||||
include(chibios/LLD/DACv1)
|
||||
include(chibios/LLD/DMAv1)
|
||||
include(chibios/LLD/EXTIv1)
|
||||
include(chibios/LLD/GPIOv2)
|
||||
include(chibios/LLD/I2Cv2)
|
||||
include(chibios/LLD/RTCv2)
|
||||
include(chibios/LLD/SPIv2)
|
||||
include(chibios/LLD/SYSTICKv1)
|
||||
include(chibios/LLD/TIMv1)
|
||||
include(chibios/LLD/USARTv2)
|
||||
include(chibios/LLD/USBv1)
|
||||
include(chibios/LLD/xWDGv1)
|
||||
32
cmake/features/backlight.cmake
Normal file
32
cmake/features/backlight.cmake
Normal file
@@ -0,0 +1,32 @@
|
||||
option(BACKLIGHT_ENABLE "" TRUE)
|
||||
set(BACKLIGHT_DRIVER "pwm" CACHE STRING "Backlight driver")
|
||||
set_property(CACHE BACKLIGHT_DRIVER PROPERTY STRINGS pwm timer software custom)
|
||||
|
||||
string(JSON BACKLIGHT_PIN ERROR_VARIABLE NO_BACKLIGHT_PIN GET ${QMK_KEYBOARD_INFO_JSON_STRING} backlight pin)
|
||||
if(${BACKLIGHT_ENABLE} AND NOT ${BACKLIGHT_PIN} STREQUAL "backlight-NOTFOUND")
|
||||
target_sources(qmk PUBLIC
|
||||
quantum/backlight/backlight.c
|
||||
quantum/process_keycode/process_backlight.c
|
||||
)
|
||||
target_compile_definitions(qmk PUBLIC
|
||||
BACKLIGHT_ENABLE
|
||||
BACKLIGHT_PIN=${BACKLIGHT_PIN}
|
||||
)
|
||||
if(${BACKLIGHT_DRIVER} STREQUAL "custom")
|
||||
target_compile_definitions(qmk PUBLIC BACKLIGHT_CUSTOM_DRIVER)
|
||||
else()
|
||||
target_sources(qmk PUBLIC quantum/backlight/backlight_driver_common.c)
|
||||
if(${BACKLIGHT_DRIVER} STREQUAL "pwm")
|
||||
target_sources(qmk PUBLIC quantum/backlight/backlight_${QMK_PLATFORM}.c)
|
||||
else()
|
||||
target_sources(qmk PUBLIC quantum/backlight/backlight_${BACKLIGHT_DRIVER}.c)
|
||||
endif()
|
||||
endif()
|
||||
target_include_directories(qmk PUBLIC quantum/backlight)
|
||||
target_include_directories(qmk PUBLIC drivers/oled)
|
||||
# target_link_libraries(backlight qmk)
|
||||
# target_include_directories(backlight PUBLIC quantum/backlight)
|
||||
# target_include_directories(quantum PUBLIC quantum/backlight)
|
||||
# target_link_libraries(backlight ${QMK_TARGET})
|
||||
# target_link_libraries(backlight quantum)
|
||||
endif()
|
||||
70
cmake/features/eeprom.cmake
Normal file
70
cmake/features/eeprom.cmake
Normal file
@@ -0,0 +1,70 @@
|
||||
set(EEPROM_DRIVER "vendor" CACHE STRING "EEPROM driver")
|
||||
set_property(CACHE EEPROM_DRIVER PROPERTY STRINGS vendor custom transient i2c spi wear_leveling legacy_stm32_flash)
|
||||
set(WEAR_LEVELING_DRIVER "none" CACHE STRING "EEPROM wear-leveling driver")
|
||||
set_property(CACHE WEAR_LEVELING_DRIVER PROPERTY STRINGS custom embedded_flash spi_flash rp2040_flash legacy)
|
||||
|
||||
target_compile_definitions(qmk PUBLIC
|
||||
EEPROM_ENABLE
|
||||
)
|
||||
target_include_directories(qmk PUBLIC
|
||||
platforms/${QMK_PLATFORM}/drivers/eeprom
|
||||
drivers/eeprom
|
||||
platforms/common
|
||||
)
|
||||
|
||||
if(${EEPROM_DRIVER} STREQUAL "wear_leveling")
|
||||
target_compile_definitions(qmk PUBLIC
|
||||
EEPROM_DRIVER
|
||||
EEPROM_WEAR_LEVELING
|
||||
)
|
||||
target_sources(qmk PUBLIC
|
||||
drivers/eeprom/eeprom_driver.c
|
||||
drivers/eeprom/eeprom_wear_leveling.c
|
||||
)
|
||||
elseif(${EEPROM_DRIVER} STREQUAL "vendor")
|
||||
target_compile_definitions(qmk PUBLIC
|
||||
EEPROM_VENDOR
|
||||
)
|
||||
if(${QMK_PLATFORM} STREQUAL "chibios")
|
||||
if(${QMK_MCU} MATCHES "STM32F[1-9].*" OR ${QMK_MCU} MATCHES "WB32.*" OR ${QMK_MCU} MATCHES "GD32.*")
|
||||
target_compile_definitions(qmk PUBLIC
|
||||
EEPROM_DRIVER
|
||||
EEPROM_WEAR_LEVELING
|
||||
)
|
||||
target_sources(qmk PUBLIC
|
||||
drivers/eeprom/eeprom_driver.c
|
||||
drivers/eeprom/eeprom_wear_leveling.c
|
||||
)
|
||||
set(WEAR_LEVELING_DRIVER "embedded_flash")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT ${WEAR_LEVELING_DRIVER} STREQUAL "none")
|
||||
set(FNV_ENABLE TRUE)
|
||||
target_compile_definitions(qmk PUBLIC
|
||||
WEAR_LEVELING_ENABLE
|
||||
)
|
||||
target_include_directories(qmk PUBLIC
|
||||
platforms/${QMK_PLATFORM}/drivers/wear_leveling
|
||||
drivers/wear_leveling
|
||||
quantum/wear_leveling
|
||||
)
|
||||
target_sources(qmk PUBLIC quantum/wear_leveling/wear_leveling.c)
|
||||
|
||||
if(${WEAR_LEVELING_DRIVER} STREQUAL "embedded_flash")
|
||||
target_compile_definitions(qmk PUBLIC
|
||||
HAL_USE_EFL
|
||||
WEAR_LEVELING_EMBEDDED_FLASH
|
||||
)
|
||||
target_sources(qmk PUBLIC
|
||||
platforms/${QMK_PLATFORM}/drivers/wear_leveling/wear_leveling_efl.c
|
||||
)
|
||||
# target_compile_options(qmk PUBLIC
|
||||
# -include ${CMAKE_SOURCE_DIR}/platforms/${QMK_PLATFORM}/drivers/wear_leveling/wear_leveling_efl_config.h
|
||||
# )
|
||||
target_precompile_headers(qmk PUBLIC
|
||||
${CMAKE_SOURCE_DIR}/platforms/${QMK_PLATFORM}/drivers/wear_leveling/wear_leveling_efl_config.h
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
9
cmake/features/fnv.cmake
Normal file
9
cmake/features/fnv.cmake
Normal file
@@ -0,0 +1,9 @@
|
||||
if(${FNV_ENABLE})
|
||||
target_compile_definitions(qmk PUBLIC FNV_ENABLE)
|
||||
target_include_directories(qmk PUBLIC lib/fnv)
|
||||
target_sources(qmk PUBLIC
|
||||
lib/fnv/qmk_fnv_type_validation.c
|
||||
lib/fnv/hash_32a.c
|
||||
lib/fnv/hash_64a.c
|
||||
)
|
||||
endif()
|
||||
9
cmake/features/matrix.cmake
Normal file
9
cmake/features/matrix.cmake
Normal file
@@ -0,0 +1,9 @@
|
||||
message(STATUS "Custom Matrix: ${CUSTOM_MATRIX}")
|
||||
set(CUSTOM_MATRIX "no" CACHE STRING "Custom matrix-scanning")
|
||||
set_property(CACHE CUSTOM_MATRIX PROPERTY STRINGS yes lite no)
|
||||
if(NOT ${CUSTOM_MATRIX} STREQUAL yes)
|
||||
target_sources(qmk PUBLIC quantum/matrix_common.c)
|
||||
if(NOT ${CUSTOM_MATRIX} STREQUAL lite)
|
||||
target_sources(qmk PUBLIC quantum/matrix.c)
|
||||
endif()
|
||||
endif()
|
||||
10
cmake/features/oled.cmake
Normal file
10
cmake/features/oled.cmake
Normal file
@@ -0,0 +1,10 @@
|
||||
option(OLED_ENABLE "" OFF)
|
||||
if(${OLED_ENABLE})
|
||||
target_sources(qmk PUBLIC
|
||||
drivers/oled/ssd1306_sh1106.c
|
||||
platforms/${QMK_PLATFORM}/drivers/i2c_master.c)
|
||||
target_compile_definitions(qmk PUBLIC OLED_ENABLE)
|
||||
target_include_directories(qmk PUBLIC drivers)
|
||||
target_include_directories(qmk PUBLIC drivers/oled)
|
||||
target_include_directories(qmk PUBLIC platforms/${QMK_PLATFORM}/drivers)
|
||||
endif()
|
||||
144
cmake/toolchains/arm-none-eabi.cmake
Normal file
144
cmake/toolchains/arm-none-eabi.cmake
Normal file
@@ -0,0 +1,144 @@
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS on)
|
||||
|
||||
include(ResolveToolchain)
|
||||
|
||||
set(QMK_TOOLCHAIN "arm-none-eabi")
|
||||
set(QMK_PLATFORM "chibios")
|
||||
set(QMK_PROTOCOL "chibios")
|
||||
set(QMK_EXTENSION ".bin")
|
||||
|
||||
if(UNIX)
|
||||
set(OS_SUFFIX "")
|
||||
elseif(WIN32)
|
||||
set(OS_SUFFIX ".exe")
|
||||
endif()
|
||||
|
||||
find_toolchain(arm-none-eabi TOOLCHAIN_ROOT)
|
||||
|
||||
set(CMAKE_SYSTEM_NAME Generic)
|
||||
set(CMAKE_SYSTEM_PROCESSOR arm)
|
||||
set(CMAKE_CROSS_COMPILING 1)
|
||||
|
||||
set(CMAKE_C_COMPILER "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-gcc${OS_SUFFIX}" CACHE PATH "gcc" FORCE)
|
||||
set(CMAKE_CXX_COMPILER "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-g++${OS_SUFFIX}" CACHE PATH "g++" FORCE)
|
||||
set(CMAKE_AR "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-ar${OS_SUFFIX}" CACHE PATH "ar" FORCE)
|
||||
set(CMAKE_AS "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-as${OS_SUFFIX}" CACHE PATH "as" FORCE)
|
||||
set(CMAKE_LINKER "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-ld${OS_SUFFIX}" CACHE PATH "linker" FORCE)
|
||||
set(CMAKE_NM "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-nm${OS_SUFFIX}" CACHE PATH "nm" FORCE)
|
||||
set(CMAKE_OBJCOPY "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-objcopy${OS_SUFFIX}" CACHE PATH "objcopy" FORCE)
|
||||
set(CMAKE_OBJDUMP "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-objdump${OS_SUFFIX}" CACHE PATH "objdump" FORCE)
|
||||
set(CMAKE_STRIP "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-strip${OS_SUFFIX}" CACHE PATH "strip" FORCE)
|
||||
set(CMAKE_RANLIB "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-ranlib${OS_SUFFIX}" CACHE PATH "ranlib" FORCE)
|
||||
set(CMAKE_SIZE "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-size${OS_SUFFIX}" CACHE PATH "size" FORCE)
|
||||
|
||||
find_program(CMAKE_MAKE_PROGRAM NAME make
|
||||
PATHS
|
||||
"${CMAKE_SOURCE_DIR}/toolchains/avr-gcc-12.1.0-x64-windows/bin/"
|
||||
"${CMAKE_SOURCE_DIR}/toolchains/avr-gcc-12.1.0-x64-linux/bin/"
|
||||
/usr/bin/
|
||||
/usr/local/bin
|
||||
/bin/
|
||||
)
|
||||
|
||||
add_compile_options(
|
||||
$<$<COMPILE_LANGUAGE:C>:-std=gnu11>
|
||||
$<$<COMPILE_LANGUAGE:CXX>:-std=gnu++14>
|
||||
$<$<COMPILE_LANGUAGE:CXX>:-fno-rtti>
|
||||
# -flto
|
||||
-Os
|
||||
-Wall
|
||||
-Wstrict-prototypes
|
||||
# -fcommon
|
||||
# -g
|
||||
|
||||
-fomit-frame-pointer
|
||||
-ffunction-sections
|
||||
-fdata-sections
|
||||
-fno-common
|
||||
-fshort-wchar
|
||||
-fno-builtin-printf
|
||||
# -funsigned-char
|
||||
# -funsigned-bitfields
|
||||
# -ffunction-sections
|
||||
# -fdata-sections
|
||||
# -fpack-struct
|
||||
# -fshort-enums
|
||||
# -fno-builtin-printf
|
||||
# $<$<COMPILE_LANGUAGE:C>:-fno-inline-small-functions>
|
||||
# $<$<COMPILE_LANGUAGE:C>:-fno-strict-aliasing>
|
||||
# $<$<COMPILE_LANGUAGE:CXX>:-fno-exceptions>
|
||||
)
|
||||
|
||||
add_link_options(
|
||||
-Wl,--gc-sections
|
||||
-nostartfiles
|
||||
-Wl,--no-wchar-size-warning
|
||||
--specs=nano.specs
|
||||
-lm
|
||||
)
|
||||
|
||||
macro(add_qmk_executable target_name)
|
||||
|
||||
set(elf_file ${target_name}.elf)
|
||||
set(map_file ${target_name}.map)
|
||||
set(bin_file ${target_name}.bin)
|
||||
set(lst_file ${target_name}.lst)
|
||||
|
||||
add_link_options(
|
||||
-Wl,-Map=${map_file},--cref
|
||||
)
|
||||
|
||||
# create elf file
|
||||
add_executable(qmk ${ARGN})
|
||||
# add_executable(${elf_file} ${ARGN})
|
||||
# target_link_libraries(${elf_file} qmk)
|
||||
|
||||
set_target_properties(qmk
|
||||
PROPERTIES
|
||||
OUTPUT_NAME ${elf_file}
|
||||
)
|
||||
|
||||
# generate the lst file
|
||||
add_custom_command(
|
||||
OUTPUT ${lst_file}
|
||||
COMMAND ${CMAKE_OBJDUMP} -h -S ${elf_file} > ${lst_file}
|
||||
DEPENDS qmk
|
||||
)
|
||||
|
||||
# add_custom_command(
|
||||
# OUTPUT "print-size-${elf_file}"
|
||||
|
||||
# COMMAND
|
||||
# ${CMAKE_SIZE} ${elf_file}
|
||||
|
||||
# DEPENDS ${elf_file}
|
||||
# )
|
||||
|
||||
# add_custom_command(
|
||||
# OUTPUT "print-size-${bin_file}"
|
||||
|
||||
# COMMAND
|
||||
# ${CMAKE_SIZE} ${bin_file} sizeafter
|
||||
|
||||
# DEPENDS ${bin_file}
|
||||
# )
|
||||
|
||||
add_custom_command(
|
||||
TARGET qmk
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_OBJCOPY} -O binary ${elf_file} ${CMAKE_SOURCE_DIR}/build/${bin_file}
|
||||
# COMMAND ${CMAKE_COMMAND} -E copy ${elf_file} ${CMAKE_SOURCE_DIR}/build/${elf_file}
|
||||
# COMMAND ${CMAKE_COMMAND} -E copy ${lst_file} ${CMAKE_SOURCE_DIR}/build/${lst_file}
|
||||
# COMMAND ${CMAKE_COMMAND} -E copy ${map_file} ${CMAKE_SOURCE_DIR}/build/${map_file}
|
||||
)
|
||||
|
||||
# build the intel hex file for the device
|
||||
add_custom_target(${target_name} ALL
|
||||
DEPENDS ${elf_file} ${lst_file}
|
||||
)
|
||||
|
||||
set_target_properties(${target_name}
|
||||
PROPERTIES
|
||||
OUTPUT_NAME ${bin_file}
|
||||
)
|
||||
endmacro(add_qmk_executable)
|
||||
182
cmake/toolchains/avr.cmake
Normal file
182
cmake/toolchains/avr.cmake
Normal file
@@ -0,0 +1,182 @@
|
||||
#
|
||||
# AVR GCC Toolchain file
|
||||
#
|
||||
# @author Natesh Narain
|
||||
# @since Feb 06 2016
|
||||
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS on)
|
||||
|
||||
include(ResolveToolchain)
|
||||
|
||||
set(QMK_TOOLCHAIN "avr")
|
||||
set(QMK_PLATFORM "avr")
|
||||
set(QMK_PROTOCOL "lufa")
|
||||
set(QMK_EXTENSION ".hex")
|
||||
|
||||
if(UNIX)
|
||||
set(OS_SUFFIX "")
|
||||
elseif(WIN32)
|
||||
set(OS_SUFFIX ".exe")
|
||||
endif()
|
||||
|
||||
find_toolchain(avr TOOLCHAIN_ROOT)
|
||||
|
||||
# setup the AVR compiler variables
|
||||
|
||||
set(CMAKE_SYSTEM_NAME Generic)
|
||||
set(CMAKE_SYSTEM_PROCESSOR avr)
|
||||
set(CMAKE_CROSS_COMPILING 1)
|
||||
|
||||
set(CMAKE_C_COMPILER "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-gcc${OS_SUFFIX}" CACHE PATH "gcc" FORCE)
|
||||
set(CMAKE_CXX_COMPILER "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-g++${OS_SUFFIX}" CACHE PATH "g++" FORCE)
|
||||
set(CMAKE_AR "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-ar${OS_SUFFIX}" CACHE PATH "ar" FORCE)
|
||||
set(CMAKE_AS "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-as${OS_SUFFIX}" CACHE PATH "as" FORCE)
|
||||
set(CMAKE_LINKER "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-ld${OS_SUFFIX}" CACHE PATH "linker" FORCE)
|
||||
set(CMAKE_NM "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-nm${OS_SUFFIX}" CACHE PATH "nm" FORCE)
|
||||
set(CMAKE_OBJCOPY "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-objcopy${OS_SUFFIX}" CACHE PATH "objcopy" FORCE)
|
||||
set(CMAKE_OBJDUMP "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-objdump${OS_SUFFIX}" CACHE PATH "objdump" FORCE)
|
||||
set(CMAKE_STRIP "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-strip${OS_SUFFIX}" CACHE PATH "strip" FORCE)
|
||||
set(CMAKE_RANLIB "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-ranlib${OS_SUFFIX}" CACHE PATH "ranlib" FORCE)
|
||||
set(AVR_SIZE "${TOOLCHAIN_ROOT}/${QMK_TOOLCHAIN}-size${OS_SUFFIX}" CACHE PATH "size" FORCE)
|
||||
|
||||
# set(CMAKE_EXE_LINKER_FLAGS "-L /usr/lib/gcc/avr/4.8.2")
|
||||
|
||||
# avr uploader config
|
||||
find_program(AVR_UPLOAD
|
||||
NAME
|
||||
avrdude
|
||||
PATHS
|
||||
/usr/bin/
|
||||
$ENV{AVR_ROOT}
|
||||
)
|
||||
|
||||
find_program(CMAKE_MAKE_PROGRAM NAME make
|
||||
PATHS
|
||||
"${CMAKE_SOURCE_DIR}/toolchains/avr-gcc-12.1.0-x64-windows/bin/"
|
||||
"${CMAKE_SOURCE_DIR}/toolchains/avr-gcc-12.1.0-x64-linux/bin/"
|
||||
/usr/bin/
|
||||
/usr/local/bin
|
||||
/bin/
|
||||
)
|
||||
|
||||
# setup the avr exectable macro
|
||||
|
||||
# set(AVR_LINKER_LIBS "-lc -lm -lgcc -Wl,-lprintf_flt -Wl,-u,vfprintf")
|
||||
|
||||
add_compile_options(
|
||||
$<$<COMPILE_LANGUAGE:C>:-std=gnu11>
|
||||
$<$<COMPILE_LANGUAGE:CXX>:-std=gnu++14>
|
||||
-flto
|
||||
# -mrelax
|
||||
-Os
|
||||
-Wall
|
||||
-Wstrict-prototypes
|
||||
-fcommon
|
||||
# -g
|
||||
$<$<BOOL:${WIN32}>:--param=min-pagesize=0>
|
||||
-funsigned-char
|
||||
-funsigned-bitfields
|
||||
-ffunction-sections
|
||||
-fdata-sections
|
||||
-fpack-struct
|
||||
-fshort-enums
|
||||
-mcall-prologues
|
||||
-fno-builtin-printf
|
||||
$<$<COMPILE_LANGUAGE:C>:-fno-inline-small-functions>
|
||||
$<$<COMPILE_LANGUAGE:C>:-fno-strict-aliasing>
|
||||
$<$<COMPILE_LANGUAGE:CXX>:-fno-exceptions>
|
||||
)
|
||||
|
||||
add_compile_definitions(
|
||||
F_CPU=16000000
|
||||
F_USB=16000000UL
|
||||
__AVR_ATmega32U4__
|
||||
LTO_ENABLE
|
||||
)
|
||||
|
||||
add_link_options(
|
||||
-Wl,--gc-sections
|
||||
)
|
||||
|
||||
macro(add_qmk_executable target_name)
|
||||
|
||||
set(elf_file ${target_name}.elf)
|
||||
set(map_file ${target_name}.map)
|
||||
set(hex_file ${target_name}.hex)
|
||||
set(lst_file ${target_name}.lst)
|
||||
|
||||
add_compile_options(
|
||||
-mmcu=${QMK_MCU}
|
||||
)
|
||||
|
||||
add_link_options(
|
||||
-mmcu=${QMK_MCU}
|
||||
-Wl,-Map=${map_file}
|
||||
)
|
||||
|
||||
# create elf file
|
||||
# add_executable(${elf_file} ${ARGN})
|
||||
# target_link_libraries(${elf_file} qmk)
|
||||
|
||||
add_executable(qmk ${ARGN})
|
||||
set_target_properties(qmk
|
||||
PROPERTIES
|
||||
OUTPUT_NAME ${elf_file}
|
||||
)
|
||||
|
||||
|
||||
# set_target_properties(${elf_file}
|
||||
# PROPERTIES
|
||||
# COMPILE_FLAGS "-mmcu=${QMK_MCU} ${COMPILE_OPTIONS}"
|
||||
# LINK_FLAGS "-mmcu=${QMK_MCU} ${LINK_OPTIONS}"
|
||||
# )
|
||||
|
||||
# add_custom_target(compileOptions
|
||||
# COMMAND cmake -P ${CMAKE_SOURCE_DIR}/cmake/WriteCompileOptions.cmake
|
||||
# COMMENT "Writing compile_flags.txt"
|
||||
# )
|
||||
|
||||
# generate the lst file
|
||||
add_custom_command(
|
||||
OUTPUT ${lst_file}
|
||||
COMMAND ${CMAKE_OBJDUMP} -h -S ${elf_file} > ${lst_file}
|
||||
DEPENDS ${elf_file}
|
||||
)
|
||||
|
||||
# create hex file
|
||||
add_custom_command(
|
||||
OUTPUT ${hex_file}
|
||||
# COMMAND ${CMAKE_OBJCOPY} -j .text -j .data -O ihex ${elf_file} ${hex_file}
|
||||
COMMAND ${CMAKE_OBJCOPY} -O ihex -R .eeprom -R .fuse -R .lock -R .signature ${elf_file} ${hex_file}
|
||||
DEPENDS ${elf_file}
|
||||
)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "print-size-${elf_file}"
|
||||
COMMAND ${AVR_SIZE} ${elf_file}
|
||||
DEPENDS ${elf_file}
|
||||
)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "print-size-${hex_file}"
|
||||
COMMAND ${AVR_SIZE} ${hex_file}
|
||||
DEPENDS ${hex_file}
|
||||
)
|
||||
|
||||
add_custom_target(copy_hex
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${hex_file} ${CMAKE_SOURCE_DIR}/build/${hex_file}
|
||||
DEPENDS ${hex_file}
|
||||
)
|
||||
|
||||
# build the intel hex file for the device
|
||||
add_custom_target(${target_name} ALL
|
||||
DEPENDS ${hex_file} ${lst_file} "print-size-${elf_file}" "print-size-${hex_file}" copy_hex
|
||||
)
|
||||
|
||||
set_target_properties(${target_name}
|
||||
PROPERTIES
|
||||
OUTPUT_NAME ${hex_file}
|
||||
)
|
||||
|
||||
|
||||
endmacro(add_qmk_executable)
|
||||
16
cmake/toolchains/riscv64-unknown-elf.cmake
Normal file
16
cmake/toolchains/riscv64-unknown-elf.cmake
Normal file
@@ -0,0 +1,16 @@
|
||||
if(${USE_PICOLIBC})
|
||||
add_compile_options(
|
||||
--specs=picolibc.specs
|
||||
)
|
||||
add_compile_definitions(USE_PICOLIBC)
|
||||
add_link_options(
|
||||
-Wl,--defsym=__heap_start=__heap_base__,--defsym=__heap_end=__heap_end__
|
||||
)
|
||||
endif()
|
||||
|
||||
add_compile_options(
|
||||
-march=${MCU_ARCH}
|
||||
-mabi=${MCU_ABI}
|
||||
-mcmodel=${MCU_CMODEL}
|
||||
-mstrict-align
|
||||
)
|
||||
375
data/constants/keycodes/extras/keycodes_belgian_0.0.1.hjson
Normal file
375
data/constants/keycodes/extras/keycodes_belgian_0.0.1.hjson
Normal file
@@ -0,0 +1,375 @@
|
||||
{
|
||||
"aliases": {
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ² │ & │ é │ " │ ' │ ( │ § │ è │ ! │ ç │ à │ ) │ - │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ A │ Z │ E │ R │ T │ Y │ U │ I │ O │ P │ ^ │ $ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ Q │ S │ D │ F │ G │ H │ J │ K │ L │ M │ ù │ µ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ < │ W │ X │ C │ V │ B │ N │ , │ ; │ : │ = │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"KC_GRV": {
|
||||
"key": "BE_SUP2",
|
||||
"label": "²",
|
||||
}
|
||||
"KC_1": {
|
||||
"key": "BE_AMPR",
|
||||
"label": "&",
|
||||
}
|
||||
"KC_2": {
|
||||
"key": "BE_EACU",
|
||||
"label": "é",
|
||||
}
|
||||
"KC_3": {
|
||||
"key": "BE_DQUO",
|
||||
"label": "\"",
|
||||
}
|
||||
"KC_4": {
|
||||
"key": "BE_QUOT",
|
||||
"label": "'",
|
||||
}
|
||||
"KC_5": {
|
||||
"key": "BE_LPRN",
|
||||
"label": "(",
|
||||
}
|
||||
"KC_6": {
|
||||
"key": "BE_SECT",
|
||||
"label": "§",
|
||||
}
|
||||
"KC_7": {
|
||||
"key": "BE_EGRV",
|
||||
"label": "è",
|
||||
}
|
||||
"KC_8": {
|
||||
"key": "BE_EXLM",
|
||||
"label": "!",
|
||||
}
|
||||
"KC_9": {
|
||||
"key": "BE_CCED",
|
||||
"label": "ç",
|
||||
}
|
||||
"KC_0": {
|
||||
"key": "BE_AGRV",
|
||||
"label": "à",
|
||||
}
|
||||
"KC_MINS": {
|
||||
"key": "BE_RPRN",
|
||||
"label": ")",
|
||||
}
|
||||
"KC_EQL": {
|
||||
"key": "BE_MINS",
|
||||
"label": "-",
|
||||
}
|
||||
"KC_Q": {
|
||||
"key": "BE_A",
|
||||
"label": "A",
|
||||
}
|
||||
"KC_W": {
|
||||
"key": "BE_Z",
|
||||
"label": "Z",
|
||||
}
|
||||
"KC_E": {
|
||||
"key": "BE_E",
|
||||
"label": "E",
|
||||
}
|
||||
"KC_R": {
|
||||
"key": "BE_R",
|
||||
"label": "R",
|
||||
}
|
||||
"KC_T": {
|
||||
"key": "BE_T",
|
||||
"label": "T",
|
||||
}
|
||||
"KC_Y": {
|
||||
"key": "BE_Y",
|
||||
"label": "Y",
|
||||
}
|
||||
"KC_U": {
|
||||
"key": "BE_U",
|
||||
"label": "U",
|
||||
}
|
||||
"KC_I": {
|
||||
"key": "BE_I",
|
||||
"label": "I",
|
||||
}
|
||||
"KC_O": {
|
||||
"key": "BE_O",
|
||||
"label": "O",
|
||||
}
|
||||
"KC_P": {
|
||||
"key": "BE_P",
|
||||
"label": "P",
|
||||
}
|
||||
"KC_LBRC": {
|
||||
"key": "BE_DCIR",
|
||||
"label": "^ (dead)",
|
||||
}
|
||||
"KC_RBRC": {
|
||||
"key": "BE_DLR",
|
||||
"label": "$",
|
||||
}
|
||||
"KC_A": {
|
||||
"key": "BE_Q",
|
||||
"label": "Q",
|
||||
}
|
||||
"KC_S": {
|
||||
"key": "BE_S",
|
||||
"label": "S",
|
||||
}
|
||||
"KC_D": {
|
||||
"key": "BE_D",
|
||||
"label": "D",
|
||||
}
|
||||
"KC_F": {
|
||||
"key": "BE_F",
|
||||
"label": "F",
|
||||
}
|
||||
"KC_G": {
|
||||
"key": "BE_G",
|
||||
"label": "G",
|
||||
}
|
||||
"KC_H": {
|
||||
"key": "BE_H",
|
||||
"label": "H",
|
||||
}
|
||||
"KC_J": {
|
||||
"key": "BE_J",
|
||||
"label": "J",
|
||||
}
|
||||
"KC_K": {
|
||||
"key": "BE_K",
|
||||
"label": "K",
|
||||
}
|
||||
"KC_L": {
|
||||
"key": "BE_L",
|
||||
"label": "L",
|
||||
}
|
||||
"KC_SCLN": {
|
||||
"key": "BE_M",
|
||||
"label": "M",
|
||||
}
|
||||
"KC_QUOT": {
|
||||
"key": "BE_UGRV",
|
||||
"label": "ù",
|
||||
}
|
||||
"KC_NUHS": {
|
||||
"key": "BE_MICR",
|
||||
"label": "µ",
|
||||
}
|
||||
"KC_NUBS": {
|
||||
"key": "BE_LABK",
|
||||
"label": "<",
|
||||
}
|
||||
"KC_Z": {
|
||||
"key": "BE_W",
|
||||
"label": "W",
|
||||
}
|
||||
"KC_X": {
|
||||
"key": "BE_X",
|
||||
"label": "X",
|
||||
}
|
||||
"KC_C": {
|
||||
"key": "BE_C",
|
||||
"label": "C",
|
||||
}
|
||||
"KC_V": {
|
||||
"key": "BE_V",
|
||||
"label": "V",
|
||||
}
|
||||
"KC_B": {
|
||||
"key": "BE_B",
|
||||
"label": "B",
|
||||
}
|
||||
"KC_N": {
|
||||
"key": "BE_N",
|
||||
"label": "N",
|
||||
}
|
||||
"KC_M": {
|
||||
"key": "BE_COMM",
|
||||
"label": ",",
|
||||
}
|
||||
"KC_COMM": {
|
||||
"key": "BE_SCLN",
|
||||
"label": ";",
|
||||
}
|
||||
"KC_DOT": {
|
||||
"key": "BE_COLN",
|
||||
"label": ":",
|
||||
}
|
||||
"KC_SLSH": {
|
||||
"key": "BE_EQL",
|
||||
"label": "=",
|
||||
}
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ³ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ° │ _ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ ¨ │ * │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ % │ £ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ > │ │ │ │ │ │ │ ? │ . │ / │ + │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"S(BE_SUP2)": {
|
||||
"key": "BE_SUP3",
|
||||
"label": "³",
|
||||
}
|
||||
"S(BE_AMPR)": {
|
||||
"key": "BE_1",
|
||||
"label": "1",
|
||||
}
|
||||
"S(BE_EACU)": {
|
||||
"key": "BE_2",
|
||||
"label": "2",
|
||||
}
|
||||
"S(BE_DQUO)": {
|
||||
"key": "BE_3",
|
||||
"label": "3",
|
||||
}
|
||||
"S(BE_QUOT)": {
|
||||
"key": "BE_4",
|
||||
"label": "4",
|
||||
}
|
||||
"S(BE_LPRN)": {
|
||||
"key": "BE_5",
|
||||
"label": "5",
|
||||
}
|
||||
"S(BE_SECT)": {
|
||||
"key": "BE_6",
|
||||
"label": "6",
|
||||
}
|
||||
"S(BE_EGRV)": {
|
||||
"key": "BE_7",
|
||||
"label": "7",
|
||||
}
|
||||
"S(BE_EXLM)": {
|
||||
"key": "BE_8",
|
||||
"label": "8",
|
||||
}
|
||||
"S(BE_CCED)": {
|
||||
"key": "BE_9",
|
||||
"label": "9",
|
||||
}
|
||||
"S(BE_AGRV)": {
|
||||
"key": "BE_0",
|
||||
"label": "0",
|
||||
}
|
||||
"S(BE_RPRN)": {
|
||||
"key": "BE_DEG",
|
||||
"label": "°",
|
||||
}
|
||||
"S(BE_MINS)": {
|
||||
"key": "BE_UNDS",
|
||||
"label": "_",
|
||||
}
|
||||
"S(BE_DCIR)": {
|
||||
"key": "BE_DIAE",
|
||||
"label": "¨ (dead)",
|
||||
}
|
||||
"S(BE_DLR)": {
|
||||
"key": "BE_ASTR",
|
||||
"label": "*",
|
||||
}
|
||||
"S(BE_UGRV)": {
|
||||
"key": "BE_PERC",
|
||||
"label": "%",
|
||||
}
|
||||
"S(BE_MICR)": {
|
||||
"key": "BE_PND",
|
||||
"label": "£",
|
||||
}
|
||||
"S(BE_LABK)": {
|
||||
"key": "BE_RABK",
|
||||
"label": ">",
|
||||
}
|
||||
"S(BE_COMM)": {
|
||||
"key": "BE_QUES",
|
||||
"label": "?",
|
||||
}
|
||||
"S(BE_SCLN)": {
|
||||
"key": "BE_DOT",
|
||||
"label": ".",
|
||||
}
|
||||
"S(BE_COLN)": {
|
||||
"key": "BE_SLSH",
|
||||
"label": "/",
|
||||
}
|
||||
"S(BE_EQL)": {
|
||||
"key": "BE_PLUS",
|
||||
"label": "+",
|
||||
}
|
||||
/* AltGr symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ │ | │ @ │ # │ │ │ ^ │ │ │ { │ } │ │ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ € │ │ │ │ │ │ │ │ [ │ ] │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ ´ │ ` │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ \ │ │ │ │ │ │ │ │ │ │ ~ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"ALGR(BE_AMPR)": {
|
||||
"key": "BE_PIPE",
|
||||
"label": "|",
|
||||
}
|
||||
"ALGR(BE_EACU)": {
|
||||
"key": "BE_AT",
|
||||
"label": "@",
|
||||
}
|
||||
"ALGR(BE_DQUO)": {
|
||||
"key": "BE_HASH",
|
||||
"label": "#",
|
||||
}
|
||||
"ALGR(BE_SECT)": {
|
||||
"key": "BE_CIRC",
|
||||
"label": "^",
|
||||
}
|
||||
"ALGR(BE_CCED)": {
|
||||
"key": "BE_LCBR",
|
||||
"label": "{",
|
||||
}
|
||||
"ALGR(BE_AGRV)": {
|
||||
"key": "BE_RCBR",
|
||||
"label": "}",
|
||||
}
|
||||
"ALGR(BE_E)": {
|
||||
"key": "BE_EURO",
|
||||
"label": "€",
|
||||
}
|
||||
"ALGR(BE_DCIR)": {
|
||||
"key": "BE_LBRC",
|
||||
"label": "[",
|
||||
}
|
||||
"ALGR(BE_DLR)": {
|
||||
"key": "BE_RBRC",
|
||||
"label": "]",
|
||||
}
|
||||
"ALGR(BE_UGRV)": {
|
||||
"key": "BE_ACUT",
|
||||
"label": "´ (dead)",
|
||||
}
|
||||
"ALGR(BE_MICR)": {
|
||||
"key": "BE_GRV",
|
||||
"label": "` (dead)",
|
||||
}
|
||||
"ALGR(BE_LABK)": {
|
||||
"key": "BE_BSLS",
|
||||
"label": "\\",
|
||||
}
|
||||
"ALGR(BE_EQL)": {
|
||||
"key": "BE_TILD",
|
||||
"label": "~",
|
||||
}
|
||||
}
|
||||
}
|
||||
632
data/constants/keycodes/extras/keycodes_bepo_0.0.1.hjson
Normal file
632
data/constants/keycodes/extras/keycodes_bepo_0.0.1.hjson
Normal file
@@ -0,0 +1,632 @@
|
||||
{
|
||||
"aliases": {
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ $ │ " │ « │ » │ ( │ ) │ @ │ + │ - │ / │ * │ = │ % │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ B │ É │ P │ O │ È │ ^ │ V │ D │ L │ J │ Z │ W │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ A │ U │ I │ E │ , │ C │ T │ S │ R │ N │ M │ Ç │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ Ê │ À │ Y │ X │ . │ K │ ' │ Q │ G │ H │ F │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"KC_GRV": {
|
||||
"key": "BP_DLR",
|
||||
"label": "$",
|
||||
}
|
||||
"KC_1": {
|
||||
"key": "BP_DQUO",
|
||||
"label": "\"",
|
||||
}
|
||||
"KC_2": {
|
||||
"key": "BP_LDAQ",
|
||||
"label": "«",
|
||||
}
|
||||
"KC_3": {
|
||||
"key": "BP_RDAQ",
|
||||
"label": "»",
|
||||
}
|
||||
"KC_4": {
|
||||
"key": "BP_LPRN",
|
||||
"label": "(",
|
||||
}
|
||||
"KC_5": {
|
||||
"key": "BP_RPRN",
|
||||
"label": ")",
|
||||
}
|
||||
"KC_6": {
|
||||
"key": "BP_AT",
|
||||
"label": "@",
|
||||
}
|
||||
"KC_7": {
|
||||
"key": "BP_PLUS",
|
||||
"label": "+",
|
||||
}
|
||||
"KC_8": {
|
||||
"key": "BP_MINS",
|
||||
"label": "-",
|
||||
}
|
||||
"KC_9": {
|
||||
"key": "BP_SLSH",
|
||||
"label": "/",
|
||||
}
|
||||
"KC_0": {
|
||||
"key": "BP_ASTR",
|
||||
"label": "*",
|
||||
}
|
||||
"KC_MINS": {
|
||||
"key": "BP_EQL",
|
||||
"label": "=",
|
||||
}
|
||||
"KC_EQL": {
|
||||
"key": "BP_PERC",
|
||||
"label": "%",
|
||||
}
|
||||
"KC_Q": {
|
||||
"key": "BP_B",
|
||||
"label": "B",
|
||||
}
|
||||
"KC_W": {
|
||||
"key": "BP_EACU",
|
||||
"label": "É",
|
||||
}
|
||||
"KC_E": {
|
||||
"key": "BP_P",
|
||||
"label": "P",
|
||||
}
|
||||
"KC_R": {
|
||||
"key": "BP_O",
|
||||
"label": "O",
|
||||
}
|
||||
"KC_T": {
|
||||
"key": "BP_EGRV",
|
||||
"label": "È",
|
||||
}
|
||||
"KC_Y": {
|
||||
"key": "BP_DCIR",
|
||||
"label": "^ (dead)",
|
||||
}
|
||||
"KC_U": {
|
||||
"key": "BP_V",
|
||||
"label": "V",
|
||||
}
|
||||
"KC_I": {
|
||||
"key": "BP_D",
|
||||
"label": "D",
|
||||
}
|
||||
"KC_O": {
|
||||
"key": "BP_L",
|
||||
"label": "L",
|
||||
}
|
||||
"KC_P": {
|
||||
"key": "BP_J",
|
||||
"label": "J",
|
||||
}
|
||||
"KC_LBRC": {
|
||||
"key": "BP_Z",
|
||||
"label": "Z",
|
||||
}
|
||||
"KC_RBRC": {
|
||||
"key": "BP_W",
|
||||
"label": "W",
|
||||
}
|
||||
"KC_A": {
|
||||
"key": "BP_A",
|
||||
"label": "A",
|
||||
}
|
||||
"KC_S": {
|
||||
"key": "BP_U",
|
||||
"label": "U",
|
||||
}
|
||||
"KC_D": {
|
||||
"key": "BP_I",
|
||||
"label": "I",
|
||||
}
|
||||
"KC_F": {
|
||||
"key": "BP_E",
|
||||
"label": "E",
|
||||
}
|
||||
"KC_G": {
|
||||
"key": "BP_COMM",
|
||||
"label": ",",
|
||||
}
|
||||
"KC_H": {
|
||||
"key": "BP_C",
|
||||
"label": "C",
|
||||
}
|
||||
"KC_J": {
|
||||
"key": "BP_T",
|
||||
"label": "T",
|
||||
}
|
||||
"KC_K": {
|
||||
"key": "BP_S",
|
||||
"label": "S",
|
||||
}
|
||||
"KC_L": {
|
||||
"key": "BP_R",
|
||||
"label": "R",
|
||||
}
|
||||
"KC_SCLN": {
|
||||
"key": "BP_N",
|
||||
"label": "N",
|
||||
}
|
||||
"KC_QUOT": {
|
||||
"key": "BP_M",
|
||||
"label": "M",
|
||||
}
|
||||
"KC_BSLS": {
|
||||
"key": "BP_CCED",
|
||||
"label": "Ç",
|
||||
}
|
||||
"KC_NUBS": {
|
||||
"key": "BP_ECIR",
|
||||
"label": "Ê",
|
||||
}
|
||||
"KC_Z": {
|
||||
"key": "BP_AGRV",
|
||||
"label": "À",
|
||||
}
|
||||
"KC_X": {
|
||||
"key": "BP_Y",
|
||||
"label": "Y",
|
||||
}
|
||||
"KC_C": {
|
||||
"key": "BP_X",
|
||||
"label": "X",
|
||||
}
|
||||
"KC_V": {
|
||||
"key": "BP_DOT",
|
||||
"label": ".",
|
||||
}
|
||||
"KC_B": {
|
||||
"key": "BP_K",
|
||||
"label": "K",
|
||||
}
|
||||
"KC_N": {
|
||||
"key": "BP_QUOT",
|
||||
"label": "'",
|
||||
}
|
||||
"KC_M": {
|
||||
"key": "BP_Q",
|
||||
"label": "Q",
|
||||
}
|
||||
"KC_COMM": {
|
||||
"key": "BP_G",
|
||||
"label": "G",
|
||||
}
|
||||
"KC_DOT": {
|
||||
"key": "BP_H",
|
||||
"label": "H",
|
||||
}
|
||||
"KC_SLSH": {
|
||||
"key": "BP_F",
|
||||
"label": "F",
|
||||
}
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ # │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ° │ ` │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ ! │ │ │ │ │ │ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ ; │ │ │ │ │ │ │ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ │ │ │ │ : │ │ ? │ │ │ │ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"S(BP_DLR)": {
|
||||
"key": "BP_HASH",
|
||||
"label": "#",
|
||||
}
|
||||
"S(BP_DQUO)": {
|
||||
"key": "BP_1",
|
||||
"label": "1",
|
||||
}
|
||||
"S(BP_LDAQ)": {
|
||||
"key": "BP_2",
|
||||
"label": "2",
|
||||
}
|
||||
"S(BP_RDAQ)": {
|
||||
"key": "BP_3",
|
||||
"label": "3",
|
||||
}
|
||||
"S(BP_LPRN)": {
|
||||
"key": "BP_4",
|
||||
"label": "4",
|
||||
}
|
||||
"S(BP_RPRN)": {
|
||||
"key": "BP_5",
|
||||
"label": "5",
|
||||
}
|
||||
"S(BP_AT)": {
|
||||
"key": "BP_6",
|
||||
"label": "6",
|
||||
}
|
||||
"S(BP_PLUS)": {
|
||||
"key": "BP_7",
|
||||
"label": "7",
|
||||
}
|
||||
"S(BP_MINS)": {
|
||||
"key": "BP_8",
|
||||
"label": "8",
|
||||
}
|
||||
"S(BP_SLSH)": {
|
||||
"key": "BP_9",
|
||||
"label": "9",
|
||||
}
|
||||
"S(BP_ASTR)": {
|
||||
"key": "BP_0",
|
||||
"label": "0",
|
||||
}
|
||||
"S(BP_EQL)": {
|
||||
"key": "BP_DEG",
|
||||
"label": "°",
|
||||
}
|
||||
"S(BP_PERC)": {
|
||||
"key": "BP_GRV",
|
||||
"label": "`",
|
||||
}
|
||||
"S(BP_DCIR)": {
|
||||
"key": "BP_EXLM",
|
||||
"label": "!",
|
||||
}
|
||||
"S(BP_COMM)": {
|
||||
"key": "BP_SCLN",
|
||||
"label": ";",
|
||||
}
|
||||
"S(BP_DOT)": {
|
||||
"key": "BP_COLN",
|
||||
"label": ":",
|
||||
}
|
||||
"S(BP_QUOT)": {
|
||||
"key": "BP_QUES",
|
||||
"label": "?",
|
||||
}
|
||||
"S(KC_SPC)": {
|
||||
"key": "BP_NBSP",
|
||||
"label": "(non-breaking space)",
|
||||
}
|
||||
/* AltGr symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ – │ — │ < │ > │ [ │ ] │ ^ │ ± │ − │ ÷ │ × │ ≠ │ ‰ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ | │ ´ │ & │ Œ │ ` │ ¡ │ ˇ │ Ð │ / │ IJ │ Ə │ ˘ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ Æ │ Ù │ ¨ │ € │ │ © │ Þ │ ẞ │ ® │ ~ │ ¯ │ ¸ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ │ \ │ { │ } │ … │ ~ │ ¿ │ ° │ │ † │ ˛ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ _ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"ALGR(BP_DLR)": {
|
||||
"key": "BP_NDSH",
|
||||
"label": "–",
|
||||
}
|
||||
"ALGR(BP_DQUO)": {
|
||||
"key": "BP_MDSH",
|
||||
"label": "—",
|
||||
}
|
||||
"ALGR(BP_LDAQ)": {
|
||||
"key": "BP_LABK",
|
||||
"label": "<",
|
||||
}
|
||||
"ALGR(BP_RDAQ)": {
|
||||
"key": "BP_RABK",
|
||||
"label": ">",
|
||||
}
|
||||
"ALGR(BP_LPRN)": {
|
||||
"key": "BP_LBRC",
|
||||
"label": "[",
|
||||
}
|
||||
"ALGR(BP_RPRN)": {
|
||||
"key": "BP_RBRC",
|
||||
"label": "]",
|
||||
}
|
||||
"ALGR(BP_AT)": {
|
||||
"key": "BP_CIRC",
|
||||
"label": "^",
|
||||
}
|
||||
"ALGR(BP_PLUS)": {
|
||||
"key": "BP_PLMN",
|
||||
"label": "±",
|
||||
}
|
||||
"ALGR(BP_MINS)": {
|
||||
"key": "BP_MMNS",
|
||||
"label": "−",
|
||||
}
|
||||
"ALGR(BP_SLSH)": {
|
||||
"key": "BP_DIV",
|
||||
"label": "÷",
|
||||
}
|
||||
"ALGR(BP_ASTR)": {
|
||||
"key": "BP_MUL",
|
||||
"label": "×",
|
||||
}
|
||||
"ALGR(BP_EQL)": {
|
||||
"key": "BP_NEQL",
|
||||
"label": "≠",
|
||||
}
|
||||
"ALGR(BP_PERC)": {
|
||||
"key": "BP_PERM",
|
||||
"label": "‰",
|
||||
}
|
||||
"ALGR(BP_B)": {
|
||||
"key": "BP_PIPE",
|
||||
"label": "|",
|
||||
}
|
||||
"ALGR(BP_EACU)": {
|
||||
"key": "BP_ACUT",
|
||||
"label": "´ (dead)",
|
||||
}
|
||||
"ALGR(BP_P)": {
|
||||
"key": "BP_AMPR",
|
||||
"label": "&",
|
||||
}
|
||||
"ALGR(BP_O)": {
|
||||
"key": "BP_OE",
|
||||
"label": "Œ",
|
||||
}
|
||||
"ALGR(BP_EGRV)": {
|
||||
"key": "BP_DGRV",
|
||||
"label": "` (dead)",
|
||||
}
|
||||
"ALGR(BP_DCIR)": {
|
||||
"key": "BP_IEXL",
|
||||
"label": "¡",
|
||||
}
|
||||
"ALGR(BP_V)": {
|
||||
"key": "BP_CARN",
|
||||
"label": "ˇ (dead)",
|
||||
}
|
||||
"ALGR(BP_D)": {
|
||||
"key": "BP_ETH",
|
||||
"label": "Ð",
|
||||
}
|
||||
"ALGR(BP_L)": {
|
||||
"key": "BP_DSLS",
|
||||
"label": "/ (dead)",
|
||||
}
|
||||
"ALGR(BP_J)": {
|
||||
"key": "BP_IJ",
|
||||
"label": "IJ",
|
||||
}
|
||||
"ALGR(BP_Z)": {
|
||||
"key": "BP_SCHW",
|
||||
"label": "Ə",
|
||||
}
|
||||
"ALGR(BP_W)": {
|
||||
"key": "BP_BREV",
|
||||
"label": "˘ (dead)",
|
||||
}
|
||||
"ALGR(BP_A)": {
|
||||
"key": "BP_AE",
|
||||
"label": "Æ",
|
||||
}
|
||||
"ALGR(BP_U)": {
|
||||
"key": "BP_UGRV",
|
||||
"label": "Ù",
|
||||
}
|
||||
"ALGR(BP_I)": {
|
||||
"key": "BP_DIAE",
|
||||
"label": "¨ (dead)",
|
||||
}
|
||||
"ALGR(BP_E)": {
|
||||
"key": "BP_EURO",
|
||||
"label": "€",
|
||||
}
|
||||
"ALGR(BP_C)": {
|
||||
"key": "BP_COPY",
|
||||
"label": "©",
|
||||
}
|
||||
"ALGR(BP_T)": {
|
||||
"key": "BP_THRN",
|
||||
"label": "Þ",
|
||||
}
|
||||
"ALGR(BP_S)": {
|
||||
"key": "BP_SS",
|
||||
"label": "ẞ",
|
||||
}
|
||||
"ALGR(BP_R)": {
|
||||
"key": "BP_REGD",
|
||||
"label": "®",
|
||||
}
|
||||
"ALGR(BP_N)": {
|
||||
"key": "BP_DTIL",
|
||||
"label": "~ (dead)",
|
||||
}
|
||||
"ALGR(BP_M)": {
|
||||
"key": "BP_MACR",
|
||||
"label": "¯ (dead)",
|
||||
}
|
||||
"ALGR(BP_CCED)": {
|
||||
"key": "BP_CEDL",
|
||||
"label": "¸ (dead)",
|
||||
}
|
||||
"ALGR(BP_AGRV)": {
|
||||
"key": "BP_BSLS",
|
||||
"label": "\\",
|
||||
}
|
||||
"ALGR(BP_Y)": {
|
||||
"key": "BP_LCBR",
|
||||
"label": "{",
|
||||
}
|
||||
"ALGR(BP_X)": {
|
||||
"key": "BP_RCBR",
|
||||
"label": "}",
|
||||
}
|
||||
"ALGR(BP_DOT)": {
|
||||
"key": "BP_ELLP",
|
||||
"label": "…",
|
||||
}
|
||||
"ALGR(BP_K)": {
|
||||
"key": "BP_TILD",
|
||||
"label": "~",
|
||||
}
|
||||
"ALGR(BP_QUES)": {
|
||||
"key": "BP_IQUE",
|
||||
"label": "¿",
|
||||
}
|
||||
"ALGR(BP_Q)": {
|
||||
"key": "BP_RNGA",
|
||||
"label": "° (dead)",
|
||||
}
|
||||
"ALGR(BP_G)": {
|
||||
"key": "BP_DGRK",
|
||||
"label": "µ (dead Greek key)",
|
||||
}
|
||||
"ALGR(BP_H)": {
|
||||
"key": "BP_DAGG",
|
||||
"label": "†",
|
||||
}
|
||||
"ALGR(BP_F)": {
|
||||
"key": "BP_OGON",
|
||||
"label": "˛ (dead)",
|
||||
}
|
||||
"ALGR(KC_SPC)": {
|
||||
"key": "BP_UNDS",
|
||||
"label": "_",
|
||||
}
|
||||
/* Shift+AltGr symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ¶ │ „ │ “ │ ” │ ≤ │ ≥ │ │ ¬ │ ¼ │ ½ │ ¾ │ ′ │ ″ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ ¦ │ ˝ │ § │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ ˙ │ ¤ │ ̛ │ ſ │ │ │ ™ │ │ º │ , │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ │ │ ‘ │ ’ │ · │ ⌨ │ ̉ │ ̣ │ │ ‡ │ ª │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"S(ALGR(BP_DLR))": {
|
||||
"key": "BP_PARA",
|
||||
"label": "¶",
|
||||
}
|
||||
"S(ALGR(BP_DQUO))": {
|
||||
"key": "BP_DLQU",
|
||||
"label": "„",
|
||||
}
|
||||
"S(ALGR(BP_LDAQ))": {
|
||||
"key": "BP_LDQU",
|
||||
"label": "“",
|
||||
}
|
||||
"S(ALGR(BP_RDAQ))": {
|
||||
"key": "BP_RDQU",
|
||||
"label": "”",
|
||||
}
|
||||
"S(ALGR(BP_LPRN))": {
|
||||
"key": "BP_LEQL",
|
||||
"label": "≤",
|
||||
}
|
||||
"S(ALGR(BP_RPRN))": {
|
||||
"key": "BP_GEQL",
|
||||
"label": "≥",
|
||||
}
|
||||
"S(ALGR(BP_PLUS))": {
|
||||
"key": "BP_NOT",
|
||||
"label": "¬",
|
||||
}
|
||||
"S(ALGR(BP_MINS))": {
|
||||
"key": "BP_QRTR",
|
||||
"label": "¼",
|
||||
}
|
||||
"S(ALGR(BP_SLSH))": {
|
||||
"key": "BP_HALF",
|
||||
"label": "½",
|
||||
}
|
||||
"S(ALGR(BP_ASTR))": {
|
||||
"key": "BP_TQTR",
|
||||
"label": "¾",
|
||||
}
|
||||
"S(ALGR(BP_EQL))": {
|
||||
"key": "BP_PRIM",
|
||||
"label": "′",
|
||||
}
|
||||
"S(ALGR(BP_PERC))": {
|
||||
"key": "BP_DPRM",
|
||||
"label": "″",
|
||||
}
|
||||
"S(ALGR(BP_B))": {
|
||||
"key": "BP_BRKP",
|
||||
"label": "¦",
|
||||
}
|
||||
"S(ALGR(BP_EACU))": {
|
||||
"key": "BP_DACU",
|
||||
"label": "˝ (dead)",
|
||||
}
|
||||
"S(ALGR(BP_P))": {
|
||||
"key": "BP_SECT",
|
||||
"label": "§",
|
||||
}
|
||||
"S(ALGR(BP_I))": {
|
||||
"key": "BP_DOTA",
|
||||
"label": "˙ (dead)",
|
||||
}
|
||||
"S(ALGR(BP_E))": {
|
||||
"key": "BP_CURR",
|
||||
"label": "¤ (dead)",
|
||||
}
|
||||
"S(ALGR(BP_COMM))": {
|
||||
"key": "BP_HORN",
|
||||
"label": "̛ (dead)",
|
||||
}
|
||||
"S(ALGR(BP_C))": {
|
||||
"key": "BP_LNGS",
|
||||
"label": "ſ",
|
||||
}
|
||||
"S(ALGR(BP_R))": {
|
||||
"key": "BP_TM",
|
||||
"label": "™",
|
||||
}
|
||||
"S(ALGR(BP_M))": {
|
||||
"key": "BP_MORD",
|
||||
"label": "º",
|
||||
}
|
||||
"S(ALGR(BP_CCED))": {
|
||||
"key": "BP_DCMM",
|
||||
"label": ", (dead)",
|
||||
}
|
||||
"S(ALGR(BP_Y))": {
|
||||
"key": "BP_LSQU",
|
||||
"label": "‘",
|
||||
}
|
||||
"S(ALGR(BP_X))": {
|
||||
"key": "BP_RSQU",
|
||||
"label": "’",
|
||||
}
|
||||
"S(ALGR(BP_DOT))": {
|
||||
"key": "BP_MDDT",
|
||||
"label": "·",
|
||||
}
|
||||
"S(ALGR(BP_K))": {
|
||||
"key": "BP_KEYB",
|
||||
"label": "⌨",
|
||||
}
|
||||
"S(ALGR(BP_QUOT))": {
|
||||
"key": "BP_HOKA",
|
||||
"label": "̉ (dead)",
|
||||
}
|
||||
"S(ALGR(BP_Q))": {
|
||||
"key": "BP_DOTB",
|
||||
"label": "̣ (dead)",
|
||||
}
|
||||
"S(ALGR(BP_H))": {
|
||||
"key": "BP_DDAG",
|
||||
"label": "‡",
|
||||
}
|
||||
"S(ALGR(BP_F))": {
|
||||
"key": "BP_FORD",
|
||||
"label": "ª",
|
||||
}
|
||||
"S(ALGR(KC_SPC))": {
|
||||
"key": "BP_NNBS",
|
||||
"label": "(narrow non-breaking space)",
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,379 @@
|
||||
{
|
||||
"aliases": {
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ' │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ ´ │ [ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Ç │ ~ │ ] │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤
|
||||
* │ │ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ ; │ / │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬──┴─┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"KC_GRV": {
|
||||
"key": "BR_QUOT",
|
||||
"label": "'",
|
||||
}
|
||||
"KC_1": {
|
||||
"key": "BR_1",
|
||||
"label": "1",
|
||||
}
|
||||
"KC_2": {
|
||||
"key": "BR_2",
|
||||
"label": "2",
|
||||
}
|
||||
"KC_3": {
|
||||
"key": "BR_3",
|
||||
"label": "3",
|
||||
}
|
||||
"KC_4": {
|
||||
"key": "BR_4",
|
||||
"label": "4",
|
||||
}
|
||||
"KC_5": {
|
||||
"key": "BR_5",
|
||||
"label": "5",
|
||||
}
|
||||
"KC_6": {
|
||||
"key": "BR_6",
|
||||
"label": "6",
|
||||
}
|
||||
"KC_7": {
|
||||
"key": "BR_7",
|
||||
"label": "7",
|
||||
}
|
||||
"KC_8": {
|
||||
"key": "BR_8",
|
||||
"label": "8",
|
||||
}
|
||||
"KC_9": {
|
||||
"key": "BR_9",
|
||||
"label": "9",
|
||||
}
|
||||
"KC_0": {
|
||||
"key": "BR_0",
|
||||
"label": "0",
|
||||
}
|
||||
"KC_MINS": {
|
||||
"key": "BR_MINS",
|
||||
"label": "-",
|
||||
}
|
||||
"KC_EQL": {
|
||||
"key": "BR_EQL",
|
||||
"label": "=",
|
||||
}
|
||||
"KC_Q": {
|
||||
"key": "BR_Q",
|
||||
"label": "Q",
|
||||
}
|
||||
"KC_W": {
|
||||
"key": "BR_W",
|
||||
"label": "W",
|
||||
}
|
||||
"KC_E": {
|
||||
"key": "BR_E",
|
||||
"label": "E",
|
||||
}
|
||||
"KC_R": {
|
||||
"key": "BR_R",
|
||||
"label": "R",
|
||||
}
|
||||
"KC_T": {
|
||||
"key": "BR_T",
|
||||
"label": "T",
|
||||
}
|
||||
"KC_Y": {
|
||||
"key": "BR_Y",
|
||||
"label": "Y",
|
||||
}
|
||||
"KC_U": {
|
||||
"key": "BR_U",
|
||||
"label": "U",
|
||||
}
|
||||
"KC_I": {
|
||||
"key": "BR_I",
|
||||
"label": "I",
|
||||
}
|
||||
"KC_O": {
|
||||
"key": "BR_O",
|
||||
"label": "O",
|
||||
}
|
||||
"KC_P": {
|
||||
"key": "BR_P",
|
||||
"label": "P",
|
||||
}
|
||||
"KC_LBRC": {
|
||||
"key": "BR_ACUT",
|
||||
"label": "´ (dead)",
|
||||
}
|
||||
"KC_RBRC": {
|
||||
"key": "BR_LBRC",
|
||||
"label": "[",
|
||||
}
|
||||
"KC_A": {
|
||||
"key": "BR_A",
|
||||
"label": "A",
|
||||
}
|
||||
"KC_S": {
|
||||
"key": "BR_S",
|
||||
"label": "S",
|
||||
}
|
||||
"KC_D": {
|
||||
"key": "BR_D",
|
||||
"label": "D",
|
||||
}
|
||||
"KC_F": {
|
||||
"key": "BR_F",
|
||||
"label": "F",
|
||||
}
|
||||
"KC_G": {
|
||||
"key": "BR_G",
|
||||
"label": "G",
|
||||
}
|
||||
"KC_H": {
|
||||
"key": "BR_H",
|
||||
"label": "H",
|
||||
}
|
||||
"KC_J": {
|
||||
"key": "BR_J",
|
||||
"label": "J",
|
||||
}
|
||||
"KC_K": {
|
||||
"key": "BR_K",
|
||||
"label": "K",
|
||||
}
|
||||
"KC_L": {
|
||||
"key": "BR_L",
|
||||
"label": "L",
|
||||
}
|
||||
"KC_SCLN": {
|
||||
"key": "BR_CCED",
|
||||
"label": "Ç",
|
||||
}
|
||||
"KC_QUOT": {
|
||||
"key": "BR_TILD",
|
||||
"label": "~ (dead)",
|
||||
}
|
||||
"KC_BSLS": {
|
||||
"key": "BR_RBRC",
|
||||
"label": "]",
|
||||
}
|
||||
"KC_NUBS": {
|
||||
"key": "BR_BSLS",
|
||||
"label": "\\",
|
||||
}
|
||||
"KC_Z": {
|
||||
"key": "BR_Z",
|
||||
"label": "Z",
|
||||
}
|
||||
"KC_X": {
|
||||
"key": "BR_X",
|
||||
"label": "X",
|
||||
}
|
||||
"KC_C": {
|
||||
"key": "BR_C",
|
||||
"label": "C",
|
||||
}
|
||||
"KC_V": {
|
||||
"key": "BR_V",
|
||||
"label": "V",
|
||||
}
|
||||
"KC_B": {
|
||||
"key": "BR_B",
|
||||
"label": "B",
|
||||
}
|
||||
"KC_N": {
|
||||
"key": "BR_N",
|
||||
"label": "N",
|
||||
}
|
||||
"KC_M": {
|
||||
"key": "BR_M",
|
||||
"label": "M",
|
||||
}
|
||||
"KC_COMM": {
|
||||
"key": "BR_COMM",
|
||||
"label": ",",
|
||||
}
|
||||
"KC_DOT": {
|
||||
"key": "BR_DOT",
|
||||
"label": ".",
|
||||
}
|
||||
"KC_SLSH": {
|
||||
"key": "BR_SCLN",
|
||||
"label": ";",
|
||||
}
|
||||
"KC_INT1": {
|
||||
"key": "BR_SLSH",
|
||||
"label": "/",
|
||||
}
|
||||
"KC_PCMM": {
|
||||
"key": "BR_PDOT",
|
||||
"label": ".",
|
||||
}
|
||||
"KC_PDOT": {
|
||||
"key": "BR_PCMM",
|
||||
"label": ",",
|
||||
}
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ " │ ! │ @ │ # │ $ │ % │ ¨ │ & │ * │ ( │ ) │ _ │ + │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ ` │ { │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ ^ │ } │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤
|
||||
* │ │ | │ │ │ │ │ │ │ │ < │ > │ : │ ? │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬──┴─┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"S(BR_QUOT)": {
|
||||
"key": "BR_DQUO",
|
||||
"label": "\"",
|
||||
}
|
||||
"S(BR_1)": {
|
||||
"key": "BR_EXLM",
|
||||
"label": "!",
|
||||
}
|
||||
"S(BR_2)": {
|
||||
"key": "BR_AT",
|
||||
"label": "@",
|
||||
}
|
||||
"S(BR_3)": {
|
||||
"key": "BR_HASH",
|
||||
"label": "#",
|
||||
}
|
||||
"S(BR_4)": {
|
||||
"key": "BR_DLR",
|
||||
"label": "$",
|
||||
}
|
||||
"S(BR_5)": {
|
||||
"key": "BR_PERC",
|
||||
"label": "%",
|
||||
}
|
||||
"S(BR_6)": {
|
||||
"key": "BR_DIAE",
|
||||
"label": "¨ (dead)",
|
||||
}
|
||||
"S(BR_7)": {
|
||||
"key": "BR_AMPR",
|
||||
"label": "&",
|
||||
}
|
||||
"S(BR_8)": {
|
||||
"key": "BR_ASTR",
|
||||
"label": "*",
|
||||
}
|
||||
"S(BR_9)": {
|
||||
"key": "BR_LPRN",
|
||||
"label": "(",
|
||||
}
|
||||
"S(BR_0)": {
|
||||
"key": "BR_RPRN",
|
||||
"label": ")",
|
||||
}
|
||||
"S(BR_MINS)": {
|
||||
"key": "BR_UNDS",
|
||||
"label": "_",
|
||||
}
|
||||
"S(BR_EQL)": {
|
||||
"key": "BR_PLUS",
|
||||
"label": "+",
|
||||
}
|
||||
"S(BR_ACUT)": {
|
||||
"key": "BR_GRV",
|
||||
"label": "` (dead)",
|
||||
}
|
||||
"S(BR_LBRC)": {
|
||||
"key": "BR_LCBR",
|
||||
"label": "{",
|
||||
}
|
||||
"S(BR_TILD)": {
|
||||
"key": "BR_CIRC",
|
||||
"label": "^ (dead)",
|
||||
}
|
||||
"S(BR_RBRC)": {
|
||||
"key": "BR_RCBR",
|
||||
"label": "}",
|
||||
}
|
||||
"S(BR_BSLS)": {
|
||||
"key": "BR_PIPE",
|
||||
"label": "|",
|
||||
}
|
||||
"S(BR_COMM)": {
|
||||
"key": "BR_LABK",
|
||||
"label": "<",
|
||||
}
|
||||
"S(BR_DOT)": {
|
||||
"key": "BR_RABK",
|
||||
"label": ">",
|
||||
}
|
||||
"S(BR_SCLN)": {
|
||||
"key": "BR_COLN",
|
||||
"label": ":",
|
||||
}
|
||||
"S(BR_SLSH)": {
|
||||
"key": "BR_QUES",
|
||||
"label": "?",
|
||||
}
|
||||
/* AltGr symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ │ ¹ │ ² │ ³ │ £ │ ¢ │ ¬ │ │ │ │ │ │ § │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ ° │ │ │ │ │ │ │ │ │ ª │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ º │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤
|
||||
* │ │ │ │ │ ₢ │ │ │ │ │ │ │ │ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬──┴─┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"ALGR(BR_1)": {
|
||||
"key": "BR_SUP1",
|
||||
"label": "¹",
|
||||
}
|
||||
"ALGR(BR_2)": {
|
||||
"key": "BR_SUP2",
|
||||
"label": "²",
|
||||
}
|
||||
"ALGR(BR_3)": {
|
||||
"key": "BR_SUP3",
|
||||
"label": "³",
|
||||
}
|
||||
"ALGR(BR_4)": {
|
||||
"key": "BR_PND",
|
||||
"label": "£",
|
||||
}
|
||||
"ALGR(BR_5)": {
|
||||
"key": "BR_CENT",
|
||||
"label": "¢",
|
||||
}
|
||||
"ALGR(BR_6)": {
|
||||
"key": "BR_NOT",
|
||||
"label": "¬",
|
||||
}
|
||||
"ALGR(BR_EQL)": {
|
||||
"key": "BR_SECT",
|
||||
"label": "§",
|
||||
}
|
||||
"ALGR(BR_E)": {
|
||||
"key": "BR_DEG",
|
||||
"label": "°",
|
||||
}
|
||||
"ALGR(BR_LBRC)": {
|
||||
"key": "BR_FORD",
|
||||
"label": "ª",
|
||||
}
|
||||
"ALGR(BR_RBRC)": {
|
||||
"key": "BR_MORD",
|
||||
"label": "º",
|
||||
}
|
||||
"ALGR(BR_C)": {
|
||||
"key": "BR_CRUZ",
|
||||
"label": "₢",
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,641 @@
|
||||
{
|
||||
"aliases": {
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ / │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ ^ │ Ç │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ È │ À │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ Ù │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ É │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"KC_GRV": {
|
||||
"key": "CA_SLSH",
|
||||
"label": "/",
|
||||
}
|
||||
"KC_1": {
|
||||
"key": "CA_1",
|
||||
"label": "1",
|
||||
}
|
||||
"KC_2": {
|
||||
"key": "CA_2",
|
||||
"label": "2",
|
||||
}
|
||||
"KC_3": {
|
||||
"key": "CA_3",
|
||||
"label": "3",
|
||||
}
|
||||
"KC_4": {
|
||||
"key": "CA_4",
|
||||
"label": "4",
|
||||
}
|
||||
"KC_5": {
|
||||
"key": "CA_5",
|
||||
"label": "5",
|
||||
}
|
||||
"KC_6": {
|
||||
"key": "CA_6",
|
||||
"label": "6",
|
||||
}
|
||||
"KC_7": {
|
||||
"key": "CA_7",
|
||||
"label": "7",
|
||||
}
|
||||
"KC_8": {
|
||||
"key": "CA_8",
|
||||
"label": "8",
|
||||
}
|
||||
"KC_9": {
|
||||
"key": "CA_9",
|
||||
"label": "9",
|
||||
}
|
||||
"KC_0": {
|
||||
"key": "CA_0",
|
||||
"label": "0",
|
||||
}
|
||||
"KC_MINS": {
|
||||
"key": "CA_MINS",
|
||||
"label": "-",
|
||||
}
|
||||
"KC_EQL": {
|
||||
"key": "CA_EQL",
|
||||
"label": "=",
|
||||
}
|
||||
"KC_Q": {
|
||||
"key": "CA_Q",
|
||||
"label": "Q",
|
||||
}
|
||||
"KC_W": {
|
||||
"key": "CA_W",
|
||||
"label": "W",
|
||||
}
|
||||
"KC_E": {
|
||||
"key": "CA_E",
|
||||
"label": "E",
|
||||
}
|
||||
"KC_R": {
|
||||
"key": "CA_R",
|
||||
"label": "R",
|
||||
}
|
||||
"KC_T": {
|
||||
"key": "CA_T",
|
||||
"label": "T",
|
||||
}
|
||||
"KC_Y": {
|
||||
"key": "CA_Y",
|
||||
"label": "Y",
|
||||
}
|
||||
"KC_U": {
|
||||
"key": "CA_U",
|
||||
"label": "U",
|
||||
}
|
||||
"KC_I": {
|
||||
"key": "CA_I",
|
||||
"label": "I",
|
||||
}
|
||||
"KC_O": {
|
||||
"key": "CA_O",
|
||||
"label": "O",
|
||||
}
|
||||
"KC_P": {
|
||||
"key": "CA_P",
|
||||
"label": "P",
|
||||
}
|
||||
"KC_LBRC": {
|
||||
"key": "CA_CIRC",
|
||||
"label": "^ (dead)",
|
||||
}
|
||||
"KC_RBRC": {
|
||||
"key": "CA_CCED",
|
||||
"label": "Ç",
|
||||
}
|
||||
"KC_A": {
|
||||
"key": "CA_A",
|
||||
"label": "A",
|
||||
}
|
||||
"KC_S": {
|
||||
"key": "CA_S",
|
||||
"label": "S",
|
||||
}
|
||||
"KC_D": {
|
||||
"key": "CA_D",
|
||||
"label": "D",
|
||||
}
|
||||
"KC_F": {
|
||||
"key": "CA_F",
|
||||
"label": "F",
|
||||
}
|
||||
"KC_G": {
|
||||
"key": "CA_G",
|
||||
"label": "G",
|
||||
}
|
||||
"KC_H": {
|
||||
"key": "CA_H",
|
||||
"label": "H",
|
||||
}
|
||||
"KC_J": {
|
||||
"key": "CA_J",
|
||||
"label": "J",
|
||||
}
|
||||
"KC_K": {
|
||||
"key": "CA_K",
|
||||
"label": "K",
|
||||
}
|
||||
"KC_L": {
|
||||
"key": "CA_L",
|
||||
"label": "L",
|
||||
}
|
||||
"KC_SCLN": {
|
||||
"key": "CA_SCLN",
|
||||
"label": ";",
|
||||
}
|
||||
"KC_QUOT": {
|
||||
"key": "CA_EGRV",
|
||||
"label": "É",
|
||||
}
|
||||
"KC_NUHS": {
|
||||
"key": "CA_AGRV",
|
||||
"label": "À",
|
||||
}
|
||||
"KC_NUBS": {
|
||||
"key": "CA_UGRV",
|
||||
"label": "Ù",
|
||||
}
|
||||
"KC_Z": {
|
||||
"key": "CA_Z",
|
||||
"label": "Z",
|
||||
}
|
||||
"KC_X": {
|
||||
"key": "CA_X",
|
||||
"label": "X",
|
||||
}
|
||||
"KC_C": {
|
||||
"key": "CA_C",
|
||||
"label": "C",
|
||||
}
|
||||
"KC_V": {
|
||||
"key": "CA_V",
|
||||
"label": "V",
|
||||
}
|
||||
"KC_B": {
|
||||
"key": "CA_B",
|
||||
"label": "B",
|
||||
}
|
||||
"KC_N": {
|
||||
"key": "CA_N",
|
||||
"label": "N",
|
||||
}
|
||||
"KC_M": {
|
||||
"key": "CA_M",
|
||||
"label": "M",
|
||||
}
|
||||
"KC_COMM": {
|
||||
"key": "CA_COMM",
|
||||
"label": ",",
|
||||
}
|
||||
"KC_DOT": {
|
||||
"key": "CA_DOT",
|
||||
"label": ".",
|
||||
}
|
||||
"KC_SLSH": {
|
||||
"key": "CA_EACU",
|
||||
"label": "É",
|
||||
}
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ \ │ ! │ @ │ # │ $ │ % │ ? │ & │ * │ ( │ ) │ _ │ + │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ ¨ │ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ : │ │ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ ' │ " │ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"S(CA_SLSH)": {
|
||||
"key": "CA_BSLS",
|
||||
"label": "\\",
|
||||
}
|
||||
"S(CA_1)": {
|
||||
"key": "CA_EXLM",
|
||||
"label": "!",
|
||||
}
|
||||
"S(CA_2)": {
|
||||
"key": "CA_AT",
|
||||
"label": "@",
|
||||
}
|
||||
"S(CA_3)": {
|
||||
"key": "CA_HASH",
|
||||
"label": "#",
|
||||
}
|
||||
"S(CA_4)": {
|
||||
"key": "CA_DLR",
|
||||
"label": "$",
|
||||
}
|
||||
"S(CA_5)": {
|
||||
"key": "CA_PERC",
|
||||
"label": "%",
|
||||
}
|
||||
"S(CA_6)": {
|
||||
"key": "CA_QUES",
|
||||
"label": "?",
|
||||
}
|
||||
"S(CA_7)": {
|
||||
"key": "CA_AMPR",
|
||||
"label": "&",
|
||||
}
|
||||
"S(CA_8)": {
|
||||
"key": "CA_ASTR",
|
||||
"label": "*",
|
||||
}
|
||||
"S(CA_9)": {
|
||||
"key": "CA_LPRN",
|
||||
"label": "(",
|
||||
}
|
||||
"S(CA_0)": {
|
||||
"key": "CA_RPRN",
|
||||
"label": ")",
|
||||
}
|
||||
"S(CA_MINS)": {
|
||||
"key": "CA_UNDS",
|
||||
"label": "_",
|
||||
}
|
||||
"S(CA_EQL)": {
|
||||
"key": "CA_PLUS",
|
||||
"label": "+",
|
||||
}
|
||||
"S(CA_CIRC)": {
|
||||
"key": "CA_DIAE",
|
||||
"label": "¨ (dead)",
|
||||
}
|
||||
"S(CA_SCLN)": {
|
||||
"key": "CA_COLN",
|
||||
"label": ":",
|
||||
}
|
||||
"S(CA_COMM)": {
|
||||
"key": "CA_QUOT",
|
||||
"label": "'",
|
||||
}
|
||||
"S(CA_DOT)": {
|
||||
"key": "CA_DQUO",
|
||||
"label": "\"",
|
||||
}
|
||||
/* AltGr symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ | │ │ │ │ ¤ │ │ │ { │ } │ [ │ ] │ │ ¬ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ € │ │ │ │ │ │ │ │ ` │ ~ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ ° │ │ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ │ « │ » │ │ │ │ │ │ < │ > │ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"ALGR(CA_SLSH)": {
|
||||
"key": "CA_PIPE",
|
||||
"label": "|",
|
||||
}
|
||||
"ALGR(CA_4)": {
|
||||
"key": "CA_CURR",
|
||||
"label": "¤",
|
||||
}
|
||||
"ALGR(CA_7)": {
|
||||
"key": "CA_LCBR",
|
||||
"label": "{",
|
||||
}
|
||||
"ALGR(CA_8)": {
|
||||
"key": "CA_RCBR",
|
||||
"label": "}",
|
||||
}
|
||||
"ALGR(CA_9)": {
|
||||
"key": "CA_LBRC",
|
||||
"label": "[",
|
||||
}
|
||||
"ALGR(CA_0)": {
|
||||
"key": "CA_RBRC",
|
||||
"label": "]",
|
||||
}
|
||||
"ALGR(CA_EQL)": {
|
||||
"key": "CA_NOT",
|
||||
"label": "¬",
|
||||
}
|
||||
"ALGR(CA_E)": {
|
||||
"key": "CA_EURO",
|
||||
"label": "€",
|
||||
}
|
||||
"ALGR(CA_CIRC)": {
|
||||
"key": "CA_GRV",
|
||||
"label": "` (dead)",
|
||||
}
|
||||
"ALGR(CA_CCED)": {
|
||||
"key": "CA_DTIL",
|
||||
"label": "~ (dead)",
|
||||
}
|
||||
"ALGR(CA_SCLN)": {
|
||||
"key": "CA_DEG",
|
||||
"label": "°",
|
||||
}
|
||||
"ALGR(CA_Z)": {
|
||||
"key": "CA_LDAQ",
|
||||
"label": "«",
|
||||
}
|
||||
"ALGR(CA_X)": {
|
||||
"key": "CA_RDAQ",
|
||||
"label": "»",
|
||||
}
|
||||
"ALGR(CA_COMM)": {
|
||||
"key": "CA_LABK",
|
||||
"label": "<",
|
||||
}
|
||||
"ALGR(CA_DOT)": {
|
||||
"key": "CA_RABK",
|
||||
"label": ">",
|
||||
}
|
||||
/* Right Ctrl symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ │ ¹ │ ² │ ³ │ ¼ │ ½ │ ¾ │ │ │ │ │ │ ¸ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ Ω │ Ł │ Œ │ ¶ │ Ŧ │ ← │ ↓ │ → │ Ø │ Þ │ │ ~ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ Æ │ ß │ Ð │ │ Ŋ │ Ħ │ IJ │ ĸ │ Ŀ │ ´ │ │ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ │ │ │ ¢ │ “ │ ” │ ʼn │ μ │ ― │ ˙ │ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"RCTL(CA_1)": {
|
||||
"key": "CA_SUP1",
|
||||
"label": "¹",
|
||||
}
|
||||
"RCTL(CA_2)": {
|
||||
"key": "CA_SUP2",
|
||||
"label": "²",
|
||||
}
|
||||
"RCTL(CA_3)": {
|
||||
"key": "CA_SUP3",
|
||||
"label": "³",
|
||||
}
|
||||
"RCTL(CA_4)": {
|
||||
"key": "CA_QRTR",
|
||||
"label": "¼",
|
||||
}
|
||||
"RCTL(CA_5)": {
|
||||
"key": "CA_HALF",
|
||||
"label": "½",
|
||||
}
|
||||
"RCTL(CA_6)": {
|
||||
"key": "CA_TQTR",
|
||||
"label": "¾",
|
||||
}
|
||||
"RCTL(CA_EQL)": {
|
||||
"key": "CA_CEDL",
|
||||
"label": "¸ (dead)",
|
||||
}
|
||||
"RCTL(CA_Q)": {
|
||||
"key": "CA_OMEG",
|
||||
"label": "Ω",
|
||||
}
|
||||
"RCTL(CA_W)": {
|
||||
"key": "CA_LSTR",
|
||||
"label": "Ł",
|
||||
}
|
||||
"RCTL(CA_E)": {
|
||||
"key": "CA_OE",
|
||||
"label": "Œ",
|
||||
}
|
||||
"RCTL(CA_R)": {
|
||||
"key": "CA_PARA",
|
||||
"label": "¶",
|
||||
}
|
||||
"RCTL(CA_T)": {
|
||||
"key": "CA_TSTR",
|
||||
"label": "Ŧ",
|
||||
}
|
||||
"RCTL(CA_Y)": {
|
||||
"key": "CA_LARR",
|
||||
"label": "←",
|
||||
}
|
||||
"RCTL(CA_U)": {
|
||||
"key": "CA_DARR",
|
||||
"label": "↓",
|
||||
}
|
||||
"RCTL(CA_I)": {
|
||||
"key": "CA_RARR",
|
||||
"label": "→",
|
||||
}
|
||||
"RCTL(CA_O)": {
|
||||
"key": "CA_OSTR",
|
||||
"label": "Ø",
|
||||
}
|
||||
"RCTL(CA_P)": {
|
||||
"key": "CA_THRN",
|
||||
"label": "Þ",
|
||||
}
|
||||
"RCTL(CA_CCED)": {
|
||||
"key": "CA_TILD",
|
||||
"label": "~",
|
||||
}
|
||||
"RCTL(CA_A)": {
|
||||
"key": "CA_AE",
|
||||
"label": "Æ",
|
||||
}
|
||||
"RCTL(CA_S)": {
|
||||
"key": "CA_SS",
|
||||
"label": "ß",
|
||||
}
|
||||
"RCTL(CA_D)": {
|
||||
"key": "CA_ETH",
|
||||
"label": "Ð",
|
||||
}
|
||||
"RCTL(CA_G)": {
|
||||
"key": "CA_ENG",
|
||||
"label": "Ŋ",
|
||||
}
|
||||
"RCTL(CA_H)": {
|
||||
"key": "CA_HSTR",
|
||||
"label": "Ħ",
|
||||
}
|
||||
"RCTL(CA_J)": {
|
||||
"key": "CA_IJ",
|
||||
"label": "IJ",
|
||||
}
|
||||
"RCTL(CA_K)": {
|
||||
"key": "CA_KRA",
|
||||
"label": "ĸ",
|
||||
}
|
||||
"RCTL(CA_L)": {
|
||||
"key": "CA_LMDT",
|
||||
"label": "Ŀ",
|
||||
}
|
||||
"RCTL(CA_SCLN)": {
|
||||
"key": "CA_ACUT",
|
||||
"label": "´ (dead)",
|
||||
}
|
||||
"RCTL(CA_C)": {
|
||||
"key": "CA_CENT",
|
||||
"label": "¢",
|
||||
}
|
||||
"RCTL(CA_V)": {
|
||||
"key": "CA_LDQU",
|
||||
"label": "“",
|
||||
}
|
||||
"RCTL(CA_B)": {
|
||||
"key": "CA_RDQU",
|
||||
"label": "”",
|
||||
}
|
||||
"RCTL(CA_N)": {
|
||||
"key": "CA_APSN",
|
||||
"label": "ʼn",
|
||||
}
|
||||
"RCTL(CA_M)": {
|
||||
"key": "CA_MICR",
|
||||
"label": "μ",
|
||||
}
|
||||
"RCTL(CA_COMM)": {
|
||||
"key": "CA_HRZB",
|
||||
"label": "―",
|
||||
}
|
||||
"RCTL(CA_DOT)": {
|
||||
"key": "CA_DOTA",
|
||||
"label": "˙ (dead)",
|
||||
}
|
||||
/* Shift+Right Ctrl symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ - │ ¡ │ │ £ │ │ ⅜ │ ⅝ │ ⅞ │ ™ │ ± │ │ ¿ │ ˛ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ ® │ │ ¥ │ ↑ │ ı │ │ │ ° │ ¯ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ § │ │ ª │ │ │ │ │ │ ˝ │ ˇ │ ˘ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ ¦ │ │ │ © │ ‘ │ ’ │ ♪ │ º │ × │ ÷ │ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"RCTL(S(CA_SLSH))": {
|
||||
"key": "CA_SHYP",
|
||||
"label": " (soft hyphen)",
|
||||
}
|
||||
"RCTL(S(CA_1))": {
|
||||
"key": "CA_IEXL",
|
||||
"label": "¡",
|
||||
}
|
||||
"RCTL(S(CA_3))": {
|
||||
"key": "CA_PND",
|
||||
"label": "£",
|
||||
}
|
||||
"RCTL(S(CA_5))": {
|
||||
"key": "CA_TEIG",
|
||||
"label": "⅜",
|
||||
}
|
||||
"RCTL(S(CA_6))": {
|
||||
"key": "CA_FEIG",
|
||||
"label": "⅝",
|
||||
}
|
||||
"RCTL(S(CA_7))": {
|
||||
"key": "CA_SEIG",
|
||||
"label": "⅞",
|
||||
}
|
||||
"RCTL(S(CA_8))": {
|
||||
"key": "CA_TM",
|
||||
"label": "™",
|
||||
}
|
||||
"RCTL(S(CA_9))": {
|
||||
"key": "CA_PLMN",
|
||||
"label": "±",
|
||||
}
|
||||
"RCTL(S(CA_MINS))": {
|
||||
"key": "CA_IQUE",
|
||||
"label": "¿",
|
||||
}
|
||||
"RCTL(S(CA_EQL))": {
|
||||
"key": "CA_OGON",
|
||||
"label": "˛ (dead)",
|
||||
}
|
||||
"RCTL(S(CA_R))": {
|
||||
"key": "CA_REGD",
|
||||
"label": "®",
|
||||
}
|
||||
"RCTL(S(CA_Y))": {
|
||||
"key": "CA_YEN",
|
||||
"label": "¥",
|
||||
}
|
||||
"RCTL(S(CA_U))": {
|
||||
"key": "CA_UARR",
|
||||
"label": "↑",
|
||||
}
|
||||
"RCTL(S(CA_I))": {
|
||||
"key": "CA_DLSI",
|
||||
"label": "ı",
|
||||
}
|
||||
"RCTL(S(CA_CIRC))": {
|
||||
"key": "CA_RNGA",
|
||||
"label": "° (dead)",
|
||||
}
|
||||
"RCTL(S(CA_CCED))": {
|
||||
"key": "CA_MACR",
|
||||
"label": "¯ (dead)",
|
||||
}
|
||||
"RCTL(S(CA_S))": {
|
||||
"key": "CA_SECT",
|
||||
"label": "§",
|
||||
}
|
||||
"RCTL(S(CA_F))": {
|
||||
"key": "CA_FORD",
|
||||
"label": "ª",
|
||||
}
|
||||
"RCTL(S(CA_SCLN))": {
|
||||
"key": "CA_DACU",
|
||||
"label": "˝ (dead)",
|
||||
}
|
||||
"RCTL(S(CA_EGRV))": {
|
||||
"key": "CA_CARN",
|
||||
"label": "ˇ (dead)",
|
||||
}
|
||||
"RCTL(S(CA_AGRV))": {
|
||||
"key": "CA_BREV",
|
||||
"label": "˘ (dead)",
|
||||
}
|
||||
"RCTL(S(CA_UGRV))": {
|
||||
"key": "CA_BRKP",
|
||||
"label": "¦",
|
||||
}
|
||||
"RCTL(S(CA_C))": {
|
||||
"key": "CA_COPY",
|
||||
"label": "©",
|
||||
}
|
||||
"RCTL(S(CA_V))": {
|
||||
"key": "CA_LSQU",
|
||||
"label": "‘",
|
||||
}
|
||||
"RCTL(S(CA_B))": {
|
||||
"key": "CA_RSQU",
|
||||
"label": "’",
|
||||
}
|
||||
"RCTL(S(CA_N))": {
|
||||
"key": "CA_ENOT",
|
||||
"label": "♪",
|
||||
}
|
||||
"RCTL(S(CA_M))": {
|
||||
"key": "CA_MORD",
|
||||
"label": "º",
|
||||
}
|
||||
"RCTL(S(CA_COMM))": {
|
||||
"key": "CA_MUL",
|
||||
"label": "×",
|
||||
}
|
||||
"RCTL(S(CA_DOT))": {
|
||||
"key": "CA_DIV",
|
||||
"label": "÷",
|
||||
}
|
||||
}
|
||||
}
|
||||
302
data/constants/keycodes/extras/keycodes_colemak_0.0.1.hjson
Normal file
302
data/constants/keycodes/extras/keycodes_colemak_0.0.1.hjson
Normal file
@@ -0,0 +1,302 @@
|
||||
{
|
||||
"aliases": {
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ Q │ W │ F │ P │ G │ J │ L │ U │ Y │ ; │ [ │ ] │ \ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
|
||||
* │ │ A │ R │ S │ T │ D │ H │ N │ E │ I │ O │ ' │ │
|
||||
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
|
||||
* │ │ Z │ X │ C │ V │ B │ K │ M │ , │ . │ / │ │
|
||||
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"KC_GRV": {
|
||||
"key": "CM_GRV",
|
||||
"label": "`",
|
||||
}
|
||||
"KC_1": {
|
||||
"key": "CM_1",
|
||||
"label": "1",
|
||||
}
|
||||
"KC_2": {
|
||||
"key": "CM_2",
|
||||
"label": "2",
|
||||
}
|
||||
"KC_3": {
|
||||
"key": "CM_3",
|
||||
"label": "3",
|
||||
}
|
||||
"KC_4": {
|
||||
"key": "CM_4",
|
||||
"label": "4",
|
||||
}
|
||||
"KC_5": {
|
||||
"key": "CM_5",
|
||||
"label": "5",
|
||||
}
|
||||
"KC_6": {
|
||||
"key": "CM_6",
|
||||
"label": "6",
|
||||
}
|
||||
"KC_7": {
|
||||
"key": "CM_7",
|
||||
"label": "7",
|
||||
}
|
||||
"KC_8": {
|
||||
"key": "CM_8",
|
||||
"label": "8",
|
||||
}
|
||||
"KC_9": {
|
||||
"key": "CM_9",
|
||||
"label": "9",
|
||||
}
|
||||
"KC_0": {
|
||||
"key": "CM_0",
|
||||
"label": "0",
|
||||
}
|
||||
"KC_MINS": {
|
||||
"key": "CM_MINS",
|
||||
"label": "-",
|
||||
}
|
||||
"KC_EQL": {
|
||||
"key": "CM_EQL",
|
||||
"label": "=",
|
||||
}
|
||||
"KC_Q": {
|
||||
"key": "CM_Q",
|
||||
"label": "Q",
|
||||
}
|
||||
"KC_W": {
|
||||
"key": "CM_W",
|
||||
"label": "W",
|
||||
}
|
||||
"KC_E": {
|
||||
"key": "CM_F",
|
||||
"label": "F",
|
||||
}
|
||||
"KC_R": {
|
||||
"key": "CM_P",
|
||||
"label": "P",
|
||||
}
|
||||
"KC_T": {
|
||||
"key": "CM_G",
|
||||
"label": "G",
|
||||
}
|
||||
"KC_Y": {
|
||||
"key": "CM_J",
|
||||
"label": "J",
|
||||
}
|
||||
"KC_U": {
|
||||
"key": "CM_L",
|
||||
"label": "L",
|
||||
}
|
||||
"KC_I": {
|
||||
"key": "CM_U",
|
||||
"label": "U",
|
||||
}
|
||||
"KC_O": {
|
||||
"key": "CM_Y",
|
||||
"label": "Y",
|
||||
}
|
||||
"KC_P": {
|
||||
"key": "CM_SCLN",
|
||||
"label": ";",
|
||||
}
|
||||
"KC_LBRC": {
|
||||
"key": "CM_LBRC",
|
||||
"label": "[",
|
||||
}
|
||||
"KC_RBRC": {
|
||||
"key": "CM_RBRC",
|
||||
"label": "]",
|
||||
}
|
||||
"KC_BSLS": {
|
||||
"key": "CM_BSLS",
|
||||
"label": "\\",
|
||||
}
|
||||
"KC_A": {
|
||||
"key": "CM_A",
|
||||
"label": "A",
|
||||
}
|
||||
"KC_S": {
|
||||
"key": "CM_R",
|
||||
"label": "R",
|
||||
}
|
||||
"KC_D": {
|
||||
"key": "CM_S",
|
||||
"label": "S",
|
||||
}
|
||||
"KC_F": {
|
||||
"key": "CM_T",
|
||||
"label": "T",
|
||||
}
|
||||
"KC_G": {
|
||||
"key": "CM_D",
|
||||
"label": "D",
|
||||
}
|
||||
"KC_H": {
|
||||
"key": "CM_H",
|
||||
"label": "H",
|
||||
}
|
||||
"KC_J": {
|
||||
"key": "CM_N",
|
||||
"label": "N",
|
||||
}
|
||||
"KC_K": {
|
||||
"key": "CM_E",
|
||||
"label": "E",
|
||||
}
|
||||
"KC_L": {
|
||||
"key": "CM_I",
|
||||
"label": "I",
|
||||
}
|
||||
"KC_SCLN": {
|
||||
"key": "CM_O",
|
||||
"label": "O",
|
||||
}
|
||||
"KC_QUOT": {
|
||||
"key": "CM_QUOT",
|
||||
"label": "'",
|
||||
}
|
||||
"KC_Z": {
|
||||
"key": "CM_Z",
|
||||
"label": "Z",
|
||||
}
|
||||
"KC_X": {
|
||||
"key": "CM_X",
|
||||
"label": "X",
|
||||
}
|
||||
"KC_C": {
|
||||
"key": "CM_C",
|
||||
"label": "C",
|
||||
}
|
||||
"KC_V": {
|
||||
"key": "CM_V",
|
||||
"label": "V",
|
||||
}
|
||||
"KC_B": {
|
||||
"key": "CM_B",
|
||||
"label": "B",
|
||||
}
|
||||
"KC_N": {
|
||||
"key": "CM_K",
|
||||
"label": "K",
|
||||
}
|
||||
"KC_M": {
|
||||
"key": "CM_M",
|
||||
"label": "M",
|
||||
}
|
||||
"KC_COMM": {
|
||||
"key": "CM_COMM",
|
||||
"label": ",",
|
||||
}
|
||||
"KC_DOT": {
|
||||
"key": "CM_DOT",
|
||||
"label": ".",
|
||||
}
|
||||
"KC_SLSH": {
|
||||
"key": "CM_SLSH",
|
||||
"label": "/",
|
||||
}
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ : │ { │ } │ | │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ " │ │
|
||||
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
|
||||
* │ │ │ │ │ │ │ │ │ < │ > │ ? │ │
|
||||
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"S(CM_GRV)": {
|
||||
"key": "CM_TILD",
|
||||
"label": "~",
|
||||
}
|
||||
"S(CM_1)": {
|
||||
"key": "CM_EXLM",
|
||||
"label": "!",
|
||||
}
|
||||
"S(CM_2)": {
|
||||
"key": "CM_AT",
|
||||
"label": "@",
|
||||
}
|
||||
"S(CM_3)": {
|
||||
"key": "CM_HASH",
|
||||
"label": "#",
|
||||
}
|
||||
"S(CM_4)": {
|
||||
"key": "CM_DLR",
|
||||
"label": "$",
|
||||
}
|
||||
"S(CM_5)": {
|
||||
"key": "CM_PERC",
|
||||
"label": "%",
|
||||
}
|
||||
"S(CM_6)": {
|
||||
"key": "CM_CIRC",
|
||||
"label": "^",
|
||||
}
|
||||
"S(CM_7)": {
|
||||
"key": "CM_AMPR",
|
||||
"label": "&",
|
||||
}
|
||||
"S(CM_8)": {
|
||||
"key": "CM_ASTR",
|
||||
"label": "*",
|
||||
}
|
||||
"S(CM_9)": {
|
||||
"key": "CM_LPRN",
|
||||
"label": "(",
|
||||
}
|
||||
"S(CM_0)": {
|
||||
"key": "CM_RPRN",
|
||||
"label": ")",
|
||||
}
|
||||
"S(CM_MINS)": {
|
||||
"key": "CM_UNDS",
|
||||
"label": "_",
|
||||
}
|
||||
"S(CM_EQL)": {
|
||||
"key": "CM_PLUS",
|
||||
"label": "+",
|
||||
}
|
||||
"S(CM_SCLN)": {
|
||||
"key": "CM_COLN",
|
||||
"label": ":",
|
||||
}
|
||||
"S(CM_LBRC)": {
|
||||
"key": "CM_LCBR",
|
||||
"label": "{",
|
||||
}
|
||||
"S(CM_RBRC)": {
|
||||
"key": "CM_RCBR",
|
||||
"label": "}",
|
||||
}
|
||||
"S(CM_BSLS)": {
|
||||
"key": "CM_PIPE",
|
||||
"label": "|",
|
||||
}
|
||||
"S(CM_QUOT)": {
|
||||
"key": "CM_DQUO",
|
||||
"label": "\"",
|
||||
}
|
||||
"S(CM_COMM)": {
|
||||
"key": "CM_LABK",
|
||||
"label": "<",
|
||||
}
|
||||
"S(CM_DOT)": {
|
||||
"key": "CM_RABK",
|
||||
"label": ">",
|
||||
}
|
||||
"S(CM_SLSH)": {
|
||||
"key": "CM_QUES",
|
||||
"label": "?",
|
||||
}
|
||||
}
|
||||
}
|
||||
403
data/constants/keycodes/extras/keycodes_croatian_0.0.1.hjson
Normal file
403
data/constants/keycodes/extras/keycodes_croatian_0.0.1.hjson
Normal file
@@ -0,0 +1,403 @@
|
||||
{
|
||||
"aliases": {
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ¸ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ' │ + │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ Q │ W │ E │ R │ T │ Z │ U │ I │ O │ P │ Š │ Đ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Č │ Ć │ Ž │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ < │ Y │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"KC_GRV": {
|
||||
"key": "HR_CEDL",
|
||||
"label": "¸ (dead)",
|
||||
}
|
||||
"KC_1": {
|
||||
"key": "HR_1",
|
||||
"label": "1",
|
||||
}
|
||||
"KC_2": {
|
||||
"key": "HR_2",
|
||||
"label": "2",
|
||||
}
|
||||
"KC_3": {
|
||||
"key": "HR_3",
|
||||
"label": "3",
|
||||
}
|
||||
"KC_4": {
|
||||
"key": "HR_4",
|
||||
"label": "4",
|
||||
}
|
||||
"KC_5": {
|
||||
"key": "HR_5",
|
||||
"label": "5",
|
||||
}
|
||||
"KC_6": {
|
||||
"key": "HR_6",
|
||||
"label": "6",
|
||||
}
|
||||
"KC_7": {
|
||||
"key": "HR_7",
|
||||
"label": "7",
|
||||
}
|
||||
"KC_8": {
|
||||
"key": "HR_8",
|
||||
"label": "8",
|
||||
}
|
||||
"KC_9": {
|
||||
"key": "HR_9",
|
||||
"label": "9",
|
||||
}
|
||||
"KC_0": {
|
||||
"key": "HR_0",
|
||||
"label": "0",
|
||||
}
|
||||
"KC_MINS": {
|
||||
"key": "HR_QUOT",
|
||||
"label": "'",
|
||||
}
|
||||
"KC_EQL": {
|
||||
"key": "HR_PLUS",
|
||||
"label": "+",
|
||||
}
|
||||
"KC_Q": {
|
||||
"key": "HR_Q",
|
||||
"label": "Q",
|
||||
}
|
||||
"KC_W": {
|
||||
"key": "HR_W",
|
||||
"label": "W",
|
||||
}
|
||||
"KC_E": {
|
||||
"key": "HR_E",
|
||||
"label": "E",
|
||||
}
|
||||
"KC_R": {
|
||||
"key": "HR_R",
|
||||
"label": "R",
|
||||
}
|
||||
"KC_T": {
|
||||
"key": "HR_T",
|
||||
"label": "T",
|
||||
}
|
||||
"KC_Y": {
|
||||
"key": "HR_Z",
|
||||
"label": "Z",
|
||||
}
|
||||
"KC_U": {
|
||||
"key": "HR_U",
|
||||
"label": "U",
|
||||
}
|
||||
"KC_I": {
|
||||
"key": "HR_I",
|
||||
"label": "I",
|
||||
}
|
||||
"KC_O": {
|
||||
"key": "HR_O",
|
||||
"label": "O",
|
||||
}
|
||||
"KC_P": {
|
||||
"key": "HR_P",
|
||||
"label": "P",
|
||||
}
|
||||
"KC_LBRC": {
|
||||
"key": "HR_SCAR",
|
||||
"label": "Š",
|
||||
}
|
||||
"KC_RBRC": {
|
||||
"key": "HR_DSTR",
|
||||
"label": "Đ",
|
||||
}
|
||||
"KC_A": {
|
||||
"key": "HR_A",
|
||||
"label": "A",
|
||||
}
|
||||
"KC_S": {
|
||||
"key": "HR_S",
|
||||
"label": "S",
|
||||
}
|
||||
"KC_D": {
|
||||
"key": "HR_D",
|
||||
"label": "D",
|
||||
}
|
||||
"KC_F": {
|
||||
"key": "HR_F",
|
||||
"label": "F",
|
||||
}
|
||||
"KC_G": {
|
||||
"key": "HR_G",
|
||||
"label": "G",
|
||||
}
|
||||
"KC_H": {
|
||||
"key": "HR_H",
|
||||
"label": "H",
|
||||
}
|
||||
"KC_J": {
|
||||
"key": "HR_J",
|
||||
"label": "J",
|
||||
}
|
||||
"KC_K": {
|
||||
"key": "HR_K",
|
||||
"label": "K",
|
||||
}
|
||||
"KC_L": {
|
||||
"key": "HR_L",
|
||||
"label": "L",
|
||||
}
|
||||
"KC_SCLN": {
|
||||
"key": "HR_CCAR",
|
||||
"label": "Č",
|
||||
}
|
||||
"KC_QUOT": {
|
||||
"key": "HR_CACU",
|
||||
"label": "Ć",
|
||||
}
|
||||
"KC_NUHS": {
|
||||
"key": "HR_ZCAR",
|
||||
"label": "Ž",
|
||||
}
|
||||
"KC_NUBS": {
|
||||
"key": "HR_LABK",
|
||||
"label": "<",
|
||||
}
|
||||
"KC_Z": {
|
||||
"key": "HR_Y",
|
||||
"label": "Y",
|
||||
}
|
||||
"KC_X": {
|
||||
"key": "HR_X",
|
||||
"label": "X",
|
||||
}
|
||||
"KC_C": {
|
||||
"key": "HR_C",
|
||||
"label": "C",
|
||||
}
|
||||
"KC_V": {
|
||||
"key": "HR_V",
|
||||
"label": "V",
|
||||
}
|
||||
"KC_B": {
|
||||
"key": "HR_B",
|
||||
"label": "B",
|
||||
}
|
||||
"KC_N": {
|
||||
"key": "HR_N",
|
||||
"label": "N",
|
||||
}
|
||||
"KC_M": {
|
||||
"key": "HR_M",
|
||||
"label": "M",
|
||||
}
|
||||
"KC_COMM": {
|
||||
"key": "HR_COMM",
|
||||
"label": ",",
|
||||
}
|
||||
"KC_DOT": {
|
||||
"key": "HR_DOT",
|
||||
"label": ".",
|
||||
}
|
||||
"KC_SLSH": {
|
||||
"key": "HR_MINS",
|
||||
"label": "-",
|
||||
}
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ¨ │ ! │ " │ # │ $ │ % │ & │ / │ ( │ ) │ = │ ? │ * │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ > │ │ │ │ │ │ │ │ ; │ : │ _ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"S(HR_CEDL)": {
|
||||
"key": "HR_DIAE",
|
||||
"label": "¨ (dead)",
|
||||
}
|
||||
"S(HR_1)": {
|
||||
"key": "HR_EXLM",
|
||||
"label": "!",
|
||||
}
|
||||
"S(HR_2)": {
|
||||
"key": "HR_DQUO",
|
||||
"label": "\"",
|
||||
}
|
||||
"S(HR_3)": {
|
||||
"key": "HR_HASH",
|
||||
"label": "#",
|
||||
}
|
||||
"S(HR_4)": {
|
||||
"key": "HR_DLR",
|
||||
"label": "$",
|
||||
}
|
||||
"S(HR_5)": {
|
||||
"key": "HR_PERC",
|
||||
"label": "%",
|
||||
}
|
||||
"S(HR_6)": {
|
||||
"key": "HR_AMPR",
|
||||
"label": "&",
|
||||
}
|
||||
"S(HR_7)": {
|
||||
"key": "HR_SLSH",
|
||||
"label": "/",
|
||||
}
|
||||
"S(HR_8)": {
|
||||
"key": "HR_LPRN",
|
||||
"label": "(",
|
||||
}
|
||||
"S(HR_9)": {
|
||||
"key": "HR_RPRN",
|
||||
"label": ")",
|
||||
}
|
||||
"S(HR_0)": {
|
||||
"key": "HR_EQL",
|
||||
"label": "=",
|
||||
}
|
||||
"S(HR_QUOT)": {
|
||||
"key": "HR_QUES",
|
||||
"label": "?",
|
||||
}
|
||||
"S(HR_PLUS)": {
|
||||
"key": "HR_ASTR",
|
||||
"label": "*",
|
||||
}
|
||||
"S(HR_LABK)": {
|
||||
"key": "HR_RABK",
|
||||
"label": ">",
|
||||
}
|
||||
"S(HR_COMM)": {
|
||||
"key": "HR_SCLN",
|
||||
"label": ";",
|
||||
}
|
||||
"S(HR_DOT)": {
|
||||
"key": "HR_COLN",
|
||||
"label": ":",
|
||||
}
|
||||
"S(HR_MINS)": {
|
||||
"key": "HR_UNDS",
|
||||
"label": "_",
|
||||
}
|
||||
/* AltGr symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ │ ~ │ ˇ │ ^ │ ˘ │ ° │ ˛ │ ` │ ˙ │ ´ │ ˝ │ │ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ \ │ | │ € │ │ │ │ │ │ │ │ ÷ │ × │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ [ │ ] │ │ │ ł │ Ł │ │ ß │ ¤ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ │ │ │ │ @ │ { │ } │ § │ │ │ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"ALGR(HR_1)": {
|
||||
"key": "HR_TILD",
|
||||
"label": "~",
|
||||
}
|
||||
"ALGR(HR_2)": {
|
||||
"key": "HR_CARN",
|
||||
"label": "ˇ (dead)",
|
||||
}
|
||||
"ALGR(HR_3)": {
|
||||
"key": "HR_CIRC",
|
||||
"label": "^ (dead)",
|
||||
}
|
||||
"ALGR(HR_4)": {
|
||||
"key": "HR_BREV",
|
||||
"label": "˘ (dead)",
|
||||
}
|
||||
"ALGR(HR_5)": {
|
||||
"key": "HR_RNGA",
|
||||
"label": "° (dead)",
|
||||
}
|
||||
"ALGR(HR_6)": {
|
||||
"key": "HR_OGON",
|
||||
"label": "˛ (dead)",
|
||||
}
|
||||
"ALGR(HR_7)": {
|
||||
"key": "HR_GRV",
|
||||
"label": "`",
|
||||
}
|
||||
"ALGR(HR_8)": {
|
||||
"key": "HR_DOTA",
|
||||
"label": "˙ (dead)",
|
||||
}
|
||||
"ALGR(HR_9)": {
|
||||
"key": "HR_ACUT",
|
||||
"label": "´ (dead)",
|
||||
}
|
||||
"ALGR(HR_0)": {
|
||||
"key": "HR_DACU",
|
||||
"label": "˝ (dead)",
|
||||
}
|
||||
"ALGR(HR_Q)": {
|
||||
"key": "HR_BSLS",
|
||||
"label": "\\",
|
||||
}
|
||||
"ALGR(HR_W)": {
|
||||
"key": "HR_PIPE",
|
||||
"label": "|",
|
||||
}
|
||||
"ALGR(HR_E)": {
|
||||
"key": "HR_EURO",
|
||||
"label": "€",
|
||||
}
|
||||
"ALGR(HR_SCAR)": {
|
||||
"key": "HR_DIV",
|
||||
"label": "÷",
|
||||
}
|
||||
"ALGR(HR_DSTR)": {
|
||||
"key": "HR_MUL",
|
||||
"label": "×",
|
||||
}
|
||||
"ALGR(HR_F)": {
|
||||
"key": "HR_LBRC",
|
||||
"label": "[",
|
||||
}
|
||||
"ALGR(HR_G)": {
|
||||
"key": "HR_RBRC",
|
||||
"label": "]",
|
||||
}
|
||||
"ALGR(HR_K)": {
|
||||
"key": "HR_LLST",
|
||||
"label": "ł",
|
||||
}
|
||||
"ALGR(HR_L)": {
|
||||
"key": "HR_CLST",
|
||||
"label": "Ł",
|
||||
}
|
||||
"ALGR(HR_CACU)": {
|
||||
"key": "HR_SS",
|
||||
"label": "ß",
|
||||
}
|
||||
"ALGR(HR_ZCAR)": {
|
||||
"key": "HR_CURR",
|
||||
"label": "¤",
|
||||
}
|
||||
"ALGR(HR_V)": {
|
||||
"key": "HR_AT",
|
||||
"label": "@",
|
||||
}
|
||||
"ALGR(HR_B)": {
|
||||
"key": "HR_LCBR",
|
||||
"label": "{",
|
||||
}
|
||||
"ALGR(HR_N)": {
|
||||
"key": "HR_RCBR",
|
||||
"label": "}",
|
||||
}
|
||||
"ALGR(HR_M)": {
|
||||
"key": "HR_SECT",
|
||||
"label": "§",
|
||||
}
|
||||
}
|
||||
}
|
||||
435
data/constants/keycodes/extras/keycodes_czech_0.0.1.hjson
Normal file
435
data/constants/keycodes/extras/keycodes_czech_0.0.1.hjson
Normal file
@@ -0,0 +1,435 @@
|
||||
{
|
||||
"aliases": {
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ; │ + │ ě │ š │ č │ ř │ ž │ ý │ á │ í │ é │ = │ ´ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ Q │ W │ E │ R │ T │ Z │ U │ I │ O │ P │ ú │ ) │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ů │ § │ ¨ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ \ │ Y │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"KC_GRV": {
|
||||
"key": "CZ_SCLN",
|
||||
"label": ";",
|
||||
}
|
||||
"KC_1": {
|
||||
"key": "CZ_PLUS",
|
||||
"label": "+",
|
||||
}
|
||||
"KC_2": {
|
||||
"key": "CZ_ECAR",
|
||||
"label": "ě",
|
||||
}
|
||||
"KC_3": {
|
||||
"key": "CZ_SCAR",
|
||||
"label": "š",
|
||||
}
|
||||
"KC_4": {
|
||||
"key": "CZ_CCAR",
|
||||
"label": "č",
|
||||
}
|
||||
"KC_5": {
|
||||
"key": "CZ_RCAR",
|
||||
"label": "ř",
|
||||
}
|
||||
"KC_6": {
|
||||
"key": "CZ_ZCAR",
|
||||
"label": "ž",
|
||||
}
|
||||
"KC_7": {
|
||||
"key": "CZ_YACU",
|
||||
"label": "ý",
|
||||
}
|
||||
"KC_8": {
|
||||
"key": "CZ_AACU",
|
||||
"label": "á",
|
||||
}
|
||||
"KC_9": {
|
||||
"key": "CZ_IACU",
|
||||
"label": "í",
|
||||
}
|
||||
"KC_0": {
|
||||
"key": "CZ_EACU",
|
||||
"label": "é",
|
||||
}
|
||||
"KC_MINS": {
|
||||
"key": "CZ_EQL",
|
||||
"label": "=",
|
||||
}
|
||||
"KC_EQL": {
|
||||
"key": "CZ_ACUT",
|
||||
"label": "´ (dead)",
|
||||
}
|
||||
"KC_Q": {
|
||||
"key": "CZ_Q",
|
||||
"label": "Q",
|
||||
}
|
||||
"KC_W": {
|
||||
"key": "CZ_W",
|
||||
"label": "W",
|
||||
}
|
||||
"KC_E": {
|
||||
"key": "CZ_E",
|
||||
"label": "E",
|
||||
}
|
||||
"KC_R": {
|
||||
"key": "CZ_R",
|
||||
"label": "R",
|
||||
}
|
||||
"KC_T": {
|
||||
"key": "CZ_T",
|
||||
"label": "T",
|
||||
}
|
||||
"KC_Y": {
|
||||
"key": "CZ_Z",
|
||||
"label": "Z",
|
||||
}
|
||||
"KC_U": {
|
||||
"key": "CZ_U",
|
||||
"label": "U",
|
||||
}
|
||||
"KC_I": {
|
||||
"key": "CZ_I",
|
||||
"label": "I",
|
||||
}
|
||||
"KC_O": {
|
||||
"key": "CZ_O",
|
||||
"label": "O",
|
||||
}
|
||||
"KC_P": {
|
||||
"key": "CZ_P",
|
||||
"label": "P",
|
||||
}
|
||||
"KC_LBRC": {
|
||||
"key": "CZ_UACU",
|
||||
"label": "ú",
|
||||
}
|
||||
"KC_RBRC": {
|
||||
"key": "CZ_RPRN",
|
||||
"label": ")",
|
||||
}
|
||||
"KC_A": {
|
||||
"key": "CZ_A",
|
||||
"label": "A",
|
||||
}
|
||||
"KC_S": {
|
||||
"key": "CZ_S",
|
||||
"label": "S",
|
||||
}
|
||||
"KC_D": {
|
||||
"key": "CZ_D",
|
||||
"label": "D",
|
||||
}
|
||||
"KC_F": {
|
||||
"key": "CZ_F",
|
||||
"label": "F",
|
||||
}
|
||||
"KC_G": {
|
||||
"key": "CZ_G",
|
||||
"label": "G",
|
||||
}
|
||||
"KC_H": {
|
||||
"key": "CZ_H",
|
||||
"label": "H",
|
||||
}
|
||||
"KC_J": {
|
||||
"key": "CZ_J",
|
||||
"label": "J",
|
||||
}
|
||||
"KC_K": {
|
||||
"key": "CZ_K",
|
||||
"label": "K",
|
||||
}
|
||||
"KC_L": {
|
||||
"key": "CZ_L",
|
||||
"label": "L",
|
||||
}
|
||||
"KC_SCLN": {
|
||||
"key": "CZ_URNG",
|
||||
"label": "ů",
|
||||
}
|
||||
"KC_QUOT": {
|
||||
"key": "CZ_SECT",
|
||||
"label": "§",
|
||||
}
|
||||
"KC_NUHS": {
|
||||
"key": "CZ_DIAE",
|
||||
"label": "¨ (dead)",
|
||||
}
|
||||
"KC_NUBS": {
|
||||
"key": "CZ_BSLS",
|
||||
"label": "\\",
|
||||
}
|
||||
"KC_Z": {
|
||||
"key": "CZ_Y",
|
||||
"label": "Y",
|
||||
}
|
||||
"KC_X": {
|
||||
"key": "CZ_X",
|
||||
"label": "X",
|
||||
}
|
||||
"KC_C": {
|
||||
"key": "CZ_C",
|
||||
"label": "C",
|
||||
}
|
||||
"KC_V": {
|
||||
"key": "CZ_V",
|
||||
"label": "V",
|
||||
}
|
||||
"KC_B": {
|
||||
"key": "CZ_B",
|
||||
"label": "B",
|
||||
}
|
||||
"KC_N": {
|
||||
"key": "CZ_N",
|
||||
"label": "N",
|
||||
}
|
||||
"KC_M": {
|
||||
"key": "CZ_M",
|
||||
"label": "M",
|
||||
}
|
||||
"KC_COMM": {
|
||||
"key": "CZ_COMM",
|
||||
"label": ",",
|
||||
}
|
||||
"KC_DOT": {
|
||||
"key": "CZ_DOT",
|
||||
"label": ".",
|
||||
}
|
||||
"KC_SLSH": {
|
||||
"key": "CZ_MINS",
|
||||
"label": "-",
|
||||
}
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ° │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ % │ ˇ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ / │ ( │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ " │ ! │ ' │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ | │ │ │ │ │ │ │ │ ? │ : │ _ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"S(CZ_SCLN)": {
|
||||
"key": "CZ_RNGA",
|
||||
"label": "° (dead)",
|
||||
}
|
||||
"S(CZ_PLUS)": {
|
||||
"key": "CZ_1",
|
||||
"label": "1",
|
||||
}
|
||||
"S(CZ_ECAR)": {
|
||||
"key": "CZ_2",
|
||||
"label": "2",
|
||||
}
|
||||
"S(CZ_SCAR)": {
|
||||
"key": "CZ_3",
|
||||
"label": "3",
|
||||
}
|
||||
"S(CZ_CCAR)": {
|
||||
"key": "CZ_4",
|
||||
"label": "4",
|
||||
}
|
||||
"S(CZ_RCAR)": {
|
||||
"key": "CZ_5",
|
||||
"label": "5",
|
||||
}
|
||||
"S(CZ_ZCAR)": {
|
||||
"key": "CZ_6",
|
||||
"label": "6",
|
||||
}
|
||||
"S(CZ_YACU)": {
|
||||
"key": "CZ_7",
|
||||
"label": "7",
|
||||
}
|
||||
"S(CZ_AACU)": {
|
||||
"key": "CZ_8",
|
||||
"label": "8",
|
||||
}
|
||||
"S(CZ_IACU)": {
|
||||
"key": "CZ_9",
|
||||
"label": "9",
|
||||
}
|
||||
"S(CZ_EACU)": {
|
||||
"key": "CZ_0",
|
||||
"label": "0",
|
||||
}
|
||||
"S(CZ_EQL)": {
|
||||
"key": "CZ_PERC",
|
||||
"label": "%",
|
||||
}
|
||||
"S(CZ_ACUT)": {
|
||||
"key": "CZ_CARN",
|
||||
"label": "ˇ (dead)",
|
||||
}
|
||||
"S(CZ_UACU)": {
|
||||
"key": "CZ_SLSH",
|
||||
"label": "/",
|
||||
}
|
||||
"S(CZ_RPRN)": {
|
||||
"key": "CZ_LPRN",
|
||||
"label": "(",
|
||||
}
|
||||
"S(CZ_URNG)": {
|
||||
"key": "CZ_DQUO",
|
||||
"label": "\"",
|
||||
}
|
||||
"S(CZ_SECT)": {
|
||||
"key": "CZ_EXLM",
|
||||
"label": "!",
|
||||
}
|
||||
"S(CZ_DIAE)": {
|
||||
"key": "CZ_QUOT",
|
||||
"label": "'",
|
||||
}
|
||||
"S(CZ_BSLS)": {
|
||||
"key": "CZ_PIPE",
|
||||
"label": "|",
|
||||
}
|
||||
"S(CZ_COMM)": {
|
||||
"key": "CZ_QUES",
|
||||
"label": "?",
|
||||
}
|
||||
"S(CZ_DOT)": {
|
||||
"key": "CZ_COLN",
|
||||
"label": ":",
|
||||
}
|
||||
"S(CZ_MINS)": {
|
||||
"key": "CZ_UNDS",
|
||||
"label": "_",
|
||||
}
|
||||
/* AltGr symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ │ ~ │ │ ^ │ ˘ │ │ ˛ │ ` │ ˙ │ │ ˝ │ │ ¸ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ € │ │ │ │ │ │ │ │ ÷ │ × │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ đ │ Đ │ [ │ ] │ │ │ ł │ Ł │ $ │ ß │ ¤ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ │ │ # │ & │ @ │ { │ } │ │ < │ > │ * │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"ALGR(CZ_PLUS)": {
|
||||
"key": "CZ_TILD",
|
||||
"label": "~",
|
||||
}
|
||||
"ALGR(CZ_SCAR)": {
|
||||
"key": "CZ_CIRC",
|
||||
"label": "^ (dead)",
|
||||
}
|
||||
"ALGR(CZ_CCAR)": {
|
||||
"key": "CZ_BREV",
|
||||
"label": "˘ (dead)",
|
||||
}
|
||||
"ALGR(CZ_ZCAR)": {
|
||||
"key": "CZ_OGON",
|
||||
"label": "˛ (dead)",
|
||||
}
|
||||
"ALGR(CZ_YACU)": {
|
||||
"key": "CZ_GRV",
|
||||
"label": "` (dead)",
|
||||
}
|
||||
"ALGR(CZ_AACU)": {
|
||||
"key": "CZ_DOTA",
|
||||
"label": "˙ (dead)",
|
||||
}
|
||||
"ALGR(CZ_EACU)": {
|
||||
"key": "CZ_DACU",
|
||||
"label": "˝ (dead)",
|
||||
}
|
||||
"ALGR(CZ_ACUT)": {
|
||||
"key": "CZ_CEDL",
|
||||
"label": "¸ (dead)",
|
||||
}
|
||||
"ALGR(CZ_E)": {
|
||||
"key": "CZ_EURO",
|
||||
"label": "€",
|
||||
}
|
||||
"ALGR(CZ_UACU)": {
|
||||
"key": "CZ_DIV",
|
||||
"label": "÷",
|
||||
}
|
||||
"ALGR(CZ_RPRN)": {
|
||||
"key": "CZ_MUL",
|
||||
"label": "×",
|
||||
}
|
||||
"ALGR(CZ_S)": {
|
||||
"key": "CZ_LDST",
|
||||
"label": "đ",
|
||||
}
|
||||
"ALGR(CZ_D)": {
|
||||
"key": "CZ_CDST",
|
||||
"label": "Đ",
|
||||
}
|
||||
"ALGR(CZ_F)": {
|
||||
"key": "CZ_LBRC",
|
||||
"label": "[",
|
||||
}
|
||||
"ALGR(CZ_G)": {
|
||||
"key": "CZ_RBRC",
|
||||
"label": "]",
|
||||
}
|
||||
"ALGR(CZ_K)": {
|
||||
"key": "CZ_LLST",
|
||||
"label": "ł",
|
||||
}
|
||||
"ALGR(CZ_L)": {
|
||||
"key": "CZ_CLST",
|
||||
"label": "Ł",
|
||||
}
|
||||
"ALGR(CZ_URNG)": {
|
||||
"key": "CZ_DLR",
|
||||
"label": "$",
|
||||
}
|
||||
"ALGR(CZ_SECT)": {
|
||||
"key": "CZ_SS",
|
||||
"label": "ß",
|
||||
}
|
||||
"ALGR(CZ_DIAE)": {
|
||||
"key": "CZ_CURR",
|
||||
"label": "¤",
|
||||
}
|
||||
"ALGR(CZ_X)": {
|
||||
"key": "CZ_HASH",
|
||||
"label": "#",
|
||||
}
|
||||
"ALGR(CZ_C)": {
|
||||
"key": "CZ_AMPR",
|
||||
"label": "&",
|
||||
}
|
||||
"ALGR(CZ_V)": {
|
||||
"key": "CZ_AT",
|
||||
"label": "@",
|
||||
}
|
||||
"ALGR(CZ_B)": {
|
||||
"key": "CZ_LCBR",
|
||||
"label": "{",
|
||||
}
|
||||
"ALGR(CZ_N)": {
|
||||
"key": "CZ_RCBR",
|
||||
"label": "}",
|
||||
}
|
||||
"ALGR(CZ_COMM)": {
|
||||
"key": "CZ_LABK",
|
||||
"label": "<",
|
||||
}
|
||||
"ALGR(CZ_DOT)": {
|
||||
"key": "CZ_RABK",
|
||||
"label": ">",
|
||||
}
|
||||
"ALGR(CZ_MINS)": {
|
||||
"key": "CZ_ASTR",
|
||||
"label": "*",
|
||||
}
|
||||
}
|
||||
}
|
||||
359
data/constants/keycodes/extras/keycodes_danish_0.0.1.hjson
Normal file
359
data/constants/keycodes/extras/keycodes_danish_0.0.1.hjson
Normal file
@@ -0,0 +1,359 @@
|
||||
{
|
||||
"aliases": {
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ½ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ ´ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ Å │ ¨ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Æ │ Ø │ ' │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ < │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"KC_GRV": {
|
||||
"key": "DK_HALF",
|
||||
"label": "½",
|
||||
}
|
||||
"KC_1": {
|
||||
"key": "DK_1",
|
||||
"label": "1",
|
||||
}
|
||||
"KC_2": {
|
||||
"key": "DK_2",
|
||||
"label": "2",
|
||||
}
|
||||
"KC_3": {
|
||||
"key": "DK_3",
|
||||
"label": "3",
|
||||
}
|
||||
"KC_4": {
|
||||
"key": "DK_4",
|
||||
"label": "4",
|
||||
}
|
||||
"KC_5": {
|
||||
"key": "DK_5",
|
||||
"label": "5",
|
||||
}
|
||||
"KC_6": {
|
||||
"key": "DK_6",
|
||||
"label": "6",
|
||||
}
|
||||
"KC_7": {
|
||||
"key": "DK_7",
|
||||
"label": "7",
|
||||
}
|
||||
"KC_8": {
|
||||
"key": "DK_8",
|
||||
"label": "8",
|
||||
}
|
||||
"KC_9": {
|
||||
"key": "DK_9",
|
||||
"label": "9",
|
||||
}
|
||||
"KC_0": {
|
||||
"key": "DK_0",
|
||||
"label": "0",
|
||||
}
|
||||
"KC_MINS": {
|
||||
"key": "DK_PLUS",
|
||||
"label": "+",
|
||||
}
|
||||
"KC_EQL": {
|
||||
"key": "DK_ACUT",
|
||||
"label": "´ (dead)",
|
||||
}
|
||||
"KC_Q": {
|
||||
"key": "DK_Q",
|
||||
"label": "Q",
|
||||
}
|
||||
"KC_W": {
|
||||
"key": "DK_W",
|
||||
"label": "W",
|
||||
}
|
||||
"KC_E": {
|
||||
"key": "DK_E",
|
||||
"label": "E",
|
||||
}
|
||||
"KC_R": {
|
||||
"key": "DK_R",
|
||||
"label": "R",
|
||||
}
|
||||
"KC_T": {
|
||||
"key": "DK_T",
|
||||
"label": "T",
|
||||
}
|
||||
"KC_Y": {
|
||||
"key": "DK_Y",
|
||||
"label": "Y",
|
||||
}
|
||||
"KC_U": {
|
||||
"key": "DK_U",
|
||||
"label": "U",
|
||||
}
|
||||
"KC_I": {
|
||||
"key": "DK_I",
|
||||
"label": "I",
|
||||
}
|
||||
"KC_O": {
|
||||
"key": "DK_O",
|
||||
"label": "O",
|
||||
}
|
||||
"KC_P": {
|
||||
"key": "DK_P",
|
||||
"label": "P",
|
||||
}
|
||||
"KC_LBRC": {
|
||||
"key": "DK_ARNG",
|
||||
"label": "Å",
|
||||
}
|
||||
"KC_RBRC": {
|
||||
"key": "DK_DIAE",
|
||||
"label": "¨ (dead)",
|
||||
}
|
||||
"KC_A": {
|
||||
"key": "DK_A",
|
||||
"label": "A",
|
||||
}
|
||||
"KC_S": {
|
||||
"key": "DK_S",
|
||||
"label": "S",
|
||||
}
|
||||
"KC_D": {
|
||||
"key": "DK_D",
|
||||
"label": "D",
|
||||
}
|
||||
"KC_F": {
|
||||
"key": "DK_F",
|
||||
"label": "F",
|
||||
}
|
||||
"KC_G": {
|
||||
"key": "DK_G",
|
||||
"label": "G",
|
||||
}
|
||||
"KC_H": {
|
||||
"key": "DK_H",
|
||||
"label": "H",
|
||||
}
|
||||
"KC_J": {
|
||||
"key": "DK_J",
|
||||
"label": "J",
|
||||
}
|
||||
"KC_K": {
|
||||
"key": "DK_K",
|
||||
"label": "K",
|
||||
}
|
||||
"KC_L": {
|
||||
"key": "DK_L",
|
||||
"label": "L",
|
||||
}
|
||||
"KC_SCLN": {
|
||||
"key": "DK_AE",
|
||||
"label": "Æ",
|
||||
}
|
||||
"KC_QUOT": {
|
||||
"key": "DK_OSTR",
|
||||
"label": "Ø",
|
||||
}
|
||||
"KC_NUHS": {
|
||||
"key": "DK_QUOT",
|
||||
"label": "'",
|
||||
}
|
||||
"KC_NUBS": {
|
||||
"key": "DK_LABK",
|
||||
"label": "<",
|
||||
}
|
||||
"KC_Z": {
|
||||
"key": "DK_Z",
|
||||
"label": "Z",
|
||||
}
|
||||
"KC_X": {
|
||||
"key": "DK_X",
|
||||
"label": "X",
|
||||
}
|
||||
"KC_C": {
|
||||
"key": "DK_C",
|
||||
"label": "C",
|
||||
}
|
||||
"KC_V": {
|
||||
"key": "DK_V",
|
||||
"label": "V",
|
||||
}
|
||||
"KC_B": {
|
||||
"key": "DK_B",
|
||||
"label": "B",
|
||||
}
|
||||
"KC_N": {
|
||||
"key": "DK_N",
|
||||
"label": "N",
|
||||
}
|
||||
"KC_M": {
|
||||
"key": "DK_M",
|
||||
"label": "M",
|
||||
}
|
||||
"KC_COMM": {
|
||||
"key": "DK_COMM",
|
||||
"label": ",",
|
||||
}
|
||||
"KC_DOT": {
|
||||
"key": "DK_DOT",
|
||||
"label": ".",
|
||||
}
|
||||
"KC_SLSH": {
|
||||
"key": "DK_MINS",
|
||||
"label": "-",
|
||||
}
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ § │ ! │ " │ # │ ¤ │ % │ & │ / │ ( │ ) │ = │ ? │ ` │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ ^ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ * │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ > │ │ │ │ │ │ │ │ ; │ : │ _ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"S(DK_HALF)": {
|
||||
"key": "DK_SECT",
|
||||
"label": "§",
|
||||
}
|
||||
"S(DK_1)": {
|
||||
"key": "DK_EXLM",
|
||||
"label": "!",
|
||||
}
|
||||
"S(DK_2)": {
|
||||
"key": "DK_DQUO",
|
||||
"label": "\"",
|
||||
}
|
||||
"S(DK_3)": {
|
||||
"key": "DK_HASH",
|
||||
"label": "#",
|
||||
}
|
||||
"S(DK_4)": {
|
||||
"key": "DK_CURR",
|
||||
"label": "¤",
|
||||
}
|
||||
"S(DK_5)": {
|
||||
"key": "DK_PERC",
|
||||
"label": "%",
|
||||
}
|
||||
"S(DK_6)": {
|
||||
"key": "DK_AMPR",
|
||||
"label": "&",
|
||||
}
|
||||
"S(DK_7)": {
|
||||
"key": "DK_SLSH",
|
||||
"label": "/",
|
||||
}
|
||||
"S(DK_8)": {
|
||||
"key": "DK_LPRN",
|
||||
"label": "(",
|
||||
}
|
||||
"S(DK_9)": {
|
||||
"key": "DK_RPRN",
|
||||
"label": ")",
|
||||
}
|
||||
"S(DK_0)": {
|
||||
"key": "DK_EQL",
|
||||
"label": "=",
|
||||
}
|
||||
"S(DK_PLUS)": {
|
||||
"key": "DK_QUES",
|
||||
"label": "?",
|
||||
}
|
||||
"S(DK_ACUT)": {
|
||||
"key": "DK_GRV",
|
||||
"label": "` (dead)",
|
||||
}
|
||||
"S(DK_DIAE)": {
|
||||
"key": "DK_CIRC",
|
||||
"label": "^ (dead)",
|
||||
}
|
||||
"S(DK_QUOT)": {
|
||||
"key": "DK_ASTR",
|
||||
"label": "*",
|
||||
}
|
||||
"S(DK_LABK)": {
|
||||
"key": "DK_RABK",
|
||||
"label": ">",
|
||||
}
|
||||
"S(DK_COMM)": {
|
||||
"key": "DK_SCLN",
|
||||
"label": ";",
|
||||
}
|
||||
"S(DK_DOT)": {
|
||||
"key": "DK_COLN",
|
||||
"label": ":",
|
||||
}
|
||||
"S(DK_MINS)": {
|
||||
"key": "DK_UNDS",
|
||||
"label": "_",
|
||||
}
|
||||
/* AltGr symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ │ │ @ │ £ │ $ │ € │ │ { │ [ │ ] │ } │ │ | │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ ~ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ \ │ │ │ │ │ │ │ µ │ │ │ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"ALGR(DK_2)": {
|
||||
"key": "DK_AT",
|
||||
"label": "@",
|
||||
}
|
||||
"ALGR(DK_3)": {
|
||||
"key": "DK_PND",
|
||||
"label": "£",
|
||||
}
|
||||
"ALGR(DK_4)": {
|
||||
"key": "DK_DLR",
|
||||
"label": "$",
|
||||
}
|
||||
"ALGR(DK_5)": {
|
||||
"key": "DK_EURO",
|
||||
"label": "€",
|
||||
}
|
||||
"ALGR(DK_7)": {
|
||||
"key": "DK_LCBR",
|
||||
"label": "{",
|
||||
}
|
||||
"ALGR(DK_8)": {
|
||||
"key": "DK_LBRC",
|
||||
"label": "[",
|
||||
}
|
||||
"ALGR(DK_9)": {
|
||||
"key": "DK_RBRC",
|
||||
"label": "]",
|
||||
}
|
||||
"ALGR(DK_0)": {
|
||||
"key": "DK_RCBR",
|
||||
"label": "}",
|
||||
}
|
||||
"ALGR(DK_ACUT)": {
|
||||
"key": "DK_PIPE",
|
||||
"label": "|",
|
||||
}
|
||||
"ALGR(DK_DIAE)": {
|
||||
"key": "DK_TILD",
|
||||
"label": "~ (dead)",
|
||||
}
|
||||
"ALGR(DK_LABK)": {
|
||||
"key": "DK_BSLS",
|
||||
"label": "\\",
|
||||
}
|
||||
"ALGR(DK_M)": {
|
||||
"key": "DK_MICR",
|
||||
"label": "µ",
|
||||
}
|
||||
}
|
||||
}
|
||||
302
data/constants/keycodes/extras/keycodes_dvorak_0.0.1.hjson
Normal file
302
data/constants/keycodes/extras/keycodes_dvorak_0.0.1.hjson
Normal file
@@ -0,0 +1,302 @@
|
||||
{
|
||||
"aliases": {
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ [ │ ] │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ ' │ , │ . │ P │ Y │ F │ G │ C │ R │ L │ / │ = │ \ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
|
||||
* │ │ A │ O │ E │ U │ I │ D │ H │ T │ N │ S │ - │ │
|
||||
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
|
||||
* │ │ ; │ Q │ J │ K │ X │ B │ M │ W │ V │ Z │ │
|
||||
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"KC_GRV": {
|
||||
"key": "DV_GRV",
|
||||
"label": "`",
|
||||
}
|
||||
"KC_1": {
|
||||
"key": "DV_1",
|
||||
"label": "1",
|
||||
}
|
||||
"KC_2": {
|
||||
"key": "DV_2",
|
||||
"label": "2",
|
||||
}
|
||||
"KC_3": {
|
||||
"key": "DV_3",
|
||||
"label": "3",
|
||||
}
|
||||
"KC_4": {
|
||||
"key": "DV_4",
|
||||
"label": "4",
|
||||
}
|
||||
"KC_5": {
|
||||
"key": "DV_5",
|
||||
"label": "5",
|
||||
}
|
||||
"KC_6": {
|
||||
"key": "DV_6",
|
||||
"label": "6",
|
||||
}
|
||||
"KC_7": {
|
||||
"key": "DV_7",
|
||||
"label": "7",
|
||||
}
|
||||
"KC_8": {
|
||||
"key": "DV_8",
|
||||
"label": "8",
|
||||
}
|
||||
"KC_9": {
|
||||
"key": "DV_9",
|
||||
"label": "9",
|
||||
}
|
||||
"KC_0": {
|
||||
"key": "DV_0",
|
||||
"label": "0",
|
||||
}
|
||||
"KC_MINS": {
|
||||
"key": "DV_LBRC",
|
||||
"label": "[",
|
||||
}
|
||||
"KC_EQL": {
|
||||
"key": "DV_RBRC",
|
||||
"label": "]",
|
||||
}
|
||||
"KC_Q": {
|
||||
"key": "DV_QUOT",
|
||||
"label": "'",
|
||||
}
|
||||
"KC_W": {
|
||||
"key": "DV_COMM",
|
||||
"label": ",",
|
||||
}
|
||||
"KC_E": {
|
||||
"key": "DV_DOT",
|
||||
"label": ".",
|
||||
}
|
||||
"KC_R": {
|
||||
"key": "DV_P",
|
||||
"label": "P",
|
||||
}
|
||||
"KC_T": {
|
||||
"key": "DV_Y",
|
||||
"label": "Y",
|
||||
}
|
||||
"KC_Y": {
|
||||
"key": "DV_F",
|
||||
"label": "F",
|
||||
}
|
||||
"KC_U": {
|
||||
"key": "DV_G",
|
||||
"label": "G",
|
||||
}
|
||||
"KC_I": {
|
||||
"key": "DV_C",
|
||||
"label": "C",
|
||||
}
|
||||
"KC_O": {
|
||||
"key": "DV_R",
|
||||
"label": "R",
|
||||
}
|
||||
"KC_P": {
|
||||
"key": "DV_L",
|
||||
"label": "L",
|
||||
}
|
||||
"KC_LBRC": {
|
||||
"key": "DV_SLSH",
|
||||
"label": "/",
|
||||
}
|
||||
"KC_RBRC": {
|
||||
"key": "DV_EQL",
|
||||
"label": "=",
|
||||
}
|
||||
"KC_BSLS": {
|
||||
"key": "DV_BSLS",
|
||||
"label": "\\",
|
||||
}
|
||||
"KC_A": {
|
||||
"key": "DV_A",
|
||||
"label": "A",
|
||||
}
|
||||
"KC_S": {
|
||||
"key": "DV_O",
|
||||
"label": "O",
|
||||
}
|
||||
"KC_D": {
|
||||
"key": "DV_E",
|
||||
"label": "E",
|
||||
}
|
||||
"KC_F": {
|
||||
"key": "DV_U",
|
||||
"label": "U",
|
||||
}
|
||||
"KC_G": {
|
||||
"key": "DV_I",
|
||||
"label": "I",
|
||||
}
|
||||
"KC_H": {
|
||||
"key": "DV_D",
|
||||
"label": "D",
|
||||
}
|
||||
"KC_J": {
|
||||
"key": "DV_H",
|
||||
"label": "H",
|
||||
}
|
||||
"KC_K": {
|
||||
"key": "DV_T",
|
||||
"label": "T",
|
||||
}
|
||||
"KC_L": {
|
||||
"key": "DV_N",
|
||||
"label": "N",
|
||||
}
|
||||
"KC_SCLN": {
|
||||
"key": "DV_S",
|
||||
"label": "S",
|
||||
}
|
||||
"KC_QUOT": {
|
||||
"key": "DV_MINS",
|
||||
"label": "-",
|
||||
}
|
||||
"KC_Z": {
|
||||
"key": "DV_SCLN",
|
||||
"label": ";",
|
||||
}
|
||||
"KC_X": {
|
||||
"key": "DV_Q",
|
||||
"label": "Q",
|
||||
}
|
||||
"KC_C": {
|
||||
"key": "DV_J",
|
||||
"label": "J",
|
||||
}
|
||||
"KC_V": {
|
||||
"key": "DV_K",
|
||||
"label": "K",
|
||||
}
|
||||
"KC_B": {
|
||||
"key": "DV_X",
|
||||
"label": "X",
|
||||
}
|
||||
"KC_N": {
|
||||
"key": "DV_B",
|
||||
"label": "B",
|
||||
}
|
||||
"KC_M": {
|
||||
"key": "DV_M",
|
||||
"label": "M",
|
||||
}
|
||||
"KC_COMM": {
|
||||
"key": "DV_W",
|
||||
"label": "W",
|
||||
}
|
||||
"KC_DOT": {
|
||||
"key": "DV_V",
|
||||
"label": "V",
|
||||
}
|
||||
"KC_SLSH": {
|
||||
"key": "DV_Z",
|
||||
"label": "Z",
|
||||
}
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ { │ } │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ " │ < │ > │ │ │ │ │ │ │ │ ? │ + │ | │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ _ │ │
|
||||
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
|
||||
* │ │ : │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"S(DV_GRV)": {
|
||||
"key": "DV_TILD",
|
||||
"label": "~",
|
||||
}
|
||||
"S(DV_1)": {
|
||||
"key": "DV_EXLM",
|
||||
"label": "!",
|
||||
}
|
||||
"S(DV_2)": {
|
||||
"key": "DV_AT",
|
||||
"label": "@",
|
||||
}
|
||||
"S(DV_3)": {
|
||||
"key": "DV_HASH",
|
||||
"label": "#",
|
||||
}
|
||||
"S(DV_4)": {
|
||||
"key": "DV_DLR",
|
||||
"label": "$",
|
||||
}
|
||||
"S(DV_5)": {
|
||||
"key": "DV_PERC",
|
||||
"label": "%",
|
||||
}
|
||||
"S(DV_6)": {
|
||||
"key": "DV_CIRC",
|
||||
"label": "^",
|
||||
}
|
||||
"S(DV_7)": {
|
||||
"key": "DV_AMPR",
|
||||
"label": "&",
|
||||
}
|
||||
"S(DV_8)": {
|
||||
"key": "DV_ASTR",
|
||||
"label": "*",
|
||||
}
|
||||
"S(DV_9)": {
|
||||
"key": "DV_LPRN",
|
||||
"label": "(",
|
||||
}
|
||||
"S(DV_0)": {
|
||||
"key": "DV_RPRN",
|
||||
"label": ")",
|
||||
}
|
||||
"S(DV_LBRC)": {
|
||||
"key": "DV_LCBR",
|
||||
"label": "{",
|
||||
}
|
||||
"S(DV_RBRC)": {
|
||||
"key": "DV_RCBR",
|
||||
"label": "}",
|
||||
}
|
||||
"S(DV_QUOT)": {
|
||||
"key": "DV_DQUO",
|
||||
"label": "\"",
|
||||
}
|
||||
"S(DV_COMM)": {
|
||||
"key": "DV_LABK",
|
||||
"label": "<",
|
||||
}
|
||||
"S(DV_DOT)": {
|
||||
"key": "DV_RABK",
|
||||
"label": ">",
|
||||
}
|
||||
"S(DV_SLSH)": {
|
||||
"key": "DV_QUES",
|
||||
"label": "?",
|
||||
}
|
||||
"S(DV_EQL)": {
|
||||
"key": "DV_PLUS",
|
||||
"label": "+",
|
||||
}
|
||||
"S(DV_BSLS)": {
|
||||
"key": "DV_PIPE",
|
||||
"label": "|",
|
||||
}
|
||||
"S(DV_MINS)": {
|
||||
"key": "DV_UNDS",
|
||||
"label": "_",
|
||||
}
|
||||
"S(DV_SCLN)": {
|
||||
"key": "DV_COLN",
|
||||
"label": ":",
|
||||
}
|
||||
}
|
||||
}
|
||||
317
data/constants/keycodes/extras/keycodes_dvorak_fr_0.0.1.hjson
Normal file
317
data/constants/keycodes/extras/keycodes_dvorak_fr_0.0.1.hjson
Normal file
@@ -0,0 +1,317 @@
|
||||
{
|
||||
"aliases": {
|
||||
/* Dvorak for the French language
|
||||
* Version: 2
|
||||
*
|
||||
* The layout is designed by Francis Leboutte <dvorak-fr@algo.be>
|
||||
*
|
||||
* Source: https://algo.be/ergo/dvorak-fr.html
|
||||
*/
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ « │ » │ / │ - │ è │ \ │ ^ │ ( │ ` │ ) │ _ │ [ │ ] │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ : │ ' │ é │ G │ . │ H │ V │ C │ M │ K │ Z │ ¨ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ O │ A │ U │ E │ B │ F │ S │ T │ N │ D │ W │ ~ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ à │ ; │ Q │ , │ I │ Y │ X │ R │ L │ P │ J │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"KC_GRV": {
|
||||
"key": "DV_LDAQ",
|
||||
"label": "«",
|
||||
}
|
||||
"KC_1": {
|
||||
"key": "DV_RDAQ",
|
||||
"label": "»",
|
||||
}
|
||||
"KC_2": {
|
||||
"key": "DV_SLSH",
|
||||
"label": "/",
|
||||
}
|
||||
"KC_3": {
|
||||
"key": "DV_MINS",
|
||||
"label": "-",
|
||||
}
|
||||
"KC_4": {
|
||||
"key": "DV_EGRV",
|
||||
"label": "è",
|
||||
}
|
||||
"KC_5": {
|
||||
"key": "DV_BSLS",
|
||||
"label": "\\",
|
||||
}
|
||||
"KC_6": {
|
||||
"key": "DV_CIRC",
|
||||
"label": "^ (dead)",
|
||||
}
|
||||
"KC_7": {
|
||||
"key": "DV_LPRN",
|
||||
"label": "(",
|
||||
}
|
||||
"KC_8": {
|
||||
"key": "DV_GRV",
|
||||
"label": "` (dead)",
|
||||
}
|
||||
"KC_9": {
|
||||
"key": "DV_RPRN",
|
||||
"label": ")",
|
||||
}
|
||||
"KC_0": {
|
||||
"key": "DV_UNDS",
|
||||
"label": "_",
|
||||
}
|
||||
"KC_MINS": {
|
||||
"key": "DV_LBRC",
|
||||
"label": "[",
|
||||
}
|
||||
"KC_EQL": {
|
||||
"key": "DV_RBRC",
|
||||
"label": "]",
|
||||
}
|
||||
"KC_Q": {
|
||||
"key": "DV_COLN",
|
||||
"label": ":",
|
||||
}
|
||||
"KC_W": {
|
||||
"key": "DV_QUOT",
|
||||
"label": "'",
|
||||
}
|
||||
"KC_E": {
|
||||
"key": "DV_EACU",
|
||||
"label": "é",
|
||||
}
|
||||
"KC_R": {
|
||||
"key": "DV_G",
|
||||
"label": "G",
|
||||
}
|
||||
"KC_T": {
|
||||
"key": "DV_DOT",
|
||||
"label": ".",
|
||||
}
|
||||
"KC_Y": {
|
||||
"key": "DV_H",
|
||||
"label": "H",
|
||||
}
|
||||
"KC_U": {
|
||||
"key": "DV_V",
|
||||
"label": "V",
|
||||
}
|
||||
"KC_I": {
|
||||
"key": "DV_C",
|
||||
"label": "C",
|
||||
}
|
||||
"KC_O": {
|
||||
"key": "DV_M",
|
||||
"label": "M",
|
||||
}
|
||||
"KC_P": {
|
||||
"key": "DV_K",
|
||||
"label": "K",
|
||||
}
|
||||
"KC_LBRC": {
|
||||
"key": "DV_Z",
|
||||
"label": "Z",
|
||||
}
|
||||
"KC_RBRC": {
|
||||
"key": "DV_DIAE",
|
||||
"label": "¨ (dead)",
|
||||
}
|
||||
"KC_A": {
|
||||
"key": "DV_O",
|
||||
"label": "O",
|
||||
}
|
||||
"KC_S": {
|
||||
"key": "DV_A",
|
||||
"label": "A",
|
||||
}
|
||||
"KC_D": {
|
||||
"key": "DV_U",
|
||||
"label": "U",
|
||||
}
|
||||
"KC_F": {
|
||||
"key": "DV_E",
|
||||
"label": "E",
|
||||
}
|
||||
"KC_G": {
|
||||
"key": "DV_B",
|
||||
"label": "B",
|
||||
}
|
||||
"KC_H": {
|
||||
"key": "DV_F",
|
||||
"label": "F",
|
||||
}
|
||||
"KC_J": {
|
||||
"key": "DV_S",
|
||||
"label": "S",
|
||||
}
|
||||
"KC_K": {
|
||||
"key": "DV_T",
|
||||
"label": "T",
|
||||
}
|
||||
"KC_L": {
|
||||
"key": "DV_N",
|
||||
"label": "N",
|
||||
}
|
||||
"KC_SCLN": {
|
||||
"key": "DV_D",
|
||||
"label": "D",
|
||||
}
|
||||
"KC_QUOT": {
|
||||
"key": "DV_W",
|
||||
"label": "W",
|
||||
}
|
||||
"KC_NUHS": {
|
||||
"key": "DV_TILD",
|
||||
"label": "~ (dead)",
|
||||
}
|
||||
"KC_NUBS": {
|
||||
"key": "DV_AGRV",
|
||||
"label": "à",
|
||||
}
|
||||
"KC_Z": {
|
||||
"key": "DV_SCLN",
|
||||
"label": ";",
|
||||
}
|
||||
"KC_X": {
|
||||
"key": "DV_Q",
|
||||
"label": "Q",
|
||||
}
|
||||
"KC_C": {
|
||||
"key": "DV_COMM",
|
||||
"label": ",",
|
||||
}
|
||||
"KC_V": {
|
||||
"key": "DV_I",
|
||||
"label": "I",
|
||||
}
|
||||
"KC_B": {
|
||||
"key": "DV_Y",
|
||||
"label": "Y",
|
||||
}
|
||||
"KC_N": {
|
||||
"key": "DV_X",
|
||||
"label": "X",
|
||||
}
|
||||
"KC_M": {
|
||||
"key": "DV_R",
|
||||
"label": "R",
|
||||
}
|
||||
"KC_COMM": {
|
||||
"key": "DV_L",
|
||||
"label": "L",
|
||||
}
|
||||
"KC_DOT": {
|
||||
"key": "DV_P",
|
||||
"label": "P",
|
||||
}
|
||||
"KC_SLSH": {
|
||||
"key": "DV_J",
|
||||
"label": "J",
|
||||
}
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ * │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 0 │ 0 │ + │ % │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ ? │ < │ > │ │ ! │ │ │ │ │ │ │ = │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ # │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ ç │ | │ │ @ │ │ │ │ │ │ │ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"S(DV_LDAQ)": {
|
||||
"key": "DV_ASTR",
|
||||
"label": "*",
|
||||
}
|
||||
"S(DV_RDAQ)": {
|
||||
"key": "DV_1",
|
||||
"label": "1",
|
||||
}
|
||||
"S(DV_SLSH)": {
|
||||
"key": "DV_2",
|
||||
"label": "2",
|
||||
}
|
||||
"S(DV_MINS)": {
|
||||
"key": "DV_3",
|
||||
"label": "3",
|
||||
}
|
||||
"S(DV_EGRV)": {
|
||||
"key": "DV_4",
|
||||
"label": "4",
|
||||
}
|
||||
"S(DV_BSLS)": {
|
||||
"key": "DV_5",
|
||||
"label": "5",
|
||||
}
|
||||
"S(DV_CIRC)": {
|
||||
"key": "DV_6",
|
||||
"label": "6",
|
||||
}
|
||||
"S(DV_LPRN)": {
|
||||
"key": "DV_7",
|
||||
"label": "7",
|
||||
}
|
||||
"S(DV_GRV)": {
|
||||
"key": "DV_8",
|
||||
"label": "8",
|
||||
}
|
||||
"S(DV_RPRN)": {
|
||||
"key": "DV_9",
|
||||
"label": "9",
|
||||
}
|
||||
"S(DV_UNDS)": {
|
||||
"key": "DV_0",
|
||||
"label": "0",
|
||||
}
|
||||
"S(DV_LBRC)": {
|
||||
"key": "DV_PLUS",
|
||||
"label": "+",
|
||||
}
|
||||
"S(DV_RBRC)": {
|
||||
"key": "DV_PERC",
|
||||
"label": "%",
|
||||
}
|
||||
"S(DV_COLN)": {
|
||||
"key": "DV_QUES",
|
||||
"label": "?",
|
||||
}
|
||||
"S(DV_QUOT)": {
|
||||
"key": "DV_LABK",
|
||||
"label": "<",
|
||||
}
|
||||
"S(DV_EACU)": {
|
||||
"key": "DV_RABK",
|
||||
"label": ">",
|
||||
}
|
||||
"S(DV_DOT)": {
|
||||
"key": "DV_EXLM",
|
||||
"label": "!",
|
||||
}
|
||||
"S(DV_DIAE)": {
|
||||
"key": "DV_EQL",
|
||||
"label": "=",
|
||||
}
|
||||
"S(DV_TILD)": {
|
||||
"key": "DV_HASH",
|
||||
"label": "#",
|
||||
}
|
||||
"S(DV_AGRV)": {
|
||||
"key": "DV_CCED",
|
||||
"label": "ç",
|
||||
}
|
||||
"S(DV_SCLN)": {
|
||||
"key": "DV_PIPE",
|
||||
"label": "|",
|
||||
}
|
||||
"S(DV_COMM)": {
|
||||
"key": "DV_AT",
|
||||
"label": "@",
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,302 @@
|
||||
{
|
||||
"aliases": {
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ $ │ & │ [ │ { │ } │ ( │ = │ * │ ) │ + │ ] │ ! │ # │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ ; │ , │ . │ P │ Y │ F │ G │ C │ R │ L │ / │ @ │ \ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
|
||||
* │ │ A │ O │ E │ U │ I │ D │ H │ T │ N │ S │ - │ │
|
||||
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
|
||||
* │ │ ' │ Q │ J │ K │ X │ B │ M │ W │ V │ Z │ │
|
||||
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"KC_GRV": {
|
||||
"key": "DP_DLR",
|
||||
"label": "$",
|
||||
}
|
||||
"KC_1": {
|
||||
"key": "DP_AMPR",
|
||||
"label": "&",
|
||||
}
|
||||
"KC_2": {
|
||||
"key": "DP_LBRC",
|
||||
"label": "[",
|
||||
}
|
||||
"KC_3": {
|
||||
"key": "DP_LCBR",
|
||||
"label": "{",
|
||||
}
|
||||
"KC_4": {
|
||||
"key": "DP_RCBR",
|
||||
"label": "}",
|
||||
}
|
||||
"KC_5": {
|
||||
"key": "DP_LPRN",
|
||||
"label": "(",
|
||||
}
|
||||
"KC_6": {
|
||||
"key": "DP_EQL",
|
||||
"label": "=",
|
||||
}
|
||||
"KC_7": {
|
||||
"key": "DP_ASTR",
|
||||
"label": "*",
|
||||
}
|
||||
"KC_8": {
|
||||
"key": "DP_RPRN",
|
||||
"label": ")",
|
||||
}
|
||||
"KC_9": {
|
||||
"key": "DP_PLUS",
|
||||
"label": "+",
|
||||
}
|
||||
"KC_0": {
|
||||
"key": "DP_RBRC",
|
||||
"label": "]",
|
||||
}
|
||||
"KC_MINS": {
|
||||
"key": "DP_EXLM",
|
||||
"label": "!",
|
||||
}
|
||||
"KC_EQL": {
|
||||
"key": "DP_HASH",
|
||||
"label": "#",
|
||||
}
|
||||
"KC_Q": {
|
||||
"key": "DP_SCLN",
|
||||
"label": ";",
|
||||
}
|
||||
"KC_W": {
|
||||
"key": "DP_COMM",
|
||||
"label": ",",
|
||||
}
|
||||
"KC_E": {
|
||||
"key": "DP_DOT",
|
||||
"label": ".",
|
||||
}
|
||||
"KC_R": {
|
||||
"key": "DP_P",
|
||||
"label": "P",
|
||||
}
|
||||
"KC_T": {
|
||||
"key": "DP_Y",
|
||||
"label": "Y",
|
||||
}
|
||||
"KC_Y": {
|
||||
"key": "DP_F",
|
||||
"label": "F",
|
||||
}
|
||||
"KC_U": {
|
||||
"key": "DP_G",
|
||||
"label": "G",
|
||||
}
|
||||
"KC_I": {
|
||||
"key": "DP_C",
|
||||
"label": "C",
|
||||
}
|
||||
"KC_O": {
|
||||
"key": "DP_R",
|
||||
"label": "R",
|
||||
}
|
||||
"KC_P": {
|
||||
"key": "DP_L",
|
||||
"label": "L",
|
||||
}
|
||||
"KC_LBRC": {
|
||||
"key": "DP_SLSH",
|
||||
"label": "/",
|
||||
}
|
||||
"KC_RBRC": {
|
||||
"key": "DP_AT",
|
||||
"label": "@",
|
||||
}
|
||||
"KC_BSLS": {
|
||||
"key": "DP_BSLS",
|
||||
"label": "\\",
|
||||
}
|
||||
"KC_A": {
|
||||
"key": "DP_A",
|
||||
"label": "A",
|
||||
}
|
||||
"KC_S": {
|
||||
"key": "DP_O",
|
||||
"label": "O",
|
||||
}
|
||||
"KC_D": {
|
||||
"key": "DP_E",
|
||||
"label": "E",
|
||||
}
|
||||
"KC_F": {
|
||||
"key": "DP_U",
|
||||
"label": "U",
|
||||
}
|
||||
"KC_G": {
|
||||
"key": "DP_I",
|
||||
"label": "I",
|
||||
}
|
||||
"KC_H": {
|
||||
"key": "DP_D",
|
||||
"label": "D",
|
||||
}
|
||||
"KC_J": {
|
||||
"key": "DP_H",
|
||||
"label": "H",
|
||||
}
|
||||
"KC_K": {
|
||||
"key": "DP_T",
|
||||
"label": "T",
|
||||
}
|
||||
"KC_L": {
|
||||
"key": "DP_N",
|
||||
"label": "N",
|
||||
}
|
||||
"KC_SCLN": {
|
||||
"key": "DP_S",
|
||||
"label": "S",
|
||||
}
|
||||
"KC_QUOT": {
|
||||
"key": "DP_MINS",
|
||||
"label": "-",
|
||||
}
|
||||
"KC_Z": {
|
||||
"key": "DP_QUOT",
|
||||
"label": "'",
|
||||
}
|
||||
"KC_X": {
|
||||
"key": "DP_Q",
|
||||
"label": "Q",
|
||||
}
|
||||
"KC_C": {
|
||||
"key": "DP_J",
|
||||
"label": "J",
|
||||
}
|
||||
"KC_V": {
|
||||
"key": "DP_K",
|
||||
"label": "K",
|
||||
}
|
||||
"KC_B": {
|
||||
"key": "DP_X",
|
||||
"label": "X",
|
||||
}
|
||||
"KC_N": {
|
||||
"key": "DP_B",
|
||||
"label": "B",
|
||||
}
|
||||
"KC_M": {
|
||||
"key": "DP_M",
|
||||
"label": "M",
|
||||
}
|
||||
"KC_COMM": {
|
||||
"key": "DP_W",
|
||||
"label": "W",
|
||||
}
|
||||
"KC_DOT": {
|
||||
"key": "DP_V",
|
||||
"label": "V",
|
||||
}
|
||||
"KC_SLSH": {
|
||||
"key": "DP_Z",
|
||||
"label": "Z",
|
||||
}
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ~ │ % │ 7 │ 5 │ 3 │ 1 │ 9 │ 0 │ 2 │ 4 │ 6 │ 8 │ ` │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ : │ < │ > │ │ │ │ │ │ │ │ ? │ ^ │ | │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ _ │ │
|
||||
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
|
||||
* │ │ " │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"S(DP_DLR)": {
|
||||
"key": "DP_TILD",
|
||||
"label": "~",
|
||||
}
|
||||
"S(DP_AMPR)": {
|
||||
"key": "DP_PERC",
|
||||
"label": "%",
|
||||
}
|
||||
"S(DP_LBRC)": {
|
||||
"key": "DP_7",
|
||||
"label": "7",
|
||||
}
|
||||
"S(DP_LCBR)": {
|
||||
"key": "DP_5",
|
||||
"label": "5",
|
||||
}
|
||||
"S(DP_RCBR)": {
|
||||
"key": "DP_3",
|
||||
"label": "3",
|
||||
}
|
||||
"S(DP_LPRN)": {
|
||||
"key": "DP_1",
|
||||
"label": "1",
|
||||
}
|
||||
"S(DP_EQL)": {
|
||||
"key": "DP_9",
|
||||
"label": "9",
|
||||
}
|
||||
"S(DP_ASTR)": {
|
||||
"key": "DP_0",
|
||||
"label": "0",
|
||||
}
|
||||
"S(DP_RPRN)": {
|
||||
"key": "DP_2",
|
||||
"label": "2",
|
||||
}
|
||||
"S(DP_PLUS)": {
|
||||
"key": "DP_4",
|
||||
"label": "4",
|
||||
}
|
||||
"S(DP_RBRC)": {
|
||||
"key": "DP_6",
|
||||
"label": "6",
|
||||
}
|
||||
"S(DP_EXLM)": {
|
||||
"key": "DP_8",
|
||||
"label": "8",
|
||||
}
|
||||
"S(DP_HASH)": {
|
||||
"key": "DP_GRV",
|
||||
"label": "`",
|
||||
}
|
||||
"S(DP_SCLN)": {
|
||||
"key": "DP_COLN",
|
||||
"label": ":",
|
||||
}
|
||||
"S(DP_COMM)": {
|
||||
"key": "DP_LABK",
|
||||
"label": "<",
|
||||
}
|
||||
"S(DP_DOT)": {
|
||||
"key": "DP_RABK",
|
||||
"label": ">",
|
||||
}
|
||||
"S(DP_SLSH)": {
|
||||
"key": "DP_QUES",
|
||||
"label": "?",
|
||||
}
|
||||
"S(DP_AT)": {
|
||||
"key": "DP_CIRC",
|
||||
"label": "^",
|
||||
}
|
||||
"S(DP_BSLS)": {
|
||||
"key": "DP_PIPE",
|
||||
"label": "|",
|
||||
}
|
||||
"S(DP_MINS)": {
|
||||
"key": "DP_UNDS",
|
||||
"label": "_",
|
||||
}
|
||||
"S(DP_QUOT)": {
|
||||
"key": "DP_DQUO",
|
||||
"label": "\"",
|
||||
}
|
||||
}
|
||||
}
|
||||
367
data/constants/keycodes/extras/keycodes_estonian_0.0.1.hjson
Normal file
367
data/constants/keycodes/extras/keycodes_estonian_0.0.1.hjson
Normal file
@@ -0,0 +1,367 @@
|
||||
{
|
||||
"aliases": {
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ˇ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ ´ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ Ü │ Õ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Ö │ Ä │ ' │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ < │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"KC_GRV": {
|
||||
"key": "EE_CARN",
|
||||
"label": "ˇ (dead)",
|
||||
}
|
||||
"KC_1": {
|
||||
"key": "EE_1",
|
||||
"label": "1",
|
||||
}
|
||||
"KC_2": {
|
||||
"key": "EE_2",
|
||||
"label": "2",
|
||||
}
|
||||
"KC_3": {
|
||||
"key": "EE_3",
|
||||
"label": "3",
|
||||
}
|
||||
"KC_4": {
|
||||
"key": "EE_4",
|
||||
"label": "4",
|
||||
}
|
||||
"KC_5": {
|
||||
"key": "EE_5",
|
||||
"label": "5",
|
||||
}
|
||||
"KC_6": {
|
||||
"key": "EE_6",
|
||||
"label": "6",
|
||||
}
|
||||
"KC_7": {
|
||||
"key": "EE_7",
|
||||
"label": "7",
|
||||
}
|
||||
"KC_8": {
|
||||
"key": "EE_8",
|
||||
"label": "8",
|
||||
}
|
||||
"KC_9": {
|
||||
"key": "EE_9",
|
||||
"label": "9",
|
||||
}
|
||||
"KC_0": {
|
||||
"key": "EE_0",
|
||||
"label": "0",
|
||||
}
|
||||
"KC_MINS": {
|
||||
"key": "EE_PLUS",
|
||||
"label": "+",
|
||||
}
|
||||
"KC_EQL": {
|
||||
"key": "EE_ACUT",
|
||||
"label": "´ (dead)",
|
||||
}
|
||||
"KC_Q": {
|
||||
"key": "EE_Q",
|
||||
"label": "Q",
|
||||
}
|
||||
"KC_W": {
|
||||
"key": "EE_W",
|
||||
"label": "W",
|
||||
}
|
||||
"KC_E": {
|
||||
"key": "EE_E",
|
||||
"label": "E",
|
||||
}
|
||||
"KC_R": {
|
||||
"key": "EE_R",
|
||||
"label": "R",
|
||||
}
|
||||
"KC_T": {
|
||||
"key": "EE_T",
|
||||
"label": "T",
|
||||
}
|
||||
"KC_Y": {
|
||||
"key": "EE_Y",
|
||||
"label": "Y",
|
||||
}
|
||||
"KC_U": {
|
||||
"key": "EE_U",
|
||||
"label": "U",
|
||||
}
|
||||
"KC_I": {
|
||||
"key": "EE_I",
|
||||
"label": "I",
|
||||
}
|
||||
"KC_O": {
|
||||
"key": "EE_O",
|
||||
"label": "O",
|
||||
}
|
||||
"KC_P": {
|
||||
"key": "EE_P",
|
||||
"label": "P",
|
||||
}
|
||||
"KC_LBRC": {
|
||||
"key": "EE_UDIA",
|
||||
"label": "Ü",
|
||||
}
|
||||
"KC_RBRC": {
|
||||
"key": "EE_OTIL",
|
||||
"label": "Õ",
|
||||
}
|
||||
"KC_A": {
|
||||
"key": "EE_A",
|
||||
"label": "A",
|
||||
}
|
||||
"KC_S": {
|
||||
"key": "EE_S",
|
||||
"label": "S",
|
||||
}
|
||||
"KC_D": {
|
||||
"key": "EE_D",
|
||||
"label": "D",
|
||||
}
|
||||
"KC_F": {
|
||||
"key": "EE_F",
|
||||
"label": "F",
|
||||
}
|
||||
"KC_G": {
|
||||
"key": "EE_G",
|
||||
"label": "G",
|
||||
}
|
||||
"KC_H": {
|
||||
"key": "EE_H",
|
||||
"label": "H",
|
||||
}
|
||||
"KC_J": {
|
||||
"key": "EE_J",
|
||||
"label": "J",
|
||||
}
|
||||
"KC_K": {
|
||||
"key": "EE_K",
|
||||
"label": "K",
|
||||
}
|
||||
"KC_L": {
|
||||
"key": "EE_L",
|
||||
"label": "L",
|
||||
}
|
||||
"KC_SCLN": {
|
||||
"key": "EE_ODIA",
|
||||
"label": "Ö",
|
||||
}
|
||||
"KC_QUOT": {
|
||||
"key": "EE_ADIA",
|
||||
"label": "Ä",
|
||||
}
|
||||
"KC_NUHS": {
|
||||
"key": "EE_QUOT",
|
||||
"label": "'",
|
||||
}
|
||||
"KC_NUBS": {
|
||||
"key": "EE_LABK",
|
||||
"label": "<",
|
||||
}
|
||||
"KC_Z": {
|
||||
"key": "EE_Z",
|
||||
"label": "Z",
|
||||
}
|
||||
"KC_X": {
|
||||
"key": "EE_X",
|
||||
"label": "X",
|
||||
}
|
||||
"KC_C": {
|
||||
"key": "EE_C",
|
||||
"label": "C",
|
||||
}
|
||||
"KC_V": {
|
||||
"key": "EE_V",
|
||||
"label": "V",
|
||||
}
|
||||
"KC_B": {
|
||||
"key": "EE_B",
|
||||
"label": "B",
|
||||
}
|
||||
"KC_N": {
|
||||
"key": "EE_N",
|
||||
"label": "N",
|
||||
}
|
||||
"KC_M": {
|
||||
"key": "EE_M",
|
||||
"label": "M",
|
||||
}
|
||||
"KC_COMM": {
|
||||
"key": "EE_COMM",
|
||||
"label": ",",
|
||||
}
|
||||
"KC_DOT": {
|
||||
"key": "EE_DOT",
|
||||
"label": ".",
|
||||
}
|
||||
"KC_SLSH": {
|
||||
"key": "EE_MINS",
|
||||
"label": "-",
|
||||
}
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ~ │ ! │ " │ # │ ¤ │ % │ & │ / │ ( │ ) │ = │ ? │ ` │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ * │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ > │ │ │ │ │ │ │ │ ; │ : │ _ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"S(EE_CARN)": {
|
||||
"key": "EE_TILD",
|
||||
"label": "~ (dead)",
|
||||
}
|
||||
"S(EE_1)": {
|
||||
"key": "EE_EXLM",
|
||||
"label": "!",
|
||||
}
|
||||
"S(EE_2)": {
|
||||
"key": "EE_DQUO",
|
||||
"label": "\"",
|
||||
}
|
||||
"S(EE_3)": {
|
||||
"key": "EE_HASH",
|
||||
"label": "#",
|
||||
}
|
||||
"S(EE_4)": {
|
||||
"key": "EE_CURR",
|
||||
"label": "¤",
|
||||
}
|
||||
"S(EE_5)": {
|
||||
"key": "EE_PERC",
|
||||
"label": "%",
|
||||
}
|
||||
"S(EE_6)": {
|
||||
"key": "EE_AMPR",
|
||||
"label": "&",
|
||||
}
|
||||
"S(EE_7)": {
|
||||
"key": "EE_SLSH",
|
||||
"label": "/",
|
||||
}
|
||||
"S(EE_8)": {
|
||||
"key": "EE_LPRN",
|
||||
"label": "(",
|
||||
}
|
||||
"S(EE_9)": {
|
||||
"key": "EE_RPRN",
|
||||
"label": ")",
|
||||
}
|
||||
"S(EE_0)": {
|
||||
"key": "EE_EQL",
|
||||
"label": "=",
|
||||
}
|
||||
"S(EE_PLUS)": {
|
||||
"key": "EE_QUES",
|
||||
"label": "?",
|
||||
}
|
||||
"S(EE_ACUT)": {
|
||||
"key": "EE_GRV",
|
||||
"label": "` (dead)",
|
||||
}
|
||||
"S(EE_QUOT)": {
|
||||
"key": "EE_ASTR",
|
||||
"label": "*",
|
||||
}
|
||||
"S(EE_LABK)": {
|
||||
"key": "EE_RABK",
|
||||
"label": ">",
|
||||
}
|
||||
"S(EE_COMM)": {
|
||||
"key": "EE_SCLN",
|
||||
"label": ";",
|
||||
}
|
||||
"S(EE_DOT)": {
|
||||
"key": "EE_COLN",
|
||||
"label": ":",
|
||||
}
|
||||
"S(EE_MINS)": {
|
||||
"key": "EE_UNDS",
|
||||
"label": "_",
|
||||
}
|
||||
/* AltGr symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ │ │ @ │ £ │ $ │ € │ │ { │ [ │ ] │ } │ \ │ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ § │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ š │ │ │ │ │ │ │ │ │ ^ │ ½ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ | │ ž │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"ALGR(EE_2)": {
|
||||
"key": "EE_AT",
|
||||
"label": "@",
|
||||
}
|
||||
"ALGR(EE_3)": {
|
||||
"key": "EE_PND",
|
||||
"label": "£",
|
||||
}
|
||||
"ALGR(EE_4)": {
|
||||
"key": "EE_DLR",
|
||||
"label": "$",
|
||||
}
|
||||
"ALGR(EE_5)": {
|
||||
"key": "EE_EURO",
|
||||
"label": "€",
|
||||
}
|
||||
"ALGR(EE_7)": {
|
||||
"key": "EE_LCBR",
|
||||
"label": "{",
|
||||
}
|
||||
"ALGR(EE_8)": {
|
||||
"key": "EE_LBRC",
|
||||
"label": "[",
|
||||
}
|
||||
"ALGR(EE_9)": {
|
||||
"key": "EE_RBRC",
|
||||
"label": "]",
|
||||
}
|
||||
"ALGR(EE_0)": {
|
||||
"key": "EE_RCBR",
|
||||
"label": "}",
|
||||
}
|
||||
"ALGR(EE_PLUS)": {
|
||||
"key": "EE_BSLS",
|
||||
"label": "\\",
|
||||
}
|
||||
"ALGR(EE_OTIL)": {
|
||||
"key": "EE_SECT",
|
||||
"label": "§",
|
||||
}
|
||||
"ALGR(EE_S)": {
|
||||
"key": "EE_SCAR",
|
||||
"label": "š",
|
||||
}
|
||||
"ALGR(EE_ADIA)": {
|
||||
"key": "EE_CIRC",
|
||||
"label": "^ (dead)",
|
||||
}
|
||||
"ALGR(EE_QUOT)": {
|
||||
"key": "EE_HALF",
|
||||
"label": "½",
|
||||
}
|
||||
"ALGR(EE_LABK)": {
|
||||
"key": "EE_PIPE",
|
||||
"label": "|",
|
||||
}
|
||||
"ALGR(EE_Z)": {
|
||||
"key": "EE_ZCAR",
|
||||
"label": "ž",
|
||||
}
|
||||
}
|
||||
}
|
||||
359
data/constants/keycodes/extras/keycodes_finnish_0.0.1.hjson
Normal file
359
data/constants/keycodes/extras/keycodes_finnish_0.0.1.hjson
Normal file
@@ -0,0 +1,359 @@
|
||||
{
|
||||
"aliases": {
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ § │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ ´ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ Å │ ¨ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Ö │ Ä │ ' │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ < │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"KC_GRV": {
|
||||
"key": "FI_SECT",
|
||||
"label": "§",
|
||||
}
|
||||
"KC_1": {
|
||||
"key": "FI_1",
|
||||
"label": "1",
|
||||
}
|
||||
"KC_2": {
|
||||
"key": "FI_2",
|
||||
"label": "2",
|
||||
}
|
||||
"KC_3": {
|
||||
"key": "FI_3",
|
||||
"label": "3",
|
||||
}
|
||||
"KC_4": {
|
||||
"key": "FI_4",
|
||||
"label": "4",
|
||||
}
|
||||
"KC_5": {
|
||||
"key": "FI_5",
|
||||
"label": "5",
|
||||
}
|
||||
"KC_6": {
|
||||
"key": "FI_6",
|
||||
"label": "6",
|
||||
}
|
||||
"KC_7": {
|
||||
"key": "FI_7",
|
||||
"label": "7",
|
||||
}
|
||||
"KC_8": {
|
||||
"key": "FI_8",
|
||||
"label": "8",
|
||||
}
|
||||
"KC_9": {
|
||||
"key": "FI_9",
|
||||
"label": "9",
|
||||
}
|
||||
"KC_0": {
|
||||
"key": "FI_0",
|
||||
"label": "0",
|
||||
}
|
||||
"KC_MINS": {
|
||||
"key": "FI_PLUS",
|
||||
"label": "+",
|
||||
}
|
||||
"KC_EQL": {
|
||||
"key": "FI_ACUT",
|
||||
"label": "´ (dead)",
|
||||
}
|
||||
"KC_Q": {
|
||||
"key": "FI_Q",
|
||||
"label": "Q",
|
||||
}
|
||||
"KC_W": {
|
||||
"key": "FI_W",
|
||||
"label": "W",
|
||||
}
|
||||
"KC_E": {
|
||||
"key": "FI_E",
|
||||
"label": "E",
|
||||
}
|
||||
"KC_R": {
|
||||
"key": "FI_R",
|
||||
"label": "R",
|
||||
}
|
||||
"KC_T": {
|
||||
"key": "FI_T",
|
||||
"label": "T",
|
||||
}
|
||||
"KC_Y": {
|
||||
"key": "FI_Y",
|
||||
"label": "Y",
|
||||
}
|
||||
"KC_U": {
|
||||
"key": "FI_U",
|
||||
"label": "U",
|
||||
}
|
||||
"KC_I": {
|
||||
"key": "FI_I",
|
||||
"label": "I",
|
||||
}
|
||||
"KC_O": {
|
||||
"key": "FI_O",
|
||||
"label": "O",
|
||||
}
|
||||
"KC_P": {
|
||||
"key": "FI_P",
|
||||
"label": "P",
|
||||
}
|
||||
"KC_LBRC": {
|
||||
"key": "FI_ARNG",
|
||||
"label": "Å",
|
||||
}
|
||||
"KC_RBRC": {
|
||||
"key": "FI_DIAE",
|
||||
"label": "¨ (dead)",
|
||||
}
|
||||
"KC_A": {
|
||||
"key": "FI_A",
|
||||
"label": "A",
|
||||
}
|
||||
"KC_S": {
|
||||
"key": "FI_S",
|
||||
"label": "S",
|
||||
}
|
||||
"KC_D": {
|
||||
"key": "FI_D",
|
||||
"label": "D",
|
||||
}
|
||||
"KC_F": {
|
||||
"key": "FI_F",
|
||||
"label": "F",
|
||||
}
|
||||
"KC_G": {
|
||||
"key": "FI_G",
|
||||
"label": "G",
|
||||
}
|
||||
"KC_H": {
|
||||
"key": "FI_H",
|
||||
"label": "H",
|
||||
}
|
||||
"KC_J": {
|
||||
"key": "FI_J",
|
||||
"label": "J",
|
||||
}
|
||||
"KC_K": {
|
||||
"key": "FI_K",
|
||||
"label": "K",
|
||||
}
|
||||
"KC_L": {
|
||||
"key": "FI_L",
|
||||
"label": "L",
|
||||
}
|
||||
"KC_SCLN": {
|
||||
"key": "FI_ODIA",
|
||||
"label": "Ö",
|
||||
}
|
||||
"KC_QUOT": {
|
||||
"key": "FI_ADIA",
|
||||
"label": "Ä",
|
||||
}
|
||||
"KC_NUHS": {
|
||||
"key": "FI_QUOT",
|
||||
"label": "'",
|
||||
}
|
||||
"KC_NUBS": {
|
||||
"key": "FI_LABK",
|
||||
"label": "<",
|
||||
}
|
||||
"KC_Z": {
|
||||
"key": "FI_Z",
|
||||
"label": "Z",
|
||||
}
|
||||
"KC_X": {
|
||||
"key": "FI_X",
|
||||
"label": "X",
|
||||
}
|
||||
"KC_C": {
|
||||
"key": "FI_C",
|
||||
"label": "C",
|
||||
}
|
||||
"KC_V": {
|
||||
"key": "FI_V",
|
||||
"label": "V",
|
||||
}
|
||||
"KC_B": {
|
||||
"key": "FI_B",
|
||||
"label": "B",
|
||||
}
|
||||
"KC_N": {
|
||||
"key": "FI_N",
|
||||
"label": "N",
|
||||
}
|
||||
"KC_M": {
|
||||
"key": "FI_M",
|
||||
"label": "M",
|
||||
}
|
||||
"KC_COMM": {
|
||||
"key": "FI_COMM",
|
||||
"label": ",",
|
||||
}
|
||||
"KC_DOT": {
|
||||
"key": "FI_DOT",
|
||||
"label": ".",
|
||||
}
|
||||
"KC_SLSH": {
|
||||
"key": "FI_MINS",
|
||||
"label": "-",
|
||||
}
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ½ │ ! │ " │ # │ ¤ │ % │ & │ / │ ( │ ) │ = │ ? │ ` │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ ^ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ * │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ > │ │ │ │ │ │ │ │ ; │ : │ _ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"S(FI_SECT)": {
|
||||
"key": "FI_HALF",
|
||||
"label": "½",
|
||||
}
|
||||
"S(FI_1)": {
|
||||
"key": "FI_EXLM",
|
||||
"label": "!",
|
||||
}
|
||||
"S(FI_2)": {
|
||||
"key": "FI_DQUO",
|
||||
"label": "\"",
|
||||
}
|
||||
"S(FI_3)": {
|
||||
"key": "FI_HASH",
|
||||
"label": "#",
|
||||
}
|
||||
"S(FI_4)": {
|
||||
"key": "FI_CURR",
|
||||
"label": "¤",
|
||||
}
|
||||
"S(FI_5)": {
|
||||
"key": "FI_PERC",
|
||||
"label": "%",
|
||||
}
|
||||
"S(FI_6)": {
|
||||
"key": "FI_AMPR",
|
||||
"label": "&",
|
||||
}
|
||||
"S(FI_7)": {
|
||||
"key": "FI_SLSH",
|
||||
"label": "/",
|
||||
}
|
||||
"S(FI_8)": {
|
||||
"key": "FI_LPRN",
|
||||
"label": "(",
|
||||
}
|
||||
"S(FI_9)": {
|
||||
"key": "FI_RPRN",
|
||||
"label": ")",
|
||||
}
|
||||
"S(FI_0)": {
|
||||
"key": "FI_EQL",
|
||||
"label": "=",
|
||||
}
|
||||
"S(FI_PLUS)": {
|
||||
"key": "FI_QUES",
|
||||
"label": "?",
|
||||
}
|
||||
"S(FI_ACUT)": {
|
||||
"key": "FI_GRV",
|
||||
"label": "` (dead)",
|
||||
}
|
||||
"S(FI_DIAE)": {
|
||||
"key": "FI_CIRC",
|
||||
"label": "^ (dead)",
|
||||
}
|
||||
"S(FI_QUOT)": {
|
||||
"key": "FI_ASTR",
|
||||
"label": "*",
|
||||
}
|
||||
"S(FI_LABK)": {
|
||||
"key": "FI_RABK",
|
||||
"label": ">",
|
||||
}
|
||||
"S(FI_COMM)": {
|
||||
"key": "FI_SCLN",
|
||||
"label": ";",
|
||||
}
|
||||
"S(FI_DOT)": {
|
||||
"key": "FI_COLN",
|
||||
"label": ":",
|
||||
}
|
||||
"S(FI_MINS)": {
|
||||
"key": "FI_UNDS",
|
||||
"label": "_",
|
||||
}
|
||||
/* AltGr symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ │ │ @ │ £ │ $ │ € │ │ { │ [ │ ] │ } │ \ │ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ ~ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ | │ │ │ │ │ │ │ µ │ │ │ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"ALGR(FI_2)": {
|
||||
"key": "FI_AT",
|
||||
"label": "@",
|
||||
}
|
||||
"ALGR(FI_3)": {
|
||||
"key": "FI_PND",
|
||||
"label": "£",
|
||||
}
|
||||
"ALGR(FI_4)": {
|
||||
"key": "FI_DLR",
|
||||
"label": "$",
|
||||
}
|
||||
"ALGR(FI_5)": {
|
||||
"key": "FI_EURO",
|
||||
"label": "€",
|
||||
}
|
||||
"ALGR(FI_7)": {
|
||||
"key": "FI_LCBR",
|
||||
"label": "{",
|
||||
}
|
||||
"ALGR(FI_8)": {
|
||||
"key": "FI_LBRC",
|
||||
"label": "[",
|
||||
}
|
||||
"ALGR(FI_9)": {
|
||||
"key": "FI_RBRC",
|
||||
"label": "]",
|
||||
}
|
||||
"ALGR(FI_0)": {
|
||||
"key": "FI_RCBR",
|
||||
"label": "}",
|
||||
}
|
||||
"ALGR(FI_PLUS)": {
|
||||
"key": "FI_BSLS",
|
||||
"label": "\\",
|
||||
}
|
||||
"ALGR(FI_DIAE)": {
|
||||
"key": "FI_TILD",
|
||||
"label": "~ (dead)",
|
||||
}
|
||||
"ALGR(FI_LABK)": {
|
||||
"key": "FI_PIPE",
|
||||
"label": "|",
|
||||
}
|
||||
"ALGR(FI_M)": {
|
||||
"key": "FI_MICR",
|
||||
"label": "µ",
|
||||
}
|
||||
}
|
||||
}
|
||||
367
data/constants/keycodes/extras/keycodes_french_0.0.1.hjson
Normal file
367
data/constants/keycodes/extras/keycodes_french_0.0.1.hjson
Normal file
@@ -0,0 +1,367 @@
|
||||
{
|
||||
"aliases": {
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ² │ & │ é │ " │ ' │ ( │ - │ è │ _ │ ç │ à │ ) │ = │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ A │ Z │ E │ R │ T │ Y │ U │ I │ O │ P │ ^ │ $ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ Q │ S │ D │ F │ G │ H │ J │ K │ L │ M │ ù │ * │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ < │ W │ X │ C │ V │ B │ N │ , │ ; │ : │ ! │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"KC_GRV": {
|
||||
"key": "FR_SUP2",
|
||||
"label": "²",
|
||||
}
|
||||
"KC_1": {
|
||||
"key": "FR_AMPR",
|
||||
"label": "&",
|
||||
}
|
||||
"KC_2": {
|
||||
"key": "FR_EACU",
|
||||
"label": "é",
|
||||
}
|
||||
"KC_3": {
|
||||
"key": "FR_DQUO",
|
||||
"label": "\"",
|
||||
}
|
||||
"KC_4": {
|
||||
"key": "FR_QUOT",
|
||||
"label": "'",
|
||||
}
|
||||
"KC_5": {
|
||||
"key": "FR_LPRN",
|
||||
"label": "(",
|
||||
}
|
||||
"KC_6": {
|
||||
"key": "FR_MINS",
|
||||
"label": "-",
|
||||
}
|
||||
"KC_7": {
|
||||
"key": "FR_EGRV",
|
||||
"label": "è",
|
||||
}
|
||||
"KC_8": {
|
||||
"key": "FR_UNDS",
|
||||
"label": "_",
|
||||
}
|
||||
"KC_9": {
|
||||
"key": "FR_CCED",
|
||||
"label": "ç",
|
||||
}
|
||||
"KC_0": {
|
||||
"key": "FR_AGRV",
|
||||
"label": "à",
|
||||
}
|
||||
"KC_MINS": {
|
||||
"key": "FR_RPRN",
|
||||
"label": ")",
|
||||
}
|
||||
"KC_EQL": {
|
||||
"key": "FR_EQL",
|
||||
"label": "=",
|
||||
}
|
||||
"KC_Q": {
|
||||
"key": "FR_A",
|
||||
"label": "A",
|
||||
}
|
||||
"KC_W": {
|
||||
"key": "FR_Z",
|
||||
"label": "Z",
|
||||
}
|
||||
"KC_E": {
|
||||
"key": "FR_E",
|
||||
"label": "E",
|
||||
}
|
||||
"KC_R": {
|
||||
"key": "FR_R",
|
||||
"label": "R",
|
||||
}
|
||||
"KC_T": {
|
||||
"key": "FR_T",
|
||||
"label": "T",
|
||||
}
|
||||
"KC_Y": {
|
||||
"key": "FR_Y",
|
||||
"label": "Y",
|
||||
}
|
||||
"KC_U": {
|
||||
"key": "FR_U",
|
||||
"label": "U",
|
||||
}
|
||||
"KC_I": {
|
||||
"key": "FR_I",
|
||||
"label": "I",
|
||||
}
|
||||
"KC_O": {
|
||||
"key": "FR_O",
|
||||
"label": "O",
|
||||
}
|
||||
"KC_P": {
|
||||
"key": "FR_P",
|
||||
"label": "P",
|
||||
}
|
||||
"KC_LBRC": {
|
||||
"key": "FR_CIRC",
|
||||
"label": "^ (dead)",
|
||||
}
|
||||
"KC_RBRC": {
|
||||
"key": "FR_DLR",
|
||||
"label": "$",
|
||||
}
|
||||
"KC_A": {
|
||||
"key": "FR_Q",
|
||||
"label": "Q",
|
||||
}
|
||||
"KC_S": {
|
||||
"key": "FR_S",
|
||||
"label": "S",
|
||||
}
|
||||
"KC_D": {
|
||||
"key": "FR_D",
|
||||
"label": "D",
|
||||
}
|
||||
"KC_F": {
|
||||
"key": "FR_F",
|
||||
"label": "F",
|
||||
}
|
||||
"KC_G": {
|
||||
"key": "FR_G",
|
||||
"label": "G",
|
||||
}
|
||||
"KC_H": {
|
||||
"key": "FR_H",
|
||||
"label": "H",
|
||||
}
|
||||
"KC_J": {
|
||||
"key": "FR_J",
|
||||
"label": "J",
|
||||
}
|
||||
"KC_K": {
|
||||
"key": "FR_K",
|
||||
"label": "K",
|
||||
}
|
||||
"KC_L": {
|
||||
"key": "FR_L",
|
||||
"label": "L",
|
||||
}
|
||||
"KC_SCLN": {
|
||||
"key": "FR_M",
|
||||
"label": "M",
|
||||
}
|
||||
"KC_QUOT": {
|
||||
"key": "FR_UGRV",
|
||||
"label": "ù",
|
||||
}
|
||||
"KC_NUHS": {
|
||||
"key": "FR_ASTR",
|
||||
"label": "*",
|
||||
}
|
||||
"KC_NUBS": {
|
||||
"key": "FR_LABK",
|
||||
"label": "<",
|
||||
}
|
||||
"KC_Z": {
|
||||
"key": "FR_W",
|
||||
"label": "W",
|
||||
}
|
||||
"KC_X": {
|
||||
"key": "FR_X",
|
||||
"label": "X",
|
||||
}
|
||||
"KC_C": {
|
||||
"key": "FR_C",
|
||||
"label": "C",
|
||||
}
|
||||
"KC_V": {
|
||||
"key": "FR_V",
|
||||
"label": "V",
|
||||
}
|
||||
"KC_B": {
|
||||
"key": "FR_B",
|
||||
"label": "B",
|
||||
}
|
||||
"KC_N": {
|
||||
"key": "FR_N",
|
||||
"label": "N",
|
||||
}
|
||||
"KC_M": {
|
||||
"key": "FR_COMM",
|
||||
"label": ",",
|
||||
}
|
||||
"KC_COMM": {
|
||||
"key": "FR_SCLN",
|
||||
"label": ";",
|
||||
}
|
||||
"KC_DOT": {
|
||||
"key": "FR_COLN",
|
||||
"label": ":",
|
||||
}
|
||||
"KC_SLSH": {
|
||||
"key": "FR_EXLM",
|
||||
"label": "!",
|
||||
}
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ° │ + │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ ¨ │ £ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ % │ µ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ > │ │ │ │ │ │ │ ? │ . │ / │ § │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"S(FR_AMPR)": {
|
||||
"key": "FR_1",
|
||||
"label": "1",
|
||||
}
|
||||
"S(FR_EACU)": {
|
||||
"key": "FR_2",
|
||||
"label": "2",
|
||||
}
|
||||
"S(FR_DQUO)": {
|
||||
"key": "FR_3",
|
||||
"label": "3",
|
||||
}
|
||||
"S(FR_QUOT)": {
|
||||
"key": "FR_4",
|
||||
"label": "4",
|
||||
}
|
||||
"S(FR_LPRN)": {
|
||||
"key": "FR_5",
|
||||
"label": "5",
|
||||
}
|
||||
"S(FR_MINS)": {
|
||||
"key": "FR_6",
|
||||
"label": "6",
|
||||
}
|
||||
"S(FR_EGRV)": {
|
||||
"key": "FR_7",
|
||||
"label": "7",
|
||||
}
|
||||
"S(FR_UNDS)": {
|
||||
"key": "FR_8",
|
||||
"label": "8",
|
||||
}
|
||||
"S(FR_CCED)": {
|
||||
"key": "FR_9",
|
||||
"label": "9",
|
||||
}
|
||||
"S(FR_AGRV)": {
|
||||
"key": "FR_0",
|
||||
"label": "0",
|
||||
}
|
||||
"S(FR_RPRN)": {
|
||||
"key": "FR_DEG",
|
||||
"label": "°",
|
||||
}
|
||||
"S(FR_EQL)": {
|
||||
"key": "FR_PLUS",
|
||||
"label": "+",
|
||||
}
|
||||
"S(FR_CIRC)": {
|
||||
"key": "FR_DIAE",
|
||||
"label": "¨ (dead)",
|
||||
}
|
||||
"S(FR_DLR)": {
|
||||
"key": "FR_PND",
|
||||
"label": "£",
|
||||
}
|
||||
"S(FR_UGRV)": {
|
||||
"key": "FR_PERC",
|
||||
"label": "%",
|
||||
}
|
||||
"S(FR_ASTR)": {
|
||||
"key": "FR_MICR",
|
||||
"label": "µ",
|
||||
}
|
||||
"S(FR_LABK)": {
|
||||
"key": "FR_RABK",
|
||||
"label": ">",
|
||||
}
|
||||
"S(FR_COMM)": {
|
||||
"key": "FR_QUES",
|
||||
"label": "?",
|
||||
}
|
||||
"S(FR_SCLN)": {
|
||||
"key": "FR_DOT",
|
||||
"label": ".",
|
||||
}
|
||||
"S(FR_COLN)": {
|
||||
"key": "FR_SLSH",
|
||||
"label": "/",
|
||||
}
|
||||
"S(FR_EXLM)": {
|
||||
"key": "FR_SECT",
|
||||
"label": "§",
|
||||
}
|
||||
/* AltGr symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ │ │ ~ │ # │ { │ [ │ | │ ` │ \ │ │ @ │ ] │ } │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ € │ │ │ │ │ │ │ │ │ ¤ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"ALGR(FR_EACU)": {
|
||||
"key": "FR_TILD",
|
||||
"label": "~ (dead)",
|
||||
}
|
||||
"ALGR(FR_DQUO)": {
|
||||
"key": "FR_HASH",
|
||||
"label": "#",
|
||||
}
|
||||
"ALGR(FR_QUOT)": {
|
||||
"key": "FR_LCBR",
|
||||
"label": "{",
|
||||
}
|
||||
"ALGR(FR_LPRN)": {
|
||||
"key": "FR_LBRC",
|
||||
"label": "[",
|
||||
}
|
||||
"ALGR(FR_MINS)": {
|
||||
"key": "FR_PIPE",
|
||||
"label": "|",
|
||||
}
|
||||
"ALGR(FR_EGRV)": {
|
||||
"key": "FR_GRV",
|
||||
"label": "` (dead)",
|
||||
}
|
||||
"ALGR(FR_UNDS)": {
|
||||
"key": "FR_BSLS",
|
||||
"label": "\\",
|
||||
}
|
||||
"ALGR(FR_AGRV)": {
|
||||
"key": "FR_AT",
|
||||
"label": "@",
|
||||
}
|
||||
"ALGR(FR_RPRN)": {
|
||||
"key": "FR_RBRC",
|
||||
"label": "]",
|
||||
}
|
||||
"ALGR(FR_EQL)": {
|
||||
"key": "FR_RCBR",
|
||||
"label": "}",
|
||||
}
|
||||
"ALGR(KC_E)": {
|
||||
"key": "FR_EURO",
|
||||
"label": "€",
|
||||
}
|
||||
"ALGR(FR_DLR)": {
|
||||
"key": "FR_CURR",
|
||||
"label": "¤",
|
||||
}
|
||||
}
|
||||
}
|
||||
623
data/constants/keycodes/extras/keycodes_french_afnor_0.0.1.hjson
Normal file
623
data/constants/keycodes/extras/keycodes_french_afnor_0.0.1.hjson
Normal file
@@ -0,0 +1,623 @@
|
||||
{
|
||||
"aliases": {
|
||||
/* French AZERTY - AFNOR NF Z71-300
|
||||
*
|
||||
* A standard for the French keyboard
|
||||
*
|
||||
* The project was launched at the end of 2015 on the proposal of the General
|
||||
* Delegation for the French language and the languages of France (Ministry
|
||||
* of Culture), starting from the observation that the current "azerty"
|
||||
* keyboards constrain the writing of French, languages regional and European
|
||||
* languages with Latin alphabet.
|
||||
*
|
||||
* For the first time, a standard (NF Z71-300) defines the placement of
|
||||
* characters on the French keyboard. It offers two layouts, one of which
|
||||
* closely follows the QWERTY keyboard used by most people who write in French.
|
||||
*
|
||||
* However, it is in many ways superior to the old keyboard:
|
||||
*
|
||||
* - it contains all the characters required to enter text in French (for example É, œ and ")
|
||||
* - it is designed to be more ergonomic and allow faster typing
|
||||
* - it includes almost 60 additional characters for entering foreign languages, technical content, etc
|
||||
* - however, the characters remain easy to locate thanks to intuitive groupings
|
||||
*
|
||||
* Source: https://norme-azerty.fr
|
||||
*/
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ @ │ à │ é │ è │ ê │ ( │ ) │ ‘ │ ’ │ « │ » │ ' │ ^ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ A │ Z │ E │ R │ T │ Y │ U │ I │ O │ P │ - │ + │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ Q │ S │ D │ F │ G │ H │ J │ K │ L │ M │ / │ * │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ < │ W │ X │ C │ V │ B │ N │ . │ , │ : │ ; │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"KC_GRV": {
|
||||
"key": "FR_AT",
|
||||
"label": "@",
|
||||
}
|
||||
"KC_1": {
|
||||
"key": "FR_AGRV",
|
||||
"label": "à",
|
||||
}
|
||||
"KC_2": {
|
||||
"key": "FR_EACU",
|
||||
"label": "é",
|
||||
}
|
||||
"KC_3": {
|
||||
"key": "FR_EGRV",
|
||||
"label": "è",
|
||||
}
|
||||
"KC_4": {
|
||||
"key": "FR_ECIR",
|
||||
"label": "ê",
|
||||
}
|
||||
"KC_5": {
|
||||
"key": "FR_LPRN",
|
||||
"label": "(",
|
||||
}
|
||||
"KC_6": {
|
||||
"key": "FR_RPRN",
|
||||
"label": ")",
|
||||
}
|
||||
"KC_7": {
|
||||
"key": "FR_LSQU",
|
||||
"label": "‘",
|
||||
}
|
||||
"KC_8": {
|
||||
"key": "FR_RSQU",
|
||||
"label": "’",
|
||||
}
|
||||
"KC_9": {
|
||||
"key": "FR_LDAQ",
|
||||
"label": "«",
|
||||
}
|
||||
"KC_0": {
|
||||
"key": "FR_RDAQ",
|
||||
"label": "»",
|
||||
}
|
||||
"KC_MINS": {
|
||||
"key": "FR_QUOT",
|
||||
"label": "'",
|
||||
}
|
||||
"KC_EQL": {
|
||||
"key": "FR_DCIR",
|
||||
"label": "^ (dead)",
|
||||
}
|
||||
"KC_Q": {
|
||||
"key": "FR_A",
|
||||
"label": "A",
|
||||
}
|
||||
"KC_W": {
|
||||
"key": "FR_Z",
|
||||
"label": "Z",
|
||||
}
|
||||
"KC_E": {
|
||||
"key": "FR_E",
|
||||
"label": "E",
|
||||
}
|
||||
"KC_R": {
|
||||
"key": "FR_R",
|
||||
"label": "R",
|
||||
}
|
||||
"KC_T": {
|
||||
"key": "FR_T",
|
||||
"label": "T",
|
||||
}
|
||||
"KC_Y": {
|
||||
"key": "FR_Y",
|
||||
"label": "Y",
|
||||
}
|
||||
"KC_U": {
|
||||
"key": "FR_U",
|
||||
"label": "U",
|
||||
}
|
||||
"KC_I": {
|
||||
"key": "FR_I",
|
||||
"label": "I",
|
||||
}
|
||||
"KC_O": {
|
||||
"key": "FR_O",
|
||||
"label": "O",
|
||||
}
|
||||
"KC_P": {
|
||||
"key": "FR_P",
|
||||
"label": "P",
|
||||
}
|
||||
"KC_LBRC": {
|
||||
"key": "FR_MINS",
|
||||
"label": "-",
|
||||
}
|
||||
"KC_RBRC": {
|
||||
"key": "FR_PLUS",
|
||||
"label": "+",
|
||||
}
|
||||
"KC_A": {
|
||||
"key": "FR_Q",
|
||||
"label": "Q",
|
||||
}
|
||||
"KC_S": {
|
||||
"key": "FR_S",
|
||||
"label": "S",
|
||||
}
|
||||
"KC_D": {
|
||||
"key": "FR_D",
|
||||
"label": "D",
|
||||
}
|
||||
"KC_F": {
|
||||
"key": "FR_F",
|
||||
"label": "F",
|
||||
}
|
||||
"KC_G": {
|
||||
"key": "FR_G",
|
||||
"label": "G",
|
||||
}
|
||||
"KC_H": {
|
||||
"key": "FR_H",
|
||||
"label": "H",
|
||||
}
|
||||
"KC_J": {
|
||||
"key": "FR_J",
|
||||
"label": "J",
|
||||
}
|
||||
"KC_K": {
|
||||
"key": "FR_K",
|
||||
"label": "K",
|
||||
}
|
||||
"KC_L": {
|
||||
"key": "FR_L",
|
||||
"label": "L",
|
||||
}
|
||||
"KC_SCLN": {
|
||||
"key": "FR_M",
|
||||
"label": "M",
|
||||
}
|
||||
"KC_QUOT": {
|
||||
"key": "FR_SLSH",
|
||||
"label": "/",
|
||||
}
|
||||
"KC_NUHS": {
|
||||
"key": "FR_ASTR",
|
||||
"label": "*",
|
||||
}
|
||||
"KC_NUBS": {
|
||||
"key": "FR_LABK",
|
||||
"label": "<",
|
||||
}
|
||||
"KC_Z": {
|
||||
"key": "FR_W",
|
||||
"label": "W",
|
||||
}
|
||||
"KC_X": {
|
||||
"key": "FR_X",
|
||||
"label": "X",
|
||||
}
|
||||
"KC_C": {
|
||||
"key": "FR_C",
|
||||
"label": "C",
|
||||
}
|
||||
"KC_V": {
|
||||
"key": "FR_V",
|
||||
"label": "V",
|
||||
}
|
||||
"KC_B": {
|
||||
"key": "FR_B",
|
||||
"label": "B",
|
||||
}
|
||||
"KC_N": {
|
||||
"key": "FR_N",
|
||||
"label": "N",
|
||||
}
|
||||
"KC_M": {
|
||||
"key": "FR_DOT",
|
||||
"label": ".",
|
||||
}
|
||||
"KC_COMM": {
|
||||
"key": "FR_COMM",
|
||||
"label": ",",
|
||||
}
|
||||
"KC_DOT": {
|
||||
"key": "FR_COLN",
|
||||
"label": ":",
|
||||
}
|
||||
"KC_SLSH": {
|
||||
"key": "FR_SCLN",
|
||||
"label": ";",
|
||||
}
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ # │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ " │ ¨ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ – │ ± │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ \ │ ½ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ > │ │ │ │ │ │ │ ? │ ! │ … │ = │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"S(FR_AT)": {
|
||||
"key": "FR_HASH",
|
||||
"label": "#",
|
||||
}
|
||||
"S(FR_AGRV)": {
|
||||
"key": "FR_1",
|
||||
"label": "1",
|
||||
}
|
||||
"S(FR_EACU)": {
|
||||
"key": "FR_2",
|
||||
"label": "2",
|
||||
}
|
||||
"S(FR_EGRV)": {
|
||||
"key": "FR_3",
|
||||
"label": "3",
|
||||
}
|
||||
"S(FR_ECIR)": {
|
||||
"key": "FR_4",
|
||||
"label": "4",
|
||||
}
|
||||
"S(FR_LPRN)": {
|
||||
"key": "FR_5",
|
||||
"label": "5",
|
||||
}
|
||||
"S(FR_RPRN)": {
|
||||
"key": "FR_6",
|
||||
"label": "6",
|
||||
}
|
||||
"S(FR_LSQU)": {
|
||||
"key": "FR_7",
|
||||
"label": "7",
|
||||
}
|
||||
"S(FR_RSQU)": {
|
||||
"key": "FR_8",
|
||||
"label": "8",
|
||||
}
|
||||
"S(FR_LDAQ)": {
|
||||
"key": "FR_9",
|
||||
"label": "9",
|
||||
}
|
||||
"S(FR_RDAQ)": {
|
||||
"key": "FR_0",
|
||||
"label": "0",
|
||||
}
|
||||
"S(FR_QUOT)": {
|
||||
"key": "FR_DQUO",
|
||||
"label": "\"",
|
||||
}
|
||||
"S(FR_DCIR)": {
|
||||
"key": "FR_DIAE",
|
||||
"label": "¨ (dead)",
|
||||
}
|
||||
"S(FR_MINS)": {
|
||||
"key": "FR_NDSH",
|
||||
"label": "–",
|
||||
}
|
||||
"S(FR_PLUS)": {
|
||||
"key": "FR_PLMN",
|
||||
"label": "±",
|
||||
}
|
||||
"S(FR_SLSH)": {
|
||||
"key": "FR_BSLS",
|
||||
"label": "\\",
|
||||
}
|
||||
"S(FR_ASTR)": {
|
||||
"key": "FR_HALF",
|
||||
"label": "½",
|
||||
}
|
||||
"S(FR_LABK)": {
|
||||
"key": "FR_RABK",
|
||||
"label": ">",
|
||||
}
|
||||
"S(FR_DOT)": {
|
||||
"key": "FR_QUES",
|
||||
"label": "?",
|
||||
}
|
||||
"S(FR_COMM)": {
|
||||
"key": "FR_EXLM",
|
||||
"label": "!",
|
||||
}
|
||||
"S(FR_COLN)": {
|
||||
"key": "FR_ELLP",
|
||||
"label": "…",
|
||||
}
|
||||
"S(FR_SCLN)": {
|
||||
"key": "FR_EQL",
|
||||
"label": "=",
|
||||
}
|
||||
/* AltGr symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ˘ │ § │ ´ │ ` │ & │ [ │ ] │ ¯ │ _ │ “ │ ” │ ° │ ˇ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ æ │ £ │ € │ ® │ { │ } │ ù │ ˙ │ œ │ % │ − │ † │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ θ │ ß │ $ │ ¤ │ µ │ Eu│ │ ∕ │ | │ ∞ │ ÷ │ × │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ ≤ │ ʒ │ © │ ç │ ¸ │ − │ ~ │ ¿ │ ¡ │ · │ ≃ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"ALGR(FR_AT)": {
|
||||
"key": "FR_BREV",
|
||||
"label": "˘ (dead)",
|
||||
}
|
||||
"ALGR(FR_AGRV)": {
|
||||
"key": "FR_SECT",
|
||||
"label": "§",
|
||||
}
|
||||
"ALGR(FR_EACU)": {
|
||||
"key": "FR_ACUT",
|
||||
"label": "´ (dead)",
|
||||
}
|
||||
"ALGR(FR_EGRV)": {
|
||||
"key": "FR_GRV",
|
||||
"label": "` (dead)",
|
||||
}
|
||||
"ALGR(FR_ECIR)": {
|
||||
"key": "FR_AMPR",
|
||||
"label": "&",
|
||||
}
|
||||
"ALGR(FR_LPRN)": {
|
||||
"key": "FR_LBRC",
|
||||
"label": "[",
|
||||
}
|
||||
"ALGR(FR_RPRN)": {
|
||||
"key": "FR_RBRC",
|
||||
"label": "]",
|
||||
}
|
||||
"ALGR(FR_LSQU)": {
|
||||
"key": "FR_MACR",
|
||||
"label": "¯ (dead)",
|
||||
}
|
||||
"ALGR(FR_RSQU)": {
|
||||
"key": "FR_UNDS",
|
||||
"label": "_",
|
||||
}
|
||||
"ALGR(FR_LDAQ)": {
|
||||
"key": "FR_LDQU",
|
||||
"label": "“",
|
||||
}
|
||||
"ALGR(FR_RDAQ)": {
|
||||
"key": "FR_RDQU",
|
||||
"label": "”",
|
||||
}
|
||||
"ALGR(FR_QUOT)": {
|
||||
"key": "FR_DEG",
|
||||
"label": "°",
|
||||
}
|
||||
"ALGR(FR_DCIR)": {
|
||||
"key": "FR_CARN",
|
||||
"label": "ˇ (dead)",
|
||||
}
|
||||
"ALGR(FR_A)": {
|
||||
"key": "FR_AE",
|
||||
"label": "æ",
|
||||
}
|
||||
"ALGR(FR_Z)": {
|
||||
"key": "FR_PND",
|
||||
"label": "£",
|
||||
}
|
||||
"ALGR(FR_E)": {
|
||||
"key": "FR_EURO",
|
||||
"label": "€",
|
||||
}
|
||||
"ALGR(FR_R)": {
|
||||
"key": "FR_REGD",
|
||||
"label": "®",
|
||||
}
|
||||
"ALGR(FR_T)": {
|
||||
"key": "FR_LCBR",
|
||||
"label": "{",
|
||||
}
|
||||
"ALGR(FR_Y)": {
|
||||
"key": "FR_RCBR",
|
||||
"label": "}",
|
||||
}
|
||||
"ALGR(FR_U)": {
|
||||
"key": "FR_UGRV",
|
||||
"label": "ù",
|
||||
}
|
||||
"ALGR(FR_I)": {
|
||||
"key": "FR_DOTA",
|
||||
"label": "˙ (dead)",
|
||||
}
|
||||
"ALGR(FR_O)": {
|
||||
"key": "FR_OE",
|
||||
"label": "œ",
|
||||
}
|
||||
"ALGR(FR_P)": {
|
||||
"key": "FR_PERC",
|
||||
"label": "%",
|
||||
}
|
||||
"ALGR(FR_MINS)": {
|
||||
"key": "FR_MMNS",
|
||||
"label": "−",
|
||||
}
|
||||
"ALGR(FR_PLUS)": {
|
||||
"key": "FR_DAGG",
|
||||
"label": "†",
|
||||
}
|
||||
"ALGR(FR_Q)": {
|
||||
"key": "FR_THET",
|
||||
"label": "θ",
|
||||
}
|
||||
"ALGR(FR_S)": {
|
||||
"key": "FR_SS",
|
||||
"label": "ß",
|
||||
}
|
||||
"ALGR(FR_D)": {
|
||||
"key": "FR_DLR",
|
||||
"label": "$",
|
||||
}
|
||||
"ALGR(FR_F)": {
|
||||
"key": "FR_CURR",
|
||||
"label": "¤ (dead monetary key)",
|
||||
}
|
||||
"ALGR(FR_G)": {
|
||||
"key": "FR_DGRK",
|
||||
"label": "µ (dead Greek key)",
|
||||
}
|
||||
"ALGR(FR_H)": {
|
||||
"key": "FR_EU",
|
||||
"label": "Eu (dead European symbol key)",
|
||||
}
|
||||
"ALGR(FR_K)": {
|
||||
"key": "FR_DSLS",
|
||||
"label": "∕ (dead)",
|
||||
}
|
||||
"ALGR(FR_L)": {
|
||||
"key": "FR_PIPE",
|
||||
"label": "|",
|
||||
}
|
||||
"ALGR(FR_M)": {
|
||||
"key": "FR_INFN",
|
||||
"label": "∞",
|
||||
}
|
||||
"ALGR(FR_SLSH)": {
|
||||
"key": "FR_DIV",
|
||||
"label": "÷",
|
||||
}
|
||||
"ALGR(FR_ASTR)": {
|
||||
"key": "FR_MUL",
|
||||
"label": "×",
|
||||
}
|
||||
"ALGR(FR_LABK)": {
|
||||
"key": "FR_LEQL",
|
||||
"label": "≤",
|
||||
}
|
||||
"ALGR(FR_W)": {
|
||||
"key": "FR_EZH",
|
||||
"label": "ʒ",
|
||||
}
|
||||
"ALGR(FR_X)": {
|
||||
"key": "FR_COPY",
|
||||
"label": "©",
|
||||
}
|
||||
"ALGR(FR_C)": {
|
||||
"key": "FR_CCED",
|
||||
"label": "ç",
|
||||
}
|
||||
"ALGR(FR_V)": {
|
||||
"key": "FR_CEDL",
|
||||
"label": "¸ (dead)",
|
||||
}
|
||||
"ALGR(FR_B)": {
|
||||
"key": "FR_DMNS",
|
||||
"label": "− (dead)",
|
||||
}
|
||||
"ALGR(FR_N)": {
|
||||
"key": "FR_DTIL",
|
||||
"label": "~ (dead)",
|
||||
}
|
||||
"ALGR(FR_DOT)": {
|
||||
"key": "FR_IQUE",
|
||||
"label": "¿",
|
||||
}
|
||||
"ALGR(FR_COMM)": {
|
||||
"key": "FR_IEXL",
|
||||
"label": "¡",
|
||||
}
|
||||
"ALGR(FR_COLN)": {
|
||||
"key": "FR_MDDT",
|
||||
"label": "·",
|
||||
}
|
||||
"ALGR(FR_SCLN)": {
|
||||
"key": "FR_AEQL",
|
||||
"label": "≃",
|
||||
}
|
||||
/* Shift+AltGr symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ̑ │ │ │ │ │ ˝ │ ̏ │ │ — │ ‹ │ › │ ˚ │ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ ™ │ │ │ ̣ │ │ ‰ │ ‑ │ ‡ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ ˍ │ │ │ │ │ √ │ ¼ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ ≥ │ │ │ │ ˛ │ │ │ │ ̦ │ │ ≠ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"S(ALGR(FR_AT))": {
|
||||
"key": "FR_IBRV",
|
||||
"label": "̑ (dead)",
|
||||
}
|
||||
"S(ALGR(FR_LPRN))": {
|
||||
"key": "FR_DACU",
|
||||
"label": "˝ (dead)",
|
||||
}
|
||||
"S(ALGR(FR_RPRN))": {
|
||||
"key": "FR_DGRV",
|
||||
"label": "̏ (dead)",
|
||||
}
|
||||
"S(ALGR(FR_RSQU))": {
|
||||
"key": "FR_MDSH",
|
||||
"label": "—",
|
||||
}
|
||||
"S(ALGR(FR_LDAQ))": {
|
||||
"key": "FR_LSAQ",
|
||||
"label": "‹",
|
||||
}
|
||||
"S(ALGR(FR_RDAQ))": {
|
||||
"key": "FR_RSAQ",
|
||||
"label": "›",
|
||||
}
|
||||
"S(ALGR(FR_QUOT))": {
|
||||
"key": "FR_RNGA",
|
||||
"label": "˚ (dead)",
|
||||
}
|
||||
"S(ALGR(FR_T))": {
|
||||
"key": "FR_TM",
|
||||
"label": "™",
|
||||
}
|
||||
"S(ALGR(FR_I))": {
|
||||
"key": "FR_DOTB",
|
||||
"label": "̣ (dead)",
|
||||
}
|
||||
"S(ALGR(FR_P))": {
|
||||
"key": "FR_PERM",
|
||||
"label": "‰",
|
||||
}
|
||||
"S(ALGR(FR_MINS))": {
|
||||
"key": "FR_NBHY",
|
||||
"label": "‑ (non-breaking hyphen)",
|
||||
}
|
||||
"S(ALGR(FR_PLUS))": {
|
||||
"key": "FR_DDAG",
|
||||
"label": "‡",
|
||||
}
|
||||
"S(ALGR(FR_H))": {
|
||||
"key": "FR_MACB",
|
||||
"label": "ˍ (dead)",
|
||||
}
|
||||
"S(ALGR(FR_SLSH))": {
|
||||
"key": "FR_SQRT",
|
||||
"label": "√",
|
||||
}
|
||||
"S(ALGR(FR_ASTR))": {
|
||||
"key": "FR_QRTR",
|
||||
"label": "¼",
|
||||
}
|
||||
"S(ALGR(FR_LABK))": {
|
||||
"key": "FR_GEQL",
|
||||
"label": "≥",
|
||||
}
|
||||
"S(ALGR(FR_V))": {
|
||||
"key": "FR_OGON",
|
||||
"label": "˛ (dead)",
|
||||
}
|
||||
"S(ALGR(FR_COMM))": {
|
||||
"key": "FR_DCMM",
|
||||
"label": "̦ (dead)",
|
||||
}
|
||||
"S(ALGR(FR_SCLN))": {
|
||||
"key": "FR_NEQL",
|
||||
"label": "≠",
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,676 @@
|
||||
{
|
||||
"aliases": {
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
|
||||
* │ @ │ & │ é │ " │ ' │ ( │ § │ è │ ! │ ç │ à │ ) │ - │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
|
||||
* │ │ A │ Z │ E │ R │ T │ Y │ U │ I │ O │ P │ ^ │ $ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ Q │ S │ D │ F │ G │ H │ J │ K │ L │ M │ ù │ ` │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
|
||||
* │ │ < │ W │ X │ C │ V │ B │ N │ , │ ; │ : │ = │ │
|
||||
* ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
|
||||
* │ │ │ │ │ │ │ │
|
||||
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
|
||||
*/
|
||||
"KC_GRV": {
|
||||
"key": "FR_AT",
|
||||
"label": "@",
|
||||
}
|
||||
"KC_1": {
|
||||
"key": "FR_AMPR",
|
||||
"label": "&",
|
||||
}
|
||||
"KC_2": {
|
||||
"key": "FR_LEAC",
|
||||
"label": "é",
|
||||
}
|
||||
"KC_3": {
|
||||
"key": "FR_DQUO",
|
||||
"label": "\"",
|
||||
}
|
||||
"KC_4": {
|
||||
"key": "FR_QUOT",
|
||||
"label": "'",
|
||||
}
|
||||
"KC_5": {
|
||||
"key": "FR_LPRN",
|
||||
"label": "(",
|
||||
}
|
||||
"KC_6": {
|
||||
"key": "FR_SECT",
|
||||
"label": "§",
|
||||
}
|
||||
"KC_7": {
|
||||
"key": "FR_LEGR",
|
||||
"label": "è",
|
||||
}
|
||||
"KC_8": {
|
||||
"key": "FR_EXLM",
|
||||
"label": "!",
|
||||
}
|
||||
"KC_9": {
|
||||
"key": "FR_LCCE",
|
||||
"label": "ç",
|
||||
}
|
||||
"KC_0": {
|
||||
"key": "FR_LAGR",
|
||||
"label": "à",
|
||||
}
|
||||
"KC_MINS": {
|
||||
"key": "FR_RPRN",
|
||||
"label": ")",
|
||||
}
|
||||
"KC_EQL": {
|
||||
"key": "FR_MINS",
|
||||
"label": "-",
|
||||
}
|
||||
"KC_Q": {
|
||||
"key": "FR_A",
|
||||
"label": "A",
|
||||
}
|
||||
"KC_W": {
|
||||
"key": "FR_Z",
|
||||
"label": "Z",
|
||||
}
|
||||
"KC_E": {
|
||||
"key": "FR_E",
|
||||
"label": "E",
|
||||
}
|
||||
"KC_R": {
|
||||
"key": "FR_R",
|
||||
"label": "R",
|
||||
}
|
||||
"KC_T": {
|
||||
"key": "FR_T",
|
||||
"label": "T",
|
||||
}
|
||||
"KC_Y": {
|
||||
"key": "FR_Y",
|
||||
"label": "Y",
|
||||
}
|
||||
"KC_U": {
|
||||
"key": "FR_U",
|
||||
"label": "U",
|
||||
}
|
||||
"KC_I": {
|
||||
"key": "FR_I",
|
||||
"label": "I",
|
||||
}
|
||||
"KC_O": {
|
||||
"key": "FR_O",
|
||||
"label": "O",
|
||||
}
|
||||
"KC_P": {
|
||||
"key": "FR_P",
|
||||
"label": "P",
|
||||
}
|
||||
"KC_LBRC": {
|
||||
"key": "FR_CIRC",
|
||||
"label": "^",
|
||||
}
|
||||
"KC_RBRC": {
|
||||
"key": "FR_DLR",
|
||||
"label": "$",
|
||||
}
|
||||
"KC_A": {
|
||||
"key": "FR_Q",
|
||||
"label": "Q",
|
||||
}
|
||||
"KC_S": {
|
||||
"key": "FR_S",
|
||||
"label": "S",
|
||||
}
|
||||
"KC_D": {
|
||||
"key": "FR_D",
|
||||
"label": "D",
|
||||
}
|
||||
"KC_F": {
|
||||
"key": "FR_F",
|
||||
"label": "F",
|
||||
}
|
||||
"KC_G": {
|
||||
"key": "FR_G",
|
||||
"label": "G",
|
||||
}
|
||||
"KC_H": {
|
||||
"key": "FR_H",
|
||||
"label": "H",
|
||||
}
|
||||
"KC_J": {
|
||||
"key": "FR_J",
|
||||
"label": "J",
|
||||
}
|
||||
"KC_K": {
|
||||
"key": "FR_K",
|
||||
"label": "K",
|
||||
}
|
||||
"KC_L": {
|
||||
"key": "FR_L",
|
||||
"label": "L",
|
||||
}
|
||||
"KC_SCLN": {
|
||||
"key": "FR_M",
|
||||
"label": "M",
|
||||
}
|
||||
"KC_QUOT": {
|
||||
"key": "FR_LUGR",
|
||||
"label": "ù",
|
||||
}
|
||||
"KC_NUHS": {
|
||||
"key": "FR_GRV",
|
||||
"label": "`",
|
||||
}
|
||||
"KC_NUBS": {
|
||||
"key": "FR_LABK",
|
||||
"label": "<",
|
||||
}
|
||||
"KC_Z": {
|
||||
"key": "FR_W",
|
||||
"label": "W",
|
||||
}
|
||||
"KC_X": {
|
||||
"key": "FR_X",
|
||||
"label": "X",
|
||||
}
|
||||
"KC_C": {
|
||||
"key": "FR_C",
|
||||
"label": "C",
|
||||
}
|
||||
"KC_V": {
|
||||
"key": "FR_V",
|
||||
"label": "V",
|
||||
}
|
||||
"KC_B": {
|
||||
"key": "FR_B",
|
||||
"label": "B",
|
||||
}
|
||||
"KC_N": {
|
||||
"key": "FR_N",
|
||||
"label": "N",
|
||||
}
|
||||
"KC_M": {
|
||||
"key": "FR_COMM",
|
||||
"label": ",",
|
||||
}
|
||||
"KC_COMM": {
|
||||
"key": "FR_SCLN",
|
||||
"label": ";",
|
||||
}
|
||||
"KC_DOT": {
|
||||
"key": "FR_COLN",
|
||||
"label": ":",
|
||||
}
|
||||
"KC_SLSH": {
|
||||
"key": "FR_EQL",
|
||||
"label": "=",
|
||||
}
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
|
||||
* │ # │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ° │ _ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ ¨ │ * │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ % │ £ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
|
||||
* │ │ > │ │ │ │ │ │ │ ? │ . │ / │ + │ │
|
||||
* ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
|
||||
* │ │ │ │ │ │ │ │
|
||||
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
|
||||
*/
|
||||
"S(FR_AT)": {
|
||||
"key": "FR_HASH",
|
||||
"label": "#",
|
||||
}
|
||||
"S(FR_AMPR)": {
|
||||
"key": "FR_1",
|
||||
"label": "1",
|
||||
}
|
||||
"S(FR_LEAC)": {
|
||||
"key": "FR_2",
|
||||
"label": "2",
|
||||
}
|
||||
"S(FR_DQUO)": {
|
||||
"key": "FR_3",
|
||||
"label": "3",
|
||||
}
|
||||
"S(FR_QUOT)": {
|
||||
"key": "FR_4",
|
||||
"label": "4",
|
||||
}
|
||||
"S(FR_LPRN)": {
|
||||
"key": "FR_5",
|
||||
"label": "5",
|
||||
}
|
||||
"S(FR_SECT)": {
|
||||
"key": "FR_6",
|
||||
"label": "6",
|
||||
}
|
||||
"S(FR_LEGR)": {
|
||||
"key": "FR_7",
|
||||
"label": "7",
|
||||
}
|
||||
"S(FR_EXLM)": {
|
||||
"key": "FR_8",
|
||||
"label": "8",
|
||||
}
|
||||
"S(FR_LCCE)": {
|
||||
"key": "FR_9",
|
||||
"label": "9",
|
||||
}
|
||||
"S(FR_LAGR)": {
|
||||
"key": "FR_0",
|
||||
"label": "0",
|
||||
}
|
||||
"S(FR_RPRN)": {
|
||||
"key": "FR_DEG",
|
||||
"label": "°",
|
||||
}
|
||||
"S(FR_MINS)": {
|
||||
"key": "FR_UNDS",
|
||||
"label": "_",
|
||||
}
|
||||
"S(FR_CIRC)": {
|
||||
"key": "FR_DIAE",
|
||||
"label": "¨ (dead)",
|
||||
}
|
||||
"S(FR_DLR)": {
|
||||
"key": "FR_ASTR",
|
||||
"label": "*",
|
||||
}
|
||||
"S(FR_LUGR)": {
|
||||
"key": "FR_PERC",
|
||||
"label": "%",
|
||||
}
|
||||
"S(FR_GRV)": {
|
||||
"key": "FR_PND",
|
||||
"label": "£",
|
||||
}
|
||||
"S(FR_LABK)": {
|
||||
"key": "FR_RABK",
|
||||
"label": ">",
|
||||
}
|
||||
"S(FR_COMM)": {
|
||||
"key": "FR_QUES",
|
||||
"label": "?",
|
||||
}
|
||||
"S(FR_SCLN)": {
|
||||
"key": "FR_DOT",
|
||||
"label": ".",
|
||||
}
|
||||
"S(FR_COLN)": {
|
||||
"key": "FR_SLSH",
|
||||
"label": "/",
|
||||
}
|
||||
"S(FR_EQL)": {
|
||||
"key": "FR_PLUS",
|
||||
"label": "+",
|
||||
}
|
||||
/* Alted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
|
||||
* │ • │ │ ë │ “ │ ‘ │ { │ ¶ │ « │ ¡ │ Ç │ Ø │ } │ — │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
|
||||
* │ │ Æ │  │ Ê │ ® │ † │ Ú │ º │ î │ Œ │ π │ Ô │ € │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ ‡ │ Ò │ ∂ │ ƒ │ fi │ Ì │ Ï │ È │ ¬ │ µ │ Ù │ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
|
||||
* │ │ ≤ │ ‹ │ ≈ │ © │ ◊ │ ß │ ~ │ ∞ │ … │ ÷ │ ≠ │ │
|
||||
* ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
|
||||
* │ │ │ │ │ │ │ │
|
||||
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
|
||||
*/
|
||||
"A(FR_AT)": {
|
||||
"key": "FR_BULT",
|
||||
"label": "•",
|
||||
}
|
||||
"A(FR_AMPR)": {
|
||||
"key": "FR_APPL",
|
||||
"label": " (Apple logo)",
|
||||
}
|
||||
"A(FR_LEAC)": {
|
||||
"key": "FR_LEDI",
|
||||
"label": "ë",
|
||||
}
|
||||
"A(FR_DQUO)": {
|
||||
"key": "FR_LDQU",
|
||||
"label": "“",
|
||||
}
|
||||
"A(FR_QUOT)": {
|
||||
"key": "FR_LSQU",
|
||||
"label": "‘",
|
||||
}
|
||||
"A(FR_LPRN)": {
|
||||
"key": "FR_LCBR",
|
||||
"label": "{",
|
||||
}
|
||||
"A(FR_SECT)": {
|
||||
"key": "FR_PILC",
|
||||
"label": "¶",
|
||||
}
|
||||
"A(FR_LEGR)": {
|
||||
"key": "FR_LDAQ",
|
||||
"label": "«",
|
||||
}
|
||||
"A(FR_EXLM)": {
|
||||
"key": "FR_IEXL",
|
||||
"label": "¡",
|
||||
}
|
||||
"A(FR_LCCE)": {
|
||||
"key": "FR_CCCE",
|
||||
"label": "Ç",
|
||||
}
|
||||
"A(FR_LAGR)": {
|
||||
"key": "FR_OSTR",
|
||||
"label": "Ø",
|
||||
}
|
||||
"A(FR_RPRN)": {
|
||||
"key": "FR_RCBR",
|
||||
"label": "}",
|
||||
}
|
||||
"A(FR_MINS)": {
|
||||
"key": "FR_MDSH",
|
||||
"label": "—",
|
||||
}
|
||||
"A(FR_A)": {
|
||||
"key": "FR_AE",
|
||||
"label": "Æ",
|
||||
}
|
||||
"A(FR_Z)": {
|
||||
"key": "FR_CACI",
|
||||
"label": "Â",
|
||||
}
|
||||
"A(FR_E)": {
|
||||
"key": "FR_ECIR",
|
||||
"label": "Ê",
|
||||
}
|
||||
"A(FR_R)": {
|
||||
"key": "FR_REGD",
|
||||
"label": "®",
|
||||
}
|
||||
"A(FR_T)": {
|
||||
"key": "FR_DAGG",
|
||||
"label": "†",
|
||||
}
|
||||
"A(FR_Y)": {
|
||||
"key": "FR_CUAC",
|
||||
"label": "Ú",
|
||||
}
|
||||
"A(FR_U)": {
|
||||
"key": "FR_MORD",
|
||||
"label": "º",
|
||||
}
|
||||
"A(FR_I)": {
|
||||
"key": "FR_LICI",
|
||||
"label": "î",
|
||||
}
|
||||
"A(FR_O)": {
|
||||
"key": "FR_OE",
|
||||
"label": "Œ",
|
||||
}
|
||||
"A(FR_P)": {
|
||||
"key": "FR_PI",
|
||||
"label": "π",
|
||||
}
|
||||
"A(FR_CIRC)": {
|
||||
"key": "FR_OCIR",
|
||||
"label": "Ô",
|
||||
}
|
||||
"A(FR_DLR)": {
|
||||
"key": "FR_EURO",
|
||||
"label": "€",
|
||||
}
|
||||
"A(FR_Q)": {
|
||||
"key": "FR_DDAG",
|
||||
"label": "‡",
|
||||
}
|
||||
"A(FR_S)": {
|
||||
"key": "FR_COGR",
|
||||
"label": "Ò",
|
||||
}
|
||||
"A(FR_D)": {
|
||||
"key": "FR_PDIF",
|
||||
"label": "∂",
|
||||
}
|
||||
"A(FR_F)": {
|
||||
"key": "FR_FHK",
|
||||
"label": "ƒ",
|
||||
}
|
||||
"A(FR_G)": {
|
||||
"key": "FR_FI",
|
||||
"label": "fi",
|
||||
}
|
||||
"A(FR_H)": {
|
||||
"key": "FR_CIGR",
|
||||
"label": "Ì",
|
||||
}
|
||||
"A(FR_J)": {
|
||||
"key": "FR_CIDI",
|
||||
"label": "Ï",
|
||||
}
|
||||
"A(FR_K)": {
|
||||
"key": "FR_CEGR",
|
||||
"label": "È",
|
||||
}
|
||||
"A(FR_L)": {
|
||||
"key": "FR_NOT",
|
||||
"label": "¬",
|
||||
}
|
||||
"A(FR_M)": {
|
||||
"key": "FR_MICR",
|
||||
"label": "µ",
|
||||
}
|
||||
"A(FR_LUGR)": {
|
||||
"key": "FR_CUGR",
|
||||
"label": "Ù",
|
||||
}
|
||||
"A(FR_LABK)": {
|
||||
"key": "FR_LTEQ",
|
||||
"label": "≤",
|
||||
}
|
||||
"A(FR_W)": {
|
||||
"key": "FR_LSAQ",
|
||||
"label": "‹",
|
||||
}
|
||||
"A(FR_X)": {
|
||||
"key": "FR_AEQL",
|
||||
"label": "≈",
|
||||
}
|
||||
"A(FR_C)": {
|
||||
"key": "FR_COPY",
|
||||
"label": "©",
|
||||
}
|
||||
"A(FR_V)": {
|
||||
"key": "FR_LOZN",
|
||||
"label": "◊",
|
||||
}
|
||||
"A(FR_B)": {
|
||||
"key": "FR_SS",
|
||||
"label": "ß",
|
||||
}
|
||||
"A(FR_N)": {
|
||||
"key": "FR_TILD",
|
||||
"label": "~ (dead)",
|
||||
}
|
||||
"A(FR_COMM)": {
|
||||
"key": "FR_INFN",
|
||||
"label": "∞",
|
||||
}
|
||||
"A(FR_SCLN)": {
|
||||
"key": "FR_ELLP",
|
||||
"label": "…",
|
||||
}
|
||||
"A(FR_COLN)": {
|
||||
"key": "FR_DIV",
|
||||
"label": "÷",
|
||||
}
|
||||
"A(FR_EQL)": {
|
||||
"key": "FR_NEQL",
|
||||
"label": "≠",
|
||||
}
|
||||
/* Shift+Alted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
|
||||
* │ Ÿ │ ´ │ „ │ │ │ [ │ å │ » │ Û │ Á │ │ ] │ – │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
|
||||
* │ │ │ Å │ │ ‚ │ ™ │ │ ª │ ï │ │ ∏ │ │ ¥ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ Ω │ ∑ │ ∆ │ · │ fl │ Î │ Í │ Ë │ | │ Ó │ ‰ │ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
|
||||
* │ │ ≥ │ › │ ⁄ │ ¢ │ √ │ ∫ │ ı │ ¿ │ │ \ │ ± │ │
|
||||
* ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
|
||||
* │ │ │ │ │ │ │ │
|
||||
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
|
||||
*/
|
||||
"S(A(FR_AT))": {
|
||||
"key": "FR_CYDI",
|
||||
"label": "Ÿ",
|
||||
}
|
||||
"S(A(FR_AMPR))": {
|
||||
"key": "FR_ACUT",
|
||||
"label": "´ (dead)",
|
||||
}
|
||||
"S(A(FR_LEAC))": {
|
||||
"key": "FR_DLQU",
|
||||
"label": "„",
|
||||
}
|
||||
"S(A(FR_LPRN))": {
|
||||
"key": "FR_LBRC",
|
||||
"label": "[",
|
||||
}
|
||||
"S(A(FR_SECT))": {
|
||||
"key": "FR_LARI",
|
||||
"label": "å",
|
||||
}
|
||||
"S(A(FR_LEGR))": {
|
||||
"key": "FR_RDAQ",
|
||||
"label": "»",
|
||||
}
|
||||
"S(A(FR_EXLM))": {
|
||||
"key": "FR_CUCI",
|
||||
"label": "Û",
|
||||
}
|
||||
"S(A(FR_LCCE))": {
|
||||
"key": "FR_CAAC",
|
||||
"label": "Á",
|
||||
}
|
||||
"S(A(FR_RPRN))": {
|
||||
"key": "FR_RBRC",
|
||||
"label": "]",
|
||||
}
|
||||
"S(A(FR_MINS))": {
|
||||
"key": "FR_NDSH",
|
||||
"label": "–",
|
||||
}
|
||||
"S(A(FR_Z))": {
|
||||
"key": "FR_CARI",
|
||||
"label": "Å",
|
||||
}
|
||||
"S(A(FR_R))": {
|
||||
"key": "FR_SLQU",
|
||||
"label": "‚",
|
||||
}
|
||||
"S(A(FR_T))": {
|
||||
"key": "FR_TM",
|
||||
"label": "™",
|
||||
}
|
||||
"S(A(FR_U))": {
|
||||
"key": "FR_FORD",
|
||||
"label": "ª",
|
||||
}
|
||||
"S(A(FR_I))": {
|
||||
"key": "FR_LIDI",
|
||||
"label": "ï",
|
||||
}
|
||||
"S(A(FR_P))": {
|
||||
"key": "FR_NARP",
|
||||
"label": "∏",
|
||||
}
|
||||
"S(A(FR_DLR))": {
|
||||
"key": "FR_YEN",
|
||||
"label": "¥",
|
||||
}
|
||||
"S(A(FR_Q))": {
|
||||
"key": "FR_OMEG",
|
||||
"label": "Ω",
|
||||
}
|
||||
"S(A(FR_S))": {
|
||||
"key": "FR_NARS",
|
||||
"label": "∑",
|
||||
}
|
||||
"S(A(FR_D))": {
|
||||
"key": "FR_INCR",
|
||||
"label": "∆",
|
||||
}
|
||||
"S(A(FR_F))": {
|
||||
"key": "FR_MDDT",
|
||||
"label": "·",
|
||||
}
|
||||
"S(A(FR_G))": {
|
||||
"key": "FR_FL",
|
||||
"label": "fl",
|
||||
}
|
||||
"S(A(FR_H))": {
|
||||
"key": "FR_CICI",
|
||||
"label": "Î",
|
||||
}
|
||||
"S(A(FR_J))": {
|
||||
"key": "FR_CIAC",
|
||||
"label": "Í",
|
||||
}
|
||||
"S(A(FR_K))": {
|
||||
"key": "FR_CEDI",
|
||||
"label": "Ë",
|
||||
}
|
||||
"S(A(FR_L))": {
|
||||
"key": "FR_PIPE",
|
||||
"label": "|",
|
||||
}
|
||||
"S(A(FR_M))": {
|
||||
"key": "FR_COAC",
|
||||
"label": "Ó",
|
||||
}
|
||||
"S(A(FR_LUGR))": {
|
||||
"key": "FR_PERM",
|
||||
"label": "‰",
|
||||
}
|
||||
"S(A(FR_LABK))": {
|
||||
"key": "FR_GTEQ",
|
||||
"label": "≥",
|
||||
}
|
||||
"S(A(FR_W))": {
|
||||
"key": "FR_RSAQ",
|
||||
"label": "›",
|
||||
}
|
||||
"S(A(FR_X))": {
|
||||
"key": "FR_FRSL",
|
||||
"label": "⁄",
|
||||
}
|
||||
"S(A(FR_C))": {
|
||||
"key": "FR_CENT",
|
||||
"label": "¢",
|
||||
}
|
||||
"S(A(FR_V))": {
|
||||
"key": "FR_SQRT",
|
||||
"label": "√",
|
||||
}
|
||||
"S(A(FR_B))": {
|
||||
"key": "FR_INTG",
|
||||
"label": "∫",
|
||||
}
|
||||
"S(A(FR_N))": {
|
||||
"key": "FR_DLSI",
|
||||
"label": "ı",
|
||||
}
|
||||
"S(A(FR_COMM))": {
|
||||
"key": "FR_IQUE",
|
||||
"label": "¿",
|
||||
}
|
||||
"S(A(FR_COLN))": {
|
||||
"key": "FR_BSLS",
|
||||
"label": "\\",
|
||||
}
|
||||
"S(A(FR_EQL))": {
|
||||
"key": "FR_PLMN",
|
||||
"label": "±",
|
||||
}
|
||||
}
|
||||
}
|
||||
359
data/constants/keycodes/extras/keycodes_german_0.0.1.hjson
Normal file
359
data/constants/keycodes/extras/keycodes_german_0.0.1.hjson
Normal file
@@ -0,0 +1,359 @@
|
||||
{
|
||||
"aliases": {
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ^ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ß │ ´ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ Q │ W │ E │ R │ T │ Z │ U │ I │ O │ P │ Ü │ + │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Ö │ Ä │ # │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ < │ Y │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"KC_GRV": {
|
||||
"key": "DE_CIRC",
|
||||
"label": "^ (dead)",
|
||||
}
|
||||
"KC_1": {
|
||||
"key": "DE_1",
|
||||
"label": "1",
|
||||
}
|
||||
"KC_2": {
|
||||
"key": "DE_2",
|
||||
"label": "2",
|
||||
}
|
||||
"KC_3": {
|
||||
"key": "DE_3",
|
||||
"label": "3",
|
||||
}
|
||||
"KC_4": {
|
||||
"key": "DE_4",
|
||||
"label": "4",
|
||||
}
|
||||
"KC_5": {
|
||||
"key": "DE_5",
|
||||
"label": "5",
|
||||
}
|
||||
"KC_6": {
|
||||
"key": "DE_6",
|
||||
"label": "6",
|
||||
}
|
||||
"KC_7": {
|
||||
"key": "DE_7",
|
||||
"label": "7",
|
||||
}
|
||||
"KC_8": {
|
||||
"key": "DE_8",
|
||||
"label": "8",
|
||||
}
|
||||
"KC_9": {
|
||||
"key": "DE_9",
|
||||
"label": "9",
|
||||
}
|
||||
"KC_0": {
|
||||
"key": "DE_0",
|
||||
"label": "0",
|
||||
}
|
||||
"KC_MINS": {
|
||||
"key": "DE_SS",
|
||||
"label": "ß",
|
||||
}
|
||||
"KC_EQL": {
|
||||
"key": "DE_ACUT",
|
||||
"label": "´ (dead)",
|
||||
}
|
||||
"KC_Q": {
|
||||
"key": "DE_Q",
|
||||
"label": "Q",
|
||||
}
|
||||
"KC_W": {
|
||||
"key": "DE_W",
|
||||
"label": "W",
|
||||
}
|
||||
"KC_E": {
|
||||
"key": "DE_E",
|
||||
"label": "E",
|
||||
}
|
||||
"KC_R": {
|
||||
"key": "DE_R",
|
||||
"label": "R",
|
||||
}
|
||||
"KC_T": {
|
||||
"key": "DE_T",
|
||||
"label": "T",
|
||||
}
|
||||
"KC_Y": {
|
||||
"key": "DE_Z",
|
||||
"label": "Z",
|
||||
}
|
||||
"KC_U": {
|
||||
"key": "DE_U",
|
||||
"label": "U",
|
||||
}
|
||||
"KC_I": {
|
||||
"key": "DE_I",
|
||||
"label": "I",
|
||||
}
|
||||
"KC_O": {
|
||||
"key": "DE_O",
|
||||
"label": "O",
|
||||
}
|
||||
"KC_P": {
|
||||
"key": "DE_P",
|
||||
"label": "P",
|
||||
}
|
||||
"KC_LBRC": {
|
||||
"key": "DE_UDIA",
|
||||
"label": "Ü",
|
||||
}
|
||||
"KC_RBRC": {
|
||||
"key": "DE_PLUS",
|
||||
"label": "+",
|
||||
}
|
||||
"KC_A": {
|
||||
"key": "DE_A",
|
||||
"label": "A",
|
||||
}
|
||||
"KC_S": {
|
||||
"key": "DE_S",
|
||||
"label": "S",
|
||||
}
|
||||
"KC_D": {
|
||||
"key": "DE_D",
|
||||
"label": "D",
|
||||
}
|
||||
"KC_F": {
|
||||
"key": "DE_F",
|
||||
"label": "F",
|
||||
}
|
||||
"KC_G": {
|
||||
"key": "DE_G",
|
||||
"label": "G",
|
||||
}
|
||||
"KC_H": {
|
||||
"key": "DE_H",
|
||||
"label": "H",
|
||||
}
|
||||
"KC_J": {
|
||||
"key": "DE_J",
|
||||
"label": "J",
|
||||
}
|
||||
"KC_K": {
|
||||
"key": "DE_K",
|
||||
"label": "K",
|
||||
}
|
||||
"KC_L": {
|
||||
"key": "DE_L",
|
||||
"label": "L",
|
||||
}
|
||||
"KC_SCLN": {
|
||||
"key": "DE_ODIA",
|
||||
"label": "Ö",
|
||||
}
|
||||
"KC_QUOT": {
|
||||
"key": "DE_ADIA",
|
||||
"label": "Ä",
|
||||
}
|
||||
"KC_NUHS": {
|
||||
"key": "DE_HASH",
|
||||
"label": "#",
|
||||
}
|
||||
"KC_NUBS": {
|
||||
"key": "DE_LABK",
|
||||
"label": "<",
|
||||
}
|
||||
"KC_Z": {
|
||||
"key": "DE_Y",
|
||||
"label": "Y",
|
||||
}
|
||||
"KC_X": {
|
||||
"key": "DE_X",
|
||||
"label": "X",
|
||||
}
|
||||
"KC_C": {
|
||||
"key": "DE_C",
|
||||
"label": "C",
|
||||
}
|
||||
"KC_V": {
|
||||
"key": "DE_V",
|
||||
"label": "V",
|
||||
}
|
||||
"KC_B": {
|
||||
"key": "DE_B",
|
||||
"label": "B",
|
||||
}
|
||||
"KC_N": {
|
||||
"key": "DE_N",
|
||||
"label": "N",
|
||||
}
|
||||
"KC_M": {
|
||||
"key": "DE_M",
|
||||
"label": "M",
|
||||
}
|
||||
"KC_COMM": {
|
||||
"key": "DE_COMM",
|
||||
"label": ",",
|
||||
}
|
||||
"KC_DOT": {
|
||||
"key": "DE_DOT",
|
||||
"label": ".",
|
||||
}
|
||||
"KC_SLSH": {
|
||||
"key": "DE_MINS",
|
||||
"label": "-",
|
||||
}
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ° │ ! │ " │ § │ $ │ % │ & │ / │ ( │ ) │ = │ ? │ ` │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ * │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ ' │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ > │ │ │ │ │ │ │ │ ; │ : │ _ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"S(DE_CIRC)": {
|
||||
"key": "DE_DEG",
|
||||
"label": "°",
|
||||
}
|
||||
"S(DE_1)": {
|
||||
"key": "DE_EXLM",
|
||||
"label": "!",
|
||||
}
|
||||
"S(DE_2)": {
|
||||
"key": "DE_DQUO",
|
||||
"label": "\"",
|
||||
}
|
||||
"S(DE_3)": {
|
||||
"key": "DE_SECT",
|
||||
"label": "§",
|
||||
}
|
||||
"S(DE_4)": {
|
||||
"key": "DE_DLR",
|
||||
"label": "$",
|
||||
}
|
||||
"S(DE_5)": {
|
||||
"key": "DE_PERC",
|
||||
"label": "%",
|
||||
}
|
||||
"S(DE_6)": {
|
||||
"key": "DE_AMPR",
|
||||
"label": "&",
|
||||
}
|
||||
"S(DE_7)": {
|
||||
"key": "DE_SLSH",
|
||||
"label": "/",
|
||||
}
|
||||
"S(DE_8)": {
|
||||
"key": "DE_LPRN",
|
||||
"label": "(",
|
||||
}
|
||||
"S(DE_9)": {
|
||||
"key": "DE_RPRN",
|
||||
"label": ")",
|
||||
}
|
||||
"S(DE_0)": {
|
||||
"key": "DE_EQL",
|
||||
"label": "=",
|
||||
}
|
||||
"S(DE_SS)": {
|
||||
"key": "DE_QUES",
|
||||
"label": "?",
|
||||
}
|
||||
"S(DE_ACUT)": {
|
||||
"key": "DE_GRV",
|
||||
"label": "` (dead)",
|
||||
}
|
||||
"S(DE_PLUS)": {
|
||||
"key": "DE_ASTR",
|
||||
"label": "*",
|
||||
}
|
||||
"S(DE_HASH)": {
|
||||
"key": "DE_QUOT",
|
||||
"label": "'",
|
||||
}
|
||||
"S(DE_LABK)": {
|
||||
"key": "DE_RABK",
|
||||
"label": ">",
|
||||
}
|
||||
"S(DE_COMM)": {
|
||||
"key": "DE_SCLN",
|
||||
"label": ";",
|
||||
}
|
||||
"S(DE_DOT)": {
|
||||
"key": "DE_COLN",
|
||||
"label": ":",
|
||||
}
|
||||
"S(DE_MINS)": {
|
||||
"key": "DE_UNDS",
|
||||
"label": "_",
|
||||
}
|
||||
/* AltGr symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ │ │ ² │ ³ │ │ │ │ { │ [ │ ] │ } │ \ │ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ │ @ │ │ € │ │ │ │ │ │ │ │ │ ~ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
|
||||
* │ │ | │ │ │ │ │ │ │ µ │ │ │ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
"ALGR(DE_2)": {
|
||||
"key": "DE_SUP2",
|
||||
"label": "²",
|
||||
}
|
||||
"ALGR(DE_3)": {
|
||||
"key": "DE_SUP3",
|
||||
"label": "³",
|
||||
}
|
||||
"ALGR(DE_7)": {
|
||||
"key": "DE_LCBR",
|
||||
"label": "{",
|
||||
}
|
||||
"ALGR(DE_8)": {
|
||||
"key": "DE_LBRC",
|
||||
"label": "[",
|
||||
}
|
||||
"ALGR(DE_9)": {
|
||||
"key": "DE_RBRC",
|
||||
"label": "]",
|
||||
}
|
||||
"ALGR(DE_0)": {
|
||||
"key": "DE_RCBR",
|
||||
"label": "}",
|
||||
}
|
||||
"ALGR(DE_SS)": {
|
||||
"key": "DE_BSLS",
|
||||
"label": "\\",
|
||||
}
|
||||
"ALGR(DE_Q)": {
|
||||
"key": "DE_AT",
|
||||
"label": "@",
|
||||
}
|
||||
"ALGR(DE_E)": {
|
||||
"key": "DE_EURO",
|
||||
"label": "€",
|
||||
}
|
||||
"ALGR(DE_PLUS)": {
|
||||
"key": "DE_TILD",
|
||||
"label": "~",
|
||||
}
|
||||
"ALGR(DE_LABK)": {
|
||||
"key": "DE_PIPE",
|
||||
"label": "|",
|
||||
}
|
||||
"ALGR(DE_M)": {
|
||||
"key": "DE_MICR",
|
||||
"label": "µ",
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,656 @@
|
||||
{
|
||||
"aliases": {
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
|
||||
* │ ^ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ß │ ´ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
|
||||
* │ │ Q │ W │ E │ R │ T │ Z │ U │ I │ O │ P │ Ü │ + │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Ö │ Ä │ # │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
|
||||
* │ │ < │ Y │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │
|
||||
* ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
|
||||
* │ │ │ │ │ │ │ │
|
||||
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
|
||||
*/
|
||||
"KC_GRV": {
|
||||
"key": "DE_CIRC",
|
||||
"label": "^ (dead)",
|
||||
}
|
||||
"KC_1": {
|
||||
"key": "DE_1",
|
||||
"label": "1",
|
||||
}
|
||||
"KC_2": {
|
||||
"key": "DE_2",
|
||||
"label": "2",
|
||||
}
|
||||
"KC_3": {
|
||||
"key": "DE_3",
|
||||
"label": "3",
|
||||
}
|
||||
"KC_4": {
|
||||
"key": "DE_4",
|
||||
"label": "4",
|
||||
}
|
||||
"KC_5": {
|
||||
"key": "DE_5",
|
||||
"label": "5",
|
||||
}
|
||||
"KC_6": {
|
||||
"key": "DE_6",
|
||||
"label": "6",
|
||||
}
|
||||
"KC_7": {
|
||||
"key": "DE_7",
|
||||
"label": "7",
|
||||
}
|
||||
"KC_8": {
|
||||
"key": "DE_8",
|
||||
"label": "8",
|
||||
}
|
||||
"KC_9": {
|
||||
"key": "DE_9",
|
||||
"label": "9",
|
||||
}
|
||||
"KC_0": {
|
||||
"key": "DE_0",
|
||||
"label": "0",
|
||||
}
|
||||
"KC_MINS": {
|
||||
"key": "DE_SS",
|
||||
"label": "ß",
|
||||
}
|
||||
"KC_EQL": {
|
||||
"key": "DE_ACUT",
|
||||
"label": "´ (dead)",
|
||||
}
|
||||
"KC_Q": {
|
||||
"key": "DE_Q",
|
||||
"label": "Q",
|
||||
}
|
||||
"KC_W": {
|
||||
"key": "DE_W",
|
||||
"label": "W",
|
||||
}
|
||||
"KC_E": {
|
||||
"key": "DE_E",
|
||||
"label": "E",
|
||||
}
|
||||
"KC_R": {
|
||||
"key": "DE_R",
|
||||
"label": "R",
|
||||
}
|
||||
"KC_T": {
|
||||
"key": "DE_T",
|
||||
"label": "T",
|
||||
}
|
||||
"KC_Y": {
|
||||
"key": "DE_Z",
|
||||
"label": "Z",
|
||||
}
|
||||
"KC_U": {
|
||||
"key": "DE_U",
|
||||
"label": "U",
|
||||
}
|
||||
"KC_I": {
|
||||
"key": "DE_I",
|
||||
"label": "I",
|
||||
}
|
||||
"KC_O": {
|
||||
"key": "DE_O",
|
||||
"label": "O",
|
||||
}
|
||||
"KC_P": {
|
||||
"key": "DE_P",
|
||||
"label": "P",
|
||||
}
|
||||
"KC_LBRC": {
|
||||
"key": "DE_UDIA",
|
||||
"label": "Ü",
|
||||
}
|
||||
"KC_RBRC": {
|
||||
"key": "DE_PLUS",
|
||||
"label": "+",
|
||||
}
|
||||
"KC_A": {
|
||||
"key": "DE_A",
|
||||
"label": "A",
|
||||
}
|
||||
"KC_S": {
|
||||
"key": "DE_S",
|
||||
"label": "S",
|
||||
}
|
||||
"KC_D": {
|
||||
"key": "DE_D",
|
||||
"label": "D",
|
||||
}
|
||||
"KC_F": {
|
||||
"key": "DE_F",
|
||||
"label": "F",
|
||||
}
|
||||
"KC_G": {
|
||||
"key": "DE_G",
|
||||
"label": "G",
|
||||
}
|
||||
"KC_H": {
|
||||
"key": "DE_H",
|
||||
"label": "H",
|
||||
}
|
||||
"KC_J": {
|
||||
"key": "DE_J",
|
||||
"label": "J",
|
||||
}
|
||||
"KC_K": {
|
||||
"key": "DE_K",
|
||||
"label": "K",
|
||||
}
|
||||
"KC_L": {
|
||||
"key": "DE_L",
|
||||
"label": "L",
|
||||
}
|
||||
"KC_SCLN": {
|
||||
"key": "DE_ODIA",
|
||||
"label": "Ö",
|
||||
}
|
||||
"KC_QUOT": {
|
||||
"key": "DE_ADIA",
|
||||
"label": "Ä",
|
||||
}
|
||||
"KC_NUHS": {
|
||||
"key": "DE_HASH",
|
||||
"label": "#",
|
||||
}
|
||||
"KC_NUBS": {
|
||||
"key": "DE_LABK",
|
||||
"label": "<",
|
||||
}
|
||||
"KC_Z": {
|
||||
"key": "DE_Y",
|
||||
"label": "Y",
|
||||
}
|
||||
"KC_X": {
|
||||
"key": "DE_X",
|
||||
"label": "X",
|
||||
}
|
||||
"KC_C": {
|
||||
"key": "DE_C",
|
||||
"label": "C",
|
||||
}
|
||||
"KC_V": {
|
||||
"key": "DE_V",
|
||||
"label": "V",
|
||||
}
|
||||
"KC_B": {
|
||||
"key": "DE_B",
|
||||
"label": "B",
|
||||
}
|
||||
"KC_N": {
|
||||
"key": "DE_N",
|
||||
"label": "N",
|
||||
}
|
||||
"KC_M": {
|
||||
"key": "DE_M",
|
||||
"label": "M",
|
||||
}
|
||||
"KC_COMM": {
|
||||
"key": "DE_COMM",
|
||||
"label": ",",
|
||||
}
|
||||
"KC_DOT": {
|
||||
"key": "DE_DOT",
|
||||
"label": ".",
|
||||
}
|
||||
"KC_SLSH": {
|
||||
"key": "DE_MINS",
|
||||
"label": "-",
|
||||
}
|
||||
/* Shifted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
|
||||
* │ ° │ ! │ " │ § │ $ │ % │ & │ / │ ( │ ) │ = │ ? │ ` │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ * │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ ' │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
|
||||
* │ │ > │ │ │ │ │ │ │ │ ; │ : │ _ │ │
|
||||
* ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
|
||||
* │ │ │ │ │ │ │ │
|
||||
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
|
||||
*/
|
||||
"S(DE_CIRC)": {
|
||||
"key": "DE_DEG",
|
||||
"label": "°",
|
||||
}
|
||||
"S(DE_1)": {
|
||||
"key": "DE_EXLM",
|
||||
"label": "!",
|
||||
}
|
||||
"S(DE_2)": {
|
||||
"key": "DE_DQUO",
|
||||
"label": "\"",
|
||||
}
|
||||
"S(DE_3)": {
|
||||
"key": "DE_SECT",
|
||||
"label": "§",
|
||||
}
|
||||
"S(DE_4)": {
|
||||
"key": "DE_DLR",
|
||||
"label": "$",
|
||||
}
|
||||
"S(DE_5)": {
|
||||
"key": "DE_PERC",
|
||||
"label": "%",
|
||||
}
|
||||
"S(DE_6)": {
|
||||
"key": "DE_AMPR",
|
||||
"label": "&",
|
||||
}
|
||||
"S(DE_7)": {
|
||||
"key": "DE_SLSH",
|
||||
"label": "/",
|
||||
}
|
||||
"S(DE_8)": {
|
||||
"key": "DE_LPRN",
|
||||
"label": "(",
|
||||
}
|
||||
"S(DE_9)": {
|
||||
"key": "DE_RPRN",
|
||||
"label": ")",
|
||||
}
|
||||
"S(DE_0)": {
|
||||
"key": "DE_EQL",
|
||||
"label": "=",
|
||||
}
|
||||
"S(DE_SS)": {
|
||||
"key": "DE_QUES",
|
||||
"label": "?",
|
||||
}
|
||||
"S(DE_ACUT)": {
|
||||
"key": "DE_GRV",
|
||||
"label": "` (dead)",
|
||||
}
|
||||
"S(DE_PLUS)": {
|
||||
"key": "DE_ASTR",
|
||||
"label": "*",
|
||||
}
|
||||
"S(DE_HASH)": {
|
||||
"key": "DE_QUOT",
|
||||
"label": "'",
|
||||
}
|
||||
"S(DE_LABK)": {
|
||||
"key": "DE_RABK",
|
||||
"label": ">",
|
||||
}
|
||||
"S(DE_COMM)": {
|
||||
"key": "DE_SCLN",
|
||||
"label": ";",
|
||||
}
|
||||
"S(DE_DOT)": {
|
||||
"key": "DE_COLN",
|
||||
"label": ":",
|
||||
}
|
||||
"S(DE_MINS)": {
|
||||
"key": "DE_UNDS",
|
||||
"label": "_",
|
||||
}
|
||||
/* Alted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
|
||||
* │ „ │ ¡ │ “ │ ¶ │ ¢ │ [ │ ] │ | │ { │ } │ ≠ │ ¿ │ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
|
||||
* │ │ « │ ∑ │ € │ ® │ † │ Ω │ ¨ │ ⁄ │ Ø │ π │ • │ ± │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ Å │ ‚ │ ∂ │ ƒ │ © │ ª │ º │ ∆ │ @ │ Œ │ Æ │ ‘ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
|
||||
* │ │ ≤ │ ¥ │ ≈ │ Ç │ √ │ ∫ │ ~ │ µ │ ∞ │ … │ – │ │
|
||||
* ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
|
||||
* │ │ │ │ │ │ │ │
|
||||
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
|
||||
*/
|
||||
"A(DE_CIRC)": {
|
||||
"key": "DE_DLQU",
|
||||
"label": "„",
|
||||
}
|
||||
"A(DE_1)": {
|
||||
"key": "DE_IEXL",
|
||||
"label": "¡",
|
||||
}
|
||||
"A(DE_2)": {
|
||||
"key": "DE_LDQU",
|
||||
"label": "“",
|
||||
}
|
||||
"A(DE_3)": {
|
||||
"key": "DE_PILC",
|
||||
"label": "¶",
|
||||
}
|
||||
"A(DE_4)": {
|
||||
"key": "DE_CENT",
|
||||
"label": "¢",
|
||||
}
|
||||
"A(DE_5)": {
|
||||
"key": "DE_LBRC",
|
||||
"label": "[",
|
||||
}
|
||||
"A(DE_6)": {
|
||||
"key": "DE_RBRC",
|
||||
"label": "]",
|
||||
}
|
||||
"A(DE_7)": {
|
||||
"key": "DE_PIPE",
|
||||
"label": "|",
|
||||
}
|
||||
"A(DE_8)": {
|
||||
"key": "DE_LCBR",
|
||||
"label": "{",
|
||||
}
|
||||
"A(DE_9)": {
|
||||
"key": "DE_RCBR",
|
||||
"label": "}",
|
||||
}
|
||||
"A(DE_0)": {
|
||||
"key": "DE_NEQL",
|
||||
"label": "≠",
|
||||
}
|
||||
"A(DE_SS)": {
|
||||
"key": "DE_IQUE",
|
||||
"label": "¿",
|
||||
}
|
||||
"A(DE_Q)": {
|
||||
"key": "DE_LDAQ",
|
||||
"label": "«",
|
||||
}
|
||||
"A(DE_W)": {
|
||||
"key": "DE_NARS",
|
||||
"label": "∑",
|
||||
}
|
||||
"A(DE_E)": {
|
||||
"key": "DE_EURO",
|
||||
"label": "€",
|
||||
}
|
||||
"A(DE_R)": {
|
||||
"key": "DE_REGD",
|
||||
"label": "®",
|
||||
}
|
||||
"A(DE_T)": {
|
||||
"key": "DE_DAGG",
|
||||
"label": "†",
|
||||
}
|
||||
"A(DE_Z)": {
|
||||
"key": "DE_OMEG",
|
||||
"label": "Ω",
|
||||
}
|
||||
"A(DE_U)": {
|
||||
"key": "DE_DIAE",
|
||||
"label": "¨ (dead)",
|
||||
}
|
||||
"A(DE_I)": {
|
||||
"key": "DE_FRSL",
|
||||
"label": "⁄",
|
||||
}
|
||||
"A(DE_O)": {
|
||||
"key": "DE_OSTR",
|
||||
"label": "Ø",
|
||||
}
|
||||
"A(DE_P)": {
|
||||
"key": "DE_PI",
|
||||
"label": "π",
|
||||
}
|
||||
"A(DE_UDIA)": {
|
||||
"key": "DE_BULT",
|
||||
"label": "•",
|
||||
}
|
||||
"A(DE_PLUS)": {
|
||||
"key": "DE_PLMN",
|
||||
"label": "±",
|
||||
}
|
||||
"A(DE_A)": {
|
||||
"key": "DE_ARNG",
|
||||
"label": "Å",
|
||||
}
|
||||
"A(DE_S)": {
|
||||
"key": "DE_SLQU",
|
||||
"label": "‚",
|
||||
}
|
||||
"A(DE_D)": {
|
||||
"key": "DE_PDIF",
|
||||
"label": "∂",
|
||||
}
|
||||
"A(DE_F)": {
|
||||
"key": "DE_FHK",
|
||||
"label": "ƒ",
|
||||
}
|
||||
"A(DE_G)": {
|
||||
"key": "DE_COPY",
|
||||
"label": "©",
|
||||
}
|
||||
"A(DE_H)": {
|
||||
"key": "DE_FORD",
|
||||
"label": "ª",
|
||||
}
|
||||
"A(DE_J)": {
|
||||
"key": "DE_MORD",
|
||||
"label": "º",
|
||||
}
|
||||
"A(DE_K)": {
|
||||
"key": "DE_INCR",
|
||||
"label": "∆",
|
||||
}
|
||||
"A(DE_L)": {
|
||||
"key": "DE_AT",
|
||||
"label": "@",
|
||||
}
|
||||
"A(DE_ODIA)": {
|
||||
"key": "DE_OE",
|
||||
"label": "Œ",
|
||||
}
|
||||
"A(DE_ADIA)": {
|
||||
"key": "DE_AE",
|
||||
"label": "Æ",
|
||||
}
|
||||
"A(DE_HASH)": {
|
||||
"key": "DE_LSQU",
|
||||
"label": "‘",
|
||||
}
|
||||
"A(DE_LABK)": {
|
||||
"key": "DE_LTEQ",
|
||||
"label": "≤",
|
||||
}
|
||||
"A(DE_Y)": {
|
||||
"key": "DE_YEN",
|
||||
"label": "¥",
|
||||
}
|
||||
"A(DE_X)": {
|
||||
"key": "DE_AEQL",
|
||||
"label": "≈",
|
||||
}
|
||||
"A(DE_C)": {
|
||||
"key": "DE_CCCE",
|
||||
"label": "Ç",
|
||||
}
|
||||
"A(DE_V)": {
|
||||
"key": "DE_SQRT",
|
||||
"label": "√",
|
||||
}
|
||||
"A(DE_B)": {
|
||||
"key": "DE_INTG",
|
||||
"label": "∫",
|
||||
}
|
||||
"A(DE_N)": {
|
||||
"key": "DE_TILD",
|
||||
"label": "~ (dead)",
|
||||
}
|
||||
"A(DE_M)": {
|
||||
"key": "DE_MICR",
|
||||
"label": "µ",
|
||||
}
|
||||
"A(DE_COMM)": {
|
||||
"key": "DE_INFN",
|
||||
"label": "∞",
|
||||
}
|
||||
"A(DE_DOT)": {
|
||||
"key": "DE_ELLP",
|
||||
"label": "…",
|
||||
}
|
||||
"A(DE_MINS)": {
|
||||
"key": "DE_NDSH",
|
||||
"label": "–",
|
||||
}
|
||||
/* Shift+Alted symbols
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
|
||||
* │ │ ¬ │ ” │ │ £ │ fi │ │ \ │ ˜ │ · │ ¯ │ ˙ │ ˚ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
|
||||
* │ │ » │ │ ‰ │ ¸ │ ˝ │ ˇ │ Á │ Û │ │ ∏ │ │ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
|
||||
* │ │ │ Í │ ™ │ Ï │ Ì │ Ó │ ı │ │ fl │ │ │ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
|
||||
* │ │ ≥ │ ‡ │ Ù │ │ ◊ │ ‹ │ › │ ˘ │ ˛ │ ÷ │ — │ │
|
||||
* ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
|
||||
* │ │ │ │ │ │ │ │
|
||||
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
|
||||
*/
|
||||
"S(A(DE_1))": {
|
||||
"key": "DE_NOT",
|
||||
"label": "¬",
|
||||
}
|
||||
"S(A(DE_2))": {
|
||||
"key": "DE_RDQU",
|
||||
"label": "”",
|
||||
}
|
||||
"S(A(DE_4))": {
|
||||
"key": "DE_PND",
|
||||
"label": "£",
|
||||
}
|
||||
"S(A(DE_5))": {
|
||||
"key": "DE_FI",
|
||||
"label": "fi",
|
||||
}
|
||||
"S(A(DE_7))": {
|
||||
"key": "DE_BSLS",
|
||||
"label": "\\",
|
||||
}
|
||||
"S(A(DE_8))": {
|
||||
"key": "DE_STIL",
|
||||
"label": "˜",
|
||||
}
|
||||
"S(A(DE_9))": {
|
||||
"key": "DE_MDDT",
|
||||
"label": "·",
|
||||
}
|
||||
"S(A(DE_0))": {
|
||||
"key": "DE_MACR",
|
||||
"label": "¯",
|
||||
}
|
||||
"S(A(DE_SS))": {
|
||||
"key": "DE_DOTA",
|
||||
"label": "˙",
|
||||
}
|
||||
"S(A(DE_ACUT))": {
|
||||
"key": "DE_RNGA",
|
||||
"label": "˚",
|
||||
}
|
||||
"S(A(DE_Q))": {
|
||||
"key": "DE_RDAQ",
|
||||
"label": "»",
|
||||
}
|
||||
"S(A(DE_E))": {
|
||||
"key": "DE_PERM",
|
||||
"label": "‰",
|
||||
}
|
||||
"S(A(DE_R))": {
|
||||
"key": "DE_CEDL",
|
||||
"label": "¸",
|
||||
}
|
||||
"S(A(DE_T))": {
|
||||
"key": "DE_DACU",
|
||||
"label": "˝",
|
||||
}
|
||||
"S(A(DE_Z))": {
|
||||
"key": "DE_CARN",
|
||||
"label": "ˇ",
|
||||
}
|
||||
"S(A(DE_U))": {
|
||||
"key": "DE_AACU",
|
||||
"label": "Á",
|
||||
}
|
||||
"S(A(DE_I))": {
|
||||
"key": "DE_UCIR",
|
||||
"label": "Û",
|
||||
}
|
||||
"S(A(DE_P))": {
|
||||
"key": "DE_NARP",
|
||||
"label": "∏",
|
||||
}
|
||||
"S(A(DE_PLUS))": {
|
||||
"key": "DE_APPL",
|
||||
"label": " (Apple logo)",
|
||||
}
|
||||
"S(A(DE_S))": {
|
||||
"key": "DE_IACU",
|
||||
"label": "Í",
|
||||
}
|
||||
"S(A(DE_D))": {
|
||||
"key": "DE_TM",
|
||||
"label": "™",
|
||||
}
|
||||
"S(A(DE_F))": {
|
||||
"key": "DE_IDIA",
|
||||
"label": "Ï",
|
||||
}
|
||||
"S(A(DE_G))": {
|
||||
"key": "DE_IGRV",
|
||||
"label": "Ì",
|
||||
}
|
||||
"S(A(DE_H))": {
|
||||
"key": "DE_OACU",
|
||||
"label": "Ó",
|
||||
}
|
||||
"S(A(DE_J))": {
|
||||
"key": "DE_DLSI",
|
||||
"label": "ı",
|
||||
}
|
||||
"S(A(DE_L))": {
|
||||
"key": "DE_FL",
|
||||
"label": "fl",
|
||||
}
|
||||
"S(A(DE_LABK))": {
|
||||
"key": "DE_GTEQ",
|
||||
"label": "≥",
|
||||
}
|
||||
"S(A(DE_Y))": {
|
||||
"key": "DE_DDAG",
|
||||
"label": "‡",
|
||||
}
|
||||
"S(A(DE_X))": {
|
||||
"key": "DE_UGRV",
|
||||
"label": "Ù",
|
||||
}
|
||||
"S(A(DE_V))": {
|
||||
"key": "DE_LOZN",
|
||||
"label": "◊",
|
||||
}
|
||||
"S(A(DE_B))": {
|
||||
"key": "DE_LSAQ",
|
||||
"label": "‹",
|
||||
}
|
||||
"S(A(DE_N))": {
|
||||
"key": "DE_RSAQ",
|
||||
"label": "›",
|
||||
}
|
||||
"S(A(DE_M))": {
|
||||
"key": "DE_BREV",
|
||||
"label": "˘",
|
||||
}
|
||||
"S(A(DE_COMM))": {
|
||||
"key": "DE_OGON",
|
||||
"label": "˛",
|
||||
}
|
||||
"S(A(DE_DOT))": {
|
||||
"key": "DE_DIV",
|
||||
"label": "÷",
|
||||
}
|
||||
"S(A(DE_MINS))": {
|
||||
"key": "DE_MDSH",
|
||||
"label": "—",
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user