korkje / mow Goto Github PK
View Code? Open in Web Editor NEWCross platform CLI tool for Model O Wireless
License: MIT License
Cross platform CLI tool for Model O Wireless
License: MIT License
Hey there,
I just got this program, and I quickly ran into a big issue -- I have to run all of these commands as root.
This is a pretty large barrier, because it means I can't integrate this into my desktop (mouse battery bar module, scripts to quickly change settings, etc)
I looked around online for safe ways to run this without using sudo
or pkexec
, but I could not find a safe way to do so.
Has anyone else found a workaround for this problem? I am running Fedora 37 if that helps.
Are there plans on a version for the model I (with an option for regulating the debounce time)
Whenever I try to change the debounce time to something like 0ms or 2ms it just doesn't change. The CPS caps at 10cps, and by downloading Glorious Core on another computer I saw that the debounce time was still set to 10ms.
I'm new to linux and confused by what you mean by this how can I make a symlink and what is my path. Google was no help. Thank you.
Hey there! Tool looks amazing, I was wondering what needs to be done to add support for the Model O2 Wireless. If theres any info I need to collect let me know!
I grabbed these from dmesg.. not sure if they are identical but did one plugged in, and one unplugged
Wireless
[ 1.292958] usb 7-1: New USB device found, idVendor=093a, idProduct=822d, bcdDevice= 2.43
[ 1.292960] usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 1.292961] usb 7-1: Product: Model O 2 Wireless
[ 1.292962] usb 7-1: Manufacturer: Glorious
[ 1.892049] input: Glorious Model O 2 Wireless as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.0/0003:093A:822D.0001/input/input2
[ 1.943368] hid-generic 0003:093A:822D.0001: input,hidraw0: USB HID v1.10 Keyboard [Glorious Model O 2 Wireless] on usb-0000:31:00.3-1/input0
[ 1.947116] input: Glorious Model O 2 Wireless Mouse as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822D.0002/input/input3
[ 1.947169] input: Glorious Model O 2 Wireless Consumer Control as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822D.0002/input/input4
[ 1.969283] usb 3-4: new full-speed USB device number 5 using xhci_hcd
[ 1.998331] input: Glorious Model O 2 Wireless System Control as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822D.0002/input/input5
[ 1.998376] hid-generic 0003:093A:822D.0002: input,hiddev96,hidraw1: USB HID v1.10 Mouse [Glorious Model O 2 Wireless] on usb-0000:31:00.3-1/input1
[ 2071.978315] usb 7-1: USB disconnect, device number 2
[ 2074.379093] usb 7-1: new full-speed USB device number 4 using xhci_hcd
[ 2074.517633] usb 7-1: New USB device found, idVendor=093a, idProduct=822a, bcdDevice= 2.43
[ 2074.517638] usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 2074.517639] usb 7-1: Product: Model O 2 Wireless
[ 2074.517641] usb 7-1: Manufacturer: GLORIOUS
[ 2074.529813] input: GLORIOUS Model O 2 Wireless as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.0/0003:093A:822A.0009/input/input23
[ 2074.582506] hid-generic 0003:093A:822A.0009: input,hidraw0: USB HID v1.10 Keyboard [GLORIOUS Model O 2 Wireless] on usb-0000:31:00.3-1/input0
[ 2074.586784] input: GLORIOUS Model O 2 Wireless Mouse as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822A.000A/input/input24
[ 2074.592124] input: GLORIOUS Model O 2 Wireless Consumer Control as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822A.000A/input/input25
[ 2074.645225] input: GLORIOUS Model O 2 Wireless System Control as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822A.000A/input/input26
[ 2074.646263] hid-generic 0003:093A:822A.000A: input,hiddev96,hidraw1: USB HID v1.10 Mouse [GLORIOUS Model O 2 Wireless] on usb-0000:31:00.3-1/input1
[ 4672.732431] usb 7-1: USB disconnect, device number 4
[ 4676.282144] usb 7-1: new full-speed USB device number 5 using xhci_hcd
[ 4676.457396] usb 7-1: New USB device found, idVendor=093a, idProduct=822d, bcdDevice= 2.43
[ 4676.457400] usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 4676.457401] usb 7-1: Product: Model O 2 Wireless
[ 4676.457403] usb 7-1: Manufacturer: Glorious
[ 4676.469445] input: Glorious Model O 2 Wireless as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.0/0003:093A:822D.000B/input/input28
[ 4676.522474] hid-generic 0003:093A:822D.000B: input,hidraw0: USB HID v1.10 Keyboard [Glorious Model O 2 Wireless] on usb-0000:31:00.3-1/input0
[ 4676.526477] input: Glorious Model O 2 Wireless Mouse as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822D.000C/input/input29
[ 4676.526533] input: Glorious Model O 2 Wireless Consumer Control as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822D.000C/input/input30
[ 4676.579193] input: Glorious Model O 2 Wireless System Control as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822D.000C/input/input31
[ 4676.579328] hid-generic 0003:093A:822D.000C: input,hiddev96,hidraw1: USB HID v1.10 Mouse [Glorious Model O 2 Wireless] on usb-0000:31:00.3-1/input1
Wired
[ 1.149615] usb 7-1: new full-speed USB device number 2 using xhci_hcd
[ 1.292958] usb 7-1: New USB device found, idVendor=093a, idProduct=822d, bcdDevice= 2.43
[ 1.292960] usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 1.292961] usb 7-1: Product: Model O 2 Wireless
[ 1.292962] usb 7-1: Manufacturer: Glorious
[ 1.892049] input: Glorious Model O 2 Wireless as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.0/0003:093A:822D.0001/input/input2
[ 1.943368] hid-generic 0003:093A:822D.0001: input,hidraw0: USB HID v1.10 Keyboard [Glorious Model O 2 Wireless] on usb-0000:31:00.3-1/input0
[ 1.947116] input: Glorious Model O 2 Wireless Mouse as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822D.0002/input/input3
[ 1.947169] input: Glorious Model O 2 Wireless Consumer Control as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822D.0002/input/input4
[ 1.969283] usb 3-4: new full-speed USB device number 5 using xhci_hcd
[ 1.998331] input: Glorious Model O 2 Wireless System Control as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822D.0002/input/input5
[ 1.998376] hid-generic 0003:093A:822D.0002: input,hiddev96,hidraw1: USB HID v1.10 Mouse [Glorious Model O 2 Wireless] on usb-0000:31:00.3-1/input1
[ 2071.978315] usb 7-1: USB disconnect, device number 2
[ 2074.379093] usb 7-1: new full-speed USB device number 4 using xhci_hcd
[ 2074.517633] usb 7-1: New USB device found, idVendor=093a, idProduct=822a, bcdDevice= 2.43
[ 2074.517638] usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 2074.517639] usb 7-1: Product: Model O 2 Wireless
[ 2074.517641] usb 7-1: Manufacturer: GLORIOUS
[ 2074.529813] input: GLORIOUS Model O 2 Wireless as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.0/0003:093A:822A.0009/input/input23
[ 2074.582506] hid-generic 0003:093A:822A.0009: input,hidraw0: USB HID v1.10 Keyboard [GLORIOUS Model O 2 Wireless] on usb-0000:31:00.3-1/input0
[ 2074.586784] input: GLORIOUS Model O 2 Wireless Mouse as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822A.000A/input/input24
[ 2074.592124] input: GLORIOUS Model O 2 Wireless Consumer Control as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822A.000A/input/input25
[ 2074.645225] input: GLORIOUS Model O 2 Wireless System Control as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822A.000A/input/input26
[ 2074.646263] hid-generic 0003:093A:822A.000A: input,hiddev96,hidraw1: USB HID v1.10 Mouse [GLORIOUS Model O 2 Wireless] on usb-0000:31:00.3-1/input1
[ 4672.732431] usb 7-1: USB disconnect, device number 4
[ 4676.282144] usb 7-1: new full-speed USB device number 5 using xhci_hcd
[ 4676.457396] usb 7-1: New USB device found, idVendor=093a, idProduct=822d, bcdDevice= 2.43
[ 4676.457400] usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 4676.457401] usb 7-1: Product: Model O 2 Wireless
[ 4676.457403] usb 7-1: Manufacturer: Glorious
[ 4676.469445] input: Glorious Model O 2 Wireless as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.0/0003:093A:822D.000B/input/input28
[ 4676.522474] hid-generic 0003:093A:822D.000B: input,hidraw0: USB HID v1.10 Keyboard [Glorious Model O 2 Wireless] on usb-0000:31:00.3-1/input0
[ 4676.526477] input: Glorious Model O 2 Wireless Mouse as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822D.000C/input/input29
[ 4676.526533] input: Glorious Model O 2 Wireless Consumer Control as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822D.000C/input/input30
[ 4676.579193] input: Glorious Model O 2 Wireless System Control as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822D.000C/input/input31
[ 4676.579328] hid-generic 0003:093A:822D.000C: input,hiddev96,hidraw1: USB HID v1.10 Mouse [Glorious Model O 2 Wireless] on usb-0000:31:00.3-1/input1
[ 5842.653635] usb 7-1: USB disconnect, device number 5
[ 5844.687575] usb 7-1: new full-speed USB device number 6 using xhci_hcd
[ 5844.829736] usb 7-1: New USB device found, idVendor=093a, idProduct=822a, bcdDevice= 2.43
[ 5844.829740] usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 5844.829741] usb 7-1: Product: Model O 2 Wireless
[ 5844.829742] usb 7-1: Manufacturer: GLORIOUS
[ 5844.841830] input: GLORIOUS Model O 2 Wireless as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.0/0003:093A:822A.000D/input/input33
[ 5844.893671] hid-generic 0003:093A:822A.000D: input,hidraw0: USB HID v1.10 Keyboard [GLORIOUS Model O 2 Wireless] on usb-0000:31:00.3-1/input0
[ 5844.898023] input: GLORIOUS Model O 2 Wireless Mouse as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822A.000E/input/input34
[ 5844.898097] input: GLORIOUS Model O 2 Wireless Consumer Control as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822A.000E/input/input35
[ 5844.949608] input: GLORIOUS Model O 2 Wireless System Control as /devices/pci0000:00/0000:00:08.1/0000:31:00.3/usb7/7-1/7-1:1.1/0003:093A:822A.000E/input/input36
[ 5844.949651] hid-generic 0003:093A:822A.000E: input,hiddev96,hidraw1: USB HID v1.10 Mouse [GLORIOUS Model O 2 Wireless] on usb-0000:31:00.3-1/input1
I purchased a Wireless Model D-, before the purchase I asked Glorious if it had the same internals as the model O Wireless, and pointed them to your GitHub repo. They said it would likely work with your utility, but of course gave me a bunch of boilerplate about how they don't support it. I took the chance and bought one, however it obviously has a different USB ID than the MOW, and as such running mow just says it can't find a supported device:
./mow report battery
Error: No matching device found!
How do I go about adding the wired/wireless ID's to your code in order to try and get it recognized? I'm not a developer, and I have zero Rust experience, but I'd be willing to take a crack at it if it's just a matter of changing the ID in the code. It would be nice if there was a command line option to explicitly specify the ID, for testing with other models from the same vendor, or a config file where you can list the IDs you'd like it to recognize.
Below is the dmesg output when plugging this mouse in.
Wired:
[Sun May 22 12:52:49 2022] usb 3-1.2.4: Manufacturer: Glorious
[Sun May 22 12:52:49 2022] input: Glorious Model D- Wireless as /devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:00.0/0000:03:00.0/usb3/3-1/3-1.2/3-1.2.4/3-1.2.4:1.0/0003:258A:2014.001F/input/input50
[Sun May 22 12:52:49 2022] hid-generic 0003:258A:2014.001F: input,hidraw17: USB HID v1.11 Mouse [Glorious Model D- Wireless] on usb-0000:03:00.0-1.2.4/input0
[Sun May 22 12:52:49 2022] input: Glorious Model D- Wireless Consumer Control as /devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:00.0/0000:03:00.0/usb3/3-1/3-1.2/3-1.2.4/3-1.2.4:1.1/0003:258A:2014.0020/input/input51
[Sun May 22 12:52:49 2022] input: Glorious Model D- Wireless System Control as /devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:00.0/0000:03:00.0/usb3/3-1/3-1.2/3-1.2.4/3-1.2.4:1.1/0003:258A:2014.0020/input/input52
[Sun May 22 12:52:49 2022] input: Glorious Model D- Wireless Keyboard as /devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:00.0/0000:03:00.0/usb3/3-1/3-1.2/3-1.2.4/3-1.2.4:1.1/0003:258A:2014.0020/input/input53
[Sun May 22 12:52:49 2022] input: Glorious Model D- Wireless as /devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:00.0/0000:03:00.0/usb3/3-1/3-1.2/3-1.2.4/3-1.2.4:1.1/0003:258A:2014.0020/input/input54
[Sun May 22 12:52:49 2022] input: Glorious Model D- Wireless as /devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:00.0/0000:03:00.0/usb3/3-1/3-1.2/3-1.2.4/3-1.2.4:1.1/0003:258A:2014.0020/input/input55
[Sun May 22 12:52:49 2022] hid-generic 0003:258A:2014.0020: input,hiddev96,hidraw18: USB HID v1.11 Keyboard [Glorious Model D- Wireless] on usb-0000:03:00.0-1.2.4/input1
[Sun May 22 12:52:49 2022] hid-generic 0003:258A:2014.0021: hiddev104,hidraw19: USB HID v1.11 Device [Glorious Model D- Wireless] on usb-0000:03:00.0-1.2.4/input2
Wireless:
[Sun May 22 12:53:01 2022] usb 3-1.2.4: Manufacturer: Glorious
[Sun May 22 12:53:01 2022] input: Glorious Model D- Wireless as /devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:00.0/0000:03:00.0/usb3/3-1/3-1.2/3-1.2.4/3-1.2.4:1.0/0003:258A:2025.0022/input/input56
[Sun May 22 12:53:01 2022] hid-generic 0003:258A:2025.0022: input,hidraw17: USB HID v1.11 Mouse [Glorious Model D- Wireless] on usb-0000:03:00.0-1.2.4/input0
[Sun May 22 12:53:01 2022] input: Glorious Model D- Wireless Consumer Control as /devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:00.0/0000:03:00.0/usb3/3-1/3-1.2/3-1.2.4/3-1.2.4:1.1/0003:258A:2025.0023/input/input57
[Sun May 22 12:53:02 2022] input: Glorious Model D- Wireless System Control as /devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:00.0/0000:03:00.0/usb3/3-1/3-1.2/3-1.2.4/3-1.2.4:1.1/0003:258A:2025.0023/input/input58
[Sun May 22 12:53:02 2022] input: Glorious Model D- Wireless Keyboard as /devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:00.0/0000:03:00.0/usb3/3-1/3-1.2/3-1.2.4/3-1.2.4:1.1/0003:258A:2025.0023/input/input59
[Sun May 22 12:53:02 2022] input: Glorious Model D- Wireless as /devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:00.0/0000:03:00.0/usb3/3-1/3-1.2/3-1.2.4/3-1.2.4:1.1/0003:258A:2025.0023/input/input60
[Sun May 22 12:53:02 2022] input: Glorious Model D- Wireless as /devices/pci0000:00/0000:00:01.1/0000:01:00.2/0000:02:00.0/0000:03:00.0/usb3/3-1/3-1.2/3-1.2.4/3-1.2.4:1.1/0003:258A:2025.0023/input/input61
[Sun May 22 12:53:02 2022] hid-generic 0003:258A:2025.0023: input,hiddev96,hidraw18: USB HID v1.11 Keyboard [Glorious Model D- Wireless] on usb-0000:03:00.0-1.2.4/input1
[Sun May 22 12:53:02 2022] hid-generic 0003:258A:2025.0024: hiddev104,hidraw19: USB HID v1.11 Device [Glorious Model D- Wireless] on usb-0000:03:00.0-1.2.4/input2
I love the app installed for the aur and the terminal is easy to use and all but I would just like too know if there is a time frame for a GUI coming out.
Hello, thank you for this project!
With the current state of the repository, the code is only for personal use, as it doesn't have a license.
However, without a license, the default copyright laws apply,
meaning that you retain all rights to your source code and
no one may reproduce, distribute, or create derivative works
from your work.
It would be great if you could add an open-source LICENSE to this project, meaning we all could use and improve this code!
While I haven't used the Glorious program to view settings on a Windows machine, I assume the program shows you what the current settings of the mouse are so you can alter them. Such as what color settings you have, which DPI settings you are on, what your DPI stages are set to, and even your polling rate.
While it's understandable that you can just set them to what you want, overwriting the setting even if it is the same, it would be nice to see what your configurations are in case you forget which specific setting (especially color codes) you liked so you can use them again in the next configuration you set.
The build from the AUR download doesn't seem to be working. Pulling master and building worked, however.
Aur (1) Old Version New Version Make Only
aur/mow-git v0.2-1 No
warning: `mow` (bin "mow") generated 1 warning
error: could not compile `mow` (bin "mow") due to 1 previous error; 1 warning emitted
Caused by:
process didn't exit successfully: `CARGO=/usr/bin/cargo CARGO_BIN_NAME=mow CARGO_CRATE_NAME=mow CARGO_MANIFEST_DIR=/home/tom/.cache/paru/clone/mow-git/src/mow CARGO_PKG_AUTHORS='Ola Næss Kaldestad <[email protected]>' CARGO_PKG_DESCRIPTION='
Cross platform CLI tool for Glorious'\'' Model O Wireless.
Reverse engineered using USB packet logs sniffed with
WireShark and USBPcap, as well as decompiled Windows
software (Glorious Core).
' CARGO_PKG_HOMEPAGE='' CARGO_PKG_LICENSE='' CARGO_PKG_LICENSE_FILE='' CARGO_PKG_NAME=mow CARGO_PKG_README=README.md CARGO_PKG_REPOSITORY='' CARGO_PKG_RUST_VERSION='' CARGO_PKG_VERSION=0.1.0 CARGO_PKG_VERSION_MAJOR=0 CARGO_PKG_VERSION_MINOR=1 CARGO_PKG_VERSION_PATCH=0 CARGO_PKG_VERSION_PRE='' CARGO_PRIMARY_PACKAGE=1 LD_LIBRARY_PATH=/home/tom/.cache/paru/clone/mow-git/src/mow/target/release/deps rustc --crate-name mow --edition=2021 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=284 --crate-type bin --emit=dep-info,link -C opt-level=3 -C embed-bitcode=no -C metadata=15a6d4cd601eb97b -C extra-filename=-15a6d4cd601eb97b --out-dir /home/tom/.cache/paru/clone/mow-git/src/mow/target/release/deps -C strip=debuginfo -L dependency=/home/tom/.cache/paru/clone/mow-git/src/mow/target/release/deps --extern clap=/home/tom/.cache/paru/clone/mow-git/src/mow/target/release/deps/libclap-bb8f16985b3d1b8e.rlib --extern colored=/home/tom/.cache/paru/clone/mow-git/src/mow/target/release/deps/libcolored-1de7d4821b01c141.rlib --extern hidapi=/home/tom/.cache/paru/clone/mow-git/src/mow/target/release/deps/libhidapi-aef288118d94905b.rlib -Cforce-frame-pointers=yes -C debuginfo=2 --remap-path-prefix=/home/tom/.cache/paru/clone/mow-git/src=/usr/src/debug/mow-git -L native=/usr/lib -L native=/home/tom/.cache/paru/clone/mow-git/src/mow/target/release/build/hidapi-88d0b4f4bdcebaab/out` (exit status: 1)
==> ERROR: A failure occurred in build().
Aborting...
error: failed to build 'mow-git-v0.2-1':
error: packages failed to build: mow-git-v0.2-1
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.