mirror of
https://github.com/libratbag/libratbag.git
synced 2026-11-07 23:23:52 +01:00
Compare commits
1240 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
952bd9dc07 | ||
|
|
6b97d94a2f | ||
|
|
ccaa8d1b6c | ||
|
|
abe451df33 | ||
|
|
a3fa876c3d | ||
|
|
230647c7f3 | ||
|
|
3f99446a1b | ||
|
|
a766f8e909 | ||
|
|
9ae975f9a9 | ||
|
|
780934b1a1 | ||
|
|
337fb935c4 | ||
|
|
c9cf5fe90c | ||
|
|
18af0f97d2 | ||
|
|
286f13c654 | ||
|
|
c6b9cc0c2a | ||
|
|
7d82bb51a6 | ||
|
|
8976033da7 | ||
|
|
c9c6a1675f | ||
|
|
f1e2a4ccff | ||
|
|
104543fdf1 | ||
|
|
b3275e10d7 | ||
|
|
120908bda8 | ||
|
|
32d6443553 | ||
|
|
ae943eaee7 | ||
|
|
4a9503f2da | ||
|
|
e268100d31 | ||
|
|
8ec0e8bbc5 | ||
|
|
e6a9fba498 | ||
|
|
e753db72f9 | ||
|
|
e1f4fac9a2 | ||
|
|
8f981c8b87 | ||
|
|
01d2cf8477 | ||
|
|
f7c22ed88c | ||
|
|
aeda65cbfa | ||
|
|
ed2439e5e2 | ||
|
|
f407521e8f | ||
|
|
3c4fe23f70 | ||
|
|
9e2ac55dbc | ||
|
|
1e72ebaa7b | ||
|
|
920bc2b993 | ||
|
|
20b573668e | ||
|
|
49acc11db3 | ||
|
|
364e3fd965 | ||
|
|
bb230d390d | ||
|
|
93a076bed9 | ||
|
|
e7b50c9061 | ||
|
|
9d533bdc3e | ||
|
|
d7906b54b4 | ||
|
|
f1eba370ed | ||
|
|
7b5ab2ed99 | ||
|
|
d2d5471836 | ||
|
|
9cfc1e98e3 | ||
|
|
691661276f | ||
|
|
25ed99db84 | ||
|
|
02226d0428 | ||
|
|
f822fb0fa7 | ||
|
|
b88be0add0 | ||
|
|
9fc6d12486 | ||
|
|
0c64dad9e1 | ||
|
|
f61485c603 | ||
|
|
8c295479d8 | ||
|
|
e55b04ec7d | ||
|
|
1231415470 | ||
|
|
660da27021 | ||
|
|
481b6f029a | ||
|
|
768d93a45a | ||
|
|
1c6e039d01 | ||
|
|
d16df8d100 | ||
|
|
4b1e49d522 | ||
|
|
786cebcb0b | ||
|
|
d53454bcb3 | ||
|
|
a0def65b64 | ||
|
|
2a40279903 | ||
|
|
02c95422f0 | ||
|
|
4ce1cf2807 | ||
|
|
89168f2187 | ||
|
|
bb92337268 | ||
|
|
a8316c07f3 | ||
|
|
39769c57dd | ||
|
|
200a8af7a7 | ||
|
|
fcf9f7745d | ||
|
|
633c9fc55d | ||
|
|
ee73434ead | ||
|
|
d60b1c9d71 | ||
|
|
88a60f55b4 | ||
|
|
dba202ae8b | ||
|
|
6cdcce9de4 | ||
|
|
e2c3373145 | ||
|
|
02575a9008 | ||
|
|
1097b1ba68 | ||
|
|
77b67775da | ||
|
|
5b23c9ebae | ||
|
|
6d0974be25 | ||
|
|
ea9111a2a6 | ||
|
|
42787ee422 | ||
|
|
611dd9be0d | ||
|
|
fd20f9e642 | ||
|
|
9be5576967 | ||
|
|
9fe511fcc5 | ||
|
|
f0b69aab19 | ||
|
|
7610b80ced | ||
|
|
f0a05bb522 | ||
|
|
2669cc28b2 | ||
|
|
302702d94a | ||
|
|
e1136c4d30 | ||
|
|
0012853a1d | ||
|
|
afb85f868c | ||
|
|
b76fcdadde | ||
|
|
ba7c092ee2 | ||
|
|
3483bd8c14 | ||
|
|
0fb0eb3d42 | ||
|
|
5fb1f4429d | ||
|
|
5f5e294598 | ||
|
|
b4218737cd | ||
|
|
3875bb70fd | ||
|
|
e9d67b7235 | ||
|
|
8a476a8724 | ||
|
|
d67cbec5f8 | ||
|
|
f82c6f72b6 | ||
|
|
af30fc28cd | ||
|
|
3fb8a51456 | ||
|
|
ceaa3c3ad5 | ||
|
|
551b918ba8 | ||
|
|
3105428ba1 | ||
|
|
b3f2406180 | ||
|
|
902160f430 | ||
|
|
fd6d0b6198 | ||
|
|
5ed98fdb22 | ||
|
|
e0e73c2971 | ||
|
|
0d3b4f1b64 | ||
|
|
20b6e3deeb | ||
|
|
ffcdee912d | ||
|
|
5357d4cbc2 | ||
|
|
26c534cc74 | ||
|
|
904c7988bb | ||
|
|
7d255a2f93 | ||
|
|
d0a5cb1f0e | ||
|
|
71b1d66287 | ||
|
|
32ebbca42f | ||
|
|
a0afbfeb3f | ||
|
|
9dfd4fd03a | ||
|
|
b0ea75979a | ||
|
|
a5c1ca202e | ||
|
|
8d40ad6c0c | ||
|
|
72d11de597 | ||
|
|
47cc5fce92 | ||
|
|
5da791b268 | ||
|
|
e63802b01a | ||
|
|
cd89b123ce | ||
|
|
f6546b3222 | ||
|
|
cd8ddc8444 | ||
|
|
cdb3226ef1 | ||
|
|
ce377fc36c | ||
|
|
fe1308fe38 | ||
|
|
983d3e2a88 | ||
|
|
3a3d9e1148 | ||
|
|
afbba26feb | ||
|
|
8cc37047fb | ||
|
|
c8f56cc535 | ||
|
|
b6936ddd3b | ||
|
|
d4d9712316 | ||
|
|
2353af214b | ||
|
|
a4d19efb93 | ||
|
|
cb0b458824 | ||
|
|
48c476b28c | ||
|
|
d6c3bf881d | ||
|
|
1b000e627a | ||
|
|
75bcf39114 | ||
|
|
33ced3dfb7 | ||
|
|
906f17add2 | ||
|
|
016de548fc | ||
|
|
665c022382 | ||
|
|
81c7b42bec | ||
|
|
edb054c6f8 | ||
|
|
8ae995b72d | ||
|
|
a941b75ef2 | ||
|
|
8cb85da6be | ||
|
|
7ff59a636f | ||
|
|
6cd050f541 | ||
|
|
ab3f1df06e | ||
|
|
caa31e17cf | ||
|
|
b7e6103496 | ||
|
|
b1b6a2761e | ||
|
|
11f4f32947 | ||
|
|
4f5d0dffec | ||
|
|
d213bdb86e | ||
|
|
e69e1de17b | ||
|
|
cad05ffced | ||
|
|
196d53e65f | ||
|
|
c606b1abe3 | ||
|
|
b4009669b9 | ||
|
|
d458305f93 | ||
|
|
9c11960665 | ||
|
|
e8fc8b45d1 | ||
|
|
e64a121572 | ||
|
|
607e47953c | ||
|
|
a5816055dc | ||
|
|
62ac0772f5 | ||
|
|
fc9e63a5aa | ||
|
|
936a8f7a92 | ||
|
|
818e665853 | ||
|
|
3a3b11ade4 | ||
|
|
3bc31edd72 | ||
|
|
485df20a83 | ||
|
|
49291c4b45 | ||
|
|
02ec2442d3 | ||
|
|
a8b4d9c6f3 | ||
|
|
22a6ac1c7e | ||
|
|
42c302c860 | ||
|
|
e2b1581aef | ||
|
|
10a3e87980 | ||
|
|
2d465a63e1 | ||
|
|
c2315323f4 | ||
|
|
05d7e9b324 | ||
|
|
71a399f20f | ||
|
|
8259c2e706 | ||
|
|
89980a4a72 | ||
|
|
79e94b4a7e | ||
|
|
122f05c272 | ||
|
|
b06ac1035e | ||
|
|
647fe432b2 | ||
|
|
4e2e9f037b | ||
|
|
f92fee0b15 | ||
|
|
d7c394f379 | ||
|
|
7fec19f8f2 | ||
|
|
11c1e2d71a | ||
|
|
e2cbaf9dea | ||
|
|
bf9d86e228 | ||
|
|
f24a3bd441 | ||
|
|
df5742ebfe | ||
|
|
0c569e0bf7 | ||
|
|
5ea1731f38 | ||
|
|
572064aba8 | ||
|
|
da2764e78d | ||
|
|
4e56afae22 | ||
|
|
d46251900c | ||
|
|
43def1b3a5 | ||
|
|
247ff7695d | ||
|
|
7a14026f2d | ||
|
|
55925db29e | ||
|
|
87d4aed3ad | ||
|
|
7de944aaa0 | ||
|
|
488774d3ba | ||
|
|
0673af2991 | ||
|
|
0e84b63921 | ||
|
|
6e34f314f8 | ||
|
|
e3268f2ce6 | ||
|
|
47623654d0 | ||
|
|
94423769b9 | ||
|
|
4efe8f4830 | ||
|
|
ac06e7d0c8 | ||
|
|
f534cb55b0 | ||
|
|
bb3f386cca | ||
|
|
6393338d0f | ||
|
|
b225e4bd80 | ||
|
|
635257d6b8 | ||
|
|
b31a8c5355 | ||
|
|
412f3fef87 | ||
|
|
8f88573a08 | ||
|
|
c1265bc98a | ||
|
|
723d394c02 | ||
|
|
808f423600 | ||
|
|
ae9c639a74 | ||
|
|
932cbf0a5c | ||
|
|
486842b6cb | ||
|
|
2ae8233eeb | ||
|
|
cdd70105b5 | ||
|
|
6babb7b307 | ||
|
|
26843861c0 | ||
|
|
2eed8dbb92 | ||
|
|
a13ee32c61 | ||
|
|
dbe98ed5b9 | ||
|
|
c425780220 | ||
|
|
1e9839cb67 | ||
|
|
bbeaef749e | ||
|
|
240231b065 | ||
|
|
6f27053ab0 | ||
|
|
fc16a8dc7c | ||
|
|
6256e9046f | ||
|
|
563550c473 | ||
|
|
a04f2d1c24 | ||
|
|
d86933d746 | ||
|
|
55f7d75567 | ||
|
|
6ee1c0a591 | ||
|
|
94d32930e2 | ||
|
|
2b2d8e8980 | ||
|
|
10305a123c | ||
|
|
11db35edba | ||
|
|
836922b133 | ||
|
|
4d00a815a4 | ||
|
|
0e28d82a16 | ||
|
|
336440cddb | ||
|
|
b2a3d39122 | ||
|
|
4b7b9d2e48 | ||
|
|
57097ceddb | ||
|
|
c7ce1a96a7 | ||
|
|
daf9580ca5 | ||
|
|
396b8bee87 | ||
|
|
c8c1c63531 | ||
|
|
704710814e | ||
|
|
f497dab1d8 | ||
|
|
67ee0fab14 | ||
|
|
d17868303e | ||
|
|
6d05b7df67 | ||
|
|
30c482aab2 | ||
|
|
bf127d4c68 | ||
|
|
9f9f6294c3 | ||
|
|
3bba3d9bcb | ||
|
|
6b65ed2198 | ||
|
|
8e9dd6f392 | ||
|
|
f3df391d71 | ||
|
|
16daac7311 | ||
|
|
653b834e01 | ||
|
|
8c32036e03 | ||
|
|
ba10000feb | ||
|
|
f07007b6e6 | ||
|
|
a002a58a5e | ||
|
|
57ca3086ae | ||
|
|
a46c30253d | ||
|
|
391a0e923e | ||
|
|
cac289119d | ||
|
|
2607114709 | ||
|
|
d171f953c7 | ||
|
|
734977f176 | ||
|
|
10a1cc9bbc | ||
|
|
367aa29dfe | ||
|
|
79711dfdad | ||
|
|
32a5ad377e | ||
|
|
5328c20a58 | ||
|
|
014212bbd9 | ||
|
|
3fcf13b58e | ||
|
|
55fd6c7a71 | ||
|
|
d6bbc33dda | ||
|
|
d24ea1e662 | ||
|
|
e4d4a7905a | ||
|
|
af729ec16b | ||
|
|
8ae35fa11b | ||
|
|
561f0ac866 | ||
|
|
12ac8b17f0 | ||
|
|
b568963b14 | ||
|
|
583a050945 | ||
|
|
fe5ed89995 | ||
|
|
9ceec4f9f7 | ||
|
|
e55c3812db | ||
|
|
d924218c7c | ||
|
|
8a3eb946fe | ||
|
|
c734cec88a | ||
|
|
109621f73e | ||
|
|
6e09afd61e | ||
|
|
943308ccaf | ||
|
|
253e8f6edc | ||
|
|
17d8bcacf6 | ||
|
|
6280268919 | ||
|
|
caa75d170d | ||
|
|
a7f44211df | ||
|
|
a3466f0e99 | ||
|
|
222dda17a6 | ||
|
|
29fb0f855f | ||
|
|
91dfc3477d | ||
|
|
42caf3bc94 | ||
|
|
7778da715e | ||
|
|
0c2e4121af | ||
|
|
107a649e08 | ||
|
|
a17613459b | ||
|
|
3392b5e276 | ||
|
|
13656b60f7 | ||
|
|
c2f93dc672 | ||
|
|
468e6108ca | ||
|
|
59e134149a | ||
|
|
29b2e64a1d | ||
|
|
4ce6a872ca | ||
|
|
8fa5a82376 | ||
|
|
0ef2dff374 | ||
|
|
208bb15149 | ||
|
|
549a6c47b8 | ||
|
|
400451efe1 | ||
|
|
2ee88948f3 | ||
|
|
ace60f76da | ||
|
|
451af331b9 | ||
|
|
b87a770970 | ||
|
|
e59ef319b0 | ||
|
|
8a1487f6f4 | ||
|
|
44d36d2bf0 | ||
|
|
635865efa5 | ||
|
|
38949013f7 | ||
|
|
e1879818b4 | ||
|
|
9b2614109f | ||
|
|
abe99fec6a | ||
|
|
21936db58b | ||
|
|
74f01f3de4 | ||
|
|
53ba4d975d | ||
|
|
97306ddd5a | ||
|
|
16e052d846 | ||
|
|
1586913fc7 | ||
|
|
cf9a3e48b7 | ||
|
|
ec835e2e82 | ||
|
|
b86211204c | ||
|
|
1d6995be72 | ||
|
|
536576fe8b | ||
|
|
b514f49b08 | ||
|
|
46a466ffe1 | ||
|
|
15f1667fa4 | ||
|
|
284c13b2fe | ||
|
|
e9bb4f98ae | ||
|
|
45b8d792cc | ||
|
|
b93dfcfda4 | ||
|
|
3ffdc8daa0 | ||
|
|
e38bc7a760 | ||
|
|
2dca516afa | ||
|
|
b489ac871d | ||
|
|
50fb898138 | ||
|
|
c676fcefb1 | ||
|
|
bb4dd2aae0 | ||
|
|
9b11340e91 | ||
|
|
3cd5a1f986 | ||
|
|
874d7eccb8 | ||
|
|
44c4b901e2 | ||
|
|
2371960a1d | ||
|
|
874aa8e63e | ||
|
|
1225f421c0 | ||
|
|
5f0f5d2843 | ||
|
|
1d464767e1 | ||
|
|
9551dddbb8 | ||
|
|
563c274705 | ||
|
|
71ed64a843 | ||
|
|
efb3efc828 | ||
|
|
982e6cc7fe | ||
|
|
44dc754e31 | ||
|
|
18887e4c86 | ||
|
|
46d5fae2e5 | ||
|
|
4b31945e1d | ||
|
|
7e685f5196 | ||
|
|
050db150f6 | ||
|
|
a3de0e1ff7 | ||
|
|
acc0066f08 | ||
|
|
eb9f98e58d | ||
|
|
6d996bf1aa | ||
|
|
34fbfe105c | ||
|
|
dfeac1bcbc | ||
|
|
3d345570eb | ||
|
|
6000688c30 | ||
|
|
9b409822c3 | ||
|
|
363eab80f0 | ||
|
|
66fc7b545e | ||
|
|
bb4b673df8 | ||
|
|
e104eca02c | ||
|
|
01c362eadc | ||
|
|
fff3589a20 | ||
|
|
a4e1e1690d | ||
|
|
38dce69838 | ||
|
|
23ff4e753d | ||
|
|
f24cb6dc66 | ||
|
|
b738136154 | ||
|
|
447931d779 | ||
|
|
920b71d94c | ||
|
|
a786aaf390 | ||
|
|
d395db1a11 | ||
|
|
ad0b7e53d9 | ||
|
|
0ed621db8f | ||
|
|
5ae473dcd1 | ||
|
|
ac384137bd | ||
|
|
e43cf7ab08 | ||
|
|
acb65a1bc8 | ||
|
|
e5f4b49e36 | ||
|
|
31d0fa00d9 | ||
|
|
d28f330d43 | ||
|
|
a29adaf913 | ||
|
|
ea3e68cf7d | ||
|
|
158594ec20 | ||
|
|
6e51849ae5 | ||
|
|
29731aa578 | ||
|
|
4d0ef4f2c1 | ||
|
|
e7d03448cc | ||
|
|
2725a55770 | ||
|
|
e5be1a70eb | ||
|
|
26493aceaf | ||
|
|
c4f5bd5218 | ||
|
|
7c65b0b4a9 | ||
|
|
d81c68d94f | ||
|
|
a5a2ea1a70 | ||
|
|
507d10378a | ||
|
|
08f3f7daf2 | ||
|
|
9b848084fd | ||
|
|
e1ebf7ad1b | ||
|
|
38f46a9be8 | ||
|
|
d07b7582db | ||
|
|
af194a22f0 | ||
|
|
d8c7050f6f | ||
|
|
30e834b18b | ||
|
|
49770a22e7 | ||
|
|
de8cba13cf | ||
|
|
1fab318dd3 | ||
|
|
e2190964c2 | ||
|
|
8eddf99823 | ||
|
|
9fede0e68d | ||
|
|
1e62916e75 | ||
|
|
447c69f034 | ||
|
|
fc0ab95087 | ||
|
|
7fe4d6f097 | ||
|
|
fa57b417e9 | ||
|
|
1aec9c0f54 | ||
|
|
d1918a063c | ||
|
|
770dd62b1d | ||
|
|
b474e76ac2 | ||
|
|
6fa6e18408 | ||
|
|
8ee19efee9 | ||
|
|
45282e7bd9 | ||
|
|
54b04ffff8 | ||
|
|
1243d5bb13 | ||
|
|
627fc5054f | ||
|
|
a0830a8aaa | ||
|
|
02cbfc23b7 | ||
|
|
3da2630158 | ||
|
|
e02d0724a3 | ||
|
|
920fb3917f | ||
|
|
f36b2dbce9 | ||
|
|
ef7e6f6db5 | ||
|
|
3459fab8ec | ||
|
|
8063385d03 | ||
|
|
3dabcaa3a0 | ||
|
|
6c182b8e9b | ||
|
|
ae805a3568 | ||
|
|
d0001b8e0e | ||
|
|
cbcdc4b724 | ||
|
|
3bc3da967c | ||
|
|
b50ffef327 | ||
|
|
ec223eb2e6 | ||
|
|
573d3d399e | ||
|
|
0f5beb619e | ||
|
|
89aff23c11 | ||
|
|
fd27957b57 | ||
|
|
554ee88c86 | ||
|
|
868d71a08b | ||
|
|
9b3c33a2fe | ||
|
|
109cc69da9 | ||
|
|
113bd4859e | ||
|
|
2a2b7487d4 | ||
|
|
2b4022dcbf | ||
|
|
7555cf1607 | ||
|
|
9c75a7cc7e | ||
|
|
0337ae41ab | ||
|
|
ff39e67615 | ||
|
|
7ba5563eeb | ||
|
|
968b9383d3 | ||
|
|
be6c381751 | ||
|
|
27a0db37d8 | ||
|
|
5858816b53 | ||
|
|
a1376180b4 | ||
|
|
75d1400206 | ||
|
|
78475a6d15 | ||
|
|
63f93111fb | ||
|
|
1ea21ed6ce | ||
|
|
18a8fb9651 | ||
|
|
2e836a40d3 | ||
|
|
c09872e589 | ||
|
|
575b7bce98 | ||
|
|
3e04abde30 | ||
|
|
790c5e90bd | ||
|
|
85a358e07c | ||
|
|
3af0544421 | ||
|
|
f69b4d53f6 | ||
|
|
cb4be02a56 | ||
|
|
bacdab2596 | ||
|
|
ec7bb2f63a | ||
|
|
74a5551a8d | ||
|
|
3e0c803a37 | ||
|
|
55682c3a5d | ||
|
|
ae9e287b8d | ||
|
|
03c264cec1 | ||
|
|
410e01de61 | ||
|
|
d167dfd83b | ||
|
|
9b7d8f5f24 | ||
|
|
366fbc3fda | ||
|
|
f1d20f1f35 | ||
|
|
558f59b52c | ||
|
|
1a3ef63519 | ||
|
|
17380baae9 | ||
|
|
314c3e2f78 | ||
|
|
6ba5cc3319 | ||
|
|
1148d172b5 | ||
|
|
a930cdad87 | ||
|
|
b951d83a64 | ||
|
|
f56df6b1d0 | ||
|
|
1e35b2ace6 | ||
|
|
e75c20a249 | ||
|
|
c63ffdd3ef | ||
|
|
40658c6d0e | ||
|
|
251efd3b40 | ||
|
|
94320099b0 | ||
|
|
f592cabcd7 | ||
|
|
a58096fade | ||
|
|
b140bc2827 | ||
|
|
aeaa69b9e1 | ||
|
|
a535897ae7 | ||
|
|
1074a2b2e6 | ||
|
|
51c1be3806 | ||
|
|
b9e647ccb8 | ||
|
|
e063aa3d2a | ||
|
|
9a74e30c64 | ||
|
|
f26de4bb29 | ||
|
|
e9008eeaba | ||
|
|
d5dc8eccd6 | ||
|
|
13736d0ced | ||
|
|
a926afe8de | ||
|
|
af78dc4ec2 | ||
|
|
1c85d77d56 | ||
|
|
c8929b50fa | ||
|
|
e58e79cb8d | ||
|
|
049e12b2eb | ||
|
|
5c71f9552d | ||
|
|
c3be9e1af1 | ||
|
|
186d626c40 | ||
|
|
dfc433cb74 | ||
|
|
ab2dae47af | ||
|
|
ec442b960d | ||
|
|
670720b40f | ||
|
|
0787e35964 | ||
|
|
9f4df9582c | ||
|
|
d282590746 | ||
|
|
9e5047976b | ||
|
|
d69a2ec5ba | ||
|
|
4bfd5d9a13 | ||
|
|
091e651831 | ||
|
|
d52c2c0320 | ||
|
|
cd71ce67b1 | ||
|
|
43f501907e | ||
|
|
d26d5b83f1 | ||
|
|
c401414310 | ||
|
|
c34fe85780 | ||
|
|
a19a79d33a | ||
|
|
8edf6e7609 | ||
|
|
835a694c4b | ||
|
|
a47492e62c | ||
|
|
186a1deda8 | ||
|
|
132212652f | ||
|
|
5a40d93a30 | ||
|
|
f62940c1e5 | ||
|
|
0f808ed387 | ||
|
|
d8edf2d9e4 | ||
|
|
6827f5ed81 | ||
|
|
f3208b499b | ||
|
|
94e0842a06 | ||
|
|
e0de98ba01 | ||
|
|
1adb147f6d | ||
|
|
b1c4bba3b2 | ||
|
|
cdbdcd23e6 | ||
|
|
23d1290b22 | ||
|
|
5edcdfba5b | ||
|
|
6d105a002c | ||
|
|
3b1a41f154 | ||
|
|
0153efbf9c | ||
|
|
db34ab5255 | ||
|
|
52e10d029f | ||
|
|
1c94ef5c56 | ||
|
|
5efd83fc41 | ||
|
|
33966989db | ||
|
|
c56c76e07d | ||
|
|
8440a36f92 | ||
|
|
3e31b45db0 | ||
|
|
548a40dba6 | ||
|
|
c437882e96 | ||
|
|
4a61dc413b | ||
|
|
59df7defdb | ||
|
|
77fa6a1e65 | ||
|
|
0f8031c201 | ||
|
|
5842dccc2a | ||
|
|
0c5b1998a5 | ||
|
|
f52ebd0dba | ||
|
|
1857378a76 | ||
|
|
d2600583bb | ||
|
|
e2a4684f83 | ||
|
|
ed39cf3dee | ||
|
|
c4d3b1e606 | ||
|
|
be1fb30751 | ||
|
|
a2b3c32124 | ||
|
|
26e7237010 | ||
|
|
26a6215122 | ||
|
|
376adfdf2a | ||
|
|
d990e3f027 | ||
|
|
2473f66cb3 | ||
|
|
8e9bf7b48a | ||
|
|
7edae05b37 | ||
|
|
909749fc00 | ||
|
|
15b4b4a3ca | ||
|
|
cad05f1256 | ||
|
|
703e1f6f0d | ||
|
|
19451f9df7 | ||
|
|
3314b41202 | ||
|
|
f636fd8f53 | ||
|
|
77847f570c | ||
|
|
afaf3fa83d | ||
|
|
4c7f644599 | ||
|
|
692f7f008a | ||
|
|
0a62c3dfa8 | ||
|
|
7cd2cfed44 | ||
|
|
c31e11d385 | ||
|
|
efe6021e76 | ||
|
|
8d67389042 | ||
|
|
4037587f74 | ||
|
|
94daeb1444 | ||
|
|
937b30c415 | ||
|
|
6f0242f05b | ||
|
|
921837fd0f | ||
|
|
d06cdcc53c | ||
|
|
5828355426 | ||
|
|
50dc321b7b | ||
|
|
43f033db80 | ||
|
|
623c53f1e4 | ||
|
|
39762718b9 | ||
|
|
ae3804f7b4 | ||
|
|
0dd08dfb84 | ||
|
|
bb23f68d53 | ||
|
|
83345a17d2 | ||
|
|
b9f6554767 | ||
|
|
7eadd20879 | ||
|
|
3844a60837 | ||
|
|
6cdf8a901a | ||
|
|
c868c43179 | ||
|
|
01ca2a6de7 | ||
|
|
d64af72f74 | ||
|
|
c2fe745813 | ||
|
|
ddefbf95a3 | ||
|
|
a2b651985e | ||
|
|
788c261ce9 | ||
|
|
35070cc17e | ||
|
|
79be057e91 | ||
|
|
aa8f506dd0 | ||
|
|
c6486b1960 | ||
|
|
2f8e3a1610 | ||
|
|
432d32bedc | ||
|
|
8cb2d21ff5 | ||
|
|
1103c208a8 | ||
|
|
7e59f0f974 | ||
|
|
c647d6df99 | ||
|
|
97a927bb7d | ||
|
|
7c650aeeca | ||
|
|
3fd7cd0137 | ||
|
|
7e97936f0e | ||
|
|
643a4a89f4 | ||
|
|
cfd93cf332 | ||
|
|
340e5b7d86 | ||
|
|
be624fe943 | ||
|
|
cb102e115c | ||
|
|
952eb1cf0e | ||
|
|
709ffa37b2 | ||
|
|
f4f206f3e5 | ||
|
|
7036428066 | ||
|
|
18239f1aee | ||
|
|
fe8fde79f6 | ||
|
|
9f805a4ebe | ||
|
|
572f00cf2a | ||
|
|
330b4641ad | ||
|
|
c1c8b1eda2 | ||
|
|
aa251448d3 | ||
|
|
e27b1eb99f | ||
|
|
faaf93b194 | ||
|
|
58957667e1 | ||
|
|
0db7ba0c85 | ||
|
|
c42c15ad0e | ||
|
|
fc50e38ae2 | ||
|
|
b2d29a0285 | ||
|
|
87ecd6e252 | ||
|
|
2b49550b9b | ||
|
|
6ddba76c93 | ||
|
|
d9e7298aee | ||
|
|
49b7029506 | ||
|
|
468787601e | ||
|
|
804d8f7969 | ||
|
|
9b53119121 | ||
|
|
b773ac085b | ||
|
|
13419dcbb8 | ||
|
|
c9322fa983 | ||
|
|
6cfca9e34b | ||
|
|
282398493b | ||
|
|
022dc74354 | ||
|
|
cd6ffca413 | ||
|
|
b19a6ebcfc | ||
|
|
811281372b | ||
|
|
c361b8500f | ||
|
|
bcf302904d | ||
|
|
e0e4d5062a | ||
|
|
abd1a04fed | ||
|
|
ab1d7628f1 | ||
|
|
670cf90e11 | ||
|
|
f5210e1902 | ||
|
|
5bcafb5bee | ||
|
|
d8e132f550 | ||
|
|
7e9566b00f | ||
|
|
7c313a31fd | ||
|
|
861562e58a | ||
|
|
0a6b4b3778 | ||
|
|
b4f451285e | ||
|
|
5f0ebdead7 | ||
|
|
de3bb0e579 | ||
|
|
9dcd2c6c05 | ||
|
|
34196c9960 | ||
|
|
5399d15658 | ||
|
|
5f98d8d029 | ||
|
|
10903e2434 | ||
|
|
b7f53effa1 | ||
|
|
129551f3f4 | ||
|
|
4f62424e8a | ||
|
|
ae65ab3ae8 | ||
|
|
96067f18ca | ||
|
|
67e1c8667b | ||
|
|
ab67517584 | ||
|
|
9fe892f10f | ||
|
|
bf18e9b795 | ||
|
|
e95bb9601c | ||
|
|
a16ffa3946 | ||
|
|
8c97a12741 | ||
|
|
0982d6a4a9 | ||
|
|
3160d86050 | ||
|
|
6faa59c70d | ||
|
|
ced958f135 | ||
|
|
d5ccaed457 | ||
|
|
2c799eca30 | ||
|
|
98fb63e2e3 | ||
|
|
55bab29233 | ||
|
|
c0c77100ad | ||
|
|
aa50df8eaf | ||
|
|
c12ca6008a | ||
|
|
c6bc6b2576 | ||
|
|
f53bf7d4ad | ||
|
|
40bd189cc0 | ||
|
|
7097f1dea6 | ||
|
|
70f3da98db | ||
|
|
f281bd751e | ||
|
|
04b54d26e2 | ||
|
|
19cdf6d7e9 | ||
|
|
0018431f31 | ||
|
|
8380e1686b | ||
|
|
c14ffe36e3 | ||
|
|
a4dd9bcdf3 | ||
|
|
c1cabeeeeb | ||
|
|
ca69365a86 | ||
|
|
98fa9c168a | ||
|
|
0e26b6e2be | ||
|
|
760c3f3ff9 | ||
|
|
8aaa6894df | ||
|
|
636d254d41 | ||
|
|
f6e5dd6c2c | ||
|
|
5637755345 | ||
|
|
a9c4f46412 | ||
|
|
7aed3640c4 | ||
|
|
85f2ec3910 | ||
|
|
6274dea4ac | ||
|
|
a938521c9e | ||
|
|
9450d1402f | ||
|
|
8209ce56b6 | ||
|
|
a6d03fde18 | ||
|
|
5fff0ece5b | ||
|
|
d915fdfe45 | ||
|
|
7b861ada4c | ||
|
|
fa1799eef3 | ||
|
|
77cc2fa82d | ||
|
|
de4bd4a2d2 | ||
|
|
c61782f1a4 | ||
|
|
6503407007 | ||
|
|
09295d9d0e | ||
|
|
2c379d09c9 | ||
|
|
994ade7fff | ||
|
|
769289fe01 | ||
|
|
f05950f37c | ||
|
|
de16f1a4b1 | ||
|
|
d1db382607 | ||
|
|
82a0cd4ec4 | ||
|
|
ec85b6db3e | ||
|
|
a9f4049841 | ||
|
|
dab5d2c0b7 | ||
|
|
51d625244d | ||
|
|
7b1e7dc4e7 | ||
|
|
019d020535 | ||
|
|
89d071bb80 | ||
|
|
499ebc7d18 | ||
|
|
e522e0bb07 | ||
|
|
f55a314666 | ||
|
|
97ac0f81f2 | ||
|
|
8cfcab3363 | ||
|
|
6f72accbee | ||
|
|
e021937867 | ||
|
|
82d197462f | ||
|
|
78bdfe7a59 | ||
|
|
586fc7a97d | ||
|
|
2faa94920e | ||
|
|
01163d8f77 | ||
|
|
04990e4ea2 | ||
|
|
37c8dec45c | ||
|
|
df2a06690d | ||
|
|
2c4cdc6dc6 | ||
|
|
96c2f404d2 | ||
|
|
e33a515fd6 | ||
|
|
8fc58e259c | ||
|
|
caadd86091 | ||
|
|
e16aafe86c | ||
|
|
6a0ebe9e45 | ||
|
|
79f4b9c0d6 | ||
|
|
e6433abd09 | ||
|
|
96f3b7858b | ||
|
|
f5abc191d8 | ||
|
|
251b602323 | ||
|
|
fe3169182c | ||
|
|
642a5339bc | ||
|
|
c251053f03 | ||
|
|
4b97b00518 | ||
|
|
faa1a24c25 | ||
|
|
b78b5cd73e | ||
|
|
4eb5411bf1 | ||
|
|
22af1176d3 | ||
|
|
bb6d8a6ea4 | ||
|
|
935f68ae8f | ||
|
|
2fd939f514 | ||
|
|
dbc0672061 | ||
|
|
804f2eec76 | ||
|
|
73c24319d1 | ||
|
|
6b3fc6338e | ||
|
|
c6855df5fc | ||
|
|
9ed61fd072 | ||
|
|
1a764944e7 | ||
|
|
e311f89357 | ||
|
|
ecdba84977 | ||
|
|
c003eccb1e | ||
|
|
f36fdc0492 | ||
|
|
907b96d447 | ||
|
|
b4682e836c | ||
|
|
30e8fbedd8 | ||
|
|
fc1887c01f | ||
|
|
d51acfd730 | ||
|
|
35e38a5469 | ||
|
|
2ae3976868 | ||
|
|
5dcdc3c652 | ||
|
|
af68f6046c | ||
|
|
c0c4ba156a | ||
|
|
22135f31d5 | ||
|
|
0c7ca85f5b | ||
|
|
478c5bbb68 | ||
|
|
487e66e64d | ||
|
|
2b5b0b1772 | ||
|
|
13bb5b52e1 | ||
|
|
90d2a48cfb | ||
|
|
97a37d21e1 | ||
|
|
9cf6100e00 | ||
|
|
932cf905ef | ||
|
|
7da53c61cf | ||
|
|
714c0d5330 | ||
|
|
dc92abb5e5 | ||
|
|
b0c515b59d | ||
|
|
8e6c13832e | ||
|
|
e33f655f61 | ||
|
|
8e8b7b0611 | ||
|
|
d28f2f0123 | ||
|
|
a8eea870f5 | ||
|
|
7e12e45311 | ||
|
|
b31c1d5ff3 | ||
|
|
f6949458b7 | ||
|
|
15dd6b4f2b | ||
|
|
7afd59149c | ||
|
|
a47f506293 | ||
|
|
ad88f755a4 | ||
|
|
f243abb65c | ||
|
|
a4b177436d | ||
|
|
8367569236 | ||
|
|
5bbb2b28ea | ||
|
|
2b92ab6dd6 | ||
|
|
c05c3dcaa3 | ||
|
|
dd71c23a04 | ||
|
|
299c49c291 | ||
|
|
b1feabaf64 | ||
|
|
2722e008e0 | ||
|
|
178b08cd0a | ||
|
|
bf20845249 | ||
|
|
4dc15451b7 | ||
|
|
3a764b6aae | ||
|
|
190e78c79c | ||
|
|
eb01399f26 | ||
|
|
c815654c94 | ||
|
|
f1ce908b50 | ||
|
|
fb07204d9f | ||
|
|
1e5648b11d | ||
|
|
0902e3420f | ||
|
|
2750f8c49b | ||
|
|
57ffc9c5d3 | ||
|
|
a2b858008f | ||
|
|
28956126ec | ||
|
|
698d8ab365 | ||
|
|
44471d3c42 | ||
|
|
ad1fa22196 | ||
|
|
04ebd96bb7 | ||
|
|
09b5ae14b1 | ||
|
|
8aa127186c | ||
|
|
a962082173 | ||
|
|
5c0dbe4d5c | ||
|
|
5934816b11 | ||
|
|
28dd84713f | ||
|
|
11b31cf9bd | ||
|
|
dfd2d88953 | ||
|
|
6a097bd691 | ||
|
|
2776d1ce8e | ||
|
|
fa12517fb2 | ||
|
|
9624d1bdcd | ||
|
|
8f7bf150df | ||
|
|
f5270e1539 | ||
|
|
0834b210ca | ||
|
|
cc41adbbf9 | ||
|
|
8944353716 | ||
|
|
53ff42ea55 | ||
|
|
63a666025f | ||
|
|
25a92e61ef | ||
|
|
70a33ec78d | ||
|
|
d358d7433b | ||
|
|
08ce9773dd | ||
|
|
f745734d90 | ||
|
|
5443083b1d | ||
|
|
cc19496699 | ||
|
|
b595691c5e | ||
|
|
7d784a1a91 | ||
|
|
a664042f64 | ||
|
|
5bc4470a8c | ||
|
|
b8ed1ea3a4 | ||
|
|
f2ad49cf20 | ||
|
|
fd6a9e73ed | ||
|
|
db57a8e7b6 | ||
|
|
2a35bf009f | ||
|
|
42d49d74ab | ||
|
|
a9f34249fc | ||
|
|
1ce59bcc1f | ||
|
|
bb35821c45 | ||
|
|
bbec42c426 | ||
|
|
cb487a6d1a | ||
|
|
7fdcf62bf2 | ||
|
|
f82c1119bf | ||
|
|
f60f8a12ab | ||
|
|
fd348d456d | ||
|
|
0f73a97bc8 | ||
|
|
7783f50110 | ||
|
|
617cd628ea | ||
|
|
9601ba1323 | ||
|
|
b85fcd0cee | ||
|
|
3c879b7389 | ||
|
|
44e7bc1c23 | ||
|
|
0bcaeaeb33 | ||
|
|
da60f0748c | ||
|
|
5418392143 | ||
|
|
6c18b16a00 | ||
|
|
8e5ad717c4 | ||
|
|
1ff263f0a4 | ||
|
|
e9f0ca4385 | ||
|
|
079b67f111 | ||
|
|
a224ef6d0b | ||
|
|
0c0a6d39cb | ||
|
|
3439058a54 | ||
|
|
6414f7901f | ||
|
|
4d6390ea66 | ||
|
|
3f83d5057d | ||
|
|
67f1c00181 | ||
|
|
c4013ca4b0 | ||
|
|
25294d9a63 | ||
|
|
7d241642f9 | ||
|
|
d1e42ac56c | ||
|
|
45129b2bc8 | ||
|
|
0568b4c39d | ||
|
|
5b152a6c3f | ||
|
|
52d4e35192 | ||
|
|
a1a3750bc8 | ||
|
|
3cfda944d0 | ||
|
|
852fc2da2d | ||
|
|
adefb2921b | ||
|
|
27a141fd87 | ||
|
|
2b63ca4935 | ||
|
|
107d7e652f | ||
|
|
7e8d40b57a | ||
|
|
6c40b18229 | ||
|
|
9d51d70f70 | ||
|
|
96a9a0f6a4 | ||
|
|
31b513e6d7 | ||
|
|
d831d6e515 | ||
|
|
89de42ad8e | ||
|
|
01fcef9b9d | ||
|
|
2bcacfc1ac | ||
|
|
1e2edefd93 | ||
|
|
3aabba255d | ||
|
|
fc874c0249 | ||
|
|
e543723856 | ||
|
|
eb8e4bbfa8 | ||
|
|
821e2798b9 | ||
|
|
3a0dc8f8a5 | ||
|
|
f75152f074 | ||
|
|
f72c96914b | ||
|
|
23036eec08 | ||
|
|
045a46aa9d | ||
|
|
01876023bb | ||
|
|
e2ae29efdc | ||
|
|
f67389c017 | ||
|
|
20a57b76a8 | ||
|
|
d54d77c395 | ||
|
|
a8897ca8ca | ||
|
|
4e62a3bdd9 | ||
|
|
d8a60eca94 | ||
|
|
9aa2120c7d | ||
|
|
f7e3f51b54 | ||
|
|
aef7b3e9bb | ||
|
|
21d0219809 | ||
|
|
3cf59af3e9 | ||
|
|
28438e638b | ||
|
|
c1bf3be48e | ||
|
|
27293a22df | ||
|
|
fc07672983 | ||
|
|
c14a0ca2a1 | ||
|
|
64037febdc | ||
|
|
fd10ebbc87 | ||
|
|
91eefb9a3f | ||
|
|
1da0180e0f | ||
|
|
22abddc9d4 | ||
|
|
e912f56c26 | ||
|
|
a715679f1f | ||
|
|
55673442f1 | ||
|
|
b6294d4f93 | ||
|
|
40112e6061 | ||
|
|
0785bf138d | ||
|
|
e18e25d685 | ||
|
|
a9dc630fae | ||
|
|
85fdea19c2 | ||
|
|
792b6c28df | ||
|
|
d874a2e5f1 | ||
|
|
5c68164d48 | ||
|
|
b1d99a744b | ||
|
|
9f544cbe1c | ||
|
|
ad06d29140 | ||
|
|
a658b117a7 | ||
|
|
638b505ade | ||
|
|
ff3730f3fb | ||
|
|
00f488dc13 | ||
|
|
ca2f32ea58 | ||
|
|
0ebbccc6cf | ||
|
|
7c622ecc58 | ||
|
|
c12cb66824 | ||
|
|
c476cd0654 | ||
|
|
98315343b0 | ||
|
|
eb6787181d | ||
|
|
f7d9ca63e2 | ||
|
|
917308d24d | ||
|
|
97eee9e0c5 | ||
|
|
5cc234e27e | ||
|
|
2bbcc51a8b | ||
|
|
1824b977f7 | ||
|
|
99011fd3bf | ||
|
|
346631cd75 | ||
|
|
8517e103b0 | ||
|
|
815a81a610 | ||
|
|
20b9339620 | ||
|
|
2e93ac07f6 | ||
|
|
f385622ec6 | ||
|
|
de83186c3c | ||
|
|
fa0d57dd47 | ||
|
|
b164fa622f | ||
|
|
e4c654841b | ||
|
|
a411248c7c | ||
|
|
a066203b4a | ||
|
|
819c70fa9a | ||
|
|
9f9383e6ff | ||
|
|
70222b3033 | ||
|
|
5e2d7de6c2 | ||
|
|
aceef4d0d0 | ||
|
|
654956baa6 | ||
|
|
212ab08c15 | ||
|
|
18a0be561f | ||
|
|
0528981a0a | ||
|
|
eac1e91638 | ||
|
|
a8600faeb3 | ||
|
|
9c33eede5c | ||
|
|
6c285fa2a1 | ||
|
|
d6116e00bc | ||
|
|
c54b382775 | ||
|
|
184e2b646c | ||
|
|
8a8379c7eb | ||
|
|
8e8d827e00 | ||
|
|
2fad2e3ccd | ||
|
|
4c66d7f5ba | ||
|
|
124385fc31 | ||
|
|
5fe39f94ab | ||
|
|
e8d1645150 | ||
|
|
d1ea517f9a | ||
|
|
c6627d6266 | ||
|
|
2138ab05e5 | ||
|
|
ce3038fd8e | ||
|
|
555d00c9a8 | ||
|
|
12f013681a | ||
|
|
7a498310e2 | ||
|
|
9af58224fa | ||
|
|
61abdb57a7 | ||
|
|
e0cb0c70e1 | ||
|
|
420a05cabf | ||
|
|
262dd532e6 | ||
|
|
80ed6d1399 | ||
|
|
c04f1b57aa | ||
|
|
7aca92f2b3 | ||
|
|
e199278d6f | ||
|
|
f2a55bca55 | ||
|
|
bcd62aec6b | ||
|
|
c4e4330bd1 | ||
|
|
c70b53a162 | ||
|
|
3262def07c | ||
|
|
d049c13062 | ||
|
|
5ffed21e0e | ||
|
|
92ffda48ee | ||
|
|
91a4a325ae | ||
|
|
7cff5e58f0 | ||
|
|
17f0fc41d1 | ||
|
|
958e86f67e | ||
|
|
acb0118897 | ||
|
|
85a045c538 | ||
|
|
fbffe241e6 | ||
|
|
765fd1565a | ||
|
|
1a677c0b1d | ||
|
|
eeb8788413 | ||
|
|
c24ca68d63 | ||
|
|
e189dc3b1f | ||
|
|
ff8f391e91 | ||
|
|
0a9c2824ba | ||
|
|
dc37d3bf62 | ||
|
|
2780e6f3d7 | ||
|
|
260df58856 | ||
|
|
cba28a97a0 | ||
|
|
eca2203603 | ||
|
|
e926212554 | ||
|
|
65463b6efb | ||
|
|
9ac799bc95 | ||
|
|
7e4d757bdf | ||
|
|
1a8037cd6c | ||
|
|
dbc8a37b56 | ||
|
|
b1851ada93 | ||
|
|
c0799b0c1d | ||
|
|
e461710811 | ||
|
|
bea8e89cc7 | ||
|
|
17d66153b0 | ||
|
|
8ca0c11154 | ||
|
|
c4afc3d5c0 | ||
|
|
c22d51e439 | ||
|
|
aa052ae005 | ||
|
|
3f0b41ec3c |
269
.circleci/config.yml
Normal file
269
.circleci/config.yml
Normal file
@@ -0,0 +1,269 @@
|
||||
libratbag_references:
|
||||
build_dependencies: &build_dependencies
|
||||
FEDORA_DEP_BUILD: gcc gcc-c++ meson dbus-daemon glib2-devel json-glib-devel libevdev-devel libudev-devel libunistring-devel python3-devel python3-evdev swig
|
||||
FEDORA_DEP_TEST: check-devel python3-gobject python3-lxml valgrind diffutils
|
||||
FEDORA_DEP_DOC: python3-sphinx python3-sphinx_rtd_theme
|
||||
UBUNTU_DEP_BUILD: gcc g++ meson pkg-config systemd libevdev-dev libglib2.0-dev libjson-glib-dev libsystemd-dev libudev-dev libunistring-dev python3-dev python3-evdev swig
|
||||
UBUNTU_DEP_TEST: check python3-gi python3-lxml valgrind
|
||||
ARCH_DEP_BUILD: meson swig glib2 libevdev libudev.so libunistring json-glib python python-evdev python-gobject
|
||||
ARCH_DEP_TEST: check valgrind python-lxml
|
||||
default_settings: &default_settings
|
||||
working_directory: ~/libratbag
|
||||
environment:
|
||||
LANG: C.UTF-8
|
||||
build_default: &build_default
|
||||
name: Build
|
||||
command: |
|
||||
rm -rf build
|
||||
meson build ${MESON_PARAMS}
|
||||
meson configure build
|
||||
ninja -v -C build ${NINJA_ARGS}
|
||||
environment:
|
||||
MESON_PARAMS: --prefix=/usr
|
||||
build_buildtype_plain: &build_buildtype_plain
|
||||
run:
|
||||
<<: *build_default
|
||||
name: Build with buildtype plain
|
||||
environment:
|
||||
MESON_PARAMS: --prefix=/usr -Dbuildtype=plain
|
||||
build_buildtype_release: &build_buildtype_release
|
||||
run:
|
||||
<<: *build_default
|
||||
name: Build with buildtype release
|
||||
environment:
|
||||
MESON_PARAMS: --prefix=/usr -Dbuildtype=release
|
||||
build_and_test: &build_and_test
|
||||
run:
|
||||
<<: *build_default
|
||||
name: Build and test
|
||||
environment:
|
||||
NINJA_ARGS: test
|
||||
build_with_docs: &build_with_docs
|
||||
run:
|
||||
<<: *build_default
|
||||
name: Build with documentation
|
||||
environment:
|
||||
MESON_PARAMS: -Ddocumentation=true
|
||||
install: &install
|
||||
run:
|
||||
name: Installing
|
||||
command: ninja -C build install
|
||||
check_install: &check_install
|
||||
run:
|
||||
name: Checking installation
|
||||
command: |
|
||||
PREFIX=/usr/local/
|
||||
diff -u <(cd data/devices; ls *.device) <(cd $PREFIX/share/libratbag; ls *.device)
|
||||
check_uninstall: &check_uninstall
|
||||
run:
|
||||
name: Checking if any files are left after uninstall
|
||||
command: |
|
||||
PREFIX=/root/test_install
|
||||
meson build_install --prefix=$PREFIX
|
||||
ninja -C build_install install
|
||||
ninja -C build_install uninstall
|
||||
if [ -d $PREFIX ]
|
||||
then
|
||||
tree $PREFIX
|
||||
exit 1
|
||||
fi
|
||||
export_logs: &export_logs
|
||||
store_artifacts:
|
||||
path: ~/libratbag/build/meson-logs
|
||||
start_dbus: &start_dbus
|
||||
run:
|
||||
name: Start dbus daemon
|
||||
command: |
|
||||
mkdir /run/dbus
|
||||
/usr/bin/dbus-daemon --system --fork
|
||||
|
||||
save_date: &save_date
|
||||
run:
|
||||
name: Save date
|
||||
command: date +%F > /tmp/date
|
||||
|
||||
fedora_save_cache: &fedora_save_cache
|
||||
save_cache:
|
||||
key: fedora-cache-v1-{{ checksum "/tmp/date" }}
|
||||
paths:
|
||||
- /var/cache/dnf
|
||||
|
||||
fedora_fetch_cache: &fedora_fetch_cache
|
||||
restore_cache:
|
||||
keys:
|
||||
- fedora-cache-v1
|
||||
|
||||
fedora_install: &fedora_install
|
||||
run:
|
||||
name: Install prerequisites
|
||||
command: |
|
||||
echo keepcache=1 >> /etc/dnf/dnf.conf
|
||||
dnf install -y git ${FEDORA_DEP_BUILD} ${FEDORA_DEP_TEST}
|
||||
sed -i 's/systemd//' /etc/nsswitch.conf
|
||||
|
||||
fedora_settings: &fedora_settings
|
||||
<<: *default_settings
|
||||
steps:
|
||||
- *save_date
|
||||
- *fedora_fetch_cache
|
||||
- *fedora_install
|
||||
- checkout
|
||||
- *start_dbus
|
||||
- *build_and_test
|
||||
- *install
|
||||
- *check_install
|
||||
- *check_uninstall
|
||||
- *build_buildtype_plain
|
||||
- *build_buildtype_release
|
||||
- *export_logs
|
||||
- *fedora_save_cache
|
||||
environment:
|
||||
*build_dependencies
|
||||
|
||||
arch_save_cache: &arch_save_cache
|
||||
save_cache:
|
||||
key: arch-cache-v1-{{ checksum "/tmp/date" }}
|
||||
paths:
|
||||
- /var/cache/pacman/pkg
|
||||
|
||||
arch_fetch_cache: &arch_fetch_cache
|
||||
restore_cache:
|
||||
keys:
|
||||
- arch-cache-v1
|
||||
|
||||
arch_settings: &arch_settings
|
||||
<<: *default_settings
|
||||
steps:
|
||||
- *save_date
|
||||
- *arch_fetch_cache
|
||||
- run:
|
||||
name: Install prerequisites
|
||||
command: pacman -Syu --noconfirm --noprogressbar --needed base-devel git tree ${ARCH_DEP_BUILD} ${ARCH_DEP_TEST}
|
||||
- *start_dbus
|
||||
- checkout
|
||||
- *build_and_test
|
||||
- *install
|
||||
- *check_install
|
||||
- *check_uninstall
|
||||
- *export_logs
|
||||
- *arch_save_cache
|
||||
environment:
|
||||
*build_dependencies
|
||||
|
||||
ubuntu_settings: &ubuntu_settings
|
||||
<<: *default_settings
|
||||
steps:
|
||||
- run:
|
||||
name: Install prerequisites
|
||||
command: |
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
apt-get update
|
||||
apt-get install -y git ${UBUNTU_DEP_BUILD} ${UBUNTU_DEP_TEST}
|
||||
- checkout
|
||||
- *start_dbus
|
||||
- *build_and_test
|
||||
- *install
|
||||
- *check_install
|
||||
- *check_uninstall
|
||||
- *build_buildtype_plain
|
||||
- *build_buildtype_release
|
||||
- *export_logs
|
||||
environment:
|
||||
*build_dependencies
|
||||
|
||||
doc_build: &doc_build
|
||||
<<: *default_settings
|
||||
steps:
|
||||
- *fedora_fetch_cache
|
||||
- *fedora_install
|
||||
- run:
|
||||
name: Install documentation build-deps
|
||||
command: dnf install -y ${FEDORA_DEP_DOC}
|
||||
- checkout
|
||||
- *build_with_docs
|
||||
- *export_logs
|
||||
- store_artifacts:
|
||||
path: ~/libratbag/build/doc/html
|
||||
- persist_to_workspace:
|
||||
root: build
|
||||
paths:
|
||||
- doc/html/*
|
||||
environment:
|
||||
*build_dependencies
|
||||
|
||||
docs_deploy: &docs_deploy
|
||||
<<: *default_settings
|
||||
steps:
|
||||
- *fedora_fetch_cache
|
||||
- run:
|
||||
name: Install prerequisites
|
||||
command: dnf install -y git tree
|
||||
- checkout
|
||||
- attach_workspace:
|
||||
at: build
|
||||
- run:
|
||||
name: Setup the deploy SSH key
|
||||
command: |
|
||||
ssh-add -L | tail -n1 > ~/.ssh/deploy.pub
|
||||
cat <<EOF > ~/.ssh/config
|
||||
Host github.com
|
||||
IdentityFile /root/.ssh/deploy.pub
|
||||
IdentitiesOnly yes
|
||||
EOF
|
||||
- run:
|
||||
name: Clone doc repository
|
||||
command: |
|
||||
cd ~
|
||||
git clone ssh://git@github.com/${CIRCLE_PROJECT_REPONAME}/${CIRCLE_PROJECT_REPONAME}.github.io
|
||||
- run:
|
||||
name: Copy the doc, commit and push
|
||||
command: |
|
||||
set +e
|
||||
cd ~/${CIRCLE_PROJECT_REPONAME}.github.io
|
||||
\cp -r ~/${CIRCLE_PROJECT_REPONAME}/build/doc/html/* .
|
||||
if ! git diff-index --quiet HEAD --; then
|
||||
git config --global user.email "libratbag@librabtag.github.io"
|
||||
git config --global user.name "The libratbag crew"
|
||||
git add .
|
||||
git commit -m "update docs from ${CIRCLE_SHA1}"
|
||||
git push
|
||||
fi
|
||||
|
||||
version: 2
|
||||
jobs:
|
||||
fedora_32:
|
||||
<<: *fedora_settings
|
||||
docker:
|
||||
- image: fedora:32
|
||||
arch:
|
||||
<<: *arch_settings
|
||||
docker:
|
||||
- image: archlinux
|
||||
ubuntu_20_04:
|
||||
<<: *ubuntu_settings
|
||||
docker:
|
||||
- image: ubuntu:20.04
|
||||
doc_build:
|
||||
<<: *doc_build
|
||||
docker:
|
||||
- image: fedora:32
|
||||
doc_deploy:
|
||||
<<: *docs_deploy
|
||||
docker:
|
||||
- image: fedora:32
|
||||
|
||||
|
||||
workflows:
|
||||
version: 2
|
||||
compile_and_test:
|
||||
jobs:
|
||||
- ubuntu_20_04
|
||||
# - arch
|
||||
- fedora_32
|
||||
- doc_build
|
||||
- doc_deploy:
|
||||
requires:
|
||||
- doc_build
|
||||
filters:
|
||||
branches:
|
||||
only: master
|
||||
20
.editorconfig
Normal file
20
.editorconfig
Normal file
@@ -0,0 +1,20 @@
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
[*.{c,h}]
|
||||
indent_style = tab
|
||||
tab_width = 8
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[{*.{py,py.in},tools/ratbagctl.*.in}]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
[*.{yml,xsl}]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
3
.flake8
Normal file
3
.flake8
Normal file
@@ -0,0 +1,3 @@
|
||||
[flake8]
|
||||
ignore = E402,E501
|
||||
exclude = .git,__pycache__,build,data,piper/piper.py
|
||||
42
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
42
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Information**
|
||||
<!-- If your issue is related to a Logitech device please make sure you are running at least Linux 5.2 -->
|
||||
- `ratbagd` version (`ratbagd --version`):
|
||||
- Distribution:
|
||||
- Kernel version (ex. `uname -srmo`): `KERNEL VERSION HERE`
|
||||
|
||||
Device info (if applicable):
|
||||
```
|
||||
$ ratbagctl <device> info
|
||||
OUTPUT HERE
|
||||
```
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
**Logs**
|
||||
Please start the daemon with verbosity and reproduce the issue.
|
||||
|
||||
First make sure it isn't running already.
|
||||
```
|
||||
$ ratbagd --verbose=raw
|
||||
OUTPUT HERE
|
||||
```
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: enhancement
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
||||
52
.gitignore
vendored
52
.gitignore
vendored
@@ -1,52 +0,0 @@
|
||||
*.o
|
||||
*.pc
|
||||
*.la
|
||||
*.lo
|
||||
*.swp
|
||||
*~
|
||||
*.sig
|
||||
*.tar.*
|
||||
*.announce
|
||||
*.patch
|
||||
*.rej
|
||||
*.trs
|
||||
Makefile
|
||||
Makefile.in
|
||||
aclocal.m4
|
||||
autom4te.cache/
|
||||
config.guess
|
||||
config.h
|
||||
config.h.in
|
||||
config.log
|
||||
config.status
|
||||
config.sub
|
||||
configure
|
||||
depcomp
|
||||
install-sh
|
||||
libtool
|
||||
ltmain.sh
|
||||
missing
|
||||
stamp-h1
|
||||
.libs/
|
||||
.deps/
|
||||
src/libratbag-version.h
|
||||
doc/libratbag.doxygen
|
||||
doc/html
|
||||
tags
|
||||
test-driver
|
||||
compile
|
||||
m4
|
||||
symbols-leak-test
|
||||
symbols-leak-test.log
|
||||
test-build-cxx
|
||||
test-build-linker
|
||||
test-build-pedantic-c99
|
||||
test-build-std-gnuc90
|
||||
test-suite.log
|
||||
test-context
|
||||
test-device
|
||||
test-*.log
|
||||
ratbag-command
|
||||
hidpp10-dump-page
|
||||
hidpp20-dump-page
|
||||
lur-command
|
||||
3
COPYING
3
COPYING
@@ -1,4 +1,5 @@
|
||||
Copyright © 2015 Red Hat, Inc.
|
||||
Copyright © 2015-2017 Red Hat, Inc.
|
||||
Copyright © 2015 David Herrmann <dh.herrmann@gmail.com>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the "Software"),
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
SUBDIRS = src doc test tools hwdb data
|
||||
|
||||
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
|
||||
|
||||
valgrind:
|
||||
(cd test; $(MAKE) valgrind)
|
||||
170
README.md
170
README.md
@@ -1,21 +1,111 @@
|
||||
/*!@mainpage
|
||||
|
||||
libratbag
|
||||
=========
|
||||
|
||||
libratbag is a configuration library for gaming mice. It provides a generic
|
||||
way to access the various features exposed by these mice and abstracts away
|
||||
hardware-specific and kernel-specific quirks.
|
||||
<img src="https://libratbag.github.io/_images/logo.svg" alt="" width="30%" align="right">
|
||||
|
||||
Architecture
|
||||
------------
|
||||
libratbag provides **ratbagd**, a DBus daemon to configure input devices,
|
||||
mainly gaming mice. The daemon provides a generic way to access the various
|
||||
features exposed by these mice and abstracts away hardware-specific and
|
||||
kernel-specific quirks.
|
||||
|
||||
libratbag has two main components, the front-end API and wrapper code, and
|
||||
the back-end HW-specific drivers:
|
||||
libratbag currently supports devices from Logitech, Etekcity, GSkill,
|
||||
Roccat, Steelseries. See [the device
|
||||
files](https://github.com/libratbag/libratbag/tree/master/data/devices) for
|
||||
a complete list of supported devices.
|
||||
|
||||
+-----+ +-----+ +-----------+ +----------+
|
||||
| app | -> | API | -> | hw-driver | -> | protocol | -> device
|
||||
+-----+ +-----+ +-----------+ +----------+
|
||||
Users interact through a GUI like
|
||||
[Piper](https://github.com/libratbag/piper/). For developers, the
|
||||
`ratbagctl` tool is the prime tool for debugging.
|
||||
|
||||
Installing libratbag from system packages
|
||||
-----------------------------------------
|
||||
|
||||
libratbag is packaged for some distributions, you can use your system's
|
||||
package manager to install it. See [the
|
||||
wiki](https://github.com/libratbag/libratbag/wiki/Installation) for details.
|
||||
|
||||
Compiling libratbag
|
||||
-------------------
|
||||
|
||||
libratbag uses the [meson build system](http://mesonbuild.com) which in
|
||||
turn uses ninja to invoke the compiler. Run the following commands to clone
|
||||
libratbag and initialize the build:
|
||||
|
||||
git clone https://github.com/libratbag/libratbag.git
|
||||
cd libratbag
|
||||
meson builddir
|
||||
ninja -C builddir
|
||||
sudo ninja -C builddir install
|
||||
|
||||
The default prefix is `/usr/local`, i.e. it will not overwrite the system
|
||||
installation. For more information, see [the
|
||||
wiki](https://github.com/libratbag/libratbag/wiki/Installation).
|
||||
|
||||
And to build or re-build after code-changes, run:
|
||||
|
||||
ninja -C builddir
|
||||
sudo ninja -C builddir install
|
||||
|
||||
Note: `builddir` is the build output directory and can be changed to any
|
||||
other directory name. To set configure-time options, use e.g.
|
||||
|
||||
meson configure builddir -Ddocumentation=false
|
||||
|
||||
Run `meson configure builddir` to list the options.
|
||||
|
||||
Running ratbagd as DBus-activated systemd service
|
||||
-------------------------------------------------
|
||||
|
||||
To run ratbagd, simply run it as root `sudo ratbagd`. However,
|
||||
ratbagd is intended to run as dbus-activated systemd service and installs
|
||||
the following files:
|
||||
|
||||
/usr/share/dbus-1/system.d/org.freedesktop.ratbag1.conf
|
||||
/usr/share/dbus-1/system-services/org.freedesktop.ratbag1.conf
|
||||
/usr/share/systemd/system/ratbagd.service
|
||||
|
||||
These files are installed into the prefix by `ninja install`, see also the
|
||||
configure-time options `-Dsystemd-unit-dir` and `-Ddbus-root-dir`.
|
||||
Developers are encouraged to simply symlink to the files in the git
|
||||
repository.
|
||||
|
||||
For the files to take effect, you should run
|
||||
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl reload dbus.service
|
||||
|
||||
And finally, to enable the service:
|
||||
|
||||
sudo systemctl enable ratbagd.service
|
||||
|
||||
This places the required symlink into the systemd directory so that dbus
|
||||
activation is possible.
|
||||
|
||||
The DBus Interface
|
||||
-------------------
|
||||
|
||||
Full documentation of the DBus interface to interact with devices is
|
||||
available here: [ratbagd DBus Interface description](https://libratbag.github.io/).
|
||||
|
||||
libratbag Internal Architecture
|
||||
-------------------------------
|
||||
|
||||
libratbag has two main components, libratbag and ratbagd. Applications like
|
||||
Piper talk over DBus to ratbagd. ratbagd uses libratbag to access the actual
|
||||
devices.
|
||||
|
||||
+-------+ +------+ +---------+ +-----------+
|
||||
| Piper | -> | DBus | -> | ratbagd | -> | libratbag | -> device
|
||||
+-------+ +------+ +---------+ +-----------+
|
||||
|
||||
|
||||
Inside libratbag, we have the general frontend and API. Each device is
|
||||
handled by a HW-specific backend. That HW backend is responsible for the
|
||||
device-specific communication (usually some vendor-specific HID protocol).
|
||||
|
||||
+---------+ +-----+ +------------+ +----------+
|
||||
| ratbagd | -> | API | -> | hw backend | -> | protocol | -> device
|
||||
+---------+ +-----+ +------------+ +----------+
|
||||
|
||||
The API layer is HW agnostic. Depend on the HW, the protocol may be part of
|
||||
the driver implementation (e.g. etekcity) or a separate set of files
|
||||
@@ -24,36 +114,24 @@ implemented. The HW driver then only accesses the bits required for
|
||||
libratbag. This allows us to optionally export the protocol as separate
|
||||
library in the future, if other projects require it.
|
||||
|
||||
Adding Devices
|
||||
--------------
|
||||
Adding Devices to libratbag
|
||||
---------------------------
|
||||
|
||||
As of commit 3605bede4 libratbag now uses a hwdb entry to match the device
|
||||
with the drivers. To access a device through libratbag, the udev property
|
||||
RATBAG_DRIVER must be set for a device's event node. Check with
|
||||
libratbag relies on a device database to match a device with the drivers.
|
||||
See the [data/devices/](https://github.com/libratbag/libratbag/tree/master/data/devices)
|
||||
directory for the set of known devices. These files
|
||||
are usually installed into `$prefix/$datadir` (e.g. `/usr/share/libratbag/`).
|
||||
|
||||
sudo udevadm info /sys/class/input/eventX | grep RATBAG_DRIVER
|
||||
Adding a new device can be as simple as adding a new `.device` file. This is
|
||||
the case for many devices with a shared protocol (e.g. Logitech's HID++).
|
||||
See the
|
||||
[data/devices/device.example](https://github.com/libratbag/libratbag/tree/master/data/devices/device.example)
|
||||
file for guidance on what information must be set. Look for existing devices
|
||||
from the same vendor as guidance too.
|
||||
|
||||
If your device is not yet assigned the property, it is not in the hwdb. It
|
||||
may however be supported by one of our existing drivers. Try enabling it by
|
||||
adding the device vendor-id/product-id to the hwdb file in
|
||||
`hwdb/70-libratbag-mouse.hwdb`. For example, for a HID++ 1.0 device, edit
|
||||
the 70-libratbag-mouse.hwdb file and add an entry with `RATBAG_DRIVER=hidpp10`.
|
||||
For the other drivers, look for the id of the driver in driver-{drivername}.c
|
||||
file and do the same.
|
||||
|
||||
Once your device is added to the hwdb, install libratbag and trigger a hwdb
|
||||
update:
|
||||
|
||||
sudo udevadm hwdb --update
|
||||
sudo udevadm control --reload
|
||||
|
||||
Then unplug/replug your mouse. `RATBAG_DRIVER` should appear in the udev
|
||||
properties of your device with the value you previously set. If the property
|
||||
is not assigned, the hwdb entry does not correctly match your device or the
|
||||
installed udev rules/hwdb entries are not picked up by udev.
|
||||
|
||||
If the device doesn't work, you'll have to start reverse-engineering the
|
||||
device-specific protocol. Good luck :)
|
||||
If the device has a different protocol and doesn't work after adding the
|
||||
device file, you'll have to start reverse-engineering the device-specific
|
||||
protocol. Good luck :)
|
||||
|
||||
Source
|
||||
------
|
||||
@@ -63,20 +141,20 @@ Source
|
||||
Bugs
|
||||
----
|
||||
|
||||
Bugs can be reported in the issue tracker on our github repo:
|
||||
https://github.com/libratbag/libratbag/issues
|
||||
Bugs can be reported in [our issue tracker](https://github.com/libratbag/libratbag/issues)
|
||||
|
||||
Mailing list
|
||||
------------
|
||||
|
||||
libratbag discussions happen on the input-tools mailing list hosted on
|
||||
freedesktop.org: http://lists.freedesktop.org/archives/input-tools/
|
||||
libratbag discussions happen on the [input-tools mailing
|
||||
list](http://lists.freedesktop.org/archives/input-tools/) hosted on
|
||||
freedesktop.org
|
||||
|
||||
Device-specific notes
|
||||
---------------------
|
||||
|
||||
A number of device-specific notes and observations can be found in our
|
||||
"device-notes" repository: http://libratbag.github.io/device-notes/
|
||||
wiki: https://github.com/libratbag/libratbag/wiki/Devices
|
||||
|
||||
License
|
||||
-------
|
||||
@@ -92,6 +170,4 @@ libratbag is licensed under the MIT license.
|
||||
|
||||
See the COPYING file for the full license information.
|
||||
|
||||
[](https://semaphoreci.com/libratbag/libratbag)
|
||||
|
||||
*/
|
||||
[](https://circleci.com/gh/libratbag/libratbag)
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
test -n "$srcdir" || srcdir=`dirname "$0"`
|
||||
test -n "$srcdir" || srcdir=.
|
||||
(
|
||||
cd "$srcdir" &&
|
||||
autoreconf --force -v --install
|
||||
) || exit
|
||||
test -n "$NOCONFIGURE" || "$srcdir/configure" "$@"
|
||||
164
configure.ac
164
configure.ac
@@ -1,164 +0,0 @@
|
||||
AC_PREREQ([2.64])
|
||||
|
||||
m4_define([libratbag_major_version], [0])
|
||||
m4_define([libratbag_minor_version], [4])
|
||||
m4_define([libratbag_micro_version], [0])
|
||||
m4_define([libratbag_version],
|
||||
[libratbag_major_version.libratbag_minor_version.libratbag_micro_version])
|
||||
|
||||
AC_INIT([libratbag],
|
||||
[libratbag_version],
|
||||
[],
|
||||
[libratbag],
|
||||
[])
|
||||
|
||||
AC_SUBST([LIBRATBAG_VERSION_MAJOR], [libratbag_major_version])
|
||||
AC_SUBST([LIBRATBAG_VERSION_MINOR], [libratbag_minor_version])
|
||||
AC_SUBST([LIBRATBAG_VERSION_MICRO], [libratbag_micro_version])
|
||||
AC_SUBST([LIBRATBAG_VERSION], [libratbag_version])
|
||||
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
|
||||
AM_INIT_AUTOMAKE([1.11 foreign no-dist-gzip dist-xz])
|
||||
|
||||
# Before making a release, the LIBRATBAG_LT_VERSION and LIBLUR_LT_VERSION
|
||||
# strings should be modified.
|
||||
# The strings are of the form C:R:A.
|
||||
# a) If binary compatibility has been broken (eg removed or changed interfaces)
|
||||
# change to C+1:0:0.
|
||||
# b) If interfaces have been changed or added, but binary compatibility has
|
||||
# been preserved, change to C+1:0:A+1
|
||||
# c) If the interface is the same as the previous version, change to C:R+1:A
|
||||
LIBRATBAG_LT_VERSION=3:0:0
|
||||
LIBLUR_LT_VERSION=3:0:0
|
||||
AC_SUBST(LIBRATBAG_LT_VERSION)
|
||||
AC_SUBST(LIBLUR_LT_VERSION)
|
||||
|
||||
AM_SILENT_RULES([yes])
|
||||
AC_USE_SYSTEM_EXTENSIONS
|
||||
|
||||
# Check for programs
|
||||
AC_PROG_CC_C99
|
||||
AC_PROG_CXX # Only used by build C++ test
|
||||
AC_PROG_GREP
|
||||
|
||||
# Initialize libtool
|
||||
LT_PREREQ([2.2])
|
||||
LT_INIT
|
||||
|
||||
PKG_PROG_PKG_CONFIG()
|
||||
PKG_CHECK_MODULES(LIBUDEV, [libudev])
|
||||
PKG_CHECK_MODULES(LIBEVDEV, [libevdev])
|
||||
|
||||
if test "x$GCC" = "xyes"; then
|
||||
GCC_CXXFLAGS="-Wall -Wextra -Wno-unused-parameter -g -fvisibility=hidden"
|
||||
GCC_CFLAGS="$GCC_CXXFLAGS -Wmissing-prototypes -Wstrict-prototypes"
|
||||
fi
|
||||
AC_SUBST(GCC_CFLAGS)
|
||||
AC_SUBST(GCC_CXXFLAGS)
|
||||
|
||||
AC_ARG_WITH(udev-base-dir, AS_HELP_STRING([--with-udev-base-dir=DIR], [where udev base directory is]))
|
||||
if test -n "$with_udev_base_dir" ; then
|
||||
UDEV_BASE_DIR="$with_udev_base_dir"
|
||||
else
|
||||
UDEV_BASE_DIR="/usr/lib/udev"
|
||||
fi
|
||||
AC_SUBST(UDEV_BASE_DIR)
|
||||
|
||||
AC_ARG_ENABLE([documentation],
|
||||
[AC_HELP_STRING([--enable-documentation],
|
||||
[Enable building the documentation (default=auto)])],
|
||||
[build_documentation="$enableval"],
|
||||
[build_documentation="auto"])
|
||||
|
||||
if test "x$build_documentation" = "xyes" -o "x$build_documentation" = "xauto"; then
|
||||
AC_PATH_PROG(DOXYGEN, doxygen)
|
||||
if test "x$DOXYGEN" = "x"; then
|
||||
if test "x$build_documentation" = "xyes"; then
|
||||
AC_MSG_ERROR([Documentation build requested but doxygen not found. Install doxygen or disable the documentation using --disable-documentation])
|
||||
fi
|
||||
else
|
||||
AC_MSG_CHECKING([for compatible doxygen version])
|
||||
doxygen_version=`$DOXYGEN --version`
|
||||
AS_VERSION_COMPARE([$doxygen_version], [1.6.0],
|
||||
[AC_MSG_RESULT([no])
|
||||
DOXYGEN=""],
|
||||
[AC_MSG_RESULT([yes])],
|
||||
[AC_MSG_RESULT([yes])])
|
||||
if test "x$DOXYGEN" = "x" -a "x$build_documentation" = "xyes"; then
|
||||
AC_MSG_ERROR([Doxygen $doxygen_version too old. Doxygen 1.6+ required for documentation build. Install required doxygen version or disable the documentation using --disable-documentation])
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_PATH_PROG(DOT, dot)
|
||||
if test "x$DOT" = "x"; then
|
||||
if test "x$build_documentation" = "xyes"; then
|
||||
AC_MSG_ERROR([Documentation build requested but graphviz's dot not found. Install graphviz or disable the documentation using --disable-documentation])
|
||||
fi
|
||||
else
|
||||
AC_MSG_CHECKING([for compatible dot version])
|
||||
dot_version=`$DOT -V 2>&1|$GREP -oP '(?<=version\W)@<:@0-9.@:>@*(?=\W(.*))'`
|
||||
AS_VERSION_COMPARE([$dot_version], [2.26.0],
|
||||
[AC_MSG_RESULT([no])
|
||||
DOT=""],
|
||||
[AC_MSG_RESULT([yes])],
|
||||
[AC_MSG_RESULT([yes])])
|
||||
if test "x$DOT" = "x" -a "x$build_documentation" = "xyes"; then
|
||||
AC_MSG_ERROR([Graphviz dot $dot_version too old. Graphviz 2.26+ required for documentation build. Install required graphviz version or disable the documentation using --disable-documentation])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$DOXYGEN" != "x" -a "x$DOT" != "x"; then
|
||||
build_documentation="yes"
|
||||
else
|
||||
build_documentation="no"
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_ARG_ENABLE(tests,
|
||||
AS_HELP_STRING([--enable-tests], [Build the tests (default=auto)]),
|
||||
[build_tests="$enableval"],
|
||||
[build_tests="auto"])
|
||||
|
||||
PKG_CHECK_MODULES(CHECK, [check >= 0.9.10], [HAVE_CHECK="yes"], [HAVE_CHECK="no"])
|
||||
|
||||
if test "x$build_tests" = "xauto"; then
|
||||
build_tests="$HAVE_CHECK"
|
||||
fi
|
||||
if test "x$build_tests" = "xyes"; then
|
||||
if test "x$HAVE_CHECK" = "xno"; then
|
||||
AC_MSG_ERROR([Cannot build tests, check is missing])
|
||||
fi
|
||||
|
||||
AC_PATH_PROG(VALGRIND, [valgrind])
|
||||
fi
|
||||
|
||||
AC_DEFINE(BUILD_TESTS, [1], ["Build the test suite])
|
||||
AM_CONDITIONAL(HAVE_VALGRIND, [test "x$VALGRIND" != "x"])
|
||||
AM_CONDITIONAL(BUILD_TESTS, [test "x$build_tests" = "xyes"])
|
||||
AM_CONDITIONAL(BUILD_DOCS, [test "x$build_documentation" = "xyes"])
|
||||
|
||||
AC_CONFIG_FILES([Makefile
|
||||
data/Makefile
|
||||
doc/Makefile
|
||||
doc/libratbag.doxygen
|
||||
hwdb/Makefile
|
||||
src/Makefile
|
||||
src/libratbag.pc
|
||||
src/libratbag-version.h
|
||||
src/liblur.pc
|
||||
test/Makefile
|
||||
tools/Makefile])
|
||||
AC_CONFIG_FILES([test/symbols-leak-test],
|
||||
[chmod +x test/symbols-leak-test])
|
||||
AC_OUTPUT
|
||||
|
||||
AC_MSG_RESULT([
|
||||
Prefix ${prefix}
|
||||
udev base directory: ${UDEV_BASE_DIR}
|
||||
|
||||
Build documentation ${build_documentation}
|
||||
Build tests ${build_tests}
|
||||
Tests use valgrind ${VALGRIND}
|
||||
])
|
||||
@@ -1,2 +0,0 @@
|
||||
libratbagdatadir = $(datadir)/libratbag
|
||||
dist_libratbagdata_DATA = $(shell find $(top_srcdir)/data -name "*.svg" -printf "%P\n")
|
||||
@@ -1,26 +0,0 @@
|
||||
libratbag data files
|
||||
====================
|
||||
|
||||
These SVG files should approximate the device to make it immediately
|
||||
recognizable. Detail work not required, the graphic is an illustration only.
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
- Canvas size: 750x750 pixels
|
||||
- Two layers in the final SVG: a lower layer named "Device" with the device
|
||||
itself, "Leaders" with the buttons and leader-lines
|
||||
- The device should be approximately centered on the canvas and occupy a
|
||||
meaningful portion of the canvas without making it look cramped
|
||||
- Button labels must be in 12pt Sans, starting with Button0
|
||||
- Wheel buttons may be labeled separately if required (look at the Etekcity
|
||||
for an example)
|
||||
|
||||
Technique
|
||||
---------
|
||||
|
||||
The simplest approach is to find a photo of the device and import it into
|
||||
inkscape. Put it on the lowest layer, create a new layer "Device" above it
|
||||
and start tracing the outlines and edges of the device. Fill in the shapes
|
||||
and your device should resemble the underlying photo. Delete the photo
|
||||
layer, add leaders and button labels and you're done.
|
||||
11
data/devices/README.md
Normal file
11
data/devices/README.md
Normal file
@@ -0,0 +1,11 @@
|
||||
libratbag data files
|
||||
====================
|
||||
|
||||
This directory contains the data files for each supported device. libratbag
|
||||
reads these files to identify the backend driver for any given device. If a
|
||||
device is not listed, libratbag will not support it.
|
||||
|
||||
See the device.example file for instructions on the various options.
|
||||
|
||||
See the libratbag wiki for more information:
|
||||
https://github.com/libratbag/libratbag/wiki/Adding-a-device/
|
||||
227
data/devices/data-parse-test.py
Executable file
227
data/devices/data-parse-test.py
Executable file
@@ -0,0 +1,227 @@
|
||||
#!/usr/bin/env python3
|
||||
#
|
||||
# Copyright © 2017 Red Hat, Inc.
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||
# copy of this software and associated documentation files (the "Software"),
|
||||
# to deal in the Software without restriction, including without limitation
|
||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
# and/or sell copies of the Software, and to permit persons to whom the
|
||||
# Software is furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice (including the next
|
||||
# paragraph) shall be included in all copies or substantial portions of the
|
||||
# Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
# DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
# Device data verification script
|
||||
#
|
||||
|
||||
import argparse
|
||||
import configparser
|
||||
import re
|
||||
|
||||
|
||||
def assertIn(element, l):
|
||||
if element not in l:
|
||||
raise AssertionError('{} must be in {}'.format(element, l))
|
||||
|
||||
|
||||
def assertNotIn(element, l):
|
||||
if element in l:
|
||||
raise AssertionError('{} must not be in {}'.format(element, l))
|
||||
|
||||
|
||||
def check_match_str(string):
|
||||
bustypes = ['usb', 'bluetooth']
|
||||
|
||||
matches = string.split(';')
|
||||
for match in matches:
|
||||
if not match: # empty string if trailing ;
|
||||
continue
|
||||
|
||||
parts = match.split(':')
|
||||
assert(len(parts) == 3)
|
||||
assertIn(parts[0], bustypes)
|
||||
vid = parts[1]
|
||||
assert(vid == '{:04x}'.format(int(vid, 16)))
|
||||
pid = parts[2]
|
||||
assert(pid == '{:04x}'.format(int(pid, 16)))
|
||||
|
||||
|
||||
def check_ledtypes_str(string):
|
||||
permitted_types = ['logo', 'side', 'battery', 'dpi', 'switches']
|
||||
|
||||
types = string.split(';')
|
||||
for t in types:
|
||||
if not t: # emtpy string if trailing ;
|
||||
continue
|
||||
|
||||
assertIn(t, permitted_types)
|
||||
|
||||
|
||||
def check_section_device(section):
|
||||
required_keys = ['Name', 'Driver', 'DeviceMatch']
|
||||
permitted_keys = required_keys + ['LedTypes']
|
||||
|
||||
for key in section.keys():
|
||||
assertIn(key, permitted_keys)
|
||||
|
||||
for r in required_keys:
|
||||
assertIn(r, section)
|
||||
|
||||
try:
|
||||
check_ledtypes_str(section['LedTypes'])
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
check_match_str(section['DeviceMatch'])
|
||||
|
||||
|
||||
def check_dpi_range_str(string):
|
||||
import re
|
||||
|
||||
m = re.search('^([0-9]+):([0-9]+)@([0-9.]+)$', string)
|
||||
assert(m is not None)
|
||||
min = int(m.group(1))
|
||||
max = int(m.group(2))
|
||||
steps = float(m.group(3))
|
||||
|
||||
assert(min >= 0 and min <= 400)
|
||||
assert(max >= 2000 and max <= 12000)
|
||||
assert(steps > 0 and steps <= 100)
|
||||
|
||||
if int(steps) == steps:
|
||||
steps = int(steps)
|
||||
|
||||
assert(string == '{}:{}@{}'.format(min, max, steps))
|
||||
|
||||
|
||||
def check_dpi_list_str(string):
|
||||
entries = string.split(';')
|
||||
# Remove possible empty last entry if trailing with a ;
|
||||
if not entries[len(entries) - 1]:
|
||||
entries = entries[:-1]
|
||||
|
||||
for idx, entry in enumerate(entries):
|
||||
dpi = int(entry)
|
||||
assert(dpi >= 0 and dpi <= 12000)
|
||||
if idx > 0:
|
||||
prev = entries[idx - 1]
|
||||
prev_dpi = int(prev)
|
||||
assert(dpi > prev_dpi)
|
||||
|
||||
|
||||
def check_profile_type_str(string):
|
||||
types = ['G9', 'G500', 'G700']
|
||||
assertIn(string, types)
|
||||
|
||||
|
||||
def check_section_hidpp10(section):
|
||||
permitted = ['Profiles', 'ProfileType', 'DpiRange', 'DpiList', 'DeviceIndex', 'Leds']
|
||||
for key in section.keys():
|
||||
assertIn(key, permitted)
|
||||
|
||||
try:
|
||||
nprofiles = int(section['Profiles'])
|
||||
# 10 is arbitrarily chosen
|
||||
assert(nprofiles > 0 and nprofiles < 10)
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
try:
|
||||
index = int(section['DeviceIndex'], 16)
|
||||
assert(index > 0 and index <= 0xff)
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
try:
|
||||
check_dpi_range_str(section['DpiRange'])
|
||||
assertNotIn('DpiList', section.keys())
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
try:
|
||||
check_dpi_list_str(section['DpiList'])
|
||||
assertNotIn('DpiRange', section.keys())
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
try:
|
||||
check_profile_type_str(section['ProfileType'])
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
try:
|
||||
leds = int(section['Leds'])
|
||||
# 10 is arbitrarily chosen
|
||||
assert(leds > 0 and leds < 10)
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
|
||||
def check_section_hidpp20(section):
|
||||
permitted = ['DeviceIndex', 'Leds', 'Quirk']
|
||||
for key in section.keys():
|
||||
assertIn(key, permitted)
|
||||
|
||||
try:
|
||||
index = int(section['DeviceIndex'], 16)
|
||||
assert(index > 0 and index <= 0xff)
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
|
||||
def check_section_driver(driver, section):
|
||||
if driver == 'hidpp10':
|
||||
check_section_hidpp10(section)
|
||||
elif driver == 'hidpp20':
|
||||
check_section_hidpp20(section)
|
||||
else:
|
||||
assert('Unsupported driver section {}'.format(driver))
|
||||
|
||||
|
||||
def validate_data_file_name(path):
|
||||
# Matching any of the characters in the regular expression will throw an
|
||||
# error. Currently only tests the square brackets [], parentheses, and curly
|
||||
# braces.
|
||||
illegal_characters_regex = '([\[\]\{\}\(\)])'
|
||||
found_characters = re.findall(illegal_characters_regex, path)
|
||||
if found_characters:
|
||||
raise AssertionError("data file name '{}' contains illegal characters: '{}'".format(path, ''.join(found_characters)))
|
||||
|
||||
def parse_data_file(path):
|
||||
print('Parsing file {}'.format(path))
|
||||
data = configparser.ConfigParser(strict=True)
|
||||
# Don't convert to lowercase
|
||||
data.optionxform = lambda option: option
|
||||
data.read(path)
|
||||
|
||||
assertIn('Device', data.sections())
|
||||
check_section_device(data['Device'])
|
||||
|
||||
driver = data['Device']['Driver']
|
||||
driver_section = 'Driver/{}'.format(driver)
|
||||
|
||||
permitted_sections = ['Device', driver_section]
|
||||
for s in data.sections():
|
||||
assertIn(s, permitted_sections)
|
||||
|
||||
if data.has_section(driver_section):
|
||||
check_section_driver(driver, data[driver_section])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser(description="Device data-file checker")
|
||||
parser.add_argument('file', nargs='+')
|
||||
args = parser.parse_args()
|
||||
for path in args.file:
|
||||
validate_data_file_name(path)
|
||||
parse_data_file(path)
|
||||
54
data/devices/device.example
Normal file
54
data/devices/device.example
Normal file
@@ -0,0 +1,54 @@
|
||||
# Example description file for a libratbag device
|
||||
#
|
||||
# Make sure the file has a recognizable name with a '.device' suffix
|
||||
|
||||
[Device]
|
||||
# The kernel name of the device. This name is not used by libratbag, it is
|
||||
# used by debugging tools.
|
||||
Name=Logitech Example Device
|
||||
|
||||
# DeviceMatch is a triplet of bus:vid:pid, where bus is 'usb' or bluetooth'
|
||||
# and pid/vid are lowercase 4-digit hexadecimal numbers with preceding
|
||||
# zeroes.
|
||||
DeviceMatch=usb:12ab:00f2
|
||||
|
||||
# The libratbag driver backend
|
||||
Driver=hidpp10
|
||||
|
||||
# The types of the LEDs, in the indexed order they appear in, separated by a
|
||||
# semicolon.
|
||||
# Allowed values: logo, side, battery, dpi
|
||||
LedTypes=logo;side
|
||||
|
||||
# Only one group of driver-specific properties is permitted and it must be
|
||||
# [Driver/<drivername>]. It is a bug do have any other [Driver/foo] group in
|
||||
# a device file, but this example file lists all.
|
||||
|
||||
[Driver/hidpp10]
|
||||
# The number of profiles, must be greater than 0
|
||||
Profiles=1
|
||||
|
||||
# The type of the profile
|
||||
ProfileType=G9
|
||||
|
||||
# The range of available resolutions in the form min:max@step
|
||||
# Mutually exclusive with DpiList
|
||||
DpiRange=50:5700@50
|
||||
|
||||
# The list of available resolutions, separated by semicolons.
|
||||
# Mutually exclusive with DpiRange
|
||||
# Where possible, DpiRange should be preferred
|
||||
DpiList=50;200;400;800
|
||||
|
||||
# The HID++ 1.0 device index
|
||||
# Should be unset unless required
|
||||
# DeviceIndex=1
|
||||
|
||||
# The number of LEDs
|
||||
Leds=1
|
||||
|
||||
|
||||
[Driver/hidpp20]
|
||||
# The HID++ 2.0 device index
|
||||
# Should be unset unless required
|
||||
# DeviceIndex=1
|
||||
57
data/devices/duplicate-check.py
Executable file
57
data/devices/duplicate-check.py
Executable file
@@ -0,0 +1,57 @@
|
||||
#!/usr/bin/env python3
|
||||
#
|
||||
# Copyright © 2018 Red Hat, Inc.
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||
# copy of this software and associated documentation files (the "Software"),
|
||||
# to deal in the Software without restriction, including without limitation
|
||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
# and/or sell copies of the Software, and to permit persons to whom the
|
||||
# Software is furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice (including the next
|
||||
# paragraph) shall be included in all copies or substantial portions of the
|
||||
# Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
# DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import sys
|
||||
import configparser
|
||||
|
||||
|
||||
def parse_data_file(path):
|
||||
data = configparser.ConfigParser(strict=True)
|
||||
# Don't convert to lowercase
|
||||
data.optionxform = lambda option: option
|
||||
data.read(path)
|
||||
|
||||
matches = data['Device']['DeviceMatch']
|
||||
return matches.split(';')
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser(description='Device duplicate match checker')
|
||||
parser.add_argument('file', nargs='+')
|
||||
args = parser.parse_args()
|
||||
device_matches = {}
|
||||
duplicates = False
|
||||
for path in args.file:
|
||||
matches = parse_data_file(path)
|
||||
fname = os.path.basename(path)
|
||||
for m in matches:
|
||||
if m in device_matches:
|
||||
print('Duplicate DeviceMatch={} in {} and {}'.format(m, fname, device_matches[m]))
|
||||
duplicates = True
|
||||
device_matches[m] = fname
|
||||
|
||||
if duplicates:
|
||||
sys.exit(1)
|
||||
4
data/devices/etekcity-scroll-alpha.device
Normal file
4
data/devices/etekcity-scroll-alpha.device
Normal file
@@ -0,0 +1,4 @@
|
||||
[Device]
|
||||
Name=Etekcity Scroll Alpha
|
||||
DeviceMatch=usb:1ea7:4011
|
||||
Driver=etekcity
|
||||
5
data/devices/glorious-model-d.device
Normal file
5
data/devices/glorious-model-d.device
Normal file
@@ -0,0 +1,5 @@
|
||||
[Device]
|
||||
Name=Glorious Model D
|
||||
DeviceMatch=usb:258a:0033
|
||||
Driver=sinowealth
|
||||
|
||||
5
data/devices/glorious-model-o.device
Normal file
5
data/devices/glorious-model-o.device
Normal file
@@ -0,0 +1,5 @@
|
||||
[Device]
|
||||
Name=Glorious Model O
|
||||
DeviceMatch=usb:258a:0036
|
||||
Driver=sinowealth
|
||||
|
||||
5
data/devices/gskill-MX-780.device
Normal file
5
data/devices/gskill-MX-780.device
Normal file
@@ -0,0 +1,5 @@
|
||||
# G.Skill MX-780
|
||||
[Device]
|
||||
Name=G.Skill MX-780
|
||||
DeviceMatch=usb:28da:3101
|
||||
Driver=gskill
|
||||
5
data/devices/logitech-M325.device
Normal file
5
data/devices/logitech-M325.device
Normal file
@@ -0,0 +1,5 @@
|
||||
# Logitech M325 over unifying
|
||||
[Device]
|
||||
Name=Logitech M325
|
||||
DeviceMatch=usb:046d:400a
|
||||
Driver=hidpp20
|
||||
5
data/devices/logitech-M500s.device
Normal file
5
data/devices/logitech-M500s.device
Normal file
@@ -0,0 +1,5 @@
|
||||
# Logitech M500s
|
||||
[Device]
|
||||
Name=Logitech M500s
|
||||
DeviceMatch=usb:046d:c093
|
||||
Driver=hidpp20
|
||||
5
data/devices/logitech-M545.device
Normal file
5
data/devices/logitech-M545.device
Normal file
@@ -0,0 +1,5 @@
|
||||
# Logitech M545
|
||||
[Device]
|
||||
Name=Logitech M545
|
||||
DeviceMatch=usb:046d:4052
|
||||
Driver=hidpp20
|
||||
5
data/devices/logitech-M570.device
Normal file
5
data/devices/logitech-M570.device
Normal file
@@ -0,0 +1,5 @@
|
||||
# Logitech M570
|
||||
[Device]
|
||||
Name=Logitech M570
|
||||
DeviceMatch=usb:046d:1028
|
||||
Driver=hidpp10
|
||||
5
data/devices/logitech-M585-M590.device
Normal file
5
data/devices/logitech-M585-M590.device
Normal file
@@ -0,0 +1,5 @@
|
||||
# Logitech M585/M590
|
||||
[Device]
|
||||
Name=Logitech M585/M590
|
||||
DeviceMatch=usb:046d:406b;bluetooth:046d:b01b
|
||||
Driver=hidpp20
|
||||
5
data/devices/logitech-M705.device
Normal file
5
data/devices/logitech-M705.device
Normal file
@@ -0,0 +1,5 @@
|
||||
# Logitech M705
|
||||
[Device]
|
||||
Name=Logitech M705
|
||||
DeviceMatch=usb:046d:101b
|
||||
Driver=hidpp10
|
||||
4
data/devices/logitech-M720.device
Normal file
4
data/devices/logitech-M720.device
Normal file
@@ -0,0 +1,4 @@
|
||||
[Device]
|
||||
Name=Logitech M720
|
||||
DeviceMatch=usb:046d:405e;bluetooth:046d:b015
|
||||
Driver=hidpp20
|
||||
5
data/devices/logitech-MX-Anywhere-3.device
Normal file
5
data/devices/logitech-MX-Anywhere-3.device
Normal file
@@ -0,0 +1,5 @@
|
||||
# Logitech MX Anywhere 3
|
||||
[Device]
|
||||
Name=Logitech MX Anywhere 3
|
||||
DeviceMatch=bluetooth:046d:b025;usb:046d:4090
|
||||
Driver=hidpp20
|
||||
4
data/devices/logitech-MX-Anywhere2.device
Normal file
4
data/devices/logitech-MX-Anywhere2.device
Normal file
@@ -0,0 +1,4 @@
|
||||
[Device]
|
||||
Name=Logitech MX Anywhere 2
|
||||
DeviceMatch=usb:046d:404a;usb:046d:4072;usb:046d:4063;bluetooth:046d:b013;bluetooth:046d:b018;bluetooth:046d:b01f
|
||||
Driver=hidpp20
|
||||
4
data/devices/logitech-MX-Anywhere2S.device
Normal file
4
data/devices/logitech-MX-Anywhere2S.device
Normal file
@@ -0,0 +1,4 @@
|
||||
[Device]
|
||||
Name=Logitech MX Anywhere 2S
|
||||
DeviceMatch=bluetooth:046d:b01a;usb:046d:406a
|
||||
Driver=hidpp20
|
||||
5
data/devices/logitech-MX-Ergo.device
Normal file
5
data/devices/logitech-MX-Ergo.device
Normal file
@@ -0,0 +1,5 @@
|
||||
# Logitech MX Ergo
|
||||
[Device]
|
||||
Name=Logitech MX Ergo
|
||||
DeviceMatch=bluetooth:046d:b01d;usb:046d:406f
|
||||
Driver=hidpp20
|
||||
5
data/devices/logitech-MX-Master-2S.device
Normal file
5
data/devices/logitech-MX-Master-2S.device
Normal file
@@ -0,0 +1,5 @@
|
||||
# Logitech MX Master 2S
|
||||
[Device]
|
||||
Name=Logitech MX Master 2S
|
||||
DeviceMatch=bluetooth:046d:b019;usb:046d:4069
|
||||
Driver=hidpp20
|
||||
5
data/devices/logitech-MX-Master-3.device
Normal file
5
data/devices/logitech-MX-Master-3.device
Normal file
@@ -0,0 +1,5 @@
|
||||
# Logitech MX Master 3
|
||||
[Device]
|
||||
Name=Logitech MX Master 3
|
||||
DeviceMatch=bluetooth:046d:b023;usb:046d:4082
|
||||
Driver=hidpp20
|
||||
5
data/devices/logitech-MX-Master.device
Normal file
5
data/devices/logitech-MX-Master.device
Normal file
@@ -0,0 +1,5 @@
|
||||
# Logitech MX Master
|
||||
[Device]
|
||||
Name=Logitech MX Master
|
||||
DeviceMatch=usb:046d:4041;bluetooth:046d:b012;usb:046d:4060;bluetooth:046d:b017;bluetooth:046d:b01e;usb:046d:4071
|
||||
Driver=hidpp20
|
||||
4
data/devices/logitech-MX-Vertical.device
Normal file
4
data/devices/logitech-MX-Vertical.device
Normal file
@@ -0,0 +1,4 @@
|
||||
[Device]
|
||||
Name=Logitech MX Vertical
|
||||
DeviceMatch=bluetooth:046d:b020;usb:046d:407b;usb:046d:c08a
|
||||
Driver=hidpp20
|
||||
4
data/devices/logitech-MX518.device
Normal file
4
data/devices/logitech-MX518.device
Normal file
@@ -0,0 +1,4 @@
|
||||
[Device]
|
||||
Name=MX518
|
||||
DeviceMatch=usb:046d:c08e
|
||||
Driver=hidpp20
|
||||
4
data/devices/logitech-Marathon-M705.device
Normal file
4
data/devices/logitech-Marathon-M705.device
Normal file
@@ -0,0 +1,4 @@
|
||||
[Device]
|
||||
Name=Logitech Marathon M705
|
||||
DeviceMatch=usb:046d:406d
|
||||
Driver=hidpp20
|
||||
5
data/devices/logitech-T650.device
Normal file
5
data/devices/logitech-T650.device
Normal file
@@ -0,0 +1,5 @@
|
||||
# Logitech T650 over unifying
|
||||
[Device]
|
||||
Name=Logitech T650
|
||||
DeviceMatch=usb:046d:4101
|
||||
Driver=hidpp20
|
||||
5
data/devices/logitech-Wireless-Touchpad.device
Normal file
5
data/devices/logitech-Wireless-Touchpad.device
Normal file
@@ -0,0 +1,5 @@
|
||||
# Logitech Wireless Touchpad (Unifying)
|
||||
[Device]
|
||||
Name=Logitech Wireless Touchpad
|
||||
DeviceMatch=usb:046d:4011
|
||||
Driver=hidpp20
|
||||
8
data/devices/logitech-g-powerplay.device
Normal file
8
data/devices/logitech-g-powerplay.device
Normal file
@@ -0,0 +1,8 @@
|
||||
[Device]
|
||||
Name=Logitech G Powerplay
|
||||
DeviceMatch=usb:046d:405f
|
||||
LedTypes=logo
|
||||
Driver=hidpp20
|
||||
|
||||
[Driver/hidpp20]
|
||||
DeviceIndex=7
|
||||
8
data/devices/logitech-g-pro-wireless.device
Normal file
8
data/devices/logitech-g-pro-wireless.device
Normal file
@@ -0,0 +1,8 @@
|
||||
[Device]
|
||||
Name=Logitech G Pro Wireless
|
||||
DeviceMatch=usb:046d:4079;usb:046d:c088
|
||||
LedTypes=logo;battery;dpi;
|
||||
Driver=hidpp20
|
||||
|
||||
[Driver/hidpp20]
|
||||
DeviceIndex=1
|
||||
5
data/devices/logitech-g-pro-x-wireless-superlight.device
Normal file
5
data/devices/logitech-g-pro-x-wireless-superlight.device
Normal file
@@ -0,0 +1,5 @@
|
||||
[Device]
|
||||
Name=Logitech G Pro X Wireless Superlight
|
||||
DeviceMatch=usb:046d:4093;usb:046d:c094
|
||||
LedTypes=logo;battery;dpi;
|
||||
Driver=hidpp20
|
||||
5
data/devices/logitech-g-pro.device
Normal file
5
data/devices/logitech-g-pro.device
Normal file
@@ -0,0 +1,5 @@
|
||||
[Device]
|
||||
Name=Logitech Gaming Mouse G Pro
|
||||
DeviceMatch=usb:046d:c085;usb:046d:c08c
|
||||
Driver=hidpp20
|
||||
LedTypes=logo;side
|
||||
6
data/devices/logitech-g102-g203.device
Normal file
6
data/devices/logitech-g102-g203.device
Normal file
@@ -0,0 +1,6 @@
|
||||
# G102, G103 and G203 (USB)
|
||||
[Device]
|
||||
Name=Logitech Gaming Mouse G102/G103/G203
|
||||
DeviceMatch=usb:046d:c084;usb:046d:c092
|
||||
Driver=hidpp20
|
||||
LedTypes=logo;side;
|
||||
5
data/devices/logitech-g300.device
Normal file
5
data/devices/logitech-g300.device
Normal file
@@ -0,0 +1,5 @@
|
||||
# WARNING: this file was automatically converted and has not yet been vetted
|
||||
[Device]
|
||||
Name=Logitech G300
|
||||
DeviceMatch=usb:046d:c246
|
||||
Driver=logitech_g300
|
||||
6
data/devices/logitech-g302.device
Normal file
6
data/devices/logitech-g302.device
Normal file
@@ -0,0 +1,6 @@
|
||||
# G302 over USB
|
||||
[Device]
|
||||
Name=Logitech Gaming Mouse G302
|
||||
DeviceMatch=usb:046d:c07f
|
||||
Driver=hidpp20
|
||||
LedTypes=logo;side;
|
||||
6
data/devices/logitech-g303.device
Normal file
6
data/devices/logitech-g303.device
Normal file
@@ -0,0 +1,6 @@
|
||||
# G303 over USB
|
||||
[Device]
|
||||
Name=Logitech Gaming Mouse G303
|
||||
DeviceMatch=usb:046d:c080
|
||||
Driver=hidpp20
|
||||
LedTypes=logo;side;
|
||||
8
data/devices/logitech-g305.device
Normal file
8
data/devices/logitech-g305.device
Normal file
@@ -0,0 +1,8 @@
|
||||
[Device]
|
||||
Name=Logitech Gaming Mouse G305
|
||||
DeviceMatch=usb:046d:4074
|
||||
Driver=hidpp20
|
||||
|
||||
[Driver/hidpp20]
|
||||
Leds=0
|
||||
Quirk=G305
|
||||
6
data/devices/logitech-g402.device
Normal file
6
data/devices/logitech-g402.device
Normal file
@@ -0,0 +1,6 @@
|
||||
# Logitech G402 Gaming Mouse USB
|
||||
[Device]
|
||||
Name=Logitech G402 Gaming Mouse
|
||||
DeviceMatch=usb:046d:c07e
|
||||
LedTypes=logo
|
||||
Driver=hidpp20
|
||||
4
data/devices/logitech-g403-hero.device
Normal file
4
data/devices/logitech-g403-hero.device
Normal file
@@ -0,0 +1,4 @@
|
||||
[Device]
|
||||
Name=Logitech G403 Hero
|
||||
DeviceMatch=usb:046d:c08f
|
||||
Driver=hidpp20
|
||||
4
data/devices/logitech-g403-wireless.device
Normal file
4
data/devices/logitech-g403-wireless.device
Normal file
@@ -0,0 +1,4 @@
|
||||
[Device]
|
||||
Name=Logitech G403 Wireless
|
||||
DeviceMatch=usb:046d:405d;usb:046d:c082
|
||||
Driver=hidpp20
|
||||
4
data/devices/logitech-g403.device
Normal file
4
data/devices/logitech-g403.device
Normal file
@@ -0,0 +1,4 @@
|
||||
[Device]
|
||||
Name=Logitech G403
|
||||
DeviceMatch=usb:046d:c083
|
||||
Driver=hidpp20
|
||||
10
data/devices/logitech-g5-2007.device
Normal file
10
data/devices/logitech-g5-2007.device
Normal file
@@ -0,0 +1,10 @@
|
||||
# Name=Logitech G5 2007
|
||||
[Device]
|
||||
Name=Logitech G5
|
||||
DeviceMatch=usb:046d:c049
|
||||
Driver=hidpp10
|
||||
|
||||
[Driver/hidpp10]
|
||||
DpiList=400;800;1600;2000
|
||||
Profiles=1
|
||||
ProfileType=G500
|
||||
7
data/devices/logitech-g5.device
Normal file
7
data/devices/logitech-g5.device
Normal file
@@ -0,0 +1,7 @@
|
||||
[Device]
|
||||
Name=G5
|
||||
DeviceMatch=usb:046d:c041
|
||||
Driver=hidpp10
|
||||
|
||||
[Driver/hidpp10]
|
||||
DpiList=400;800;1600;2000
|
||||
9
data/devices/logitech-g500.device
Normal file
9
data/devices/logitech-g500.device
Normal file
@@ -0,0 +1,9 @@
|
||||
[Device]
|
||||
Name=Logitech G500
|
||||
DeviceMatch=usb:046d:c068
|
||||
Driver=hidpp10
|
||||
|
||||
[Driver/hidpp10]
|
||||
DpiRange=0:5700@23.53
|
||||
ProfileType=G500
|
||||
Profiles=1
|
||||
9
data/devices/logitech-g500s.device
Normal file
9
data/devices/logitech-g500s.device
Normal file
@@ -0,0 +1,9 @@
|
||||
[Device]
|
||||
Name=Logitech G500s
|
||||
DeviceMatch=usb:046d:c24e
|
||||
Driver=hidpp10
|
||||
|
||||
[Driver/hidpp10]
|
||||
DpiRange=0:8200@50
|
||||
ProfileType=G500
|
||||
Profiles=1
|
||||
4
data/devices/logitech-g502-hero-wireless.device
Normal file
4
data/devices/logitech-g502-hero-wireless.device
Normal file
@@ -0,0 +1,4 @@
|
||||
[Device]
|
||||
Name=Logitech G502 Hero Wireless
|
||||
DeviceMatch=usb:046d:407f;usb:046d:c08d
|
||||
Driver=hidpp20
|
||||
4
data/devices/logitech-g502-hero.device
Normal file
4
data/devices/logitech-g502-hero.device
Normal file
@@ -0,0 +1,4 @@
|
||||
[Device]
|
||||
Name=Logitech G502 Hero
|
||||
DeviceMatch=usb:046d:c08b
|
||||
Driver=hidpp20
|
||||
4
data/devices/logitech-g502-proteus-core.device
Normal file
4
data/devices/logitech-g502-proteus-core.device
Normal file
@@ -0,0 +1,4 @@
|
||||
[Device]
|
||||
Name=Logitech G502 Proteus Core
|
||||
DeviceMatch=usb:046d:c07d
|
||||
Driver=hidpp20
|
||||
4
data/devices/logitech-g502-proteus-spectrum.device
Normal file
4
data/devices/logitech-g502-proteus-spectrum.device
Normal file
@@ -0,0 +1,4 @@
|
||||
[Device]
|
||||
Name=Logitech G502 Proteus Spectrum
|
||||
DeviceMatch=usb:046d:c332
|
||||
Driver=hidpp20
|
||||
5
data/devices/logitech-g513.device
Normal file
5
data/devices/logitech-g513.device
Normal file
@@ -0,0 +1,5 @@
|
||||
[Device]
|
||||
Name=Logitech G513
|
||||
DeviceMatch=usb:046d:c33c
|
||||
LedTypes=switches
|
||||
Driver=hidpp20
|
||||
5
data/devices/logitech-g600.device
Normal file
5
data/devices/logitech-g600.device
Normal file
@@ -0,0 +1,5 @@
|
||||
# WARNING: this file was automatically converted and has not yet been vetted
|
||||
[Device]
|
||||
Name=Logitech G600
|
||||
DeviceMatch=usb:046d:c24a
|
||||
Driver=logitech_g600
|
||||
9
data/devices/logitech-g602.device
Normal file
9
data/devices/logitech-g602.device
Normal file
@@ -0,0 +1,9 @@
|
||||
# Logitech G602 over wireless USB
|
||||
[Device]
|
||||
Name=Logitech G602
|
||||
DeviceMatch=usb:046d:402c
|
||||
Driver=hidpp20
|
||||
|
||||
[Driver/hidpp20]
|
||||
DeviceIndex=1
|
||||
Quirk=G602
|
||||
5
data/devices/logitech-g603.device
Normal file
5
data/devices/logitech-g603.device
Normal file
@@ -0,0 +1,5 @@
|
||||
# Logitech G603
|
||||
[Device]
|
||||
Name=Logitech G603
|
||||
DeviceMatch=usb:046d:406c;bluetooth:046d:b01c
|
||||
Driver=hidpp20
|
||||
4
data/devices/logitech-g604.device
Normal file
4
data/devices/logitech-g604.device
Normal file
@@ -0,0 +1,4 @@
|
||||
[Device]
|
||||
Name=Logitech G604
|
||||
DeviceMatch=usb:046d:4085;bluetooth:046d:b024
|
||||
Driver=hidpp20
|
||||
9
data/devices/logitech-g7.device
Normal file
9
data/devices/logitech-g7.device
Normal file
@@ -0,0 +1,9 @@
|
||||
# Logitech G7
|
||||
# http://support.logitech.com/en_us/product/g7-laser-cordless-mouse/specs
|
||||
[Device]
|
||||
Name=Logitech G7
|
||||
DeviceMatch=usb:046d:c51a
|
||||
Driver=hidpp10
|
||||
|
||||
[Driver/hidpp10]
|
||||
Profiles=1
|
||||
12
data/devices/logitech-g700-wireless.device
Normal file
12
data/devices/logitech-g700-wireless.device
Normal file
@@ -0,0 +1,12 @@
|
||||
# Logitech G700 over wireless USB
|
||||
# http://support.logitech.com/en_us/product/wireless-gaming-mouse-g700/specs
|
||||
[Device]
|
||||
Name=Logitech G700
|
||||
DeviceMatch=usb:046d:c531
|
||||
Driver=hidpp10
|
||||
|
||||
[Driver/hidpp10]
|
||||
DpiRange=0:5700@23.53
|
||||
ProfileType=G700
|
||||
DeviceIndex=1
|
||||
Profiles=5
|
||||
11
data/devices/logitech-g700.device
Normal file
11
data/devices/logitech-g700.device
Normal file
@@ -0,0 +1,11 @@
|
||||
# Logitech G700 over USB
|
||||
# http://support.logitech.com/en_us/product/wireless-gaming-mouse-g700/specs
|
||||
[Device]
|
||||
Name=Logitech G700
|
||||
DeviceMatch=usb:046d:c06b
|
||||
Driver=hidpp10
|
||||
|
||||
[Driver/hidpp10]
|
||||
DpiRange=0:5700@23.53
|
||||
ProfileType=G700
|
||||
Profiles=5
|
||||
11
data/devices/logitech-g700s.device
Normal file
11
data/devices/logitech-g700s.device
Normal file
@@ -0,0 +1,11 @@
|
||||
# Logitech G700s over USB
|
||||
# http://support.logitech.com/en_us/product/g700s-rechargable-wireless-gaming-mouse/specs
|
||||
[Device]
|
||||
Name=Logitech G700s
|
||||
DeviceMatch=usb:046d:c07c
|
||||
Driver=hidpp10
|
||||
|
||||
[Driver/hidpp10]
|
||||
DpiRange=0:8200@50
|
||||
ProfileType=G700
|
||||
Profiles=5
|
||||
5
data/devices/logitech-g703-hero.device
Normal file
5
data/devices/logitech-g703-hero.device
Normal file
@@ -0,0 +1,5 @@
|
||||
[Device]
|
||||
Name=Logitech G703 Hero
|
||||
DeviceMatch=usb:046d:4086;usb:046d:c090
|
||||
Driver=hidpp20
|
||||
|
||||
5
data/devices/logitech-g703.device
Normal file
5
data/devices/logitech-g703.device
Normal file
@@ -0,0 +1,5 @@
|
||||
[Device]
|
||||
Name=Logitech G703
|
||||
DeviceMatch=usb:046d:c087;usb:046d:4070
|
||||
Driver=hidpp20
|
||||
|
||||
5
data/devices/logitech-g815.device
Normal file
5
data/devices/logitech-g815.device
Normal file
@@ -0,0 +1,5 @@
|
||||
[Device]
|
||||
Name=Logitech G815
|
||||
DeviceMatch=usb:046d:c33f
|
||||
LedTypes=logo;switches
|
||||
Driver=hidpp20
|
||||
13
data/devices/logitech-g9.device
Normal file
13
data/devices/logitech-g9.device
Normal file
@@ -0,0 +1,13 @@
|
||||
# Logitech G9
|
||||
# http://support.logitech.com/en_us/product/g9-laser-mouse/specs
|
||||
[Device]
|
||||
Name=Logitech G9
|
||||
DeviceMatch=usb:046d:c048
|
||||
LedTypes=dpi
|
||||
Driver=hidpp10
|
||||
|
||||
[Driver/hidpp10]
|
||||
DpiList=200;400;600;800;1000;1200;1400;1600;1800;2000;2200;2400;2600;2800;3000;3200
|
||||
ProfileType=G9
|
||||
Profiles=5
|
||||
Leds=1
|
||||
5
data/devices/logitech-g900.device
Normal file
5
data/devices/logitech-g900.device
Normal file
@@ -0,0 +1,5 @@
|
||||
# Logitech G900
|
||||
[Device]
|
||||
Name=Logitech G900
|
||||
DeviceMatch=usb:046d:c081;usb:046d:4053
|
||||
Driver=hidpp20
|
||||
4
data/devices/logitech-g903-hero.device
Normal file
4
data/devices/logitech-g903-hero.device
Normal file
@@ -0,0 +1,4 @@
|
||||
[Device]
|
||||
Name=Logitech G903 Hero
|
||||
DeviceMatch=usb:046d:c091;usb:046d:4087
|
||||
Driver=hidpp20
|
||||
4
data/devices/logitech-g903.device
Normal file
4
data/devices/logitech-g903.device
Normal file
@@ -0,0 +1,4 @@
|
||||
[Device]
|
||||
Name=Logitech G903
|
||||
DeviceMatch=usb:046d:c086;usb:046d:4067
|
||||
Driver=hidpp20
|
||||
8
data/devices/logitech-g910.device
Normal file
8
data/devices/logitech-g910.device
Normal file
@@ -0,0 +1,8 @@
|
||||
[Device]
|
||||
Name=Logitech G910
|
||||
DeviceMatch=usb:046d:c335
|
||||
LedTypes=logo;switches
|
||||
Driver=hidpp20
|
||||
|
||||
[Driver/hidpp20]
|
||||
DeviceIndex=ff
|
||||
8
data/devices/logitech-g915-tkl.device
Normal file
8
data/devices/logitech-g915-tkl.device
Normal file
@@ -0,0 +1,8 @@
|
||||
[Device]
|
||||
Name=Logitech G915 TKL
|
||||
DeviceMatch=usb:046d:c343;bluetooth:046d:b35f
|
||||
LedTypes=logo;switches
|
||||
Driver=hidpp20
|
||||
|
||||
[Driver/hidpp20]
|
||||
DeviceIndex=1
|
||||
8
data/devices/logitech-g915.device
Normal file
8
data/devices/logitech-g915.device
Normal file
@@ -0,0 +1,8 @@
|
||||
[Device]
|
||||
Name=Logitech G915
|
||||
DeviceMatch=usb:046d:c33e
|
||||
LedTypes=logo;switches
|
||||
Driver=hidpp20
|
||||
|
||||
[Driver/hidpp20]
|
||||
DeviceIndex=1
|
||||
5
data/devices/logitech-g935.device
Normal file
5
data/devices/logitech-g935.device
Normal file
@@ -0,0 +1,5 @@
|
||||
[Device]
|
||||
Name=Logitech G935
|
||||
DeviceMatch=usb:046d:0a87
|
||||
LedTypes=logo;side
|
||||
Driver=hidpp20
|
||||
11
data/devices/logitech-g9x-Call-of-Duty-MW3-Edition.device
Normal file
11
data/devices/logitech-g9x-Call-of-Duty-MW3-Edition.device
Normal file
@@ -0,0 +1,11 @@
|
||||
# Logitech G9x [Call of Duty MW3 Edition]
|
||||
# http://support.logitech.com/en_us/product/laser-mouse-g9x/specs
|
||||
[Device]
|
||||
Name=Logitech G9x [Call of Duty MW3 Edition]
|
||||
DeviceMatch=usb:046d:c249
|
||||
Driver=hidpp10
|
||||
|
||||
[Driver/hidpp10]
|
||||
DpiRange=0:5700@23.53
|
||||
ProfileType=G500
|
||||
Profiles=5
|
||||
13
data/devices/logitech-g9x-Original.device
Normal file
13
data/devices/logitech-g9x-Original.device
Normal file
@@ -0,0 +1,13 @@
|
||||
# Logitech G9x [Original]
|
||||
# http://support.logitech.com/en_us/product/g9x-laser-mouse/specs
|
||||
[Device]
|
||||
Name=G9x [Original]
|
||||
DeviceMatch=usb:046d:c066
|
||||
Driver=hidpp10
|
||||
LedTypes=dpi
|
||||
|
||||
[Driver/hidpp10]
|
||||
DpiRange=200:5700@50
|
||||
ProfileType=G500
|
||||
Profiles=5
|
||||
Leds=1
|
||||
5
data/devices/nubwo-x7-spectrum.device
Normal file
5
data/devices/nubwo-x7-spectrum.device
Normal file
@@ -0,0 +1,5 @@
|
||||
[Device]
|
||||
Name=Nubwo x7 spectrum
|
||||
DeviceMatch=usb:258a:0012
|
||||
Driver=sinowealth_nubwo
|
||||
|
||||
4
data/devices/openinput.device
Normal file
4
data/devices/openinput.device
Normal file
@@ -0,0 +1,4 @@
|
||||
[Device]
|
||||
Name=openinput
|
||||
DeviceMatch=usb:1d50:616a
|
||||
Driver=openinput
|
||||
74
data/devices/receiver-check.py
Executable file
74
data/devices/receiver-check.py
Executable file
@@ -0,0 +1,74 @@
|
||||
#!/usr/bin/env python3
|
||||
#
|
||||
# Copyright © 2018 Red Hat, Inc.
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||
# copy of this software and associated documentation files (the "Software"),
|
||||
# to deal in the Software without restriction, including without limitation
|
||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
# and/or sell copies of the Software, and to permit persons to whom the
|
||||
# Software is furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice (including the next
|
||||
# paragraph) shall be included in all copies or substantial portions of the
|
||||
# Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
# DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import sys
|
||||
import configparser
|
||||
|
||||
# see the IDs from
|
||||
# https://github.com/torvalds/linux/blob/master/drivers/hid/hid-ids.h#L772
|
||||
# https://github.com/torvalds/linux/blob/master/drivers/hid/hid-logitech-dj.c#L1826
|
||||
logitech_receivers = [
|
||||
0xc50c, # USB_DEVICE_ID_S510_RECEIVER
|
||||
0xc517, # USB_DEVICE_ID_S510_RECEIVER_2
|
||||
0xc512, # USB_DEVICE_ID_LOGITECH_CORDLESS_DESKTOP_LX500
|
||||
0xc513, # USB_DEVICE_ID_MX3000_RECEIVER
|
||||
0xc51b, # USB_DEVICE_ID_LOGITECH_27MHZ_MOUSE_RECEIVER
|
||||
0xc52b, # USB_DEVICE_ID_LOGITECH_UNIFYING_RECEIVER
|
||||
0xc52f, # USB_DEVICE_ID_LOGITECH_NANO_RECEIVER
|
||||
0xc532, # USB_DEVICE_ID_LOGITECH_UNIFYING_RECEIVER_2
|
||||
0xc534, # USB_DEVICE_ID_LOGITECH_NANO_RECEIVER_2
|
||||
0xc539, # USB_DEVICE_ID_LOGITECH_NANO_RECEIVER_LIGHTSPEED_1
|
||||
0xc53f, # USB_DEVICE_ID_LOGITECH_NANO_RECEIVER_LIGHTSPEED_1_1
|
||||
0xc53a, # USB_DEVICE_ID_LOGITECH_NANO_RECEIVER_POWERPLAY
|
||||
]
|
||||
RECEIVERS = ['usb:046d:{}'.format(r) for r in logitech_receivers]
|
||||
|
||||
|
||||
def parse_data_file(path):
|
||||
data = configparser.ConfigParser(strict=True)
|
||||
# Don't convert to lowercase
|
||||
data.optionxform = lambda option: option
|
||||
data.read(path)
|
||||
|
||||
matches = data['Device']['DeviceMatch']
|
||||
return matches.split(';')
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser(description='Checks that no unifying receiver ID is in the device files')
|
||||
parser.add_argument('file', nargs='+')
|
||||
args = parser.parse_args()
|
||||
receiver_found = False
|
||||
for path in args.file:
|
||||
matches = parse_data_file(path)
|
||||
fname = os.path.basename(path)
|
||||
for m in matches:
|
||||
if m in RECEIVERS:
|
||||
print('Receiver ID {} found in file {}'.format(m, fname))
|
||||
receiver_found = True
|
||||
|
||||
if receiver_found:
|
||||
sys.exit(1)
|
||||
4
data/devices/roccat-kone-pure.device
Normal file
4
data/devices/roccat-kone-pure.device
Normal file
@@ -0,0 +1,4 @@
|
||||
[Device]
|
||||
Name=Roccat Kone Pure
|
||||
DeviceMatch=usb:1e7d:2dc2;usb:1e7d:2dbe;usb:1e7d:2dcb
|
||||
Driver=roccat-kone-pure
|
||||
4
data/devices/roccat-kone-xtd.device
Normal file
4
data/devices/roccat-kone-xtd.device
Normal file
@@ -0,0 +1,4 @@
|
||||
[Device]
|
||||
Name=Roccat Kone XTD
|
||||
DeviceMatch=usb:1e7d:2e22
|
||||
Driver=roccat
|
||||
11
data/devices/steelseries-kinzu-v2-pro.device
Normal file
11
data/devices/steelseries-kinzu-v2-pro.device
Normal file
@@ -0,0 +1,11 @@
|
||||
[Device]
|
||||
Name=SteelSeries Kinzu V2 Pro Edition
|
||||
DeviceMatch=usb:1038:1366
|
||||
Driver=steelseries
|
||||
|
||||
[Driver/steelseries]
|
||||
DeviceVersion=1
|
||||
Buttons=3
|
||||
Leds=0
|
||||
DpiList=400;800;1600;3200
|
||||
MacroLength=0
|
||||
11
data/devices/steelseries-kinzu-v2.device
Normal file
11
data/devices/steelseries-kinzu-v2.device
Normal file
@@ -0,0 +1,11 @@
|
||||
[Device]
|
||||
Name=SteelSeries Kinzu V2
|
||||
DeviceMatch=usb:1038:1378
|
||||
Driver=steelseries
|
||||
|
||||
[Driver/steelseries]
|
||||
DeviceVersion=1
|
||||
Buttons=3
|
||||
Leds=0
|
||||
DpiList=400;800;1600;3200
|
||||
MacroLength=0
|
||||
11
data/devices/steelseries-kinzu-v3.device
Normal file
11
data/devices/steelseries-kinzu-v3.device
Normal file
@@ -0,0 +1,11 @@
|
||||
[Device]
|
||||
Name=SteelSeries Kinzu V3
|
||||
DeviceMatch=usb:1038:1388
|
||||
Driver=steelseries
|
||||
|
||||
[Driver/steelseries]
|
||||
DeviceVersion=1
|
||||
Buttons=3
|
||||
Leds=0
|
||||
DpiList=400;800;1600;2000
|
||||
MacroLength=0
|
||||
11
data/devices/steelseries-rival-310.device
Normal file
11
data/devices/steelseries-rival-310.device
Normal file
@@ -0,0 +1,11 @@
|
||||
[Device]
|
||||
Name=SteelSeries Rival 310
|
||||
DeviceMatch=usb:1038:1720
|
||||
Driver=steelseries
|
||||
|
||||
[Driver/steelseries]
|
||||
DeviceVersion=2
|
||||
Buttons=6
|
||||
Leds=2
|
||||
DpiRange=100:12000@100
|
||||
MacroLength=1
|
||||
11
data/devices/steelseries-rival-600.device
Normal file
11
data/devices/steelseries-rival-600.device
Normal file
@@ -0,0 +1,11 @@
|
||||
[Device]
|
||||
Name=SteelSeries Rival 600
|
||||
DeviceMatch=usb:1038:1724
|
||||
Driver=steelseries
|
||||
|
||||
[Driver/steelseries]
|
||||
DeviceVersion=3
|
||||
Buttons=7
|
||||
Leds=8
|
||||
DpiRange=100:12000@100
|
||||
MacroLength=1
|
||||
11
data/devices/steelseries-rival.device
Normal file
11
data/devices/steelseries-rival.device
Normal file
@@ -0,0 +1,11 @@
|
||||
[Device]
|
||||
Name=SteelSeries Rival
|
||||
DeviceMatch=usb:1038:1384
|
||||
Driver=steelseries
|
||||
|
||||
[Driver/steelseries]
|
||||
DeviceVersion=1
|
||||
Buttons=6
|
||||
Leds=2
|
||||
DpiRange=50:6500@50
|
||||
MacroLength=1
|
||||
11
data/devices/steelseries-sensei-310.device
Normal file
11
data/devices/steelseries-sensei-310.device
Normal file
@@ -0,0 +1,11 @@
|
||||
[Device]
|
||||
Name=SteelSeries Sensei 310
|
||||
DeviceMatch=usb:1038:1722
|
||||
Driver=steelseries
|
||||
|
||||
[Driver/steelseries]
|
||||
DeviceVersion=2
|
||||
Buttons=8
|
||||
Leds=2
|
||||
DpiRange=100:12000@100
|
||||
MacroLength=1
|
||||
14
data/devices/steelseries-sensei-raw.device
Normal file
14
data/devices/steelseries-sensei-raw.device
Normal file
@@ -0,0 +1,14 @@
|
||||
[Device]
|
||||
Name=SteelSeries Sensei Raw
|
||||
DeviceMatch=usb:1038:1369
|
||||
Driver=steelseries
|
||||
LedTypes=logo;dpi
|
||||
|
||||
[Driver/steelseries]
|
||||
DeviceVersion=1
|
||||
Buttons=8
|
||||
Leds=1
|
||||
DpiRange=90:5670@90
|
||||
MacroLength=1
|
||||
MonoLed=1
|
||||
ShortButton=1
|
||||
@@ -1,482 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="750"
|
||||
height="750"
|
||||
viewBox="0 0 750.00005 750"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="etekcity.svg">
|
||||
<defs
|
||||
id="defs4">
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4449">
|
||||
<stop
|
||||
style="stop-color:#a6a6a6;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop4451" />
|
||||
<stop
|
||||
style="stop-color:#484848;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop4453" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4336">
|
||||
<stop
|
||||
style="stop-color:#898989;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4338" />
|
||||
<stop
|
||||
style="stop-color:#898989;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4340" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4449"
|
||||
id="linearGradient3237"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.344964,0,0,1.344964,-138.13637,564.60502)"
|
||||
x1="31.968746"
|
||||
y1="18.546629"
|
||||
x2="31.968746"
|
||||
y2="29.577879" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4336"
|
||||
id="linearGradient3889"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.79176032,0,0,0.79176032,-529.7793,277.79557)"
|
||||
x1="97.085503"
|
||||
y1="74.08123"
|
||||
x2="95.471596"
|
||||
y2="200.83122" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4449"
|
||||
id="linearGradient3891"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.344964,0,0,1.344964,-441.46063,314.40367)"
|
||||
x1="31.968746"
|
||||
y1="18.546629"
|
||||
x2="31.968746"
|
||||
y2="29.577879" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4336"
|
||||
id="linearGradient3921"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.79176032,0,0,0.79176032,-529.7793,277.79557)"
|
||||
x1="97.085503"
|
||||
y1="74.08123"
|
||||
x2="95.471596"
|
||||
y2="200.83122" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4449"
|
||||
id="linearGradient3923"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.344964,0,0,1.344964,-441.46063,314.40367)"
|
||||
x1="31.968746"
|
||||
y1="18.546629"
|
||||
x2="31.968746"
|
||||
y2="29.577879" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.96038311"
|
||||
inkscape:cx="377.27056"
|
||||
inkscape:cy="338.13614"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer4"
|
||||
showgrid="false"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
fit-margin-top="50"
|
||||
fit-margin-left="50"
|
||||
fit-margin-right="50"
|
||||
fit-margin-bottom="50"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1099"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer5"
|
||||
inkscape:label="Device"
|
||||
transform="translate(647.36582,-57.672087)"
|
||||
style="display:inline">
|
||||
<g
|
||||
id="g3893"
|
||||
transform="translate(121.82639,-21.866275)">
|
||||
<g
|
||||
transform="matrix(0.79176032,0,0,0.79176032,-628.41671,192.05523)"
|
||||
style="fill:#000000;fill-opacity:1;stroke:none;display:inline"
|
||||
id="g4271">
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||
d="m 421.23361,409.14757 c 4.4349,4.09496 9.16721,10.86185 32.57742,27.27412 4.08118,24.47294 2.40765,48.35999 1.01015,67.42768 -1.3975,19.06769 -9.52288,85.7367 -30.55711,85.7367 l -41.92133,-6.18719 8.9651,-171.72593 32.38801,-150.26019 27.05315,-2.27284 -2.70689,27.21098 -26.19294,53.47495 z"
|
||||
id="path4249"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cczcccccccc" />
|
||||
<use
|
||||
style="fill:#000000;fill-opacity:1;stroke:none"
|
||||
x="0"
|
||||
y="0"
|
||||
xlink:href="#path4249"
|
||||
id="use4266"
|
||||
transform="matrix(-1,0,0,1,580.95786,0)"
|
||||
width="1469.2054"
|
||||
height="1013.322" />
|
||||
</g>
|
||||
<path
|
||||
sodipodi:nodetypes="cccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4251"
|
||||
d="m -268.43146,403.53037 c -1.07689,19.01234 -1.64984,38.40264 -3.69907,56.68573 -2.36798,4.75208 -4.96718,7.8857 -7.59809,10.79728 l -13.59657,0 5.59859,-67.18309 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4253"
|
||||
d="m -281.12826,473.7127 -0.29993,6.19844 7.09822,5.79854 -2.19945,30.1924 -8.99773,9.59758 -0.29993,28.99271 -2.3994,3.59909 -14.59632,0 0,-84.47873 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
|
||||
<use
|
||||
height="1013.322"
|
||||
width="1469.2054"
|
||||
transform="matrix(-1,0,0,1,-698.21665,-85.740335)"
|
||||
id="use4275"
|
||||
xlink:href="#path4251"
|
||||
y="0"
|
||||
x="0"
|
||||
style="display:inline" />
|
||||
<ellipse
|
||||
sodipodi:ry="36.875"
|
||||
sodipodi:rx="57.5"
|
||||
sodipodi:cy="231.07376"
|
||||
sodipodi:cx="290.47894"
|
||||
d="m 347.97894,231.07376 c 0,20.3655 -25.74362,36.875 -57.5,36.875 -31.75637,0 -57.5,-16.5095 -57.5,-36.875 0,-20.3655 25.74363,-36.875 57.5,-36.875 31.75638,0 57.5,16.5095 57.5,36.875 z"
|
||||
ry="36.875"
|
||||
rx="57.5"
|
||||
cy="231.07376"
|
||||
cx="290.47894"
|
||||
id="path4243"
|
||||
style="fill:#000000;fill-opacity:1;stroke:#ff0000;stroke-width:1.26300848;stroke-opacity:1;display:inline"
|
||||
transform="matrix(0.79176032,0,0,0.79176032,-628.41671,124.43258)" />
|
||||
<use
|
||||
height="1013.322"
|
||||
width="1469.2054"
|
||||
transform="matrix(-1,0,0,1,-698.21665,-85.740335)"
|
||||
id="use4277"
|
||||
xlink:href="#path4253"
|
||||
y="0"
|
||||
x="0"
|
||||
style="display:inline" />
|
||||
<path
|
||||
sodipodi:nodetypes="cccccscccccccccccccccccscccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3441"
|
||||
d="m -401.08313,328.79009 0.26444,-40.70143 c -39.18883,7.37119 -44.1411,4.0242 -51.69484,0.84743 -19.57977,14.34842 -45.06471,30.13362 -73.61979,38.63234 -2.47282,19.58198 -2.71663,46.75085 -2.09075,66.56663 19.0204,10.56139 17.6053,33.92046 19.25741,48.34377 1.65211,14.4233 7.20626,94.24576 7.20626,94.24576 l -2.59797,21.72393 23.30745,43.04888 c -0.16213,7.00604 -0.46719,14.87323 -3.03251,37.40758 -7.15647,2.04323 -13.81042,1.56652 -20.02442,-1.10259 0.0912,10.91499 -0.68305,21.82736 0.56908,32.68021 11.24444,13.4205 16.39645,27.09393 56.20571,56.18715 l 6.498,11.63207 c 13.0739,7.46592 23.16933,11.65186 42.40866,14.95221 19.23933,-3.30035 29.33476,-7.48629 42.40866,-14.95221 l 6.498,-11.63207 c 39.80926,-29.09322 44.96127,-42.76665 56.2057,-56.18715 1.25213,-10.85285 0.47635,-21.76522 0.56754,-32.68021 -6.214,2.66911 -12.86641,3.14582 -20.02288,1.10259 -2.56532,-22.53435 -2.87037,-30.40154 -3.0325,-37.40758 l 23.3059,-43.04888 -2.59642,-21.72393 c 0,0 5.55415,-79.82246 7.20625,-94.24576 1.65211,-14.42331 0.23546,-37.78238 19.25586,-48.34377 0.62589,-19.81578 0.38362,-46.98465 -2.08919,-66.56663 -28.55509,-8.49872 -54.04157,-24.28392 -73.62134,-38.63234 -7.55373,3.17677 -12.50447,6.52376 -51.69329,-0.84743 l 0.26444,40.70143 z"
|
||||
style="fill:#282828;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4289"
|
||||
d="m -398.45459,328.52925 0,117.85034"
|
||||
style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
|
||||
<path
|
||||
sodipodi:nodetypes="cccccccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4247"
|
||||
d="m -390.51793,495.35976 13.14911,20.077 24.31724,0 -19.22802,-64.1898 -26.14665,-13.56354 -26.14819,13.56354 -19.22802,64.1898 24.31879,0 13.14909,-20.077 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
|
||||
<rect
|
||||
ry="3.2500002"
|
||||
rx="3.2500002"
|
||||
y="334.18024"
|
||||
x="-410.93967"
|
||||
height="59.523411"
|
||||
width="25.025282"
|
||||
id="rect4245"
|
||||
style="fill:#000000;fill-opacity:1;stroke:#ff0000;stroke-width:1;stroke-opacity:1;display:inline" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4311"
|
||||
d="m -408.76059,297.49061 c -14.10207,2.39851 -28.95919,4.88556 -42.94836,0.51186 -20.52977,14.9081 -42.9383,27.51676 -67.08004,35.5287 -1.79569,18.70085 -2.21232,37.56904 -1.4629,56.27529 14.36611,10.46486 18.14376,29.44442 18.67596,46.17572 1.42879,19.10333 3.31403,38.21183 4.78767,57.33922 l 94.06329,0.0603 0,-99.67829 -5.64129,0 c -1.42556,0 -2.57322,-1.14766 -2.57322,-2.57323 l 0,-54.37631 c 0,-1.42556 1.14766,-2.57322 2.57322,-2.57322 l 2.21136,0 c -2.89117,-5.43908 -2.75569,-17.98166 -2.75569,-23.06002 0,-6.57742 0.14421,-9.08623 0.15,-13.63002 z"
|
||||
style="fill:url(#linearGradient3921);fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
|
||||
<use
|
||||
height="1013.322"
|
||||
width="1469.2054"
|
||||
transform="matrix(-1,0,0,1,-796.64968,2.010815e-6)"
|
||||
id="use4348"
|
||||
xlink:href="#path4311"
|
||||
y="0"
|
||||
x="0"
|
||||
style="display:inline" />
|
||||
<circle
|
||||
sodipodi:ry="13.13577"
|
||||
sodipodi:rx="13.13577"
|
||||
sodipodi:cy="194.21156"
|
||||
sodipodi:cx="165.89903"
|
||||
d="m 179.0348,194.21156 c 0,7.25469 -5.88108,13.13577 -13.13577,13.13577 -7.25468,0 -13.13577,-5.88108 -13.13577,-13.13577 0,-7.25468 5.88109,-13.13577 13.13577,-13.13577 7.25469,0 13.13577,5.88109 13.13577,13.13577 z"
|
||||
r="13.13577"
|
||||
cy="194.21156"
|
||||
cx="165.89903"
|
||||
id="path4352"
|
||||
style="fill:#898989;fill-opacity:1;stroke:none;display:inline"
|
||||
transform="matrix(0.79176032,0,0,0.79176032,-529.7793,210.17291)" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4357"
|
||||
d="m -420.59834,454.5406 c -5.60675,18.71514 -11.21351,37.43027 -16.82027,56.1454 5.1217,0 10.2434,0 15.3651,0 4.38485,-6.69216 8.76766,-13.38566 13.15375,-20.077 6.98254,0 13.96508,0 20.94762,0 4.38609,6.69134 8.76889,13.38484 13.15374,20.077 5.12118,0 10.24237,0 15.36355,0 -5.60676,-18.71565 -11.21352,-37.43129 -16.82027,-56.14694 -7.39028,-3.83406 -14.78056,-7.66812 -22.17083,-11.50218 -7.39079,3.83457 -14.78159,7.66915 -22.17239,11.50372 z"
|
||||
style="fill:#898989;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="use4396"
|
||||
d="m -521.43644,406.56488 c -1.77374,0.0227 -3.15566,0.4222 -3.55518,1.76754 l 0.11752,2.1727 c 1.24058,16.62081 0.75876,33.65011 3.93561,49.99997 1.98359,2.87617 3.63732,8.09685 7.96709,7.20935 1.8046,-0.22471 4.69928,1.07511 6.16243,-0.0881 -0.0876,-1.12531 -0.18047,-2.37689 -0.26598,-3.46086 -1.38363,-12.51596 -2.3414,-25.11574 -3.33096,-37.70913 -0.77697,-6.57243 -2.15369,-13.39954 -5.30263,-19.41823 -1.9185,-0.16721 -4.00601,-0.49523 -5.7279,-0.4732 z"
|
||||
style="fill:#898989;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="use4398"
|
||||
d="m -506.09917,476.83515 c -1.97837,0.009 -3.95674,0.0188 -5.93511,0.0279 0.85216,4.85149 -4.04309,7.59388 -6.85213,10.37484 -0.6345,6.02214 1.09923,12.03757 0.98197,18.13626 0.3064,4.54843 -0.35793,10.2138 4.18921,12.95425 3.89072,2.9778 6.76537,7.60716 5.65521,12.64652 0.43285,7.84497 -0.8119,15.99277 0.9062,23.38167 1.01515,0.57035 2.08809,0.77358 3.18869,0.80413 l 2.20518,-18.43626 c 0,0 -2.26899,-32.57611 -4.33922,-59.88925 z"
|
||||
style="fill:#898989;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4404"
|
||||
d="m -271.77677,406.75044 c -3.09643,0.0485 -6.19285,0.0969 -9.28928,0.14537 -3.15953,5.97283 -4.55856,12.75131 -5.34747,19.29452 l -3.45931,41.48855 c 3.94759,0.0294 9.07538,1.78551 11.24547,-2.81911 5.80456,-6.57393 3.74439,-15.87475 4.98871,-23.78837 0.76732,-11.43639 1.23856,-22.86533 1.86188,-34.32096 z"
|
||||
style="fill:#898989;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4406"
|
||||
d="m -288.21508,476.67123 c -0.84134,0.006 -1.68687,0.0599 -2.53457,0.11907 -2.07117,27.32261 -4.3423,59.9341 -4.3423,59.9341 l 2.20826,18.47337 c 1.29581,-0.023 2.52331,-0.3133 3.58612,-1.2263 1.08603,-9.86486 -0.19804,-20.31797 0.95414,-30.09153 3.59307,-4.65204 10.46727,-8.17451 9.15627,-15.08365 0.31411,-7.28513 1.50719,-14.93066 1.3129,-22.00692 -3.27092,-2.21915 -7.90201,-5.21182 -6.84904,-9.77793 -1.14795,-0.27038 -2.31544,-0.34912 -3.49178,-0.34021 z"
|
||||
style="fill:#898989;fill-opacity:1;fill-rule:evenodd;stroke:none;display:inline" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4441"
|
||||
d="m -398.42702,334.8881 -2.54284,4.40528 -2.54281,4.40266 2.90008,0 0,9.31229 2.18557,-1.2609 2.18556,1.2609 0,-9.31229 2.90008,0 -2.54283,-4.40266 -2.54281,-4.40528 z"
|
||||
style="fill:url(#linearGradient3923);fill-opacity:1;stroke:none;display:inline" />
|
||||
<use
|
||||
height="1013.322"
|
||||
width="1469.2054"
|
||||
transform="matrix(1,0,0,-1,-9.1690072e-7,727.78645)"
|
||||
id="use4460"
|
||||
xlink:href="#path4441"
|
||||
y="0"
|
||||
x="0"
|
||||
style="display:inline" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer4"
|
||||
inkscape:label="Leaders"
|
||||
transform="translate(647.36582,-57.672087)"
|
||||
style="display:inline">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
|
||||
d="M -346.88483,324.11711 -381.86206,206.36042"
|
||||
id="path4211"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
|
||||
d="M -204.64408,314.78985 -143.68094,209.1986"
|
||||
id="path4215"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
|
||||
d="m -480.19795,353.09245 84.92794,58.46775"
|
||||
id="path4227"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
|
||||
d="m -481.9468,416.63443 92.50633,61.96547"
|
||||
id="path4229"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
|
||||
d="m -277.50576,447.94085 91.11706,-91.11705 75.50256,0"
|
||||
id="path4546"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
|
||||
d="m -110.92083,419.10931 -48.8358,0"
|
||||
id="path4221"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
|
||||
d="m -110.81855,476.81202 -50.8131,0"
|
||||
id="path4225"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4556"
|
||||
d="m -95.10276,585.08945 -2.54284,4.40528 -2.54281,4.40265 2.90008,0 0,9.3123 2.18557,-1.2609 2.18556,1.2609 0,-9.3123 2.90008,0 -2.54283,-4.40265 -2.54281,-4.40528 z"
|
||||
style="fill:url(#linearGradient3237);fill-opacity:1;stroke:none;display:inline" />
|
||||
<use
|
||||
style="display:inline"
|
||||
height="1013.322"
|
||||
width="1469.2054"
|
||||
transform="matrix(1.0000001,0,0,-1.0000001,303.3243,982.46676)"
|
||||
id="use4558"
|
||||
xlink:href="#path4441"
|
||||
y="0"
|
||||
x="0" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:31.67041588px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans;-inkscape-font-specification:'Sans, Normal'"
|
||||
x="-368.79688"
|
||||
y="175.47208"
|
||||
id="text4473"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
x="-368.79688"
|
||||
y="175.47208"
|
||||
id="tspan4217"
|
||||
style="font-size:32.00000381px">Button0</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text4477"
|
||||
y="205.6097"
|
||||
x="-141.6575"
|
||||
style="font-size:31.67041206px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
y="205.6097"
|
||||
x="-141.6575"
|
||||
id="tspan4479"
|
||||
sodipodi:role="line"
|
||||
style="font-size:32.00000381px">Button1</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:32.00000381px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans;-inkscape-font-specification:'Sans, Normal'"
|
||||
x="-252.41873"
|
||||
y="147.92294"
|
||||
id="text4481"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4483"
|
||||
x="-252.41873"
|
||||
y="147.92294">Button2</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text4485"
|
||||
y="361.82675"
|
||||
x="-492.72778"
|
||||
style="font-size:31.67041588px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans;-inkscape-font-specification:'Sans, Normal'"
|
||||
xml:space="preserve"><tspan
|
||||
y="361.82675"
|
||||
x="-492.72778"
|
||||
id="tspan4487"
|
||||
sodipodi:role="line"
|
||||
style="font-size:32.00000381px">Button3</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:31.67041588px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans;-inkscape-font-specification:'Sans, Normal'"
|
||||
x="-492.44421"
|
||||
y="414.9819"
|
||||
id="text4489"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4491"
|
||||
x="-492.44421"
|
||||
y="414.9819"
|
||||
style="font-size:32.00000381px">Button4</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text4493"
|
||||
y="356.69751"
|
||||
x="-110.46946"
|
||||
style="font-size:31.67041206px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
y="356.69751"
|
||||
x="-110.46946"
|
||||
id="tspan4495"
|
||||
sodipodi:role="line"
|
||||
style="font-size:32.00000381px">Button5</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:31.67041206px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
|
||||
x="-110.46946"
|
||||
y="416.97623"
|
||||
id="text4497"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4499"
|
||||
x="-110.46946"
|
||||
y="416.97623"
|
||||
style="font-size:32.00000381px">Button6</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text4501"
|
||||
y="476.83734"
|
||||
x="-110.46946"
|
||||
style="font-size:31.67041206px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
y="476.83734"
|
||||
x="-110.46946"
|
||||
id="tspan4503"
|
||||
sodipodi:role="line"
|
||||
style="font-size:32.00000381px">Button7</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:31.67041206px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
|
||||
x="-77.532547"
|
||||
y="605.11292"
|
||||
id="text4505"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4507"
|
||||
x="-77.532547"
|
||||
y="605.11292"
|
||||
style="font-size:32.00000381px">Button8</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text4509"
|
||||
y="650.02606"
|
||||
x="-77.532547"
|
||||
style="font-size:31.67041206px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
|
||||
xml:space="preserve"><tspan
|
||||
y="650.02606"
|
||||
x="-77.532547"
|
||||
id="tspan4511"
|
||||
sodipodi:role="line"
|
||||
style="font-size:32.00000381px">Button9</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
|
||||
d="m -276.93036,342.77164 25.64997,0 0,-188.87707"
|
||||
id="path4213"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 23 KiB |
File diff suppressed because it is too large
Load Diff
|
Before Width: | Height: | Size: 62 KiB |
@@ -1,778 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="750"
|
||||
height="750"
|
||||
viewBox="0 0 750.00004 749.99998"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="logitech-g502.svg">
|
||||
<defs
|
||||
id="defs4">
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4372">
|
||||
<stop
|
||||
style="stop-color:#3d444c;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop4374" />
|
||||
<stop
|
||||
style="stop-color:#8f9aaa;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop4376" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4327">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4329" />
|
||||
<stop
|
||||
style="stop-color:#969696;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop4331" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4319">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4321" />
|
||||
<stop
|
||||
style="stop-color:#969696;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop4323" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4219">
|
||||
<stop
|
||||
style="stop-color:#c3c3c3;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4221" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4223" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4197">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4199" />
|
||||
<stop
|
||||
id="stop4205"
|
||||
offset="0.23127364"
|
||||
style="stop-color:#242424;stop-opacity:1;" />
|
||||
<stop
|
||||
style="stop-color:#242424;stop-opacity:1;"
|
||||
offset="0.7880435"
|
||||
id="stop4207" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop4201" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4178">
|
||||
<stop
|
||||
id="stop4180"
|
||||
offset="0"
|
||||
style="stop-color:#000000;stop-opacity:1;" />
|
||||
<stop
|
||||
style="stop-color:#3b3b3b;stop-opacity:1;"
|
||||
offset="0.46853611"
|
||||
id="stop4182" />
|
||||
<stop
|
||||
style="stop-color:#777777;stop-opacity:1;"
|
||||
offset="0.84132797"
|
||||
id="stop4184" />
|
||||
<stop
|
||||
id="stop4186"
|
||||
offset="1"
|
||||
style="stop-color:#000000;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4168">
|
||||
<stop
|
||||
id="stop4170"
|
||||
offset="0"
|
||||
style="stop-color:#000000;stop-opacity:1;" />
|
||||
<stop
|
||||
style="stop-color:#3b3b3b;stop-opacity:1;"
|
||||
offset="0.646918"
|
||||
id="stop4172" />
|
||||
<stop
|
||||
style="stop-color:#777777;stop-opacity:1;"
|
||||
offset="0.76408035"
|
||||
id="stop4174" />
|
||||
<stop
|
||||
id="stop4176"
|
||||
offset="1"
|
||||
style="stop-color:#000000;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4150">
|
||||
<stop
|
||||
id="stop4152"
|
||||
offset="0"
|
||||
style="stop-color:#000000;stop-opacity:1;" />
|
||||
<stop
|
||||
style="stop-color:#3b3b3b;stop-opacity:1;"
|
||||
offset="0.54100561"
|
||||
id="stop4154" />
|
||||
<stop
|
||||
style="stop-color:#777777;stop-opacity:1;"
|
||||
offset="0.84132797"
|
||||
id="stop4156" />
|
||||
<stop
|
||||
id="stop4158"
|
||||
offset="1"
|
||||
style="stop-color:#000000;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4140">
|
||||
<stop
|
||||
id="stop4142"
|
||||
offset="0"
|
||||
style="stop-color:#000000;stop-opacity:1;" />
|
||||
<stop
|
||||
style="stop-color:#3b3b3b;stop-opacity:1;"
|
||||
offset="0.5890528"
|
||||
id="stop4144" />
|
||||
<stop
|
||||
style="stop-color:#777777;stop-opacity:1;"
|
||||
offset="0.69403088"
|
||||
id="stop4146" />
|
||||
<stop
|
||||
id="stop4148"
|
||||
offset="1"
|
||||
style="stop-color:#000000;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4047">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4049" />
|
||||
<stop
|
||||
id="stop4055"
|
||||
offset="0.5"
|
||||
style="stop-color:#000000;stop-opacity:0.49803922;" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4051" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4039">
|
||||
<stop
|
||||
style="stop-color:#636363;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4041" />
|
||||
<stop
|
||||
id="stop4063"
|
||||
offset="0.19902708"
|
||||
style="stop-color:#595959;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop4061"
|
||||
offset="0.39056408"
|
||||
style="stop-color:#4f4f4f;stop-opacity:1;" />
|
||||
<stop
|
||||
style="stop-color:#a3a3a3;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop4043" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4449">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4451" />
|
||||
<stop
|
||||
id="stop4059"
|
||||
offset="0.24691147"
|
||||
style="stop-color:#3b3b3b;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop4057"
|
||||
offset="0.84132797"
|
||||
style="stop-color:#777777;stop-opacity:1;" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop4453" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4449"
|
||||
id="linearGradient4562"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0,-1.698701,1.698701,0,-120.19569,737.44997)"
|
||||
x1="31.968746"
|
||||
y1="18.546629"
|
||||
x2="31.968746"
|
||||
y2="29.577879" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4449"
|
||||
id="linearGradient4623"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0,-1.6987012,-1.6987012,0,-45.565631,793.48827)"
|
||||
x1="31.968746"
|
||||
y1="18.546629"
|
||||
x2="31.968746"
|
||||
y2="29.577879" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4319"
|
||||
id="linearGradient4325"
|
||||
x1="-258.85849"
|
||||
y1="636.73883"
|
||||
x2="-210.58292"
|
||||
y2="669.61383"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4327"
|
||||
id="linearGradient4333"
|
||||
x1="-258.85849"
|
||||
y1="636.73883"
|
||||
x2="-210.58292"
|
||||
y2="669.61383"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4372"
|
||||
id="linearGradient4378"
|
||||
x1="476.00003"
|
||||
y1="513.00006"
|
||||
x2="559.50006"
|
||||
y2="463.50003"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4142136"
|
||||
inkscape:cx="359.25033"
|
||||
inkscape:cy="331.87231"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer4"
|
||||
showgrid="false"
|
||||
showguides="false"
|
||||
inkscape:guide-bbox="true"
|
||||
fit-margin-top="50"
|
||||
fit-margin-left="50"
|
||||
fit-margin-right="50"
|
||||
fit-margin-bottom="50"
|
||||
inkscape:window-width="2048"
|
||||
inkscape:window-height="1088"
|
||||
inkscape:window-x="2560"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Device"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(522.78594,-165.96284)"
|
||||
style="display:inline"
|
||||
sodipodi:insensitive="true">
|
||||
<g
|
||||
id="g4390"
|
||||
transform="translate(46.66905,-6.3639614)">
|
||||
<path
|
||||
sodipodi:nodetypes="zccccccscsscssssssssz"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4435"
|
||||
d="m -226.16095,683.58782 c -6.01535,-13.02364 -13,-16.5 -13,-16.5 l -11.25,-3.375 -116.45795,-88.57547 11.4905,-82.02437 7.62132,1.97703 6.89061,-13.15685 c -18.38478,2.65165 -27.23986,-1.01777 -28.47729,-2.60876 -1.23744,-1.59099 0.17677,-3.18198 0.17677,-3.18198 0,0 7.43505,-10.39747 47.55294,-23.33452 117.72759,-37.96429 194.75285,-32.63933 310.328127,14.65494 101.699787,41.61632 127.995243,117.50993 130.641353,159.47011 0,0 -2.38649,0.17677 -5.74524,5.03813 -3.35876,4.86136 6.0104,17.05896 3.53553,28.72622 -2.47487,11.66726 -28.637827,53.29817 -45.166448,48.70198 -16.528622,-4.5962 -39.067651,-6.98268 -55.154331,-3.00521 -16.08667977,3.97748 -95.017477,43.75224 -100.144001,46.66905 -5.126525,2.91682 -19.26866,10.42983 -25.36746,10.87177 -6.09879,0.44194 -18.29639,-4.06586 -45.25483,-14.05375 -26.95845,-9.98788 -54.09367,-22.98097 -61.25313,-32.88046 -7.15946,-9.8995 -4.95112,-20.38922 -10.96647,-33.41286 z"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4362"
|
||||
transform="translate(-522.78594,165.96281)"
|
||||
d="m 564.2793,394.82812 c -3.92575,-0.10626 -7.28936,3.75042 -13.08985,11.8711 -8.83883,12.37437 -39.24401,61.16451 -77.07422,75.30664 -37.83021,14.14214 -97.93406,2.12147 -130.10742,-1.41406 -32.07532,-3.52476 -80.61133,-16.61719 -80.61133,-16.61719 l -30.16601,4.00391 39.14453,29.77148 11.25,3.375 c 0,0 6.98465,3.47636 13,16.5 6.01535,13.02364 3.80734,23.51261 10.9668,33.41211 7.15946,9.89949 34.2935,22.89298 61.25195,32.88086 26.95844,9.98789 39.15707,14.49663 45.25586,14.05469 6.0988,-0.44194 20.24066,-7.95623 25.36719,-10.87305 5.12652,-2.91681 84.05785,-42.69049 100.14453,-46.66797 16.08668,-3.97747 38.62567,-1.59229 55.15429,3.00391 16.52863,4.59619 42.69115,-37.03392 45.16602,-48.70117 0.81145,-3.82542 0.34164,-7.70307 -0.52734,-11.36524 -4.70923,-11.20032 -11.76875,-25.18057 -21.7461,-38.13281 -23.82425,-30.92783 -38.18467,-40.65753 -46.3164,-47.02149 -2.79529,-2.18761 -5.00616,-3.33105 -7.0625,-3.38672 z"
|
||||
style="fill:url(#linearGradient4378);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<g
|
||||
id="g4356">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#2e2d2b;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 130.91406,379.34375 c -0.46995,0.14042 -0.93877,0.27563 -1.41015,0.42187 0,10e-6 -1.6703,5.53928 -1.51758,6.25196 l 51.97265,21.91992 23.86524,-17.50195 2.72461,-3.55664 c -0.22885,-0.14243 -0.45999,-0.27609 -0.68945,-0.41602 -27.39877,-3.31358 -52.27682,-5.25289 -75.04493,-6.2793 l 0.0996,-0.83984 z"
|
||||
transform="translate(-522.78594,165.96281)"
|
||||
id="path4417" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#13130f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 128.01367,386.0293 4.48633,9.0957 66,39.375 -18.53906,-26.56445 -0.002,0.002 -51.94531,-21.9082 z"
|
||||
transform="translate(-522.78594,165.96281)"
|
||||
id="path4422" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#7c7a79;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 203.82422,390.61328 c 0,0 -0.57509,0.25215 -0.60156,0.26367 l -23.26172,17.0586 18.38281,26.33984 -1.14844,-4.50586 0.79492,-17.32422 5.83399,-21.83203 z"
|
||||
transform="translate(-522.78594,165.96281)"
|
||||
id="path4427" />
|
||||
</g>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4216"
|
||||
transform="translate(-522.78594,165.96281)"
|
||||
d="M 411.19922,269.32812 C 389.02158,276.55183 382.23256,283.7763 371.75,291 l 25.375,6.25 c 18.2282,-19.41084 23.88453,-20.47312 31.20117,-23.95898 -5.76229,-1.45746 -11.46778,-2.78139 -17.12695,-3.9629 z"
|
||||
style="fill:#3d4144;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4220"
|
||||
d="m -170.91095,464.08782 -8.5,16.125 35.75,3.25 1.625,-16.25 z"
|
||||
style="fill:#3c4247;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
sodipodi:nodetypes="cssccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4226"
|
||||
transform="translate(-522.78594,165.96281)"
|
||||
d="m 411.17969,269.33398 c -24.50302,-5.11518 -48.18402,-7.65405 -72.22657,-7.57031 -42.56105,0.14824 -86.27544,8.47266 -137.78124,25.08203 -40.11789,12.93705 -47.55274,23.33399 -47.55274,23.33399 0,0 -0.48629,0.56241 -0.63476,1.3457 l 0.10351,0.0684 c 65.05383,-30.40559 116.42376,-36.77027 218.33008,-20.63869 11.09267,-7.17661 17.60011,-14.39959 39.76172,-21.62112 z"
|
||||
style="fill:#363c41;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4263"
|
||||
transform="translate(-522.78594,165.96281)"
|
||||
d="m 296.87305,518.20312 c 5.68645,12.75421 3.66653,23.08278 10.71875,32.83399 7.15946,9.89949 34.2935,22.89298 61.25195,32.88086 26.95844,9.98789 39.15707,14.49663 45.25586,14.05469 5.82656,-0.42222 18.90685,-7.25764 24.54101,-10.41407 -0.55038,-0.0177 -1.10725,-0.03 -1.64062,-0.0586 -7,-0.375 -17.75,-3.625 -26.375,-6.5 -8.625,-2.875 -67.14947,-20.67049 -76.375,-33.125 -7.10507,-9.59187 -5.33684,-16.54135 -8.83008,-19.27148 -2.49111,-1.94692 -8.34261,-3.73063 -12.5039,-5.15625 -3.08671,-1.05747 -11.18273,-3.67568 -16.04297,-5.24415 z"
|
||||
style="fill:#10f5fa;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<g
|
||||
id="g4348">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#a6a09b;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 244.0293,281.64062 c -11.87933,0.21005 -21.28719,4.70945 -25.45899,14.41407 l -7.76367,15.2207 c 4.63005,-8.00151 13.38623,-11.7657 24.20703,-11.95703 13.84985,-0.24489 31.05521,5.35529 47.24414,15.31641 4.24517,-2.44738 6.87171,-7.03619 7.65625,-8.34375 0.83684,-1.39473 3.09281,-4.54246 4.70703,-7.20118 -17.13681,-11.29215 -35.78244,-17.71107 -50.59179,-17.44922 z m -33.22266,29.63477 c -0.45292,0.78273 -0.88022,1.59229 -1.25195,2.45703 l 1.25195,-2.45703 z"
|
||||
transform="translate(-522.78594,165.96281)"
|
||||
id="path4228" />
|
||||
<path
|
||||
style="fill:#0c0d08;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 210.77539,311.25976 -1.12305,2.28126 c -0.45554,2.37144 2.75076,4.2831 5.21875,3.9746 2.82843,-0.35354 20.06602,-2.56346 32.97071,-2.74023 12.9047,-0.17678 22.09591,1.76761 29.34375,1.41406 1.88682,-0.092 3.57816,-0.69332 5.07226,-1.55468 -16.18893,-9.96112 -33.39429,-15.5613 -47.24414,-15.31641 -10.8208,0.19133 -19.60823,3.93989 -24.23828,11.9414 z"
|
||||
id="path4247"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccssscsc"
|
||||
transform="translate(-522.78594,165.96281)" />
|
||||
</g>
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4258"
|
||||
d="m -179.35432,480.17165 -2.95971,5.51668 39.24443,5.56847 -0.88388,-7.86656 z"
|
||||
style="fill:#111419;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4260"
|
||||
d="m -143.07496,491.2041 -1.00352,-7.90761 2.03293,-16.10721 1.45082,6.56663 z"
|
||||
style="fill:#282d32;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<g
|
||||
id="g4352">
|
||||
<path
|
||||
style="fill:#2f333a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m -313.91094,553.83781 -2.375,3.5 -3.875,14.125 93.375,-1.625 c -21.95804,-4.72268 -46.10785,-9.6343 -87.125,-16 z"
|
||||
id="path4262"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
sodipodi:nodetypes="cccccc"
|
||||
style="fill:#585958;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m -320.16094,571.44718 -3.125,23.01563 3.25,7.125 99.5,-15.375 -6.29687,-16.40625 z"
|
||||
id="path4264"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
id="g4335">
|
||||
<path
|
||||
style="fill:url(#linearGradient4333);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4325);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m -295.16094,608.46281 6.625,27.125 27.125,5.875 c 0,0 38.75,14.5 45.75,29.125 l 5.5,0.875 2.375,-4.625 c 0,0 -13.875,-23.75 -49.625,-33.375 l -1,-1.25 2.25,-11.25 z"
|
||||
id="path4288"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccccccc" />
|
||||
<path
|
||||
style="fill:#1f2021;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 235.18359,469.82617 272.125,497.75 l 35,6.875 C 300.125,490 261.375,475.5 261.375,475.5 Z"
|
||||
transform="translate(-522.78594,165.96281)"
|
||||
id="path4290"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
</g>
|
||||
<g
|
||||
id="g4297">
|
||||
<path
|
||||
style="fill:#5e5d5c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m -271.28594,618.46281 4,7 85.38128,13.44194 9.61872,-8.44194 z"
|
||||
id="path4266"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
style="fill:#242422;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m -181.07659,638.77695 c 0,0 22.18548,12.55115 -5.48008,8.04334 -27.66555,-4.5078 -67.97064,-12.55114 -67.97064,-12.55114 l -12.72792,-8.75045 z"
|
||||
id="path4268"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#5e6570;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m -172.41453,630.38006 -9.45755,8.3085 9.28077,8.3969 9.54594,-5.3033 z"
|
||||
id="path4270"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
style="fill:#181719;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m -271.48416,618.56636 2.19822,-8.60355 103.25,9.875 6,18.125 -2.625,3.875 -9.60983,-10.91789 z"
|
||||
id="path4280"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccc" />
|
||||
</g>
|
||||
<g
|
||||
id="g4305">
|
||||
<path
|
||||
style="fill:#676763;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m -164.98991,632.50138 6.18718,9.72272 75.041708,8.22011 8.131734,-6.54073 1.155328,-4.55469 4.153795,-8.23574 -93.255535,-9.12988 z"
|
||||
id="path4272"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccccc" />
|
||||
<path
|
||||
style="fill:#2f343b;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m -70.32599,631.08717 5.48008,5.39169 -5.74524,12.90469 -5.204655,-5.54257 c 0.08832,-4.98178 3.353501,-8.62593 5.469815,-12.75381 z"
|
||||
id="path4274"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
style="fill:#202328;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m -83.58424,650.17905 3.8007,4.06586 -77.87014,-6.89429 -1.15104,-5.14215 z"
|
||||
id="path4276"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4278"
|
||||
d="m -70.59115,649.38355 -9.1397,4.91406 -3.894905,-4.1034 7.819685,-6.37912 z"
|
||||
style="fill:#97a6b5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
</g>
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4292"
|
||||
d="m -153.03036,495.18342 44.96255,6.76837 1.76776,125.51145 -32.51219,-3.18198 z"
|
||||
style="fill:#676769;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
style="fill:#181719;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m -164.98991,632.50138 89.360622,11.4021 1.155328,-4.55469 4.153795,-8.23574 -93.255535,-9.12988 z"
|
||||
id="path4303"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccc" />
|
||||
<g
|
||||
id="g4282">
|
||||
<path
|
||||
style="fill:#9b9994;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m -283.96063,605.18939 1.59099,4.06586 144.42656,16.26346 -6.01041,-45.07806 z"
|
||||
id="path4244"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#2cbfff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 312.64258,435.04297 -5.01172,0.64453 8.00195,8.8418 5.88281,0.41015 -8.87304,-9.89648 z"
|
||||
transform="translate(-522.78594,165.96281)"
|
||||
id="path4246" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#2cbfff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 331.68945,432.58984 -4.78515,0.61524 11.86718,12.93945 6.72461,0.4707 -13.80664,-14.02539 z"
|
||||
transform="translate(-522.78594,165.96281)"
|
||||
id="path4248" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#2cbfff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 351.97266,429.97852 -6.13282,0.78906 16.58594,17.0293 7.58399,0.52929 -18.03711,-18.34765 z"
|
||||
transform="translate(-522.78594,165.96281)"
|
||||
id="path4250" />
|
||||
</g>
|
||||
<g
|
||||
id="g4339">
|
||||
<path
|
||||
style="fill:#4c5053;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m -386.31433,498.06271 -5.65686,48.08326 c 45.99186,2.07336 100.55399,7.85718 167.23075,21.21321 l 1.06066,3.0052 c 23.24045,-1.15617 46.44002,-2.32824 77.95852,-0.26516 l 3.35876,3.62392 -10.6066,-78.48885 c -119.63944,-15.8417 -179.55343,-5.16228 -233.34523,2.82842 z"
|
||||
id="path3608"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccccc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#413d44;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 344.67578,403.00977 c -16.50546,-0.0586 -30.99426,0.6673 -45.49414,1.38867 l 6.64258,15.02929 74.77539,-10.96093 -0.94727,-1.53907 -2.58789,-2.79101 c -11.81943,-0.77366 -22.46808,-1.09174 -32.38867,-1.12695 z"
|
||||
transform="translate(-522.78594,165.96281)"
|
||||
id="path4412" />
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m -296.22345,497.71282 4.375,6.6875 6.875,-6.8125 z"
|
||||
id="path4242"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none"
|
||||
id="g4344">
|
||||
<path
|
||||
style="fill:#6d747e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 428.32422,273.29297 c -7.29616,3.47575 -12.94858,4.55152 -31.06055,23.8125 0.0479,0.0864 0.0803,0.17102 0.13086,0.25781 6.62912,19.7106 10.60547,165.375 10.60547,165.375 0,0 41.19295,7.2655 67.125,1.38672 22.33947,-5.06434 38.625,-29.625 51.125,-42.625 12.5,-13 24.89365,-35.29164 33.5,-37.875 6.89763,-2.07046 15.8234,4.4109 29.125,12.375 33.4418,20.02269 42.89394,39.55603 52.79297,65.09375 0.30214,-0.10531 0.47265,-0.12305 0.47265,-0.12305 C 639.49453,419.01054 613.19977,343.11632 511.5,301.5 481.65769,289.2883 454.39027,279.88532 428.32422,273.29297 Z"
|
||||
transform="translate(-522.78594,165.96281)"
|
||||
id="path4234"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccssssccsc" />
|
||||
<ellipse
|
||||
style="opacity:1;fill:#2cbfff;fill-opacity:1;stroke:none;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path4261"
|
||||
cx="-58.535938"
|
||||
cy="561.08783"
|
||||
rx="32.25"
|
||||
ry="29.875" />
|
||||
</g>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4218"
|
||||
d="m -205.53595,454.96282 -11.375,19 21.5,-0.875 10.875,-18.875 z"
|
||||
style="fill:#202124;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4254"
|
||||
d="m -222.88428,483.39024 6.01577,-9.47808 21.47301,-0.86336 1.23744,11.49049 z"
|
||||
style="fill:#121518;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4256"
|
||||
d="m -195.50442,473.05324 10.88157,-18.79455 2.39721,10.39322 -12.00029,19.91863 z"
|
||||
style="fill:#1a1e22;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer4"
|
||||
inkscape:label="Leaders"
|
||||
transform="translate(647.36582,-57.672066)"
|
||||
style="display:inline">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4556"
|
||||
d="m -94.323676,683.09816 5.56391,3.21163 5.56059,3.21159 0,-3.66282 11.76151,0 -1.59253,-2.7604 1.59253,-2.76039 -11.76151,0 0,-3.66282 -5.56059,3.21162 -5.56391,3.21159 z"
|
||||
style="display:inline;fill:url(#linearGradient4562);fill-opacity:1;stroke:none" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="use4558"
|
||||
d="m -71.437651,739.13645 -5.56391,3.21162 -5.56059,3.21159 0,-3.66282 -11.76152,0 1.59254,-2.76039 -1.59254,-2.76039 11.76152,0 0,-3.66282 5.56059,3.21161 5.56391,3.2116 z"
|
||||
style="fill:url(#linearGradient4623);fill-opacity:1;stroke:none" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40.00000381px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;display:inline;fill:#000000;fill-opacity:1;stroke:none"
|
||||
x="-507.44232"
|
||||
y="412.75952"
|
||||
id="text4489"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4491"
|
||||
x="-507.44232"
|
||||
y="412.75952"
|
||||
style="font-size:32px">Button0</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none"
|
||||
x="-60.689339"
|
||||
y="696.94501"
|
||||
id="text4505"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4507"
|
||||
x="-60.689339"
|
||||
y="696.94501"
|
||||
style="font-size:32px">Button10</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text4509"
|
||||
y="753.67065"
|
||||
x="-60.689339"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none"
|
||||
xml:space="preserve"><tspan
|
||||
y="753.67065"
|
||||
x="-60.689339"
|
||||
id="tspan4511"
|
||||
sodipodi:role="line"
|
||||
style="font-size:32px">Button9</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text4440"
|
||||
y="467.91382"
|
||||
x="-507.44232"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40.00000381px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;display:inline;fill:#000000;fill-opacity:1;stroke:none"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:32px"
|
||||
y="467.91382"
|
||||
x="-507.44232"
|
||||
id="tspan4442"
|
||||
sodipodi:role="line">Button7</tspan></text>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4448"
|
||||
d="m -501.44135,408.77695 79.19595,0"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m -290.72353,319.68149 38.18376,-118.08684"
|
||||
id="path4450"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text4452"
|
||||
y="209.51634"
|
||||
x="-419.71732"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40.00000381px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;display:inline;fill:#000000;fill-opacity:1;stroke:none"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
y="209.51634"
|
||||
x="-419.71732"
|
||||
id="tspan4454"
|
||||
sodipodi:role="line">Button2</tspan></text>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4456"
|
||||
d="M -355.77735,340.18759 -422.9525,219.97943"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4466"
|
||||
d="m -302.74434,651.31459 94.0452,-113.8442"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40.00000381px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;display:inline;fill:#000000;fill-opacity:1;stroke:none"
|
||||
x="-507.44232"
|
||||
y="516.70416"
|
||||
id="text4468"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4470"
|
||||
x="-507.44232"
|
||||
y="516.70416"
|
||||
style="font-size:32px">Button6</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text4472"
|
||||
y="566.90875"
|
||||
x="-455.11642"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40.00000381px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;display:inline;fill:#000000;fill-opacity:1;stroke:none"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:32px"
|
||||
y="566.90875"
|
||||
x="-455.11642"
|
||||
id="tspan4474"
|
||||
sodipodi:role="line">Button4</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40.00000381px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;display:inline;fill:#000000;fill-opacity:1;stroke:none"
|
||||
x="-456.53064"
|
||||
y="616.40625"
|
||||
id="text4476"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4478"
|
||||
x="-456.53064"
|
||||
y="616.40625"
|
||||
style="font-size:32px">Button5</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text4480"
|
||||
y="662.36816"
|
||||
x="-310.86664"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40.00000381px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;display:inline;fill:#000000;fill-opacity:1;stroke:none"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:32px"
|
||||
y="662.36816"
|
||||
x="-310.86664"
|
||||
id="tspan4482"
|
||||
sodipodi:role="line">Button3</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40.00000381px;line-height:125%;font-family:Sans;-inkscape-font-specification:'Sans, Normal';text-align:left;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;display:inline;fill:#000000;fill-opacity:1;stroke:none"
|
||||
x="-252.13301"
|
||||
y="200.32396"
|
||||
id="text4484"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4486"
|
||||
x="-252.13301"
|
||||
y="200.32396"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;font-family:Sans;-inkscape-font-specification:Sans">Button1</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="125%"
|
||||
id="text4488"
|
||||
y="247.93217"
|
||||
x="-103.82285"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none"
|
||||
xml:space="preserve"><tspan
|
||||
style="font-size:32px"
|
||||
y="247.93217"
|
||||
x="-103.82285"
|
||||
id="tspan4490"
|
||||
sodipodi:role="line">Button8</tspan></text>
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m -502.14846,464.63839 60.10407,-12.72792"
|
||||
id="path4492"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4494"
|
||||
d="m -496.4916,512.72165 126.57211,-43.84061"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m -445.57991,562.92624 140.71425,-43.84062"
|
||||
id="path4496"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4498"
|
||||
d="m -439.21595,608.88818 100.40916,-61.51829"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M -232.03365,357.15816 -108.28996,250.38503"
|
||||
id="path4500"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 38 KiB |
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 36 KiB |
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user