Compare commits
747 Commits
Author | SHA1 | Date |
---|---|---|
|
a866de47fb | |
|
632d4dd5a0 | |
|
f942dbec41 | |
|
6fa8ec6b86 | |
|
137dd6b2ff | |
|
bdb0e9589b | |
|
0335dd003c | |
|
8bea0121cc | |
|
783bd5e4da | |
|
68514d83c1 | |
|
6409fc2832 | |
|
dc28ab61c2 | |
|
94f4c3230b | |
|
62aaeac595 | |
|
694caf635e | |
|
924684b610 | |
|
abc5a31c15 | |
|
3c11eff55a | |
|
001dce7ef5 | |
|
3f24d52f7a | |
|
2a363a6388 | |
|
bebadc219c | |
|
694513832d | |
|
1a9725f540 | |
|
c7a54cf7ec | |
|
7066ec40c9 | |
|
abea1c4341 | |
|
217b9360e6 | |
|
33a06ac834 | |
|
03cfa12852 | |
|
41ba24eee2 | |
|
ed596666ee | |
|
16bd8126b6 | |
|
17150658bf | |
|
f0ad2692b8 | |
|
d033a3c8fc | |
|
1613584c6a | |
|
ebf8493e72 | |
|
7a5a67c394 | |
|
3fcc75f892 | |
|
7b28423572 | |
|
198067519d | |
|
94155dbbf1 | |
|
64943c90d9 | |
|
637e562699 | |
|
9b5e416755 | |
|
d8f321a5e9 | |
|
df2df301e2 | |
|
cefc502db9 | |
|
7d4f787344 | |
|
e297f90e79 | |
|
20e20ce827 | |
|
90ab457ebe | |
|
297ccb9cc1 | |
|
d95068c3f5 | |
|
3de575b697 | |
|
41e652609b | |
|
73ad98d5e4 | |
|
b9557a46b6 | |
|
5a03433f86 | |
|
81567a98df | |
|
bd00cc97ad | |
|
3192fa1a34 | |
|
9af67f0e1d | |
|
382e0b6797 | |
|
f5d80c30fa | |
|
636f736765 | |
|
e9a58fb3e0 | |
|
ab52c4a7c0 | |
|
3bf8a85866 | |
|
d42524dec9 | |
|
8894463f64 | |
|
15aaba2802 | |
|
fa3a9bc5b3 | |
|
33c057feff | |
|
810cda917a | |
|
64ac437b7f | |
|
207be464a5 | |
|
f28a923d15 | |
|
5e0c85a6d7 | |
|
800d3498f4 | |
|
918b584b95 | |
|
83c380f85b | |
|
fd17e47382 | |
|
88787ab705 | |
|
1a3f4dab36 | |
|
3186d880fc | |
|
1e6af7fa7d | |
|
5d86c74df4 | |
|
5cf7cbfd5d | |
|
96364d2df3 | |
|
378175f98f | |
|
72c9dfc50c | |
|
571cdb5f2d | |
|
5f5c7cdcce | |
|
ad3916e1b8 | |
|
6903eeefcd | |
|
c9d7d7234a | |
|
c34fd3c2b0 | |
|
b19c886426 | |
|
96c9cc2aa4 | |
|
d27f7285e0 | |
|
5c736e9154 | |
|
7c91d0b2db | |
|
5ca9c0a6ba | |
|
f54eeb7998 | |
|
0bf7a78553 | |
|
267b0a723d | |
|
5a9725ee17 | |
|
4c160d1723 | |
|
b74e789715 | |
|
0d7fc46a81 | |
|
8bc42d20fb | |
|
dd13993ff3 | |
|
cdaffce463 | |
|
dfb4ccc93f | |
|
3636ed78bb | |
|
03de6fb276 | |
|
789d35450c | |
|
62e8aacd9f | |
|
8eb0aec3e8 | |
|
8a0fc13f23 | |
|
41768d9616 | |
|
a822b2f237 | |
|
dfafe15575 | |
|
e6c833f635 | |
|
7e9babdc79 | |
|
01d76bb0ed | |
|
3768354230 | |
|
87afc3659e | |
|
2e9aa64a2e | |
|
e945f797a2 | |
|
73c88210f7 | |
|
510753ea67 | |
|
c2a3bc7e55 | |
|
b6f5f86c36 | |
|
ba4fda00df | |
|
1fcedeee70 | |
|
2157fdb59c | |
|
c5f74953ce | |
|
ff6f7a8e22 | |
|
8b0904ead0 | |
|
9d5568f6e5 | |
|
ba4bbd0118 | |
|
862cef1f77 | |
|
a19461b29d | |
|
c90146df31 | |
|
8518604155 | |
|
de033267fa | |
|
0d4fd4c537 | |
|
1afcfe4b57 | |
|
79ffbda903 | |
|
2185a8390c | |
|
0d12c6f229 | |
|
0cd9c0c9b5 | |
|
11e7cbde69 | |
|
06fd32b501 | |
|
badb76953d | |
|
a36973916c | |
|
15659a1ee4 | |
|
194c385824 | |
|
d1f9b9ca3d | |
|
97d1e90ceb | |
|
9f57955142 | |
|
0dec545bfd | |
|
3277015ab6 | |
|
691e5878f9 | |
|
bb559c0d7c | |
|
1f85ec01e7 | |
|
58ddb0d6cd | |
|
46366b2430 | |
|
0f4d1aebcd | |
|
89233957dc | |
|
c9e781e752 | |
|
54aace050c | |
|
cba3533869 | |
|
ef6b7dec2c | |
|
4e50e605a6 | |
|
37e2ac80ba | |
|
614a5dc633 | |
|
1729189981 | |
|
90c41dbe32 | |
|
a7ad625023 | |
|
8d0672ac3c | |
|
a75c4b9679 | |
|
46fafa0e68 | |
|
99fc9c6fcb | |
|
615499dce2 | |
|
9907cb2875 | |
|
65d3b406c0 | |
|
b681aafaff | |
|
32fef49ff8 | |
|
4aada31b21 | |
|
128ec43d70 | |
|
0481950324 | |
|
aa354dc4c4 | |
|
2442299539 | |
|
2aa462532a | |
|
d5af19be8a | |
|
e8ef262433 | |
|
912afff173 | |
|
0f8ab61ddf | |
|
c76b0ef36b | |
|
b1b9f01083 | |
|
454e1601bd | |
|
c1bc39f99f | |
|
26667afea4 | |
|
741c0861c2 | |
|
3c1aa35067 | |
|
40033c0183 | |
|
8fb087be14 | |
|
ea0eb66f39 | |
|
70def31942 | |
|
fdd2c79950 | |
|
ae39ac46ba | |
|
4578f5f6f1 | |
|
c07c30baef | |
|
af12f8df52 | |
|
48ff85ab94 | |
|
64a9aac0d5 | |
|
ce197b7093 | |
|
7b797f40f7 | |
|
67829c5807 | |
|
d9d67ed738 | |
|
71d2a50cb4 | |
|
25b9ba70d2 | |
|
59b30706b8 | |
|
f40a5cc7a9 | |
|
6d4cf80c89 | |
|
8ab8cb0225 | |
|
3aa064b40f | |
|
db93e9ab10 | |
|
a7784b40ab | |
|
86b55b9c25 | |
|
7f5e156fa1 | |
|
d67466298b | |
|
9726b93a78 | |
|
e316ed1bc2 | |
|
a5ded24057 | |
|
2113e63a75 | |
|
104556e7a3 | |
|
be83dac209 | |
|
c23ebcd267 | |
|
5a63e44d58 | |
|
244d0ee88a | |
|
089b85676f | |
|
cece723ea4 | |
|
c29231bc6b | |
|
faf27ca323 | |
|
815dce07be | |
|
90b0db6c3b | |
|
c9dc232951 | |
|
469c04faaf | |
|
675cd6ee34 | |
|
193dbfda21 | |
|
7d171b1d09 | |
|
500b9998c5 | |
|
a9ce033cc8 | |
|
9882d99125 | |
|
d0a3e474c7 | |
|
f15a50b4b2 | |
|
9d2cedbefe | |
|
b321167304 | |
|
ea77335ecf | |
|
bfc06502c1 | |
|
413d449188 | |
|
f30999a96a | |
|
6c11f4e480 | |
|
1dfc4bdb1c | |
|
20d34025d8 | |
|
1d5b61fbf2 | |
|
3ffa4e30f1 | |
|
b4811f602d | |
|
37aa0963da | |
|
da1cb53c1b | |
|
e5967edc66 | |
|
704a87696f | |
|
74e126e015 | |
|
959dd2a35b | |
|
22a59b6b0b | |
|
39e51fa8ff | |
|
3160e3b3d6 | |
|
932bc5cb0e | |
|
4225fce8d7 | |
|
2adeb2672a | |
|
a5a0d7e80e | |
|
99f0d62aa0 | |
|
cf038fd982 | |
|
7bef5c046c | |
|
c4e2a5683a | |
|
8fbd643110 | |
|
7550d6b88c | |
|
08c748c593 | |
|
e667d41c7b | |
|
d7ce636917 | |
|
86bab897d1 | |
|
1eb1d4b198 | |
|
b616419f72 | |
|
c7195881e3 | |
|
269e970aa6 | |
|
9bb2a1ff5c | |
|
c7a2f1698b | |
|
d6499808f9 | |
|
c283da27df | |
|
3855409605 | |
|
6c67789bad | |
|
d12575b47d | |
|
e64eec18e9 | |
|
091822185f | |
|
157a2601d9 | |
|
b43cdace79 | |
|
8de3a1d2e2 | |
|
ab94f1be07 | |
|
c70e8b54bf | |
|
12f3f2e856 | |
|
cb16a46b93 | |
|
afe04b9804 | |
|
f38fbcf949 | |
|
4d0f93b35c | |
|
1ed5f765e3 | |
|
04a818f215 | |
|
41aacefa5e | |
|
bd437b548b | |
|
7d868425e7 | |
|
8ee291c144 | |
|
97d214f667 | |
|
1a874c39d7 | |
|
dbd9fcfca6 | |
|
e202e904b4 | |
|
c8288a6b69 | |
|
c81809bd39 | |
|
89b7fb6ef3 | |
|
490493d7a3 | |
|
3876f07d57 | |
|
a5f1dd09a2 | |
|
4fd75a64ff | |
|
6f613b17c7 | |
|
4e6361429e | |
|
d1d3d71091 | |
|
e9297cf8d8 | |
|
88ac4c9f89 | |
|
5e351399f5 | |
|
17bbc9c4ea | |
|
47ba1402ed | |
|
7d6428a03b | |
|
07c0d35f80 | |
|
10e3f844dd | |
|
ebc76bca24 | |
|
50c8013cb1 | |
|
c617988788 | |
|
871322bf68 | |
|
480badbe8c | |
|
e0047024a5 | |
|
6164317a64 | |
|
8de3866696 | |
|
dcd72b0178 | |
|
c6adf94e5d | |
|
2f6e3e21ec | |
|
4e7356385d | |
|
154dd7017f | |
|
4e4275c281 | |
|
d76eed85f6 | |
|
84524bec3e | |
|
a0e475c057 | |
|
a02b1065ac | |
|
d5bdf2b0f5 | |
|
54ee78ee25 | |
|
4632c46e30 | |
|
03a5ca3d49 | |
|
5b09ace1f5 | |
|
66d31885e4 | |
|
e92f1a8a0b | |
|
97ddee1929 | |
|
b957217ea8 | |
|
4a89a79a4d | |
|
dfd3d10c2e | |
|
0b599194d1 | |
|
f3ff61cfc1 | |
|
704d591448 | |
|
569f829a63 | |
|
24223e77c7 | |
|
9c5ba6445e | |
|
a1418cd834 | |
|
1fe2eab1a4 | |
|
15d425c365 | |
|
0805ecb511 | |
|
87285faf7f | |
|
0d225f6cb1 | |
|
e226b76b8b | |
|
cc7194fe3d | |
|
7ec3eddccc | |
|
c23c6b7124 | |
|
523628926b | |
|
135c8b8cb9 | |
|
8154cd759f | |
|
6b3f09aa5d | |
|
9121169f91 | |
|
64d8cad81a | |
|
3916c189be | |
|
4eb5a83326 | |
|
a90a367609 | |
|
15ed26887b | |
|
a2bf51386a | |
|
c3e988a03a | |
|
5ee1c6df30 | |
|
51ef2a7fe2 | |
|
de8fe3685d | |
|
c3b6802373 | |
|
8f6e8eef4c | |
|
51e44052b0 | |
|
5edf5e7419 | |
|
85af0fc667 | |
|
79f7c5ef77 | |
|
f11af99cf3 | |
|
7d127ff068 | |
|
fb9dbb9c39 | |
|
d4702f0bf0 | |
|
a29f2b8614 | |
|
9c76a6c5ba | |
|
85149a809e | |
|
574a95da50 | |
|
ad0f9ec712 | |
|
7ef3059b69 | |
|
e53b5380a3 | |
|
c3b01bffae | |
|
6939fb7196 | |
|
e3b25840fd | |
|
1033921d7c | |
|
1adc8ad688 | |
|
cebc5a3f57 | |
|
f6003af99a | |
|
6805a57b94 | |
|
8ae86acd65 | |
|
67be689866 | |
|
e8dadcd5c2 | |
|
069f96fe48 | |
|
20c4d64d17 | |
|
b7afc410ba | |
|
14f19ceaaf | |
|
8744506259 | |
|
3954bbd111 | |
|
ce2de71b1b | |
|
646ef2f596 | |
|
24ae9bacaa | |
|
4b33c119f6 | |
|
9228fa1da0 | |
|
fc8628c9c5 | |
|
353c2dfb2f | |
|
8e44c08139 | |
|
767a729598 | |
|
68b62a9ee4 | |
|
af7806ed00 | |
|
04e709b00a | |
|
eb937fcc3a | |
|
7774569971 | |
|
35f63edcd8 | |
|
fb6285606d | |
|
ce00a78e7f | |
|
3f692c0fe2 | |
|
6f633efac5 | |
|
ed248c62b9 | |
|
476f41f8ae | |
|
5f487dd3b2 | |
|
2fcab65486 | |
|
e8fdbeee8e | |
|
fa9494435b | |
|
50ddb54466 | |
|
ad110498a6 | |
|
9617cb88df | |
|
20a76fb4d3 | |
|
ab9e06829a | |
|
afdfcb0d2c | |
|
12de240949 | |
|
d1c899d6da | |
|
17e6463950 | |
|
ad6e3dc80e | |
|
31d795fcb8 | |
|
008d3df50b | |
|
47f94a6a79 | |
|
3dcc1eb800 | |
|
a3ff536c90 | |
|
8dcb85ddb7 | |
|
8facd0cf68 | |
|
e6191296e0 | |
|
b516b12920 | |
|
1f954cd42e | |
|
fb5b7e0582 | |
|
745374e221 | |
|
ca24a93005 | |
|
438ea74dba | |
|
c66f3c3fe1 | |
|
10d65f0ca3 | |
|
e6aacc42dd | |
|
0f0de28e94 | |
|
663490ea4b | |
|
468fad1358 | |
|
059ebecf84 | |
|
3eebd4b4b0 | |
|
87658fb189 | |
|
8b1463c8f4 | |
|
26e0153fce | |
|
8811374ed9 | |
|
df9a5b7b19 | |
|
c92433b6a2 | |
|
4c7f3fe230 | |
|
e8ef9a176d | |
|
c8fc6990b5 | |
|
23517048d4 | |
|
7c441cc652 | |
|
73d091c86f | |
|
3328a6085f | |
|
15e14c2d48 | |
|
532077d239 | |
|
1bf9384069 | |
|
246f3cf798 | |
|
599a274410 | |
|
37383442f4 | |
|
88f549f66c | |
|
1fcff028fe | |
|
08fde28810 | |
|
0548bde44f | |
|
42c65e1e4d | |
|
fb30f4ee41 | |
|
fbad827d57 | |
|
9c4bbec5e2 | |
|
72c5860a1e | |
|
0f8e9b3c0f | |
|
06209d238a | |
|
097736478d | |
|
e34bbd5e8e | |
|
be41a2ac34 | |
|
a6f7507ce6 | |
|
db4e40e3ac | |
|
5392eebaef | |
|
c4a64f3ade | |
|
ac231a0627 | |
|
28493f7496 | |
|
86fa3757f3 | |
|
0db84f5aa4 | |
|
f8a462dbe5 | |
|
67b883ac28 | |
|
05ec439ec0 | |
|
9b32a1b195 | |
|
23bf4dec5d | |
|
864065c0a5 | |
|
195e28ad76 | |
|
94e9cfce8e | |
|
9350300fd8 | |
|
4b2bb921b1 | |
|
fa7606e242 | |
|
29ff35d553 | |
|
d9e5e33947 | |
|
bfa3c922c2 | |
|
5ca1790cb8 | |
|
b2eb039e2d | |
|
4669cad2e1 | |
|
eb6bacaed1 | |
|
ffd66e74c2 | |
|
e71ed8ac94 | |
|
620cc82956 | |
|
636bb07d1f | |
|
7706882a27 | |
|
cf71736920 | |
|
0b6b98e0a7 | |
|
b50b88be06 | |
|
bf6cc123a4 | |
|
98c169bffb | |
|
09938ebd05 | |
|
902815ed93 | |
|
5d6d675b4a | |
|
38d5f8962c | |
|
485596cbf3 | |
|
c77b2a413f | |
|
37e303163c | |
|
8537708ec2 | |
|
a373a7d439 | |
|
253930d628 | |
|
90a0408bd6 | |
|
fc38862e8b | |
|
d3649b8011 | |
|
8dd8c8b76f | |
|
21da0a16af | |
|
12f9c013f1 | |
|
d7bd55bdf1 | |
|
0e8e052629 | |
|
65b9005d97 | |
|
91f1894e8b | |
|
4160b0e74f | |
|
bee1b1dd39 | |
|
c721074d34 | |
|
c86d4be0fe | |
|
444fd4aaf6 | |
|
640ebad4da | |
|
bf8c2b3d3d | |
|
099e825298 | |
|
0a91160a67 | |
|
d56c7d5a06 | |
|
fd9653fa33 | |
|
1447b15ef4 | |
|
18492418e6 | |
|
05e9441d3b | |
|
fb3675e91f | |
|
5b1d542d79 | |
|
46a06f3870 | |
|
b30d868eb5 | |
|
6b94412044 | |
|
ed27eadbab | |
|
73ed6511d8 | |
|
bacc2c6c7a | |
|
4a9b46679c | |
|
dd7ec7e0bc | |
|
3a563a18a6 | |
|
96b38bd6e3 | |
|
dc4eb96f36 | |
|
7aa770ee9e | |
|
586724d40c | |
|
a4893ae839 | |
|
f5c5e14c8d | |
|
d639127f79 | |
|
63ce2e4485 | |
|
078cded603 | |
|
c6f468db06 | |
|
04f2adfd75 | |
|
ee3f2652ba | |
|
bdde284b38 | |
|
55865d13ad | |
|
49bb19bde4 | |
|
4f1ad33e39 | |
|
78341f87e9 | |
|
df746fd7f4 | |
|
acc559743e | |
|
57c0c5d4b3 | |
|
dcbf547195 | |
|
85c1260ac6 | |
|
d41c607188 | |
|
39f6341a8f | |
|
71e70d5087 | |
|
de308464b0 | |
|
8c803b415e | |
|
ff24947321 | |
|
6cbd45a1c0 | |
|
2890966b3f | |
|
0905ed5f43 | |
|
5657c1ac99 | |
|
79de531858 | |
|
c9f9425b37 | |
|
14fd8efc9e | |
|
ef0db31687 | |
|
6b9c8cffef | |
|
351e2268cd | |
|
a51bcfb376 | |
|
f8a6396cdf | |
|
ab4226e292 | |
|
7c12d0ccd2 | |
|
3974f1eb4e | |
|
eacbfbd178 | |
|
f9353022a9 | |
|
2d76d770f2 | |
|
a9511f1783 | |
|
acd8fc77ca | |
|
727e964a77 | |
|
36e136b841 | |
|
fc1b72faa1 | |
|
7215022089 | |
|
9d278edc82 | |
|
ceb174dc50 | |
|
2bda897e55 | |
|
bfe4993e54 | |
|
79d3a60027 | |
|
e301551dde | |
|
141721bc37 | |
|
bd370c07e7 | |
|
4e7b6b3cd9 | |
|
408090ad38 | |
|
3c9f2f616c | |
|
d6872422fd | |
|
39ae8d4b32 | |
|
a14be19a4b | |
|
a861b06db8 | |
|
bebd9c6e17 | |
|
4c5f583607 | |
|
773dac56b6 | |
|
99f9c8762e | |
|
f3a0b85e2b | |
|
fe901fe3c2 | |
|
7b6b11ac73 | |
|
beb9dfdab8 | |
|
7874886a61 | |
|
a1b006b502 | |
|
84fa4e0e69 | |
|
e1e843346c | |
|
f4b25b2594 | |
|
4a9319a4c0 | |
|
c2b4d5a8c8 | |
|
4e6f59c2ad | |
|
9b868c8869 | |
|
0692dd1911 | |
|
5656f90cdb | |
|
0c7a9dd0a7 | |
|
b73030a0f1 | |
|
a6461d6a6e | |
|
0547b1895a | |
|
934b486b13 | |
|
8765089d43 | |
|
fe65ce936f | |
|
b5b6152e06 | |
|
91b9a3a472 | |
|
17c30a22bb | |
|
49c7e5cc44 | |
|
d61d507a2b | |
|
0a2f57f51a | |
|
c7ff89c817 | |
|
74b2c36edf | |
|
8716dc7511 | |
|
14765414ca | |
|
9c361c4cf6 | |
|
7dc466fdf4 | |
|
4a0a47e4f7 | |
|
106959d33a | |
|
a04be16aec | |
|
7a6d673503 | |
|
00acf99026 | |
|
691227170f | |
|
e15b58fdaa | |
|
a14a89781e | |
|
e699209370 | |
|
178ef1eab9 | |
|
f539ac064e | |
|
b08e5c70ec | |
|
b5f6a509c9 | |
|
5e4ec6822d | |
|
cfedf7ae16 | |
|
925172d030 | |
|
d744a24d5c | |
|
6bbf83a293 | |
|
5d807f9752 | |
|
5bf999b841 | |
|
76c5b3e813 | |
|
5cd3ac60c5 | |
|
8d0795af53 | |
|
9ce0fd7060 | |
|
98655c1048 | |
|
51a917e6ac | |
|
d6847a6ce4 | |
|
9e5eb5853e | |
|
b05f4111d5 | |
|
c6b8c0bd27 |
|
@ -0,0 +1,22 @@
|
||||||
|
[run]
|
||||||
|
branch = True
|
||||||
|
|
||||||
|
source =
|
||||||
|
hid_parser
|
||||||
|
hidapi
|
||||||
|
keysyms
|
||||||
|
logitech_receiver
|
||||||
|
solaar
|
||||||
|
|
||||||
|
omit =
|
||||||
|
*/tests/*
|
||||||
|
*/setup.py
|
||||||
|
*/__main__.py
|
||||||
|
|
||||||
|
[report]
|
||||||
|
exclude_lines =
|
||||||
|
pragma: no cover
|
||||||
|
if __name__ == '__main__':
|
||||||
|
if typing.TYPE_CHECKING
|
||||||
|
|
||||||
|
fail_under = 40
|
|
@ -9,8 +9,8 @@ assignees: ''
|
||||||
|
|
||||||
**Information**
|
**Information**
|
||||||
<!-- Make sure that your issue is not one of the known issues in the Solaar documentation at https://pwr-solaar.github.io/Solaar/ -->
|
<!-- Make sure that your issue is not one of the known issues in the Solaar documentation at https://pwr-solaar.github.io/Solaar/ -->
|
||||||
<!-- Do not bother opening an issue for a version older than 1.1.0. Upgrade to the latest version and see if your issue persists. -->
|
<!-- Do not bother opening an issue for a version older than 1.1.8. Upgrade to the latest version and see if your issue persists. -->
|
||||||
<!-- If you not running the current version of Solaar, strongly consider upgrading to the newest version. -->
|
<!-- If you are not running the current version of Solaar, strongly consider upgrading to the newest version. -->
|
||||||
- Solaar version (`solaar --version` or `git describe --tags` if cloned from this repository):
|
- Solaar version (`solaar --version` or `git describe --tags` if cloned from this repository):
|
||||||
- Distribution:
|
- Distribution:
|
||||||
- Kernel version (ex. `uname -srmo`): `KERNEL VERSION HERE`
|
- Kernel version (ex. `uname -srmo`): `KERNEL VERSION HERE`
|
||||||
|
|
|
@ -8,7 +8,7 @@ assignees: ''
|
||||||
---
|
---
|
||||||
|
|
||||||
**Information**
|
**Information**
|
||||||
<!-- Please update to Solaar from this repository before asking for a new feature. -->
|
<!-- The version of Solaar in this repository has more features than released vesions. Update to this version before asking for a new feature. -->
|
||||||
- Solaar version (`solaar --version` and `git describe --tags`):
|
- Solaar version (`solaar --version` and `git describe --tags`):
|
||||||
- Distribution:
|
- Distribution:
|
||||||
- Kernel version (ex. `uname -srmo`):
|
- Kernel version (ex. `uname -srmo`):
|
||||||
|
|
|
@ -7,10 +7,10 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Setup Python
|
- name: Set up Python
|
||||||
uses: actions/setup-python@v2
|
uses: actions/setup-python@v5
|
||||||
|
|
||||||
- name: Run pre-commit
|
- name: Run pre-commit
|
||||||
uses: pre-commit/action@v2.0.0
|
uses: pre-commit/action@v3.0.0
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
name: Deploy to GitHub Pages
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
pages: write
|
||||||
|
id-token: write
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: 'pages'
|
||||||
|
cancel-in-progress: false
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Set up Python
|
||||||
|
uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: '3.x'
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
pip install mkdocs mkdocs-rtd-dropdown mkdocs-mermaid2-plugin mkdocstrings[python]
|
||||||
|
|
||||||
|
- name: Build and deploy
|
||||||
|
run: |
|
||||||
|
mkdocs build
|
||||||
|
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-pages-artifact@v3
|
||||||
|
with:
|
||||||
|
path: 'site'
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
environment:
|
||||||
|
name: github-pages
|
||||||
|
url: ${{ steps.deployment.outputs.page_url }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: build
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Deploy to GitHub Pages
|
||||||
|
id: deployment
|
||||||
|
uses: actions/deploy-pages@v4
|
|
@ -0,0 +1,90 @@
|
||||||
|
name: tests
|
||||||
|
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
ubuntu-tests:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
python-version: [3.8, 3.13]
|
||||||
|
fail-fast: false
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Set up Python ${{ matrix.python-version }}
|
||||||
|
uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: ${{ matrix.python-version }}
|
||||||
|
|
||||||
|
- name: Install Ubuntu dependencies for python 3.8
|
||||||
|
if: matrix.python-version == '3.8'
|
||||||
|
run: |
|
||||||
|
make install_apt
|
||||||
|
|
||||||
|
- name: Install Ubuntu dependencies for python 3.13
|
||||||
|
if: matrix.python-version == '3.13'
|
||||||
|
run: |
|
||||||
|
make install_apt_python3.13
|
||||||
|
|
||||||
|
- name: Install Python dependencies
|
||||||
|
run: |
|
||||||
|
make install_pip PIP_ARGS='.["test"]'
|
||||||
|
|
||||||
|
- name: Run tests on Ubuntu
|
||||||
|
run: |
|
||||||
|
make test
|
||||||
|
|
||||||
|
- name: Upload coverage to Codecov
|
||||||
|
if: github.ref == 'refs/heads/master'
|
||||||
|
uses: codecov/codecov-action@v4.5.0
|
||||||
|
with:
|
||||||
|
directory: ./coverage/reports/
|
||||||
|
env_vars: OS, PYTHON
|
||||||
|
files: ./coverage.xml
|
||||||
|
flags: unittests
|
||||||
|
name: codecov-umbrella
|
||||||
|
token: ${{ secrets.CODECOV_TOKEN }}
|
||||||
|
|
||||||
|
macos-tests:
|
||||||
|
runs-on: macos-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
python-version: [3.8, 3.13]
|
||||||
|
fail-fast: false
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Set up Python ${{ matrix.python-version }}
|
||||||
|
uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: ${{ matrix.python-version }}
|
||||||
|
|
||||||
|
- name: Set up macOS dependencies
|
||||||
|
run: |
|
||||||
|
make install_brew
|
||||||
|
- name: Add Homebrew's library directory to dyld search path
|
||||||
|
run: |
|
||||||
|
echo "DYLD_FALLBACK_LIBRARY_PATH=$(brew --prefix)/lib:$DYLD_FALLBACK_LIBRARY_PATH" >> $GITHUB_ENV
|
||||||
|
- name: Install Python dependencies
|
||||||
|
run: |
|
||||||
|
make install_pip PIP_ARGS='.["test"]'
|
||||||
|
- name: Run tests on macOS
|
||||||
|
run: |
|
||||||
|
pytest --cov --cov-report=xml
|
||||||
|
- name: Upload coverage to Codecov
|
||||||
|
if: github.ref == 'refs/heads/master'
|
||||||
|
uses: codecov/codecov-action@v4.5.0
|
||||||
|
with:
|
||||||
|
directory: ./coverage/reports/
|
||||||
|
env_vars: OS, PYTHON
|
||||||
|
files: ./coverage.xml
|
||||||
|
flags: unittests
|
||||||
|
name: codecov-umbrella
|
||||||
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
@ -6,14 +6,26 @@ __pycache__/
|
||||||
|
|
||||||
/lib/Solaar.egg-info/
|
/lib/Solaar.egg-info/
|
||||||
/lib/solaar.egg-info/
|
/lib/solaar.egg-info/
|
||||||
|
/lib/solaar/commit
|
||||||
/build/
|
/build/
|
||||||
/sdist/
|
/sdist/
|
||||||
/dist/
|
/dist/
|
||||||
/deb_dist/
|
/deb_dist/
|
||||||
/MANIFEST
|
/MANIFEST
|
||||||
|
|
||||||
|
.coverage
|
||||||
|
/htmlcov/
|
||||||
|
|
||||||
/docs/captures/
|
/docs/captures/
|
||||||
/share/logitech_icons/
|
/share/logitech_icons/
|
||||||
/share/locale/
|
/share/locale/
|
||||||
|
|
||||||
/po/*.po~
|
/po/*.po~
|
||||||
|
|
||||||
|
/.idea/
|
||||||
|
|
||||||
|
.DS_Store
|
||||||
|
._*
|
||||||
|
|
||||||
|
Pipfile
|
||||||
|
Pipfile.lock
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
[submodule "python-hid-parser"]
|
|
||||||
path = python-hid-parser
|
|
||||||
url = https://github.com/usb-tools/python-hid-parser
|
|
|
@ -1,6 +1,6 @@
|
||||||
repos:
|
repos:
|
||||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||||
rev: v3.1.0
|
rev: v4.3.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: check-ast
|
- id: check-ast
|
||||||
- id: check-builtin-literals
|
- id: check-builtin-literals
|
||||||
|
@ -8,19 +8,13 @@ repos:
|
||||||
- id: check-yaml
|
- id: check-yaml
|
||||||
- id: check-toml
|
- id: check-toml
|
||||||
- id: debug-statements
|
- id: debug-statements
|
||||||
- id: double-quote-string-fixer
|
|
||||||
- id: end-of-file-fixer
|
- id: end-of-file-fixer
|
||||||
- id: trailing-whitespace
|
- id: trailing-whitespace
|
||||||
- repo: https://github.com/pre-commit/mirrors-yapf
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||||
rev: v0.30.0
|
rev: v0.2.2
|
||||||
hooks:
|
hooks:
|
||||||
- id: yapf
|
- id: ruff
|
||||||
- repo: https://github.com/pre-commit/mirrors-isort
|
name: ruff lint
|
||||||
rev: v4.3.21
|
args: [--fix, --exit-non-zero-on-fix]
|
||||||
hooks:
|
- id: ruff-format
|
||||||
- id: isort
|
name: ruff format
|
||||||
- repo: https://gitlab.com/pycqa/flake8
|
|
||||||
rev: 3.8.3
|
|
||||||
hooks:
|
|
||||||
- id: flake8
|
|
||||||
additional_dependencies: ['flake8-bugbear']
|
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
3.11
|
|
@ -1,5 +1,401 @@
|
||||||
# 1.1.6rc4
|
# 1.1.15rc1
|
||||||
|
|
||||||
|
* Center labels and remove buggy entry resizing logic
|
||||||
|
* Add shape keys from Key POP Icon
|
||||||
|
* Device and Action rule conditions match on codename and name
|
||||||
|
* Fix listing hidpp10 devices - bytes vs string concatenation (#2856)
|
||||||
|
* Add present flag, unset when internal error occurs, set when notification appears
|
||||||
|
* Pause setting up features when error occurs; use ADC message to signal connection and disconnection
|
||||||
|
* Fix listing of hidpp10 peripherals
|
||||||
|
* Complete DEVICE_FEATURES to DeviceFeature transition for hidpp10 devices
|
||||||
|
* Fix NOTIFICATION_FLAG to NotificationFlag transition leftovers
|
||||||
|
* Fix github workflow stopping all matrix jobs when one of them fails
|
||||||
|
* Fix ubuntu github CI
|
||||||
|
* Update index.md
|
||||||
|
* Python documentation appears to be broken so don't set it up
|
||||||
|
* Improve documentation on onboard profiles
|
||||||
|
* Use correct LOD values for extended adjustable dpi
|
||||||
|
* Better support RGB Effects - not readable
|
||||||
|
* Fix crash when asking for help about config
|
||||||
|
* Fix error when updating ChoiceControlBig box
|
||||||
|
* Add uninstallation docs
|
||||||
|
* Handle unknown power switch locations again
|
||||||
|
* Correctly handle selection of [empty] in rule editor
|
||||||
|
* Handle `HIDError` in `hidapi.hidapi_impl._match()` (#2804)
|
||||||
|
* Give ghost devices a path
|
||||||
|
* Guard against typeerror when setting the value of a control box
|
||||||
|
* Recover from errors in ping
|
||||||
|
* Replace spaces by underscores when looking up features
|
||||||
|
* Rewrote string concatenation/format with f strings
|
||||||
|
* Fix logo not showing in about dialog box
|
||||||
|
* Make typing-extensions dependency mandatory
|
||||||
|
* Properly ignore unsupported locale
|
||||||
|
* hidapi: skip unsupported devices and handle exception on open
|
||||||
|
* Ignore macOS junk files and pipenv config
|
||||||
|
* Fix ui desktop notifications test
|
||||||
|
* hidpp20: Remove dependency to NamedInts
|
||||||
|
* Estimate accurate battery level for some rechargable devices (#2745)
|
||||||
|
* Upgrade desktop notifications tests to take notifications availability into account
|
||||||
|
* Update tests to run on Python 3.13
|
||||||
|
* Remove outdated logger enabled checks
|
||||||
|
* Introduce GTK signal types
|
||||||
|
* Introduce error types
|
||||||
|
* Remove alias for SupportedFeature
|
||||||
|
* Refactor process_device_notification
|
||||||
|
* Refactor process_receiver_notification
|
||||||
|
* Refactor receiver event handling
|
||||||
|
* Introduce custom logger
|
||||||
|
* Refactor notifications
|
||||||
|
* Rename variable to full name notification
|
||||||
|
* Test notifications
|
||||||
|
* Test extraction of serial and max. devices
|
||||||
|
* Refactor extraction of serial and max. devices
|
||||||
|
* macOS: Fix int.from_bytes, int.to_bytes for show.py
|
||||||
|
* macOS: Remove udev rule warning
|
||||||
|
* macOS: Add support for Bluetooth devices
|
||||||
|
* Add back and forward mouseclick actions
|
||||||
|
* Speedup lookup of known receivers
|
||||||
|
* Refactor device filtering
|
||||||
|
* Reorder private functions and variable definitions
|
||||||
|
* Turn filter_products_of_interest into a public function
|
||||||
|
* Improve tests of known receivers
|
||||||
|
* Refactor: Remove NamedInts and move enums where used
|
||||||
|
* Add docstrings and type hints
|
||||||
|
* Enforce rules on RuleComponentUI subclasses
|
||||||
|
* Simplify settings UI class
|
||||||
|
* Remove diversion alias
|
||||||
|
* Refactor: Convert Kind to IntEnum
|
||||||
|
* Split up huge settings module
|
||||||
|
* Remove Python 2 specific path handling
|
||||||
|
* Delete logging temp file on exit
|
||||||
|
* Update Swedish translation
|
||||||
|
|
||||||
|
# 1.1.14
|
||||||
|
|
||||||
|
* Handle fake feature enums in show
|
||||||
|
* Fix battery entries in config.yaml
|
||||||
|
* Add ratchet setting for smart shift enhanced devices
|
||||||
|
* Refactor Gesture into enum
|
||||||
|
* Replace ERROR NamedInts by IntEnum (#2645)
|
||||||
|
* Refactor hidpp20 to use enum
|
||||||
|
* Update Polish, Swedish, Norwegian Nynorsk (nn), and Norwegian Bokmål (nb) translations
|
||||||
|
* Use IntEnum for firmware and cidgroup constances
|
||||||
|
* Change pairing error values to intenums
|
||||||
|
* Fix initialization bug for PackedRangeControl
|
||||||
|
* Add tests for feature class, process_notification, and key_is_down
|
||||||
|
* Check all bits for extended report rate
|
||||||
|
* Add type hints
|
||||||
|
* Improve about dialog
|
||||||
|
* Reduce dependencies
|
||||||
|
* Refactor code
|
||||||
|
* Improve testing
|
||||||
|
* Allow unknown keys in Key rule conditions
|
||||||
|
* Improve documentation for cli actions
|
||||||
|
* Cycle sw_id to better guard against duplication of messages
|
||||||
|
* Handle error return on root feature
|
||||||
|
* Clean up documentation
|
||||||
|
* Improve github interactions
|
||||||
|
* Add information about Onboard Profiles overriding some settings
|
||||||
|
* Add wording to README.md that Solaar is not a device driver
|
||||||
|
* Clean up imports
|
||||||
|
* Handle unknown device kinds
|
||||||
|
* Fix broken links to Solaar logo
|
||||||
|
* Use mkdocs for public documentation
|
||||||
|
* Clean up setup.py
|
||||||
|
* Remove Dead links in the AppStream file
|
||||||
|
* Update about.py
|
||||||
|
* Remove check on driver
|
||||||
|
* Improve base module
|
||||||
|
* Remove unnecessary receiver info 'hid_driver'
|
||||||
|
* Convert HIDPPNotification to dataclass
|
||||||
|
* Be defensive when converting battery status to string
|
||||||
|
* Automatically detect packages in /lib
|
||||||
|
* Clean up locale code
|
||||||
|
* Improve rules documentation
|
||||||
|
* Refactor creation of devices
|
||||||
|
* Add headings to structure rules.md
|
||||||
|
* Unify imports in logitech package
|
||||||
|
* Don't ping device when getting name or codename
|
||||||
|
* Use dataclasses and enums where useful
|
||||||
|
* Introduce Device protocol and type hints
|
||||||
|
* Add typing_extensions dependency
|
||||||
|
* Move hidpp10 independent functions to module level
|
||||||
|
* Fix macOS compatibility and reenable CI tests
|
||||||
|
* Unify imports in hidapi package
|
||||||
|
* Move screenshots into dedicated folder and add high-level graph of components
|
||||||
|
* Update French and Chinese translations
|
||||||
|
* Drop support for end-of-life Python 3.7
|
||||||
|
|
||||||
|
# 1.1.13
|
||||||
|
|
||||||
|
* Update Polish and Russian translations.
|
||||||
|
* Fix bug in suspend and resume callback
|
||||||
|
* Add choices universe for backlight setting
|
||||||
|
* Add simplify diversion.py and add unit tests
|
||||||
|
* Get and use current host number for K375sFnSwap because of bug in firmware of MX Keys S
|
||||||
|
* Fix bug with logo in about window
|
||||||
|
* Don't ping device just to get logging information
|
||||||
|
* Optimize write for per-key lighting
|
||||||
|
* Add and initialize per-key lighting to a special no-change value
|
||||||
|
* Remove some Python 2 compatibility code
|
||||||
|
* Update French translation
|
||||||
|
* Refactor rule loading for testability
|
||||||
|
|
||||||
|
# 1.1.12
|
||||||
|
|
||||||
|
* Check for existence of keys file before opening
|
||||||
|
* Perform translation for all translatable strings.
|
||||||
|
* Add included hid_parser to packages installed
|
||||||
|
* Improve label and description for LED zone settings
|
||||||
|
* Add message about Onboard Profiles to LED Zone settings
|
||||||
|
* Initialize device registers to empty list
|
||||||
|
* Use bluez dbus signals to disconnect and connect bluetooth devices
|
||||||
|
* Handle a different signal for onboard profiles directory in ROM
|
||||||
|
* Introduce small delay in getting pairing information to let receiver settle after pairing
|
||||||
|
* Improve testing for settings_templates, settings, hidpp20, and device and fix small bugs found
|
||||||
|
* Add extended adjustable DPI setting
|
||||||
|
* Improve and extend infrastructure for testing setting_templates
|
||||||
|
* Update Greek, Polish, Russian, and Traditional Chinese translations
|
||||||
|
* Implement and test per-key lighting
|
||||||
|
* Refactor and test pair_window in GUI
|
||||||
|
* Handle situation when read of a setting fails in GUI
|
||||||
|
* Permit continuing when a read during pushing fails
|
||||||
|
* Fix bug in LEDZoneSetting when effect is not implemented
|
||||||
|
* Add tests for LEDEffect structures in hidpp20
|
||||||
|
* Handle BRIGHTNESS_CONTROL notifications
|
||||||
|
* Add settings for BRIGHTNESS_CONTROL and RGB_EFFECTS features
|
||||||
|
* Fix small bugs found from testing in settings
|
||||||
|
* Use f-strings for more exceptions and log message
|
||||||
|
* Tests for setting_templates
|
||||||
|
* Simple change in settings to improve testability
|
||||||
|
* Use feature_request from the device everywhere in hidpp20
|
||||||
|
* Fix bug in backlight 2 durations
|
||||||
|
* Replace deprecated code constructs
|
||||||
|
* Set up test data and classes to help test HID++ interactions
|
||||||
|
* Use pytest to test code for logitech_receiver modules
|
||||||
|
* Align init methods for all receiver classes
|
||||||
|
* Start refactoring of code base
|
||||||
|
* Allow sub-second delays in Later
|
||||||
|
* Fix bug in setting configuration cookie due to bad documentation
|
||||||
|
* Use ruff for code styling and linting
|
||||||
|
* Upgrade string formating to f-string
|
||||||
|
* Document battery-icons=solaar option
|
||||||
|
* Tell devices to delay device sending first messages until configuration is done
|
||||||
|
* Optimize some functions in FeaturesArray
|
||||||
|
* Fix bug in creating features array
|
||||||
|
* Fix bug in building battery line in show
|
||||||
|
* Refactor diversion_rules
|
||||||
|
* Fix bug in determining tray icon
|
||||||
|
* Fix bug in getting friendly name
|
||||||
|
* Move status information to Device and Receiver objects
|
||||||
|
* Add tests for get_kind_from_index and base product information
|
||||||
|
* Update EX100 documentation
|
||||||
|
* Use object attributes instead of dictionary in status objects
|
||||||
|
* Create subclasses of receiver for different variants
|
||||||
|
* Add requirement for CONFIG_HIDRAW to documentation
|
||||||
|
* Add some low-level tests for some hidpp20 functions, profiles, and lighting and some hidpp10 tests
|
||||||
|
* Fix app name casing in UI
|
||||||
|
* Add missing receiver type for Lightspeed receivers
|
||||||
|
* Add new device types
|
||||||
|
* Refactor device and receiver instantiation
|
||||||
|
* Simplify naming of distribution files
|
||||||
|
* Clean up some logging code
|
||||||
|
* Remove duplicated code to read register
|
||||||
|
* Introduce Hidpp20 and Hidpp10 class
|
||||||
|
* Remove unnecessary calls of del
|
||||||
|
* Fix bug when reading BACKLIGHT setting from device
|
||||||
|
* Replace invalid hidpp10 and hidpp20 usages
|
||||||
|
* Use only timer thread to save config.yaml
|
||||||
|
* Improve README
|
||||||
|
* Copy newer version of hid_parser
|
||||||
|
* Reorder code in settings
|
||||||
|
* Update installation documentation
|
||||||
|
* Add missing license blocks
|
||||||
|
* Clean up listener and notifications code
|
||||||
|
* Add locks to prevent multiple persisters for device
|
||||||
|
* Clean up configuration, device, and receiver code
|
||||||
|
* Move battery constants common to HID++ 1.0 and 2.0 to common
|
||||||
|
* Move mapping of device kind into hidpp20
|
||||||
|
* Move pairing information gathering to receiver
|
||||||
|
* update contributors
|
||||||
|
* Expand allowable profile numbers
|
||||||
|
* Clean up __init__ in logitech_receiver
|
||||||
|
* Modify pre-commit args to make ruff change files
|
||||||
|
* Fix bug in hidpp20 get host names
|
||||||
|
* Use ruff for formatting and linting
|
||||||
|
* Fix bug in rule Set action
|
||||||
|
* Add notify module to logitech_receiver
|
||||||
|
* Implement setting_changed callback and pass in to new devices and receivers
|
||||||
|
* Add callback to call when changing a setting
|
||||||
|
* Move exceptions, hidpp20 and hidpp10 constants into new modules
|
||||||
|
* Streamline status code
|
||||||
|
* Upgrade debugging in udev
|
||||||
|
* Fix deprecated GitHub actions
|
||||||
|
* Extend makefile and tests
|
||||||
|
* Improve features array
|
||||||
|
* Move ui_async to common.py
|
||||||
|
* Improve module imports
|
||||||
|
* Add tests of common module
|
||||||
|
|
||||||
|
# 1.1.11
|
||||||
|
|
||||||
|
* Rename light icons and install them in correct place
|
||||||
|
* Setup macOS tests using GitHub action (#2284)
|
||||||
|
* Better checking for setting in record_setting
|
||||||
|
* Fix invalid func name set logo name
|
||||||
|
* Simplify installation of udev rules
|
||||||
|
* Add document on implementation
|
||||||
|
* Tidy up scrolling appearance in configuration panel
|
||||||
|
* Correctly handle profile button with no action
|
||||||
|
* Don't unlock setting when changed by external means
|
||||||
|
* Refactor code to record change to setting
|
||||||
|
* Add GitHub action for tests
|
||||||
|
* Introduce tests with pytest
|
||||||
|
* Simplify logger instantiation
|
||||||
|
* Update label and tooltip for divert-gkeys setting
|
||||||
|
* Don't lock setting when an error occurs
|
||||||
|
* Catch assertion errors when reading setting values from devices
|
||||||
|
* Support LED Zone control feature
|
||||||
|
* Dump and load device profiles
|
||||||
|
* Select among profiles.
|
||||||
|
* Support backlight levels and duration
|
||||||
|
* Use "Report Rate" instead of "Polling" for movement report rate
|
||||||
|
* Support extended report rate setting
|
||||||
|
* Add stable branch to release.sh (#2236)
|
||||||
|
* Fix changelog parsing in release.sh
|
||||||
|
* Update installation.md with new udev rules location
|
||||||
|
* Downgrade assertion on missing notification flag to warning
|
||||||
|
* Write empty file if there are no rules to save
|
||||||
|
* Be defensive in device error messages
|
||||||
|
* Add descriptions of M650, PRO X 2, G915, MX Anywhere 2S, G305, and MX Keys S
|
||||||
|
* Report hidraw node in debugging messages
|
||||||
|
* Add names for new Logitech features
|
||||||
|
* Update Spanish, French, and Polish translations
|
||||||
|
* Defend against lightspeed receivers that contact devices for basic information
|
||||||
|
* Remove incorrect feature for M325 mice
|
||||||
|
* Add K845 keyboard
|
||||||
|
* Add partial support for macOS and minimal support for Windows
|
||||||
|
* Correctly enumerate devices on receiver
|
||||||
|
* Add wording in documentation about Logitech reusing model numbers
|
||||||
|
* Better handling and installation of icons
|
||||||
|
* Catch errors when pinging to try to put device online
|
||||||
|
* Be more cautious when creating log messages to avoid exceptions
|
||||||
|
* Correctly handle NoSuchDevice exception when pinging device
|
||||||
|
* Fix test in rules for device equality
|
||||||
|
* Add installation instructions for pipx and add not about other GTK system packages
|
||||||
|
* Fix bug in NamedInt
|
||||||
|
* Add support for MK550
|
||||||
|
* Install udev rule files to correct placces
|
||||||
|
* Expand expected ping responses
|
||||||
|
* Update codename when device status changes
|
||||||
|
|
||||||
|
# 1.1.10
|
||||||
|
|
||||||
|
* Add information about NixOS flake package
|
||||||
|
* Permit bluetooth devices in hidconsole
|
||||||
|
* Add descriptor for Logitech MX Revolution Mouse M-RCL 124
|
||||||
|
* Improve determination for short and long messages
|
||||||
|
* Add descriptor for G500s
|
||||||
|
* Fix bug in scan-registers
|
||||||
|
* Add single depress and release options for rule mouse click action
|
||||||
|
* Add rule condition for hostname
|
||||||
|
* Update keysym generation to current list of keysyms
|
||||||
|
* Allow device 0 in hidconsole
|
||||||
|
* Upgrade messages when no supported device found
|
||||||
|
* Documentation update for the gnome extension for better Solaar rule support
|
||||||
|
* Remove udev-acl tag from udev rules
|
||||||
|
* Add support for process condition in Wayland
|
||||||
|
* Update French, Chinese, and German translations
|
||||||
|
* Add G733 Headset
|
||||||
|
* Restore tools/clean.sh
|
||||||
|
* Add Bluetooth Keyboard C714
|
||||||
|
* Update several device descriptions
|
||||||
|
* Update scan-registers.sh
|
||||||
|
* Remove assertion on last byte of ping responses
|
||||||
|
* Add symbolic version of solaar icon
|
||||||
|
* Fix bug when finding name or codename
|
||||||
|
* Update documentation
|
||||||
|
* Put version in initial INFO logging message
|
||||||
|
|
||||||
|
# 1.1.9
|
||||||
|
|
||||||
|
* Add descriptors for G535 wireless gaming headset and wireless keyboard EX110
|
||||||
|
* Update Greek translation
|
||||||
|
* Fix minor issues in documentation
|
||||||
|
* Remove some deprecated GTK code
|
||||||
|
* Use zero exit code for kill interrupts
|
||||||
|
* Add rule Test condition for battery charging
|
||||||
|
* Get wpid for 28Mz devices from udev when enumerating
|
||||||
|
* Add Device condition to rules
|
||||||
|
* Don't show wireless link or battery information when unknown or not present
|
||||||
|
* Add desccriptor for G9x and LX7 mice
|
||||||
|
* Fix bug in determining kind of devices for 27Mz receivers
|
||||||
|
* Set initial lock status of smooth scrolling features to ignore
|
||||||
|
* Fix glitch in configuration file update when changing versions
|
||||||
|
* Add more debugging output for rules
|
||||||
|
* Clean up pinging code
|
||||||
|
* Put initial ping of direct-connected devices inside listener thread
|
||||||
|
* Read and check before write of range settings
|
||||||
|
* Improve pairing determination
|
||||||
|
* Cut off determination of receiver devices when all have been found
|
||||||
|
* Remove derived configuration fields when Solaar version changes
|
||||||
|
* Allow device descriptors without name and codename
|
||||||
|
* Filter and escape technical detail fields
|
||||||
|
* Add setting for ADC power managemen
|
||||||
|
* Correctly determine whether to ping with a long HID++ message
|
||||||
|
* Add description for K470 keyboard from the MK470 combo (#1945)
|
||||||
|
* Add setting value for mouse gestures
|
||||||
|
* Update German and French translations
|
||||||
|
* Remove old clean.sh and monitor.py tools
|
||||||
|
* Retry opening device if permissions error encountered
|
||||||
|
* Better handlling of IO errors at device creation
|
||||||
|
* Add KeyIsDown rule condition to check whether a diverted key is down
|
||||||
|
* Clean up device and receiver creation
|
||||||
|
|
||||||
|
# 1.1.8
|
||||||
|
|
||||||
|
* Add parameter to thumb wheel rule conditions
|
||||||
|
* Rename Serbian translation file
|
||||||
|
* Update Polish translation
|
||||||
|
* Improve handling of wheel notifications
|
||||||
|
* Only record changes of scroll wheel ratchet
|
||||||
|
* Don't mark setting as absent if there are device errors
|
||||||
|
* More robust access to keyword exception fields
|
||||||
|
* Add support for config change feature
|
||||||
|
* Clean up GTK code
|
||||||
|
* Update documentation on mouse gestures and known issues
|
||||||
|
* Get commit information from git describe and dpkg-parsechangelog
|
||||||
|
* Update pre-commit tools to current versions
|
||||||
|
* Update installation instructions
|
||||||
|
* Add 8-character commit hash to version information
|
||||||
|
* Update solaar.desktop (#1857)
|
||||||
|
* Get release in setup.py by reading lib/solaar/__init__.py
|
||||||
|
* Remove version number from docs/_config.yml
|
||||||
|
* Update solaar.desktop
|
||||||
|
* Update es.po
|
||||||
|
* Clarify status of C542 receiver
|
||||||
|
* Update devices directory
|
||||||
|
* Add description of several devices
|
||||||
|
* Show name of disconnecting receiver or device in disconnect warning
|
||||||
|
* Reduce standard size of rule editor window
|
||||||
|
* Remove unnecessary dependency on typing_extensions
|
||||||
|
|
||||||
|
# 1.1.7
|
||||||
|
|
||||||
|
* Add dependency on typing_extension to setup.py
|
||||||
|
* Don't defer saves in CLI and don't require Gtk in CLI
|
||||||
|
* Be more permissive in recognizing HID++ report descriptors
|
||||||
|
* Update Polish and Croatian translations
|
||||||
|
* Switch scroll ratcheting in response to scroll ratchet button notification
|
||||||
|
* Add setting to turn scroll ratchet on and off
|
||||||
|
* Eliminate visual glitch when updating range setting
|
||||||
|
* Make hid-parser an optional dependency
|
||||||
|
|
||||||
|
# 1.1.6
|
||||||
|
|
||||||
|
* Only update remaining pairings after successful pairing
|
||||||
|
* Check for presence of status attribute when resuming
|
||||||
|
* Update Polish and Croation translations
|
||||||
* Don't add non-existant key in raw xy processing
|
* Don't add non-existant key in raw xy processing
|
||||||
* Add special keys from MX Mechanical Mini
|
* Add special keys from MX Mechanical Mini
|
||||||
* Fix processing of HID++ 1.0 battery reports
|
* Fix processing of HID++ 1.0 battery reports
|
|
@ -1,3 +1,3 @@
|
||||||
include COPYRIGHT COPYING README.md ChangeLog.md
|
include COPYRIGHT LICENSE.txt README.md CHANGELOG.md lib/solaar/version lib/solaar/commit
|
||||||
recursive-include rules.d *
|
recursive-include rules.d *
|
||||||
recursive-include share/locale *
|
recursive-include share/locale *
|
||||||
|
|
|
@ -0,0 +1,74 @@
|
||||||
|
UDEV_RULE_FILE = 42-logitech-unify-permissions.rules
|
||||||
|
UDEV_RULES_SOURCE := rules.d/$(UDEV_RULE_FILE)
|
||||||
|
UDEV_RULES_SOURCE_UINPUT := rules.d-uinput/$(UDEV_RULE_FILE)
|
||||||
|
UDEV_RULES_DEST := /etc/udev/rules.d/
|
||||||
|
|
||||||
|
PIP_ARGS ?= .
|
||||||
|
|
||||||
|
.PHONY: install_ubuntu install_macos
|
||||||
|
.PHONY: install_apt install_brew install_pip
|
||||||
|
.PHONY: install_udev install_udev_uinput reload_udev uninstall_udev
|
||||||
|
.PHONY: format lint test
|
||||||
|
|
||||||
|
install_ubuntu: install_apt install_udev_uinput install_pip
|
||||||
|
|
||||||
|
install_macos: install_brew install_pip
|
||||||
|
|
||||||
|
install_apt:
|
||||||
|
@echo "Installing Solaar dependencies via apt"
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install libdbus-1-dev libglib2.0-dev libgtk-3-dev libgirepository1.0-dev
|
||||||
|
|
||||||
|
install_apt_python3.13:
|
||||||
|
@echo "Installing Solaar dependencies via apt"
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install libdbus-1-dev libglib2.0-dev libgtk-3-dev libgirepository-2.0-dev gobject-introspection
|
||||||
|
|
||||||
|
install_dnf:
|
||||||
|
@echo "Installing Solaar dependencies via dn"
|
||||||
|
sudo dnf install gtk3 python3-gobject python3-dbus python3-pyudev python3-psutil python3-xlib python3-yaml
|
||||||
|
|
||||||
|
install_brew:
|
||||||
|
@echo "Installing Solaar dependencies via brew"
|
||||||
|
brew update
|
||||||
|
brew install hidapi gtk+3 pygobject3 gobject-introspection
|
||||||
|
|
||||||
|
install_pip:
|
||||||
|
@echo "Installing Solaar via pip"
|
||||||
|
python -m pip install --upgrade pip
|
||||||
|
pip install $(PIP_ARGS)
|
||||||
|
|
||||||
|
install_pipx:
|
||||||
|
@echo "Installing Solaar via pipx"
|
||||||
|
pipx install --system-site-packages $(PIP_ARGS)
|
||||||
|
|
||||||
|
install_udev:
|
||||||
|
@echo "Copying Solaar udev rule to $(UDEV_RULES_DEST)"
|
||||||
|
sudo cp $(UDEV_RULES_SOURCE) $(UDEV_RULES_DEST)
|
||||||
|
make reload_udev
|
||||||
|
|
||||||
|
install_udev_uinput:
|
||||||
|
@echo "Copying Solaar udev rule (uinput) to $(UDEV_RULES_DEST)"
|
||||||
|
sudo cp $(UDEV_RULES_SOURCE_UINPUT) $(UDEV_RULES_DEST)
|
||||||
|
make reload_udev
|
||||||
|
|
||||||
|
reload_udev:
|
||||||
|
@echo "Reloading udev rules"
|
||||||
|
sudo udevadm control --reload-rules
|
||||||
|
|
||||||
|
uninstall_udev:
|
||||||
|
@echo "Removing Solaar udev rules from $(UDEV_RULES_DEST)"
|
||||||
|
sudo rm -f $(UDEV_RULES_DEST)/$(UDEV_RULE_FILE)
|
||||||
|
make reload_udev
|
||||||
|
|
||||||
|
format:
|
||||||
|
@echo "Formatting Solaar code"
|
||||||
|
ruff format .
|
||||||
|
|
||||||
|
lint:
|
||||||
|
@echo "Linting Solaar code"
|
||||||
|
ruff check . --fix
|
||||||
|
|
||||||
|
test:
|
||||||
|
@echo "Running Solaar tests"
|
||||||
|
pytest --cov --cov-report=xml
|
|
@ -0,0 +1,67 @@
|
||||||
|
# <img src="https://pwr-solaar.github.io/Solaar/img/solaar.svg" width="60px"/> Solaar
|
||||||
|
|
||||||
|
Solaar is a Linux manager for many Logitech keyboards, mice, and other devices
|
||||||
|
that connect wirelessly to a Unifying, Bolt, Lightspeed or Nano receiver
|
||||||
|
as well as many Logitech devices that connect via a USB cable or Bluetooth.
|
||||||
|
Solaar is not a device driver and responds only to special messages from devices
|
||||||
|
that are otherwise ignored by the Linux input system.
|
||||||
|
|
||||||
|
<a href="https://pwr-solaar.github.io/Solaar/index">More Information</a> -
|
||||||
|
<a href="https://pwr-solaar.github.io/Solaar/usage">Usage</a> -
|
||||||
|
<a href="https://pwr-solaar.github.io/Solaar/capabilities">Capabilities</a> -
|
||||||
|
<a href="https://pwr-solaar.github.io/Solaar/rules">Rules</a> -
|
||||||
|
<a href="https://pwr-solaar.github.io/Solaar/installation">Manual Installation</a>
|
||||||
|
|
||||||
|
|
||||||
|
[](https://codecov.io/gh/pwr-Solaar/Solaar)
|
||||||
|
[](../LICENSE.txt)
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<img src="https://pwr-solaar.github.io/Solaar/screenshots/Solaar-main-window-multiple.png" width="54%"/>
|
||||||
|
 
|
||||||
|
<img src="https://pwr-solaar.github.io/Solaar/screenshots/Solaar-main-window-receiver.png" width="43%"/>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<img src="https://pwr-solaar.github.io/Solaar/screenshots/Solaar-main-window-back-divert.png" width="49%"/>
|
||||||
|
 
|
||||||
|
<img src="https://pwr-solaar.github.io/Solaar/screenshots/Solaar-rule-editor.png" width="48%"/>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
Solaar supports:
|
||||||
|
- pairing/unpairing of devices with receivers
|
||||||
|
- configuring device settings
|
||||||
|
- custom button configuration
|
||||||
|
- running rules in response to special messages from devices
|
||||||
|
|
||||||
|
For more information see
|
||||||
|
<a href="https://pwr-solaar.github.io/Solaar/index">the main Solaar documentation page.</a> -
|
||||||
|
|
||||||
|
|
||||||
|
## Installation Packages
|
||||||
|
|
||||||
|
Up-to-date prebuilt packages are available for some Linux distros
|
||||||
|
(e.g., Fedora) in their standard repositories.
|
||||||
|
If a recent version of Solaar is not
|
||||||
|
available from the standard repositories for your distribution, you can try
|
||||||
|
one of these packages:
|
||||||
|
|
||||||
|
- Arch solaar package in the [extra repository][arch]
|
||||||
|
- Ubuntu/Kubuntu package in [Solaar stable ppa][ppa stable]
|
||||||
|
- NixOS Flake package in [Svenum/Solaar-Flake][nix flake]
|
||||||
|
|
||||||
|
Solaar is available from some other repositories
|
||||||
|
but may be several versions behind the current version:
|
||||||
|
|
||||||
|
- a [Debian package][debian], courtesy of Stephen Kitt
|
||||||
|
- a Ubuntu package is available from [universe repository][ubuntu universe repository]
|
||||||
|
- a [Gentoo package][gentoo], courtesy of Carlos Silva and Tim Harder
|
||||||
|
- a [Mageia package][mageia], courtesy of David Geiger
|
||||||
|
|
||||||
|
[ppa stable]: https://launchpad.net/~solaar-unifying/+archive/ubuntu/stable
|
||||||
|
[arch]: https://www.archlinux.org/packages/extra/any/solaar/
|
||||||
|
[gentoo]: https://packages.gentoo.org/packages/app-misc/solaar
|
||||||
|
[mageia]: http://mageia.madb.org/package/show/release/cauldron/application/0/name/solaar
|
||||||
|
[ubuntu universe repository]: http://packages.ubuntu.com/search?keywords=solaar&searchon=names&suite=all§ion=all
|
||||||
|
[nix flake]: https://github.com/Svenum/Solaar-Flake
|
||||||
|
[debian]: https://packages.debian.org/search?keywords=solaar&searchon=names&suite=all§ion=all
|
|
@ -7,8 +7,9 @@ candidates (ex. `1.0.0rc1`). Release candidates must have a `rcX` suffix.
|
||||||
|
|
||||||
Release routine:
|
Release routine:
|
||||||
|
|
||||||
- Update `ChangeLog.md`, `setup.py`, `lib/solaar/__init__.py`, `docs/_config.yml` to the new release
|
- Update version in `lib/solaar/version`
|
||||||
- Add the new release to `share/solaar/io.github.pwr_solaar.solaar.metainfo.xml`
|
- Add release changes to `CHANGELOG.md`
|
||||||
|
- Add release information to `share/solaar/io.github.pwr_solaar.solaar.metainfo.xml`
|
||||||
- Create a commit that starts with `release VERSION`
|
- Create a commit that starts with `release VERSION`
|
||||||
- Push commit to Solaar repository
|
- Push commit to Solaar repository
|
||||||
- Invoke `./release.sh`
|
- Invoke `./release.sh`
|
||||||
|
|
|
@ -1,5 +1,70 @@
|
||||||
# Notes on Major Changes in Releases
|
# Notes on Major Changes in Releases
|
||||||
|
|
||||||
|
## Version 1.1.15
|
||||||
|
|
||||||
|
* Device and Action rule conditions match on device codename and name
|
||||||
|
* Solaar supports configuration of Bluetooth devices on macOS.
|
||||||
|
|
||||||
|
## Version 1.1.13
|
||||||
|
|
||||||
|
* Solaar will drop support for Python 3.7 immediately after version 1.1.13.
|
||||||
|
|
||||||
|
* Version 1.1.12 does not push settings to many devices after a resume resulting in the device reverting to its default behaviour. This is fixed in 1.1.13.
|
||||||
|
|
||||||
|
## Version 1.1.12
|
||||||
|
|
||||||
|
* Solaar now processes DBus disconnection and connection messages from Bluez and re-initializes devices when they reconnect, to handle to a change introduced in Bluez 5.73. The HID++ driver does not re-initialize devices, which causes problems with smooth scrolling. Until the issue is resolved having Scroll Wheel Resolution set to true (and not ignored) may be helpful.
|
||||||
|
|
||||||
|
* The credits for translations have not been kept up to date. Translators who are not listed can update docs/i18n.ml and lib/solaar/ui/about.py.
|
||||||
|
|
||||||
|
* Solaar now has settings for features BRIGHTNESS_CONTROL, RGB_EFFECTS, and PER_KEY_LIGHTING features. The names of keys in the Per-key Lighting setting are for the standard US keyboard. Users who wish to modify these names should look at the section Keyboard Key Names and Locations in `https://pwr-solaar.github.io/Solaar/capabilities`
|
||||||
|
|
||||||
|
* A unit test test suite is being constructed using pytest.
|
||||||
|
|
||||||
|
* The Solaar code for communicating with receivers and devices has been significantly modified to improve testability and organization. Errors may have been introduced for uncommon hardware.
|
||||||
|
|
||||||
|
* The Later rule action uses precision timing for delays of less than one second.
|
||||||
|
|
||||||
|
* Solaar now indentifies supported devices by whether they support the HID protocols that Solaar needs. If a device does not show up at all when running Solaar, it almost certainly cannot be supported by Solaar.
|
||||||
|
|
||||||
|
## Version 1.1.11
|
||||||
|
|
||||||
|
* Solaar can dump device profiles in YAMLfor devices that support profiles and load profiles back from an edited file. See [the capabilities page](https://pwr-solaar.github.io/Solaar/capabilities) for more information.
|
||||||
|
|
||||||
|
* Solaar has settings for each LED Zone that a device supports under feature Color LED Effects.
|
||||||
|
|
||||||
|
* Solaar has settings for extended report rate, backlight levels, durations, and profile selection.
|
||||||
|
|
||||||
|
* Solaar now partly works in MacOS. Please open new issues for problems. Solaar may work in Windows. Please open new issues for problems. See https://github.com/pwr-Solaar/Solaar/pull/1971 for more information. Fixing problems in MacOS or Windows may take considerable time.
|
||||||
|
|
||||||
|
* Solaar works better when the Python package hid-parser is available. Distriubtions should try have this package installed.
|
||||||
|
|
||||||
|
## Version 1.1.10
|
||||||
|
|
||||||
|
* The mouse click rule action can now just simulate depressing or releasing the button.
|
||||||
|
|
||||||
|
* There is a new rule condition to check the hostname.
|
||||||
|
|
||||||
|
## Version 1.1.9
|
||||||
|
|
||||||
|
* Solaar now exits with at 0 exit code when killed.
|
||||||
|
|
||||||
|
* Two Solaar settings can interfere with the implementation of smooth scrolling in modern Linux HID++ drivers. These settings are initially set to ignore so that this interference does not happen.
|
||||||
|
|
||||||
|
* The Device rule condition checks for the device that produced a notification.
|
||||||
|
|
||||||
|
* The KeyIsDown rule condition checks whether a *diverted* rule key is down.
|
||||||
|
|
||||||
|
## Version 1.1.8
|
||||||
|
|
||||||
|
* The thumb wheel rule conditions take an optional parameter that checks for total signed thumb wheel movement.
|
||||||
|
|
||||||
|
## Version 1.1.7
|
||||||
|
|
||||||
|
* Solaar responds to scroll wheel ratchet notifications by changing its scroll wheel ratcheting.
|
||||||
|
|
||||||
|
* Solaar processing of report descriptors is optional, depending on whether the package hid-parser is available.
|
||||||
|
|
||||||
## Version 1.1.6
|
## Version 1.1.6
|
||||||
|
|
||||||
* Solaar requires Python version 3.7.
|
* Solaar requires Python version 3.7.
|
||||||
|
|
31
bin/solaar
|
@ -21,35 +21,22 @@
|
||||||
|
|
||||||
def init_paths():
|
def init_paths():
|
||||||
"""Make the app work in the source tree."""
|
"""Make the app work in the source tree."""
|
||||||
|
import os.path
|
||||||
import sys
|
import sys
|
||||||
import os.path as _path
|
|
||||||
|
|
||||||
# Python 2 need conversion from utf-8 filenames
|
root = os.path.join(os.path.realpath(sys.path[0]), "..")
|
||||||
# Python 3 might have problems converting back to UTF-8 in case of Unicode surrogates
|
prefix = os.path.normpath(root)
|
||||||
try:
|
src_lib = os.path.join(prefix, "lib")
|
||||||
decoded_path = sys.path[0]
|
share_lib = os.path.join(prefix, "share", "solaar", "lib")
|
||||||
sys.path[0].encode(sys.getfilesystemencoding())
|
|
||||||
|
|
||||||
except UnicodeError:
|
|
||||||
sys.stderr.write(
|
|
||||||
'ERROR: Solaar cannot recognize encoding of filesystem path, '
|
|
||||||
'this may happen because non UTF-8 characters in the pathname.\n'
|
|
||||||
)
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
prefix = _path.normpath(_path.join(_path.realpath(decoded_path), '..'))
|
|
||||||
src_lib = _path.join(prefix, 'lib')
|
|
||||||
share_lib = _path.join(prefix, 'share', 'solaar', 'lib')
|
|
||||||
for location in src_lib, share_lib:
|
for location in src_lib, share_lib:
|
||||||
init_py = _path.join(location, 'solaar', '__init__.py')
|
init_py = os.path.join(location, "solaar", "__init__.py")
|
||||||
# print ("sys.path[0]: checking", init_py)
|
if os.path.exists(init_py):
|
||||||
if _path.exists(init_py):
|
|
||||||
# print ("sys.path[0]: found", location, "replacing", sys.path[0])
|
|
||||||
sys.path[0] = location
|
sys.path[0] = location
|
||||||
break
|
break
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == "__main__":
|
||||||
init_paths()
|
init_paths()
|
||||||
import solaar.gtk
|
import solaar.gtk
|
||||||
|
|
||||||
solaar.gtk.main()
|
solaar.gtk.main()
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
title: Solaar
|
|
||||||
description: Linux Device Manager for Logitech Unifying Receivers and Devices.
|
|
||||||
tagline: Linux Device Manager for Logitech Unifying Receivers and Devices.
|
|
||||||
owner: pwr-Solaar
|
|
||||||
owner_url: https://github.com/pwr-Solaar
|
|
||||||
repository: pwr-Solaar/Solaar
|
|
||||||
version: 1.1.6rc4
|
|
||||||
show_downloads: false
|
|
||||||
encoding: utf-8
|
|
||||||
theme: jekyll-theme-slate
|
|
|
@ -1,53 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="{{ site.lang | default: "en-US" }}">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<meta charset='utf-8'>
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
||||||
<meta name="viewport" content="width=device-width,maximum-scale=2">
|
|
||||||
<link rel="stylesheet" type="text/css" media="screen" href="{{ '/assets/css/style.css?v=' | append: site.github.build_revision | relative_url }}">
|
|
||||||
<link rel="icon" type="image/png" href="{{ site.baseurl }}/assets/favicon.png" />
|
|
||||||
|
|
||||||
{% seo %}
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<!-- HEADER -->
|
|
||||||
<div id="header_wrap" class="outer">
|
|
||||||
<header class="inner">
|
|
||||||
{% if site.github.is_project_page %}
|
|
||||||
<a id="forkme_banner" href="{{ site.github.repository_url }}">View on GitHub</a>
|
|
||||||
{% endif %}
|
|
||||||
<h1 id="project_title">
|
|
||||||
<img src="{{ site.baseurl }}/assets/solaar.svg" style="margin-bottom: -10px; width: 48px; height: 48px; border: 0; box-shadow: none;" />
|
|
||||||
{{ site.title | default: site.github.repository_name }}</h1>
|
|
||||||
<h2 id="project_tagline">{{ site.description | default: site.github.project_tagline }}</h2>
|
|
||||||
|
|
||||||
{% if site.show_downloads %}
|
|
||||||
<section id="downloads">
|
|
||||||
<a class="zip_download_link" href="{{ site.github.zip_url }}">Download this project as a .zip file</a>
|
|
||||||
<a class="tar_download_link" href="{{ site.github.tar_url }}">Download this project as a tar.gz file</a>
|
|
||||||
</section>
|
|
||||||
{% endif %}
|
|
||||||
</header>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- MAIN CONTENT -->
|
|
||||||
<div id="main_content_wrap" class="outer">
|
|
||||||
<section id="main_content" class="inner">
|
|
||||||
{{ content }}
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- FOOTER -->
|
|
||||||
<div id="footer_wrap" class="outer">
|
|
||||||
<footer class="inner">
|
|
||||||
{% if site.github.is_project_page %}
|
|
||||||
<p class="copyright">{{ site.title | default: site.github.repository_name }} maintained by <a href="{{ site.github.owner_url }}">{{ site.github.owner_name }}</a></p>
|
|
||||||
{% endif %}
|
|
||||||
<p>Published with <a href="https://pages.github.com">GitHub Pages</a></p>
|
|
||||||
</footer>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,47 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="{{ site.lang | default: "en-US" }}">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<meta charset='utf-8'>
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
||||||
<meta name="viewport" content="width=device-width,maximum-scale=2">
|
|
||||||
<link rel="stylesheet" type="text/css" media="screen" href="{{ '/assets/css/style.css?v=' | append: site.github.build_revision | relative_url }}">
|
|
||||||
<link rel="icon" type="image/png" href="{{ site.baseurl }}/assets/favicon.png" />
|
|
||||||
{% seo %}
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<!-- HEADER -->
|
|
||||||
<div id="header_wrap" class="outer">
|
|
||||||
<header class="inner">
|
|
||||||
{% if site.github.is_project_page %}
|
|
||||||
<a id="forkme_banner" href="{{ site.github.repository_url }}">View on GitHub</a>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<h1 id="project_title">
|
|
||||||
<a href="{{ site.baseurl }}" style="color: #fff;">
|
|
||||||
<img src="{{ site.baseurl }}/assets/solaar.svg" style="margin-bottom: -10px; width: 48px; height: 48px; border: 0; box-shadow: none;" />
|
|
||||||
{{ site.title | default: site.github.repository_name }}</h1>
|
|
||||||
</a>
|
|
||||||
</header>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- MAIN CONTENT -->
|
|
||||||
<div id="main_content_wrap" class="outer">
|
|
||||||
<section id="main_content" class="inner">
|
|
||||||
{{ content }}
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- FOOTER -->
|
|
||||||
<div id="footer_wrap" class="outer">
|
|
||||||
<footer class="inner">
|
|
||||||
{% if site.github.is_project_page %}
|
|
||||||
<p class="copyright">{{ site.title | default: site.github.repository_name }} maintained by <a href="{{ site.github.owner_url }}">{{ site.github.owner_name }}</a></p>
|
|
||||||
{% endif %}
|
|
||||||
<p>Published with <a href="https://pages.github.com">GitHub Pages</a></p>
|
|
||||||
</footer>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -51,7 +51,7 @@ connect via a USB cable or via bluetooth can be determined by their USB or
|
||||||
Bluetooth product ID.
|
Bluetooth product ID.
|
||||||
|
|
||||||
|
|
||||||
# Pairing and Unpairing
|
## Pairing and Unpairing
|
||||||
|
|
||||||
Solaar is able to pair and unpair devices with
|
Solaar is able to pair and unpair devices with
|
||||||
receivers as supported by the device and receiver.
|
receivers as supported by the device and receiver.
|
||||||
|
@ -80,7 +80,7 @@ that they were bought with.
|
||||||
## Device Settings
|
## Device Settings
|
||||||
|
|
||||||
Solaar can display quite a few changeable settings of receivers and devices.
|
Solaar can display quite a few changeable settings of receivers and devices.
|
||||||
For a list of HID++ features and their support see [the features page](features).
|
For a list of HID++ features and their support see [the features page](features.md).
|
||||||
|
|
||||||
Solaar does not do much beyond using the HID++ protocol to change the
|
Solaar does not do much beyond using the HID++ protocol to change the
|
||||||
behavior of receivers and devices via changing their settings.
|
behavior of receivers and devices via changing their settings.
|
||||||
|
@ -96,20 +96,21 @@ until an unlocked lock appears (with tooltop "Changes allowed").
|
||||||
Solaar keeps track of most of the changeable settings of a device.
|
Solaar keeps track of most of the changeable settings of a device.
|
||||||
Devices forget most changed settings when the device is turned off
|
Devices forget most changed settings when the device is turned off
|
||||||
or goes into a power-saving mode.
|
or goes into a power-saving mode.
|
||||||
The exceptions include the setting to change the host the device is connected to
|
Exceptions include the setting to change the host the device is connected to,
|
||||||
and the setting to persistently change what a key or button does.
|
the setting to persistently change what a key or button does,
|
||||||
|
and, for some devices, the fn-swap setting.
|
||||||
When Solaar starts, it restores on-line devices to their previously-known state
|
When Solaar starts, it restores on-line devices to their previously-known state
|
||||||
for the unexceptionable settings and while running it restores
|
except for host connection and persistent key and button changes and while running Solaar restores
|
||||||
devices to their previously-known state when the device itself comes on line.
|
devices to their previously-known state when the device itself comes on line.
|
||||||
Setting information is stored in the file `~/.config/solaar/config.yaml`.
|
Setting information is stored in the file `~/.config/solaar/config.yaml`.
|
||||||
|
|
||||||
Updating of a setting can be turned off in the Solaar GUI by clicking on the icon
|
Updating of a setting can be turned off in the Solaar GUI by clicking on the icon
|
||||||
at the right-hand edge of the setting until a red icon appears (with tooltip
|
at the right-hand edge of the setting until a red icon appears (with tooltip
|
||||||
"Ignore this setting" ).
|
"Ignore this setting").
|
||||||
|
|
||||||
Solaar keeps track of settings independently on each computer.
|
Solaar keeps track of settings independently on each computer.
|
||||||
As a result if a device is switched between different computers
|
As a result if a device is switched between different computers
|
||||||
Solaar may apply different settings for it on the different computers
|
Solaar may apply different settings for it on the different computers.
|
||||||
|
|
||||||
Querying a device for its current state can require quite a few HID++
|
Querying a device for its current state can require quite a few HID++
|
||||||
interactions. These interactions can temporarily slow down the device, so
|
interactions. These interactions can temporarily slow down the device, so
|
||||||
|
@ -139,7 +140,6 @@ change the speed of some thumb wheels. These notifications are only sent
|
||||||
for actions that are set in Solaar to their HID++ setting (also known as diverted).
|
for actions that are set in Solaar to their HID++ setting (also known as diverted).
|
||||||
For more information on this capability of Solaar see
|
For more information on this capability of Solaar see
|
||||||
[the rules page](https://pwr-solaar.github.io/Solaar/rules).
|
[the rules page](https://pwr-solaar.github.io/Solaar/rules).
|
||||||
Some features of rules do not work under Wayland.
|
|
||||||
|
|
||||||
Users can edit rules using a GUI by clicking on the `Rule Editor` button in the Solaar main window.
|
Users can edit rules using a GUI by clicking on the `Rule Editor` button in the Solaar main window.
|
||||||
|
|
||||||
|
@ -165,7 +165,7 @@ Some mice (such as the MX Master 3) have a button that is supposed to be used to
|
||||||
create up/down/left/right mouse gestures. Other mice (such as the MX Vertical) don't
|
create up/down/left/right mouse gestures. Other mice (such as the MX Vertical) don't
|
||||||
have a button specific for this purpose but have buttons that can be used for it.
|
have a button specific for this purpose but have buttons that can be used for it.
|
||||||
|
|
||||||
The `Key/Button Diversion` setting can assign buttons to initiate mous gestures by setting the value for the button to `Mouse Gestures`.
|
The `Key/Button Diversion` setting can assign buttons to initiate mouse gestures by setting the value for the button to `Mouse Gestures`.
|
||||||
This capability is only present if the device can support it.
|
This capability is only present if the device can support it.
|
||||||
|
|
||||||
Pressing a button when it is set to `Mouse Gestures` causes the mouse pointer to stop moving.
|
Pressing a button when it is set to `Mouse Gestures` causes the mouse pointer to stop moving.
|
||||||
|
@ -174,6 +174,108 @@ is sent to the Solaar rule system so that rules can detect these notifications.
|
||||||
For more information on Mouse Gestures rule conditions see
|
For more information on Mouse Gestures rule conditions see
|
||||||
[the rules page](https://pwr-solaar.github.io/Solaar/rules).
|
[the rules page](https://pwr-solaar.github.io/Solaar/rules).
|
||||||
|
|
||||||
|
### Keyboard Key Names and Locations
|
||||||
|
|
||||||
|
Solaar uses the standard Logitech names for keyboard keys. Some Logitech keyboards have different icons on some of their keys and have different functionality than suggested by these names.
|
||||||
|
|
||||||
|
Solaar is uses the standard US keyboard layout. This currently only matters for the `Per-key Lighting` setting. Users who want to have the key names for this setting reflect the keyboard layout that they use can create and edit `~/.config/solaar/keys.yaml` which contains a YAML dictionary of key names and locations. For example, switching the `Y` and `Z` keys can be done as:
|
||||||
|
|
||||||
|
Z: 25
|
||||||
|
Y: 26
|
||||||
|
|
||||||
|
This is an experimental feature and may be modified or even eliminated.
|
||||||
|
|
||||||
|
|
||||||
|
### Onboard Profiles
|
||||||
|
|
||||||
|
Some mice store one or more profiles onboard. An onboard profile controls certain aspects of the behavior of the mouse, including the rate at which the mouse reports movement, the resolution of the the movement reports, what the mouse buttons do, LED effects, and maybe more. Solaar has a setting that switches between profiles or disables all profiles.
|
||||||
|
|
||||||
|
When an onboard profile is active it may not be possible to change the aspects that the profile controls. This is often seen for the Report Rate setting. For some devices it is possible to make changes to the Sensitivity setting and to LED settings. These changes are likely to only be temporary and may be overridden when the device reconnects or when Solaar is restarted. This is in keeping with the intent of Onboard Profiles as controlling the device behavior. To make the changes to these settings permanent it is necessary to disable onboard profiles. Alternatively, multiple profiles can be set up as described below and these settings controlled by switching between the profiles.
|
||||||
|
|
||||||
|
Solaar can dump the entire set of profiles into a YAML file and can load the entire set of profiles from a file. Users can edit the file to effect changes to the profiles.
|
||||||
|
|
||||||
|
A profile file has some bookkeeping information, including profile version and the name of the device, and a sequence of profiles.
|
||||||
|
|
||||||
|
Each profile has the following fields:
|
||||||
|
- enabled: Whether the profile is enabled.
|
||||||
|
- sector: Where the profile is stored in device memory. Sectors greater than 0xFF are in ROM and cannot be written (use the low byte as the sector to write to Flash).
|
||||||
|
- name: A memonic name for the profile.
|
||||||
|
- report_rate: A report rate in milliseconds from 1 to 8.
|
||||||
|
- resolutions: A sequence of five sensor resolutions in DPI.
|
||||||
|
- resolution_default_index: The index of the default sensor resolution (0 to 4).
|
||||||
|
- resolution_shift_index: The index of the sensor resolution used when the DPI Shift button is pressed (0 to 4).
|
||||||
|
- buttons: The action for each button on the mouse in normal mode.
|
||||||
|
- gbuttons: The action for each button on the mouse in G-Shift mode.
|
||||||
|
- angle_snap: Enable angle snapping for devices.
|
||||||
|
- red, blue, green: Color indicator for the profile.
|
||||||
|
- lighting: Lighting information for logo and side LEDs in normal mode, then for power saving mode.
|
||||||
|
- ps_timeout: Delay in ms to go into power saving mode.
|
||||||
|
- po_timeout: Delay in ms to go from power saving mode to fully off.
|
||||||
|
- power_mode: Unknown purpose.
|
||||||
|
- write count: Unknown purpose.
|
||||||
|
Missing or unused parts of a profile are often a sequence of 0xFF bytes.
|
||||||
|
|
||||||
|
Button actions can either perform a function (behavior: 9) or send a button click or key press (behaviour: 8).
|
||||||
|
Functions are:
|
||||||
|
- 0: No Action - do nothing
|
||||||
|
- 1: Tilt Left
|
||||||
|
- 2: Tilt Right
|
||||||
|
- 3: Next DPI - change device resolution to the next DPI
|
||||||
|
- 4: Previous DPI - change device resolution to the previous DPI
|
||||||
|
- 5: Cycle DPI - change device resolution to the next DPI considered as a cycle
|
||||||
|
- 6: Default_DPI - change device resolution to the default resolution
|
||||||
|
- 7: Shift_DPI - change device resolution to the shift resolution
|
||||||
|
- 8: Next Profile - change to the next enabled profile
|
||||||
|
- 9: Previous Profile - change to the previous enabled profile
|
||||||
|
- 10: Cycle Profile - change to the next enabled profile considered as a cycle
|
||||||
|
- 11: G-Shift - change all buttons to their G-Shift state
|
||||||
|
- 12: Battery Status - show battery status on the device LEDs
|
||||||
|
- 13: Profile Select - select the n'th enabled profile
|
||||||
|
- 14: Mode Switch
|
||||||
|
- 15: Host Button - switch between hosts (unverified)
|
||||||
|
- 16: Scroll Down
|
||||||
|
- 17: Scroll Up
|
||||||
|
Some devices might not be able to perform all functions.
|
||||||
|
|
||||||
|
Buttons can send (type):
|
||||||
|
- 0: Don't send anything.
|
||||||
|
- 1: A button click (value) as a 16-bit bitmap, i.e., 1 is left click, 2 is right, 4 is middle, etc.
|
||||||
|
- 2: An 8-bit USB HID keycode (value) plus an 8-bit modifier bitmap (modifiers), i.e., 0 for no modifiers, 1 for control, 2 for shift, etc.
|
||||||
|
- 3: A 16-bit HID Consumer keycode (value).
|
||||||
|
|
||||||
|
See USB_HID_KEYCODES and HID_CONSUMERCODES in lib/logitech_receiver/special_keys.py for values to use for keycodes.
|
||||||
|
|
||||||
|
Buttons can also execute macros but Solaar does not provide any support for macros.
|
||||||
|
|
||||||
|
Lighting information is a sequence of lighting effects, with the first usually for the logo LEDs and the second usually for the side LEDs.
|
||||||
|
|
||||||
|
The fields possible in an effect are:
|
||||||
|
- ID: The kind of effect:
|
||||||
|
- color: A color parameter for the effect as a 24-bit RGB value.
|
||||||
|
- intensity: How intense to make the color (1%-100%), 0 for the default (usually 100%).
|
||||||
|
- speed: How fast to pulse in ms (one byte).
|
||||||
|
- ramp: How to change to the color (0=default, 1=ramp up/down, 2=no ramping).
|
||||||
|
- period: How fast to perform the effect in ms (two bytes).
|
||||||
|
- form: The form of the breathe effect.
|
||||||
|
- bytes: The raw bytes of other effects.
|
||||||
|
|
||||||
|
The possible effects and the fields the use are:
|
||||||
|
- 0x0: Disable - No fields.
|
||||||
|
- 0x1: Fixed color - color, whether to ramp.
|
||||||
|
- 0x2: Pulse a color - color, speed.
|
||||||
|
- 0x3 Cycle through the spectrum - period, intensity, form.
|
||||||
|
- 0x8; A boot effect - No fields.
|
||||||
|
- 0x9: A demo effect - NO fields.
|
||||||
|
- 0xa: breathe a color (like pulse) - color, period.
|
||||||
|
- 0xb: Ripple - color, period.
|
||||||
|
- null: An unknown effect.
|
||||||
|
Only effects supported by the device can be used.
|
||||||
|
|
||||||
|
To set up profiles, first run `solaar profiles <device name>`, which will output a YAML dump of the profiles on the device. Then store the YAML dump into a file and edit the file to make changes. Finally run `solaar profiles <device name> <file name>` to load the profiles back onto the device. Profiles are stored in flash memory and persist when the device is inactive or turned off. When loading profiles Solaar is careful to only write the flash memory sectors that need to be changed. Solaar also checks for correct profile version and device name before loading a profile into a device.
|
||||||
|
|
||||||
|
Keep a copy of the initial dump of profiles so that it can be loaded back to the device if problems are encountered with the edited profiles. The safest changes are to take an unused or unenabled profile sector and create a new profile in it, likely mostly copying parts of another profile.
|
||||||
|
|
||||||
|
|
||||||
## System Tray
|
## System Tray
|
||||||
|
|
||||||
Solaar's GUI normally uses an icon in the system tray.
|
Solaar's GUI normally uses an icon in the system tray.
|
||||||
|
@ -181,7 +283,7 @@ This allows users to close Solaar and reopen from the tray.
|
||||||
This aspect of Solaar depends on having an active system tray which may
|
This aspect of Solaar depends on having an active system tray which may
|
||||||
require some special setup when using Gnome, particularly under Wayland.
|
require some special setup when using Gnome, particularly under Wayland.
|
||||||
|
|
||||||
If you are running gnome, you most likely need the
|
If you are running Gnome, you most likely need the
|
||||||
`gnome-shell-extension-appindicator` package installed.
|
`gnome-shell-extension-appindicator` package installed.
|
||||||
In Fedora, this can be done by running
|
In Fedora, this can be done by running
|
||||||
```
|
```
|
||||||
|
@ -198,7 +300,7 @@ You may have to log out and log in again before the system tray shows up.
|
||||||
|
|
||||||
For many devices, Solaar shows the approximate battery level via icons that
|
For many devices, Solaar shows the approximate battery level via icons that
|
||||||
show up in both the main window and the system tray. In previous versions
|
show up in both the main window and the system tray. In previous versions
|
||||||
several heuristics to determine which icon names to use for this purpose,
|
several heuristics determined which icon names to use for this purpose,
|
||||||
but as more and more battery icon schemes have been developed this has
|
but as more and more battery icon schemes have been developed this has
|
||||||
become impossible to do well. Solaar now uses the eleven standard
|
become impossible to do well. Solaar now uses the eleven standard
|
||||||
battery icon names `battery-{full,good,low,critical,empty}[-charging]` and
|
battery icon names `battery-{full,good,low,critical,empty}[-charging]` and
|
||||||
|
|
|
@ -11,71 +11,26 @@ Solaar supports most Logitech Nano, Unifying, and Bolt receivers.
|
||||||
Solaar supports some Lightspeed receivers.
|
Solaar supports some Lightspeed receivers.
|
||||||
See the receiver table below for the list of currently supported receivers.
|
See the receiver table below for the list of currently supported receivers.
|
||||||
|
|
||||||
Solaar supports most recent and many older Logitech devices
|
Solaar supports all Logitech devices (keyboards, mice, trackballs, touchpads, and headsets)
|
||||||
(keyboards, mice, trackballs, touchpads, and headsets)
|
|
||||||
that can connect to supported receivers.
|
that can connect to supported receivers.
|
||||||
Solaar supports many recent Logitech devices that can connect via a USB cable,
|
Solaar supports all Logitech devices that can connect via a USB cable or via Bluetooth,
|
||||||
but some such Logitech devices are not suited for use in Solaar because they do not use the HID++ protocol.
|
as long as the device uses the HID++ protocol.
|
||||||
One example is the MX518 Gaming Mouse.
|
|
||||||
Solaar supports most recent Logitech devices that can connect via Bluetooth.
|
|
||||||
|
|
||||||
The best way to determine whether Solaar supports a device is to run Solaar while the device is connected.
|
The best way to determine whether Solaar supports a device is to run Solaar while the device is connected.
|
||||||
If the device is supported, it will show up in the Solaar main window.
|
If the device is supported, it will show up in the Solaar main window.
|
||||||
If it is not, and there is no issue about the device in the Solaar GitHub repository,
|
|
||||||
open an enhancement issue requesting that it be supported.
|
|
||||||
|
|
||||||
The directory https://github.com/pwr-Solaar/Solaar/tree/master/docs/devices contains
|
The directory <https://github.com/pwr-Solaar/Solaar/tree/master/docs/devices> contains edited output
|
||||||
|
of `solaar show` on many devices and can be used to see what Solaar can do with the device.
|
||||||
|
|
||||||
|
|
||||||
## Adding new devices
|
## Supporting old devices
|
||||||
|
|
||||||
Most new HID++ devices do not need to be known to Solaar to work.
|
Some old Logitech devices use an old version of HID++.
|
||||||
You should be able to just run Solaar and the device will show up
|
For Solaar to support these devices well, Solaar needs some information about them.
|
||||||
|
|
||||||
If your device does not show up,
|
If you have an old Logitech device that shows up in Solaar but has no settings
|
||||||
either it doesn't use HID++ or the interface it uses isn't the one Solaar normally uses.
|
and you feel that Solaar should be able to do more with the device you can
|
||||||
To start the process of support for a Logitech device open an enhancement issue for Solaar and
|
open an enhancement request for Solaar to better support the device.
|
||||||
follow these steps:
|
|
||||||
|
|
||||||
1. Make sure the receiver or device is connected and active.
|
|
||||||
|
|
||||||
2. Look at output of `grep -H . /sys/class/hidraw/hidraw*/device/uevent` to find
|
|
||||||
where information about the device is kept.
|
|
||||||
You are looking for a line like `/sys/class/hidraw/hidrawN/device/uevent:HID_NAME=<NAME>`
|
|
||||||
where <NAME> is the name of your receiver or device.
|
|
||||||
`N` is the current HID raw number of your receiver or device.
|
|
||||||
|
|
||||||
3. Provide the contents of the file `/sys/class/hidraw/hidrawN/device/uevent` where N was found
|
|
||||||
above in the enhancement issue.
|
|
||||||
|
|
||||||
4. Also attach contents of the file `/sys/class/hidraw/hidrawN/device/report_descriptor`
|
|
||||||
to the enhancement request.
|
|
||||||
You will have to copy the contents to a file with txt extension before attaching it.
|
|
||||||
Or, better, install hidrd-convert and attach output of
|
|
||||||
`hidrd-convert -o spec /sys/class/hidraw/hidrawN/device/report_descriptor`
|
|
||||||
(To install hidrd on Fedora use `sudo dnf install hidrd`.)
|
|
||||||
|
|
||||||
5. If your device or receiver connects via USB, look at the output of `lsusb`
|
|
||||||
to find the ID of device or receiver and also provide output of
|
|
||||||
`lsusb -vv -d xxxx:yyyy` where xxxx:yyyy is ID of device or receiver.
|
|
||||||
|
|
||||||
If your device can connect in multiple ways - via a receiver, via USB (not just charging via a USB cable),
|
|
||||||
via Bluetooth - do this for each way it can connect.
|
|
||||||
|
|
||||||
### Adding information about a new device to the Solaar code
|
|
||||||
|
|
||||||
The _D function in `../lib/logitech_receiver/descriptors.py` makes a device known to Solaar.
|
|
||||||
The usual arguments to the _D function are the device's long name, its short name
|
|
||||||
(codename), and its HID++ protocol version.
|
|
||||||
Devices that use HID++ 1.0 need a tuple of known registers (registers) and settings (settings).
|
|
||||||
Settings can be provided for Devices that use HID++ 2.0 or later,
|
|
||||||
but Solaar can determine these from the device.
|
|
||||||
If the device can connect to a receiver, provide its wireless product ID (wpid),
|
|
||||||
If the device can connect via Bluetooth, provide its Bluetooth product ID (btid).
|
|
||||||
If the device can connect via a USB cable, provide its USB product ID (usbid),
|
|
||||||
and the interface it uses to send and receiver HID++ messages (interface - default 2).
|
|
||||||
The use of a non-default USB interface is the main reason for requiring information about
|
|
||||||
modern devices to be added to Solaar.
|
|
||||||
|
|
||||||
|
|
||||||
## Adding new receivers
|
## Adding new receivers
|
||||||
|
@ -119,22 +74,25 @@ to be specified. Then add the receiver to the tuple of receivers (ALL).
|
||||||
| 17ef:6042 | Nano | 1 |
|
| 17ef:6042 | Nano | 1 |
|
||||||
|
|
||||||
Some Nano receivers are only partly supported
|
Some Nano receivers are only partly supported
|
||||||
as they do not fully implement the full HID++ 1.0 protocol.
|
as they do not implement the full HID++ 1.0 protocol.
|
||||||
Some Nano receivers are not supported at all as they do not implement the HID++ protocol.
|
Some Nano receivers are not supported as they do not implement the HID++ protocol at all.
|
||||||
Receivers with USB ID 046d:c542 fall into this category.
|
Receivers with USB ID 046d:c542 fall into this category.
|
||||||
|
|
||||||
The receiver with USB ID 046d:c517 is an old 27 MHz receiver, supporting only
|
The receiver with USB ID 046d:c517 is an old 27 MHz receiver, supporting only
|
||||||
subset of HID++ 1.0 protocol. Only hardware pairing is supported.
|
a subset of the HID++ 1.0 protocol. Only hardware pairing is supported.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Supported Devices
|
## Supported Devices (Historical Interest Only)
|
||||||
|
|
||||||
The device tables below provide a list of some of the devices that Solaar supports,
|
The device tables below provide a list of some of the devices that Solaar supports,
|
||||||
giving their product name, WPID product number, and HID++ protocol information.
|
giving their product name, WPID product number, and HID++ protocol information.
|
||||||
The tables concentrate on older devices that have explicit support information in Solaar
|
The tables concentrate on older devices that have explicit support information in Solaar
|
||||||
and are not being updated for new devices that are supported by Solaar.
|
and are not being updated for new devices that are supported by Solaar.
|
||||||
|
|
||||||
|
Note that Logitech has the annoying habit of reusing Device names (e.g., M185)
|
||||||
|
so what is important for support is the USB WPID or Bluetooth model ID.
|
||||||
|
|
||||||
### Keyboards (Unifying)
|
### Keyboards (Unifying)
|
||||||
|
|
||||||
| Device | WPID | HID++ |
|
| Device | WPID | HID++ |
|
||||||
|
@ -201,6 +159,7 @@ and are not being updated for new devices that are supported by Solaar.
|
||||||
| MX Master | 4041 | 2.0 |
|
| MX Master | 4041 | 2.0 |
|
||||||
| MX Master 2S | 4069 | 2.0 |
|
| MX Master 2S | 4069 | 2.0 |
|
||||||
| Cube | | 2.0 |
|
| Cube | | 2.0 |
|
||||||
|
| MX Vertical | 407B | 2.0 |
|
||||||
|
|
||||||
### Mice (Nano)
|
### Mice (Nano)
|
||||||
|
|
||||||
|
@ -250,6 +209,7 @@ and are not being updated for new devices that are supported by Solaar.
|
||||||
|
|
||||||
| Device | WPID | HID++ |
|
| Device | WPID | HID++ |
|
||||||
|------------------------------|------|-------|
|
|------------------------------|------|-------|
|
||||||
|
| G604 Wireless Gaming Mouse | 4085 | 4.2 |
|
||||||
| PRO X Superlight Wireless | 4093 | 4.2 |
|
| PRO X Superlight Wireless | 4093 | 4.2 |
|
||||||
|
|
||||||
### Trackballs (Unifying)
|
### Trackballs (Unifying)
|
||||||
|
@ -282,4 +242,4 @@ and are not being updated for new devices that are supported by Solaar.
|
||||||
| EX100 keyboard | 0065 | 1.0 |
|
| EX100 keyboard | 0065 | 1.0 |
|
||||||
| EX100 mouse | 003f | 1.0 |
|
| EX100 mouse | 003f | 1.0 |
|
||||||
|
|
||||||
* The EX100 is an old, preunifying receiver and device set, supporting only part of HID++ 1.0 features
|
* The EX100 is an old, pre-Unifying receiver and device set, supporting only some HID++ 1.0 features
|
||||||
|
|
|
@ -1,3 +1,128 @@
|
||||||
|
solaar version 1.1.11-80-gdea496f
|
||||||
|
|
||||||
|
EX100 Receiver 27 Mhz
|
||||||
|
Device path : /dev/hidraw2
|
||||||
|
USB id : 046d:C517
|
||||||
|
Serial : None
|
||||||
|
Has 2 paired device(s) out of a maximum of 4.
|
||||||
|
Notifications: wireless (0x000100)
|
||||||
|
|
||||||
|
1: Wireless Mouse EX100
|
||||||
|
Device path : /dev/hidraw3
|
||||||
|
WPID : 003F
|
||||||
|
Codename : EX100m
|
||||||
|
Kind : mouse
|
||||||
|
Protocol : HID++ 1.0
|
||||||
|
Serial number:
|
||||||
|
The power switch is located on the (unknown).
|
||||||
|
Notifications: roller V, mouse extra buttons, battery status, roller H (0x3C0000).
|
||||||
|
Battery: good, discharging.
|
||||||
|
|
||||||
|
3: Wireless Keyboard EX100
|
||||||
|
Device path : /dev/hidraw6
|
||||||
|
WPID : 0065
|
||||||
|
Codename : EX100
|
||||||
|
Kind : keyboard
|
||||||
|
Protocol : HID++ 1.0
|
||||||
|
Serial number:
|
||||||
|
The power switch is located on the (unknown).
|
||||||
|
Notifications: keyboard multimedia raw, battery status (0x110000).
|
||||||
|
Battery: good, discharging.
|
||||||
|
|
||||||
|
|
||||||
|
Register Dump
|
||||||
|
Notifications 0x00: 0x000100
|
||||||
|
Connection State 0x02: 0x000100
|
||||||
|
Device Activity 0xb3: None
|
||||||
|
Pairing Register 0xb5 0x00: None
|
||||||
|
Pairing Register 0xb5 0x01: None
|
||||||
|
Pairing Register 0xb5 0x02: None
|
||||||
|
Pairing Register 0xb5 0x03: None
|
||||||
|
Pairing Register 0xb5 0x04: None
|
||||||
|
Pairing Register 0xb5 0x05: None
|
||||||
|
Pairing Register 0xb5 0x06: None
|
||||||
|
Pairing Register 0xb5 0x07: None
|
||||||
|
Pairing Register 0xb5 0x08: None
|
||||||
|
Pairing Register 0xb5 0x09: None
|
||||||
|
Pairing Register 0xb5 0x0a: None
|
||||||
|
Pairing Register 0xb5 0x0b: None
|
||||||
|
Pairing Register 0xb5 0x0c: None
|
||||||
|
Pairing Register 0xb5 0x0d: None
|
||||||
|
Pairing Register 0xb5 0x0e: None
|
||||||
|
Pairing Register 0xb5 0x0f: None
|
||||||
|
Pairing Register 0xb5 0x10: None
|
||||||
|
Pairing Register 0xb5 0x20: None
|
||||||
|
Pairing Register 0xb5 0x30: None
|
||||||
|
Pairing Register 0xb5 0x50: None
|
||||||
|
Pairing Name 0xb5 0x40: None
|
||||||
|
Pairing Name 0xb5 0x60 0x1: 0 None
|
||||||
|
Pairing Name 0xb5 0x60 0x2: 0 None
|
||||||
|
Pairing Name 0xb5 0x60 0x3: 0 None
|
||||||
|
Pairing Register 0xb5 0x11: None
|
||||||
|
Pairing Register 0xb5 0x21: None
|
||||||
|
Pairing Register 0xb5 0x31: None
|
||||||
|
Pairing Register 0xb5 0x51: None
|
||||||
|
Pairing Name 0xb5 0x41: None
|
||||||
|
Pairing Name 0xb5 0x61 0x1: 0 None
|
||||||
|
Pairing Name 0xb5 0x61 0x2: 0 None
|
||||||
|
Pairing Name 0xb5 0x61 0x3: 0 None
|
||||||
|
Pairing Register 0xb5 0x12: None
|
||||||
|
Pairing Register 0xb5 0x22: None
|
||||||
|
Pairing Register 0xb5 0x32: None
|
||||||
|
Pairing Register 0xb5 0x52: None
|
||||||
|
Pairing Name 0xb5 0x42: None
|
||||||
|
Pairing Name 0xb5 0x62 0x1: 0 None
|
||||||
|
Pairing Name 0xb5 0x62 0x2: 0 None
|
||||||
|
Pairing Name 0xb5 0x62 0x3: 0 None
|
||||||
|
Pairing Register 0xb5 0x13: None
|
||||||
|
Pairing Register 0xb5 0x23: None
|
||||||
|
Pairing Register 0xb5 0x33: None
|
||||||
|
Pairing Register 0xb5 0x53: None
|
||||||
|
Pairing Name 0xb5 0x43: None
|
||||||
|
Pairing Name 0xb5 0x63 0x1: 0 None
|
||||||
|
Pairing Name 0xb5 0x63 0x2: 0 None
|
||||||
|
Pairing Name 0xb5 0x63 0x3: 0 None
|
||||||
|
Pairing Register 0xb5 0x14: None
|
||||||
|
Pairing Register 0xb5 0x24: None
|
||||||
|
Pairing Register 0xb5 0x34: None
|
||||||
|
Pairing Register 0xb5 0x54: None
|
||||||
|
Pairing Name 0xb5 0x44: None
|
||||||
|
Pairing Name 0xb5 0x64 0x1: 0 None
|
||||||
|
Pairing Name 0xb5 0x64 0x2: 0 None
|
||||||
|
Pairing Name 0xb5 0x64 0x3: 0 None
|
||||||
|
Pairing Register 0xb5 0x15: None
|
||||||
|
Pairing Register 0xb5 0x25: None
|
||||||
|
Pairing Register 0xb5 0x35: None
|
||||||
|
Pairing Register 0xb5 0x55: None
|
||||||
|
Pairing Name 0xb5 0x45: None
|
||||||
|
Pairing Name 0xb5 0x65 0x1: 0 None
|
||||||
|
Pairing Name 0xb5 0x65 0x2: 0 None
|
||||||
|
Pairing Name 0xb5 0x65 0x3: 0 None
|
||||||
|
Pairing Register 0xb5 0x16: None
|
||||||
|
Pairing Register 0xb5 0x26: None
|
||||||
|
Pairing Register 0xb5 0x36: None
|
||||||
|
Pairing Register 0xb5 0x56: None
|
||||||
|
Pairing Name 0xb5 0x46: None
|
||||||
|
Pairing Name 0xb5 0x66 0x1: 0 None
|
||||||
|
Pairing Name 0xb5 0x66 0x2: 0 None
|
||||||
|
Pairing Name 0xb5 0x66 0x3: 0 None
|
||||||
|
Firmware 0xf1 0x00: None
|
||||||
|
Firmware 0xf1 0x01: None
|
||||||
|
Firmware 0xf1 0x02: None
|
||||||
|
Firmware 0xf1 0x03: None
|
||||||
|
Firmware 0xf1 0x04: None
|
||||||
|
|
||||||
|
Register Short 0x00 0x00: 0x000100
|
||||||
|
Register Long 0x00 0x00: invalid SubID/command
|
||||||
|
...
|
||||||
|
Register Long 0x00 0xfe: invalid SubID/command
|
||||||
|
Register Short 0x01 0x00: 0x000200
|
||||||
|
Register Long 0x01 0x00: invalid SubID/command
|
||||||
|
Register Long 0x01 0x01: invalid SubID/command
|
||||||
|
Register Long 0x01 0x02: invalid SubID/command
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
./scan-registers.sh ff /dev/hidraw4
|
./scan-registers.sh ff /dev/hidraw4
|
||||||
# Old notification flags: 000100
|
# Old notification flags: 000100
|
||||||
>> ( 0.035) [10 FF 8100 000100] '\x10\xff\x81\x00\x00\x01\x00'
|
>> ( 0.035) [10 FF 8100 000100] '\x10\xff\x81\x00\x00\x01\x00'
|
||||||
|
@ -67,52 +192,7 @@ Fn pressed
|
||||||
>> ( 1652.170) [10 03 0300 000000] '\x10\x03\x03\x00\x00\x00\x00'
|
>> ( 1652.170) [10 03 0300 000000] '\x10\x03\x03\x00\x00\x00\x00'
|
||||||
|
|
||||||
|
|
||||||
$ bin/solaar probe
|
|
||||||
Nano Receiver
|
|
||||||
Device path : /dev/hidraw3
|
|
||||||
USB id : 046d:c517
|
|
||||||
Serial : None
|
|
||||||
Has 2 paired device(s) out of a maximum of 6.
|
|
||||||
Notifications: wireless (0x000100)
|
|
||||||
Register Dump
|
|
||||||
Notification Register 0x00: 0x000100
|
|
||||||
Connection State 0x02: 0x000200
|
|
||||||
Device Activity 0xb3: None
|
|
||||||
Pairing Register 0xb5 0x00: None
|
|
||||||
Pairing Register 0xb5 0x10: None
|
|
||||||
Pairing Register 0xb5 0x20: None
|
|
||||||
Pairing Register 0xb5 0x30: None
|
|
||||||
Pairing Name 0xb5 0x40: None
|
|
||||||
Pairing Register 0xb5 0x01: None
|
|
||||||
Pairing Register 0xb5 0x11: None
|
|
||||||
Pairing Register 0xb5 0x21: None
|
|
||||||
Pairing Register 0xb5 0x31: None
|
|
||||||
Pairing Name 0xb5 0x41: None
|
|
||||||
Pairing Register 0xb5 0x02: None
|
|
||||||
Pairing Register 0xb5 0x12: None
|
|
||||||
Pairing Register 0xb5 0x22: None
|
|
||||||
Pairing Register 0xb5 0x32: None
|
|
||||||
Pairing Name 0xb5 0x42: None
|
|
||||||
Pairing Register 0xb5 0x03: None
|
|
||||||
Pairing Register 0xb5 0x13: None
|
|
||||||
Pairing Register 0xb5 0x23: None
|
|
||||||
Pairing Register 0xb5 0x33: None
|
|
||||||
Pairing Name 0xb5 0x43: None
|
|
||||||
Pairing Register 0xb5 0x04: None
|
|
||||||
Pairing Register 0xb5 0x14: None
|
|
||||||
Pairing Register 0xb5 0x24: None
|
|
||||||
Pairing Register 0xb5 0x34: None
|
|
||||||
Pairing Name 0xb5 0x44: None
|
|
||||||
Pairing Register 0xb5 0x05: None
|
|
||||||
Pairing Register 0xb5 0x15: None
|
|
||||||
Pairing Register 0xb5 0x25: None
|
|
||||||
Pairing Register 0xb5 0x35: None
|
|
||||||
Pairing Name 0xb5 0x45: None
|
|
||||||
Firmware 0xf1 0x00: None
|
|
||||||
Firmware 0xf1 0x01: None
|
|
||||||
Firmware 0xf1 0x02: None
|
|
||||||
Firmware 0xf1 0x03: None
|
|
||||||
Firmware 0xf1 0x04: None
|
|
||||||
|
|
||||||
Battery status:
|
Battery status:
|
||||||
1.9V critical
|
1.9V critical
|
|
@ -0,0 +1,59 @@
|
||||||
|
solaar version 1.1.8
|
||||||
|
|
||||||
|
|
||||||
|
1: G304 Lightspeed Wireless Gaming Mouse
|
||||||
|
Device path : /dev/hidraw6
|
||||||
|
WPID : 4074
|
||||||
|
Codename : G304
|
||||||
|
Kind : mouse
|
||||||
|
Protocol : HID++ 4.2
|
||||||
|
Polling rate : 8 ms (125Hz)
|
||||||
|
Serial number: B2D05D23
|
||||||
|
Model ID: 407400000000
|
||||||
|
Unit ID: EB490C63
|
||||||
|
Bootloader: BOT 69.02.B0021
|
||||||
|
Firmware: RQM 68.02.B0021
|
||||||
|
The power switch is located on the base.
|
||||||
|
Supports 27 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000} V0
|
||||||
|
1: FEATURE SET {0001} V0
|
||||||
|
2: DEVICE FW VERSION {0003} V2
|
||||||
|
Firmware: Bootloader BOT 69.02.B0021 4074452F3940
|
||||||
|
Firmware: Firmware RQM 68.02.B0021 4074452F3940
|
||||||
|
Unit ID: EB490C63 Model ID: 407400000000 Transport IDs: {'wpid': '4074'}
|
||||||
|
3: DEVICE NAME {0005} V0
|
||||||
|
Name: G304 Lightspeed Wireless Gaming Mouse
|
||||||
|
Kind: mouse
|
||||||
|
4: WIRELESS DEVICE STATUS {1D4B} V0
|
||||||
|
5: BATTERY STATUS {1000} V0
|
||||||
|
Battery: 90%, discharging, next level 50%.
|
||||||
|
6: COLOR LED EFFECTS {8070} V6
|
||||||
|
7: ONBOARD PROFILES {8100} V0
|
||||||
|
Device Mode: Host
|
||||||
|
Onboard Profiles (saved): Disable
|
||||||
|
Onboard Profiles : Disable
|
||||||
|
8: MOUSE BUTTON SPY {8110} V0
|
||||||
|
9: REPORT RATE {8060} V0
|
||||||
|
Polling Rate (ms): 8
|
||||||
|
Polling Rate (ms) (saved): 8
|
||||||
|
Polling Rate (ms) : 8
|
||||||
|
10: MODE STATUS {8090} V1
|
||||||
|
11: DFUCONTROL SIGNED {00C2} V0
|
||||||
|
12: DEVICE RESET {1802} V0 internal, hidden
|
||||||
|
13: unknown:1803 {1803} V0 internal, hidden
|
||||||
|
14: CONFIG DEVICE PROPS {1806} V4 internal, hidden
|
||||||
|
15: unknown:1811 {1811} V0 internal, hidden
|
||||||
|
16: OOBSTATE {1805} V0 internal, hidden
|
||||||
|
17: unknown:1830 {1830} V0 internal, hidden
|
||||||
|
18: unknown:1890 {1890} V0 internal, hidden
|
||||||
|
19: unknown:1DF3 {1DF3} V0 internal, hidden
|
||||||
|
20: unknown:1E00 {1E00} V0 hidden
|
||||||
|
21: unknown:1EB0 {1EB0} V0 internal, hidden
|
||||||
|
22: unknown:1861 {1861} V0 internal, hidden
|
||||||
|
23: unknown:18B1 {18B1} V0 internal, hidden
|
||||||
|
24: unknown:1E22 {1E22} V0 internal, hidden
|
||||||
|
25: unknown:1801 {1801} V0 internal, hidden
|
||||||
|
26: ADJUSTABLE DPI {2201} V1
|
||||||
|
Sensitivity (DPI) (saved): 2200
|
||||||
|
Sensitivity (DPI) : 2200
|
||||||
|
Battery: 90%, discharging, next level 50%.
|
|
@ -0,0 +1,58 @@
|
||||||
|
solaar version 1.1.10
|
||||||
|
|
||||||
|
1: G305 Lightspeed Wireless Gaming Mouse
|
||||||
|
Device path : /dev/hidraw7
|
||||||
|
WPID : 4074
|
||||||
|
Codename : G305
|
||||||
|
Kind : mouse
|
||||||
|
Protocol : HID++ 4.2
|
||||||
|
Polling rate : 1 ms (1000Hz)
|
||||||
|
Serial number: ED5E9515
|
||||||
|
Model ID: 407400000000
|
||||||
|
Unit ID: F074D567
|
||||||
|
Bootloader: BOT 69.02.B0021
|
||||||
|
Firmware: RQM 68.02.B0021
|
||||||
|
The power switch is located on the base.
|
||||||
|
Supports 27 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000} V0
|
||||||
|
1: FEATURE SET {0001} V0
|
||||||
|
2: DEVICE FW VERSION {0003} V2
|
||||||
|
Firmware: Bootloader BOT 69.02.B0021 4074452F3940
|
||||||
|
Firmware: Firmware RQM 68.02.B0021 4074452F3940
|
||||||
|
Unit ID: F074D567 Model ID: 407400000000 Transport IDs: {'wpid': '4074'}
|
||||||
|
3: DEVICE NAME {0005} V0
|
||||||
|
Name: G305 Lightspeed Wireless Gaming Mouse
|
||||||
|
Kind: mouse
|
||||||
|
4: WIRELESS DEVICE STATUS {1D4B} V0
|
||||||
|
5: BATTERY STATUS {1000} V0
|
||||||
|
Battery: 50%, discharging, next level 30%.
|
||||||
|
6: COLOR LED EFFECTS {8070} V6
|
||||||
|
7: ONBOARD PROFILES {8100} V0
|
||||||
|
Device Mode: On-Board
|
||||||
|
Onboard Profiles (saved): Enable
|
||||||
|
Onboard Profiles : Enable
|
||||||
|
8: MOUSE BUTTON SPY {8110} V0
|
||||||
|
9: REPORT RATE {8060} V0
|
||||||
|
Polling Rate (ms): 1
|
||||||
|
Polling Rate (ms) (saved): 1
|
||||||
|
Polling Rate (ms) : 1
|
||||||
|
10: MODE STATUS {8090} V1
|
||||||
|
11: DFUCONTROL SIGNED {00C2} V0
|
||||||
|
12: DEVICE RESET {1802} V0 internal, hidden
|
||||||
|
13: unknown:1803 {1803} V0 internal, hidden
|
||||||
|
14: CONFIG DEVICE PROPS {1806} V4 internal, hidden
|
||||||
|
15: unknown:1811 {1811} V0 internal, hidden
|
||||||
|
16: OOBSTATE {1805} V0 internal, hidden
|
||||||
|
17: unknown:1830 {1830} V0 internal, hidden
|
||||||
|
18: unknown:1890 {1890} V0 internal, hidden
|
||||||
|
19: unknown:1DF3 {1DF3} V0 internal, hidden
|
||||||
|
20: unknown:1E00 {1E00} V0 hidden
|
||||||
|
21: unknown:1EB0 {1EB0} V0 internal, hidden
|
||||||
|
22: unknown:1861 {1861} V0 internal, hidden
|
||||||
|
23: unknown:18B1 {18B1} V0 internal, hidden
|
||||||
|
24: unknown:1E22 {1E22} V0 internal, hidden
|
||||||
|
25: unknown:1801 {1801} V0 internal, hidden
|
||||||
|
26: ADJUSTABLE DPI {2201} V1
|
||||||
|
Sensitivity (DPI) (saved): 1600
|
||||||
|
Sensitivity (DPI) : 1600
|
||||||
|
Battery: 50%, discharging, next level 30%.
|
|
@ -1,62 +1,80 @@
|
||||||
Solaar version 1.1.4
|
solaar version 1.1.12rc1
|
||||||
|
|
||||||
1: G502 Gaming Mouse
|
1: G502 Gaming Mouse
|
||||||
Device path : /dev/hidraw10
|
Device path : /dev/hidraw20
|
||||||
WPID : 407F
|
WPID : 407F
|
||||||
Codename : G502
|
Codename : G502
|
||||||
Kind : mouse
|
Kind : mouse
|
||||||
Protocol : HID++ 4.2
|
Protocol : HID++ 4.2
|
||||||
Polling rate : 1 ms (1000Hz)
|
Report Rate : 1ms
|
||||||
Serial number: 636878DB
|
Serial number: DDDAADBC
|
||||||
Model ID: 407FC08D0000
|
Model ID: 407FC08D0000
|
||||||
Unit ID: 636878DB
|
Unit ID: DDDAADBC
|
||||||
Bootloader: BOT 92.00.B0008
|
1: BOT 92.00.B0008
|
||||||
Firmware: MPM 17.00.B0008
|
0: MPM 17.00.B0008
|
||||||
Other:
|
3:
|
||||||
The power switch is located on the base.
|
The power switch is located on the base.
|
||||||
Supports 29 HID++ 2.0 features:
|
Supports 30 HID++ 2.0 features:
|
||||||
0: ROOT {0000}
|
0: ROOT {0000} V0
|
||||||
1: FEATURE SET {0001}
|
1: FEATURE SET {0001} V0
|
||||||
2: DEVICE FW VERSION {0003}
|
2: DEVICE FW VERSION {0003} V2
|
||||||
Firmware: Bootloader BOT 92.00.B0008 AAEF21F1FA5F
|
Firmware: Bootloader BOT 92.00.B0008 AAEF21F1FA5F
|
||||||
Firmware: Firmware MPM 17.00.B0008 407F21F1FA5F
|
Firmware: Firmware MPM 17.00.B0008 407F21F1FA5F
|
||||||
Firmware: Other
|
Firmware: Other
|
||||||
Unit ID: 636878DB Model ID: 407FC08D0000 Transport IDs: {'wpid': '407F', 'usbid': 'C08D'}
|
Unit ID: DDDAADBC Model ID: 407FC08D0000 Transport IDs: {'wpid': '407F', 'usbid': 'C08D'}
|
||||||
3: DEVICE NAME {0005}
|
3: DEVICE NAME {0005} V0
|
||||||
Name: G502 LIGHTSPEED Wireless Gaming Mouse
|
Name: G502 LIGHTSPEED Wireless Gaming Mouse
|
||||||
Kind: mouse
|
Kind: mouse
|
||||||
4: WIRELESS DEVICE STATUS {1D4B}
|
4: WIRELESS DEVICE STATUS {1D4B} V0
|
||||||
5: RESET {0020}
|
5: CONFIG CHANGE {0020} V0
|
||||||
6: BATTERY VOLTAGE {1001}
|
Configuration: 11000000000000000000000000000000
|
||||||
Battery: 30% 3766mV , slow recharge.
|
6: BATTERY VOLTAGE {1001} V2
|
||||||
7: COLOR LED EFFECTS {8070}
|
Battery: 90% 4166mV , discharging.
|
||||||
8: LED CONTROL {1300}
|
7: COLOR LED EFFECTS {8070} V4
|
||||||
9: ONBOARD PROFILES {8100}
|
LED Control (saved): Device
|
||||||
Device Mode: Host
|
LED Control : Device
|
||||||
Onboard Profiles (saved): Disable
|
LEDs Primary (saved): !LEDEffectSetting {ID: 1, color: 16711680, intensity: 0, period: 100, ramp: 0, speed: 0}
|
||||||
Onboard Profiles : Disable
|
LEDs Primary : None
|
||||||
10: MOUSE BUTTON SPY {8110}
|
LEDs Logo : None
|
||||||
11: REPORT RATE {8060}
|
8: LED CONTROL {1300} V0
|
||||||
Polling Rate (ms): 1
|
9: ONBOARD PROFILES {8100} V0
|
||||||
Polling Rate (ms) (saved): 1
|
Device Mode: On-Board
|
||||||
Polling Rate (ms) : 1
|
Onboard Profiles (saved): Profile 1
|
||||||
12: ADJUSTABLE DPI {2201}
|
Onboard Profiles : Profile 1
|
||||||
Sensitivity (DPI) (saved): 600
|
10: MOUSE BUTTON SPY {8110} V0
|
||||||
Sensitivity (DPI) : 600
|
11: REPORT RATE {8060} V0
|
||||||
13: DEVICE RESET {1802} internal, hidden
|
Report Rate: 1ms
|
||||||
14: unknown:1803 {1803} internal, hidden
|
Report Rate (saved): 1ms
|
||||||
15: OOBSTATE {1805} internal, hidden
|
Report Rate : 1ms
|
||||||
16: CONFIG DEVICE PROPS {1806} internal, hidden
|
12: ADJUSTABLE DPI {2201} V1
|
||||||
17: unknown:1811 {1811} internal, hidden
|
Sensitivity (DPI) (saved): 900
|
||||||
18: unknown:1830 {1830} internal, hidden
|
Sensitivity (DPI) : 900
|
||||||
19: unknown:1890 {1890} internal, hidden
|
13: DEVICE RESET {1802} V0 internal, hidden
|
||||||
20: unknown:1891 {1891} internal, hidden
|
14: unknown:1803 {1803} V0 internal, hidden
|
||||||
21: unknown:18A1 {18A1} internal, hidden
|
15: OOBSTATE {1805} V0 internal, hidden
|
||||||
22: unknown:1801 {1801} internal, hidden
|
16: CONFIG DEVICE PROPS {1806} V4 internal, hidden
|
||||||
23: unknown:18B1 {18B1} internal, hidden
|
17: unknown:1811 {1811} V0 internal, hidden
|
||||||
24: unknown:1DF3 {1DF3} internal, hidden
|
18: unknown:1830 {1830} V0 internal, hidden
|
||||||
25: unknown:1E00 {1E00} hidden
|
19: unknown:1890 {1890} V4 internal, hidden
|
||||||
26: unknown:1EB0 {1EB0} internal, hidden
|
20: unknown:1891 {1891} V4 internal, hidden
|
||||||
27: unknown:1863 {1863} internal, hidden
|
21: unknown:18A1 {18A1} V0 internal, hidden
|
||||||
28: unknown:1E22 {1E22} internal, hidden
|
22: unknown:1801 {1801} V0 internal, hidden
|
||||||
Battery: 30% 3766mV , slow recharge.
|
23: unknown:18B1 {18B1} V0 internal, hidden
|
||||||
|
24: unknown:1DF3 {1DF3} V0 internal, hidden
|
||||||
|
25: unknown:1E00 {1E00} V0 hidden
|
||||||
|
26: unknown:1EB0 {1EB0} V0 internal, hidden
|
||||||
|
27: unknown:1863 {1863} V0 internal, hidden
|
||||||
|
28: unknown:1E22 {1E22} V0 internal, hidden
|
||||||
|
29: HIRES WHEEL {2121} V0
|
||||||
|
Multiplier: 8
|
||||||
|
Has invert: Normal wheel motion
|
||||||
|
Has ratchet switch: Normal wheel mode
|
||||||
|
High resolution mode
|
||||||
|
HID notification
|
||||||
|
Scroll Wheel Direction (saved): False
|
||||||
|
Scroll Wheel Direction : False
|
||||||
|
Scroll Wheel Resolution (saved): True
|
||||||
|
Scroll Wheel Resolution : True
|
||||||
|
Scroll Wheel Diversion (saved): False
|
||||||
|
Scroll Wheel Diversion : False
|
||||||
|
Battery: 90% 4166mV , discharging.
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
solaar version 1.1.9
|
||||||
|
|
||||||
|
2: G502 Proteus Spectrum Optical Mouse
|
||||||
|
Device path : /dev/hidraw4
|
||||||
|
USB id : 046d:C332
|
||||||
|
Codename : G502 Proteus Spectrum
|
||||||
|
Kind : mouse
|
||||||
|
Protocol : HID++ 4.2
|
||||||
|
Polling rate : 1 ms (1000Hz)
|
||||||
|
Serial number:
|
||||||
|
Model ID: C33200000000
|
||||||
|
Unit ID: 31374706
|
||||||
|
Firmware: U1 03.02.B0012
|
||||||
|
Bootloader: BOT 14.00.B0007
|
||||||
|
Supports 20 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000} V0
|
||||||
|
1: FEATURE SET {0001} V0
|
||||||
|
2: COLOR LED EFFECTS {8070} V3
|
||||||
|
3: DEVICE FW VERSION {0003} V1
|
||||||
|
Firmware: Firmware U1 03.02.B0012 C332
|
||||||
|
Firmware: Bootloader BOT 14.00.B0007 AABF
|
||||||
|
Unit ID: 31374706 Model ID: C33200000000 Transport IDs: {'usbid': 'C332'}
|
||||||
|
4: DEVICE NAME {0005} V0
|
||||||
|
Name: Tunable RGB Gaming Mouse G502
|
||||||
|
Kind: mouse
|
||||||
|
5: LED CONTROL {1300} V0
|
||||||
|
6: unknown:18A1 {18A1} V0 internal, hidden
|
||||||
|
7: unknown:1E00 {1E00} V0 hidden
|
||||||
|
8: unknown:1E20 {1E20} V0
|
||||||
|
9: unknown:1EB0 {1EB0} V0 internal, hidden
|
||||||
|
10: ADJUSTABLE DPI {2201} V1
|
||||||
|
Sensitivity (DPI) (saved): 7000
|
||||||
|
Sensitivity (DPI) : 7000
|
||||||
|
11: ANGLE SNAPPING {2230} V0
|
||||||
|
12: SURFACE TUNING {2240} V0
|
||||||
|
13: REPORT RATE {8060} V0
|
||||||
|
Polling Rate (ms): 1
|
||||||
|
Polling Rate (ms) (saved): 1
|
||||||
|
Polling Rate (ms) : 1
|
||||||
|
14: ONBOARD PROFILES {8100} V0
|
||||||
|
Device Mode: On-Board
|
||||||
|
Onboard Profiles (saved): Enable
|
||||||
|
Onboard Profiles : Enable
|
||||||
|
15: MOUSE BUTTON SPY {8110} V0
|
||||||
|
16: unknown:1850 {1850} V0 internal, hidden
|
||||||
|
17: DFUCONTROL UNSIGNED {00C1} V0
|
||||||
|
18: unknown:1801 {1801} V0 internal, hidden
|
||||||
|
19: DEVICE RESET {1802} V0 internal, hidden
|
||||||
|
Battery status unavailable.
|
|
@ -0,0 +1,44 @@
|
||||||
|
1: G502 SE Hero Gaming Mouse
|
||||||
|
Device path : /dev/hidraw7
|
||||||
|
USB id : 046d:C08B
|
||||||
|
Codename : G502 Hero
|
||||||
|
Kind : mouse
|
||||||
|
Protocol : HID++ 4.2
|
||||||
|
Polling rate : 1 ms (1000Hz)
|
||||||
|
Serial number:
|
||||||
|
Model ID: C08B00000000
|
||||||
|
Unit ID: 30324703
|
||||||
|
Firmware: U1 27.03.B0010
|
||||||
|
Bootloader: BOT 81.00.B0002
|
||||||
|
Supports 19 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000}
|
||||||
|
1: FEATURE SET {0001}
|
||||||
|
2: COLOR LED EFFECTS {8070}
|
||||||
|
3: DEVICE FW VERSION {0003}
|
||||||
|
Firmware: Firmware U1 27.03.B0010 C08B
|
||||||
|
Firmware: Bootloader BOT 81.00.B0002 AAE6
|
||||||
|
Unit ID: 30324703 Model ID: C08B00000000 Transport IDs: {'usbid': 'C08B'}
|
||||||
|
4: DEVICE NAME {0005}
|
||||||
|
Name: G502 HERO Gaming Mouse
|
||||||
|
Kind: mouse
|
||||||
|
5: LED CONTROL {1300}
|
||||||
|
6: unknown:18A1 {18A1} internal, hidden
|
||||||
|
7: unknown:1E00 {1E00} hidden
|
||||||
|
8: unknown:1E22 {1E22} internal, hidden
|
||||||
|
9: unknown:1EB0 {1EB0} internal, hidden
|
||||||
|
10: ADJUSTABLE DPI {2201}
|
||||||
|
Sensitivity (DPI) (saved): 2400
|
||||||
|
Sensitivity (DPI) : 2400
|
||||||
|
11: REPORT RATE {8060}
|
||||||
|
Polling Rate (ms): 1
|
||||||
|
Polling Rate (ms) (saved): 1
|
||||||
|
Polling Rate (ms) : 1
|
||||||
|
12: ONBOARD PROFILES {8100}
|
||||||
|
Device Mode: Host
|
||||||
|
13: MOUSE BUTTON SPY {8110}
|
||||||
|
14: DFUCONTROL SIGNED {00C2}
|
||||||
|
15: unknown:1801 {1801} internal, hidden
|
||||||
|
16: DEVICE RESET {1802} internal, hidden
|
||||||
|
17: CONFIG DEVICE PROPS {1806} internal, hidden
|
||||||
|
18: unknown:18B1 {18B1} internal, hidden
|
||||||
|
Battery status unavailable.
|
|
@ -0,0 +1,62 @@
|
||||||
|
Solaar version 1.1.7
|
||||||
|
|
||||||
|
1: G502 X
|
||||||
|
Device path : /dev/hidraw2
|
||||||
|
USB id : 046d:C099
|
||||||
|
Codename : G502
|
||||||
|
Kind : mouse
|
||||||
|
Protocol : HID++ 4.2
|
||||||
|
Polling rate : 1 ms (1000Hz)
|
||||||
|
Serial number:
|
||||||
|
Model ID: C09900000000
|
||||||
|
Unit ID: 42004C00
|
||||||
|
Bootloader: BL1 59.00.B0002
|
||||||
|
Firmware: U1 60.00.B0009
|
||||||
|
Supports 22 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000} V0
|
||||||
|
1: FEATURE SET {0001} V0
|
||||||
|
2: DEVICE FW VERSION {0003} V4
|
||||||
|
Firmware: Bootloader BL1 59.00.B0002 AB17
|
||||||
|
Firmware: Firmware U1 60.00.B0009 C099
|
||||||
|
Unit ID: 42004C00 Model ID: C09900000000 Transport IDs: {'usbid': 'C099'}
|
||||||
|
3: DEVICE NAME {0005} V0
|
||||||
|
Name: G502 X
|
||||||
|
Kind: mouse
|
||||||
|
4: RESET {0020} V0
|
||||||
|
5: DFUCONTROL SIGNED {00C2} V0
|
||||||
|
6: unknown:1801 {1801} V0 internal, hidden, unknown:000010
|
||||||
|
7: DEVICE RESET {1802} V0 internal, hidden, unknown:000010
|
||||||
|
8: OOBSTATE {1805} V0 internal, hidden
|
||||||
|
9: CONFIG DEVICE PROPS {1806} V8 internal, hidden, unknown:000010
|
||||||
|
10: unknown:1875 {1875} V0 internal, hidden, unknown:000010
|
||||||
|
11: unknown:18A1 {18A1} V0 internal, hidden, unknown:000010
|
||||||
|
12: unknown:18B1 {18B1} V0 internal, hidden, unknown:000010
|
||||||
|
13: unknown:18C0 {18C0} V0 internal, hidden, unknown:000010
|
||||||
|
14: unknown:1E00 {1E00} V0 hidden
|
||||||
|
15: unknown:1E22 {1E22} V0 internal, hidden, unknown:000010
|
||||||
|
16: unknown:1EB0 {1EB0} V0 internal, hidden, unknown:000010
|
||||||
|
17: HIRES WHEEL {2121} V1
|
||||||
|
Multiplier: 8
|
||||||
|
Has invert: Normal wheel motion
|
||||||
|
Has ratchet switch: Normal wheel mode
|
||||||
|
High resolution mode
|
||||||
|
HID notification
|
||||||
|
Scroll Wheel Direction (saved): False
|
||||||
|
Scroll Wheel Direction : False
|
||||||
|
Scroll Wheel Resolution (saved): True
|
||||||
|
Scroll Wheel Resolution : True
|
||||||
|
Scroll Wheel Diversion (saved): False
|
||||||
|
Scroll Wheel Diversion : False
|
||||||
|
18: ADJUSTABLE DPI {2201} V2
|
||||||
|
Sensitivity (DPI) (saved): 1600
|
||||||
|
Sensitivity (DPI) : 1600
|
||||||
|
19: REPORT RATE {8060} V0
|
||||||
|
Polling Rate (ms): 1
|
||||||
|
Polling Rate (ms) (saved): 1
|
||||||
|
Polling Rate (ms) : 1
|
||||||
|
20: ONBOARD PROFILES {8100} V0
|
||||||
|
Device Mode: On-Board
|
||||||
|
Onboard Profiles (saved): Enable
|
||||||
|
Onboard Profiles : Enable
|
||||||
|
21: MOUSE BUTTON SPY {8110} V0
|
||||||
|
Battery status unavailable.
|
|
@ -0,0 +1,29 @@
|
||||||
|
solaar version 1.1.8
|
||||||
|
|
||||||
|
USB and Bluetooth Devices
|
||||||
|
|
||||||
|
1: G535 Wireless Gaming Headset
|
||||||
|
Device path : /dev/hidraw2
|
||||||
|
USB id : 046d:0AC4
|
||||||
|
Codename : G535
|
||||||
|
Kind : ?
|
||||||
|
Protocol : HID++ 4.2
|
||||||
|
Serial number:
|
||||||
|
Model ID: 000000000AC4
|
||||||
|
Unit ID: FFFFFFFF
|
||||||
|
Firmware: U1 90.00.B0200
|
||||||
|
Supports 6 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000} V0
|
||||||
|
1: FEATURE SET {0001} V0
|
||||||
|
2: DEVICE FW VERSION {0003} V2
|
||||||
|
Firmware: Firmware U1 90.00.B0200 0AC4
|
||||||
|
Unit ID: FFFFFFFF Model ID: 000000000AC4 Transport IDs: {'btid': '0000', 'btleid': '0000'}
|
||||||
|
3: DEVICE NAME {0005} V0
|
||||||
|
Name: G535 Wireless Gaming Headset
|
||||||
|
Kind: None
|
||||||
|
4: SIDETONE {8300} V0
|
||||||
|
Sidetone (saved): 0
|
||||||
|
Sidetone : 0
|
||||||
|
5: ADC MEASUREMENT {1F20} V0
|
||||||
|
Battery: 60% 3920mV , discharging.
|
||||||
|
Battery: 60% 3920mV , discharging.
|
|
@ -0,0 +1,84 @@
|
||||||
|
solaar version 03cfa128
|
||||||
|
|
||||||
|
1: G604 Wireless Gaming Mouse
|
||||||
|
Device path : /dev/hidraw6
|
||||||
|
WPID : 4085
|
||||||
|
Codename : G604
|
||||||
|
Kind : mouse
|
||||||
|
Protocol : HID++ 4.2
|
||||||
|
Report Rate : 1ms
|
||||||
|
Serial number: XXXXXXXX
|
||||||
|
Model ID: B02440850000
|
||||||
|
Unit ID: XXXXXXXX
|
||||||
|
1: BL1 04.01.B0014
|
||||||
|
0: MPM 21.01.B0014
|
||||||
|
3:
|
||||||
|
The power switch is located on the base.
|
||||||
|
Supports 33 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000} V0
|
||||||
|
1: FEATURE SET {0001} V0
|
||||||
|
2: DEVICE FW VERSION {0003} V2
|
||||||
|
Firmware: 1 BL1 04.01.B0014 0000B01B3067
|
||||||
|
Firmware: 0 MPM 21.01.B0014 4085B01B3067
|
||||||
|
Firmware: 3
|
||||||
|
Unit ID: XXXXXXXX Model ID: B02440850000 Transport IDs: {'btleid': 'B024', 'wpid': '4085'}
|
||||||
|
3: DEVICE NAME {0005} V0
|
||||||
|
Name: G604 Wireless Gaming Mouse
|
||||||
|
Kind: mouse
|
||||||
|
4: WIRELESS DEVICE STATUS {1D4B} V0
|
||||||
|
5: CONFIG CHANGE {0020} V0
|
||||||
|
Configuration: 00000000000000000000000000000000
|
||||||
|
6: BATTERY STATUS {1000} V0
|
||||||
|
Battery: 30%, BatteryStatus.DISCHARGING, next level 15%.
|
||||||
|
7: COLOR LED EFFECTS {8070} V4
|
||||||
|
LED Control (saved): Device
|
||||||
|
LED Control : Device
|
||||||
|
LEDs Primary : None
|
||||||
|
8: LED CONTROL {1300} V0
|
||||||
|
9: ONBOARD PROFILES {8100} V0
|
||||||
|
Device Mode: On-Board
|
||||||
|
Onboard Profiles (saved): Profile 1
|
||||||
|
Onboard Profiles : Profile 1
|
||||||
|
10: MOUSE BUTTON SPY {8110} V0
|
||||||
|
11: REPORT RATE {8060} V0
|
||||||
|
Report Rate: 1ms
|
||||||
|
Report Rate (saved): 1ms
|
||||||
|
Report Rate : 1ms
|
||||||
|
12: ADJUSTABLE DPI {2201} V1
|
||||||
|
Sensitivity (DPI) (saved): 800
|
||||||
|
Sensitivity (DPI) : 800
|
||||||
|
13: DFUCONTROL SIGNED {00C2} V0
|
||||||
|
14: DEVICE RESET {1802} V0
|
||||||
|
15: unknown:1803 {0318} V0 internal, hidden
|
||||||
|
16: OOBSTATE {1805} V0
|
||||||
|
17: CONFIG DEVICE PROPS {1806} V4
|
||||||
|
18: unknown:1813 {1318} V0 internal, hidden
|
||||||
|
19: unknown:1830 {3018} V0 internal, hidden
|
||||||
|
20: unknown:1890 {9018} V0 internal, hidden
|
||||||
|
21: unknown:1891 {9118} V0 internal, hidden
|
||||||
|
22: unknown:1861 {6118} V0 internal, hidden
|
||||||
|
23: unknown:1801 {0118} V0 internal, hidden
|
||||||
|
24: unknown:18B1 {B118} V0 internal, hidden
|
||||||
|
25: unknown:1DF3 {F31D} V0 internal, hidden
|
||||||
|
26: unknown:1E00 {001E} V0 hidden
|
||||||
|
27: unknown:1EB0 {B01E} V0 internal, hidden
|
||||||
|
28: unknown:1E22 {221E} V0 internal, hidden
|
||||||
|
29: HIRES WHEEL {2121} V0
|
||||||
|
Multiplier: 8
|
||||||
|
Has invert: Normal wheel motion
|
||||||
|
Has ratchet switch: Normal wheel mode
|
||||||
|
High resolution mode
|
||||||
|
HID notification
|
||||||
|
Scroll Wheel Direction (saved): False
|
||||||
|
Scroll Wheel Direction : False
|
||||||
|
Scroll Wheel Resolution (saved): True
|
||||||
|
Scroll Wheel Resolution : True
|
||||||
|
Scroll Wheel Diversion (saved): False
|
||||||
|
Scroll Wheel Diversion : False
|
||||||
|
30: unknown:18C0 {C018} V0 internal, hidden
|
||||||
|
31: CHANGE HOST {1814} V1
|
||||||
|
Change Host : 1:host1
|
||||||
|
32: HOSTS INFO {1815} V1
|
||||||
|
Host 0 (unpaired): host1
|
||||||
|
Host 1 (paired):
|
||||||
|
Battery: 30%, BatteryStatus.DISCHARGING, next level 15%.
|
|
@ -0,0 +1,43 @@
|
||||||
|
1: G703 Wired/Wireless Gaming Mouse
|
||||||
|
Codename : G703
|
||||||
|
Kind : mouse
|
||||||
|
Wireless PID : 4070
|
||||||
|
Protocol : HID++ 4.2
|
||||||
|
Polling rate : 1 ms (1000Hz)
|
||||||
|
Serial number: AFE674F7
|
||||||
|
Firmware: MPM 14.02.B0007
|
||||||
|
Bootloader: BOT 64.02.B0007
|
||||||
|
Other:
|
||||||
|
The power switch is located on the base.
|
||||||
|
Supports 29 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000}
|
||||||
|
1: FEATURE SET {0001}
|
||||||
|
2: DEVICE FW VERSION {0003}
|
||||||
|
3: DEVICE NAME {0005}
|
||||||
|
4: BATTERY VOLTAGE {1001}
|
||||||
|
5: unknown:1863 {1863} internal, hidden
|
||||||
|
6: unknown:18A1 {18A1} internal, hidden
|
||||||
|
7: unknown:1E00 {1E00} hidden
|
||||||
|
8: unknown:1E20 {1E20}
|
||||||
|
9: unknown:1EB0 {1EB0} internal, hidden
|
||||||
|
10: ADJUSTABLE DPI {2201}
|
||||||
|
Sensitivity (DPI): 1600
|
||||||
|
11: ANGLE SNAPPING {2230}
|
||||||
|
12: SURFACE TUNING {2240}
|
||||||
|
13: REPORT RATE {8060}
|
||||||
|
14: ONBOARD PROFILES {8100}
|
||||||
|
15: MOUSE BUTTON SPY {8110}
|
||||||
|
16: unknown:1850 {1850} internal, hidden
|
||||||
|
17: DFUCONTROL SIGNED {00C2}
|
||||||
|
18: unknown:1801 {1801} internal, hidden
|
||||||
|
19: DEVICE RESET {1802} internal, hidden
|
||||||
|
20: unknown:1803 {1803} internal, hidden
|
||||||
|
21: unknown:1890 {1890} internal, hidden
|
||||||
|
22: unknown:1811 {1811} internal, hidden
|
||||||
|
23: LATENCY MONITORING {8111}
|
||||||
|
24: COLOR LED EFFECTS {8070}
|
||||||
|
25: unknown:1809 {1809}
|
||||||
|
26: unknown:1830 {1830} internal, hidden
|
||||||
|
27: OOBSTATE {1805} internal, hidden
|
||||||
|
28: CONFIG DEVICE PROPS {1806} internal, hidden
|
||||||
|
Battery: 3807mV, discharging, average
|
|
@ -0,0 +1,42 @@
|
||||||
|
solaar version 1.1.11
|
||||||
|
|
||||||
|
G733 Gaming Headset
|
||||||
|
Device path : /dev/hidraw3
|
||||||
|
USB id : 046d:0AFE
|
||||||
|
Codename : G733 Headset New
|
||||||
|
Kind : headset
|
||||||
|
Protocol : HID++ 4.2
|
||||||
|
Serial number:
|
||||||
|
Model ID: 0AFE00000000
|
||||||
|
Unit ID: FFFFFFFF
|
||||||
|
Firmware: U2 00.06
|
||||||
|
Supports 9 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000} V0
|
||||||
|
1: FEATURE SET {0001} V0
|
||||||
|
2: DEVICE FW VERSION {0003} V2
|
||||||
|
Firmware: Firmware U2 00.06 0AFE
|
||||||
|
Unit ID: FFFFFFFF Model ID: 0AFE00000000 Transport IDs: {'usbid': '0AFE'}
|
||||||
|
3: DEVICE NAME {0005} V0
|
||||||
|
Name: G733 Gaming Headset
|
||||||
|
Kind: None
|
||||||
|
4: COLOR LED EFFECTS {8070} V3
|
||||||
|
LED Control (saved): Device
|
||||||
|
LED Control : Device
|
||||||
|
LEDs Logo (saved): !LEDEffectSetting {ID: 0x0}
|
||||||
|
LEDs Logo : !LEDEffectSetting {ID: 0}
|
||||||
|
LEDs Primary (saved): !LEDEffectSetting {ID: 0x1, color: 0x0, ramp: 0x0}
|
||||||
|
LEDs Primary : !LEDEffectSetting {ID: 1, color: 0x10000, ramp: 0x0}
|
||||||
|
5: GKEY {8010} V0
|
||||||
|
Divert G and M Keys (saved): False
|
||||||
|
Divert G and M Keys : False
|
||||||
|
6: EQUALIZER {8310} V1
|
||||||
|
Equalizer (saved): {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}
|
||||||
|
Equalizer : {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}
|
||||||
|
7: SIDETONE {8300} V0
|
||||||
|
Sidetone (saved): 0
|
||||||
|
Sidetone : 0
|
||||||
|
8: ADC MEASUREMENT {1F20} V4
|
||||||
|
Battery: 60% 3867mV , discharging.
|
||||||
|
Power Management (saved): 0
|
||||||
|
Power Management : 0
|
||||||
|
Battery: 60% 3867mV , discharging.
|
|
@ -0,0 +1,63 @@
|
||||||
|
solaar version 1.1.9
|
||||||
|
|
||||||
|
1: G815 Mechanical Keyboard
|
||||||
|
Device path : /dev/hidraw2
|
||||||
|
USB id : 046d:C33F
|
||||||
|
Codename : G815
|
||||||
|
Kind : keyboard
|
||||||
|
Protocol : HID++ 4.2
|
||||||
|
Polling rate : 1 ms (1000Hz)
|
||||||
|
Serial number:
|
||||||
|
Model ID: C33F00000000
|
||||||
|
Unit ID: 35304716
|
||||||
|
Bootloader: BOT 84.00.B0003
|
||||||
|
Firmware: U1 31.02.B0018
|
||||||
|
Other:
|
||||||
|
Other:
|
||||||
|
Other:
|
||||||
|
Supports 24 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000} V0
|
||||||
|
1: FEATURE SET {0001} V0
|
||||||
|
2: DEVICE FW VERSION {0003} V2
|
||||||
|
Firmware: Bootloader BOT 84.00.B0003 AAEA
|
||||||
|
Firmware: Firmware U1 31.02.B0018 C33F
|
||||||
|
Firmware: Other
|
||||||
|
Firmware: Other
|
||||||
|
Firmware: Other
|
||||||
|
Unit ID: 35304716 Model ID: C33F00000000 Transport IDs: {'usbid': 'C33F'}
|
||||||
|
3: DEVICE NAME {0005} V0
|
||||||
|
Name: G815 RGB MECHANICAL GAMING KEYBOARD
|
||||||
|
Kind: keyboard
|
||||||
|
4: CONFIG CHANGE {0020} V0
|
||||||
|
5: DFUCONTROL SIGNED {00C2} V0
|
||||||
|
6: DFU {00D0} V0
|
||||||
|
7: REPORT HID USAGE {1BC0} V0
|
||||||
|
8: KEYBOARD DISABLE BY USAGE {4522} V0
|
||||||
|
9: KEYBOARD LAYOUT 2 {4540} V0
|
||||||
|
10: GKEY {8010} V0
|
||||||
|
Divert G Keys (saved): True
|
||||||
|
Divert G Keys : False
|
||||||
|
11: MKEYS {8020} V0
|
||||||
|
M-Key LEDs (saved): {M1:False, M2:False, M3:False}
|
||||||
|
M-Key LEDs : {M1:False, M2:False, M3:False}
|
||||||
|
12: MR {8030} V0
|
||||||
|
MR-Key LED (saved): False
|
||||||
|
MR-Key LED : False
|
||||||
|
13: BRIGHTNESS CONTROL {8040} V0
|
||||||
|
14: REPORT RATE {8060} V0
|
||||||
|
Polling Rate (ms): 1
|
||||||
|
Polling Rate (ms) (saved): 1
|
||||||
|
Polling Rate (ms) : 1
|
||||||
|
15: RGB EFFECTS {8071} V0
|
||||||
|
16: PER KEY LIGHTING V2 {8081} V2
|
||||||
|
17: ONBOARD PROFILES {8100} V0
|
||||||
|
Device Mode: Host
|
||||||
|
Onboard Profiles (saved): Disable
|
||||||
|
Onboard Profiles : Disable
|
||||||
|
18: unknown:1801 {1801} V0 internal, hidden
|
||||||
|
19: DEVICE RESET {1802} V0 internal, hidden
|
||||||
|
20: CONFIG DEVICE PROPS {1806} V5 internal, hidden
|
||||||
|
21: unknown:18B0 {18B0} V0 internal, hidden
|
||||||
|
22: unknown:1E00 {1E00} V0 hidden
|
||||||
|
23: unknown:1EB0 {1EB0} V0 internal, hidden
|
||||||
|
Battery status unavailable.
|
|
@ -0,0 +1,105 @@
|
||||||
|
solaar version 1.1.8rc3+git1940-4e7b6b3
|
||||||
|
|
||||||
|
1: G903 LIGHTSPEED Wireless Gaming Mouse w/ HERO
|
||||||
|
Device path : /dev/hidraw13
|
||||||
|
WPID : 4087
|
||||||
|
Codename : G903 LS
|
||||||
|
Kind : mouse
|
||||||
|
Protocol : HID++ 4.2
|
||||||
|
Polling rate : 1 ms (1000Hz)
|
||||||
|
Serial number: 3EF038B9
|
||||||
|
Model ID: 4087C0910000
|
||||||
|
Unit ID: 3EF038B9
|
||||||
|
Bootloader: BL1 06.01.B0013
|
||||||
|
Firmware: MPM 23.01.B0013
|
||||||
|
Other:
|
||||||
|
The power switch is located on the base.
|
||||||
|
Supports 31 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000} V0
|
||||||
|
1: FEATURE SET {0001} V0
|
||||||
|
2: DEVICE FW VERSION {0003} V2
|
||||||
|
Firmware: Bootloader BL1 06.01.B0013 0000047072FE
|
||||||
|
Firmware: Firmware MPM 23.01.B0013 4087047072FE
|
||||||
|
Firmware: Other
|
||||||
|
Unit ID: 3EF038B9 Model ID: 4087C0910000 Transport IDs: {'wpid': '4087', 'usbid': 'C091'}
|
||||||
|
3: DEVICE NAME {0005} V0
|
||||||
|
Name: G903 LIGHTSPEED Wireless Gaming Mouse w/ HERO
|
||||||
|
Kind: mouse
|
||||||
|
4: WIRELESS DEVICE STATUS {1D4B} V0
|
||||||
|
5: CONFIG CHANGE {0020} V0
|
||||||
|
6: BATTERY VOLTAGE {1001} V2
|
||||||
|
Battery: 90% 4079mV , discharging.
|
||||||
|
7: RGB EFFECTS {8071} V0
|
||||||
|
8: ONBOARD PROFILES {8100} V0
|
||||||
|
Device Mode: On-Board
|
||||||
|
Onboard Profiles (saved): Enable
|
||||||
|
Onboard Profiles : Enable
|
||||||
|
9: MOUSE BUTTON SPY {8110} V0
|
||||||
|
10: REPORT RATE {8060} V0
|
||||||
|
Polling Rate (ms): 1
|
||||||
|
Polling Rate (ms) (saved): 1
|
||||||
|
Polling Rate (ms) : 1
|
||||||
|
11: ADJUSTABLE DPI {2201} V1
|
||||||
|
Sensitivity (DPI) (saved): 6400
|
||||||
|
Sensitivity (DPI) : 6400
|
||||||
|
12: DFUCONTROL SIGNED {00C2} V0
|
||||||
|
13: DEVICE RESET {1802} V0 internal, hidden
|
||||||
|
14: unknown:1803 {1803} V0 internal, hidden
|
||||||
|
15: OOBSTATE {1805} V0 internal, hidden
|
||||||
|
16: CONFIG DEVICE PROPS {1806} V4 internal, hidden
|
||||||
|
17: unknown:1811 {1811} V0 internal, hidden
|
||||||
|
18: unknown:1830 {1830} V0 internal, hidden
|
||||||
|
19: unknown:1890 {1890} V4 internal, hidden
|
||||||
|
20: unknown:1891 {1891} V4 internal, hidden
|
||||||
|
21: unknown:18A1 {18A1} V0 internal, hidden
|
||||||
|
22: unknown:1801 {1801} V0 internal, hidden
|
||||||
|
23: unknown:18B1 {18B1} V0 internal, hidden
|
||||||
|
24: unknown:1DF3 {1DF3} V0 internal, hidden
|
||||||
|
25: unknown:1E00 {1E00} V0 hidden
|
||||||
|
26: unknown:1EB0 {1EB0} V0 internal, hidden
|
||||||
|
27: unknown:1863 {1863} V0 internal, hidden
|
||||||
|
28: unknown:1E22 {1E22} V0 internal, hidden
|
||||||
|
29: HIRES WHEEL {2121} V0
|
||||||
|
Multiplier: 8
|
||||||
|
Has invert: Normal wheel motion
|
||||||
|
Has ratchet switch: Normal wheel mode
|
||||||
|
Low resolution mode
|
||||||
|
HID notification
|
||||||
|
Scroll Wheel Direction (saved): False
|
||||||
|
Scroll Wheel Direction : False
|
||||||
|
Scroll Wheel Resolution (saved): False
|
||||||
|
Scroll Wheel Resolution : False
|
||||||
|
Scroll Wheel Diversion (saved): False
|
||||||
|
Scroll Wheel Diversion : False
|
||||||
|
30: unknown:18C0 {18C0} V0 internal, hidden
|
||||||
|
Battery: 90% 4079mV , discharging.
|
||||||
|
|
||||||
|
7: Candy companion chip
|
||||||
|
Device path : /dev/hidraw14
|
||||||
|
Codename : Candy
|
||||||
|
Kind : touchpad
|
||||||
|
Protocol : HID++ 4.2
|
||||||
|
Serial number: 4E4E9946
|
||||||
|
Model ID: 405F00000000
|
||||||
|
Unit ID: 34304713
|
||||||
|
Firmware: CC 07.00.B0010
|
||||||
|
Bootloader: BOT 32.00.B0010
|
||||||
|
Supports 12 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000} V0
|
||||||
|
1: FEATURE SET {0001} V0
|
||||||
|
2: DEVICE FW VERSION {0003} V2
|
||||||
|
Firmware: Firmware CC 07.00.B0010 405F
|
||||||
|
Firmware: Bootloader BOT 32.00.B0010 405F
|
||||||
|
Unit ID: 34304713 Model ID: 405F00000000 Transport IDs: {'wpid': '405F'}
|
||||||
|
3: DEVICE NAME {0005} V0
|
||||||
|
Name: Candy companion chip
|
||||||
|
Kind: touchpad
|
||||||
|
4: unknown:18A1 {18A1} V0 internal, hidden
|
||||||
|
5: unknown:1E00 {1E00} V0 hidden
|
||||||
|
6: unknown:1EB0 {1EB0} V0 internal, hidden
|
||||||
|
7: DFUCONTROL SIGNED {00C2} V0
|
||||||
|
8: unknown:1801 {1801} V0 internal, hidden
|
||||||
|
9: DEVICE RESET {1802} V0 internal, hidden
|
||||||
|
10: unknown:1803 {1803} V0 internal, hidden
|
||||||
|
11: COLOR LED EFFECTS {8070} V4
|
||||||
|
Battery status unavailable.
|
|
@ -0,0 +1,103 @@
|
||||||
|
solaar version 1.1.12rc1
|
||||||
|
|
||||||
|
1: G915 WIRELESS RGB MECHANICAL GAMING KEYBOARD
|
||||||
|
Device path : None
|
||||||
|
WPID : 407C
|
||||||
|
Codename : G915 KEYBOARD
|
||||||
|
Kind : keyboard
|
||||||
|
Protocol : HID++ 4.2
|
||||||
|
Report Rate : 1ms
|
||||||
|
Serial number: A502B0E1
|
||||||
|
Model ID: B354407CC33E
|
||||||
|
Unit ID: A502B0E1
|
||||||
|
1: BOT 77.02.B0039
|
||||||
|
3:
|
||||||
|
0: MPK 09.03.B0041
|
||||||
|
3:
|
||||||
|
3:
|
||||||
|
The power switch is located on the top left corner.
|
||||||
|
Supports 38 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000} V0
|
||||||
|
1: FEATURE SET {0001} V0
|
||||||
|
2: DEVICE FW VERSION {0003} V4
|
||||||
|
Firmware: Bootloader BOT 77.02.B0039 0000EC44D534
|
||||||
|
Firmware: Other
|
||||||
|
Firmware: Firmware MPK 09.03.B0041 407C3791543D
|
||||||
|
Firmware: Other
|
||||||
|
Firmware: Other
|
||||||
|
Unit ID: A502B0E1 Model ID: B354407CC33E Transport IDs: {'btleid': 'B354', 'wpid': '407C', 'usbid': 'C33E'}
|
||||||
|
3: DEVICE NAME {0005} V0
|
||||||
|
Name: G915 WIRELESS RGB MECHANICAL GAMING KEYBOARD
|
||||||
|
Kind: keyboard
|
||||||
|
4: WIRELESS DEVICE STATUS {1D4B} V0
|
||||||
|
5: CONFIG CHANGE {0020} V0
|
||||||
|
Configuration: 11000000000000000000000000000000
|
||||||
|
6: DEVICE FRIENDLY NAME {0007} V0
|
||||||
|
Friendly Name: G915 KEYBOARD<52>
|
||||||
|
7: BATTERY VOLTAGE {1001} V3
|
||||||
|
Battery: 80% 3998mV , discharging.
|
||||||
|
8: CHANGE HOST {1814} V1
|
||||||
|
Change Host : 1:Yon
|
||||||
|
9: HOSTS INFO {1815} V1
|
||||||
|
Host 0 (paired): Yon
|
||||||
|
Host 1 (paired):
|
||||||
|
10: RGB EFFECTS {8071} V0
|
||||||
|
RGB Control (saved): Device
|
||||||
|
RGB Control : Device
|
||||||
|
LEDs Logo (saved): !LEDEffectSetting {ID: 1, color: 11546720, intensity: 0, period: 100, ramp: 0, speed: 0}
|
||||||
|
LEDs Logo : HID++ error {'number': 1, 'request': 2799, 'error': 7, 'params': b'\x00'}
|
||||||
|
LEDs Primary (saved): !LEDEffectSetting {ID: 1, color: 16776960, intensity: 0, period: 100, ramp: 0, speed: 0}
|
||||||
|
LEDs Primary : HID++ error {'number': 1, 'request': 2796, 'error': 7, 'params': b'\x01'}
|
||||||
|
11: PER KEY LIGHTING V2 {8081} V2
|
||||||
|
Per-key Lighting (saved): {A:white, B:red, C:white, D:white, E:white, F:white, G:white, H:white, I:white, J:white, K:white, L:white, M:white, N:white, O:white, P:white, Q:white, R:white, S:white, T:white, U:white, V:white, W:white, X:white, Y:white, Z:white, 1:white, 2:white, 3:white, 4:white, 5:white, 6:white, 7:white, 8:white, 9:white, 0:white, ENTER:white, ESC:white, BACKSPACE:white, TAB:white, SPACE:white, -:white, =:white, [:white, \:white, KEY 46:white, ~:white, ;:white, ':white, `:white, ,:white, .:white, /:white, CAPS LOCK:white, F1:white, F2:white, F3:white, F4:white, F5:white, F6:white, F7:white, F8:white, F9:white, F10:white, F11:white, F12:white, PRINT:white, SCROLL LOCK:white, PASTE:white, INSERT:white, HOME:white, PAGE UP:white, DELETE:white, END:white, PAGE DOWN:white, RIGHT:white, LEFT:white, DOWN:white, UP:white, NUMLOCK:white, KEYPAD /:white, KEYPAD *:white, KEYPAD -:white, KEYPAD +:white, KEYPAD ENTER:white, KEYPAD 1:white, KEYPAD 2:white, KEYPAD 3:white, KEYPAD 4:white, KEYPAD 5:white, KEYPAD 6:white, KEYPAD 7:white, KEYPAD 8:white, KEYPAD 9:white, KEYPAD 0:white, KEYPAD .:white, KEY 97:white, COMPOSE:white, POWER:white, KEY 100:white, KEY 101:white, KEY 102:white, KEY 103:white, LEFT CTRL:white, LEFT SHIFT:white, LEFT ALT:white, LEFT WINDOWS:white, RIGHT CTRL:white, RIGHT SHIFT:white, RIGHT ALTGR:white, RIGHT WINDOWS:white, BRIGHTNESS:white, PAUSE:white, MUTE:white, NEXT:white, PREVIOUS:white, G1:white, G2:white, G3:white, G4:white, G5:white, LOGO:white}
|
||||||
|
Per-key Lighting : {A:white, B:white, C:white, D:white, E:white, F:white, G:white, H:white, I:white, J:white, K:white, L:white, M:white, N:white, O:white, P:white, Q:white, R:white, S:white, T:white, U:white, V:white, W:white, X:white, Y:white, Z:white, 1:white, 2:white, 3:white, 4:white, 5:white, 6:white, 7:white, 8:white, 9:white, 0:white, ENTER:white, ESC:white, BACKSPACE:white, TAB:white, SPACE:white, -:white, =:white, [:white, \:white, KEY 46:white, ~:white, ;:white, ':white, `:white, ,:white, .:white, /:white, CAPS LOCK:white, F1:white, F2:white, F3:white, F4:white, F5:white, F6:white, F7:white, F8:white, F9:white, F10:white, F11:white, F12:white, PRINT:white, SCROLL LOCK:white, PASTE:white, INSERT:white, HOME:white, PAGE UP:white, DELETE:white, END:white, PAGE DOWN:white, RIGHT:white, LEFT:white, DOWN:white, UP:white, NUMLOCK:white, KEYPAD /:white, KEYPAD *:white, KEYPAD -:white, KEYPAD +:white, KEYPAD ENTER:white, KEYPAD 1:white, KEYPAD 2:white, KEYPAD 3:white, KEYPAD 4:white, KEYPAD 5:white, KEYPAD 6:white, KEYPAD 7:white, KEYPAD 8:white, KEYPAD 9:white, KEYPAD 0:white, KEYPAD .:white, KEY 97:white, COMPOSE:white, POWER:white, KEY 100:white, KEY 101:white, KEY 102:white, KEY 103:white, LEFT CTRL:white, LEFT SHIFT:white, LEFT ALT:white, LEFT WINDOWS:white, RIGHT CTRL:white, RIGHT SHIFT:white, RIGHT ALTGR:white, RIGHT WINDOWS:white, BRIGHTNESS:white, PAUSE:white, MUTE:white, NEXT:white, PREVIOUS:white, G1:white, G2:white, G3:white, G4:white, G5:white, LOGO:white}
|
||||||
|
12: REPROG CONTROLS V4 {1B04} V4
|
||||||
|
Key/Button Diversion (saved): {Host Switch Channel 1:Regular, Host Switch Channel 2:Regular}
|
||||||
|
Key/Button Diversion : {Host Switch Channel 1:Regular, Host Switch Channel 2:Regular}
|
||||||
|
13: REPORT HID USAGE {1BC0} V1
|
||||||
|
14: ENCRYPTION {4100} V0
|
||||||
|
15: KEYBOARD DISABLE BY USAGE {4522} V0
|
||||||
|
16: KEYBOARD LAYOUT 2 {4540} V0
|
||||||
|
17: GKEY {8010} V0
|
||||||
|
Divert G and M Keys (saved): False
|
||||||
|
Divert G and M Keys : False
|
||||||
|
18: MKEYS {8020} V0
|
||||||
|
M-Key LEDs (saved): {M1:False, M2:False, M3:False}
|
||||||
|
M-Key LEDs : {M1:False, M2:False, M3:False}
|
||||||
|
19: MR {8030} V0
|
||||||
|
MR-Key LED (saved): False
|
||||||
|
MR-Key LED : False
|
||||||
|
20: BRIGHTNESS CONTROL {8040} V0
|
||||||
|
Brightness Control (saved): 12
|
||||||
|
Brightness Control : 12
|
||||||
|
21: ONBOARD PROFILES {8100} V0
|
||||||
|
Device Mode: Host
|
||||||
|
Onboard Profiles (saved): Disabled
|
||||||
|
Onboard Profiles : Disabled
|
||||||
|
22: REPORT RATE {8060} V0
|
||||||
|
Report Rate: 1ms
|
||||||
|
Report Rate (saved): 1ms
|
||||||
|
Report Rate : 1ms
|
||||||
|
23: DFUCONTROL SIGNED {00C2} V0
|
||||||
|
24: DFU {00D0} V3
|
||||||
|
25: DEVICE RESET {1802} V0 internal, hidden
|
||||||
|
26: unknown:1803 {1803} V0 internal, hidden
|
||||||
|
27: CONFIG DEVICE PROPS {1806} V8 internal, hidden
|
||||||
|
28: unknown:1813 {1813} V0 internal, hidden
|
||||||
|
29: OOBSTATE {1805} V0 internal, hidden
|
||||||
|
30: unknown:1830 {1830} V0 internal, hidden
|
||||||
|
31: unknown:1890 {1890} V5 internal, hidden
|
||||||
|
32: unknown:1891 {1891} V5 internal, hidden
|
||||||
|
33: unknown:18A1 {18A1} V0 internal, hidden
|
||||||
|
34: unknown:1E00 {1E00} V0 hidden
|
||||||
|
35: unknown:1EB0 {1EB0} V0 internal, hidden
|
||||||
|
36: unknown:1861 {1861} V0 internal, hidden
|
||||||
|
37: unknown:18B0 {18B0} V0 internal, hidden
|
||||||
|
Has 2 reprogrammable keys:
|
||||||
|
0: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1
|
||||||
|
divertable, persistently divertable, pos:1, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
1: Host Switch Channel 2 , default: HostSwitch Channel 2 => HostSwitch Channel 2
|
||||||
|
divertable, persistently divertable, pos:2, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
Battery: 80% 3998mV , discharging.
|
|
@ -0,0 +1,91 @@
|
||||||
|
solaar version 1.1.10
|
||||||
|
|
||||||
|
USB and Bluetooth Devices
|
||||||
|
|
||||||
|
1: G915 WIRELESS RGB MECHANICAL GAMING KEYBOARD
|
||||||
|
Device path : /dev/hidraw13
|
||||||
|
USB id : 046d:C33E
|
||||||
|
Codename : G915
|
||||||
|
Kind : ?
|
||||||
|
Protocol : HID++ 4.2
|
||||||
|
Polling rate : 1 ms (1000Hz)
|
||||||
|
Serial number:
|
||||||
|
Model ID: B354407CC33E
|
||||||
|
Unit ID: 8816D0DF
|
||||||
|
Bootloader: BOT 77.03.B0041
|
||||||
|
Other:
|
||||||
|
Firmware: MPK 09.04.B0042
|
||||||
|
Other:
|
||||||
|
Other:
|
||||||
|
Supports 37 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000} V0
|
||||||
|
1: FEATURE SET {0001} V0
|
||||||
|
2: DEVICE FW VERSION {0003} V4
|
||||||
|
Firmware: Bootloader BOT 77.03.B0041 00003791543D
|
||||||
|
Firmware: Other
|
||||||
|
Firmware: Firmware MPK 09.04.B0042 C33E8A23A76B
|
||||||
|
Firmware: Other
|
||||||
|
Firmware: Other
|
||||||
|
Unit ID: 8816D0DF Model ID: B354407CC33E Transport IDs: {'btleid': 'B354', 'wpid': '407C', 'usbid': 'C33E'}
|
||||||
|
3: DEVICE NAME {0005} V0
|
||||||
|
Name: G915 WIRELESS RGB MECHANICAL GAMING KEYBOARD
|
||||||
|
Kind: keyboard
|
||||||
|
4: WIRELESS DEVICE STATUS {1D4B} V0
|
||||||
|
5: CONFIG CHANGE {0020} V0
|
||||||
|
6: BATTERY VOLTAGE {1001} V3
|
||||||
|
Battery: 70% 3965mV , recharging.
|
||||||
|
7: CHANGE HOST {1814} V1
|
||||||
|
Changer d'hôte : 1:stagcrown
|
||||||
|
8: HOSTS INFO {1815} V1
|
||||||
|
Host 0 (paired): stagcrown
|
||||||
|
Host 1 (paired):
|
||||||
|
9: RGB EFFECTS {8071} V0
|
||||||
|
10: PER KEY LIGHTING V2 {8081} V2
|
||||||
|
11: REPROG CONTROLS V4 {1B04} V4
|
||||||
|
Interception des boutons/touches (saved): {Host Switch Channel 1:Interception, Host Switch Channel 2:Interception}
|
||||||
|
Interception des boutons/touches : {Host Switch Channel 1:Interception, Host Switch Channel 2:Interception}
|
||||||
|
12: REPORT HID USAGE {1BC0} V1
|
||||||
|
13: ENCRYPTION {4100} V0
|
||||||
|
14: KEYBOARD DISABLE BY USAGE {4522} V0
|
||||||
|
15: KEYBOARD LAYOUT 2 {4540} V0
|
||||||
|
16: GKEY {8010} V0
|
||||||
|
Définir les touches G (saved): True
|
||||||
|
Définir les touches G : False
|
||||||
|
17: MKEYS {8020} V0
|
||||||
|
LEDs de touche M (saved): {M1:False, M2:False, M3:False}
|
||||||
|
LEDs de touche M : {M1:False, M2:False, M3:False}
|
||||||
|
18: MR {8030} V0
|
||||||
|
LED de touche MR (saved): False
|
||||||
|
LED de touche MR : False
|
||||||
|
19: BRIGHTNESS CONTROL {8040} V0
|
||||||
|
20: ONBOARD PROFILES {8100} V0
|
||||||
|
Device Mode: On-Board
|
||||||
|
Profils embarqués (saved): Enable
|
||||||
|
Profils embarqués : Enable
|
||||||
|
21: REPORT RATE {8060} V0
|
||||||
|
Polling Rate (ms): 1
|
||||||
|
Taux de scrutation (ms) (saved): 1
|
||||||
|
Taux de scrutation (ms) : 1
|
||||||
|
22: DFUCONTROL SIGNED {00C2} V0
|
||||||
|
23: DFU {00D0} V3
|
||||||
|
24: DEVICE RESET {1802} V0 internal, hidden
|
||||||
|
25: unknown:1803 {1803} V0 internal, hidden
|
||||||
|
26: CONFIG DEVICE PROPS {1806} V8 internal, hidden
|
||||||
|
27: unknown:1813 {1813} V0 internal, hidden
|
||||||
|
28: OOBSTATE {1805} V0 internal, hidden
|
||||||
|
29: unknown:1830 {1830} V0 internal, hidden
|
||||||
|
30: unknown:1890 {1890} V9 internal, hidden
|
||||||
|
31: unknown:1891 {1891} V9 internal, hidden
|
||||||
|
32: unknown:18A1 {18A1} V0 internal, hidden
|
||||||
|
33: unknown:1E00 {1E00} V0 hidden
|
||||||
|
34: unknown:1EB0 {1EB0} V0 internal, hidden
|
||||||
|
35: unknown:1861 {1861} V0 internal, hidden
|
||||||
|
36: unknown:18B0 {18B0} V0 internal, hidden
|
||||||
|
Has 2 reprogrammable keys:
|
||||||
|
0: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1
|
||||||
|
divertable, persistently divertable, pos:1, group:0, group mask:empty
|
||||||
|
reporting: diverted
|
||||||
|
1: Host Switch Channel 2 , default: HostSwitch Channel 2 => HostSwitch Channel 2
|
||||||
|
divertable, persistently divertable, pos:2, group:0, group mask:empty
|
||||||
|
reporting: diverted
|
||||||
|
Battery: 70% 3965mV , recharging.
|
|
@ -1,5 +1,7 @@
|
||||||
1: G935 Gaming Headset
|
Solaar version 1.1.7
|
||||||
Device path : /dev/hidraw3
|
|
||||||
|
1: G935 Gaming Headset
|
||||||
|
Device path : /dev/hidraw2
|
||||||
USB id : 046d:0A87
|
USB id : 046d:0A87
|
||||||
Codename : G935 Headset
|
Codename : G935 Headset
|
||||||
Kind : headset
|
Kind : headset
|
||||||
|
@ -8,20 +10,24 @@
|
||||||
Model ID: 000000000A87
|
Model ID: 000000000A87
|
||||||
Unit ID: FFFFFFFF
|
Unit ID: FFFFFFFF
|
||||||
Firmware: U1 29.00.B0012
|
Firmware: U1 29.00.B0012
|
||||||
Supports 8 HID++ 2.0 features:
|
Supports 9 HID++ 2.0 features:
|
||||||
0: ROOT {0000}
|
0: ROOT {0000} V0
|
||||||
1: FEATURE SET {0001}
|
1: FEATURE SET {0001} V0
|
||||||
2: DEVICE FW VERSION {0003}
|
2: DEVICE FW VERSION {0003} V2
|
||||||
Firmware: Firmware U1 29.00.B0012 0A87
|
Firmware: Firmware U1 29.00.B0012 0A87
|
||||||
Unit ID: FFFFFFFF Model ID: 000000000A87 Transport IDs: {'btid': '0000', 'btleid': '0000'}
|
Unit ID: FFFFFFFF Model ID: 000000000A87
|
||||||
3: DEVICE NAME {0005}
|
Transport IDs: {'btid': '0000', 'btleid': '0000'}
|
||||||
|
3: DEVICE NAME {0005} V0
|
||||||
Name: G935 Gaming Headset
|
Name: G935 Gaming Headset
|
||||||
Kind: None
|
Kind: None
|
||||||
4: COLOR LED EFFECTS {8070}
|
4: COLOR LED EFFECTS {8070} V0
|
||||||
5: GKEY {8010}
|
5: GKEY {8010} V0
|
||||||
Divert G Keys (saved): False
|
Divert G Keys (saved): False
|
||||||
Divert G Keys : False
|
Divert G Keys : False
|
||||||
6: EQUALIZER {8310}
|
6: EQUALIZER {8310} V0
|
||||||
7: SIDETONE {8300}
|
7: SIDETONE {8300} V0
|
||||||
|
Sidetone (saved): 0
|
||||||
Sidetone : 0
|
Sidetone : 0
|
||||||
|
8: ADC MEASUREMENT {1F20} V0
|
||||||
|
Battery status unavailable.
|
||||||
Battery status unavailable.
|
Battery status unavailable.
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
solaar version 1.1.8-29-g0ae14c7
|
||||||
|
|
||||||
|
1: Illuminated Keyboard
|
||||||
|
Device path : /dev/hidraw1
|
||||||
|
USB id : 046d:C318
|
||||||
|
Codename : Illuminated
|
||||||
|
Kind : keyboard
|
||||||
|
Protocol : HID++ 1.0
|
||||||
|
Serial number:
|
||||||
|
Firmware: 55.01.B0025
|
||||||
|
Notifications: (none).
|
||||||
|
Features: (none)
|
||||||
|
Battery status unavailable.
|
|
@ -0,0 +1,133 @@
|
||||||
|
Solaar version 1.1.1
|
||||||
|
|
||||||
|
2: K850 Performance Wireless Keyboard
|
||||||
|
Device path : /dev/hidraw2
|
||||||
|
WPID : 4062
|
||||||
|
Codename : K850
|
||||||
|
Kind : keyboard
|
||||||
|
Protocol : HID++ 4.5
|
||||||
|
Polling rate : 20 ms (50Hz)
|
||||||
|
Serial number: E2A15F0B
|
||||||
|
Model ID: B34D40620000
|
||||||
|
Unit ID: 178D05AD
|
||||||
|
Bootloader: BOT 43.01.B0004
|
||||||
|
Firmware: MPK 04.03.B0015
|
||||||
|
Other:
|
||||||
|
The power switch is located on the edge of top right corner.
|
||||||
|
Supports 31 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000}
|
||||||
|
1: FEATURE SET {0001}
|
||||||
|
2: DEVICE FW VERSION {0003}
|
||||||
|
Firmware: Bootloader BOT 43.01.B0004 00002FD362F001
|
||||||
|
Firmware: Firmware MPK 04.03.B0015 40622FD362F001
|
||||||
|
Firmware: Other
|
||||||
|
Unit ID: 178D05AD Model ID: B34D40620000 Transport IDs: {'btleid': 'B34D', 'wpid': '4062'}
|
||||||
|
3: DEVICE NAME {0005}
|
||||||
|
Name: K850 Performance Wireless Keyboard
|
||||||
|
Kind: keyboard
|
||||||
|
4: WIRELESS DEVICE STATUS {1D4B}
|
||||||
|
5: RESET {0020}
|
||||||
|
6: DEVICE FRIENDLY NAME {0007}
|
||||||
|
Friendly Name: Keyboard K850
|
||||||
|
7: BATTERY STATUS {1000}
|
||||||
|
Battery: 90%, discharging, next level 50%.
|
||||||
|
8: CHANGE HOST {1814}
|
||||||
|
Change Host : 2:desktop
|
||||||
|
9: HOSTS INFO {1815}
|
||||||
|
Host 0 (paired): rpi
|
||||||
|
Host 1 (paired): desktop
|
||||||
|
Host 2 (paired): laptop
|
||||||
|
10: REPROG CONTROLS V4 {1B04}
|
||||||
|
Key/Button Diversion (saved): {'1': 0, '10': 0, '189': 0, '191': 0, '192': 0, '193': 0, '194': 0, '2': 0, '209': 0, '210': 0, '211': 0, '212': 0, '213': 0, '214': 0, '221': 0, '3': 0, '4': 0, '5': 0, '6': 0}
|
||||||
|
Key/Button Diversion : {'209': 0, '210': 0, '211': 0, '213': 0, '214': 0, '189': 0, '212': 0, '6': 0, '4': 0, '5': 0, '3': 0, '2': 0, '1': 0, '194': 0, '221': 0, '191': 0, '10': 0, '193': 0, '192': 0}
|
||||||
|
11: PERSISTENT REMAPPABLE ACTION {1C00}
|
||||||
|
12: K375S FN INVERSION {40A3}
|
||||||
|
Swap Fx function (saved): False
|
||||||
|
Swap Fx function : False
|
||||||
|
13: ENCRYPTION {4100}
|
||||||
|
14: LOCK KEY STATE {4220}
|
||||||
|
15: KEYBOARD DISABLE KEYS {4521}
|
||||||
|
Disable keys (saved): {'1': False, '16': False, '2': False, '4': False, '8': False}
|
||||||
|
Disable keys : {'1': False, '2': False, '4': False, '8': False, '16': False}
|
||||||
|
16: MULTIPLATFORM {4531}
|
||||||
|
Set OS (saved): 0
|
||||||
|
Set OS : Windows
|
||||||
|
17: DFUCONTROL SIGNED {00C2}
|
||||||
|
18: unknown:1803 {1803} internal, hidden
|
||||||
|
19: CONFIG DEVICE PROPS {1806} internal, hidden
|
||||||
|
20: OOBSTATE {1805} internal, hidden
|
||||||
|
21: unknown:1813 {1813} internal, hidden
|
||||||
|
22: unknown:1830 {1830} internal, hidden
|
||||||
|
23: unknown:1861 {1861} internal, hidden
|
||||||
|
24: unknown:1890 {1890} internal, hidden
|
||||||
|
25: unknown:1891 {1891} internal, hidden
|
||||||
|
26: unknown:18A1 {18A1} internal, hidden
|
||||||
|
27: unknown:1DF3 {1DF3} internal, hidden
|
||||||
|
28: unknown:1E00 {1E00} hidden
|
||||||
|
29: unknown:1EB0 {1EB0} internal, hidden
|
||||||
|
30: unknown:18B0 {18B0} internal, hidden
|
||||||
|
Has 21 reprogrammable keys:
|
||||||
|
0: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1
|
||||||
|
nonstandard, divertable, persistently divertable, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
1: Host Switch Channel 2 , default: HostSwitch Channel 2 => HostSwitch Channel 2
|
||||||
|
nonstandard, divertable, persistently divertable, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
2: Host Switch Channel 3 , default: HostSwitch Channel 3 => HostSwitch Channel 3
|
||||||
|
nonstandard, divertable, persistently divertable, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
3: MultiPlatform Home/Mission Control, default: Multiplatform Home/Mission Control => Multiplatform Home/Mission Control
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:1, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
4: MultiPlatform Menu/Show/Hide Virtual Keyboard/Launchpad, default: Multiplatform Menu/Launchpad => Multiplatform Menu/Launchpad
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:2, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
5: Multiplatform Back , default: MultiPlatform Back => MultiPlatform Back
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:3, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
6: MultiPlatform Search , default: Multiplatform Search => Multiplatform Search
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:4, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
7: Previous , default: Previous => Previous
|
||||||
|
is FN, FN sensitive, divertable, persistently divertable, pos:5, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
8: Play/Pause , default: Play/Pause => Play/Pause
|
||||||
|
is FN, FN sensitive, divertable, persistently divertable, pos:6, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
9: Next , default: Next => Next
|
||||||
|
is FN, FN sensitive, divertable, persistently divertable, pos:7, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
10: Mute , default: Mute => Mute
|
||||||
|
is FN, FN sensitive, divertable, persistently divertable, pos:8, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
11: Volume Down , default: Volume Down => Volume Down
|
||||||
|
is FN, FN sensitive, divertable, persistently divertable, pos:9, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
12: Volume Up , default: Volume Up => Volume Up
|
||||||
|
is FN, FN sensitive, divertable, persistently divertable, pos:10, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
13: Multiplatform Lock , default: WindowsLock => WindowsLock
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:11, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
14: Multi Platform Language Switch, default: Multiplatform Language Switch => Multiplatform Language Switch
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:12, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
15: Screen Capture/Print Screen, default: Screen Capture => Screen Capture
|
||||||
|
is FN, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
16: Calculator , default: Calculator => Calculator
|
||||||
|
is FN, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
17: Fn Up , default: unknown:0070 => unknown:0070
|
||||||
|
is FN, divertable, persistently divertable, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
18: Fn Down , default: unknown:006F => unknown:006F
|
||||||
|
is FN, divertable, persistently divertable, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
19: F Lock , default: Do Nothing One => Do Nothing One
|
||||||
|
is FN, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
20: unknown:0034 , default: Do Nothing One => Do Nothing One
|
||||||
|
nonstandard, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
Battery: 90%, discharging, next level 50%.
|
|
@ -0,0 +1,180 @@
|
||||||
|
Solaar version 1.1.7
|
||||||
|
|
||||||
|
1: Keyboard K600 TV
|
||||||
|
Device path : /dev/hidraw3
|
||||||
|
WPID : 4078
|
||||||
|
Codename : K600 TV
|
||||||
|
Kind : keyboard
|
||||||
|
Protocol : HID++ 4.5
|
||||||
|
Polling rate : 8 ms (125Hz)
|
||||||
|
Serial number: C4E873FC
|
||||||
|
Model ID: B35340780000
|
||||||
|
Unit ID: CA575869
|
||||||
|
Bootloader: BOT 73.00.B0015
|
||||||
|
Firmware: MPK 08.00.B0015
|
||||||
|
Other:
|
||||||
|
Other:
|
||||||
|
Supports 36 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000} V0
|
||||||
|
1: FEATURE SET {0001} V0
|
||||||
|
2: DEVICE FW VERSION {0003} V2
|
||||||
|
Firmware: Bootloader BOT 73.00.B0015 00001E30DA07
|
||||||
|
Firmware: Firmware MPK 08.00.B0015 40781E30DA07
|
||||||
|
Firmware: Other
|
||||||
|
Firmware: Other
|
||||||
|
Unit ID: CA575869 Model ID: B35340780000 Transport IDs: {'btleid': 'B353', 'wpid': '4078'}
|
||||||
|
3: DEVICE NAME {0005} V0
|
||||||
|
Name: Keyboard K600 TV
|
||||||
|
Kind: keyboard
|
||||||
|
4: WIRELESS DEVICE STATUS {1D4B} V0
|
||||||
|
5: RESET {0020} V0
|
||||||
|
6: DEVICE FRIENDLY NAME {0007} V0
|
||||||
|
Friendly Name: Keyboard K600 T
|
||||||
|
7: BATTERY STATUS {1000} V1
|
||||||
|
Battery: 90%, discharging, next level 50%.
|
||||||
|
8: REPROG CONTROLS V4 {1B04} V4
|
||||||
|
Desvio de Tecla/Botón (saved): {Fn Left Click:Normal, Multiplatform App Switch:Normal, Multiplatform Back:Normal, Multiplatform Insert:Normal, Brightness Down:Normal, Brightness Up:Normal, Host Switch Channel 1:Normal, Host Switch Channel 2:Normal, Host Switch Channel 3:Normal, MultiPlatform Search:Normal, MultiPlatform Home/Mission Control:Normal, MultiPlatform Menu/Show/Hide Virtual Keyboard/Launchpad:Normal, Previous Fn:Normal, Play/Pause Fn:Normal, Next Fn:Normal, Mute Fn:Normal, Volume Down Fn:Normal, Volume Up Fn:Normal}
|
||||||
|
Desvio de Tecla/Botón : {Fn Left Click:Normal, Multiplatform App Switch:Normal, Multiplatform Back:Normal, Multiplatform Insert:Normal, Brightness Down:Normal, Brightness Up:Normal, Host Switch Channel 1:Normal, Host Switch Channel 2:Normal, Host Switch Channel 3:Normal, MultiPlatform Search:Normal, MultiPlatform Home/Mission Control:Normal, MultiPlatform Menu/Show/Hide Virtual Keyboard/Launchpad:Normal, Previous Fn:Normal, Play/Pause Fn:Normal, Next Fn:Normal, Mute Fn:Normal, Volume Down Fn:Normal, Volume Up Fn:Normal}
|
||||||
|
9: PERSISTENT REMAPPABLE ACTION {1C00} V0
|
||||||
|
Persistent Key/Button Mapping : {Multiplatform App Switch:No Output (only as default), Multiplatform Back:No Output (only as default), Multiplatform Insert:No Output (only as default), Brightness Down:No Output (only as default), Brightness Up:No Output (only as default), MultiPlatform Search:No Output (only as default), MultiPlatform Home/Mission Control:No Output (only as default), MultiPlatform Menu/Show/Hide Virtual Keyboard/Launchpad:No Output (only as default), Previous Fn:No Output (only as default), Play/Pause Fn:No Output (only as default), Next Fn:No Output (only as default), Mute Fn:No Output (only as default), Volume Down Fn:No Output (only as default), Volume Up Fn:No Output (only as default)}
|
||||||
|
10: SWAP BUTTON CANCEL {2005} V0
|
||||||
|
11: CHANGE HOST {1814} V1
|
||||||
|
Cambiar Host : 1:romanescu
|
||||||
|
12: HOSTS INFO {1815} V1
|
||||||
|
Host 0 (paired): romanescu
|
||||||
|
Host 1 (unpaired):
|
||||||
|
Host 2 (unpaired):
|
||||||
|
13: NEW FN INVERSION {40A2} V0
|
||||||
|
Fn-swap: enabled
|
||||||
|
Fn-swap default: enabled
|
||||||
|
Intercambiar función Fx (saved): True
|
||||||
|
Intercambiar función Fx : True
|
||||||
|
14: ENCRYPTION {4100} V0
|
||||||
|
15: LOCK KEY STATE {4220} V0
|
||||||
|
16: KEYBOARD DISABLE KEYS {4521} V0
|
||||||
|
Desactivar teclas (saved): {Caps Lock:False, Insert:False, Win:False}
|
||||||
|
Desactivar teclas : {Caps Lock:False, Insert:False, Win:False}
|
||||||
|
17: MULTIPLATFORM {4531} V1
|
||||||
|
Especificar SO (saved): Windows
|
||||||
|
Especificar SO : Windows
|
||||||
|
18: TOUCHPAD RAW XY {6100} V0
|
||||||
|
19: GESTURE 2 {6501} V0
|
||||||
|
Gestos (saved): {1: True, 2: True, 4: True, 5: True, 10: True, 30: True, 34: False, 42: True, 43: True, 45: False, 84: True}
|
||||||
|
Gestos : {1: True, 2: True, 4: True, 5: True, 30: True, 10: True, 45: False, 42: True, 43: True, 84: True, 34: False}
|
||||||
|
Gestures Diversion (saved): {1: False, 2: False, 4: False, 5: False, 10: False, 44: False, 84: False, 85: False, 100: False}
|
||||||
|
Gestures Diversion : {1: False, 2: False, 4: False, 5: False, 10: False, 44: False, 84: False, 85: False, 100: False}
|
||||||
|
Parámetros de gestos (saved): {4: {'scale': 256}}
|
||||||
|
Parámetros de gestos : {4: {'scale': 256}}
|
||||||
|
20: DFUCONTROL SIGNED {00C2} V0
|
||||||
|
21: DEVICE RESET {1802} V0 internal, hidden
|
||||||
|
22: unknown:1803 {1803} V0 internal, hidden
|
||||||
|
23: CONFIG DEVICE PROPS {1806} V5 internal, hidden
|
||||||
|
24: unknown:1813 {1813} V0 internal, hidden
|
||||||
|
25: OOBSTATE {1805} V0 internal, hidden
|
||||||
|
26: unknown:1830 {1830} V0 internal, hidden
|
||||||
|
27: unknown:1890 {1890} V2 internal, hidden
|
||||||
|
28: unknown:1891 {1891} V2 internal, hidden
|
||||||
|
29: unknown:18A1 {18A1} V0 internal, hidden
|
||||||
|
30: unknown:1DF3 {1DF3} V0 internal, hidden
|
||||||
|
31: unknown:1E00 {1E00} V0 hidden
|
||||||
|
32: unknown:1EB0 {1EB0} V0 internal, hidden
|
||||||
|
33: unknown:1861 {1861} V0 internal, hidden
|
||||||
|
34: unknown:18B0 {18B0} V0 internal, hidden
|
||||||
|
35: unknown:1F11 {1F11} V0 internal, hidden
|
||||||
|
Has 19 reprogrammable keys:
|
||||||
|
0: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1
|
||||||
|
is FN, FN sensitive, divertable, persistently divertable, pos:1, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
1: Host Switch Channel 2 , default: HostSwitch Channel 2 => HostSwitch Channel 2
|
||||||
|
is FN, FN sensitive, divertable, persistently divertable, pos:2, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
2: Host Switch Channel 3 , default: HostSwitch Channel 3 => HostSwitch Channel 3
|
||||||
|
is FN, FN sensitive, divertable, persistently divertable, pos:3, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
3: MultiPlatform Menu/Show/Hide Virtual Keyboard/Launchpad, default: Multiplatform Menu/Launchpad => Multiplatform Menu/Launchpad
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:4, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
4: Brightness Down , default: Brightness Down => Brightness Down
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:5, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
5: Brightness Up , default: Brightness Up => Brightness Up
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:6, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
6: Previous Fn , default: Previous => Previous
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:7, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
7: Play/Pause Fn , default: Play/Pause => Play/Pause
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:8, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
8: Next Fn , default: Next => Next
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:9, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
9: Mute Fn , default: Mute => Mute
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:10, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
10: Volume Down Fn , default: Volume Down => Volume Down
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:11, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
11: Volume Up Fn , default: Volume Up => Volume Up
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:12, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
12: Multiplatform Insert , default: Switch Language => Switch Language
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
13: MultiPlatform Home/Mission Control, default: Multiplatform Home/Mission Control => Multiplatform Home/Mission Control
|
||||||
|
nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
14: Multiplatform Back , default: MultiPlatform Back => MultiPlatform Back
|
||||||
|
nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
15: Multiplatform App Switch , default: MultiPlatform App Switch => MultiPlatform App Switch
|
||||||
|
nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
16: MultiPlatform Search , default: Multiplatform Search => Multiplatform Search
|
||||||
|
nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
17: Fn Left Click , default: ShowUI => ShowUI
|
||||||
|
divertable, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
18: FN Key , default: Do Nothing One => Do Nothing One
|
||||||
|
nonstandard, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
Has 14 persistent remappable keys:
|
||||||
|
0: MultiPlatform Menu/Show/Hide Virtual Keyboard/Launchpad => None
|
||||||
|
1: Brightness Down => None
|
||||||
|
2: Brightness Up => None
|
||||||
|
3: Previous Fn => None
|
||||||
|
4: Play/Pause Fn => None
|
||||||
|
5: Next Fn => None
|
||||||
|
6: Mute Fn => None
|
||||||
|
7: Volume Down Fn => None
|
||||||
|
8: Volume Up Fn => None
|
||||||
|
9: Multiplatform Insert => None
|
||||||
|
10: MultiPlatform Home/Mission Control => None
|
||||||
|
11: Multiplatform Back => None
|
||||||
|
12: Multiplatform App Switch => None
|
||||||
|
13: MultiPlatform Search => None
|
||||||
|
Has 16 gesture(s), 1 param(s) and 5 spec(s):
|
||||||
|
Track1Finger Enabled(None): None Diverted:(None) None
|
||||||
|
TapGestures Enabled(None): None Diverted:(None) None
|
||||||
|
Tap1Finger Enabled( 0): True Diverted:( 0) False
|
||||||
|
Tap2Finger Enabled( 1): True Diverted:( 1) False
|
||||||
|
Click1Finger Enabled( 2): True Diverted:( 2) False
|
||||||
|
Click2Finger Enabled( 3): True Diverted:( 3) False
|
||||||
|
TapDrag1Finger Enabled( 4): True Diverted:(None) None
|
||||||
|
DoubleTap1Finger Enabled( 5): True Diverted:( 4) False
|
||||||
|
Scroll2FingerStateless Enabled(None): None Diverted:( 5) False
|
||||||
|
NaturalScrolling Enabled( 6): False Diverted:(None) None
|
||||||
|
Scroll2FingerHoriz Enabled( 7): True Diverted:(None) None
|
||||||
|
Scroll2FingerVert Enabled( 8): True Diverted:(None) None
|
||||||
|
Zoom2FingerStateless Enabled( 9): True Diverted:( 6) False
|
||||||
|
FnClickGestureSuppression Enabled( 10): False Diverted:(None) None
|
||||||
|
TwoFingersPresent Enabled(None): None Diverted:( 7) False
|
||||||
|
DeviceSpecificRawData Enabled(None): None Diverted:( 8) False
|
||||||
|
ScaleFactor Value ( 0): 256 [Default: 256]
|
||||||
|
period unit Spec ( 3): 2048
|
||||||
|
DVI field width Spec ( 1): 8
|
||||||
|
field widths Spec ( 2): 8
|
||||||
|
multiplier Spec ( 5): None
|
||||||
|
resolution Spec ( 4): 4
|
||||||
|
Battery: 90%, discharging, next level 50%.
|
|
@ -0,0 +1,92 @@
|
||||||
|
solaar version 1.1.8
|
||||||
|
|
||||||
|
2: LIFT For Business
|
||||||
|
Device path : None
|
||||||
|
WPID : B033
|
||||||
|
Codename : LIFT B
|
||||||
|
Kind : mouse
|
||||||
|
Protocol : HID++ 4.5
|
||||||
|
Serial number: A67F904D
|
||||||
|
Model ID: B03300000000
|
||||||
|
Unit ID: A67F904D
|
||||||
|
Bootloader: BL1 56.01.B0010
|
||||||
|
Firmware: RBM 21.01.B0010
|
||||||
|
Other:
|
||||||
|
The power switch is located on the (unknown).
|
||||||
|
Supports 32 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000} V0
|
||||||
|
1: FEATURE SET {0001} V0
|
||||||
|
2: DEVICE FW VERSION {0003} V4
|
||||||
|
Firmware: Bootloader BL1 56.01.B0010 B033B0706FCD
|
||||||
|
Firmware: Firmware RBM 21.01.B0010 B033B0706FCD
|
||||||
|
Firmware: Other
|
||||||
|
Unit ID: A67F904D Model ID: B03300000000 Transport IDs: {'btleid': 'B033'}
|
||||||
|
3: DEVICE NAME {0005} V0
|
||||||
|
Name: LIFT For Business
|
||||||
|
Kind: mouse
|
||||||
|
4: WIRELESS DEVICE STATUS {1D4B} V0
|
||||||
|
5: CONFIG CHANGE {0020} V0
|
||||||
|
6: CRYPTO ID {0021} V1
|
||||||
|
7: DEVICE FRIENDLY NAME {0007} V0
|
||||||
|
Friendly Name: LIFT B
|
||||||
|
8: UNIFIED BATTERY {1004} V3
|
||||||
|
Battery: 100%, discharging.
|
||||||
|
9: REPROG CONTROLS V4 {1B04} V5
|
||||||
|
Key/Button Actions (saved): {Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, DPI Switch:DPI Switch}
|
||||||
|
Key/Button Actions : {Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, DPI Switch:DPI Switch}
|
||||||
|
Key/Button Diversion (saved): {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, DPI Switch:Regular}
|
||||||
|
Key/Button Diversion : {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, DPI Switch:Regular}
|
||||||
|
10: CHANGE HOST {1814} V1
|
||||||
|
Change Host : 1:feathora
|
||||||
|
11: HOSTS INFO {1815} V2
|
||||||
|
Host 0 (paired): feathora
|
||||||
|
Host 1 (unpaired):
|
||||||
|
Host 2 (unpaired):
|
||||||
|
12: XY STATS {2250} V1
|
||||||
|
13: LOWRES WHEEL {2130} V0
|
||||||
|
Wheel Reports: HID
|
||||||
|
Scroll Wheel Diversion (saved): False
|
||||||
|
Scroll Wheel Diversion : False
|
||||||
|
14: ADJUSTABLE DPI {2201} V2
|
||||||
|
Sensitivity (DPI) (saved): 1600
|
||||||
|
Sensitivity (DPI) : 1600
|
||||||
|
15: DFUCONTROL {00C3} V0
|
||||||
|
16: DEVICE RESET {1802} V0 internal, hidden, unknown:000010
|
||||||
|
17: unknown:1803 {1803} V0 internal, hidden, unknown:000010
|
||||||
|
18: CONFIG DEVICE PROPS {1806} V8 internal, hidden, unknown:000010
|
||||||
|
19: unknown:1816 {1816} V0 internal, hidden, unknown:000010
|
||||||
|
20: OOBSTATE {1805} V0 internal, hidden
|
||||||
|
21: unknown:1830 {1830} V0 internal, hidden, unknown:000010
|
||||||
|
22: unknown:1891 {1891} V7 internal, hidden, unknown:000008
|
||||||
|
23: unknown:18A1 {18A1} V0 internal, hidden, unknown:000010
|
||||||
|
24: unknown:1E00 {1E00} V0 hidden
|
||||||
|
25: unknown:1E02 {1E02} V0 internal, hidden
|
||||||
|
26: unknown:1E22 {1E22} V1 internal, hidden, unknown:000010
|
||||||
|
27: unknown:1602 {1602} V0
|
||||||
|
28: unknown:1EB0 {1EB0} V0 internal, hidden, unknown:000010
|
||||||
|
29: unknown:1861 {1861} V1 internal, hidden, unknown:000010
|
||||||
|
30: unknown:18B1 {18B1} V0 internal, hidden, unknown:000010
|
||||||
|
31: unknown:920A {920A} V0 internal, hidden, unknown:000010
|
||||||
|
Has 7 reprogrammable keys:
|
||||||
|
0: Left Button , default: Left Click => Left Click
|
||||||
|
mse, analytics key events, pos:0, group:1, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
1: Right Button , default: Right Click => Right Click
|
||||||
|
mse, analytics key events, pos:0, group:1, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
2: Middle Button , default: Mouse Middle Button => Mouse Middle Button
|
||||||
|
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:3, group mask:g1,g2,g3
|
||||||
|
reporting: default
|
||||||
|
3: Back Button , default: Mouse Back Button => Mouse Back Button
|
||||||
|
mse, reprogrammable, divertable, raw XY, analytics key events, unknown:000800, pos:0, group:2, group mask:g1,g2
|
||||||
|
reporting: default
|
||||||
|
4: Forward Button , default: Mouse Forward Button => Mouse Forward Button
|
||||||
|
mse, reprogrammable, divertable, raw XY, analytics key events, unknown:000800, pos:0, group:2, group mask:g1,g2
|
||||||
|
reporting: default
|
||||||
|
5: DPI Switch , default: DPI Switch => DPI Switch
|
||||||
|
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:3, group mask:g1,g2,g3
|
||||||
|
reporting: default
|
||||||
|
6: Virtual Gesture Button , default: Virtual Gesture Button => Virtual Gesture Button
|
||||||
|
divertable, virtual, raw XY, force raw XY, pos:0, group:4, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
Battery: 100%, discharging.
|
|
@ -9,5 +9,5 @@ Lightspeed Receiver
|
||||||
Notifications: wireless, software present (0x000900)
|
Notifications: wireless, software present (0x000900)
|
||||||
Device activity counters: (empty)
|
Device activity counters: (empty)
|
||||||
|
|
||||||
Seen as part of a G PowerPlay Wireless Mouse Pad.
|
Seen as part of a G PowerPlay Wireless Mouse Pad with a Candy companion chip paired a number 7
|
||||||
Seen paired with a G502 Gaming Mouse 407F.
|
Seen paired with a G502 Gaming Mouse 407F.
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
Lightspeed Receiver
|
||||||
|
Device path : /dev/hidraw3
|
||||||
|
USB id : 046d:C53F
|
||||||
|
Serial :
|
||||||
|
Firmware : 44.01.B0005
|
||||||
|
Bootloader : 00.02
|
||||||
|
Other : AA.DE
|
||||||
|
Has 0 paired device(s) out of a maximum of 1.
|
||||||
|
Notifications: wireless, software present (0x000900)
|
||||||
|
Device activity counters: (empty)
|
|
@ -0,0 +1,137 @@
|
||||||
|
solaar version 1.1.8
|
||||||
|
|
||||||
|
Bolt Receiver
|
||||||
|
Device path : /dev/hidraw2
|
||||||
|
USB id : 046d:C548
|
||||||
|
Serial : 31454343464242444143334635323035
|
||||||
|
Has 1 paired device(s) out of a maximum of 6.
|
||||||
|
Notifications: wireless, software present (0x000900)
|
||||||
|
Device activity counters: 1=28
|
||||||
|
|
||||||
|
1: Logi POP Keys
|
||||||
|
Device path : None
|
||||||
|
WPID : B365
|
||||||
|
Codename : Logi POP Keys
|
||||||
|
Kind : keyboard
|
||||||
|
Protocol : HID++ 4.5
|
||||||
|
Serial number: D1F99582
|
||||||
|
Model ID: B36500000000
|
||||||
|
Unit ID: D1F99582
|
||||||
|
Bootloader: BL1 44.01.B0008
|
||||||
|
Firmware: RBK 69.01.B0008
|
||||||
|
Other:
|
||||||
|
The power switch is located on the (unknown).
|
||||||
|
Supports 31 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000} V0
|
||||||
|
1: FEATURE SET {0001} V0
|
||||||
|
2: DEVICE FW VERSION {0003} V4
|
||||||
|
Firmware: Bootloader BL1 44.01.B0008 B3652BE8BAF4
|
||||||
|
Firmware: Firmware RBK 69.01.B0008 B3652BE8BAF4
|
||||||
|
Firmware: Other
|
||||||
|
Unit ID: D1F99582 Model ID: B36500000000 Transport IDs: {'btleid': 'B365'}
|
||||||
|
3: DEVICE NAME {0005} V0
|
||||||
|
Name: Logi POP Keys
|
||||||
|
Kind: keyboard
|
||||||
|
4: WIRELESS DEVICE STATUS {1D4B} V0
|
||||||
|
5: CONFIG CHANGE {0020} V0
|
||||||
|
6: DEVICE FRIENDLY NAME {0007} V0
|
||||||
|
Friendly Name: Logi POP Keys
|
||||||
|
7: UNIFIED BATTERY {1004} V3
|
||||||
|
Battery: 100%, discharging.
|
||||||
|
8: REPROG CONTROLS V4 {1B04} V5
|
||||||
|
Key/Button Diversion (saved): {Show Desktop:Regular, Previous Fn:Regular, Play/Pause Fn:Regular, Next Fn:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular, Voice Dictation:Regular, Emoji Smiley Heart Eyes:Regular, Emoji Crying Face:Regular, Emoji Smiley:Regular, Emoji Smilie With Tears:Regular, Open Emoji Panel:Regular, Snipping Tool:Regular, Mute Microphone:Regular}
|
||||||
|
Key/Button Diversion : {Show Desktop:Regular, Previous Fn:Regular, Play/Pause Fn:Regular, Next Fn:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular, Voice Dictation:Regular, Emoji Smiley Heart Eyes:Regular, Emoji Crying Face:Regular, Emoji Smiley:Regular, Emoji Smilie With Tears:Regular, Open Emoji Panel:Regular, Snipping Tool:Regular, Mute Microphone:Regular}
|
||||||
|
9: CHANGE HOST {1814} V1
|
||||||
|
Change Host : 1:astra
|
||||||
|
10: HOSTS INFO {1815} V2
|
||||||
|
Host 0 (paired): astra
|
||||||
|
Host 1 (unpaired):
|
||||||
|
Host 2 (unpaired):
|
||||||
|
11: K375S FN INVERSION {40A3} V0
|
||||||
|
Swap Fx function (saved): False
|
||||||
|
Swap Fx function : False
|
||||||
|
12: LOCK KEY STATE {4220} V0
|
||||||
|
13: KEYBOARD DISABLE KEYS {4521} V0
|
||||||
|
Disable keys (saved): {Caps Lock:False, Insert:False, Win:False}
|
||||||
|
Disable keys : {Caps Lock:False, Insert:False, Win:False}
|
||||||
|
14: MULTIPLATFORM {4531} V1
|
||||||
|
Set OS (saved): Windows
|
||||||
|
Set OS : Windows
|
||||||
|
15: KEYBOARD LAYOUT 2 {4540} V0
|
||||||
|
16: DFUCONTROL {00C3} V0
|
||||||
|
17: DEVICE RESET {1802} V0 internal, hidden, unknown:000010
|
||||||
|
18: unknown:1803 {1803} V0 internal, hidden, unknown:000010
|
||||||
|
19: CONFIG DEVICE PROPS {1806} V8 internal, hidden, unknown:000010
|
||||||
|
20: unknown:1816 {1816} V0 internal, hidden, unknown:000010
|
||||||
|
21: OOBSTATE {1805} V0 internal, hidden
|
||||||
|
22: unknown:1830 {1830} V0 internal, hidden, unknown:000010
|
||||||
|
23: unknown:1891 {1891} V7 internal, hidden, unknown:000008
|
||||||
|
24: unknown:18A1 {18A1} V0 internal, hidden, unknown:000010
|
||||||
|
25: unknown:1E00 {1E00} V0 hidden
|
||||||
|
26: unknown:1E02 {1E02} V0 internal, hidden
|
||||||
|
27: unknown:1602 {1602} V0
|
||||||
|
28: unknown:1EB0 {1EB0} V0 internal, hidden, unknown:000010
|
||||||
|
29: unknown:1861 {1861} V1 internal, hidden, unknown:000010
|
||||||
|
30: unknown:18B0 {18B0} V0 internal, hidden, unknown:000010
|
||||||
|
Has 20 reprogrammable keys:
|
||||||
|
0: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1
|
||||||
|
is FN, FN sensitive, analytics key events, pos:1, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
1: Host Switch Channel 2 , default: HostSwitch Channel 2 => HostSwitch Channel 2
|
||||||
|
is FN, FN sensitive, analytics key events, pos:2, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
2: Host Switch Channel 3 , default: HostSwitch Channel 3 => HostSwitch Channel 3
|
||||||
|
is FN, FN sensitive, analytics key events, pos:3, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
3: Show Desktop , default: Show Desktop => Show Desktop
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:4, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
4: Snipping Tool , default: Snipping Tool => Snipping Tool
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:5, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
5: Mute Microphone , default: Mute Microphone => Mute Microphone
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:6, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
6: Previous Fn , default: Previous => Previous
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:7, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
7: Play/Pause Fn , default: Play/Pause => Play/Pause
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:8, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
8: Next Fn , default: Next => Next
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:9, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
9: Mute Fn , default: Mute => Mute
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:10, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
10: Volume Down Fn , default: Volume Down => Volume Down
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:11, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
11: Volume Up Fn , default: Volume Up => Volume Up
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:12, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
12: Voice Dictation , default: Voice Dictation => Voice Dictation
|
||||||
|
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
13: Emoji Smiley Heart Eyes , default: Emoji Smiling Face With Heart Shaped Eyes => Emoji Smiling Face With Heart Shaped Eyes
|
||||||
|
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
14: Emoji Crying Face , default: Emoji Loudly Crying Face => Emoji Loudly Crying Face
|
||||||
|
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
15: Emoji Smiley , default: Emoji Smiley => Emoji Smiley
|
||||||
|
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
16: Emoji Smilie With Tears , default: Emoji Smiley With Tears => Emoji Smiley With Tears
|
||||||
|
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
17: Open Emoji Panel , default: Open Emoji Panel => Open Emoji Panel
|
||||||
|
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
18: F Lock , default: Do Nothing One => Do Nothing One
|
||||||
|
is FN, analytics key events, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
19: FN Key , default: Do Nothing One => Do Nothing One
|
||||||
|
nonstandard, analytics key events, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
Battery: 100%, discharging.
|
|
@ -0,0 +1,113 @@
|
||||||
|
Solaar version 1.1.1
|
||||||
|
|
||||||
|
1: M720 Triathlon Multi-Device Mouse
|
||||||
|
Device path : /dev/hidraw1
|
||||||
|
WPID : 405E
|
||||||
|
Codename : M720 Triathlon
|
||||||
|
Kind : mouse
|
||||||
|
Protocol : HID++ 4.5
|
||||||
|
Polling rate : 8 ms (125Hz)
|
||||||
|
Serial number: 205F2717
|
||||||
|
Model ID: B015405E0000
|
||||||
|
Unit ID: C738473C
|
||||||
|
Bootloader: BOT 34.01.B0005
|
||||||
|
Firmware: MPM 04.10.B0013
|
||||||
|
Other:
|
||||||
|
The power switch is located on the base.
|
||||||
|
Supports 36 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000}
|
||||||
|
1: FEATURE SET {0001}
|
||||||
|
2: DEVICE FW VERSION {0003}
|
||||||
|
Firmware: Bootloader BOT 34.01.B0005 000000A96719
|
||||||
|
Firmware: Firmware MPM 04.10.B0013 405E00A96719
|
||||||
|
Firmware: Other
|
||||||
|
Unit ID: C738473C Model ID: B015405E0000 Transport IDs: {'btleid': 'B015', 'wpid': '405E'}
|
||||||
|
3: DEVICE NAME {0005}
|
||||||
|
Name: M720 Triathlon Multi-Device Mouse
|
||||||
|
Kind: mouse
|
||||||
|
4: WIRELESS DEVICE STATUS {1D4B}
|
||||||
|
5: RESET {0020}
|
||||||
|
6: CRYPTO ID {0021}
|
||||||
|
7: DEVICE FRIENDLY NAME {0007}
|
||||||
|
Friendly Name: M720 Triathlon
|
||||||
|
8: BATTERY STATUS {1000}
|
||||||
|
Battery: 90%, discharging, next level 50%.
|
||||||
|
9: CHANGE HOST {1814}
|
||||||
|
Change Host : 2:desktop
|
||||||
|
10: HOSTS INFO {1815}
|
||||||
|
Host 0 (paired): rpi
|
||||||
|
Host 1 (paired): desktop
|
||||||
|
Host 2 (paired): laptop
|
||||||
|
11: REPROG CONTROLS V4 {1B04}
|
||||||
|
Key/Button Actions (saved): {'208': 208, '80': 80, '81': 81, '82': 82, '83': 83, '86': 86, '91': 91, '93': 93}
|
||||||
|
Key/Button Actions : {'80': 80, '81': 81, '82': 82, '83': 83, '86': 86, '91': 91, '93': 93, '208': 208}
|
||||||
|
Key/Button Diversion (saved): {'208': 0, '82': 0, '83': 0, '86': 0, '91': 0, '93': 0}
|
||||||
|
Key/Button Diversion : {'82': 0, '83': 0, '86': 0, '91': 0, '93': 0, '208': 0}
|
||||||
|
12: PERSISTENT REMAPPABLE ACTION {1C00}
|
||||||
|
13: POINTER SPEED {2205}
|
||||||
|
Pointer Speed: 1.0
|
||||||
|
Sensitivity (Pointer Speed) (saved): 256
|
||||||
|
Sensitivity (Pointer Speed) : 256
|
||||||
|
14: VERTICAL SCROLLING {2100}
|
||||||
|
Roller type: 3G
|
||||||
|
Ratchet per turn: 24
|
||||||
|
Scroll lines: 0
|
||||||
|
15: DFUCONTROL UNSIGNED {00C1}
|
||||||
|
16: DFUCONTROL SIGNED {00C2}
|
||||||
|
17: DEVICE RESET {1802} internal, hidden
|
||||||
|
18: unknown:1803 {1803} internal, hidden
|
||||||
|
19: CONFIG DEVICE PROPS {1806} internal, hidden
|
||||||
|
20: OOBSTATE {1805} internal, hidden
|
||||||
|
21: unknown:1813 {1813} internal, hidden
|
||||||
|
22: unknown:1830 {1830} internal, hidden
|
||||||
|
23: unknown:1861 {1861} internal, hidden
|
||||||
|
24: unknown:1890 {1890} internal, hidden
|
||||||
|
25: unknown:1891 {1891} internal, hidden
|
||||||
|
26: unknown:18A1 {18A1} internal, hidden
|
||||||
|
27: unknown:1DF3 {1DF3} internal, hidden
|
||||||
|
28: unknown:1E00 {1E00} hidden
|
||||||
|
29: unknown:1EB0 {1EB0} internal, hidden
|
||||||
|
30: unknown:18B1 {18B1} internal, hidden
|
||||||
|
31: unknown:1850 {1850} internal, hidden
|
||||||
|
32: unknown:1E22 {1E22}
|
||||||
|
33: unknown:1F03 {1F03} internal, hidden
|
||||||
|
34: unknown:18C0 {18C0} internal, hidden
|
||||||
|
35: HIRES WHEEL {2121}
|
||||||
|
Multiplier: 8
|
||||||
|
Has invert: Normal wheel motion
|
||||||
|
Has ratchet switch: Normal wheel mode
|
||||||
|
High resolution mode
|
||||||
|
HID notification
|
||||||
|
Scroll Wheel Direction (saved): False
|
||||||
|
Scroll Wheel Direction : False
|
||||||
|
Scroll Wheel Resolution (saved): True
|
||||||
|
Scroll Wheel Resolution : True
|
||||||
|
Has 9 reprogrammable keys:
|
||||||
|
0: Left Button , default: Left Click => Left Click
|
||||||
|
mse, reprogrammable, pos:0, group:1, group mask:g1
|
||||||
|
reporting: default
|
||||||
|
1: Right Button , default: Right Click => Right Click
|
||||||
|
mse, reprogrammable, pos:0, group:1, group mask:g1
|
||||||
|
reporting: default
|
||||||
|
2: Middle Button , default: Mouse Middle Button => Mouse Middle Button
|
||||||
|
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
|
||||||
|
reporting: default
|
||||||
|
3: Back Button , default: Mouse Back Button => Mouse Back Button
|
||||||
|
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
|
||||||
|
reporting: default
|
||||||
|
4: Forward Button , default: Mouse Forward Button => Mouse Forward Button
|
||||||
|
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
|
||||||
|
reporting: default
|
||||||
|
5: Left Tilt , default: Mouse Scroll Left Button => Mouse Scroll Left Button
|
||||||
|
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
|
||||||
|
reporting: default
|
||||||
|
6: Right Tilt , default: Mouse Scroll Right Button => Mouse Scroll Right Button
|
||||||
|
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
|
||||||
|
reporting: default
|
||||||
|
7: MultiPlatform Gesture Button, default: Multiplatform Gesture Button => Multiplatform Gesture Button
|
||||||
|
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
|
||||||
|
reporting: default
|
||||||
|
8: Virtual Gesture Button , default: Virtual Gesture Button => Virtual Gesture Button
|
||||||
|
divertable, virtual, raw XY, force raw XY, pos:0, group:3, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
Battery: 90%, discharging, next level 50%.
|
|
@ -0,0 +1,100 @@
|
||||||
|
solaar version 1.1.14
|
||||||
|
|
||||||
|
1: MX Anywhere 3 for Business
|
||||||
|
Device path : None
|
||||||
|
WPID : B02D
|
||||||
|
Codename : MX Anywhere 3
|
||||||
|
Kind : mouse
|
||||||
|
Protocol : HID++ 4.5
|
||||||
|
Serial number: 00000000
|
||||||
|
Model ID: B02D00000000
|
||||||
|
Unit ID: 00000000
|
||||||
|
1: BL1 36.01.B0011
|
||||||
|
0: RBM 15.01.B0011
|
||||||
|
3:
|
||||||
|
The power switch is located on the (unknown).
|
||||||
|
Supports 35 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000} V0
|
||||||
|
1: FEATURE SET {0001} V0
|
||||||
|
2: DEVICE FW VERSION {0003} V4
|
||||||
|
Firmware: 1 BL1 36.01.B0011 B02D1EEFD8F8
|
||||||
|
Firmware: 0 RBM 15.01.B0011 B02D1EEFD8F8
|
||||||
|
Firmware: 3
|
||||||
|
Unit ID: 00000000 Model ID: B02D00000000 Transport IDs: {'btleid': 'B02D'}
|
||||||
|
3: DEVICE NAME {0005} V0
|
||||||
|
Name: MX Anywhere 3 for Business
|
||||||
|
Kind: mouse
|
||||||
|
4: WIRELESS DEVICE STATUS {1D4B} V0
|
||||||
|
5: CONFIG CHANGE {0020} V0
|
||||||
|
Configuration: 11000000000000000000000000000000
|
||||||
|
6: CRYPTO ID {0021} V1
|
||||||
|
7: DEVICE FRIENDLY NAME {0007} V0
|
||||||
|
Friendly Name: MX Anywhere 3B
|
||||||
|
8: UNIFIED BATTERY {1004} V3
|
||||||
|
Battery: 75%, 0.
|
||||||
|
9: REPROG CONTROLS V4 {1B04} V5
|
||||||
|
Key/Button Actions : {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Smart Shift:Smart Shift}
|
||||||
|
Key/Button Diversion : {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Smart Shift:Diverted}
|
||||||
|
10: CHANGE HOST {1814} V1
|
||||||
|
Change Host : 2:archlinux
|
||||||
|
11: HOSTS INFO {1815} V2
|
||||||
|
Host 0 (paired): archlinux
|
||||||
|
Host 1 (paired): archlinux
|
||||||
|
Host 2 (unpaired):
|
||||||
|
12: XY STATS {2250} V1
|
||||||
|
13: ADJUSTABLE DPI {2201} V2
|
||||||
|
Sensitivity (DPI) : 1000
|
||||||
|
14: SMART SHIFT ENHANCED {2111} V0
|
||||||
|
Scroll Wheel Ratcheted : Ratcheted
|
||||||
|
Scroll Wheel Ratchet Speed : 15
|
||||||
|
15: HIRES WHEEL {2121} V1
|
||||||
|
Multiplier: 15
|
||||||
|
Has invert: Normal wheel motion
|
||||||
|
Has ratchet switch: Normal wheel mode
|
||||||
|
Low resolution mode
|
||||||
|
HID notification
|
||||||
|
Scroll Wheel Direction : False
|
||||||
|
Scroll Wheel Resolution : False
|
||||||
|
Scroll Wheel Diversion : False
|
||||||
|
16: WHEEL STATS {2251} V0
|
||||||
|
17: DFUCONTROL {00C3} V0
|
||||||
|
18: DEVICE RESET {1802} V0 internal, hidden, unknown:000010
|
||||||
|
19: unknown:1803 {1803} V0 internal, hidden, unknown:000010
|
||||||
|
20: CONFIG DEVICE PROPS {1806} V8 internal, hidden, unknown:000010
|
||||||
|
21: unknown:1816 {1816} V0 internal, hidden, unknown:000010
|
||||||
|
22: OOBSTATE {1805} V0 internal, hidden
|
||||||
|
23: unknown:1830 {1830} V0 internal, hidden, unknown:000010
|
||||||
|
24: unknown:1891 {1891} V7 internal, hidden, unknown:000008
|
||||||
|
25: unknown:18A1 {18A1} V0 internal, hidden, unknown:000010
|
||||||
|
26: unknown:1E00 {1E00} V0 hidden
|
||||||
|
27: unknown:1E02 {1E02} V0 internal, hidden
|
||||||
|
28: unknown:1602 {1602} V0
|
||||||
|
29: unknown:1EB0 {1EB0} V0 internal, hidden, unknown:000010
|
||||||
|
30: unknown:1861 {1861} V1 internal, hidden, unknown:000010
|
||||||
|
31: unknown:9300 {9300} V1 internal, hidden, unknown:000010
|
||||||
|
32: unknown:9001 {9001} V0 internal, hidden, unknown:000010
|
||||||
|
33: unknown:1E22 {1E22} V0 internal, hidden, unknown:000010
|
||||||
|
34: unknown:9205 {9205} V0 internal, hidden, unknown:000010
|
||||||
|
Has 7 reprogrammable keys:
|
||||||
|
0: Left Button , default: Left Click => Left Click
|
||||||
|
mse, analytics key events, pos:0, group:1, group mask:g1
|
||||||
|
reporting: default
|
||||||
|
1: Right Button , default: Right Click => Right Click
|
||||||
|
mse, analytics key events, pos:0, group:1, group mask:g1
|
||||||
|
reporting: default
|
||||||
|
2: Middle Button , default: Mouse Middle Button => Mouse Middle Button
|
||||||
|
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
|
||||||
|
reporting: default
|
||||||
|
3: Back Button , default: Mouse Back Button => Mouse Back Button
|
||||||
|
mse, reprogrammable, divertable, raw XY, analytics key events, unknown:000800, pos:0, group:2, group mask:g1,g2
|
||||||
|
reporting: default
|
||||||
|
4: Forward Button , default: Mouse Forward Button => Mouse Forward Button
|
||||||
|
mse, reprogrammable, divertable, raw XY, analytics key events, unknown:000800, pos:0, group:2, group mask:g1,g2
|
||||||
|
reporting: default
|
||||||
|
5: Smart Shift , default: Smart Shift => Smart Shift
|
||||||
|
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
|
||||||
|
reporting: diverted, raw XY diverted
|
||||||
|
6: Virtual Gesture Button , default: Virtual Gesture Button => Virtual Gesture Button
|
||||||
|
divertable, virtual, raw XY, force raw XY, pos:0, group:3, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
Battery: 75%, 0.
|
|
@ -0,0 +1,137 @@
|
||||||
|
solaar version 1.1.10
|
||||||
|
|
||||||
|
1: MX Keys S
|
||||||
|
Device path : None
|
||||||
|
WPID : B378
|
||||||
|
Codename : MX KEYS S
|
||||||
|
Kind : keyboard
|
||||||
|
Protocol : HID++ 4.5
|
||||||
|
Serial number: 48548420
|
||||||
|
Model ID: B37800000000
|
||||||
|
Unit ID: 48548420
|
||||||
|
Bootloader: BL1 88.00.B0013
|
||||||
|
Firmware: RBK 81.00.B0013
|
||||||
|
Other:
|
||||||
|
The power switch is located on the (unknown).
|
||||||
|
Supports 34 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000} V0
|
||||||
|
1: FEATURE SET {0001} V0
|
||||||
|
2: DEVICE FW VERSION {0003} V4
|
||||||
|
Firmware: Bootloader BL1 88.00.B0013 B37851DB9520
|
||||||
|
Firmware: Firmware RBK 81.00.B0013 B37851DB9520
|
||||||
|
Firmware: Other
|
||||||
|
Unit ID: 48548420 Model ID: B37800000000 Transport IDs: {'btleid': 'B378'}
|
||||||
|
3: DEVICE NAME {0005} V0
|
||||||
|
Name: MX Keys S
|
||||||
|
Kind: keyboard
|
||||||
|
4: WIRELESS DEVICE STATUS {1D4B} V0
|
||||||
|
5: CONFIG CHANGE {0020} V0
|
||||||
|
6: DEVICE FRIENDLY NAME {0007} V0
|
||||||
|
Friendly Name: MX KEYS S
|
||||||
|
7: unknown:0011 {0011} V0
|
||||||
|
8: UNIFIED BATTERY {1004} V3
|
||||||
|
Battery: 75%, discharging.
|
||||||
|
9: REPROG CONTROLS V4 {1B04} V5
|
||||||
|
Key/Button Diversion (saved): {Calculator:Regular, Lock PC:Regular, Brightness Down:Regular, Brightness Up:Regular, Backlight Down:Regular, Backlight Up:Regular, Previous Fn:Regular, Play/Pause Fn:Regular, Next Fn:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular, App Contextual Menu/Right Click:Regular, Voice Dictation:Regular, Open Emoji Panel:Regular, Snipping Tool:Diverted, Mute Microphone:Regular}
|
||||||
|
Key/Button Diversion : {Calculator:Regular, Lock PC:Regular, Brightness Down:Regular, Brightness Up:Regular, Backlight Down:Regular, Backlight Up:Regular, Previous Fn:Regular, Play/Pause Fn:Regular, Next Fn:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular, App Contextual Menu/Right Click:Regular, Voice Dictation:Regular, Open Emoji Panel:Regular, Snipping Tool:Diverted, Mute Microphone:Regular}
|
||||||
|
10: CHANGE HOST {1814} V1
|
||||||
|
Change Host : 1:vs
|
||||||
|
11: HOSTS INFO {1815} V2
|
||||||
|
Host 0 (paired): vs
|
||||||
|
Host 1 (paired): DEV
|
||||||
|
Host 2 (unpaired):
|
||||||
|
12: BACKLIGHT2 {1982} V3
|
||||||
|
Backlight (saved): False
|
||||||
|
Backlight : True
|
||||||
|
13: K375S FN INVERSION {40A3} V0
|
||||||
|
Swap Fx function (saved): False
|
||||||
|
Swap Fx function : False
|
||||||
|
14: LOCK KEY STATE {4220} V0
|
||||||
|
15: KEYBOARD DISABLE KEYS {4521} V0
|
||||||
|
Disable keys (saved): {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
|
||||||
|
Disable keys : {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
|
||||||
|
16: MULTIPLATFORM {4531} V1
|
||||||
|
Set OS (saved): Linux
|
||||||
|
Set OS : Linux
|
||||||
|
17: KEYBOARD LAYOUT 2 {4540} V0
|
||||||
|
18: DFUCONTROL {00C3} V0
|
||||||
|
19: DEVICE RESET {1802} V0 internal, hidden, unknown:000010
|
||||||
|
20: unknown:1803 {1803} V0 internal, hidden, unknown:000010
|
||||||
|
21: unknown:1807 {1807} V0 internal, hidden, unknown:000010
|
||||||
|
22: unknown:1816 {1816} V0 internal, hidden, unknown:000010
|
||||||
|
23: OOBSTATE {1805} V0 internal, hidden
|
||||||
|
24: unknown:1830 {1830} V0 internal, hidden, unknown:000010
|
||||||
|
25: unknown:1891 {1891} V7 internal, hidden, unknown:000008
|
||||||
|
26: unknown:18A1 {18A1} V0 internal, hidden, unknown:000010
|
||||||
|
27: unknown:1E00 {1E00} V0 hidden
|
||||||
|
28: unknown:1E02 {1E02} V0 internal, hidden
|
||||||
|
29: unknown:1602 {1602} V0
|
||||||
|
30: unknown:1EB0 {1EB0} V0 internal, hidden, unknown:000010
|
||||||
|
31: unknown:1861 {1861} V1 internal, hidden, unknown:000010
|
||||||
|
32: unknown:1A20 {1A20} V1 internal, hidden, unknown:000010
|
||||||
|
33: unknown:18B0 {18B0} V1 internal, hidden, unknown:000010
|
||||||
|
Has 21 reprogrammable keys:
|
||||||
|
0: Brightness Down , default: Brightness Down => Brightness Down
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:1, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
1: Brightness Up , default: Brightness Up => Brightness Up
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:2, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
2: Backlight Down , default: Backlight Down => Backlight Down
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:3, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
3: Backlight Up , default: Backlight Up => Backlight Up
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:4, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
4: Voice Dictation , default: Voice Dictation => Voice Dictation
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:5, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
5: Open Emoji Panel , default: Open Emoji Panel => Open Emoji Panel
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:6, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
6: Mute Microphone , default: Mute Microphone => Mute Microphone
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:7, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
7: Previous Fn , default: Previous => Previous
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:8, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
8: Play/Pause Fn , default: Play/Pause => Play/Pause
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:9, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
9: Next Fn , default: Next => Next
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:10, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
10: Mute Fn , default: Mute => Mute
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:11, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
11: Volume Down Fn , default: Volume Down => Volume Down
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:12, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
12: Volume Up Fn , default: Volume Up => Volume Up
|
||||||
|
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
13: Calculator , default: Calculator => Calculator
|
||||||
|
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
14: Snipping Tool , default: Snipping Tool => Snipping Tool
|
||||||
|
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
|
||||||
|
reporting: diverted
|
||||||
|
15: App Contextual Menu/Right Click, default: Right Click/App Contextual Menu => Right Click/App Contextual Menu
|
||||||
|
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
16: Lock PC , default: WindowsLock => WindowsLock
|
||||||
|
nonstandard, reprogrammable, divertable, analytics key events, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
17: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1
|
||||||
|
nonstandard, analytics key events, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
18: Host Switch Channel 2 , default: HostSwitch Channel 2 => HostSwitch Channel 2
|
||||||
|
nonstandard, analytics key events, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
19: Host Switch Channel 3 , default: HostSwitch Channel 3 => HostSwitch Channel 3
|
||||||
|
nonstandard, analytics key events, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
20: F Lock , default: Do Nothing One => Do Nothing One
|
||||||
|
analytics key events, pos:0, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
Battery: 75%, discharging.
|
|
@ -1,14 +1,14 @@
|
||||||
Solaar version 1.1.5
|
solaar version 1.1.8
|
||||||
|
|
||||||
2: MX Master 3 for Business
|
1: MX Master 3 for Business
|
||||||
Device path : None
|
Device path : None
|
||||||
WPID : B028
|
WPID : B028
|
||||||
Codename : MX Master 3 B
|
Codename : MX Master 3 B
|
||||||
Kind : mouse
|
Kind : mouse
|
||||||
Protocol : HID++ 4.5
|
Protocol : HID++ 4.5
|
||||||
Serial number: 12617690
|
Serial number: 18F3413B
|
||||||
Model ID: B02800000000
|
Model ID: B02800000000
|
||||||
Unit ID: 12617690
|
Unit ID: 18F3413B
|
||||||
Bootloader: BL1 41.00.B0009
|
Bootloader: BL1 41.00.B0009
|
||||||
Firmware: RBM 14.00.B0009
|
Firmware: RBM 14.00.B0009
|
||||||
Other:
|
Other:
|
||||||
|
@ -20,29 +20,92 @@ Solaar version 1.1.5
|
||||||
Firmware: Bootloader BL1 41.00.B0009 B0281D13EFC0
|
Firmware: Bootloader BL1 41.00.B0009 B0281D13EFC0
|
||||||
Firmware: Firmware RBM 14.00.B0009 B0281D13EFC0
|
Firmware: Firmware RBM 14.00.B0009 B0281D13EFC0
|
||||||
Firmware: Other
|
Firmware: Other
|
||||||
Unit ID: 12617690 Model ID: B02800000000 Transport IDs: {'btleid': 'B028'}
|
Unit ID: 18F3413B Model ID: B02800000000 Transport IDs: {'btleid': 'B028'}
|
||||||
3: DEVICE NAME {0005} V0
|
3: DEVICE NAME {0005} V0
|
||||||
Name: MX Master 3 for Business
|
Name: MX Master 3 for Business
|
||||||
Kind: mouse
|
Kind: mouse
|
||||||
4: WIRELESS DEVICE STATUS {1D4B} V0
|
4: WIRELESS DEVICE STATUS {1D4B} V0
|
||||||
5: RESET {0020} V0
|
5: CONFIG CHANGE {0020} V0
|
||||||
6: CRYPTO ID {0021} V1
|
6: CRYPTO ID {0021} V1
|
||||||
7: DEVICE FRIENDLY NAME {0007} V0
|
7: DEVICE FRIENDLY NAME {0007} V0
|
||||||
Friendly Name: MX Master 3 B
|
Friendly Name: MX Master 3 B
|
||||||
8: UNIFIED BATTERY {1004} V2
|
8: UNIFIED BATTERY {1004} V2
|
||||||
Battery: 80%, recharging.
|
Battery: 95%, discharging.
|
||||||
9: REPROG CONTROLS V4 {1B04} V5
|
9: REPROG CONTROLS V4 {1B04} V5
|
||||||
Key/Button Actions (saved): {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Mouse Gesture Button:Gesture Button Navigation, Smart Shift:Smart Shift}
|
Key/Button Actions (saved): {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Mouse Gesture Button:Gesture Button Navigation, Smart Shift:Smart Shift}
|
||||||
Key/Button Actions : {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Mouse Gesture Button:Gesture Button Navigation, Smart Shift:Smart Shift}
|
Key/Button Actions : {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Mouse Gesture Button:Gesture Button Navigation, Smart Shift:Smart Shift}
|
||||||
solaar: error: Traceback (most recent call last):
|
Key/Button Diversion (saved): {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Mouse Gesture Button:Regular, Smart Shift:Regular}
|
||||||
File "/usr/lib/python3.10/site-packages/solaar/cli/__init__.py", line 210, in run
|
Key/Button Diversion : {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Mouse Gesture Button:Regular, Smart Shift:Regular}
|
||||||
m.run(c, args, _find_receiver, _find_device)
|
10: CHANGE HOST {1814} V1
|
||||||
File "/usr/lib/python3.10/site-packages/solaar/cli/show.py", line 296, in run
|
Change Host : 1:bork
|
||||||
_print_device(dev)
|
11: XY STATS {2250} V1
|
||||||
File "/usr/lib/python3.10/site-packages/solaar/cli/show.py", line 232, in _print_device
|
12: ADJUSTABLE DPI {2201} V2
|
||||||
v = setting.val_to_string(setting._device.persister.get(setting.name))
|
Sensitivity (DPI) (saved): 1000
|
||||||
File "/usr/lib/python3.10/site-packages/logitech_receiver/settings.py", line 238, in val_to_string
|
Sensitivity (DPI) : 1000
|
||||||
return self._validator.to_string(value)
|
13: SMART SHIFT {2110} V0
|
||||||
File "/usr/lib/python3.10/site-packages/logitech_receiver/settings.py", line 1086, in to_string
|
Scroll Wheel Ratcheted (saved): Freespinning
|
||||||
return '{' + ', '.join([element_to_string(k, value[k]) for k in sorted(value)]) + '}'
|
Scroll Wheel Ratcheted : Freespinning
|
||||||
TypeError: '<' not supported between instances of 'str' and 'int'
|
Scroll Wheel Ratchet Speed (saved): 1
|
||||||
|
Scroll Wheel Ratchet Speed : 1
|
||||||
|
14: HIRES WHEEL {2121} V1
|
||||||
|
Multiplier: 15
|
||||||
|
Has invert: Normal wheel motion
|
||||||
|
Has ratchet switch: Free wheel mode
|
||||||
|
Low resolution mode
|
||||||
|
HID notification
|
||||||
|
Scroll Wheel Direction (saved): False
|
||||||
|
Scroll Wheel Direction : False
|
||||||
|
Scroll Wheel Resolution (saved): False
|
||||||
|
Scroll Wheel Resolution : False
|
||||||
|
Scroll Wheel Diversion (saved): False
|
||||||
|
Scroll Wheel Diversion : False
|
||||||
|
15: THUMB WHEEL {2150} V0
|
||||||
|
Thumb Wheel Direction (saved): False
|
||||||
|
Thumb Wheel Direction : False
|
||||||
|
Thumb Wheel Diversion (saved): False
|
||||||
|
Thumb Wheel Diversion : False
|
||||||
|
16: WHEEL STATS {2251} V0
|
||||||
|
17: DFUCONTROL {00C3} V0
|
||||||
|
18: DEVICE RESET {1802} V0 internal, hidden, unknown:000010
|
||||||
|
19: unknown:1803 {1803} V0 internal, hidden, unknown:000010
|
||||||
|
20: CONFIG DEVICE PROPS {1806} V8 internal, hidden, unknown:000010
|
||||||
|
21: unknown:1816 {1816} V0 internal, hidden, unknown:000010
|
||||||
|
22: OOBSTATE {1805} V0 internal, hidden
|
||||||
|
23: unknown:1830 {1830} V0 internal, hidden, unknown:000010
|
||||||
|
24: unknown:1891 {1891} V6 internal, hidden, unknown:000008
|
||||||
|
25: unknown:18A1 {18A1} V0 internal, hidden, unknown:000010
|
||||||
|
26: unknown:1E00 {1E00} V0 hidden
|
||||||
|
27: unknown:1E02 {1E02} V0 internal, hidden
|
||||||
|
28: unknown:1602 {1602} V0
|
||||||
|
29: unknown:1EB0 {1EB0} V0 internal, hidden, unknown:000010
|
||||||
|
30: unknown:1861 {1861} V0 internal, hidden, unknown:000010
|
||||||
|
31: unknown:9300 {9300} V0 internal, hidden, unknown:000010
|
||||||
|
32: unknown:9001 {9001} V0 internal, hidden, unknown:000010
|
||||||
|
33: unknown:1E22 {1E22} V0 internal, hidden, unknown:000010
|
||||||
|
34: unknown:9205 {9205} V0 internal, hidden, unknown:000010
|
||||||
|
Has 8 reprogrammable keys:
|
||||||
|
0: Left Button , default: Left Click => Left Click
|
||||||
|
mse, analytics key events, pos:0, group:1, group mask:g1
|
||||||
|
reporting: default
|
||||||
|
1: Right Button , default: Right Click => Right Click
|
||||||
|
mse, analytics key events, pos:0, group:1, group mask:g1
|
||||||
|
reporting: default
|
||||||
|
2: Middle Button , default: Mouse Middle Button => Mouse Middle Button
|
||||||
|
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
|
||||||
|
reporting: default
|
||||||
|
3: Back Button , default: Mouse Back Button => Mouse Back Button
|
||||||
|
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
|
||||||
|
reporting: default
|
||||||
|
4: Forward Button , default: Mouse Forward Button => Mouse Forward Button
|
||||||
|
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
|
||||||
|
reporting: default
|
||||||
|
5: Mouse Gesture Button , default: Gesture Button Navigation => Gesture Button Navigation
|
||||||
|
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
|
||||||
|
reporting: default
|
||||||
|
6: Smart Shift , default: Smart Shift => Smart Shift
|
||||||
|
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
|
||||||
|
reporting: default
|
||||||
|
7: Virtual Gesture Button , default: Virtual Gesture Button => Virtual Gesture Button
|
||||||
|
divertable, virtual, raw XY, force raw XY, pos:0, group:3, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
Battery: 95%, discharging.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
Solaar version 1.1.4
|
Solaar version 1.1.7
|
||||||
|
|
||||||
2: MX Master 3S
|
2: MX Master 3S
|
||||||
Device path : None
|
Device path : None
|
||||||
|
@ -6,87 +6,87 @@ Solaar version 1.1.4
|
||||||
Codename : MX Master 3S
|
Codename : MX Master 3S
|
||||||
Kind : mouse
|
Kind : mouse
|
||||||
Protocol : HID++ 4.5
|
Protocol : HID++ 4.5
|
||||||
Serial number: DDBE9E08
|
Serial number: CD2A6BB7
|
||||||
Model ID: B03400000000
|
Model ID: B03400000000
|
||||||
Unit ID: DDBE9E08
|
Unit ID: CD2A6BB7
|
||||||
Bootloader: BL1 69.00.B0003
|
Bootloader: BL1 69.00.B0003
|
||||||
Firmware: RBM 22.00.B0003
|
Firmware: RBM 22.00.B0003
|
||||||
Other:
|
Other:
|
||||||
The power switch is located on the (unknown).
|
The power switch is located on the (unknown).
|
||||||
Supports 35 HID++ 2.0 features:
|
Supports 36 HID++ 2.0 features:
|
||||||
0: ROOT {0000}
|
0: ROOT {0000} V0
|
||||||
1: FEATURE SET {0001}
|
1: FEATURE SET {0001} V0
|
||||||
2: DEVICE FW VERSION {0003}
|
2: DEVICE FW VERSION {0003} V4
|
||||||
Firmware: Bootloader BL1 69.00.B0003 B03438FCA4E6
|
Firmware: Bootloader BL1 69.00.B0003 B03438FCA4E6
|
||||||
Firmware: Firmware RBM 22.00.B0003 B03438FCA4E6
|
Firmware: Firmware RBM 22.00.B0003 B03438FCA4E6
|
||||||
Firmware: Other
|
Firmware: Other
|
||||||
Unit ID: DDBE9E08 Model ID: B03400000000 Transport IDs: {'btleid': 'B034'}
|
Unit ID: CD2A6BB7 Model ID: B03400000000 Transport IDs: {'btleid': 'B034'}
|
||||||
3: DEVICE NAME {0005}
|
3: DEVICE NAME {0005} V0
|
||||||
Name: MX Master 3S
|
Name: MX Master 3S
|
||||||
Kind: mouse
|
Kind: mouse
|
||||||
4: WIRELESS DEVICE STATUS {1D4B}
|
4: WIRELESS DEVICE STATUS {1D4B} V0
|
||||||
5: RESET {0020}
|
5: RESET {0020} V0
|
||||||
6: CRYPTO ID {0021}
|
6: CRYPTO ID {0021} V1
|
||||||
7: DEVICE FRIENDLY NAME {0007}
|
7: DEVICE FRIENDLY NAME {0007} V0
|
||||||
Friendly Name: MX Master 3S
|
Friendly Name: MX Master 3S
|
||||||
8: UNIFIED BATTERY {1004}
|
8: UNIFIED BATTERY {1004} V3
|
||||||
9: REPROG CONTROLS V4 {1B04}
|
Battery: 25%, discharging.
|
||||||
DPI Sliding Adjustment (saved): Off
|
9: REPROG CONTROLS V4 {1B04} V5
|
||||||
DPI Sliding Adjustment : Off
|
Acciones de Tecla/Botón (saved): {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Mouse Gesture Button:Gesture Button Navigation, Smart Shift:Smart Shift}
|
||||||
Mouse Gestures (saved): Off
|
Acciones de Tecla/Botón : {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Mouse Gesture Button:Gesture Button Navigation, Smart Shift:Smart Shift}
|
||||||
Mouse Gestures : Off
|
Desvio de Tecla/Botón (saved): {Middle Button:Normal, Back Button:Normal, Forward Button:Normal, Mouse Gesture Button:Normal, Smart Shift:Normal}
|
||||||
Key/Button Actions (saved): {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Mouse Gesture Button:Gesture Button Navigation, Smart Shift:Smart Shift}
|
Desvio de Tecla/Botón : {Middle Button:Normal, Back Button:Normal, Forward Button:Normal, Mouse Gesture Button:Normal, Smart Shift:Normal}
|
||||||
Key/Button Actions : {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Mouse Gesture Button:Gesture Button Navigation, Smart Shift:Smart Shift}
|
10: CHANGE HOST {1814} V1
|
||||||
Key/Button Diversion (saved): {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Mouse Gesture Button:Regular, Smart Shift:Regular}
|
Cambiar Host : 1:romanescu
|
||||||
Key/Button Diversion : {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Mouse Gesture Button:Regular, Smart Shift:Regular}
|
11: HOSTS INFO {1815} V2
|
||||||
10: CHANGE HOST {1814}
|
Host 0 (paired): romanescu
|
||||||
Change Host : 1:ozzie51
|
|
||||||
11: HOSTS INFO {1815}
|
|
||||||
Host 0 (paired): ozzie51
|
|
||||||
Host 1 (unpaired):
|
Host 1 (unpaired):
|
||||||
Host 2 (unpaired):
|
Host 2 (unpaired):
|
||||||
12: XY STATS {2250}
|
12: XY STATS {2250} V1
|
||||||
13: ADJUSTABLE DPI {2201}
|
13: ADJUSTABLE DPI {2201} V2
|
||||||
Sensitivity (DPI) (saved): 1000
|
Sensibilidad (PPP) (saved): 1000
|
||||||
Sensitivity (DPI) : 1000
|
Sensibilidad (PPP) : 1000
|
||||||
14: SMART SHIFT {2110}
|
14: SMART SHIFT {2110} V0
|
||||||
Scroll Wheel Rachet (saved): 10
|
Scroll Wheel Ratcheted (saved): Freespinning
|
||||||
Scroll Wheel Rachet : 10
|
Scroll Wheel Ratcheted : Freespinning
|
||||||
15: HIRES WHEEL {2121}
|
Scroll Wheel Ratchet Speed (saved): 0
|
||||||
|
Scroll Wheel Ratchet Speed : 1
|
||||||
|
15: HIRES WHEEL {2121} V1
|
||||||
Multiplier: 15
|
Multiplier: 15
|
||||||
Has invert: Normal wheel motion
|
Has invert: Normal wheel motion
|
||||||
Has ratchet switch: Normal wheel mode
|
Has ratchet switch: Free wheel mode
|
||||||
Low resolution mode
|
Low resolution mode
|
||||||
HID notification
|
HID notification
|
||||||
Scroll Wheel Direction (saved): False
|
Dirección Rueda Desplazamiento (saved): False
|
||||||
Scroll Wheel Direction : False
|
Dirección Rueda Desplazamiento : False
|
||||||
Scroll Wheel Resolution (saved): False
|
Resolución Rueda Desplazamiento (saved): False
|
||||||
Scroll Wheel Resolution : False
|
Resolución Rueda Desplazamiento : False
|
||||||
Scroll Wheel Diversion (saved): False
|
Desvio Rueda Desplazamiento (saved): False
|
||||||
Scroll Wheel Diversion : False
|
Desvio Rueda Desplazamiento : False
|
||||||
16: THUMB WHEEL {2150}
|
16: THUMB WHEEL {2150} V0
|
||||||
Thumb Wheel Direction (saved): False
|
Dirección de la Rueda del Pulgar (saved): False
|
||||||
Thumb Wheel Direction : False
|
Dirección de la Rueda del Pulgar : False
|
||||||
Thumb Wheel Diversion (saved): False
|
Desvío de la Rueda del Pulgar (saved): False
|
||||||
Thumb Wheel Diversion : False
|
Desvío de la Rueda del Pulgar : False
|
||||||
17: WHEEL STATS {2251}
|
17: WHEEL STATS {2251} V0
|
||||||
18: DFUCONTROL {00C3}
|
18: DFUCONTROL {00C3} V0
|
||||||
19: DEVICE RESET {1802} internal, hidden, unknown:000010
|
19: DEVICE RESET {1802} V0 internal, hidden, unknown:000010
|
||||||
20: unknown:1803 {1803} internal, hidden, unknown:000010
|
20: unknown:1803 {1803} V0 internal, hidden, unknown:000010
|
||||||
21: CONFIG DEVICE PROPS {1806} internal, hidden, unknown:000010
|
21: CONFIG DEVICE PROPS {1806} V8 internal, hidden, unknown:000010
|
||||||
22: unknown:1816 {1816} internal, hidden, unknown:000010
|
22: unknown:1816 {1816} V0 internal, hidden, unknown:000010
|
||||||
23: OOBSTATE {1805} internal, hidden
|
23: OOBSTATE {1805} V0 internal, hidden
|
||||||
24: unknown:1830 {1830} internal, hidden, unknown:000010
|
24: unknown:1830 {1830} V0 internal, hidden, unknown:000010
|
||||||
25: unknown:1891 {1891} internal, hidden, unknown:000008
|
25: unknown:1891 {1891} V7 internal, hidden, unknown:000008
|
||||||
26: unknown:18A1 {18A1} internal, hidden, unknown:000010
|
26: unknown:18A1 {18A1} V0 internal, hidden, unknown:000010
|
||||||
27: unknown:1E00 {1E00} hidden
|
27: unknown:1E00 {1E00} V0 hidden
|
||||||
28: unknown:1E02 {1E02} internal, hidden
|
28: unknown:1E02 {1E02} V0 internal, hidden
|
||||||
29: unknown:1602 {1602}
|
29: unknown:1602 {1602} V0
|
||||||
30: unknown:1EB0 {1EB0} internal, hidden, unknown:000010
|
30: unknown:1EB0 {1EB0} V0 internal, hidden, unknown:000010
|
||||||
31: unknown:1861 {1861} internal, hidden, unknown:000010
|
31: unknown:1861 {1861} V1 internal, hidden, unknown:000010
|
||||||
32: unknown:9300 {9300} internal, hidden, unknown:000010
|
32: unknown:9300 {9300} V0 internal, hidden, unknown:000010
|
||||||
33: unknown:9001 {9001} internal, hidden, unknown:000010
|
33: unknown:9001 {9001} V0 internal, hidden, unknown:000010
|
||||||
34: unknown:1E22 {1E22} internal, hidden, unknown:000010
|
34: unknown:1E22 {1E22} V0 internal, hidden, unknown:000010
|
||||||
|
35: unknown:9205 {9205} V0 internal, hidden, unknown:000010
|
||||||
Has 8 reprogrammable keys:
|
Has 8 reprogrammable keys:
|
||||||
0: Left Button , default: Left Click => Left Click
|
0: Left Button , default: Left Click => Left Click
|
||||||
mse, analytics key events, pos:0, group:1, group mask:g1
|
mse, analytics key events, pos:0, group:1, group mask:g1
|
||||||
|
@ -113,118 +113,3 @@ Solaar version 1.1.4
|
||||||
divertable, virtual, raw XY, force raw XY, pos:0, group:3, group mask:empty
|
divertable, virtual, raw XY, force raw XY, pos:0, group:3, group mask:empty
|
||||||
reporting: default
|
reporting: default
|
||||||
Battery: 25%, discharging.
|
Battery: 25%, discharging.
|
||||||
|
|
||||||
Solaar version 1.1.4
|
|
||||||
|
|
||||||
255: MX Master 3S
|
|
||||||
Device path : /dev/hidraw7
|
|
||||||
USB id : 046d:B034
|
|
||||||
Codename : MX Master 3S
|
|
||||||
Kind : mouse
|
|
||||||
Protocol : HID++ 4.5
|
|
||||||
Serial number:
|
|
||||||
Model ID: B03400000000
|
|
||||||
Unit ID: AA06659E
|
|
||||||
Bootloader: BL1 69.00.B0003
|
|
||||||
Firmware: RBM 22.00.B0003
|
|
||||||
Other:
|
|
||||||
Supports 35 HID++ 2.0 features:
|
|
||||||
0: ROOT {0000}
|
|
||||||
1: FEATURE SET {0001}
|
|
||||||
2: DEVICE FW VERSION {0003}
|
|
||||||
Firmware: Bootloader BL1 69.00.B0003 B03438FCA4E6
|
|
||||||
Firmware: Firmware RBM 22.00.B0003 B03438FCA4E6
|
|
||||||
Firmware: Other
|
|
||||||
Unit ID: AA06659E Model ID: B03400000000 Transport IDs: {'btleid': 'B034'}
|
|
||||||
3: DEVICE NAME {0005}
|
|
||||||
Name: MX Master 3S
|
|
||||||
Kind: mouse
|
|
||||||
4: WIRELESS DEVICE STATUS {1D4B}
|
|
||||||
5: RESET {0020}
|
|
||||||
6: CRYPTO ID {0021}
|
|
||||||
7: DEVICE FRIENDLY NAME {0007}
|
|
||||||
Friendly Name: MX Master 3S
|
|
||||||
8: UNIFIED BATTERY {1004}
|
|
||||||
9: REPROG CONTROLS V4 {1B04}
|
|
||||||
DPI Sliding Adjustment (saved): Off
|
|
||||||
DPI Sliding Adjustment : Off
|
|
||||||
Mouse Gestures (saved): Off
|
|
||||||
Mouse Gestures : Off
|
|
||||||
Key/Button Actions (saved): {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Mouse Gesture Button:Gesture Button Navigation, Smart Shift:Smart Shift}
|
|
||||||
Key/Button Actions : {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Mouse Gesture Button:Gesture Button Navigation, Smart Shift:Smart Shift}
|
|
||||||
Key/Button Diversion (saved): {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Mouse Gesture Button:Regular, Smart Shift:Regular}
|
|
||||||
Key/Button Diversion : {Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Mouse Gesture Button:Regular, Smart Shift:Regular}
|
|
||||||
10: CHANGE HOST {1814}
|
|
||||||
Change Host : 3:fedora
|
|
||||||
11: HOSTS INFO {1815}
|
|
||||||
Host 0 (paired): fedora
|
|
||||||
Host 1 (unpaired):
|
|
||||||
Host 2 (paired): fedora
|
|
||||||
12: XY STATS {2250}
|
|
||||||
13: ADJUSTABLE DPI {2201}
|
|
||||||
Sensitivity (DPI) (saved): 1000
|
|
||||||
Sensitivity (DPI) : 1000
|
|
||||||
14: SMART SHIFT {2110}
|
|
||||||
Scroll Wheel Rachet (saved): 10
|
|
||||||
Scroll Wheel Rachet : 10
|
|
||||||
15: HIRES WHEEL {2121}
|
|
||||||
Multiplier: 15
|
|
||||||
Has invert: Normal wheel motion
|
|
||||||
Has ratchet switch: Normal wheel mode
|
|
||||||
Low resolution mode
|
|
||||||
HID notification
|
|
||||||
Scroll Wheel Direction (saved): False
|
|
||||||
Scroll Wheel Direction : False
|
|
||||||
Scroll Wheel Resolution (saved): False
|
|
||||||
Scroll Wheel Resolution : False
|
|
||||||
Scroll Wheel Diversion (saved): False
|
|
||||||
Scroll Wheel Diversion : False
|
|
||||||
16: THUMB WHEEL {2150}
|
|
||||||
Thumb Wheel Direction (saved): False
|
|
||||||
Thumb Wheel Direction : False
|
|
||||||
Thumb Wheel Diversion (saved): False
|
|
||||||
Thumb Wheel Diversion : False
|
|
||||||
17: WHEEL STATS {2251}
|
|
||||||
18: DFUCONTROL {00C3}
|
|
||||||
19: DEVICE RESET {1802} internal, hidden, unknown:000010
|
|
||||||
20: unknown:1803 {1803} internal, hidden, unknown:000010
|
|
||||||
21: CONFIG DEVICE PROPS {1806} internal, hidden, unknown:000010
|
|
||||||
22: unknown:1816 {1816} internal, hidden, unknown:000010
|
|
||||||
23: OOBSTATE {1805} internal, hidden
|
|
||||||
24: unknown:1830 {1830} internal, hidden, unknown:000010
|
|
||||||
25: unknown:1891 {1891} internal, hidden, unknown:000008
|
|
||||||
26: unknown:18A1 {18A1} internal, hidden, unknown:000010
|
|
||||||
27: unknown:1E00 {1E00} hidden
|
|
||||||
28: unknown:1E02 {1E02} internal, hidden
|
|
||||||
29: unknown:1602 {1602}
|
|
||||||
30: unknown:1EB0 {1EB0} internal, hidden, unknown:000010
|
|
||||||
31: unknown:1861 {1861} internal, hidden, unknown:000010
|
|
||||||
32: unknown:9300 {9300} internal, hidden, unknown:000010
|
|
||||||
33: unknown:9001 {9001} internal, hidden, unknown:000010
|
|
||||||
34: unknown:1E22 {1E22} internal, hidden, unknown:000010
|
|
||||||
Has 8 reprogrammable keys:
|
|
||||||
0: Left Button , default: Left Click => Left Click
|
|
||||||
mse, analytics key events, pos:0, group:1, group mask:g1
|
|
||||||
reporting: default
|
|
||||||
1: Right Button , default: Right Click => Right Click
|
|
||||||
mse, analytics key events, pos:0, group:1, group mask:g1
|
|
||||||
reporting: default
|
|
||||||
2: Middle Button , default: Mouse Middle Button => Mouse Middle Button
|
|
||||||
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
|
|
||||||
reporting: default
|
|
||||||
3: Back Button , default: Mouse Back Button => Mouse Back Button
|
|
||||||
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
|
|
||||||
reporting: default
|
|
||||||
4: Forward Button , default: Mouse Forward Button => Mouse Forward Button
|
|
||||||
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
|
|
||||||
reporting: default
|
|
||||||
5: Mouse Gesture Button , default: Gesture Button Navigation => Gesture Button Navigation
|
|
||||||
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
|
|
||||||
reporting: default
|
|
||||||
6: Smart Shift , default: Smart Shift => Smart Shift
|
|
||||||
mse, reprogrammable, divertable, raw XY, analytics key events, pos:0, group:2, group mask:g1,g2
|
|
||||||
reporting: default
|
|
||||||
7: Virtual Gesture Button , default: Virtual Gesture Button => Virtual Gesture Button
|
|
||||||
divertable, virtual, raw XY, force raw XY, pos:0, group:3, group mask:empty
|
|
||||||
reporting: default
|
|
||||||
Battery: 60%, recharging.
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
Solaar version 1.1.4
|
Solaar version 1.1.7
|
||||||
|
|
||||||
1: MX Mechanical
|
1: MX Mechanical
|
||||||
Device path : None
|
Device path : None
|
||||||
|
@ -6,67 +6,69 @@ Solaar version 1.1.4
|
||||||
Codename : MX MCHNCL
|
Codename : MX MCHNCL
|
||||||
Kind : keyboard
|
Kind : keyboard
|
||||||
Protocol : HID++ 4.5
|
Protocol : HID++ 4.5
|
||||||
Serial number: D5CFD824
|
Serial number: 2DF63C09
|
||||||
Model ID: B36600000000
|
Model ID: B36600000000
|
||||||
Unit ID: D5CFD824
|
Unit ID: 2DF63C09
|
||||||
Bootloader: BL1 45.00.B0016
|
Bootloader: BL1 45.00.B0016
|
||||||
Firmware: RBK 71.01.B0018
|
Firmware: RBK 71.00.B0016
|
||||||
Other:
|
Other:
|
||||||
The power switch is located on the (unknown).
|
The power switch is located on the (unknown).
|
||||||
Supports 32 HID++ 2.0 features:
|
Supports 33 HID++ 2.0 features:
|
||||||
0: ROOT {0000}
|
0: ROOT {0000} V0
|
||||||
1: FEATURE SET {0001}
|
1: FEATURE SET {0001} V0
|
||||||
2: DEVICE FW VERSION {0003}
|
2: DEVICE FW VERSION {0003} V4
|
||||||
Firmware: Bootloader BL1 45.00.B0016 B3662CB9B8E2
|
Firmware: Bootloader BL1 45.00.B0016 B3662CB9B8E2
|
||||||
Firmware: Firmware RBK 71.01.B0018 B3664F69C315
|
Firmware: Firmware RBK 71.00.B0016 B3662CB9B8E2
|
||||||
Firmware: Other
|
Firmware: Other
|
||||||
Unit ID: D5CFD824 Model ID: B36600000000 Transport IDs: {'btleid': 'B366'}
|
Unit ID: 2DF63C09 Model ID: B36600000000 Transport IDs: {'btleid': 'B366'}
|
||||||
3: DEVICE NAME {0005}
|
3: DEVICE NAME {0005} V0
|
||||||
Name: MX Mechanical
|
Name: MX Mechanical
|
||||||
Kind: keyboard
|
Kind: keyboard
|
||||||
4: WIRELESS DEVICE STATUS {1D4B}
|
4: WIRELESS DEVICE STATUS {1D4B} V0
|
||||||
5: RESET {0020}
|
5: RESET {0020} V0
|
||||||
6: DEVICE FRIENDLY NAME {0007}
|
6: DEVICE FRIENDLY NAME {0007} V0
|
||||||
Friendly Name: MX MCHNCL
|
Friendly Name: MX MCHNCL
|
||||||
7: UNIFIED BATTERY {1004}
|
7: UNIFIED BATTERY {1004} V3
|
||||||
8: REPROG CONTROLS V4 {1B04}
|
Battery: 50%, discharging.
|
||||||
Key/Button Diversion (saved): {Calculator:Regular, Show Desktop:Regular, Lock PC:Regular, Brightness Down:Regular, Brightness Up:Regular, MultiPlatform Search:Regular, Backlight Down:Regular, Backlight Up:Regular, Previous Fn:Regular, Play/Pause Fn:Regular, Next Fn:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular, Voice Dictation:Regular, Open Emoji Panel:Regular, Snipping Tool:Regular, Grave Accent:Regular, Tab Key:Regular, Caps Lock:Regular, Left Shift:Regular, Left Control:Regular, Left Option/Start:Regular, Left Command/Alt:Regular, Right Command/Alt:Regular, Right Option/Start:Regular, Right Control:Regular, Right Shift:Regular, Insert:Regular, Delete:Regular, Home:Regular, End:Regular, Page Up:Regular, Page Down:Regular, Mute Microphone:Regular, Backslash:Regular}
|
8: REPROG CONTROLS V4 {1B04} V5
|
||||||
Key/Button Diversion : {Calculator:Regular, Show Desktop:Regular, Lock PC:Regular, Brightness Down:Regular, Brightness Up:Regular, MultiPlatform Search:Regular, Backlight Down:Regular, Backlight Up:Regular, Previous Fn:Regular, Play/Pause Fn:Regular, Next Fn:Regular, Mute Fn:Regular, Volume Down Fn:Regular, Volume Up Fn:Regular, Voice Dictation:Regular, Open Emoji Panel:Regular, Snipping Tool:Regular, Grave Accent:Regular, Tab Key:Regular, Caps Lock:Regular, Left Shift:Regular, Left Control:Regular, Left Option/Start:Regular, Left Command/Alt:Regular, Right Command/Alt:Regular, Right Option/Start:Regular, Right Control:Regular, Right Shift:Regular, Insert:Regular, Delete:Regular, Home:Regular, End:Regular, Page Up:Regular, Page Down:Regular, Mute Microphone:Regular, Backslash:Regular}
|
Desvio de Tecla/Botón (saved): {Calculator:Normal, Show Desktop:Normal, Lock PC:Normal, Brightness Down:Normal, Brightness Up:Normal, MultiPlatform Search:Normal, Backlight Down:Normal, Backlight Up:Normal, Previous Fn:Normal, Play/Pause Fn:Normal, Next Fn:Normal, Mute Fn:Normal, Volume Down Fn:Normal, Volume Up Fn:Normal, Voice Dictation:Normal, Open Emoji Panel:Normal, Snipping Tool:Normal, Grave Accent:Normal, Tab Key:Normal, Caps Lock:Normal, Left Shift:Normal, Left Control:Normal, Left Option/Start:Normal, Left Command/Alt:Normal, Right Command/Alt:Normal, Right Option/Start:Normal, Right Control:Normal, Right Shift:Normal, Insert:Normal, Delete:Normal, Home:Normal, End:Normal, Page Up:Normal, Page Down:Normal, Mute Microphone:Normal, Backslash:Normal}
|
||||||
9: CHANGE HOST {1814}
|
Desvio de Tecla/Botón : {Calculator:Normal, Show Desktop:Normal, Lock PC:Normal, Brightness Down:Normal, Brightness Up:Normal, MultiPlatform Search:Normal, Backlight Down:Normal, Backlight Up:Normal, Previous Fn:Normal, Play/Pause Fn:Normal, Next Fn:Normal, Mute Fn:Normal, Volume Down Fn:Normal, Volume Up Fn:Normal, Voice Dictation:Normal, Open Emoji Panel:Normal, Snipping Tool:Normal, Grave Accent:Normal, Tab Key:Normal, Caps Lock:Normal, Left Shift:Normal, Left Control:Normal, Left Option/Start:Normal, Left Command/Alt:Normal, Right Command/Alt:Normal, Right Option/Start:Normal, Right Control:Normal, Right Shift:Normal, Insert:Normal, Delete:Normal, Home:Normal, End:Normal, Page Up:Normal, Page Down:Normal, Mute Microphone:Normal, Backslash:Normal}
|
||||||
Change Host : 1:ozzie51
|
9: CHANGE HOST {1814} V1
|
||||||
10: HOSTS INFO {1815}
|
Cambiar Host : 1:romanescu
|
||||||
Host 0 (paired): ozzie51
|
10: HOSTS INFO {1815} V2
|
||||||
|
Host 0 (paired): romanescu
|
||||||
Host 1 (unpaired):
|
Host 1 (unpaired):
|
||||||
Host 2 (unpaired):
|
Host 2 (unpaired):
|
||||||
11: BACKLIGHT2 {1982}
|
11: BACKLIGHT2 {1982} V2
|
||||||
Backlight (saved): True
|
Retroiluminación (saved): True
|
||||||
Backlight : True
|
Retroiluminación : True
|
||||||
12: K375S FN INVERSION {40A3}
|
12: K375S FN INVERSION {40A3} V0
|
||||||
Swap Fx function (saved): False
|
Intercambiar función Fx (saved): True
|
||||||
Swap Fx function : False
|
Intercambiar función Fx : True
|
||||||
13: LOCK KEY STATE {4220}
|
13: LOCK KEY STATE {4220} V0
|
||||||
14: KEYBOARD DISABLE KEYS {4521}
|
14: KEYBOARD DISABLE KEYS {4521} V0
|
||||||
Disable keys (saved): {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
|
Desactivar teclas (saved): {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
|
||||||
Disable keys : {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
|
Desactivar teclas : {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
|
||||||
15: MULTIPLATFORM {4531}
|
15: MULTIPLATFORM {4531} V1
|
||||||
Set OS (saved): Windows
|
Especificar SO (saved): Windows
|
||||||
Set OS : Windows
|
Especificar SO : Windows
|
||||||
16: KEYBOARD LAYOUT 2 {4540}
|
16: KEYBOARD LAYOUT 2 {4540} V0
|
||||||
17: DFUCONTROL {00C3}
|
17: DFUCONTROL {00C3} V0
|
||||||
18: DEVICE RESET {1802} internal, hidden, unknown:000010
|
18: DEVICE RESET {1802} V0 internal, hidden, unknown:000010
|
||||||
19: unknown:1803 {1803} internal, hidden, unknown:000010
|
19: unknown:1803 {1803} V0 internal, hidden, unknown:000010
|
||||||
20: CONFIG DEVICE PROPS {1806} internal, hidden, unknown:000010
|
20: CONFIG DEVICE PROPS {1806} V8 internal, hidden, unknown:000010
|
||||||
21: unknown:1816 {1816} internal, hidden, unknown:000010
|
21: unknown:1816 {1816} V0 internal, hidden, unknown:000010
|
||||||
22: OOBSTATE {1805} internal, hidden
|
22: OOBSTATE {1805} V0 internal, hidden
|
||||||
23: unknown:1830 {1830} internal, hidden, unknown:000010
|
23: unknown:1830 {1830} V0 internal, hidden, unknown:000010
|
||||||
24: unknown:1891 {1891} internal, hidden, unknown:000008
|
24: unknown:1891 {1891} V7 internal, hidden, unknown:000008
|
||||||
25: unknown:18A1 {18A1} internal, hidden, unknown:000010
|
25: unknown:18A1 {18A1} V0 internal, hidden, unknown:000010
|
||||||
26: unknown:1E00 {1E00} hidden
|
26: unknown:1E00 {1E00} V0 hidden
|
||||||
27: unknown:1E02 {1E02} internal, hidden
|
27: unknown:1E02 {1E02} V0 internal, hidden
|
||||||
28: unknown:1602 {1602}
|
28: unknown:1602 {1602} V0
|
||||||
29: unknown:1EB0 {1EB0} internal, hidden, unknown:000010
|
29: unknown:1EB0 {1EB0} V0 internal, hidden, unknown:000010
|
||||||
30: unknown:1861 {1861} internal, hidden, unknown:000010
|
30: unknown:1861 {1861} V1 internal, hidden, unknown:000010
|
||||||
31: unknown:1A20 {1A20} internal, hidden, unknown:000010
|
31: unknown:1A20 {1A20} V0 internal, hidden, unknown:000010
|
||||||
|
32: unknown:18B0 {18B0} V0 internal, hidden, unknown:000010
|
||||||
Has 41 reprogrammable keys:
|
Has 41 reprogrammable keys:
|
||||||
0: Brightness Down , default: Brightness Down => Brightness Down
|
0: Brightness Down , default: Brightness Down => Brightness Down
|
||||||
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:1, group:0, group mask:empty
|
is FN, FN sensitive, reprogrammable, divertable, analytics key events, pos:1, group:0, group mask:empty
|
||||||
|
|
|
@ -0,0 +1,111 @@
|
||||||
|
Solaar version 1.1.7
|
||||||
|
|
||||||
|
|
||||||
|
2: Multi Device Silent Mouse M585/M590
|
||||||
|
Device path : /dev/hidraw2
|
||||||
|
WPID : 406B
|
||||||
|
Codename : M585/M590
|
||||||
|
Kind : mouse
|
||||||
|
Protocol : HID++ 4.5
|
||||||
|
Polling rate : 8 ms (125Hz)
|
||||||
|
Serial number: 37216581
|
||||||
|
Model ID: B01B406B0000
|
||||||
|
Unit ID: F2D653C0
|
||||||
|
Bootloader: BOT 48.00.B0001
|
||||||
|
Firmware: MPM 05.02.B0007
|
||||||
|
Other:
|
||||||
|
The power switch is located on the base.
|
||||||
|
Supports 34 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000} V0
|
||||||
|
1: FEATURE SET {0001} V0
|
||||||
|
2: DEVICE FW VERSION {0003} V2
|
||||||
|
Firmware: Bootloader BOT 48.00.B0001 00005BEB5EE001
|
||||||
|
Firmware: Firmware MPM 05.02.B0007 406B5BEB5EE001
|
||||||
|
Firmware: Other
|
||||||
|
Unit ID: F2D653C0 Model ID: B01B406B0000 Transport IDs: {'btleid': 'B01B', 'wpid': '406B'}
|
||||||
|
3: DEVICE NAME {0005} V0
|
||||||
|
Name: M585/M590 Multi-Device Mouse
|
||||||
|
Kind: mouse
|
||||||
|
4: WIRELESS DEVICE STATUS {1D4B} V0
|
||||||
|
5: RESET {0020} V0
|
||||||
|
6: CRYPTO ID {0021} V0
|
||||||
|
7: DEVICE FRIENDLY NAME {0007} V0
|
||||||
|
Friendly Name: M585/M590
|
||||||
|
8: BATTERY STATUS {1000} V0
|
||||||
|
Battery: 50%, discharging, next level 20%.
|
||||||
|
9: CHANGE HOST {1814} V1
|
||||||
|
Cambiar Host : 1:romanescu
|
||||||
|
10: HOSTS INFO {1815} V1
|
||||||
|
Host 0 (paired): romanescu
|
||||||
|
Host 1 (paired): espinaca
|
||||||
|
11: REPROG CONTROLS V4 {1B04} V3
|
||||||
|
Acciones de Tecla/Botón (saved): {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Left Tilt:Mouse Scroll Left Button , Right Tilt:Mouse Scroll Right Button}
|
||||||
|
Acciones de Tecla/Botón : {Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Left Tilt:Mouse Scroll Left Button , Right Tilt:Mouse Scroll Right Button}
|
||||||
|
Desvio de Tecla/Botón (saved): {Middle Button:Normal, Back Button:Normal, Forward Button:Normal, Left Tilt:Normal, Right Tilt:Normal}
|
||||||
|
Desvio de Tecla/Botón : {Middle Button:Normal, Back Button:Normal, Forward Button:Normal, Left Tilt:Normal, Right Tilt:Normal}
|
||||||
|
12: PERSISTENT REMAPPABLE ACTION {1C00} V0
|
||||||
|
Persistent Key/Button Mapping : {Left Button:Mouse Button Left, Right Button:Mouse Button Right, Middle Button:Mouse Button Middle, Back Button:Mouse Button Back, Forward Button:Mouse Button Forward, Left Tilt:Horizontal Scroll Left, Right Tilt:Horizontal Scroll Right}
|
||||||
|
13: POINTER SPEED {2205} V0
|
||||||
|
Pointer Speed: 1.0
|
||||||
|
Sensibilidad (Velocidad del puntero) (saved): 256
|
||||||
|
Sensibilidad (Velocidad del puntero) : 256
|
||||||
|
14: VERTICAL SCROLLING {2100} V0
|
||||||
|
Roller type: standard
|
||||||
|
Ratchet per turn: 18
|
||||||
|
Scroll lines: 0
|
||||||
|
15: DFUCONTROL SIGNED {00C2} V0
|
||||||
|
16: DEVICE RESET {1802} V0 internal, hidden
|
||||||
|
17: unknown:1803 {1803} V0 internal, hidden
|
||||||
|
18: CONFIG DEVICE PROPS {1806} V0 internal, hidden
|
||||||
|
19: OOBSTATE {1805} V0 internal, hidden
|
||||||
|
20: unknown:1813 {1813} V0 internal, hidden
|
||||||
|
21: unknown:1830 {1830} V0 internal, hidden
|
||||||
|
22: unknown:1861 {1861} V0 internal, hidden
|
||||||
|
23: unknown:1890 {1890} V0 internal, hidden
|
||||||
|
24: unknown:1891 {1891} V0 internal, hidden
|
||||||
|
25: unknown:18A1 {18A1} V0 internal, hidden
|
||||||
|
26: unknown:1DF3 {1DF3} V0 internal, hidden
|
||||||
|
27: unknown:1E00 {1E00} V0 hidden
|
||||||
|
28: unknown:1EB0 {1EB0} V0 internal, hidden
|
||||||
|
29: unknown:18B1 {18B1} V0 internal, hidden
|
||||||
|
30: unknown:1850 {1850} V0 internal, hidden
|
||||||
|
31: unknown:1F03 {1F03} V0 internal, hidden
|
||||||
|
32: unknown:18C0 {18C0} V0 internal, hidden
|
||||||
|
33: LOWRES WHEEL {2130} V0
|
||||||
|
Wheel Reports: HID
|
||||||
|
Desvio Rueda Desplazamiento (saved): False
|
||||||
|
Desvio Rueda Desplazamiento : False
|
||||||
|
Has 8 reprogrammable keys:
|
||||||
|
0: Left Button , default: Left Click => Left Click
|
||||||
|
mse, reprogrammable, pos:0, group:1, group mask:g1
|
||||||
|
reporting: default
|
||||||
|
1: Right Button , default: Right Click => Right Click
|
||||||
|
mse, reprogrammable, pos:0, group:1, group mask:g1
|
||||||
|
reporting: default
|
||||||
|
2: Middle Button , default: Mouse Middle Button => Mouse Middle Button
|
||||||
|
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
|
||||||
|
reporting: default
|
||||||
|
3: Back Button , default: Mouse Back Button => Mouse Back Button
|
||||||
|
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
|
||||||
|
reporting: default
|
||||||
|
4: Forward Button , default: Mouse Forward Button => Mouse Forward Button
|
||||||
|
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
|
||||||
|
reporting: default
|
||||||
|
5: Left Tilt , default: Mouse Scroll Left Button => Mouse Scroll Left Button
|
||||||
|
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
|
||||||
|
reporting: default
|
||||||
|
6: Right Tilt , default: Mouse Scroll Right Button => Mouse Scroll Right Button
|
||||||
|
mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2
|
||||||
|
reporting: default
|
||||||
|
7: Virtual Gesture Button , default: Virtual Gesture Button => Virtual Gesture Button
|
||||||
|
divertable, virtual, raw XY, force raw XY, pos:0, group:3, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
Has 7 persistent remappable keys:
|
||||||
|
0: Left Button => Mouse Button: Mouse Button Left
|
||||||
|
1: Right Button => Mouse Button: Mouse Button Right
|
||||||
|
2: Middle Button => Mouse Button: Mouse Button Middle
|
||||||
|
3: Back Button => Mouse Button: Mouse Button Back
|
||||||
|
4: Forward Button => Mouse Button: Mouse Button Forward
|
||||||
|
5: Left Tilt => Horizontal Scroll: Horizontal Scroll Left
|
||||||
|
6: Right Tilt => Horizontal Scroll: Horizontal Scroll Right
|
||||||
|
Battery: 50%, discharging, next level 20%.
|
|
@ -0,0 +1,17 @@
|
||||||
|
solaar version 1.1.8
|
||||||
|
|
||||||
|
3: Number Pad N545
|
||||||
|
Device path : /dev/hidraw3
|
||||||
|
WPID : 2006
|
||||||
|
Codename : N545
|
||||||
|
Kind : numpad
|
||||||
|
Protocol : HID++ 1.0
|
||||||
|
Polling rate : 20 ms (50Hz)
|
||||||
|
Serial number: 900A4D98
|
||||||
|
Firmware: 13.00.B0037
|
||||||
|
Bootloader: 02.03
|
||||||
|
Other: 00.01
|
||||||
|
The power switch is located on the base.
|
||||||
|
Notifications: battery status (0x100000).
|
||||||
|
Features: (none)
|
||||||
|
Battery: full, discharging.
|
|
@ -0,0 +1,68 @@
|
||||||
|
solaar version 1.1.10
|
||||||
|
|
||||||
|
Receiver
|
||||||
|
Device path : /dev/hidraw3
|
||||||
|
USB id : 046d:C54D
|
||||||
|
Serial : 8FF3BF7B
|
||||||
|
Firmware : 07.00.B0008
|
||||||
|
Bootloader : 00.08
|
||||||
|
Other : C1.53
|
||||||
|
Has 1 paired device(s) out of a maximum of 2.
|
||||||
|
Notifications: (none)
|
||||||
|
Device activity counters: 1=51
|
||||||
|
|
||||||
|
1: PRO X 2
|
||||||
|
Device path : None
|
||||||
|
WPID : 40A9
|
||||||
|
Codename : PRO X 2
|
||||||
|
Kind : mouse
|
||||||
|
Protocol : HID++ 4.2
|
||||||
|
Polling rate : 8 ms (125Hz)
|
||||||
|
Serial number: <nope>
|
||||||
|
Model ID: 40A9C09B0000
|
||||||
|
Unit ID: <nope>
|
||||||
|
Bootloader: BL1 71.00.B0012
|
||||||
|
Firmware: MPM 32.00.B0012
|
||||||
|
Supports 32 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000} V0
|
||||||
|
1: FEATURE SET {0001} V0
|
||||||
|
2: DEVICE FW VERSION {0003} V4
|
||||||
|
Firmware: Bootloader BL1 71.00.B0012 AB1CDBC0A7D9
|
||||||
|
Firmware: Firmware MPM 32.00.B0012 40A9DBC0A7D9
|
||||||
|
Unit ID: <nope> Model ID: 40A9C09B0000 Transport IDs: {'wpid': '40A9', 'usbid': 'C09B'}
|
||||||
|
3: DEVICE NAME {0005} V2
|
||||||
|
Name: PRO X 2
|
||||||
|
Kind: mouse
|
||||||
|
4: WIRELESS DEVICE STATUS {1D4B} V0
|
||||||
|
5: CONFIG CHANGE {0020} V0
|
||||||
|
6: UNIFIED BATTERY {1004} V3
|
||||||
|
Battery: 96%, discharging.
|
||||||
|
7: XY STATS {2250} V1
|
||||||
|
8: WHEEL STATS {2251} V0
|
||||||
|
9: unknown:2202 {2202} V0 EXTENDED_ADJUSTABLE_DPI
|
||||||
|
10: MODE STATUS {8090} V2
|
||||||
|
11: unknown:8061 {8061} V0 EXTENDED_ADJUSTABLE_REPORT_RATE
|
||||||
|
12: ONBOARD PROFILES {8100} V0
|
||||||
|
Device Mode: On-Board
|
||||||
|
Onboard Profiles (saved): Enable
|
||||||
|
Onboard Profiles : Enable
|
||||||
|
13: MOUSE BUTTON SPY {8110} V0
|
||||||
|
14: unknown:1500 {1500} V0 FORCE_PAIRING
|
||||||
|
15: unknown:1801 {1801} V0 internal, hidden, unknown:000010
|
||||||
|
16: DEVICE RESET {1802} V0 internal, hidden, unknown:000010
|
||||||
|
17: unknown:1803 {1803} V0 internal, hidden, unknown:000010
|
||||||
|
18: CONFIG DEVICE PROPS {1806} V8 internal, hidden, unknown:000010
|
||||||
|
19: unknown:1817 {1817} V0 internal, hidden, unknown:000010
|
||||||
|
20: OOBSTATE {1805} V0 internal, hidden
|
||||||
|
21: unknown:1830 {1830} V0 internal, hidden, unknown:000010
|
||||||
|
22: unknown:1875 {1875} V0 internal, hidden, unknown:000010
|
||||||
|
23: unknown:1861 {1861} V1 internal, hidden, unknown:000010
|
||||||
|
24: unknown:1890 {1890} V9 internal, hidden, unknown:000008
|
||||||
|
25: unknown:18A1 {18A1} V0 internal, hidden, unknown:000010
|
||||||
|
26: unknown:1E00 {1E00} V0 hidden
|
||||||
|
27: unknown:1E02 {1E02} V0 internal, hidden
|
||||||
|
28: unknown:1E22 {1E22} V1 internal, hidden, unknown:000010
|
||||||
|
29: unknown:1602 {1602} V0
|
||||||
|
30: unknown:1EB0 {1EB0} V0 internal, hidden, unknown:000010
|
||||||
|
31: unknown:18B1 {18B1} V0 internal, hidden, unknown:000010
|
||||||
|
Battery: 96%, discharging.
|
|
@ -0,0 +1,30 @@
|
||||||
|
Solaar version 1.1.7
|
||||||
|
|
||||||
|
1: Rechargeable Trackpad T651
|
||||||
|
Device path : /dev/hidraw9
|
||||||
|
USB id : 046d:B00C
|
||||||
|
Codename : Rechargeable
|
||||||
|
Kind : touchpad
|
||||||
|
Protocol : HID++ 2.0
|
||||||
|
Serial number:
|
||||||
|
Model ID: 000000000000
|
||||||
|
Unit ID: 00000000
|
||||||
|
Firmware: RBM 05.00.B0026
|
||||||
|
Other:
|
||||||
|
Supports 9 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000} V0
|
||||||
|
1: FEATURE SET {0001} V0
|
||||||
|
2: FEATURE INFO {0002} V0
|
||||||
|
3: DEVICE FW VERSION {0003} V0
|
||||||
|
Firmware: Firmware RBM 05.00.B0026 B00C
|
||||||
|
Firmware: Other
|
||||||
|
Unit ID: 00000000 Model ID: 000000000000 Transport IDs: {}
|
||||||
|
4: DEVICE NAME {0005} V0
|
||||||
|
Name: Rechargeable Trackpad T651
|
||||||
|
Kind: touchpad
|
||||||
|
5: unknown:1E00 {1E00} V0 hidden
|
||||||
|
6: GENERIC TEST {1800} V0 internal, hidden
|
||||||
|
7: BATTERY STATUS {1000} V0
|
||||||
|
Battery: 90%, discharging, next level 70%.
|
||||||
|
8: TOUCHPAD RAW XY {6100} V0
|
||||||
|
Battery: 90%, discharging, next level 70%.
|
|
@ -40,8 +40,7 @@ Solaar version 1.1.3
|
||||||
Key/Button Diversion : {Middle Button:Regular, Back Button:Regular, Forward Button:Regular}
|
Key/Button Diversion : {Middle Button:Regular, Back Button:Regular, Forward Button:Regular}
|
||||||
9: HOSTS INFO {1815}
|
9: HOSTS INFO {1815}
|
||||||
Host 0 (paired): legion15
|
Host 0 (paired): legion15
|
||||||
10: XY STATS {2250}
|
10: XY STATS 11: LOWRES WHEEL {2130}
|
||||||
11: LOWRES WHEEL {2130}
|
|
||||||
Wheel Reports: HID
|
Wheel Reports: HID
|
||||||
Scroll Wheel Diversion (saved): False
|
Scroll Wheel Diversion (saved): False
|
||||||
Scroll Wheel Diversion : False
|
Scroll Wheel Diversion : False
|
||||||
|
|
|
@ -0,0 +1,80 @@
|
||||||
|
Solaar version 1.1.1
|
||||||
|
|
||||||
|
1: Wireless All-in-One Keyboard TK820
|
||||||
|
Device path : /dev/hidraw5
|
||||||
|
WPID : 4102
|
||||||
|
Codename : TK820
|
||||||
|
Kind : keyboard
|
||||||
|
Protocol : HID++ 2.0
|
||||||
|
Polling rate : 8 ms (125Hz)
|
||||||
|
Serial number: 7D7699C9
|
||||||
|
Model ID: 000000000000
|
||||||
|
Unit ID: 00000000
|
||||||
|
Firmware: RQK 52.00.B0025
|
||||||
|
Bootloader: BL 02.00.B0001
|
||||||
|
Hardware: 72
|
||||||
|
Other:
|
||||||
|
The power switch is located on the top right corner.
|
||||||
|
Supports 28 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000}
|
||||||
|
1: FEATURE SET {0001}
|
||||||
|
2: FEATURE INFO {0002}
|
||||||
|
3: DEVICE FW VERSION {0003}
|
||||||
|
Firmware: Firmware RQK 52.00.B0025 4102
|
||||||
|
Firmware: Bootloader BL 02.00.B0001 4102
|
||||||
|
Firmware: Hardware 72
|
||||||
|
Firmware: Other
|
||||||
|
Unit ID: 00000000 Model ID: 000000000000 Transport IDs: {}
|
||||||
|
4: DEVICE NAME {0005}
|
||||||
|
Name: Wireless All-in-One Keyboard TK820
|
||||||
|
Kind: keyboard
|
||||||
|
5: BATTERY STATUS {1000}
|
||||||
|
Battery: 20%, discharging, next level 5%.
|
||||||
|
6: WIRELESS DEVICE STATUS {1D4B}
|
||||||
|
7: unknown:1DF3 {1DF3} internal, hidden
|
||||||
|
8: REPROG CONTROLS {1B00}
|
||||||
|
9: unknown:1F03 {1F03} internal, hidden
|
||||||
|
10: FN INVERSION {40A0}
|
||||||
|
Swap Fx function (saved): True
|
||||||
|
Swap Fx function : True
|
||||||
|
11: NEW FN INVERSION {40A2}
|
||||||
|
Fn-swap: enabled
|
||||||
|
Fn-swap default: enabled
|
||||||
|
12: MOUSE POINTER {2200}
|
||||||
|
DPI: 1000
|
||||||
|
Acceleration: low
|
||||||
|
Override OS ballistics
|
||||||
|
No vertical tuning, standard mice
|
||||||
|
13: DFUCONTROL LEGACY {00C0}
|
||||||
|
14: unknown:1E80 {1E80} internal, hidden
|
||||||
|
15: TOUCHPAD RAW XY {6100}
|
||||||
|
16: unknown:1860 {1860} internal, hidden
|
||||||
|
17: unknown:1E00 {1E00} hidden
|
||||||
|
18: REPROG CONTROLS V3 {1B03}
|
||||||
|
19: unknown:1890 {1890} internal, hidden
|
||||||
|
20: unknown:18E6 {18E6} internal, hidden
|
||||||
|
21: unknown:18A0 {18A0} internal, hidden
|
||||||
|
22: unknown:1830 {1830} internal, hidden
|
||||||
|
23: unknown:1F04 {1F04} internal, hidden
|
||||||
|
24: unknown:1EA1 {1EA1} internal, hidden
|
||||||
|
25: unknown:18B0 {18B0} internal, hidden
|
||||||
|
26: ENCRYPTION {4100}
|
||||||
|
27: KEYBOARD LAYOUT {4520}
|
||||||
|
Has 15 reprogrammable keys:
|
||||||
|
0: Fn Left Click => ShowUI divertable
|
||||||
|
1: Metro Appswitch => MetroAppSwitch is FN, reprogrammable
|
||||||
|
2: Metro Search => MetroSearch is FN, reprogrammable
|
||||||
|
3: unknown:00B2 => MetroShare2 is FN, reprogrammable
|
||||||
|
4: unknown:00B3 => MetroDevices2 is FN, reprogrammable
|
||||||
|
5: unknown:00B4 => MetroSettings2 is FN, reprogrammable
|
||||||
|
6: Previous => Previous is FN
|
||||||
|
7: Play/Pause => Play/Pause is FN
|
||||||
|
8: Next => Next is FN
|
||||||
|
9: Mute => Mute is FN
|
||||||
|
10: Volume Down => Volume Down is FN
|
||||||
|
11: Volume Up => Volume Up is FN
|
||||||
|
12: Sleep => Sleep is FN, reprogrammable
|
||||||
|
13: Left Button => Left Click mse
|
||||||
|
14: Right Button => Right Click
|
||||||
|
mse
|
||||||
|
Battery: 20%, discharging, next level 5
|
|
@ -0,0 +1,40 @@
|
||||||
|
Solaar version 1.1.6rc4
|
||||||
|
|
||||||
|
4: Wireless Keyboard Dell KB714
|
||||||
|
Device path : /dev/hidraw6
|
||||||
|
WPID : 4015
|
||||||
|
Codename : Dell KB714
|
||||||
|
Kind : keyboard
|
||||||
|
Protocol : HID++ 3.0
|
||||||
|
Polling rate : 20 ms (50Hz)
|
||||||
|
Serial number: C0A37A58
|
||||||
|
Model ID: 000000000000
|
||||||
|
Unit ID: 00000000
|
||||||
|
Firmware: RQK 51.00.B0005
|
||||||
|
Supports 19 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000} V0
|
||||||
|
1: FEATURE SET {0001} V0
|
||||||
|
2: DEVICE FW VERSION {0003} V0
|
||||||
|
Firmware: Firmware RQK 51.00.B0005 4015
|
||||||
|
Unit ID: 00000000 Model ID: 000000000000 Transport IDs: {}
|
||||||
|
3: DEVICE NAME {0005} V0
|
||||||
|
Name: Wireless Keyboard Dell KB714
|
||||||
|
Kind: keyboard
|
||||||
|
4: BATTERY STATUS {1000} V0
|
||||||
|
Battery: 90%, discharging, next level 5%.
|
||||||
|
5: WIRELESS DEVICE STATUS {1D4B} V0
|
||||||
|
6: ENCRYPTION {4100} V0
|
||||||
|
7: KEYBOARD LAYOUT {4520} V0
|
||||||
|
8: unknown:1810 {1810} V0 internal, hidden
|
||||||
|
9: unknown:1830 {1830} V0 internal, hidden
|
||||||
|
10: unknown:1860 {1860} V0 internal, hidden
|
||||||
|
11: unknown:1890 {1890} V0 internal, hidden
|
||||||
|
12: unknown:18A0 {18A0} V0 internal, hidden
|
||||||
|
13: unknown:18B0 {18B0} V0 internal, hidden
|
||||||
|
14: REMAINING PAIRING {1DF0} V0 hidden
|
||||||
|
Remaining Pairings: 54
|
||||||
|
15: unknown:1DF3 {1DF3} V0 internal, hidden
|
||||||
|
16: unknown:1E00 {1E00} V0 hidden
|
||||||
|
17: unknown:1E90 {1E90} V0 internal, hidden
|
||||||
|
18: DEVICE GROUPS {0006} V0
|
||||||
|
Battery: 90%, discharging, next level 5%.
|
|
@ -1,43 +1,3 @@
|
||||||
Unifying Receiver
|
|
||||||
Device path : /dev/hidraw1
|
|
||||||
USB id : 046d:c52e
|
|
||||||
Serial : 758596BF
|
|
||||||
Firmware : 23.01.B0006
|
|
||||||
Has 2 paired device(s) out of a maximum of 2.
|
|
||||||
Notifications: wireless, software present (0x000900)
|
|
||||||
|
|
||||||
1: Wireless Mouse M150
|
|
||||||
Codename : M150
|
|
||||||
Kind : mouse
|
|
||||||
Wireless PID : 400C
|
|
||||||
Protocol : HID++ 2.0
|
|
||||||
Polling rate : 8 ms (125Hz)
|
|
||||||
Serial number: 93850883
|
|
||||||
Firmware: RQM 29.00.B0010
|
|
||||||
The power switch is located on the base.
|
|
||||||
Supports 16 HID++ 2.0 features:
|
|
||||||
0: ROOT {0000}
|
|
||||||
1: FEATURE SET {0001}
|
|
||||||
2: DEVICE FW VERSION {0003}
|
|
||||||
3: DEVICE NAME {0005}
|
|
||||||
4: unknown:1850 {1850} hidden
|
|
||||||
5: unknown:1860 {1860} hidden
|
|
||||||
6: BATTERY STATUS {1000}
|
|
||||||
7: WIRELESS DEVICE STATUS {1D4B}
|
|
||||||
8: unknown:1DF3 {1DF3} hidden
|
|
||||||
9: REPROG CONTROLS {1B00}
|
|
||||||
10: unknown:1DF0 {1DF0} hidden
|
|
||||||
11: unknown:1E00 {1E00} hidden
|
|
||||||
12: unknown:1E80 {1E80} hidden
|
|
||||||
13: unknown:1F03 {1F03} hidden
|
|
||||||
14: VERTICAL SCROLLING {2100}
|
|
||||||
15: MOUSE POINTER {2200}
|
|
||||||
Has 3 reprogrammable keys:
|
|
||||||
0: LEFT CLICK => LeftClick mse, reprogrammable
|
|
||||||
1: RIGHT CLICK => RightClick mse, reprogrammable
|
|
||||||
2: MIDDLE BUTTON => MiddleMouseButton mse, reprogrammable
|
|
||||||
Battery: 90%, discharging.
|
|
||||||
|
|
||||||
2: Wireless Keyboard K220
|
2: Wireless Keyboard K220
|
||||||
Codename : K220
|
Codename : K220
|
||||||
Kind : keyboard
|
Kind : keyboard
|
|
@ -1,13 +1,3 @@
|
||||||
Unifying Receiver
|
|
||||||
Device path : /dev/hidraw2
|
|
||||||
USB id : 046d:c52b
|
|
||||||
Serial : C03E9E2E
|
|
||||||
Firmware : 12.01.B0019
|
|
||||||
Bootloader : 02.14
|
|
||||||
Has 2 paired device(s) out of a maximum of 6.
|
|
||||||
Notifications: wireless, software present (0x000900)
|
|
||||||
Device activity counters: 2=118
|
|
||||||
|
|
||||||
2: Wireless Keyboard K270(unifying)
|
2: Wireless Keyboard K270(unifying)
|
||||||
Codename : K270(unifying)
|
Codename : K270(unifying)
|
||||||
Kind : keyboard
|
Kind : keyboard
|
|
@ -0,0 +1,61 @@
|
||||||
|
Solaar version 1.1.7
|
||||||
|
|
||||||
|
1: Wireless Keyboard
|
||||||
|
Device path : /dev/hidraw6
|
||||||
|
WPID : 4075
|
||||||
|
Codename :
|
||||||
|
Kind : keyboard
|
||||||
|
Protocol : HID++ 4.5
|
||||||
|
Polling rate : 20 ms (50Hz)
|
||||||
|
Serial number: 00000000
|
||||||
|
Model ID: 000000000000
|
||||||
|
Unit ID: 00000000
|
||||||
|
Firmware: RQK 71.00.B0002
|
||||||
|
Supports 20 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000} V0
|
||||||
|
1: FEATURE SET {0001} V0
|
||||||
|
2: DEVICE FW VERSION {0003} V0
|
||||||
|
Firmware: Firmware RQK 71.00.B0002 4075
|
||||||
|
Unit ID: 00000000 Model ID: 000000000000 Transport IDs: {}
|
||||||
|
3: DEVICE NAME {0005} V0
|
||||||
|
Name: Wireless Keyboard
|
||||||
|
Kind: keyboard
|
||||||
|
4: RESET {0020} V0
|
||||||
|
5: BATTERY STATUS {1000} V0
|
||||||
|
Battery: 30%, discharging, next level 5%.
|
||||||
|
6: REPROG CONTROLS V4 {1B04} V2
|
||||||
|
Key/Button Diversion (saved): {Calculator:Regular, Mail:Regular, My Home:Regular, Search:Regular}
|
||||||
|
Key/Button Diversion : {Calculator:Regular, Mail:Regular, My Home:Regular, Search:Regular}
|
||||||
|
7: WIRELESS DEVICE STATUS {1D4B} V0
|
||||||
|
8: NEW FN INVERSION {40A2} V0
|
||||||
|
Fn-swap: disabled
|
||||||
|
Fn-swap default: disabled
|
||||||
|
Swap Fx function (saved): False
|
||||||
|
Swap Fx function : False
|
||||||
|
9: ENCRYPTION {4100} V0
|
||||||
|
10: LOCK KEY STATE {4220} V0
|
||||||
|
11: KEYBOARD DISABLE KEYS {4521} V0
|
||||||
|
Disable keys (saved): {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
|
||||||
|
Disable keys : {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
|
||||||
|
12: unknown:1810 {1810} V0 internal, hidden
|
||||||
|
13: unknown:1830 {1830} V0 internal, hidden
|
||||||
|
14: unknown:1890 {1890} V0 internal, hidden
|
||||||
|
15: unknown:18A0 {18A0} V0 internal, hidden
|
||||||
|
16: unknown:18B0 {18B0} V0 internal, hidden
|
||||||
|
17: unknown:1DF3 {1DF3} V0 internal, hidden
|
||||||
|
18: unknown:1E00 {1E00} V0 hidden
|
||||||
|
19: unknown:1868 {1868} V0 internal, hidden
|
||||||
|
Has 4 reprogrammable keys:
|
||||||
|
0: My Home , default: HomePage => HomePage
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, pos:1, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
1: Mail , default: Email => Email
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, pos:2, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
2: Search , default: Search Files => Search Files
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, pos:3, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
3: Calculator , default: Calculator => Calculator
|
||||||
|
is FN, FN sensitive, reprogrammable, divertable, pos:4, group:0, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
Battery: 30%, discharging, next level 5%.
|
|
@ -0,0 +1,40 @@
|
||||||
|
Solaar version 1.1.7
|
||||||
|
|
||||||
|
1: Wireless Keyboard MK270
|
||||||
|
Device path : /dev/hidraw6
|
||||||
|
WPID : 4023
|
||||||
|
Codename : MK270
|
||||||
|
Kind : keyboard
|
||||||
|
Protocol : HID++ 2.0
|
||||||
|
Polling rate : 20 ms (50Hz)
|
||||||
|
Serial number: 90A794A3
|
||||||
|
Model ID: 000000000000
|
||||||
|
Unit ID: 00000000
|
||||||
|
Firmware: RQK 49.00.B0029
|
||||||
|
Supports 18 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000} V0
|
||||||
|
1: FEATURE SET {0001} V0
|
||||||
|
2: DEVICE FW VERSION {0003} V0
|
||||||
|
Firmware: Firmware RQK 49.00.B0029 4023
|
||||||
|
Unit ID: 00000000 Model ID: 000000000000 Transport IDs: {}
|
||||||
|
3: DEVICE NAME {0005} V0
|
||||||
|
Name: Wireless Keyboard
|
||||||
|
Kind: keyboard
|
||||||
|
4: BATTERY STATUS {1000} V0
|
||||||
|
Battery: 30%, discharging, next level 5%.
|
||||||
|
5: REPROG CONTROLS {1B00} V0
|
||||||
|
6: WIRELESS DEVICE STATUS {1D4B} V0
|
||||||
|
7: FN INVERSION {40A0} V0
|
||||||
|
Swap Fx function (saved): False
|
||||||
|
Swap Fx function : False
|
||||||
|
8: ENCRYPTION {4100} V0
|
||||||
|
9: KEYBOARD LAYOUT {4520} V0
|
||||||
|
10: unknown:1810 {1810} V0 internal, hidden
|
||||||
|
11: unknown:1830 {1830} V0 internal, hidden
|
||||||
|
12: unknown:1890 {1890} V0 internal, hidden
|
||||||
|
13: unknown:18A0 {18A0} V0 internal, hidden
|
||||||
|
14: unknown:18B0 {18B0} V0 internal, hidden
|
||||||
|
15: unknown:1DF3 {1DF3} V0 internal, hidden
|
||||||
|
16: unknown:1E00 {1E00} V0 hidden
|
||||||
|
17: unknown:1868 {1868} V0 internal, hidden
|
||||||
|
Battery: 30%, discharging, next level 5%.
|
|
@ -0,0 +1,95 @@
|
||||||
|
solaar version 1.1.9
|
||||||
|
|
||||||
|
1: Wireless Mobile Mouse MX Anywhere 2S
|
||||||
|
Device path : /dev/hidraw1
|
||||||
|
USB id : 046d:B01A
|
||||||
|
Codename : Wireless
|
||||||
|
Kind : mouse
|
||||||
|
Protocol : HID++ 4.5
|
||||||
|
Serial number:
|
||||||
|
Model ID: B01A406A0000
|
||||||
|
Unit ID: 3F714CA3
|
||||||
|
Bootloader: BOT 57.00.B0003
|
||||||
|
Firmware: MPM 13.00.B0003
|
||||||
|
Firmware: MPM 13.00.B0003
|
||||||
|
Other:
|
||||||
|
Supports 24 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000} V0
|
||||||
|
1: FEATURE SET {0001} V0
|
||||||
|
2: DEVICE FW VERSION {0003} V2
|
||||||
|
Firmware: Bootloader BOT 57.00.B0003 406AD22DCF4D01
|
||||||
|
Firmware: Firmware MPM 13.00.B0003 B01AD22DCF4D01
|
||||||
|
Firmware: Firmware MPM 13.00.B0003 406AD22DCF4D01
|
||||||
|
Firmware: Other
|
||||||
|
Unit ID: 3F714CA3 Model ID: B01A406A0000 Transport IDs: {'btleid': 'B01A', 'wpid': '406A'}
|
||||||
|
3: DEVICE NAME {0005} V0
|
||||||
|
Name: Wireless Mobile Mouse MX Anywhere 2S
|
||||||
|
Kind: mouse
|
||||||
|
4: WIRELESS DEVICE STATUS {1D4B} V0
|
||||||
|
5: CONFIG CHANGE {0020} V0
|
||||||
|
6: BATTERY STATUS {1000} V0
|
||||||
|
Battery: 90%, discharging, next level 50%.
|
||||||
|
7: CONFIG DEVICE PROPS {1806} V0 internal, hidden
|
||||||
|
8: CHANGE HOST {1814} V1
|
||||||
|
Change Host : 2:mburcheri2
|
||||||
|
9: REPROG CONTROLS V4 {1B04} V3
|
||||||
|
Key/Button Actions (saved): {Left Button:Left Click, Right Button:Right Click, Middle Button:Gesture Button Navigation, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Left Tilt:Mouse Scroll Left Button , Right Tilt:Mouse Scroll Right Button}
|
||||||
|
Key/Button Actions : {Left Button:Left Click, Right Button:Right Click, Middle Button:Gesture Button Navigation, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Left Tilt:Mouse Scroll Left Button , Right Tilt:Mouse Scroll Right Button}
|
||||||
|
Key/Button Diversion (saved): {Middle Button:Regular, Back Button:Sliding DPI, Forward Button:Regular, Left Tilt:Regular, Right Tilt:Regular}
|
||||||
|
Key/Button Diversion : {Middle Button:Regular, Back Button:Diverted, Forward Button:Regular, Left Tilt:Regular, Right Tilt:Regular}
|
||||||
|
10: ADJUSTABLE DPI {2201} V1
|
||||||
|
Sensitivity (DPI) (saved): 3400
|
||||||
|
Sensitivity (DPI) : 3400
|
||||||
|
11: VERTICAL SCROLLING {2100} V0
|
||||||
|
Roller type: 3G
|
||||||
|
Ratchet per turn: 24
|
||||||
|
Scroll lines: 0
|
||||||
|
12: HIRES WHEEL {2121} V0
|
||||||
|
Multiplier: 8
|
||||||
|
Has invert: Normal wheel motion
|
||||||
|
Has ratchet switch: Free wheel mode
|
||||||
|
Low resolution mode
|
||||||
|
HID notification
|
||||||
|
Scroll Wheel Direction (saved): False
|
||||||
|
Scroll Wheel Direction : False
|
||||||
|
Scroll Wheel Resolution (saved): False
|
||||||
|
Scroll Wheel Resolution : False
|
||||||
|
Scroll Wheel Diversion (saved): False
|
||||||
|
Scroll Wheel Diversion : False
|
||||||
|
13: unknown:1813 {1813} V0 internal, hidden
|
||||||
|
14: unknown:1830 {1830} V0 internal, hidden
|
||||||
|
15: unknown:18A1 {18A1} V0 internal, hidden
|
||||||
|
16: unknown:18C0 {18C0} V0 internal, hidden
|
||||||
|
17: unknown:1DF3 {1DF3} V0 internal, hidden
|
||||||
|
18: unknown:1E00 {1E00} V0 hidden
|
||||||
|
19: unknown:1EB0 {1EB0} V0 internal, hidden
|
||||||
|
20: unknown:1803 {1803} V0 internal, hidden
|
||||||
|
21: unknown:1861 {1861} V0 internal, hidden
|
||||||
|
22: unknown:9001 {9001} V0 internal, hidden
|
||||||
|
23: OOBSTATE {1805} V0 internal, hidden
|
||||||
|
Has 8 reprogrammable keys:
|
||||||
|
0: Left Button , default: Left Click => Left Click
|
||||||
|
mse, pos:0, group:1, group mask:g1
|
||||||
|
reporting: default
|
||||||
|
1: Right Button , default: Right Click => Right Click
|
||||||
|
mse, pos:0, group:1, group mask:g1
|
||||||
|
reporting: default
|
||||||
|
2: Middle Button , default: Gesture Button Navigation => Gesture Button Navigation
|
||||||
|
mse, reprogrammable, divertable, raw XY, pos:0, group:2, group mask:g1,g2,g4
|
||||||
|
reporting: default
|
||||||
|
3: Back Button , default: Mouse Back Button => Mouse Back Button
|
||||||
|
mse, reprogrammable, divertable, raw XY, pos:0, group:3, group mask:g1,g2,g3,g4
|
||||||
|
reporting: diverted, raw XY diverted
|
||||||
|
4: Forward Button , default: Mouse Forward Button => Mouse Forward Button
|
||||||
|
mse, reprogrammable, divertable, raw XY, pos:0, group:3, group mask:g1,g2,g3,g4
|
||||||
|
reporting: default
|
||||||
|
5: Left Tilt , default: Mouse Scroll Left Button => Mouse Scroll Left Button
|
||||||
|
mse, reprogrammable, divertable, raw XY, pos:0, group:3, group mask:g1,g2,g3,g4
|
||||||
|
reporting: default
|
||||||
|
6: Right Tilt , default: Mouse Scroll Right Button => Mouse Scroll Right Button
|
||||||
|
mse, reprogrammable, divertable, raw XY, pos:0, group:3, group mask:g1,g2,g3,g4
|
||||||
|
reporting: default
|
||||||
|
7: Virtual Gesture Button , default: Virtual Gesture Button => Virtual Gesture Button
|
||||||
|
divertable, virtual, raw XY, force raw XY, pos:0, group:4, group mask:empty
|
||||||
|
reporting: default
|
||||||
|
Battery: 90%, discharging, next level 50%.
|
|
@ -0,0 +1,32 @@
|
||||||
|
2: Wireless Mouse
|
||||||
|
Codename :
|
||||||
|
Kind : mouse
|
||||||
|
Wireless PID : 4022
|
||||||
|
Protocol : HID++ 2.0
|
||||||
|
Polling rate : 8 ms (125Hz)
|
||||||
|
Serial number: 00000000
|
||||||
|
Firmware: RQM 38.00.B0044
|
||||||
|
Supports 18 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000}
|
||||||
|
1: FEATURE SET {0001}
|
||||||
|
2: DEVICE FW VERSION {0003}
|
||||||
|
3: DEVICE NAME {0005}
|
||||||
|
4: BATTERY STATUS {1000}
|
||||||
|
5: REPROG CONTROLS {1B00}
|
||||||
|
6: WIRELESS DEVICE STATUS {1D4B}
|
||||||
|
7: VERTICAL SCROLLING {2100}
|
||||||
|
8: MOUSE POINTER {2200}
|
||||||
|
9: unknown:1810 {1810} internal, hidden
|
||||||
|
10: unknown:1830 {1830} internal, hidden
|
||||||
|
11: unknown:1850 {1850} internal, hidden
|
||||||
|
12: unknown:1890 {1890} internal, hidden
|
||||||
|
13: unknown:18B0 {18B0} internal, hidden
|
||||||
|
14: unknown:1DF3 {1DF3} internal, hidden
|
||||||
|
15: unknown:1868 {1868} internal, hidden
|
||||||
|
16: unknown:1869 {1869} internal, hidden
|
||||||
|
17: unknown:1E00 {1E00} hidden
|
||||||
|
Has 3 reprogrammable keys:
|
||||||
|
0: LEFT CLICK => LeftClick mse, reprogrammable
|
||||||
|
1: RIGHT CLICK => RightClick mse, reprogrammable
|
||||||
|
2: MIDDLE BUTTON => MiddleMouseButton mse, reprogrammable
|
||||||
|
Battery: 30%, discharging.
|
|
@ -0,0 +1,52 @@
|
||||||
|
Solaar version 1.1.6rc4
|
||||||
|
|
||||||
|
3: Wireless Mouse Dell WM514
|
||||||
|
Device path : /dev/hidraw5
|
||||||
|
WPID : 4029
|
||||||
|
Codename : Dell WM514
|
||||||
|
Kind : mouse
|
||||||
|
Protocol : HID++ 3.0
|
||||||
|
Polling rate : 8 ms (125Hz)
|
||||||
|
Serial number: 17F2CD56
|
||||||
|
Model ID: 000000000000
|
||||||
|
Unit ID: 00000000
|
||||||
|
Firmware: RQM 44.00.B0013
|
||||||
|
The power switch is located on the base.
|
||||||
|
Supports 23 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000} V0
|
||||||
|
1: FEATURE SET {0001} V0
|
||||||
|
2: DEVICE FW VERSION {0003} V0
|
||||||
|
Firmware: Firmware RQM 44.00.B0013 4029
|
||||||
|
Unit ID: 00000000 Model ID: 000000000000 Transport IDs: {}
|
||||||
|
3: DEVICE NAME {0005} V0
|
||||||
|
Name: Wireless Mouse Dell WM514
|
||||||
|
Kind: mouse
|
||||||
|
4: BATTERY STATUS {1000} V0
|
||||||
|
Battery: 70%, discharging, next level 5%.
|
||||||
|
5: unknown:1830 {1830} V0 internal, hidden
|
||||||
|
6: unknown:1860 {1860} V0 internal, hidden
|
||||||
|
7: unknown:1890 {1890} V0 internal, hidden
|
||||||
|
8: unknown:18A0 {18A0} V0 internal, hidden
|
||||||
|
9: unknown:18B0 {18B0} V0 internal, hidden
|
||||||
|
10: unknown:18C0 {18C0} V0 internal, hidden
|
||||||
|
11: WIRELESS DEVICE STATUS {1D4B} V0
|
||||||
|
12: unknown:1DF3 {1DF3} V0 internal, hidden
|
||||||
|
13: REPROG CONTROLS {1B00} V0
|
||||||
|
14: REMAINING PAIRING {1DF0} V0 hidden
|
||||||
|
Remaining Pairings: 124
|
||||||
|
15: unknown:1E00 {1E00} V0 hidden
|
||||||
|
16: unknown:1850 {1850} V0 internal, hidden
|
||||||
|
17: unknown:1E90 {1E90} V0 internal, hidden
|
||||||
|
18: unknown:1F03 {1F03} V0 internal, hidden
|
||||||
|
19: VERTICAL SCROLLING {2100} V0
|
||||||
|
Roller type: standard
|
||||||
|
Ratchet per turn: 24
|
||||||
|
Scroll lines: 0
|
||||||
|
20: MOUSE POINTER {2200} V0
|
||||||
|
DPI: 1000
|
||||||
|
Acceleration: low
|
||||||
|
Override OS ballistics
|
||||||
|
No vertical tuning, standard mice
|
||||||
|
21: DEVICE GROUPS {0006} V0
|
||||||
|
22: unknown:1BB0 {1BB0} V0
|
||||||
|
Battery: 70%, discharging, next level 5%.
|
|
@ -0,0 +1,64 @@
|
||||||
|
solaar show
|
||||||
|
rules cannot access modifier keys in Wayland, accessing process only works on GNOME with Solaar Gnome extension installed
|
||||||
|
solaar version 1.1.14-2
|
||||||
|
|
||||||
|
Unifying Receiver
|
||||||
|
Device path : /dev/hidraw1
|
||||||
|
USB id : 046d:C52B
|
||||||
|
Serial : EC219AC2
|
||||||
|
C Pending : ff
|
||||||
|
0 : 12.11.B0032
|
||||||
|
1 : 04.16
|
||||||
|
3 : AA.AA
|
||||||
|
Has 2 paired device(s) out of a maximum of 6.
|
||||||
|
Notifications: wireless (0x000100)
|
||||||
|
Device activity counters: 1=195, 2=74
|
||||||
|
|
||||||
|
1: Wireless Mouse M175
|
||||||
|
Device path : /dev/hidraw2
|
||||||
|
WPID : 4008
|
||||||
|
Codename : M175
|
||||||
|
Kind : mouse
|
||||||
|
Protocol : HID++ 2.0
|
||||||
|
Report Rate : 8ms
|
||||||
|
Serial number: 16E46E8C
|
||||||
|
Model ID: 000000000000
|
||||||
|
Unit ID: 00000000
|
||||||
|
0: RQM 40.00.B0016
|
||||||
|
The power switch is located on the base.
|
||||||
|
Supports 21 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000} V0
|
||||||
|
1: FEATURE SET {0001} V0
|
||||||
|
2: DEVICE FW VERSION {0003} V0
|
||||||
|
Firmware: 0 RQM 40.00.B0016 4008
|
||||||
|
Unit ID: 00000000 Model ID: 000000000000 Transport IDs: {}
|
||||||
|
3: DEVICE NAME {0005} V0
|
||||||
|
Name: Wireless Mouse M185
|
||||||
|
Kind: mouse
|
||||||
|
4: BATTERY STATUS {1000} V0
|
||||||
|
Battery: 70%, 0, next level 5%.
|
||||||
|
5: unknown:1830 {1830} V0 internal, hidden
|
||||||
|
6: unknown:1850 {1850} V0 internal, hidden
|
||||||
|
7: unknown:1860 {1860} V0 internal, hidden
|
||||||
|
8: unknown:1890 {1890} V0 internal, hidden
|
||||||
|
9: unknown:18A0 {18A0} V0 internal, hidden
|
||||||
|
10: unknown:18C0 {18C0} V0 internal, hidden
|
||||||
|
11: WIRELESS DEVICE STATUS {1D4B} V0
|
||||||
|
12: unknown:1DF3 {1DF3} V0 internal, hidden
|
||||||
|
13: REPROG CONTROLS {1B00} V0
|
||||||
|
14: REMAINING PAIRING {1DF0} V0 hidden
|
||||||
|
Remaining Pairings: 117
|
||||||
|
15: unknown:1E00 {1E00} V0 hidden
|
||||||
|
16: unknown:1E80 {1E80} V0 internal, hidden
|
||||||
|
17: unknown:1E90 {1E90} V0 internal, hidden
|
||||||
|
18: unknown:1F03 {1F03} V0 internal, hidden
|
||||||
|
19: VERTICAL SCROLLING {2100} V0
|
||||||
|
Roller type: standard
|
||||||
|
Ratchet per turn: 24
|
||||||
|
Scroll lines: 0
|
||||||
|
20: MOUSE POINTER {2200} V0
|
||||||
|
DPI: 1000
|
||||||
|
Acceleration: low
|
||||||
|
Override OS ballistics
|
||||||
|
No vertical tuning, standard mice
|
||||||
|
Battery: 70%, 0, next level 5%.
|
|
@ -0,0 +1,81 @@
|
||||||
|
|
||||||
|
1: Wireless Mouse M325
|
||||||
|
Device path : /dev/hidraw4
|
||||||
|
WPID : 400A
|
||||||
|
Codename : M325
|
||||||
|
Kind : mouse
|
||||||
|
Protocol : HID++ 2.0
|
||||||
|
Polling rate : 8 ms (125Hz)
|
||||||
|
Serial number: D72D97E9
|
||||||
|
Model ID: 000000000000
|
||||||
|
Unit ID: 00000000
|
||||||
|
Firmware: RQM 40.01.B0018
|
||||||
|
The power switch is located on the base.
|
||||||
|
Supports 22 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000} V0
|
||||||
|
1: FEATURE SET {0001} V0
|
||||||
|
2: DEVICE FW VERSION {0003} V0
|
||||||
|
Firmware: Firmware RQM 40.01.B0018 400A
|
||||||
|
Unit ID: 00000000 Model ID: 000000000000 Transport IDs: {}
|
||||||
|
3: DEVICE NAME {0005} V0
|
||||||
|
Name: Wireless Mouse M325
|
||||||
|
Kind: mouse
|
||||||
|
4: BATTERY STATUS {1000} V0
|
||||||
|
Battery: 70%, discharging, next level 5%.
|
||||||
|
5: unknown:1830 {1830} V0 internal, hidden
|
||||||
|
6: unknown:1850 {1850} V0 internal, hidden
|
||||||
|
7: unknown:1860 {1860} V0 internal, hidden
|
||||||
|
8: unknown:1890 {1890} V0 internal, hidden
|
||||||
|
9: unknown:18A0 {18A0} V0 internal, hidden
|
||||||
|
10: unknown:18C0 {18C0} V0 internal, hidden
|
||||||
|
11: WIRELESS DEVICE STATUS {1D4B} V0
|
||||||
|
12: unknown:1DF3 {1DF3} V0 internal, hidden
|
||||||
|
13: REPROG CONTROLS {1B00} V0
|
||||||
|
14: REMAINING PAIRING {1DF0} V0 hidden
|
||||||
|
Remaining Pairings: 117
|
||||||
|
15: unknown:1E00 {1E00} V0 hidden
|
||||||
|
16: unknown:1E80 {1E80} V0 internal, hidden
|
||||||
|
17: unknown:1E90 {1E90} V0 internal, hidden
|
||||||
|
18: unknown:1F03 {1F03} V0 internal, hidden
|
||||||
|
19: VERTICAL SCROLLING {2100} V0
|
||||||
|
Roller type: micro
|
||||||
|
Ratchet per turn: 36
|
||||||
|
Scroll lines: 0
|
||||||
|
20: MOUSE POINTER {2200} V0
|
||||||
|
DPI: 800
|
||||||
|
Acceleration: low
|
||||||
|
Override OS ballistics
|
||||||
|
No vertical tuning, standard mice
|
||||||
|
21: unknown:18B0 {18B0} V0 internal, hidden
|
||||||
|
Battery: 70%, discharging, next level 5%.
|
||||||
|
|
||||||
|
|
||||||
|
Wireless Mouse M325
|
||||||
|
Codename : M325
|
||||||
|
Kind : mouse
|
||||||
|
Wireless PID : 400A
|
||||||
|
Protocol : HID++ 2.0
|
||||||
|
Polling rate : 8 ms (125Hz)
|
||||||
|
Serial number: ABB05E01
|
||||||
|
Firmware: RQM 27.02.B0028
|
||||||
|
The power switch is located on the base.
|
||||||
|
Supports 13 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000}
|
||||||
|
1: FEATURE SET {0001}
|
||||||
|
2: DEVICE FW VERSION {0003}
|
||||||
|
3: DEVICE NAME {0005}
|
||||||
|
4: BATTERY STATUS {1000}
|
||||||
|
5: WIRELESS DEVICE STATUS {1D4B}
|
||||||
|
6: unknown:1DF3 {1DF3} hidden
|
||||||
|
7: REPROG CONTROLS {1B00}
|
||||||
|
8: unknown:1DF0 {1DF0} hidden
|
||||||
|
9: unknown:1F03 {1F03} hidden
|
||||||
|
10: VERTICAL SCROLLING {2100}
|
||||||
|
11: HI RES SCROLLING {2120}
|
||||||
|
12: MOUSE POINTER {2200}
|
||||||
|
Has 5 reprogrammable keys:
|
||||||
|
0: LEFT CLICK => LeftClick mse, reprogrammable
|
||||||
|
1: RIGHT CLICK => RightClick mse, reprogrammable
|
||||||
|
2: MIDDLE BUTTON => MiddleMouseButton mse, reprogrammable
|
||||||
|
3: BACK AS BUTTON 4 => Back mse, reprogrammable
|
||||||
|
4: FORWARD AS BUTTON 5 => BrowserForward mse, reprogrammable
|
|
@ -1,35 +1,3 @@
|
||||||
Receiver
|
|
||||||
LZ141AX-DJ
|
|
||||||
M/N: C-U0008
|
|
||||||
(ltunify)
|
|
||||||
Serial number: 574197D3
|
|
||||||
Firmware version: 024.000.00018
|
|
||||||
Bootloader version: BL.000.006
|
|
||||||
|
|
||||||
Mouse
|
|
||||||
HID++ version: 2.0
|
|
||||||
Device index 1
|
|
||||||
Mouse
|
|
||||||
Name: M345
|
|
||||||
Wireless Product ID: 4017
|
|
||||||
Serial number: 920DC223
|
|
||||||
Device was unavailable, version information not available.
|
|
||||||
Total number of HID++ 2.0 features: 12
|
|
||||||
0: [0000] IRoot
|
|
||||||
1: [0001] IFeatureSet
|
|
||||||
2: [0003] IFirmwareInfo
|
|
||||||
3: [0005] GetDeviceNameType
|
|
||||||
4: [1000] batteryLevelStatus
|
|
||||||
5: [1D4B] WirelessDeviceStatus
|
|
||||||
6: [1DF3] H unknown
|
|
||||||
7: [1B00] SpecialKeysMSEButtons
|
|
||||||
8: [1DF0] H unknown
|
|
||||||
9: [1F03] H unknown
|
|
||||||
10: [2100] VerticalScrolling
|
|
||||||
11: [2120] HiResScrolling
|
|
||||||
12: [2200] MousePointer
|
|
||||||
(O = obsolete feature; H = SW hidden feature)
|
|
||||||
(solaar-cli)
|
|
||||||
1: Wireless Mouse M345
|
1: Wireless Mouse M345
|
||||||
Codename : M345
|
Codename : M345
|
||||||
Kind : mouse
|
Kind : mouse
|
|
@ -1,29 +1,3 @@
|
||||||
Mouse
|
|
||||||
(ltunify)
|
|
||||||
HID++ version: 2.0
|
|
||||||
Device index 1
|
|
||||||
Mouse
|
|
||||||
Name: M525
|
|
||||||
Wireless Product ID: 4013
|
|
||||||
Serial number: DAFA335E
|
|
||||||
Device was unavailable, version information not available.
|
|
||||||
Total number of HID++ 2.0 features: 12
|
|
||||||
0: [0000] IRoot
|
|
||||||
1: [0001] IFeatureSet
|
|
||||||
2: [0003] IFirmwareInfo
|
|
||||||
3: [0005] GetDeviceNameType
|
|
||||||
4: [1000] batteryLevelStatus
|
|
||||||
5: [1D4B] WirelessDeviceStatus
|
|
||||||
6: [1DF3] H unknown
|
|
||||||
7: [1B00] SpecialKeysMSEButtons
|
|
||||||
8: [1DF0] H unknown
|
|
||||||
9: [1F03] H unknown
|
|
||||||
10: [2100] VerticalScrolling
|
|
||||||
11: [2120] HiResScrolling
|
|
||||||
12: [2200] MousePointer
|
|
||||||
(O = obsolete feature; H = SW hidden feature;
|
|
||||||
I = reserved for internal use)
|
|
||||||
(solaar)
|
|
||||||
1: Wireless Mouse M525
|
1: Wireless Mouse M525
|
||||||
Codename : M525
|
Codename : M525
|
||||||
Kind : mouse
|
Kind : mouse
|
|
@ -1,14 +1,3 @@
|
||||||
Unifying Receiver
|
|
||||||
Device path : /dev/hidraw0
|
|
||||||
USB id : 046d:c52b
|
|
||||||
Serial : A7F5923B
|
|
||||||
Firmware : 24.01.B0023
|
|
||||||
Bootloader : 01.08
|
|
||||||
Other : AA.AD
|
|
||||||
Has 1 paired device(s) out of a maximum of 6.
|
|
||||||
Notifications: wireless, software present (0x000900)
|
|
||||||
Device activity counters: 1=11
|
|
||||||
|
|
||||||
1: Wireless Mouse MX Anywhere 2
|
1: Wireless Mouse MX Anywhere 2
|
||||||
Codename : MX Anywhere 2
|
Codename : MX Anywhere 2
|
||||||
Kind : mouse
|
Kind : mouse
|
|
@ -1,74 +1,74 @@
|
||||||
Solaar version 1.1.3
|
Solaar version 1.1.7
|
||||||
|
|
||||||
1: Wireless Multi-Device Keyboard K780
|
1: Wireless Multi-Device Keyboard K780
|
||||||
Device path : /dev/hidraw6
|
Device path : /dev/hidraw4
|
||||||
WPID : 405B
|
WPID : 405B
|
||||||
Codename : K780
|
Codename : K780
|
||||||
Kind : keyboard
|
Kind : keyboard
|
||||||
Protocol : HID++ 4.5
|
Protocol : HID++ 4.5
|
||||||
Polling rate : 20 ms (50Hz)
|
Polling rate : 20 ms (50Hz)
|
||||||
Serial number: 190FABF3
|
Serial number: 3C60AFA4
|
||||||
Model ID: B33B405B0000
|
Model ID: B33B405B0000
|
||||||
Unit ID: 20D60309
|
Unit ID: 6CAF50FF
|
||||||
Bootloader: BOT 25.01.B0006
|
Bootloader: BOT 25.01.B0006
|
||||||
Firmware: MPK 01.05.B0029
|
Firmware: MPK 01.04.B0028
|
||||||
Other:
|
Other:
|
||||||
The power switch is located on the edge of top right corner.
|
The power switch is located on the edge of top right corner.
|
||||||
Supports 31 HID++ 2.0 features:
|
Supports 31 HID++ 2.0 features:
|
||||||
0: ROOT {0000}
|
0: ROOT {0000} V0
|
||||||
1: FEATURE SET {0001}
|
1: FEATURE SET {0001} V0
|
||||||
2: DEVICE FW VERSION {0003}
|
2: DEVICE FW VERSION {0003} V2
|
||||||
Firmware: Bootloader BOT 25.01.B0006 00003C32CFDB01
|
Firmware: Bootloader BOT 25.01.B0006 0000C9839F9301
|
||||||
Firmware: Firmware MPK 01.05.B0029 405B3C32CFDB01
|
Firmware: Firmware MPK 01.04.B0028 405BC9839F9301
|
||||||
Firmware: Other
|
Firmware: Other
|
||||||
Unit ID: 20D60309 Model ID: B33B405B0000 Transport IDs: {'btleid': 'B33B', 'wpid': '405B'}
|
Unit ID: 6CAF50FF Model ID: B33B405B0000 Transport IDs: {'btleid': 'B33B', 'wpid': '405B'}
|
||||||
3: DEVICE NAME {0005}
|
3: DEVICE NAME {0005} V0
|
||||||
Name: K780 Multi-Device Wireless Keyboard
|
Name: K780 Multi-Device Wireless Keyboard
|
||||||
Kind: keyboard
|
Kind: keyboard
|
||||||
4: WIRELESS DEVICE STATUS {1D4B}
|
4: WIRELESS DEVICE STATUS {1D4B} V0
|
||||||
5: RESET {0020}
|
5: RESET {0020} V0
|
||||||
6: DEVICE FRIENDLY NAME {0007}
|
6: DEVICE FRIENDLY NAME {0007} V0
|
||||||
Friendly Name: Keyboard K780
|
Friendly Name: Keyboard K780
|
||||||
7: BATTERY STATUS {1000}
|
7: BATTERY STATUS {1000} V0
|
||||||
Battery: 90%, discharging, next level 50%.
|
Battery: 90%, discharging, next level 50%.
|
||||||
8: CHANGE HOST {1814}
|
8: CHANGE HOST {1814} V1
|
||||||
改变主机 : 1:yxl-pc
|
Cambiar Host : 1:romanescu
|
||||||
9: HOSTS INFO {1815}
|
9: HOSTS INFO {1815} V1
|
||||||
Host 0 (paired): yxl-pc
|
Host 0 (paired): romanescu
|
||||||
Host 1 (paired): yxl-pc
|
Host 1 (paired): espinaca
|
||||||
Host 2 (paired): DESKTOP-EPVSBVF
|
Host 2 (unpaired):
|
||||||
10: REPROG CONTROLS V4 {1B04}
|
10: REPROG CONTROLS V4 {1B04} V3
|
||||||
按键/按钮改道 (saved): {Volume Up:常规, Volume Down:常规, Mute:常规, Play/Pause:常规, Next:常规, Previous:常规, Multiplatform Back:常规, Multiplatform Insert:常规, Screen Capture/Print Screen:常规, Fn Down:常规, Fn Up:常规, Multiplatform Lock:常规, Host Switch Channel 1:常规, Host Switch Channel 2:常规, Host Switch Channel 3:常规, MultiPlatform Search:常规, MultiPlatform Home/Mission Control:常规, MultiPlatform Menu/Show/Hide Virtual Keyboard/Launchpad:常规}
|
Desvio de Tecla/Botón (saved): {Volume Up:Normal, Volume Down:Normal, Mute:Normal, Play/Pause:Normal, Next:Normal, Previous:Normal, Multiplatform Back:Normal, Multiplatform Insert:Normal, Screen Capture/Print Screen:Normal, Fn Down:Normal, Fn Up:Normal, Multiplatform Lock:Normal, Host Switch Channel 1:Normal, Host Switch Channel 2:Normal, Host Switch Channel 3:Normal, MultiPlatform Search:Normal, MultiPlatform Home/Mission Control:Normal, MultiPlatform Menu/Show/Hide Virtual Keyboard/Launchpad:Normal}
|
||||||
按键/按钮改道 : {Volume Up:常规, Volume Down:常规, Mute:常规, Play/Pause:常规, Next:常规, Previous:常规, Multiplatform Back:常规, Multiplatform Insert:常规, Screen Capture/Print Screen:常规, Fn Down:常规, Fn Up:常规, Multiplatform Lock:常规, Host Switch Channel 1:常规, Host Switch Channel 2:常规, Host Switch Channel 3:常规, MultiPlatform Search:常规, MultiPlatform Home/Mission Control:常规, MultiPlatform Menu/Show/Hide Virtual Keyboard/Launchpad:常规}
|
Desvio de Tecla/Botón : {Volume Up:Normal, Volume Down:Normal, Mute:Normal, Play/Pause:Normal, Next:Normal, Previous:Normal, Multiplatform Back:Normal, Multiplatform Insert:Normal, Screen Capture/Print Screen:Normal, Fn Down:Normal, Fn Up:Normal, Multiplatform Lock:Normal, Host Switch Channel 1:Normal, Host Switch Channel 2:Normal, Host Switch Channel 3:Normal, MultiPlatform Search:Normal, MultiPlatform Home/Mission Control:Normal, MultiPlatform Menu/Show/Hide Virtual Keyboard/Launchpad:Normal}
|
||||||
11: PERSISTENT REMAPPABLE ACTION {1C00}
|
11: PERSISTENT REMAPPABLE ACTION {1C00} V0
|
||||||
持久化按键/按钮映射 : {Volume Up:Volume Up, Volume Down:Volume Down, Mute:Mute, Play/Pause:Play/Pause, Next:Scan Next Track, Previous:Scan Previous Track, Multiplatform Back:Keyboard Illumination Down, MultiPlatform Search:AC Search, MultiPlatform Home/Mission Control:AC Home, MultiPlatform Menu/Show/Hide Virtual Keyboard/Launchpad:COMPOSE}
|
Persistent Key/Button Mapping : {Volume Up:Volume Up, Volume Down:Volume Down, Mute:Mute, Play/Pause:Play/Pause, Next:Scan Next Track, Previous:Scan Previous Track, Multiplatform Back:AC Back, MultiPlatform Search:AC Search, MultiPlatform Home/Mission Control:AC Home, MultiPlatform Menu/Show/Hide Virtual Keyboard/Launchpad:COMPOSE}
|
||||||
12: NEW FN INVERSION {40A2}
|
12: NEW FN INVERSION {40A2} V0
|
||||||
Fn-swap: enabled
|
Fn-swap: enabled
|
||||||
Fn-swap default: enabled
|
Fn-swap default: enabled
|
||||||
互换 Fx 键功能 (saved): True
|
Intercambiar función Fx (saved): True
|
||||||
互换 Fx 键功能 : True
|
Intercambiar función Fx : True
|
||||||
13: ENCRYPTION {4100}
|
13: ENCRYPTION {4100} V0
|
||||||
14: KEYBOARD DISABLE KEYS {4521}
|
14: KEYBOARD DISABLE KEYS {4521} V0
|
||||||
禁用按键 (saved): {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
|
Desactivar teclas (saved): {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
|
||||||
禁用按键 : {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
|
Desactivar teclas : {Caps Lock:False, Num Lock:False, Scroll Lock:False, Insert:False, Win:False}
|
||||||
15: MULTIPLATFORM {4531}
|
15: MULTIPLATFORM {4531} V0
|
||||||
设置操作系统 (saved): Windows
|
Especificar SO (saved): Windows
|
||||||
设置操作系统 : Windows
|
Especificar SO : Windows
|
||||||
16: LOCK KEY STATE {4220}
|
16: LOCK KEY STATE {4220} V0
|
||||||
17: DFUCONTROL SIGNED {00C2}
|
17: DFUCONTROL SIGNED {00C2} V0
|
||||||
18: unknown:1803 {1803} internal, hidden
|
18: unknown:1803 {1803} V0 internal, hidden
|
||||||
19: CONFIG DEVICE PROPS {1806} internal, hidden
|
19: CONFIG DEVICE PROPS {1806} V0 internal, hidden
|
||||||
20: OOBSTATE {1805} internal, hidden
|
20: OOBSTATE {1805} V0 internal, hidden
|
||||||
21: unknown:1813 {1813} internal, hidden
|
21: unknown:1813 {1813} V0 internal, hidden
|
||||||
22: unknown:1830 {1830} internal, hidden
|
22: unknown:1830 {1830} V0 internal, hidden
|
||||||
23: unknown:1861 {1861} internal, hidden
|
23: unknown:1861 {1861} V0 internal, hidden
|
||||||
24: unknown:1890 {1890} internal, hidden
|
24: unknown:1890 {1890} V0 internal, hidden
|
||||||
25: unknown:1891 {1891} internal, hidden
|
25: unknown:1891 {1891} V0 internal, hidden
|
||||||
26: unknown:18A1 {18A1} internal, hidden
|
26: unknown:18A1 {18A1} V0 internal, hidden
|
||||||
27: unknown:1DF3 {1DF3} internal, hidden
|
27: unknown:1DF3 {1DF3} V0 internal, hidden
|
||||||
28: unknown:1E00 {1E00} hidden
|
28: unknown:1E00 {1E00} V0 hidden
|
||||||
29: unknown:1EB0 {1EB0} internal, hidden
|
29: unknown:1EB0 {1EB0} V0 internal, hidden
|
||||||
30: unknown:18B0 {18B0} internal, hidden
|
30: unknown:18B0 {18B0} V0 internal, hidden
|
||||||
Has 19 reprogrammable keys:
|
Has 19 reprogrammable keys:
|
||||||
0: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1
|
0: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1
|
||||||
is FN, FN sensitive, divertable, persistently divertable, pos:1, group:0, group mask:empty
|
is FN, FN sensitive, divertable, persistently divertable, pos:1, group:0, group mask:empty
|
||||||
|
@ -130,7 +130,7 @@ Solaar version 1.1.3
|
||||||
Has 10 persistent remappable keys:
|
Has 10 persistent remappable keys:
|
||||||
0: MultiPlatform Home/Mission Control => Consumer: AC Home
|
0: MultiPlatform Home/Mission Control => Consumer: AC Home
|
||||||
1: MultiPlatform Menu/Show/Hide Virtual Keyboard/Launchpad => Key: COMPOSE
|
1: MultiPlatform Menu/Show/Hide Virtual Keyboard/Launchpad => Key: COMPOSE
|
||||||
2: Multiplatform Back => Consumer: Keyboard Illumination Down (remapped)
|
2: Multiplatform Back => Consumer: AC Back
|
||||||
3: Previous => Consumer: Scan Previous Track
|
3: Previous => Consumer: Scan Previous Track
|
||||||
4: Play/Pause => Consumer: Play/Pause
|
4: Play/Pause => Consumer: Play/Pause
|
||||||
5: Next => Consumer: Scan Next Track
|
5: Next => Consumer: Scan Next Track
|
||||||
|
|
|
@ -1,6 +1,3 @@
|
||||||
(from Julien Danjou)
|
|
||||||
|
|
||||||
(solaar)
|
|
||||||
2: Wireless Solar Keyboard K750
|
2: Wireless Solar Keyboard K750
|
||||||
Codename : K750
|
Codename : K750
|
||||||
Kind : keyboard
|
Kind : keyboard
|
|
@ -0,0 +1,53 @@
|
||||||
|
|
||||||
|
1: Wireless Touch Keyboard K400
|
||||||
|
Codename : K400
|
||||||
|
Kind : keyboard
|
||||||
|
Wireless PID : 4024
|
||||||
|
Protocol : HID++ 2.0
|
||||||
|
Polling rate : 8 ms (125Hz)
|
||||||
|
Serial number: AC5F5069
|
||||||
|
Firmware: RQK 50.01.B0013
|
||||||
|
The power switch is located on the edge of top right corner.
|
||||||
|
Supports 22 HID++ 2.0 features:
|
||||||
|
0: ROOT {0000}
|
||||||
|
1: FEATURE SET {0001}
|
||||||
|
2: FEATURE INFO {0002}
|
||||||
|
3: DEVICE FW VERSION {0003}
|
||||||
|
4: DEVICE NAME {0005}
|
||||||
|
5: BATTERY STATUS {1000}
|
||||||
|
6: REPROG CONTROLS {1B00}
|
||||||
|
7: REPROG CONTROLS V3 {1B03}
|
||||||
|
8: WIRELESS DEVICE STATUS {1D4B}
|
||||||
|
9: unknown:1DF0 {1DF0} hidden
|
||||||
|
10: unknown:1DF3 {1DF3} internal, hidden
|
||||||
|
11: unknown:1E00 {1E00} hidden
|
||||||
|
12: VERTICAL SCROLLING {2100}
|
||||||
|
13: HI RES SCROLLING {2120}
|
||||||
|
14: MOUSE POINTER {2200}
|
||||||
|
15: FN INVERSION {40A0}
|
||||||
|
16: NEW FN INVERSION {40A2}
|
||||||
|
17: ENCRYPTION {4100}
|
||||||
|
18: KEYBOARD LAYOUT {4520}
|
||||||
|
19: TOUCHPAD FW ITEMS {6010}
|
||||||
|
20: TOUCHPAD SW ITEMS {6011}
|
||||||
|
21: TOUCHPAD WIN8 FW ITEMS {6012}
|
||||||
|
Has 18 reprogrammable keys:
|
||||||
|
0: SHOW DESKTOP => ShowDesktop is FN, reprogrammable
|
||||||
|
1: METRO APPSWITCH => MetroAppSwitch is FN, reprogrammable
|
||||||
|
2: METRO SEARCH => MetroSearch is FN, reprogrammable
|
||||||
|
3: METRO SHARE => MetroShare is FN, reprogrammable
|
||||||
|
4: METRO DEVICES => MetroDevices is FN, reprogrammable
|
||||||
|
5: METRO SETTINGS => MetroSettings is FN, reprogrammable
|
||||||
|
6: Previous => Previous is FN
|
||||||
|
7: Play/Pause => Play/Pause is FN
|
||||||
|
8: Next => Next is FN
|
||||||
|
9: Mute => Mute is FN
|
||||||
|
10: Volume Down => Volume Down is FN
|
||||||
|
11: Volume Up => Volume Up is FN
|
||||||
|
12: MEDIA PLAYER => Music nonstandard, reprogrammable
|
||||||
|
13: Lock PC => WindowsLock nonstandard, reprogrammable
|
||||||
|
14: SLEEP => Sleep nonstandard, reprogrammable
|
||||||
|
15: LEFT CLICK => LeftClick mse
|
||||||
|
16: LEFT CLICK => LeftClick mse
|
||||||
|
17: RIGHT CLICK => RightClick mse
|
||||||
|
Battery: 90%, discharging.
|
|
@ -1,14 +1,3 @@
|
||||||
Unifying Receiver
|
|
||||||
Device path : /dev/hidraw0
|
|
||||||
USB id : 046d:c52b
|
|
||||||
Serial : BAFF9007
|
|
||||||
Firmware : 12.03.B0025
|
|
||||||
Bootloader : 02.15
|
|
||||||
Other : AA.AA
|
|
||||||
Has 1 paired device(s) out of a maximum of 6.
|
|
||||||
Notifications: wireless, software present (0x000900)
|
|
||||||
Device activity counters: 1=221
|
|
||||||
|
|
||||||
1: Wireless Trackball M570
|
1: Wireless Trackball M570
|
||||||
Codename : M570
|
Codename : M570
|
||||||
Kind : mouse
|
Kind : mouse
|
|
@ -1,29 +0,0 @@
|
||||||
Wireless Mouse M325
|
|
||||||
Codename : M325
|
|
||||||
Kind : mouse
|
|
||||||
Wireless PID : 400A
|
|
||||||
Protocol : HID++ 2.0
|
|
||||||
Polling rate : 8 ms (125Hz)
|
|
||||||
Serial number: ABB05E01
|
|
||||||
Firmware: RQM 27.02.B0028
|
|
||||||
The power switch is located on the base.
|
|
||||||
Supports 13 HID++ 2.0 features:
|
|
||||||
0: ROOT {0000}
|
|
||||||
1: FEATURE SET {0001}
|
|
||||||
2: DEVICE FW VERSION {0003}
|
|
||||||
3: DEVICE NAME {0005}
|
|
||||||
4: BATTERY STATUS {1000}
|
|
||||||
5: WIRELESS DEVICE STATUS {1D4B}
|
|
||||||
6: unknown:1DF3 {1DF3} hidden
|
|
||||||
7: REPROG CONTROLS {1B00}
|
|
||||||
8: unknown:1DF0 {1DF0} hidden
|
|
||||||
9: unknown:1F03 {1F03} hidden
|
|
||||||
10: VERTICAL SCROLLING {2100}
|
|
||||||
11: HI RES SCROLLING {2120}
|
|
||||||
12: MOUSE POINTER {2200}
|
|
||||||
Has 5 reprogrammable keys:
|
|
||||||
0: LEFT CLICK => LeftClick mse, reprogrammable
|
|
||||||
1: RIGHT CLICK => RightClick mse, reprogrammable
|
|
||||||
2: MIDDLE BUTTON => MiddleMouseButton mse, reprogrammable
|
|
||||||
3: BACK AS BUTTON 4 => Back mse, reprogrammable
|
|
||||||
4: FORWARD AS BUTTON 5 => BrowserForward mse, reprogrammable
|
|
|
@ -1,82 +0,0 @@
|
||||||
Unifying Receiver
|
|
||||||
Device path : /dev/hidraw0
|
|
||||||
USB id : 046d:c52b
|
|
||||||
Serial : E21FAD57
|
|
||||||
Firmware : 24.06.B0030
|
|
||||||
Bootloader : 01.08
|
|
||||||
Other : AA.AC
|
|
||||||
Has 2 paired device(s) out of a maximum of 6.
|
|
||||||
Notifications: wireless, software present (0x000900)
|
|
||||||
Device activity counters: 1=190, 2=66
|
|
||||||
|
|
||||||
|
|
||||||
2: Multi Device Silent Mouse M585/M590
|
|
||||||
Codename : M585/M590
|
|
||||||
Kind : mouse
|
|
||||||
Wireless PID : 406B
|
|
||||||
Protocol : HID++ 4.5
|
|
||||||
Polling rate : 8 ms (125Hz)
|
|
||||||
Serial number: 22AEB299
|
|
||||||
Bootloader: BOT 48.01.B0002
|
|
||||||
Firmware: MPM 05.10.B0011
|
|
||||||
Other:
|
|
||||||
The power switch is located on the base.
|
|
||||||
Supports 35 HID++ 2.0 features:
|
|
||||||
0: ROOT {0000}
|
|
||||||
1: FEATURE SET {0001}
|
|
||||||
2: DEVICE FW VERSION {0003}
|
|
||||||
3: DEVICE NAME {0005}
|
|
||||||
4: WIRELESS DEVICE STATUS {1D4B}
|
|
||||||
5: RESET {0020}
|
|
||||||
6: unknown:0021 {0021}
|
|
||||||
7: unknown:0007 {0007}
|
|
||||||
8: BATTERY STATUS {1000}
|
|
||||||
9: CHANGE HOST {1814}
|
|
||||||
10: unknown:1815 {1815}
|
|
||||||
11: REPROG CONTROLS V4 {1B04}
|
|
||||||
12: unknown:1C00 {1C00}
|
|
||||||
13: POINTER SPEED {2205}
|
|
||||||
Pointer Speed: 1.31640625
|
|
||||||
14: VERTICAL SCROLLING {2100}
|
|
||||||
Roller type: standard
|
|
||||||
Ratchet per turn: 18
|
|
||||||
Scroll lines: 0
|
|
||||||
15: unknown:00C2 {00C2}
|
|
||||||
16: unknown:1802 {1802} internal, hidden
|
|
||||||
17: unknown:1803 {1803} internal, hidden
|
|
||||||
18: unknown:1806 {1806} internal, hidden
|
|
||||||
19: unknown:1805 {1805} internal, hidden
|
|
||||||
20: unknown:1813 {1813} internal, hidden
|
|
||||||
21: unknown:1830 {1830} internal, hidden
|
|
||||||
22: unknown:1861 {1861} internal, hidden
|
|
||||||
23: unknown:1890 {1890} internal, hidden
|
|
||||||
24: unknown:1891 {1891} internal, hidden
|
|
||||||
25: unknown:18A1 {18A1} internal, hidden
|
|
||||||
26: unknown:1DF3 {1DF3} internal, hidden
|
|
||||||
27: unknown:1E00 {1E00} hidden
|
|
||||||
28: unknown:1EB0 {1EB0} internal, hidden
|
|
||||||
29: unknown:18B1 {18B1} internal, hidden
|
|
||||||
30: unknown:1850 {1850} internal, hidden
|
|
||||||
31: unknown:1E22 {1E22}
|
|
||||||
32: unknown:1F03 {1F03} internal, hidden
|
|
||||||
33: unknown:18C0 {18C0} internal, hidden
|
|
||||||
34: LOWRES WHEEL {2130}
|
|
||||||
Wheel Reports: HID
|
|
||||||
Has 8 reprogrammable keys:
|
|
||||||
0: LEFT CLICK , default: LeftClick => LEFT CLICK
|
|
||||||
mse, reprogrammable, pos:0, group:1, gmask:1
|
|
||||||
1: RIGHT CLICK , default: RightClick => RIGHT CLICK
|
|
||||||
mse, reprogrammable, pos:0, group:1, gmask:1
|
|
||||||
2: MIDDLE BUTTON , default: MiddleMouseButton => MIDDLE BUTTON
|
|
||||||
divertable, mse, persistently divertable, reprogrammable, pos:0, group:2, gmask:3
|
|
||||||
3: BACK AS BUTTON 4 , default: BackEx => BACK AS BUTTON 4
|
|
||||||
divertable, mse, persistently divertable, reprogrammable, pos:0, group:2, gmask:3
|
|
||||||
4: FORWARD AS BUTTON 5 , default: BrowserForwardEx => FORWARD AS BUTTON 5
|
|
||||||
divertable, mse, persistently divertable, reprogrammable, pos:0, group:2, gmask:3
|
|
||||||
5: LEFT SCROLL AS AC PAN , default: HorzScrollLeftSet => LEFT SCROLL AS AC PAN
|
|
||||||
divertable, mse, persistently divertable, reprogrammable, pos:0, group:2, gmask:3
|
|
||||||
6: RIGHT SCROLL AS AC PAN , default: HorzScrollRightSet => RIGHT SCROLL AS AC PAN
|
|
||||||
divertable, mse, persistently divertable, reprogrammable, pos:0, group:2, gmask:3
|
|
||||||
7: unknown:00D7 , default: unknown:00B4 => unknown:00D7
|
|
||||||
divertable, virtual, pos:0, group:3, gmask:0
|
|
||||||
Battery: 50%, discharging.
|
|
|
@ -1,81 +0,0 @@
|
||||||
Unifying Receiver
|
|
||||||
Device path : /dev/hidraw1
|
|
||||||
USB id : 046d:c534
|
|
||||||
Serial : 0
|
|
||||||
Firmware : 29.00.B0015
|
|
||||||
Has 2 paired device(s) out of a maximum of 6.
|
|
||||||
Notifications: (none)
|
|
||||||
|
|
||||||
1: Wireless Keyboard MK270
|
|
||||||
Codename : MK270
|
|
||||||
Kind : keyboard
|
|
||||||
Wireless PID : 4023
|
|
||||||
Protocol : HID++ 2.0
|
|
||||||
Polling rate : 20 ms (50Hz)
|
|
||||||
Serial number: 00000000
|
|
||||||
Firmware: RQK 49.00.B0029
|
|
||||||
Supports 18 HID++ 2.0 features:
|
|
||||||
0: ROOT {0000}
|
|
||||||
1: FEATURE SET {0001}
|
|
||||||
2: DEVICE FW VERSION {0003}
|
|
||||||
3: DEVICE NAME {0005}
|
|
||||||
4: BATTERY STATUS {1000}
|
|
||||||
5: REPROG CONTROLS {1B00}
|
|
||||||
6: WIRELESS DEVICE STATUS {1D4B}
|
|
||||||
7: FN INVERSION {40A0}
|
|
||||||
8: ENCRYPTION {4100}
|
|
||||||
9: KEYBOARD LAYOUT {4520}
|
|
||||||
10: unknown:1810 {1810} internal, hidden
|
|
||||||
11: unknown:1830 {1830} internal, hidden
|
|
||||||
12: unknown:1890 {1890} internal, hidden
|
|
||||||
13: unknown:18A0 {18A0} internal, hidden
|
|
||||||
14: unknown:18B0 {18B0} internal, hidden
|
|
||||||
15: unknown:1DF3 {1DF3} internal, hidden
|
|
||||||
16: unknown:1E00 {1E00} hidden
|
|
||||||
17: unknown:1868 {1868} internal, hidden
|
|
||||||
Has 11 reprogrammable keys:
|
|
||||||
0: MY HOME => HomePage is FN, FN sensitive, reprogrammable
|
|
||||||
1: Mail => Email is FN, FN sensitive, reprogrammable
|
|
||||||
2: SEARCH => Search is FN, FN sensitive, reprogrammable
|
|
||||||
3: Calculator => Calculator is FN, FN sensitive, reprogrammable
|
|
||||||
4: MEDIA PLAYER => Music is FN, FN sensitive, reprogrammable
|
|
||||||
5: Previous => Previous is FN, FN sensitive
|
|
||||||
6: Play/Pause => Play/Pause is FN, FN sensitive
|
|
||||||
7: Next => Next is FN, FN sensitive
|
|
||||||
8: Mute => Mute is FN, FN sensitive
|
|
||||||
9: Volume Down => Volume Down is FN, FN sensitive
|
|
||||||
10: Volume Up => Volume Up is FN, FN sensitive
|
|
||||||
Battery: 30%, discharging.
|
|
||||||
|
|
||||||
2: Wireless Mouse
|
|
||||||
Codename :
|
|
||||||
Kind : mouse
|
|
||||||
Wireless PID : 4022
|
|
||||||
Protocol : HID++ 2.0
|
|
||||||
Polling rate : 8 ms (125Hz)
|
|
||||||
Serial number: 00000000
|
|
||||||
Firmware: RQM 38.00.B0044
|
|
||||||
Supports 18 HID++ 2.0 features:
|
|
||||||
0: ROOT {0000}
|
|
||||||
1: FEATURE SET {0001}
|
|
||||||
2: DEVICE FW VERSION {0003}
|
|
||||||
3: DEVICE NAME {0005}
|
|
||||||
4: BATTERY STATUS {1000}
|
|
||||||
5: REPROG CONTROLS {1B00}
|
|
||||||
6: WIRELESS DEVICE STATUS {1D4B}
|
|
||||||
7: VERTICAL SCROLLING {2100}
|
|
||||||
8: MOUSE POINTER {2200}
|
|
||||||
9: unknown:1810 {1810} internal, hidden
|
|
||||||
10: unknown:1830 {1830} internal, hidden
|
|
||||||
11: unknown:1850 {1850} internal, hidden
|
|
||||||
12: unknown:1890 {1890} internal, hidden
|
|
||||||
13: unknown:18B0 {18B0} internal, hidden
|
|
||||||
14: unknown:1DF3 {1DF3} internal, hidden
|
|
||||||
15: unknown:1868 {1868} internal, hidden
|
|
||||||
16: unknown:1869 {1869} internal, hidden
|
|
||||||
17: unknown:1E00 {1E00} hidden
|
|
||||||
Has 3 reprogrammable keys:
|
|
||||||
0: LEFT CLICK => LeftClick mse, reprogrammable
|
|
||||||
1: RIGHT CLICK => RightClick mse, reprogrammable
|
|
||||||
2: MIDDLE BUTTON => MiddleMouseButton mse, reprogrammable
|
|
||||||
Battery: 30%, discharging.
|
|
|
@ -1,129 +0,0 @@
|
||||||
# Logitech MK240 NANO Device Information
|
|
||||||
## `solaar show all` Dump
|
|
||||||
```
|
|
||||||
Unifying Receiver (NOTE: NOT claimed to be supporting Unifying from the package box, the only advanced feature that may be related is 128-bit AES encryption) (M/N: C-U0010)
|
|
||||||
Device path : /dev/hidraw0
|
|
||||||
USB id : 046d:c534
|
|
||||||
Serial : 0
|
|
||||||
Firmware : 29.01.B0016
|
|
||||||
Has 2 paired device(s) out of a maximum of 6.
|
|
||||||
Notifications: wireless, software present (0x000900)
|
|
||||||
|
|
||||||
1: Wireless Keyboard MK270 (NOTE: The Product is actually "MK240 NANO Wireless Keyboard and Mouse Combo" with the "K240"(M/N: Y-R0036) keyboard model)
|
|
||||||
Codename : MK270
|
|
||||||
Kind : keyboard
|
|
||||||
Wireless PID : 4023
|
|
||||||
Protocol : HID++ 2.0
|
|
||||||
Polling rate : 20 ms (50Hz)
|
|
||||||
Serial number: 4BBBBA4A
|
|
||||||
Firmware: RQK 49.00.B0029
|
|
||||||
Supports 18 HID++ 2.0 features:
|
|
||||||
0: ROOT {0000}
|
|
||||||
1: FEATURE SET {0001}
|
|
||||||
2: DEVICE FW VERSION {0003}
|
|
||||||
3: DEVICE NAME {0005}
|
|
||||||
4: BATTERY STATUS {1000}
|
|
||||||
5: REPROG CONTROLS {1B00}
|
|
||||||
6: WIRELESS DEVICE STATUS {1D4B}
|
|
||||||
7: FN INVERSION {40A0}
|
|
||||||
8: ENCRYPTION {4100}
|
|
||||||
9: KEYBOARD LAYOUT {4520}
|
|
||||||
10: unknown:1810 {1810} internal, hidden
|
|
||||||
11: unknown:1830 {1830} internal, hidden
|
|
||||||
12: unknown:1890 {1890} internal, hidden
|
|
||||||
13: unknown:18A0 {18A0} internal, hidden
|
|
||||||
14: unknown:18B0 {18B0} internal, hidden
|
|
||||||
15: unknown:1DF3 {1DF3} internal, hidden
|
|
||||||
16: unknown:1E00 {1E00} hidden
|
|
||||||
17: unknown:1868 {1868} internal, hidden
|
|
||||||
Has 11 reprogrammable keys:
|
|
||||||
0: MY HOME => HomePage is FN, FN sensitive, reprogrammable
|
|
||||||
1: Mail => Email is FN, FN sensitive, reprogrammable
|
|
||||||
2: SEARCH => Search is FN, FN sensitive, reprogrammable
|
|
||||||
3: Calculator => Calculator is FN, FN sensitive, reprogrammable
|
|
||||||
4: MEDIA PLAYER => Music is FN, FN sensitive, reprogrammable
|
|
||||||
5: Previous => Previous is FN, FN sensitive
|
|
||||||
6: Play/Pause => Play/Pause is FN, FN sensitive
|
|
||||||
7: Next => Next is FN, FN sensitive
|
|
||||||
8: Mute => Mute is FN, FN sensitive
|
|
||||||
9: Volume Down => Volume Down is FN, FN sensitive
|
|
||||||
10: Volume Up => Volume Up is FN, FN sensitive
|
|
||||||
Battery: 30%, discharging. (NOTE: Capacity readings appears to be faked, or in extremely low sensitivity)
|
|
||||||
|
|
||||||
2: Wireless Mouse M150 (NOTE: The Product is actually "MK240 NANO Wireless Keyboard and Mouse Combo" with the "M212"(M/N: M-R0041) mouse model)
|
|
||||||
Codename : M150
|
|
||||||
Kind : mouse
|
|
||||||
Wireless PID : 4022
|
|
||||||
Protocol : HID++ 2.0
|
|
||||||
Polling rate : 8 ms (125Hz)
|
|
||||||
Serial number: 00000000
|
|
||||||
Firmware: RQM 38.00.B0044
|
|
||||||
Supports 18 HID++ 2.0 features:
|
|
||||||
0: ROOT {0000}
|
|
||||||
1: FEATURE SET {0001}
|
|
||||||
2: DEVICE FW VERSION {0003}
|
|
||||||
3: DEVICE NAME {0005}
|
|
||||||
4: BATTERY STATUS {1000}
|
|
||||||
5: REPROG CONTROLS {1B00}
|
|
||||||
6: WIRELESS DEVICE STATUS {1D4B}
|
|
||||||
7: VERTICAL SCROLLING {2100}
|
|
||||||
8: MOUSE POINTER {2200}
|
|
||||||
9: unknown:1810 {1810} internal, hidden
|
|
||||||
10: unknown:1830 {1830} internal, hidden
|
|
||||||
11: unknown:1850 {1850} internal, hidden
|
|
||||||
12: unknown:1890 {1890} internal, hidden
|
|
||||||
13: unknown:18B0 {18B0} internal, hidden
|
|
||||||
14: unknown:1DF3 {1DF3} internal, hidden
|
|
||||||
15: unknown:1868 {1868} internal, hidden
|
|
||||||
16: unknown:1869 {1869} internal, hidden
|
|
||||||
17: unknown:1E00 {1E00} hidden
|
|
||||||
Has 3 reprogrammable keys:
|
|
||||||
0: LEFT CLICK => LeftClick mse, reprogrammable
|
|
||||||
1: RIGHT CLICK => RightClick mse, reprogrammable
|
|
||||||
2: MIDDLE BUTTON => MiddleMouseButton mse, reprogrammable
|
|
||||||
Battery: 30%, discharging. (NOTE: Capacity readings appears to be faked, or in extremely low sensitivity, in the Logitech SetPoint utility battery level is displayed as "HIGH")
|
|
||||||
```
|
|
||||||
|
|
||||||
## Connect Utility Report
|
|
||||||
```
|
|
||||||
Re-Connect Software Version : 2.00.3
|
|
||||||
Dj Api Version : 2, 50, 25
|
|
||||||
|
|
||||||
接收器(Receiver)
|
|
||||||
Name : 無線接收器(Wireless Receiver)
|
|
||||||
ModelId : 0x46dc534
|
|
||||||
Serial Number :
|
|
||||||
Handle : 0xff000001
|
|
||||||
Wireless Status : 0x3
|
|
||||||
Firmware version : 029.001.00016
|
|
||||||
Bootloader version :
|
|
||||||
Dfu Status : 0x1
|
|
||||||
Is Dfu Cancellable : Yes
|
|
||||||
Max Device Capacity : 6
|
|
||||||
|
|
||||||
滑鼠(Mouse)
|
|
||||||
Name :
|
|
||||||
ModelId : 0x0
|
|
||||||
Serial Number : 4022-00-00-00-00
|
|
||||||
Handle : 0x2000003
|
|
||||||
Wireless Status : 0x0
|
|
||||||
Firmware version : 038.000.00044
|
|
||||||
Bootloader version :
|
|
||||||
Dfu Status : 0x1
|
|
||||||
Is Dfu Cancellable : No
|
|
||||||
Battery Status : 0x2
|
|
||||||
Parent Handle : 0xff000001
|
|
||||||
|
|
||||||
鍵盤(Keyboard)
|
|
||||||
Name :
|
|
||||||
ModelId : 0x0
|
|
||||||
Serial Number : 4023-4B-BB-BA-4A
|
|
||||||
Handle : 0x1000002
|
|
||||||
Wireless Status : 0x0
|
|
||||||
Firmware version : 049.000.00029
|
|
||||||
Bootloader version :
|
|
||||||
Dfu Status : 0x1
|
|
||||||
Is Dfu Cancellable : No
|
|
||||||
Battery Status : 0x2
|
|
||||||
Parent Handle : 0xff000001
|
|
||||||
```
|
|
|
@ -1,85 +0,0 @@
|
||||||
Unifying Receiver
|
|
||||||
Device path : /dev/hidraw9
|
|
||||||
USB id : 046d:c534
|
|
||||||
Serial : 00000000
|
|
||||||
Firmware : 29.00.B0015
|
|
||||||
Has 2 paired device(s) out of a maximum of 6.
|
|
||||||
Notifications: (none)
|
|
||||||
|
|
||||||
1: Wireless Keyboard
|
|
||||||
Codename : MK270
|
|
||||||
Kind : keyboard
|
|
||||||
Wireless PID : 4023
|
|
||||||
Protocol : HID++ 2.0
|
|
||||||
Polling rate : 20 ms (50Hz)
|
|
||||||
Serial number: 00000000
|
|
||||||
Firmware: RQK 49.00.B0029
|
|
||||||
Supports 18 HID++ 2.0 features:
|
|
||||||
0: ROOT {0000}
|
|
||||||
1: FEATURE SET {0001}
|
|
||||||
2: DEVICE FW VERSION {0003}
|
|
||||||
3: DEVICE NAME {0005}
|
|
||||||
4: BATTERY STATUS {1000}
|
|
||||||
5: REPROG CONTROLS {1B00}
|
|
||||||
6: WIRELESS DEVICE STATUS {1D4B}
|
|
||||||
7: FN INVERSION {40A0}
|
|
||||||
8: ENCRYPTION {4100}
|
|
||||||
9: KEYBOARD LAYOUT {4520}
|
|
||||||
10: unknown:1810 {1810} internal, hidden
|
|
||||||
11: unknown:1830 {1830} internal, hidden
|
|
||||||
12: unknown:1890 {1890} internal, hidden
|
|
||||||
13: unknown:18A0 {18A0} internal, hidden
|
|
||||||
14: unknown:18B0 {18B0} internal, hidden
|
|
||||||
15: unknown:1DF3 {1DF3} internal, hidden
|
|
||||||
16: unknown:1E00 {1E00} hidden
|
|
||||||
17: unknown:1868 {1868} internal, hidden
|
|
||||||
Has 11 reprogrammable keys:
|
|
||||||
0: MY HOME => HomePage FN sensitive, is FN, reprogrammable
|
|
||||||
1: Mail => Email FN sensitive, is FN, reprogrammable
|
|
||||||
2: SEARCH => Search FN sensitive, is FN, reprogrammable
|
|
||||||
3: Calculator => Calculator FN sensitive, is FN, reprogrammable
|
|
||||||
4: MEDIA PLAYER => Music FN sensitive, is FN, reprogrammable
|
|
||||||
5: Previous => Previous FN sensitive, is FN
|
|
||||||
6: Play/Pause => Play/Pause FN sensitive, is FN
|
|
||||||
7: Next => Next FN sensitive, is FN
|
|
||||||
8: Mute => Mute FN sensitive, is FN
|
|
||||||
9: Volume Down => Volume Down FN sensitive, is FN
|
|
||||||
10: Volume Up => Volume Up FN sensitive, is FN
|
|
||||||
Battery: 30%, discharging.
|
|
||||||
|
|
||||||
2: Wireless Mouse
|
|
||||||
Codename : M185
|
|
||||||
Kind : mouse
|
|
||||||
Wireless PID : 4038
|
|
||||||
Protocol : HID++ 2.0
|
|
||||||
Polling rate : 8 ms (125Hz)
|
|
||||||
Serial number: 00000000
|
|
||||||
Firmware: RQM 54.00.B0004
|
|
||||||
Supports 22 HID++ 2.0 features:
|
|
||||||
0: ROOT {0000}
|
|
||||||
1: FEATURE SET {0001}
|
|
||||||
2: DEVICE FW VERSION {0003}
|
|
||||||
3: DEVICE NAME {0005}
|
|
||||||
4: BATTERY STATUS {1000}
|
|
||||||
5: unknown:1830 {1830} internal, hidden
|
|
||||||
6: unknown:1850 {1850} internal, hidden
|
|
||||||
7: unknown:1860 {1860} internal, hidden
|
|
||||||
8: unknown:1890 {1890} internal, hidden
|
|
||||||
9: unknown:18A0 {18A0} internal, hidden
|
|
||||||
10: unknown:18C0 {18C0} internal, hidden
|
|
||||||
11: WIRELESS DEVICE STATUS {1D4B}
|
|
||||||
12: unknown:1DF3 {1DF3} internal, hidden
|
|
||||||
13: REPROG CONTROLS {1B00}
|
|
||||||
14: unknown:1DF0 {1DF0} hidden
|
|
||||||
15: unknown:1E00 {1E00} hidden
|
|
||||||
16: unknown:1E80 {1E80} internal, hidden
|
|
||||||
17: unknown:1E90 {1E90} internal, hidden
|
|
||||||
18: unknown:1F03 {1F03} internal, hidden
|
|
||||||
19: VERTICAL SCROLLING {2100}
|
|
||||||
20: MOUSE POINTER {2200}
|
|
||||||
21: unknown:18B0 {18B0} internal, hidden
|
|
||||||
Has 3 reprogrammable keys:
|
|
||||||
0: LEFT CLICK => LeftClick mse, reprogrammable
|
|
||||||
1: RIGHT CLICK => RightClick mse, reprogrammable
|
|
||||||
2: MIDDLE BUTTON => MiddleMouseButton mse, reprogrammable
|
|
||||||
Battery: 70%, discharging.
|
|
|
@ -39,8 +39,8 @@ Feature | ID | Status | Notes
|
||||||
`CONFIG_DEVICE_PROPS` | `0x1806` | Unsupported |
|
`CONFIG_DEVICE_PROPS` | `0x1806` | Unsupported |
|
||||||
`CHANGE_HOST` | `0x1814` | Supported | `ChangeHost`
|
`CHANGE_HOST` | `0x1814` | Supported | `ChangeHost`
|
||||||
`HOSTS_INFO` | `0x1815` | Partial Support | `get_host_names`, partial listing only
|
`HOSTS_INFO` | `0x1815` | Partial Support | `get_host_names`, partial listing only
|
||||||
`BACKLIGHT` | `0x1981` | Unsupported |
|
`BACKLIGHT` | `0x1981` | Supported | `Backlight`
|
||||||
`BACKLIGHT2` | `0x1982` | Supported | `Backlight2`
|
`BACKLIGHT2` | `0x1982` | Supported | `Backlight2`, ...
|
||||||
`BACKLIGHT3` | `0x1983` | Unsupported |
|
`BACKLIGHT3` | `0x1983` | Unsupported |
|
||||||
`PRESENTER_CONTROL` | `0x1A00` | Unsupported |
|
`PRESENTER_CONTROL` | `0x1A00` | Unsupported |
|
||||||
`SENSOR_3D` | `0x1A01` | Unsupported |
|
`SENSOR_3D` | `0x1A01` | Unsupported |
|
||||||
|
@ -54,7 +54,7 @@ Feature | ID | Status | Notes
|
||||||
`WIRELESS_DEVICE_STATUS` | `0x1D4B` | Read only | status reporting from device
|
`WIRELESS_DEVICE_STATUS` | `0x1D4B` | Read only | status reporting from device
|
||||||
`REMAINING_PAIRING` | `0x1DF0` | Unsupported |
|
`REMAINING_PAIRING` | `0x1DF0` | Unsupported |
|
||||||
`FIRMWARE_PROPERTIES` | `0x1F1F` | Unsupported |
|
`FIRMWARE_PROPERTIES` | `0x1F1F` | Unsupported |
|
||||||
`ADC_MEASUREMENT` | `0x1F20` | Unsupported |
|
`ADC_MEASUREMENT` | `0x1F20` | Supported | `ADCPower`
|
||||||
`LEFT_RIGHT_SWAP` | `0x2001` | Unsupported |
|
`LEFT_RIGHT_SWAP` | `0x2001` | Unsupported |
|
||||||
`SWAP_BUTTON_CANCEL` | `0x2005` | Unsupported |
|
`SWAP_BUTTON_CANCEL` | `0x2005` | Unsupported |
|
||||||
`POINTER_AXIS_ORIENTATION` | `0x2006` | Unsupported |
|
`POINTER_AXIS_ORIENTATION` | `0x2006` | Unsupported |
|
||||||
|
@ -97,22 +97,22 @@ Feature | ID | Status | Notes
|
||||||
`GESTURE` | `0x6500` | Unsupported |
|
`GESTURE` | `0x6500` | Unsupported |
|
||||||
`GESTURE_2` | `0x6501` | Partial Support | `Gesture2Gestures`, `Gesture2Params`
|
`GESTURE_2` | `0x6501` | Partial Support | `Gesture2Gestures`, `Gesture2Params`
|
||||||
`GKEY` | `0x8010` | Partial Support | `DivertGkeys`
|
`GKEY` | `0x8010` | Partial Support | `DivertGkeys`
|
||||||
`MKEYS` | `0x8020` | Unsupported |
|
`MKEYS` | `0x8020` | Supported | `MkeyLEDs`
|
||||||
`MR` | `0x8030` | Unsupported |
|
`MR` | `0x8030` | Supported | `MRKeyLED`
|
||||||
`BRIGHTNESS_CONTROL` | `0x8040` | Unsupported |
|
`BRIGHTNESS_CONTROL` | `0x8040` | Supported | `BrightnessControl`
|
||||||
`REPORT_RATE` | `0x8060` | Supported | `ReportRate`
|
`REPORT_RATE` | `0x8060` | Supported | `ReportRate`
|
||||||
`COLOR_LED_EFFECTS` | `0x8070` | Unsupported |
|
`COLOR_LED_EFFECTS` | `0x8070` | Supported | `LEDControl`, `LEDZoneSetting`
|
||||||
`RGB_EFFECTS` | `0X8071` | Unsupported |
|
`RGB_EFFECTS` | `0X8071` | Supported | `RGBControl`, `RGBEffectSetting`
|
||||||
`PER_KEY_LIGHTING` | `0x8080` | Unsupported |
|
`PER_KEY_LIGHTING` | `0x8080` | Unsupported |
|
||||||
`PER_KEY_LIGHTING_V2` | `0x8081` | Unsupported |
|
`PER_KEY_LIGHTING_V2` | `0x8081` | Supported | `PerKeyLighting`
|
||||||
`MODE_STATUS` | `0x8090` | Unsupported |
|
`MODE_STATUS` | `0x8090` | Unsupported |
|
||||||
`ONBOARD_PROFILES` | `0x8100` | Unsupported |
|
`ONBOARD_PROFILES` | `0x8100` | Supported |
|
||||||
`MOUSE_BUTTON_SPY` | `0x8110` | Unsupported |
|
`MOUSE_BUTTON_SPY` | `0x8110` | Unsupported |
|
||||||
`LATENCY_MONITORING` | `0x8111` | Unsupported |
|
`LATENCY_MONITORING` | `0x8111` | Unsupported |
|
||||||
`GAMING_ATTACHMENTS` | `0x8120` | Unsupported |
|
`GAMING_ATTACHMENTS` | `0x8120` | Unsupported |
|
||||||
`FORCE_FEEDBACK` | `0x8123` | Unsupported |
|
`FORCE_FEEDBACK` | `0x8123` | Unsupported |
|
||||||
`SIDETONE` | `0x8300` | Unsupported |
|
`SIDETONE` | `0x8300` | Supported | `Sidetone`
|
||||||
`EQUALIZER` | `0x8310` | Unsupported |
|
`EQUALIZER` | `0x8310` | Supported | `Equalizer`
|
||||||
`HEADSET_OUT` | `0x8320` | Unsupported |
|
`HEADSET_OUT` | `0x8320` | Unsupported |
|
||||||
|
|
||||||
A “read only” note means the feature is a read-only feature.
|
A “read only” note means the feature is a read-only feature.
|
||||||
|
@ -120,9 +120,9 @@ A “read only” note means the feature is a read-only feature.
|
||||||
## Implementing a feature
|
## Implementing a feature
|
||||||
|
|
||||||
Features are implemented as settable features in
|
Features are implemented as settable features in
|
||||||
lib/logitech_receiver/settings_templates.py
|
`lib/logitech_receiver/settings_templates.py`.
|
||||||
some features also have direct implementation in
|
Some features also have direct implementation in
|
||||||
lib/logitech_receiver/hidpp20.py
|
`lib/logitech_receiver/hidpp20.py`.
|
||||||
|
|
||||||
In most cases it should suffice to only implement the settable feature
|
In most cases it should suffice to only implement the settable feature
|
||||||
interface for each setting in the feature. That will add one or more
|
interface for each setting in the feature. That will add one or more
|
||||||
|
@ -202,4 +202,4 @@ device implements the feature it does not usefully support the setting.
|
||||||
Settings need to be added to the `SETTINGS` list so that setting discovery can be done.
|
Settings need to be added to the `SETTINGS` list so that setting discovery can be done.
|
||||||
|
|
||||||
For more information on implementing feature settings
|
For more information on implementing feature settings
|
||||||
see the comments in lib/logitech_receiver/settings_templates.py.
|
see the comments in `lib/logitech_receiver/settings_templates.py`.
|
||||||
|
|
55
docs/i18n.md
|
@ -5,12 +5,12 @@ layout: page
|
||||||
|
|
||||||
# Translating Solaar
|
# Translating Solaar
|
||||||
|
|
||||||
First, make sure you have installed the `gettext` package.
|
First, make sure you have installed the `gettext` package. Also, you would need to install language pack for Gnome for your language, e.g. `language-pack-gnome-XX-base` for Debian/Ubuntu.
|
||||||
|
|
||||||
Here are the steps to add/update a translation (you should run all scripts from
|
Here are the steps to add/update a translation (you should run all scripts from
|
||||||
the source root):
|
the source root):
|
||||||
|
|
||||||
1. Get an up-to-date copy of the source files. Preferably, make a clone on
|
1. Get an up-to-date copy of the source files. Preferably, make a fork on
|
||||||
GitHub and clone it locally on your machine; this way you can later make a
|
GitHub and clone it locally on your machine; this way you can later make a
|
||||||
pull request to the main project.
|
pull request to the main project.
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ the source root):
|
||||||
the translation (msgstr); if you leave msgstr empty, the string will remain
|
the translation (msgstr); if you leave msgstr empty, the string will remain
|
||||||
untranslated.
|
untranslated.
|
||||||
|
|
||||||
Alternatively, you can use the excellent `poedit`.
|
Alternatively, you can use the excellent [Poedit](https://poedit.net/) or [Lokalize](https://apps.kde.org/lokalize/).
|
||||||
|
|
||||||
4. Run `./tools/po-compile.sh`. It will bring up-to-date all the compiled
|
4. Run `./tools/po-compile.sh`. It will bring up-to-date all the compiled
|
||||||
language files, necessary at runtime.
|
language files, necessary at runtime.
|
||||||
|
@ -31,7 +31,7 @@ the source root):
|
||||||
from your environment; to start it in another language, run
|
from your environment; to start it in another language, run
|
||||||
`LANGUAGE=<language> ./bin/solaar`.
|
`LANGUAGE=<language> ./bin/solaar`.
|
||||||
|
|
||||||
You can edit the translation iteratively, just repeat from step 3.
|
To edit the translation iteratively, just repeat from step 3.
|
||||||
If the upstream changes, do a `git pull` and then repeat from step 2.
|
If the upstream changes, do a `git pull` and then repeat from step 2.
|
||||||
|
|
||||||
Before opening a pull request, please run `./tools/po-update.sh <language>` again. This will
|
Before opening a pull request, please run `./tools/po-update.sh <language>` again. This will
|
||||||
|
@ -43,26 +43,43 @@ a translation.
|
||||||
Some of the languages Solaar has been translated to are listed below. A full list of available translations can be obtained by checking the `/po` folder for translation files.
|
Some of the languages Solaar has been translated to are listed below. A full list of available translations can be obtained by checking the `/po` folder for translation files.
|
||||||
|
|
||||||
- Chinese (Simplified): [Rongrong][Rongronggg9]
|
- Chinese (Simplified): [Rongrong][Rongronggg9]
|
||||||
- Français: [Papoteur][papoteur], [David Geiger][david-geiger],
|
- Chinese (Taiwan): Peter Dave Hello
|
||||||
[Damien Lallement][damsweb]
|
- Czech: Marián Kyral
|
||||||
- Italiano: [Michele Olivo][micheleolivo]
|
- Croatian: gogo
|
||||||
|
- Danish: John Erling Blad
|
||||||
|
- Dutch: Heimen Stoffels
|
||||||
|
- Français: [Papoteur][papoteur], [David Geiger][david-geiger], [Damien Lallement][damsweb]
|
||||||
|
- Finnish: Tomi Leppänen
|
||||||
|
- German: Daniel Frost
|
||||||
|
- Greek: Vangelis Skarmoutsos
|
||||||
|
- Indonesia: [Ferdina Kusumah][feku]
|
||||||
|
- Italiano: [Michele Olivo][micheleolivo], Lorenzo
|
||||||
|
- Japanese: Ryunosuke Toda
|
||||||
- Norsk (Bokmål): [John Erling Blad][jeblad]
|
- Norsk (Bokmål): [John Erling Blad][jeblad]
|
||||||
- Polski: [Adrian Piotrowicz][nexces]
|
- Norsk (Nynorsk): [John Erling Blad][jeblad]
|
||||||
- Portuguese-BR: [Drovetto][drovetto], [Josenivaldo Benito Jr.][jrbenito]
|
- Polski: [Adrian Piotrowicz][nexces], Matthaiks
|
||||||
|
- Portuguese: Américo Monteiro
|
||||||
|
- Portuguese-BR: [Drovetto][drovetto], [Josenivaldo Benito Jr.][jrbenito], Vinícius
|
||||||
- Română: Daniel Pavel
|
- Română: Daniel Pavel
|
||||||
- Russian: [Dimitriy Ryazantcev][DJm00n]
|
- Russian: [Dimitriy Ryazantcev][DJm00n], Anton Soroko
|
||||||
|
- Serbian: [Renato Kaurić][renatoka]
|
||||||
- Slovak: [Jose Riha][jose1711]
|
- Slovak: [Jose Riha][jose1711]
|
||||||
- Svensk: [Daniel Zippert][zipperten], Emelie Snecker
|
- Spanish, Castilian: Jose Luis Tirado
|
||||||
|
- Swedish: John Erling Blad, [Daniel Zippert][zipperten], Emelie Snecker, Jonatan Nyberg
|
||||||
|
- Turkish: Osman Karagöz
|
||||||
|
- Ukrainian: Олександр Афанасьєв
|
||||||
|
|
||||||
[Rongronggg9]: https://github.com/Rongronggg9
|
[Rongronggg9]: https://github.com/Rongronggg9
|
||||||
[papoteur]: http://github.com/papoteur
|
[papoteur]: https://github.com/papoteur
|
||||||
[david-geiger]: http://github.com/david-geiger
|
[david-geiger]: https://github.com/david-geiger
|
||||||
[damsweb]: http://github.com/damsweb
|
[damsweb]: https://github.com/damsweb
|
||||||
[DJm00n]: https://github.com/DJm00n
|
[DJm00n]: https://github.com/DJm00n
|
||||||
[jose1711]: https://github.com/jose1711
|
[jose1711]: https://github.com/jose1711
|
||||||
[nexces]: http://github.com/nexces
|
[nexces]: https://github.com/nexces
|
||||||
[zipperten]: http://github.com/zipperten
|
[zipperten]: https://github.com/zipperten
|
||||||
[micheleolivo]: http://github.com/micheleolivo
|
[micheleolivo]: https://github.com/micheleolivo
|
||||||
[drovetto]: https://github.com/drovetto
|
[drovetto]: https://github.com/drovetto
|
||||||
[jrbenito]: https://github.com/jrbenito/
|
[jrbenito]: https://github.com/jrbenito
|
||||||
[jeblad]: https://github.com/jeblad/
|
[jeblad]: https://github.com/jeblad
|
||||||
|
[feku]: https://github.com/FerdinaKusumah
|
||||||
|
[renatoka]: https://github.com/renatoka
|
||||||
|
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
|
@ -0,0 +1,204 @@
|
||||||
|
---
|
||||||
|
title: Solaar Implementation
|
||||||
|
layout: page
|
||||||
|
---
|
||||||
|
|
||||||
|
# Solaar Implementation
|
||||||
|
|
||||||
|
Solaar has three main components: code mostly about receivers and devices, code for the command line interface, and code for the graphical user interface.
|
||||||
|
|
||||||
|
The following graph shows the main components of Solaar and how they interact.
|
||||||
|
```mermaid
|
||||||
|
graph TD
|
||||||
|
subgraph User interface
|
||||||
|
U[UI]
|
||||||
|
C[CLI]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph Core
|
||||||
|
U --> S{Solaar}
|
||||||
|
C --> S
|
||||||
|
S --> L[Logitech receiver]
|
||||||
|
L --> R[Receiver]
|
||||||
|
L --> D[Device]
|
||||||
|
S --> B[dbus]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph Hardware interface
|
||||||
|
R --> A
|
||||||
|
D --> A
|
||||||
|
A[hidapi]--> P[hid parser]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph Peripherals
|
||||||
|
P <-.-> M[Logitech mouse]
|
||||||
|
P <-.-> K[Logitech keyboard]
|
||||||
|
end
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Receivers and Devices
|
||||||
|
|
||||||
|
The code in `logitech_receiver` is responsible for creating and maintaining receiver (`receiver/Receiver`) and device (`device/Device`) objects for each device on the computer that uses the Logitech HID++ protocol. These objects are discovered in Linux by interacting with the Linux `udev` system using code in `hidapi`.
|
||||||
|
|
||||||
|
The code in `logitech_receiver/receiver' is responsible for receiver objects.
|
||||||
|
...
|
||||||
|
|
||||||
|
The code in `logitech_receiver/device' is responsible for device objects.
|
||||||
|
|
||||||
|
... the complex device setup process
|
||||||
|
|
||||||
|
A device object stores the currrent value of many aspects of the device. It provides methods for retrieving and setting these aspects. The setters generally store the new value and call an hidpp10 or hidpp20 function to modify the device accordingly. The retrievers generally check whether the value is cached on the device if so just returning the cached value and if not calling an hidpp10 or hidpp20 function to retrieve the value and returning the value after caching it.
|
||||||
|
...
|
||||||
|
|
||||||
|
Not all communication with a device is done through the `Device` class. Some is done directly from settings.
|
||||||
|
....
|
||||||
|
|
||||||
|
### HID++
|
||||||
|
|
||||||
|
#### HID++ 2.0
|
||||||
|
|
||||||
|
The code in `logitech_receiver/hidpp20' interacts with devices using the HID++ 2.0 (and greater) protocol. Many of the functions in this module send messages to devices to modify their internal state, for example setting a host name stored in the device. Many other functions send messages to devices that query their internal state and interpret the response, for example returning how often a mouse sends movement reports. The result of these latter functions are generally cached in device objects.
|
||||||
|
|
||||||
|
A few of these functions create and return a large structure or a class object.
|
||||||
|
|
||||||
|
The HID++ 2.0 protocol is built around a number of features, each with its own functionality. One of the features, that is required to be implemented by all devices supporting the protocol, provide information on which features the device provides. The `hidpp20` module provides a class (`FeaturesArray`) to store information on what features are provided by a device and how to access them. Each device that implements the HID++ 2.0 protocol has an instance of this class. The heavily used function `feature_request` creates an HID++ 2.0 message using this information to help determine what data to put into the message.
|
||||||
|
|
||||||
|
Many devices allow reprogramming some keys or buttons. One the main reasons for reprogramming a key or device is to cause it to produce an HID++ message instead of its normal HID message, this is referred to as diverting the key (to HID++). The `ReprogrammableKey` class stores information about the reprogramming of one key for one version of this capability, with methods to access and update this information. The `PersistentRemappableAction` class does the same for another version. The `KeysArray` class stores information about the reprogramming of a collection of keys, with methods to access this information. Functions in the Device class request `KeysArray` information for a device when appropriate and store it on the device.
|
||||||
|
|
||||||
|
Many pointing devices provide a facility for recognizing gestures and sending an HID message for the gesture. The `Gesture` class stores inforation for one gesture and the `Gestures` class stores information for all the gestures on a device. Functions in the Device class request `KeysArray` information and store it on devices. Functions in the Device class request `Gestures` information for a device when appropriate and store it on the device.
|
||||||
|
|
||||||
|
Many gaming devices provide an interface to controlling their LEDs by zone. The `LEDEffectSetting` class stores the current state of one zone of LEDs. This information can come directly from an LED feature but is also part of Onboard Profiles so this class provides a byte string interface. Solaar stores this information in YAML so this class provides a YAML interface. The `LEDEffectsInfo` class stores information about what LED zones are on a device and what effects they can perform and provides a method that builds an object by querying a device.
|
||||||
|
|
||||||
|
Many gaming devices can be controlled by selecting one of their Onboard Profiles. An Onboard Profile sets up the rate at which the device reports movement, a set of sensitivites of its movement detector, a set of actions to be performed by mouse buttons or G and M keys, and effects for up to two LED zones. The `Button` class stores information about a button or key action. The `OnboardProfile` class stores a single profile, using the `LEDEffectSetting` and `Button` classes. Because retrieving and changing a profile is complex, this class provides a byte string interface. Because Solaar dumps profiles from devices as YAML documents and loads them into devices from YAML documents, this class provides a YAML interface. The `OnboardProfiles` class class stores the entire profiles information for a device. It provides an interface to construct an `OnboardProfiles` object by querying a device.
|
||||||
|
Because Solaar dumps profiles from devices as YAML documents and loads them into devices from YAML documents, these classes also provide a YAML interface.
|
||||||
|
|
||||||
|
#### HID++ 1.0
|
||||||
|
|
||||||
|
The code in `logitech_receiver/hidpp10' interacts with devices using the HID++ 1.0 protocol.
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
### Low Level Information and Access
|
||||||
|
|
||||||
|
The module `descriptors` sets up information on device models for which Solaar needs information to support. Solaar can determine all this information for most modern devices so it is only needed for older devices or devices that are unusual in some way. The information may include the name of the device model, short name of the device model, the HID++ protocol used by the device model, HID++ registers supported by the device model, various identifiers for the device model, and the USB interface that the device model uses for HID++ messages. It used to include the HID++-based settings for the device model but this information is now added in `setting_templates`. The information about a device model can be retrieved in several ways.
|
||||||
|
|
||||||
|
|
||||||
|
The module `base_usb` sets up information for most of the receiver models that Solaar supports, including USB id, USB interface used for HID++ messages, what kind of receiver model it is, and some capabilities of the receiver model. Solaar can now support other receivers as long as they are not too unusual. The module lso sets up lists of device models by USB ID and Bluetooth ID and provides a function to determine whether a USB ID or Bluetooth ID is an HID++ device model
|
||||||
|
|
||||||
|
The module `base` provides functions that call discovery to enumerate all current receivers and devices and to set up a callback for when new receivers or devices are discovered. It provides functions to open and close I/O channels to receivers and devices, write HID++ messages to receivers and devices, and read HID++ messages from receivers and devices. It provides a function to turn an HID++ message into a notification.
|
||||||
|
|
||||||
|
The module provides a function to send an HID++ message to a receiver or device, constructing the message from parameters to the function, and optionally waiting for and returning a response. The function checks messages from the receiver or device, only terminating at timeout or when a message that appears to be the response is seen. Other messages are turned into notifications if appropriate and ignoreed otherwise. A separate function sends a ping message and waits for a reply to the ping.
|
||||||
|
|
||||||
|
|
||||||
|
### Notifications and Status
|
||||||
|
|
||||||
|
HID++ devices not only respond to commands but can spontaneously emit HID++ messages, such as when their movement sensitivity changes or when a diverted key is pressed. These spontaneous messages are called notifications and if software is well behaved can be distinguished from messages that are responses to commands. (The Linux HIDPP driver was not well behaved at some time and still may not be well behaved, resulting in it causing devices to send responses that cannot be distinguished from notifications.)
|
||||||
|
|
||||||
|
The `listener` module provides a class to set up a thread that listens to all the HID++ messages that come from a given device or receiver, convert the message that are notifications to a Solaar notification structure, and invoke a callback on the notification.
|
||||||
|
|
||||||
|
The 'notifications` module provides a function to take a notification from a receiver or device and initiate processing required for that notification. For receivers notifications are used to signal the progress of pairing attempts. For devices some notifications are for pairing, some signal device connection and diconnection from a receiver, some are other parts of the HID++ 1.0 protocol, and some are for the HID++ 2.0 protocol. Devices can provide a callback for special handling of notifications. This facility is used for two special kinds of Solaar settings.
|
||||||
|
|
||||||
|
The module contains code that determines the meaning of a notification based on fields in the notification and the status and HID++ 2.0 features of the device if appropriate and updates the device and its status accordingly. Updates to device status can trigger updates to the Solaar user interface. The processing of some notifications also directly runs a function to update the Solaar user interface.
|
||||||
|
|
||||||
|
After this processing HID++ 2.0 notifications are sent to the `diversion` module where they initiate Solaar rule processing.
|
||||||
|
|
||||||
|
The `status` module provides the `DeviceStatus` class to record the battery status of a device. It also provides an interface to signal changes to the connection status of the device that can invoke a callback. This callback is used to update the Solaar user interface when the status changes.
|
||||||
|
|
||||||
|
|
||||||
|
### Settings
|
||||||
|
|
||||||
|
The Solaar GUI is based around settings.
|
||||||
|
A setting contains all the information needed to store the value of some aspect of a device, read it from the device, write it to the device, and record its state in a dictionary. A setting also contains information to display and manipulate a setting, namely what kind of user interface element to use, what values are permissable, a label to use for the setting, and a tooltip to provide additional information for the setting. Settings can be either based on HID++ 1.0, using an HID++ 1.0 register that the device provides, or based on HID++ 2.0, using an HID++ 2.0 feature that the device provides. The module `settings` provides classes and methods to create and support a setting. The module `setting_templates` contains all the settings that Solaar supports as well as functions to determine what feature-based settings a device can support.
|
||||||
|
|
||||||
|
A simple boolean setting can be set up as follows:
|
||||||
|
```
|
||||||
|
class HiresSmoothInvert(_Setting):
|
||||||
|
name = 'hires-smooth-invert'
|
||||||
|
label = _('Scroll Wheel Direction')
|
||||||
|
description = _('Invert direction for vertical scroll with wheel.')
|
||||||
|
feature = _F.HIRES_WHEEL
|
||||||
|
rw_options = {'read_fnid': 0x10, 'write_fnid': 0x20}
|
||||||
|
validator_options = {'true_value': 0x04, 'mask': 0x04}
|
||||||
|
```
|
||||||
|
The setting is a boolean setting, the default for settings.
|
||||||
|
`name` is the dictionary key for recording the state of the setting.
|
||||||
|
`label` is the label to be shown for the setting in a user interface and `description` is the tooltip.
|
||||||
|
`feature` is the HID++ 2.0 feature that is used to read the current state of the setting from a device and write it back to a device.
|
||||||
|
`rw_options` contains options used when reading or writing the state of the setting, here to use feature command 0x10 to read the value and feature command 0x20 to write the value.
|
||||||
|
`validator_options` contains options to turn setting values into bytes and bytes into setting values. The options here to take a single byte (the default) and mask it with 0x04 to get a value with a result of 0x04 being true and anything else being false. They also say to use 0x04 when writing a true value and 0x00 (the default) when writing a false value. Because this is a boolean setting and the mask masks off part of a byte the value to be written is or'ed with the byte read for the setting before writing to the device.
|
||||||
|
|
||||||
|
A simple choice setting can be set up as follows:
|
||||||
|
```
|
||||||
|
class Backlight(_Setting):
|
||||||
|
name = 'backlight-qualitative'
|
||||||
|
label = _('Backlight')
|
||||||
|
description = _('Set illumination time for keyboard.')
|
||||||
|
feature = _F.BACKLIGHT
|
||||||
|
choices_universe = _NamedInts(Off=0, Varying=2, VeryShort=5, Short=10, Medium=20, Long=60, VeryLong=180)
|
||||||
|
validator_class = _ChoicesV
|
||||||
|
validator_options = {'choices': choices_universe}
|
||||||
|
```
|
||||||
|
This is a choice setting because of the value for `validator_class`.
|
||||||
|
`choices_universe` is all the possible stored values for the setting along with how they are to be displayed in a user interface.
|
||||||
|
`validator_options` provides the current permissable choices, here always are the same as all the choices.
|
||||||
|
|
||||||
|
The Solaar GUI takes these settings and constructs an interface for displaying and changing the setting.
|
||||||
|
|
||||||
|
This setup allows for very quick implementation of simple settings but it bypasses the data stored in a device object.
|
||||||
|
|
||||||
|
|
||||||
|
### Solaar Rules
|
||||||
|
|
||||||
|
The `diversion` module (so-named because it initially mostly handled diverted key notifications) implements Solaar rules.
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
|
### Utility Functions, Structures, and Classes
|
||||||
|
|
||||||
|
The module `common.py` provides utility functions, structures, and classes.
|
||||||
|
`crc16` is a function to compute checksums used in profiles.
|
||||||
|
`NamedInt`, `NamedInts`, and `UnsortedNamedInts` provide integers and sets of integers with attached names.
|
||||||
|
`FirmwareInfo` provides information about device firmware.
|
||||||
|
`BATTERY_APPROX` provides named integers used for approximate battery levels of devices.
|
||||||
|
|
||||||
|
`i18n.py` provides a few strings that need translations and might not otherwise be visible to translation software.
|
||||||
|
|
||||||
|
`special_keys.py` provides named integers for various collections of key codes and colors.
|
||||||
|
|
||||||
|
|
||||||
|
## Discovery of HID++ Receivers and Devices and I/O
|
||||||
|
|
||||||
|
The code in `hidapi` is responsible for discovery of receivers and devices that use the HID++ protocol. The module used in Linux is `hidapi/udev` which is a modification of some old Python code that provides an interface to the Linux `udev` system.
|
||||||
|
|
||||||
|
The code originally was only for receivers that used USB and devices paired with them. It identifies HID++ receivers by their USB ids, based on a list of Logitech HID++ receivers with their USB ids. It then added all devices that were paired with them and that were in a list of HID++ devices with their WPID. A WPID is used to identify the device type for devices paired with HID++ receivers. This code now also adds all devices paired with HID++ receivers whether they are in this list or not.
|
||||||
|
|
||||||
|
The code now also identifies HID ++ devices that are directly connected via either USB or Bluetooth. These devices are recognized by several means: the internal list of HID++ devices for elements of the list that have either a USB IS or a Bluetooth ID, any device with a USB ID or Bluetooth ID that falls in one of several ranges of IDs that are known to support HID++, or any device that has an HID protocol descriptor that claims support for HID++. This last method requires an external Pyshon module to decipher HID protocol descriptors that is not always present.
|
||||||
|
|
||||||
|
Device and receiver discovery is performed when Solaar starts. While the Solaar GUI is running the `udev` code also listens for connections of new hardware using facilities from `GLib`.
|
||||||
|
|
||||||
|
This code is also responsible for actual writing data to devices and receivers and reading data from them.
|
||||||
|
|
||||||
|
|
||||||
|
## Solaar
|
||||||
|
|
||||||
|
### Startup and Commonalities
|
||||||
|
|
||||||
|
__init__.py
|
||||||
|
configuration.py
|
||||||
|
gtk.py*
|
||||||
|
i18n.py
|
||||||
|
listener.py
|
||||||
|
tasks.py
|
||||||
|
upower.py
|
||||||
|
|
||||||
|
The files `version` and `commit` contain data about the current version and git commit of Solaar.
|
||||||
|
|
||||||
|
### Solaar Command Line Interface
|
||||||
|
|
||||||
|
solaar/cli
|
||||||
|
|
||||||
|
### Solaar (Graphical) User Interface
|
||||||
|
|
||||||
|
solaar/ui
|
133
docs/index.md
|
@ -17,7 +17,7 @@ Solaar runs as a regular user process, albeit with direct access to the Linux in
|
||||||
that lets it directly communicate with the Logitech devices it manages using special
|
that lets it directly communicate with the Logitech devices it manages using special
|
||||||
Logitech-proprietary (HID++) commands.
|
Logitech-proprietary (HID++) commands.
|
||||||
Each Logitech device implements a different subset of these commands.
|
Each Logitech device implements a different subset of these commands.
|
||||||
Solaar is thus only able to make the changes to devices that devices implement.
|
Solaar is thus only able to make the changes that a particular device supports.
|
||||||
|
|
||||||
Solaar is not a device driver and does not process normal input from devices.
|
Solaar is not a device driver and does not process normal input from devices.
|
||||||
It is thus unable to fix problems that arise from incorrect handling of
|
It is thus unable to fix problems that arise from incorrect handling of
|
||||||
|
@ -27,7 +27,7 @@ Solaar can be used as a GUI application, the usual case, or via its command-line
|
||||||
The Solaar GUI is meant to run continuously in the background,
|
The Solaar GUI is meant to run continuously in the background,
|
||||||
monitoring devices, making changes to them, and responding to some messages they emit.
|
monitoring devices, making changes to them, and responding to some messages they emit.
|
||||||
To this end, it is useful to have Solaar start at user login so that
|
To this end, it is useful to have Solaar start at user login so that
|
||||||
changes made to devices by Solaar are applied at login and through out the user's session.
|
changes made to devices by Solaar are applied at login and throughout the user's session.
|
||||||
|
|
||||||
Both Solaar interfaces are able to list the connected devices and
|
Both Solaar interfaces are able to list the connected devices and
|
||||||
show information about each device, often including battery status.
|
show information about each device, often including battery status.
|
||||||
|
@ -46,8 +46,8 @@ and for more information on its capabilities see
|
||||||
|
|
||||||
Solaar's GUI normally uses an icon in the system tray and starts with its main window visible.
|
Solaar's GUI normally uses an icon in the system tray and starts with its main window visible.
|
||||||
This aspect of Solaar depends on having an active system tray, which is not the default
|
This aspect of Solaar depends on having an active system tray, which is not the default
|
||||||
situation for recent versions of Gnome. For information on to set up a system tray under Gnome see
|
situation for recent versions of Gnome. For information on how to set up a system tray under
|
||||||
[the capabilities page](https://pwr-solaar.github.io/Solaar/capabilities).
|
Gnome see [the capabilities page](https://pwr-solaar.github.io/Solaar/capabilities).
|
||||||
|
|
||||||
Solaar's GUI can be started in several ways
|
Solaar's GUI can be started in several ways
|
||||||
|
|
||||||
|
@ -75,7 +75,7 @@ Please report such experiences by creating an issue in
|
||||||
|
|
||||||
Solaar will detect all devices paired with supported Unifying, Bolt, Lightspeed, or Nano
|
Solaar will detect all devices paired with supported Unifying, Bolt, Lightspeed, or Nano
|
||||||
receivers, and at the very least display some basic information about them.
|
receivers, and at the very least display some basic information about them.
|
||||||
Solaar will detect some Logitech devices that connect via a USB cable or Bluetooth.
|
Solaar will detect many Logitech devices that connect via a USB cable or Bluetooth.
|
||||||
|
|
||||||
Solaar can pair and unpair a Logitech device showing the Unifying logo
|
Solaar can pair and unpair a Logitech device showing the Unifying logo
|
||||||
(Solaar's version of the [logo][logo])
|
(Solaar's version of the [logo][logo])
|
||||||
|
@ -84,7 +84,7 @@ and pair and unpair a Logitech device showing the Bolt logo
|
||||||
with any Bolt receiver,
|
with any Bolt receiver,
|
||||||
and
|
and
|
||||||
can pair and unpair Lightspeed devices with Lightspeed receivers for the same model.
|
can pair and unpair Lightspeed devices with Lightspeed receivers for the same model.
|
||||||
Solaar can pair some Logitech devices with Logitech Nano receivers but not all Logitech
|
Solaar can pair some Logitech devices with Logitech Nano receivers, but not all Logitech
|
||||||
devices can be paired with Nano receivers.
|
devices can be paired with Nano receivers.
|
||||||
Logitech devices without a Unifying or Bolt logo
|
Logitech devices without a Unifying or Bolt logo
|
||||||
generally cannot be paired with Unifying or Bolt receivers.
|
generally cannot be paired with Unifying or Bolt receivers.
|
||||||
|
@ -95,33 +95,36 @@ which is done using the usual Bluetooth mechanisms.
|
||||||
For a partial list of supported devices
|
For a partial list of supported devices
|
||||||
and their features, see [the devices page](https://pwr-solaar.github.io/Solaar/devices).
|
and their features, see [the devices page](https://pwr-solaar.github.io/Solaar/devices).
|
||||||
|
|
||||||
[logo]: https://pwr-solaar.github.io/Solaar/assets/solaar.svg
|
[logo]: https://pwr-solaar.github.io/Solaar/img/solaar.svg
|
||||||
|
|
||||||
## Prebuilt packages
|
## Prebuilt packages
|
||||||
|
|
||||||
Up-to-date prebuilt packages are available for some Linux distros
|
Up-to-date prebuilt packages are available for some Linux distros
|
||||||
(e.g., Fedora 33+) in their standard repositories.
|
(e.g., Fedora 33+) in their standard repositories.
|
||||||
If a recent version of Solaar is not
|
If a recent version of Solaar is not
|
||||||
available from the standard repositories for your distribution you can try
|
available from the standard repositories for your distribution, you can try
|
||||||
one of these packages.
|
one of these packages.
|
||||||
|
|
||||||
- Arch solaar package in the [community repository][arch]
|
- Arch solaar package in the [extra repository][arch]
|
||||||
- Ubuntu/Kubuntu 16.04+: use the solaar package from [universe repository][universe repository]
|
- Ubuntu/Kubuntu package in [Solaar stable ppa][ppa2]
|
||||||
- Ubuntu/Kubuntu stable packages: use the [Solaar stable ppa][ppa2], courtesy of [gogo][ppa4]
|
- NixOS Flake package in [Svenum/Solaar-Flake][nix flake]
|
||||||
- Ubuntu/Kubuntu git build packages: use the [Solaar git ppa][ppa1], courtesy of [gogo][ppa4]
|
|
||||||
|
Solaar is available from some other repositories
|
||||||
|
but they may be several versions behind the current version.
|
||||||
|
|
||||||
|
- for Ubuntu/Kubuntu 16.04+: the solaar package from [universe repository][universe repository]
|
||||||
- a [Gentoo package][gentoo], courtesy of Carlos Silva and Tim Harder
|
- a [Gentoo package][gentoo], courtesy of Carlos Silva and Tim Harder
|
||||||
- a [Mageia package][mageia], courtesy of David Geiger
|
- a [Mageia package][mageia], courtesy of David Geiger
|
||||||
|
|
||||||
Solaar uses a standard system tray implementation; solaar-gnome3 is no longer required for gnome or unity integration.
|
Solaar uses a standard system tray implementation; solaar-gnome3 is no longer required for Gnome or Unity integration.
|
||||||
|
|
||||||
[ppa4]: https://launchpad.net/~trebelnik-stefina
|
[ppa4]: https://launchpad.net/~trebelnik-stefina
|
||||||
[ppa2]: https://launchpad.net/~solaar-unifying/+archive/ubuntu/stable
|
[ppa2]: https://launchpad.net/~solaar-unifying/+archive/ubuntu/stable
|
||||||
[ppa1]: https://launchpad.net/~solaar-unifying/+archive/ubuntu/ppa
|
[arch]: https://www.archlinux.org/packages/extra/any/solaar/
|
||||||
[ppa]: http://launchpad.net/~daniel.pavel/+archive/solaar
|
|
||||||
[arch]: https://www.archlinux.org/packages/community/any/solaar/
|
|
||||||
[gentoo]: https://packages.gentoo.org/packages/app-misc/solaar
|
[gentoo]: https://packages.gentoo.org/packages/app-misc/solaar
|
||||||
[mageia]: http://mageia.madb.org/package/show/release/cauldron/application/0/name/solaar
|
[mageia]: http://mageia.madb.org/package/show/release/cauldron/application/0/name/solaar
|
||||||
[universe repository]: http://packages.ubuntu.com/search?keywords=solaar&searchon=names&suite=all§ion=all
|
[universe repository]: http://packages.ubuntu.com/search?keywords=solaar&searchon=names&suite=all§ion=all
|
||||||
|
[nix flake]: https://github.com/Svenum/Solaar-Flake
|
||||||
|
|
||||||
## Manual installation
|
## Manual installation
|
||||||
|
|
||||||
|
@ -130,13 +133,38 @@ for the step-by-step procedure for manual installation.
|
||||||
|
|
||||||
## Known Issues
|
## Known Issues
|
||||||
|
|
||||||
- If some icons appear broken in the application, make sure you've properly
|
- Onboard Profiles, when active, can prevent changes to other settings, such as Polling Rate, DPI, and various LED settings. Which settings are affected depends on the device. To make changes to affected settings, disable Onboard Profiles. If Onboard Profiles are later enabled the affected settings may change to the value in the profile.
|
||||||
configured the Gtk theme and icon theme in your control panel.
|
|
||||||
|
|
||||||
- Solaar normally uses icon names for its icons, which in some system tray implementatations
|
- Solaar version 1.1.12 has a bug resulting in devices remaining in their default configuration after a system resume. This is fixed in 1.1.13.
|
||||||
|
|
||||||
|
- Bluez 5.73 does not remove Bluetooth devices when they disconnect.
|
||||||
|
Solaar 1.1.12 processes the DBus disconnection and connection messages from Bluez and does re-initialize devices when they reconnect.
|
||||||
|
The HID++ driver does not re-initialize devices, which causes problems with smooth scrolling.
|
||||||
|
Until the problem is resolved having Scroll Wheel Resolution set to true (and not ignored) may be helpful.
|
||||||
|
|
||||||
|
- The Linux HID++ driver modifies the Scroll Wheel Resolution setting to
|
||||||
|
implement smooth scrolling. If Solaar changes this setting, scrolling
|
||||||
|
can be either very fast or very slow. To fix this problem
|
||||||
|
click on the icon at the right edge of the setting to set it to
|
||||||
|
"Ignore this setting", which is the default for new devices.
|
||||||
|
The mouse has to be reset (e.g., by turning it off and on again) before this fix will take effect.
|
||||||
|
|
||||||
|
- Solaar expects that it has exclusive control over settings that are not ignored.
|
||||||
|
Running other programs that modify these settings, such as logiops,
|
||||||
|
will likely result in unexpected device behavior.
|
||||||
|
|
||||||
|
- The driver also sets the scrolling direction to its normal setting when implementing smooth scrolling.
|
||||||
|
This can interfere with the Scroll Wheel Direction setting, requiring flipping this setting back and forth
|
||||||
|
to restore reversed scrolling.
|
||||||
|
|
||||||
|
- The driver sends messages to devices that do not conform with the Logitech HID++ specification
|
||||||
|
resulting in responses being sent back that look like other messages. For some devices this causes
|
||||||
|
Solaar to report incorrect battery levels.
|
||||||
|
|
||||||
|
- Solaar normally uses icon names for its icons, which in some system tray implementations
|
||||||
results in missing or wrong-sized icons.
|
results in missing or wrong-sized icons.
|
||||||
The `--tray-icon-size` option forces Solaar to use icon files of appropriate size
|
The `--tray-icon-size` option forces Solaar to use icon files of appropriate size
|
||||||
for tray icons instead, which produces better results in some system tray implementatations.
|
for tray icons instead, which produces better results in some system tray implementations.
|
||||||
To use icon files close to 32 pixels in size use `--tray-icon-size=32`.
|
To use icon files close to 32 pixels in size use `--tray-icon-size=32`.
|
||||||
|
|
||||||
- The icon in the system tray can show up as 'black on black' in dark
|
- The icon in the system tray can show up as 'black on black' in dark
|
||||||
|
@ -144,37 +172,14 @@ for the step-by-step procedure for manual installation.
|
||||||
in some system tray implementations. Changing to a different theme may help.
|
in some system tray implementations. Changing to a different theme may help.
|
||||||
The `--battery-icons=symbolic` option can be used to force symbolic icons.
|
The `--battery-icons=symbolic` option can be used to force symbolic icons.
|
||||||
|
|
||||||
- The Linux HID++ driver modifies the setting Scroll Wheel Resolution to
|
|
||||||
implement smooth scrolling. If Solaar later changes this setting scrolling
|
|
||||||
can be either very fast or very slow. To fix this problem
|
|
||||||
click on the icon at the right edge of the setting to set it to
|
|
||||||
"Ignore this setting".
|
|
||||||
The mouse has to be reset (e.g., by turning it off and on again) before this fix will take effect.
|
|
||||||
|
|
||||||
- The driver also sets the scrolling direction to its normal setting when implementing smooth scrolling.
|
|
||||||
This can interfere with the Scroll Wheel Direction setting, requiring flipping this setting back and forth
|
|
||||||
to restore reversed scrolling.
|
|
||||||
|
|
||||||
- The driver sends messages to devices that do not conform with the Logitech HID++ specification
|
|
||||||
resulting in reponses being sent back that look like other messages. For some devices this causes
|
|
||||||
Solaar to report incorrect battery levels.
|
|
||||||
|
|
||||||
- Many gaming mice and keyboards have the ONBOARD PROFILES feature.
|
|
||||||
This feature can override other features, including polling rate and key lighting.
|
|
||||||
To make the Polling Rate and M-Key LEDs settings effective the Onboard Profiles setting has to be disabled.
|
|
||||||
This may have other effects, such as turning off backlighting.
|
|
||||||
|
|
||||||
- Solaar will try to use uinput to simulate input from rules under Wayland or if Xtest is not available
|
- Solaar will try to use uinput to simulate input from rules under Wayland or if Xtest is not available
|
||||||
but this needs write permission on /dev/uinput.
|
but this needs write permission on /dev/uinput.
|
||||||
For more information see [the rules page](https://pwr-solaar.github.io/Solaar/rules).
|
For more information see [the rules page](https://pwr-solaar.github.io/Solaar/rules).
|
||||||
|
|
||||||
- Sometimes bluetooth connections are not torn down correctly by Linux.
|
- Diverted keys remain diverted and so do not have their normal behavior when Solaar terminates
|
||||||
This can result in two entries in Solaar for the same device, with only one being active.
|
or a device disconnects from a host that is running Solaar. If necessary, their normal behavior
|
||||||
|
|
||||||
- Diverted keys remain diverted and so do not have their normal behaviour when Solaar terminates
|
|
||||||
or a device disconnects from a host that is running Solaar. If necessary, their normal behaviour
|
|
||||||
can be reestablished by turning the device off and on again. This is most important to restore
|
can be reestablished by turning the device off and on again. This is most important to restore
|
||||||
the host switching behaviour of a host switch key that was diverted, for example to switch away
|
the host switching behavior of a host switch key that was diverted, for example to switch away
|
||||||
from a host that crashed or was turned off.
|
from a host that crashed or was turned off.
|
||||||
|
|
||||||
- When a receiver-connected device changes hosts Solaar remembers which diverted keys were down on it.
|
- When a receiver-connected device changes hosts Solaar remembers which diverted keys were down on it.
|
||||||
|
@ -182,9 +187,14 @@ for the step-by-step procedure for manual installation.
|
||||||
realize that the key was newly depressed. For this reason Solaar rules that can change hosts should
|
realize that the key was newly depressed. For this reason Solaar rules that can change hosts should
|
||||||
trigger on key releasing.
|
trigger on key releasing.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
This software is distributed under the terms of the
|
||||||
|
[GNU Public License, v2](LICENSE.txt), or later.
|
||||||
|
|
||||||
## Contributing to Solaar
|
## Contributing to Solaar
|
||||||
|
|
||||||
Conributions to Solaaar are very welcome.
|
Contributions to Solaar are very welcome.
|
||||||
|
|
||||||
Solaar has complete or partial translations of its GUI strings in several languages.
|
Solaar has complete or partial translations of its GUI strings in several languages.
|
||||||
If you want to update a translation or add a new one see [the translation page](https://pwr-solaar.github.io/Solaar/i18n) for more information.
|
If you want to update a translation or add a new one see [the translation page](https://pwr-solaar.github.io/Solaar/i18n) for more information.
|
||||||
|
@ -194,28 +204,21 @@ If you find a bug, please check first if it has already been reported. If yes, p
|
||||||
If you want to add a new feature to Solaar, feel free to open a feature request issue to discuss your proposal.
|
If you want to add a new feature to Solaar, feel free to open a feature request issue to discuss your proposal.
|
||||||
There are also usually several open issues for enhancements that have already been requested.
|
There are also usually several open issues for enhancements that have already been requested.
|
||||||
|
|
||||||
|
## Contributors
|
||||||
## License
|
|
||||||
|
|
||||||
This software is distributed under the terms of the
|
|
||||||
[GNU Public License, v2](COPYING).
|
|
||||||
|
|
||||||
## Thanks
|
|
||||||
|
|
||||||
This project began as a third-hand clone of [Noah K. Tilton](https://github.com/noah)'s
|
This project began as a third-hand clone of [Noah K. Tilton](https://github.com/noah)'s
|
||||||
logitech-solar-k750 project on GitHub (no longer available). It was developed
|
logitech-solar-k750 project on GitHub (no longer available). It was developed
|
||||||
further thanks to the diggings in Logitech's HID++ protocol done by many other
|
further thanks to the contributions of many other people, including:
|
||||||
people:
|
|
||||||
|
|
||||||
- [Julien Danjou](http://julien.danjou.info/blog/2012/logitech-k750-linux-support),
|
- [Daniel Pavel](https://github.com/pwr)
|
||||||
who also provided some internal
|
- [Filipe Lains](https://github.com/FFY00)
|
||||||
[Logitech documentation](http://julien.danjou.info/blog/2012/logitech-unifying-upower)
|
- [Peter Wu](https://github.com/Lekensteyn), who also did some [reverse engineering on pairing](https://lekensteyn.nl/logitech-unifying.html)
|
||||||
|
- Julien Danjou
|
||||||
- [Lars-Dominik Braun](http://6xq.net/git/lars/lshidpp.git)
|
- [Lars-Dominik Braun](http://6xq.net/git/lars/lshidpp.git)
|
||||||
- [Alexander Hofbauer](http://derhofbauer.at/blog/blog/2012/08/28/logitech-performance-mx)
|
- [Alexander Hofbauer](http://derhofbauer.at/blog/blog/2012/08/28/logitech-performance-mx)
|
||||||
- [Clach04](http://bitbucket.org/clach04/logitech-unifying-receiver-tools)
|
- [Clach04](https://github.com/clach04)
|
||||||
- [Peter Wu](https://lekensteyn.nl/logitech-unifying.html)
|
- [Peter F. Patel-Schneider](https://github.com/pfps)
|
||||||
- [Nestor Lopez Casado](http://drive.google.com/folderview?id=0BxbRzx7vEV7eWmgwazJ3NUFfQ28)
|
|
||||||
provided some more Logitech specifications for the HID++ protocol
|
|
||||||
|
|
||||||
Also, thanks to Douglas Wagner, Julien Gascard, and Peter Wu for helping with
|
Thanks go to Nestor Lopez Casado, who
|
||||||
application testing and supporting new devices.
|
provided [public Logitech specifications for the HID++ protocol](http://drive.google.com/folderview?id=0BxbRzx7vEV7eWmgwazJ3NUFfQ28).
|
||||||
|
Also, thanks to Douglas Wagner, Julien Gascard, and others for helping with application testing and supporting new devices.
|
||||||
|
|
|
@ -3,45 +3,81 @@ title: Manual Installation
|
||||||
layout: page
|
layout: page
|
||||||
---
|
---
|
||||||
|
|
||||||
# Manual installation
|
# Installing from PyPI
|
||||||
|
|
||||||
|
An easy way to install the most recent release version of Solaar is from the PyPI repository.
|
||||||
|
First install pip, and then run
|
||||||
|
`pip install --user solaar` or `pipx install --system-site-packages solaar` or
|
||||||
|
If you are using pipx add the `` flag.
|
||||||
|
|
||||||
|
This will not install the Solaar udev rule, which you will need to install manually by copying
|
||||||
|
`~/.local/lib/udev/rules.d/42-logitech-unify-permissions.rules`
|
||||||
|
to `/etc/udev/rules.d` as root.
|
||||||
|
If you want Solaar rules to simulate input you will have to instead install Solaar's uinput udev rule
|
||||||
|
from the GitHub repository.
|
||||||
|
|
||||||
|
## Installing in macOS
|
||||||
|
|
||||||
|
Solaar has limited support for macOS. You can use it to pair devices and configure settings
|
||||||
|
but the rule system and diversion will not work.
|
||||||
|
|
||||||
|
After installing Solaar via pip use homebrew to install the needed libraries:
|
||||||
|
```
|
||||||
|
brew update
|
||||||
|
brew install hidapi gtk+3 pygobject3
|
||||||
|
```
|
||||||
|
|
||||||
|
# Installating from GitHub
|
||||||
|
|
||||||
## Downloading
|
## Downloading
|
||||||
|
|
||||||
Clone Solaar from GitHub by `git clone --recurse-submodules https://github.com/pwr-Solaar/Solaar.git`.
|
Clone Solaar from GitHub by `git clone https://github.com/pwr-Solaar/Solaar.git`.
|
||||||
Make sure that the submodule python-hid-parser was cloned, i.e., the directory `python-hid-parser` has content.
|
|
||||||
|
## Installing using the Makefile
|
||||||
|
|
||||||
|
Solaar has a makefile that can be used to easily install Solaar after cloning the repository.
|
||||||
|
|
||||||
|
First, install the needed system packages by `make install_apt`
|
||||||
|
or `make install_dnf` or `make install_brew`.
|
||||||
|
These might not install all needed packages in older versions of your distribution.
|
||||||
|
Next, install the Solaar rule via `make install_udev`.
|
||||||
|
If you are using Wayland instead of X11 you may want to instead `make install_udev_uinput`
|
||||||
|
so that Solaar rules can simulate input in Wayland.
|
||||||
|
Finally, install Solaar via `make install_pip` or `make install_pipx`.
|
||||||
|
|
||||||
|
Parts of the installation process require sudo privileges so you may be asked for your password.
|
||||||
|
|
||||||
|
## Running from the download directory
|
||||||
|
|
||||||
|
To run Solaar from the download directory, just cd to there and run `bin/solaar` for the GUI
|
||||||
|
or `bin/solaar <command> <arguments>` for the CLI.
|
||||||
|
|
||||||
## Requirements for Solaar
|
## Requirements for Solaar
|
||||||
|
|
||||||
Installing Solaar from a repository should have set up all these requirements
|
This is only relevant if you have problems with the easier methods above.
|
||||||
so in this situation you should be able to skip this section.
|
|
||||||
|
|
||||||
Solaar needs a reasonably new kernel with kernel modules `hid-logitech-dj`
|
Solaar needs a reasonably new kernel with kernel modules `hid-logitech-dj` and `hid-logitech-hidpp` loaded.
|
||||||
and `hid-logitech-hidpp` loaded.
|
The kernel option CONFIG_HIDRAW also needs to be enabled.
|
||||||
Most of Solaar should work fine with any kernel more recent than 5.2,
|
Most of Solaar should work fine with any kernel more recent than 5.2,
|
||||||
but newer kernels might be needed for some devices to be correctly recognized and handled.
|
but newer kernels might be needed for some devices to be correctly recognized and handled.
|
||||||
The `udev` package must be installed and its daemon running.
|
The `udev` package must be installed and its daemon running.
|
||||||
|
|
||||||
Solaar requires Python 3.7+ and requires several packages to be installed.
|
Solaar requires Python 3.7+ and requires several packages to be installed.
|
||||||
If you are running the system version of Python you should have the
|
If you are running the system version of Python you should have the
|
||||||
`python3-pyudev`, `python3-psutil`, `python3-xlib`, `python3-evdev`,
|
`python3-pyudev`, `python3-psutil`, `python3-xlib`, `python3-evdev`, `python3-typing-extensions`, `dbus-python`
|
||||||
and `python3-yaml` or `python3-pyyaml` packages installed.
|
or `python3-dbus`, and `python3-yaml` or `python3-pyyaml` packages installed.
|
||||||
|
|
||||||
To run the GUI Solaar also requires Gtk3 and its GObject introspection bindings.
|
To run the GUI Solaar also requires Gtk3 and its GObject introspection bindings.
|
||||||
If you are running the system version of Python
|
If you are running the system version of Python in Debian/Ubuntu you should have the
|
||||||
the Debian/Ubuntu packages you should have
|
`python3-gi` and `gir1.2-gtk-3.0` packages installed.
|
||||||
`python3-gi` and `gir1.2-gtk-3.0` installed.
|
In Fedora you need `gtk3` and `python3-gobject`.
|
||||||
in Fedora you need `gtk3` and `python3-gobject`.
|
|
||||||
You may have to install `gcc` and the Python development package (`python3-dev` or `python3-devel`,
|
You may have to install `gcc` and the Python development package (`python3-dev` or `python3-devel`,
|
||||||
depending on your distribution).
|
depending on your distribution).
|
||||||
|
Other system packages may be required depending on your distribution, such as `python-gobject-common-devel` and `python-typing-extensions'.
|
||||||
If you are running a version of Python different from the system version,
|
Although the Solaar CLI does not require Gtk3,
|
||||||
you may need to use pip to install projects that provide the above Python packages.
|
`solaar config` does use Gtk3 capabilities to determine whether the Solaar GUI is running
|
||||||
|
and thus should tell the Solaar GUI to update its information about settings
|
||||||
Solaar runs best under X11 with the Xtest extension enabled so that Solaar rules can fake keyboard input using Xtest.
|
so it is a good idea to have Gtk3 available even for the Solaar CLI.
|
||||||
Solaar also uses the X11 library to access the XKB extension,
|
|
||||||
which requires installation of the X11 development package.
|
|
||||||
(In Fedora this is `libX11-devel`. In other distributions it may be `libX11-dev`.)
|
|
||||||
Solaar will run under Wayland but some parts of Solaar rules will not work.
|
|
||||||
For more information see [the rules page](https://pwr-solaar.github.io/Solaar/rules).
|
|
||||||
|
|
||||||
Solaar needs a library to interact with the system tray.
|
Solaar needs a library to interact with the system tray.
|
||||||
The library that provides this interaction depends on the distribution and window system.
|
The library that provides this interaction depends on the distribution and window system.
|
||||||
|
@ -54,72 +90,48 @@ depending on distribution.
|
||||||
|
|
||||||
If desktop notifications bindings are also installed
|
If desktop notifications bindings are also installed
|
||||||
(`gir1.2-notify-0.7` for Debian/Ubuntu),
|
(`gir1.2-notify-0.7` for Debian/Ubuntu),
|
||||||
you will also see desktop notifications when devices come online/go offline.
|
you will also see desktop notifications when devices come online and go offline.
|
||||||
|
|
||||||
### Installing Solaar's udev rule
|
Solaar includes its own version of `hid_parser` because the version that is in PyPi
|
||||||
|
(at https://pypi.org/project/hid-parser/) does not have some changes that are in
|
||||||
|
https://github.com/usb-tools/python-hid-parser and are needed for some devices.
|
||||||
|
Do not use pip to install hid_parser!
|
||||||
|
Some distributions (e.g., Fedora) may separately package this code.
|
||||||
|
|
||||||
Solaar needs to write to HID devices for receivers and devices.
|
If the `gitinfo` Python package is available, Solaar shows better information
|
||||||
To be able to do this without running as root requires a udev rule
|
about which version of Solaar is running.
|
||||||
that gives seated users write access to the HID devices for Logitech receiver and devices.
|
This package may not be available in some distributions but can be installed using pip
|
||||||
|
via `pip install --user python-git-info`.
|
||||||
|
|
||||||
You can install this rule by copying, as root,
|
If you are running a version of Python different from the system version,
|
||||||
`rules.d/42-logitech-unify-permissions.rules` from Solaar to
|
you may need to use pip to install projects that provide the above Python packages.
|
||||||
`/etc/udev/rules.d`.
|
|
||||||
You will probably also have to tell udev to reload its rule via
|
|
||||||
`sudo udevadm control --reload-rules`.
|
|
||||||
|
|
||||||
For this rule to set up the correct permissions for your receivers and devices
|
Solaar runs best under X11 with the Xtest extension enabled so that Solaar rules can fake keyboard input using Xtest.
|
||||||
you will then need to either disconnect your receivers and
|
Solaar also uses the X11 library to access the XKB extension,
|
||||||
any USB-connected or Bluetooth-connected devices and
|
which requires installation of the X11 development package.
|
||||||
re-connect them or reboot your computer.
|
(In Fedora this is `libX11-devel`. In other distributions it may be `libX11-dev`.)
|
||||||
|
Solaar will run under Wayland but some parts of Solaar rules will not work.
|
||||||
|
For more information see [the rules page](https://pwr-solaar.github.io/Solaar/rules).
|
||||||
|
|
||||||
## Running from the Download Directories
|
## Installing Solaar's udev rule manually
|
||||||
|
|
||||||
To run Solaar from the download directories, first install the Solaar udev rule if necessary.
|
You can install Solaar's udev rule manually by copying the file
|
||||||
Then cd to the solaar directory and run `bin/solaar` for the GUI
|
`rules.d/42-logitech-unify-permissions.rules`
|
||||||
or `bin/solaar <command> <arguments>` for the CLI.
|
as root from the Solaar repository to `/etc/udev/rules.d`.
|
||||||
|
In Wayland you may want to instead copy
|
||||||
|
`rules.d-uinput/42-logitech-unify-permissions.rules`.
|
||||||
|
Let udev reload its rules by running `sudo udevadm control --reload-rules`.
|
||||||
|
|
||||||
Do not run Solaar as root, you may encounter problems with X11 integration and with the system tray.
|
# Solaar in other languages
|
||||||
|
|
||||||
## Installing Solaar Using Pip
|
|
||||||
|
|
||||||
Python programs are usually installed using [pip][pip].
|
|
||||||
The pip instructions for Solaar are in `setup.py`, the standard place to put such instructions.
|
|
||||||
|
|
||||||
To install Solaar for yourself only run `pip install --user .` from the solaar directory.
|
|
||||||
This tells pip to install into your `.local` directory, but does not install Solaar's udev rule.
|
|
||||||
(See above for installing the udev rule.)
|
|
||||||
Once the udev rule has been installed you can then run Solaar as `~/.local/bin/solaar`.
|
|
||||||
|
|
||||||
Installing python programs to system directories using pip is generally frowned on both
|
|
||||||
because this runs arbitrary code as root and because this can override existing python libraries
|
|
||||||
that other users or even the system depend on. If you want to install solaar to /usr/local run
|
|
||||||
`sudo bash -c 'umask 022 ; pip install .'` in the solaar directory.
|
|
||||||
(The umask is needed so that the created files and directories can be read and executed by everyone.)
|
|
||||||
Then solaar can be run as /usr/local/bin/solaar.
|
|
||||||
You will also have to install the udev rule.
|
|
||||||
|
|
||||||
[pip]: https://en.wikipedia.org/wiki/Pip_(package_manager)
|
|
||||||
|
|
||||||
## Solaar in other languages
|
|
||||||
|
|
||||||
If you want to have Solaar's user messages in some other language you need to run
|
If you want to have Solaar's user messages in some other language you need to run
|
||||||
`tools/po-compile.sh` to create the translation files before running or installing Solaar
|
`tools/po-compile.sh` to create the translation files before running or installing Solaar
|
||||||
and set the LANGUAGE environment variable appropriately when running Solaar.
|
and set the LANGUAGE environment variable appropriately when running Solaar.
|
||||||
|
|
||||||
## Running Solaar at Startup
|
# Running Solaar at Startup
|
||||||
|
|
||||||
Distributions can cause Solaar can be run automatically at user login by installing a desktop file at
|
Distributions can cause Solaar can be run automatically at user login by installing a desktop file at
|
||||||
`/etc/xdg/autostart/solaar.desktop`. An example of this file content can be seen in the repository at
|
`/etc/xdg/autostart/solaar.desktop`. An example of this file content can be seen in the repository at
|
||||||
[share/autostart/solaar.desktop](https://github.com/pwr-Solaar/Solaar/blob/master/share/autostart/solaar.desktop).
|
[`share/autostart/solaar.desktop`](https://github.com/pwr-Solaar/Solaar/blob/master/share/autostart/solaar.desktop).
|
||||||
|
|
||||||
If you install Solaar yourself you may need to create or modify this file or install a startup file under your home directory.
|
If you install Solaar yourself you may need to create or modify this file or install a startup file under your home directory.
|
||||||
|
|
||||||
## Installing from PyPI
|
|
||||||
|
|
||||||
As an alternative to downloading and installing you can install the most recent release
|
|
||||||
(but not the current github version) of Solaar from PyPI.
|
|
||||||
Just run `pip install --user solaar`.
|
|
||||||
This will not install the Solaar udev rule, which you will need to copy from
|
|
||||||
`~/.local/share/solaar/udev-rules.d/42-logitech-unify-permissions.rules`
|
|
||||||
to `/etc/udev/rules.d` as root.
|
|
||||||
|
|
198
docs/rules.md
|
@ -3,15 +3,16 @@ title: Rule Processing of HID++ Notifications
|
||||||
layout: page
|
layout: page
|
||||||
---
|
---
|
||||||
|
|
||||||
|
# Rule Processing of HID++ Notifications
|
||||||
Creating and editing most rules can be done in the Solaar GUI, by pressing the 'Rule Editor' button in the
|
Creating and editing most rules can be done in the Solaar GUI, by pressing the 'Rule Editor' button in the
|
||||||
Solaar main window.
|
Solaar main window.
|
||||||
|
|
||||||
Rule processing is an experimental feature. Significant changes might be made in response to problems.
|
Note that rule processing only fully works under X11.
|
||||||
|
|
||||||
*Note that rule processing only fully works under X11.
|
|
||||||
When running under Wayland with X11 libraries loaded some features will not be available.
|
When running under Wayland with X11 libraries loaded some features will not be available.
|
||||||
When running under Wayland without X11 libraries loaded even more features will not be available.
|
When running under Wayland without X11 libraries loaded even more features will not be available.
|
||||||
Rule features known not to work under Wayland include process and mouse process conditions.
|
Rule features known not to work under Wayland include process and mouse process conditions,
|
||||||
|
although on GNOME desktop under Wayland, you can use those with the Solaar Gnome extension installed,
|
||||||
|
You can install it from `https://extensions.gnome.org/extension/6162/solaar-extension`.
|
||||||
Under Wayland using keyboard groups may result in incorrect symbols being input for simulated input.
|
Under Wayland using keyboard groups may result in incorrect symbols being input for simulated input.
|
||||||
Under Wayland simulating inputs when modifier keys are pressed may result in incorrect symbols being sent.
|
Under Wayland simulating inputs when modifier keys are pressed may result in incorrect symbols being sent.
|
||||||
Simulated input uses Xtest if available under X11 or uinput if the user has write access to /dev/uinput.
|
Simulated input uses Xtest if available under X11 or uinput if the user has write access to /dev/uinput.
|
||||||
|
@ -20,10 +21,11 @@ The easiest way to maintain write access to /dev/uinput is to use Solaar's alter
|
||||||
and copying it as root into the `/etc/udev/rules.d` directory.
|
and copying it as root into the `/etc/udev/rules.d` directory.
|
||||||
You may have to reboot your system for the write permission to be set up.
|
You may have to reboot your system for the write permission to be set up.
|
||||||
Another way to get write access to /dev/uinput is to run `sudo setfacl -m u:${USER}:rw /dev/uinput`
|
Another way to get write access to /dev/uinput is to run `sudo setfacl -m u:${USER}:rw /dev/uinput`
|
||||||
but this needs to be done every time the system is rebooted.*
|
but this needs to be done every time the system is rebooted.
|
||||||
|
|
||||||
Logitech devices that use HID++ version 2.0 or greater produce feature-based
|
## HID++ notifications and diversion
|
||||||
notifications that Solaar can process using a simple rule language. For
|
Logitech devices that use HID++ version 2.0 or greater, produce feature-based
|
||||||
|
notifications that Solaar can process using a simple rule language. For
|
||||||
example, using rules Solaar can emulate an `XF86_MonBrightnessDown` key tap
|
example, using rules Solaar can emulate an `XF86_MonBrightnessDown` key tap
|
||||||
in response to the pressing of the `Brightness Down` key on Craft keyboards,
|
in response to the pressing of the `Brightness Down` key on Craft keyboards,
|
||||||
which normally does not produce any input at all when the keyboard is in
|
which normally does not produce any input at all when the keyboard is in
|
||||||
|
@ -32,7 +34,7 @@ Windows mode.
|
||||||
Solaar's rules only trigger on HID++ notifications so device actions that
|
Solaar's rules only trigger on HID++ notifications so device actions that
|
||||||
normally produce HID output have to be first be set (diverted) to
|
normally produce HID output have to be first be set (diverted) to
|
||||||
produce HID++ notifications instead of their normal behavior.
|
produce HID++ notifications instead of their normal behavior.
|
||||||
Currently Solaar can divert some mouse scroll wheels, some
|
Currently, Solaar can divert some mouse scroll wheels, some
|
||||||
mouse thumb wheels, the crown of Craft keyboards, and some keys and buttons.
|
mouse thumb wheels, the crown of Craft keyboards, and some keys and buttons.
|
||||||
If the scroll wheel, thumb wheel, crown, key, or button is
|
If the scroll wheel, thumb wheel, crown, key, or button is
|
||||||
not diverted by setting the appropriate setting then no HID++ notification is
|
not diverted by setting the appropriate setting then no HID++ notification is
|
||||||
|
@ -40,74 +42,110 @@ generated and rules will not be triggered by manipulating the wheel, crown, key,
|
||||||
Look for `HID++` or `Diversion` settings to see what
|
Look for `HID++` or `Diversion` settings to see what
|
||||||
diversion can be done with your devices.
|
diversion can be done with your devices.
|
||||||
|
|
||||||
|
### Show notifications
|
||||||
Running Solaar with the `-ddd`
|
Running Solaar with the `-ddd`
|
||||||
option will show information about notifications, including their feature
|
option will show information about notifications, including their feature
|
||||||
name, report number, and data.
|
name, report number, and data.
|
||||||
|
|
||||||
Solaar can also create special notifications in response to mouse movements on some mice.
|
|
||||||
Setting the `Mouse Gestures` setting to a key enables special processing of mouse movements
|
|
||||||
while the key is depressed. Moving the mouse creates a mouse movement event.
|
|
||||||
Stopping the mouse for a little while and moving it again creates another mouse movement event.
|
|
||||||
Pressing a diverted key creates a key event.
|
|
||||||
When the key is released the sequence of events is sent as a synthetic notification
|
|
||||||
that can be matched with `Mouse Gesture` conditions.
|
|
||||||
|
|
||||||
In response to a feature-based HID++ notification Solaar runs a sequence of
|
In response to a feature-based HID++ notification Solaar runs a sequence of
|
||||||
rules. A `Rule` is a sequence of components, which are either sub-rules,
|
rules. A `Rule` is a sequence of components, which are either sub-rules,
|
||||||
conditions, or actions. Conditions and actions are dictionaries with one
|
conditions, or actions. Conditions and actions are dictionaries with one
|
||||||
entry whose key is the name of the condition or action and whose value is
|
entry whose key is the name of the condition or action and whose value is
|
||||||
the argument of the action.
|
the argument of the action.
|
||||||
|
|
||||||
If the last thing that a rule does is execute an action, no more rules are
|
If the last thing that a rule does is execute an action, no more rules are
|
||||||
processed for the notification.
|
processed for the notification.
|
||||||
|
|
||||||
Rules are evaluated by evaluating each of their components in order. The
|
Rules are evaluated by evaluating each of their components in order. The
|
||||||
evaluation of a rule is terminated early if a condition component evaluates
|
evaluation of a rule is terminated early if a condition component evaluates
|
||||||
to false or the last evaluated sub-component of a component is an action. A
|
to false or the last evaluated subcomponent of a component is an action. A
|
||||||
rule is false if its last evaluated component evaluates to a false value.
|
rule is false if its last evaluated component evaluates to false.
|
||||||
|
|
||||||
|
## Conditions
|
||||||
|
|
||||||
|
### Not
|
||||||
`Not` conditions take a single component and are true if their component
|
`Not` conditions take a single component and are true if their component
|
||||||
evaluates to a false value.
|
evaluates to a false value.
|
||||||
|
|
||||||
|
### Or
|
||||||
`Or` conditions take a sequence of components and are evaluated by
|
`Or` conditions take a sequence of components and are evaluated by
|
||||||
evaluating each of their components in order.
|
evaluating each of their components in order.
|
||||||
An Or condition is terminated early if a component evaluates to true or the
|
An Or condition is terminated early if a component evaluates to true or the
|
||||||
last evaluated sub-component of a component is an action.
|
last evaluated subcomponent of a component is an action.
|
||||||
A Or condition is true if its last evaluated component evaluates to a true
|
A Or condition is true if its last evaluated component evaluates to a true
|
||||||
value. `And` conditions take a sequence of components are evaluated the same
|
value. `And` conditions take a sequence of components which are evaluated the same
|
||||||
as rules.
|
as rules.
|
||||||
|
|
||||||
`Feature` conditions are if true if the name of the feature of the current
|
### Feature
|
||||||
|
`Feature` conditions are true if the name of the feature of the current
|
||||||
notification is their string argument.
|
notification is their string argument.
|
||||||
`Report` conditions are if true if the report number in the current
|
`Report` conditions are true if the report number in the current
|
||||||
notification is their integer argument.
|
notification is their integer argument.
|
||||||
|
|
||||||
`Key` conditions are true if the Logitech name of the last diverted key or button pressed is their
|
### Key
|
||||||
string argument. Alternatively, if the argument is a list `[name, action]` where `action`
|
`Key` conditions are true if the Logitech name of the current **diverted** key or button being pressed is their
|
||||||
|
string argument. Alternatively, if the argument is a list `[name, action]` where `action`
|
||||||
is either `'pressed'` or `'released'`, the key down or key up events of `name` argument are
|
is either `'pressed'` or `'released'`, the key down or key up events of `name` argument are
|
||||||
matched, respectively. Logitech key and button names are shown in the `Key/Button Diversion`
|
matched, respectively. Logitech key and button names are shown in the `Key/Button Diversion`
|
||||||
setting. These names are also shown in the output of `solaar show` in the 'reprogrammable keys'
|
setting. These names are also shown in the output of `solaar show` in the 'Reprogrammable keys'
|
||||||
section. Only keys or buttons that have 'divertable' in their report can be diverted.
|
section. Only keys or buttons that have 'Divertable' in their report can be diverted.
|
||||||
Some keyboards have Gn, Mn, or MR keys, which are diverted using the 'Divert G Keys' setting.
|
Some keyboards have 'Gn', 'Mn', or 'MR' keys, which are diverted using the 'Divert G Keys' setting.
|
||||||
|
|
||||||
|
### Key is down
|
||||||
|
`KeyIsDown` conditions are true if the **diverted** key or button that is their string argument is currently down.
|
||||||
|
Note that this only works for **diverted** keys or buttons, including diverted Gn, Mn, and MR keys.
|
||||||
|
|
||||||
|
### Key and button diversion
|
||||||
|
Solaar can also create special notifications in response to mouse movements on some mice.
|
||||||
|
Setting `Key/Button Diversion` for a key or button to Mouse Gestures causes the key or button to create a `Mouse Gesture`
|
||||||
|
notification for the period that the key or button is depressed.
|
||||||
|
Moving the mouse creates a mouse movement event.
|
||||||
|
Stopping the mouse for a little while and moving it again creates another mouse movement event.
|
||||||
|
Pressing a diverted key creates a key event.
|
||||||
|
When the key is released the sequence of events is sent as a synthetic notification
|
||||||
|
that can be matched with `Mouse Gesture` conditions.
|
||||||
|
|
||||||
|
### Mouse gestures
|
||||||
|
`Mouse Gesture` conditions are true if the actions (mouse movements and diverted key presses) taken while a mouse gestures button is held down match the arguments of the condition.
|
||||||
|
Mouse gestures buttons can be set using the 'Key/Button Diversion' setting, by changing the value to `Mouse Gestures`.
|
||||||
|
The arguments of a Mouse Gesture condition can be a direction, i.e., `Mouse Up`, `Mouse Down`, `Mouse Left`, `Mouse Right`, `Mouse Up-Left`, `Mouse Up-Right`, `Mouse Down-Left`, or `Mouse Down-Right`, or the Logitech name of a key.
|
||||||
|
If the first argument is the Logitech name of a key then that argument is matched against the button that was held down to initiate mouse gesture processing.
|
||||||
|
For example, a Mouse Gesture condition of `Mouse Up` -> `Mouse Up` would match pressing any Mouse Gestures button, moving the mouse upwards, pausing momentarily, moving the mouse upwards again, and releasing the button.
|
||||||
|
The condition `Smart Shift` -> `Mouse Down` -> `Back Button` would match pressing the Smart Shift button (provided that it is a Mouse Gestures button!), moving the mouse downwards, clicking the Back button (provided that it is diverted!), and then releasing the Smart Shift button.
|
||||||
|
Directions and buttons can be mixed and chained together however you like.
|
||||||
|
It's possible to create a `No-op` gesture by clicking 'Delete' on the initial Action when you first create the rule. This gesture will trigger when you simply click a Mouse Gestures button.
|
||||||
|
|
||||||
|
### Key modifiers
|
||||||
`Modifiers` conditions take either a string or a sequence of strings, which
|
`Modifiers` conditions take either a string or a sequence of strings, which
|
||||||
can only be `Shift`, `Control`, `Alt`, and `Super`.
|
can only be `Shift`, `Control`, `Alt`, and `Super`.
|
||||||
Modifiers conditions are true if their argument is the current keyboard
|
Modifiers conditions are true if their argument is the current keyboard
|
||||||
modifiers.
|
modifiers.
|
||||||
|
|
||||||
`Process` conditions are true if the process for focus input window
|
### Process focused
|
||||||
|
`Process` conditions are true if the process for the focused input window
|
||||||
or the window's Window manager class or instance name starts with their string argument.
|
or the window's Window manager class or instance name starts with their string argument.
|
||||||
|
|
||||||
|
### Window under cursor
|
||||||
`MouseProcess` conditions are true if the process for the window under the mouse
|
`MouseProcess` conditions are true if the process for the window under the mouse
|
||||||
or the window's Window manager class or instance name starts with their string argument.
|
or the window's Window manager class or instance name starts with their string argument.
|
||||||
|
|
||||||
|
### Device notification and device active
|
||||||
|
`Device` conditions are true if a particular device originated the notification.
|
||||||
`Active` conditions are true if a particular device is active.
|
`Active` conditions are true if a particular device is active.
|
||||||
`Active` conditions take one argument, which is the Serial number or Unit ID of a device,
|
`Device` and `Active` conditions take one argument, which is the serial number or unit ID of a device,
|
||||||
as shown in Solaar's detail pane.
|
as shown in Solaar's detail pane, or either of its names, as shown by Solaar.
|
||||||
|
Some older devices do not have a useful serial number or unit ID and so cannot
|
||||||
|
distinguished from other devices with the same names.
|
||||||
|
|
||||||
|
### Host
|
||||||
|
`Host` conditions are true if the computers hostname starts with the condition's argument.
|
||||||
|
|
||||||
|
### Solaar device setting
|
||||||
`Setting` conditions check the value of a Solaar setting on a device.
|
`Setting` conditions check the value of a Solaar setting on a device.
|
||||||
`Setting` conditions take three or four arguments, depending on the setting:
|
`Setting` conditions take three or four arguments, depending on the setting:
|
||||||
the Serial number or Unit ID of a device, as shown in Solaar's detail pane,
|
the Serial number or Unit ID of a device, as shown in Solaar's detail pane,
|
||||||
or null for the device that initiated rule processing;
|
or null for the device that initiated rule processing;
|
||||||
the internal name of a setting (which can be found from solaar config <device>);
|
the internal name of a setting (which can be found from solaar config \<device\>);
|
||||||
one or two arguments for the setting.
|
one or two arguments for the setting.
|
||||||
For settings that use keys or buttons as an argument the Logtech name can be used
|
For settings that use keys or buttons as an argument the Logtech name can be used
|
||||||
as shown in the Solaar main window for these settings,
|
as shown in the Solaar main window for these settings,
|
||||||
|
@ -117,16 +155,28 @@ which can be found in the GESTURE2_GESTURES_LABELS structure in lib/logitech_rec
|
||||||
For settings that need one of a set of names as an argument the name can be used or its internal integer value,
|
For settings that need one of a set of names as an argument the name can be used or its internal integer value,
|
||||||
as used in the Solaar config file.
|
as used in the Solaar config file.
|
||||||
|
|
||||||
|
`Setting` conditions check device settings of devices, provided the device is on-line.
|
||||||
|
The first arguments to the condition are the Serial number or Unit ID of a device, as shown in Solaar's detail pane,
|
||||||
|
or null for the device that initiated rule processing; and
|
||||||
|
the internal name of a setting (which can be found from solaar config \<device\>).
|
||||||
|
Most simple settings take one extra argument, the value to check the setting value against.
|
||||||
|
Range setting can also take two arguments, which form an inclusive range to check against.
|
||||||
|
Other settings take two arguments, a key indicating which sub-setting to check and the value to check it against.
|
||||||
|
For settings that use gestures as an argument the internal name of the gesture is used,
|
||||||
|
which can be found in the GESTURE2_GESTURES_LABELS structure in lib/logitech_receiver/settings_templates.
|
||||||
|
For boolean settings '~' can be used to toggle the setting.
|
||||||
|
|
||||||
|
### Test and TestBytes
|
||||||
`Test` and `TestBytes` conditions are true if their test evaluates to true on the feature,
|
`Test` and `TestBytes` conditions are true if their test evaluates to true on the feature,
|
||||||
report, and data of the current notification.
|
report and data of the current notification.
|
||||||
`TestBytes` conditions can return a number instead of a boolean.
|
`TestBytes` conditions can return a number instead of a boolean.
|
||||||
|
|
||||||
`TestBytes` conditions consist of a sequence of three or four integers and use the first
|
`TestBytes` conditions consist of a sequence of three or four integers and use the first
|
||||||
two to select bytes of the notification data.
|
two to select bytes of the notification data.
|
||||||
Writing this kind of test condition is not trivial.
|
Writing this kind of test condition is not trivial.
|
||||||
Three-element `TestBytes` conditions are true if the selected bytes bit-wise anded
|
Three-element `TestBytes` conditions are true if the selected bytes bit-wise AND
|
||||||
with its third element is non-zero.
|
with its third element is non-zero.
|
||||||
The value of these test conditions is the result of the and.
|
The value of these test conditions is the result of the AND.
|
||||||
Four-element `TestBytes` conditions are true if the selected bytes form a signed
|
Four-element `TestBytes` conditions are true if the selected bytes form a signed
|
||||||
integer between the third and fourth elements.
|
integer between the third and fourth elements.
|
||||||
The value of these conditions is the signed value of the selected bytes
|
The value of these conditions is the signed value of the selected bytes
|
||||||
|
@ -148,42 +198,31 @@ A `thumb_wheel_down` test is the rotation amount of a `THUMB WHEEL` downward rot
|
||||||
same but for `LOWRES WHEEL` and `HIRES WHEEL`.
|
same but for `LOWRES WHEEL` and `HIRES WHEEL`.
|
||||||
`True` and `False` tests return True and False, respectively.
|
`True` and `False` tests return True and False, respectively.
|
||||||
|
|
||||||
`Mouse Gesture` conditions are true if the actions (mouse movements and diverted key presses) taken while a mouse gestures button is held down match the arguments of the condition.
|
Solaar keeps track of the total signed displacement of the current thumb wheel movement.
|
||||||
Mouse gestures buttons can be set using the 'Key/Button Diversion' setting, by changing the value to `Mouse Gestures'.
|
This displacement is reset when the thumb wheel is inactive.
|
||||||
The arguments of a Mouse Gesture condition can be a direction, i.e., `Mouse Up`, `Mouse Down`, `Mouse Left`, `Mouse Right`, `Mouse Up-left`, `Mouse Up-Right`, `Mouse Down-left`, or `Mouse Down-right`, or the Logitech name of a key.
|
`thumb_wheel_up` and `thumb_wheel_down` tests take an optional integer parameter.
|
||||||
If the first argument is the Logitech name of a key then that argument is matched against the button that was held down to initiate mouse gesture processing.
|
With a parameter the test is only true if the current thumb wheel displacement is greater than the parameter.
|
||||||
So, for example, a Mouse Gesture condition of `Mouse Up` -> `Mouse Up` would match pressing any Mouse Gestures button, moving the mouse upwards, pausing momentarily, moving the mouse upwards again, and releasing the button.
|
The displacement is then lessened by the amount of the parameter.
|
||||||
The condition `Smart Shift` -> 'Mouse Down` -> `Back Button` would match pressing the Smart Shift button (provided that it is a Mouse Gestures button!) moving the mouse downwards, clicking the Back button (provided that it is diverted!), and then releasing the Smart Shift button.
|
|
||||||
Directions and buttons can be mixed and chained together however you like.
|
|
||||||
It's possible to create a `No-op` gesture by clicking 'Delete' on the initial Action when you first create the rule. This gesture will trigger when you simply click a Mouse Gestures button.
|
|
||||||
|
|
||||||
`Setting` conditions check device settings of devices, provided the device is on-line.
|
## Actions
|
||||||
The first arguments to the condition are the Serial number or Unit ID of a device, as shown in Solaar's detail pane,
|
|
||||||
or null for the device that initiated rule processing; and
|
|
||||||
the internal name of a setting (which can be found from solaar config <device>).
|
|
||||||
Most simple settings take one extra argument, the value to check the setting value against.
|
|
||||||
Range setting can also take two arguments, which form an inclusive range to check against.
|
|
||||||
Other settings take two arguments, a key indicating which sub-setting to check and the value to check it against.
|
|
||||||
For settings that use gestures as an argument the internal name of the gesture is used,
|
|
||||||
which can be found in the GESTURE2_GESTURES_LABELS structure in lib/logitech_receiver/settings_templates.
|
|
||||||
For boolean settings '~' can be used to toggle the setting.
|
|
||||||
|
|
||||||
|
### Key press
|
||||||
A `KeyPress` action takes either the name of an X11 key symbol, such as "a",
|
A `KeyPress` action takes either the name of an X11 key symbol, such as "a",
|
||||||
a list of X11 key symbols, such as "a" or "Control+a",
|
a list of X11 key symbols, such as "a" or "CTRL + A",
|
||||||
or a two-element list with the first element as above
|
or a two-element list with the first element as above
|
||||||
and the second element one of 'click', 'depress', or 'release'
|
and the second element one of `'click'`, `'depress'`, or `'release'`
|
||||||
and executes key actions on a simulated keyboard to produce these symbols.
|
and executes key actions on a simulated keyboard to produce these symbols.
|
||||||
Use separate `KeyPress` actions for multiple characters,
|
Use separate `KeyPress` actions for multiple characters,
|
||||||
i.e., don't use a single `KeyPress` like 'a+b'.
|
i.e., don't use a single `KeyPress` like 'a+b'.
|
||||||
The `KeyPress` action normally both depresses and releases (clicks) the keys,
|
The `KeyPress` action normally both depresses and releases (clicks) the keys,
|
||||||
but can also just depress the keys or just release the keys.
|
but can also just depress the keys or just release the keys.
|
||||||
Use the depress or release options with extreme care,
|
Use the depress or release options with extreme care,
|
||||||
ensuring that the depressed keys are later released.
|
ensuring that the depressed keys are later released,
|
||||||
Otherwise it may become difficult to use your system.
|
otherwise it may become difficult to use your system.
|
||||||
The keys are depressed in forward order and released in reverse order.
|
The keys are depressed in forward order and released in reverse order.
|
||||||
|
|
||||||
If a key symbol can only be produced by a shfited or level 3 keypress, e.g., "A",
|
If a key symbol can only be produced by a shfited or level 3 keypress, e.g., "A",
|
||||||
then Solaar will add keypresses to produce that keysymbol,
|
then Solaar will add keypresses to produce that key symbol,
|
||||||
e.g., simulating a left shift keypress to get "A" instead of "a".
|
e.g., simulating a left shift keypress to get "A" instead of "a".
|
||||||
If a key symbol is not available in the current keymap or needs other shift-like keys,
|
If a key symbol is not available in the current keymap or needs other shift-like keys,
|
||||||
then Solaar cannot simulate it.
|
then Solaar cannot simulate it.
|
||||||
|
@ -199,36 +238,42 @@ simulate inputting a key symbol.
|
||||||
Unfortunately, this determination can go wrong in several ways and is more likely
|
Unfortunately, this determination can go wrong in several ways and is more likely
|
||||||
to go wrong under Wayland than under X11.
|
to go wrong under Wayland than under X11.
|
||||||
|
|
||||||
|
### Mouse scroll
|
||||||
A `MouseScroll` action takes a sequence of two numbers and simulates a horizontal and vertical mouse scroll of these amounts.
|
A `MouseScroll` action takes a sequence of two numbers and simulates a horizontal and vertical mouse scroll of these amounts.
|
||||||
If the previous condition in the parent rule returns a number the scroll amounts are multiplied by this number.
|
If the previous condition in the parent rule returns a number the scroll amounts are multiplied by this number.
|
||||||
|
|
||||||
|
### Mouse click
|
||||||
|
A `MouseClick` action takes a mouse button name (`left`, `middle` or `right`) and a positive number or 'click', 'depress', or 'release'.
|
||||||
|
The action simulates that number of clicks of the specified button or just one click, depress, or release of the button.
|
||||||
A `MouseClick` action takes a mouse button name (`left`, `middle` or `right`) and a positive number, and simulates that number of clicks of the specified button.
|
A `MouseClick` action takes a mouse button name (`left`, `middle` or `right`) and a positive number, and simulates that number of clicks of the specified button.
|
||||||
An `Execute` action takes a program and arguments and executes it asynchronously.
|
An `Execute` action takes a program and arguments and executes it asynchronously.
|
||||||
|
|
||||||
|
### Set setting
|
||||||
A `Set` action changes a Solaar setting for a device, provided that the device is on-line.
|
A `Set` action changes a Solaar setting for a device, provided that the device is on-line.
|
||||||
`Set` actions take three or four arguments, depending on the setting.
|
`Set` actions take three or four arguments, depending on the setting.
|
||||||
The first two are the Serial number or Unit ID of a device, as shown in Solaar's detail pane,
|
The first two are the Serial number or Unit ID of a device, as shown in Solaar's detail pane,
|
||||||
or null for the device that initiated rule processing; and
|
or null for the device that initiated rule processing; and
|
||||||
the internal name of a setting (which can be found from solaar config <device>).
|
the internal name of a setting (which can be found from `solaar config <device>`).
|
||||||
Simple settings take one extra argument, the value to set the setting to.
|
Simple settings take one extra argument, the value to set the setting to.
|
||||||
For boolean settings '~' can be used to toggle the setting.
|
For boolean settings `~` can be used to toggle the setting.
|
||||||
Other simple settings take two extra arguments, a key indicating which sub-setting to set and the value to set it to.
|
Other simple settings take two extra arguments, a key indicating which sub-setting to set and the value to set it to.
|
||||||
For settings that use gestures as an argument the internal name of the gesture is used,
|
For settings that use gestures as an argument the internal name of the gesture is used,
|
||||||
which can be found in the GESTURE2_GESTURES_LABELS structure in lib/logitech_receiver/settings_templates.
|
which can be found in the GESTURE2_GESTURES_LABELS structure in `lib/logitech_receiver/settings_templates`.
|
||||||
All settings are supported.
|
All settings are supported.
|
||||||
|
|
||||||
|
### Later
|
||||||
A `Later` action executes rule components later.
|
A `Later` action executes rule components later.
|
||||||
`Later` actions take an integer delay in seconds between 1 and 100 followed by a zero or more rule components that will be executed later.
|
`Later` actions take an integer delay in seconds between 1 and 100 followed by zero or more rule components that will be executed later.
|
||||||
Processing of the rest of the rule continues immediately.
|
Processing of the rest of the rule continues immediately.
|
||||||
|
|
||||||
Solaar has several built-in rules, which are run after user-created rules and so can be overridden by user-created rules.
|
## Built-in Rules
|
||||||
One rule turns
|
|
||||||
|
Solaar has a built-in rule, which is run after user-created rules and so can be overridden by user-created rules.
|
||||||
|
This rule turns
|
||||||
`Brightness Down` key press notifications into `XF86_MonBrightnessDown` key taps
|
`Brightness Down` key press notifications into `XF86_MonBrightnessDown` key taps
|
||||||
and `Brightness Up` key press notifications into `XF86_MonBrightnessUp` key taps.
|
and `Brightness Up` key press notifications into `XF86_MonBrightnessUp` key taps.
|
||||||
Another rule makes Craft crown ratchet movements move between tabs when the crown is pressed
|
|
||||||
and up and down otherwise.
|
## Example Solaar Rule File
|
||||||
A third rule turns Craft crown ratchet movements into `XF86_AudioNext` or `XF86_AudioPrev` key taps when the crown is pressed and `XF86_AudioRaiseVolume` or `XF86_AudioLowerVolume` otherwise.
|
|
||||||
A fourth rule doubles the speed of `THUMB WHEEL` movements unless the `Control` modifier is on.
|
|
||||||
All of these rules are only active if the key or feature is diverted, of course.
|
|
||||||
|
|
||||||
Solaar reads rules from a YAML configuration file (normally `~/.config/solaar/rules.yaml`).
|
Solaar reads rules from a YAML configuration file (normally `~/.config/solaar/rules.yaml`).
|
||||||
This file contains zero or more documents, each a rule.
|
This file contains zero or more documents, each a rule.
|
||||||
|
@ -276,10 +321,11 @@ Here is a file with six rules:
|
||||||
...
|
...
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Button diversion example
|
||||||
Here is an example showing how to divert the Back Button on an MX Master 3 so that pressing
|
Here is an example showing how to divert the Back Button on an MX Master 3 so that pressing
|
||||||
the button will initiate rule processing and a rule that triggers on this notification and
|
the button will initiate rule processing and a rule that triggers on this notification and
|
||||||
switches the mouse to host 3 after popping up a simple notification.
|
switches the mouse to host 3 after popping up a simple notification.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
|
Before Width: | Height: | Size: 152 KiB After Width: | Height: | Size: 152 KiB |
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 94 KiB |
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 67 KiB |
Before Width: | Height: | Size: 135 KiB After Width: | Height: | Size: 135 KiB |
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 69 KiB |
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 61 KiB |