1 unstable release
new 0.1.0 | Nov 24, 2024 |
---|
#295 in Command line utilities
63KB
1.5K
SLoC
zoom-sync
Cross-platform utility to sync Zoom65 v3 screen modules.
Features
zoom-sync | MeletrixID / WuqueID | |
---|---|---|
Supported platforms | Cross-platform | Windows, OSX |
FOSS ? | FOSS. Always. | Free, but not open sourced |
Languages | English | Chinese or English |
Weather api | open-meteo | Unknown centralized service |
Geolocation api | ipinfo or manual | Bundled into weather api |
VPN workaround | Manual geo coordinates | Not supported |
Temperature units | °C or °F | °C only |
Time sync | Supported | Supported |
CPU temperature | Supported | Supported |
GPU temperature | Nvidia only | Supported |
Download rate | Manual only | Supported |
Manually set data | Supported | Not supported |
Image/gif upload | Supported | Not supported (use web driver) |
Reactive image/gif | Simulated | Not supported |
Future-proof | Will always work | Overflow errors after year 2255 |
Third Party Services
The following free third-party services are used to fetch some information:
- Weather forcasting: open-meteo
- Geolocation (optional for automatic weather coordinates): ipinfo.io
Installation
Source
Requirements:
- libudev (linux, included with systemd)
- openssl
git clone https://github.com/ozwaldorf/zoom-sync && cd zoom-sync
cargo install --path .
Nix
Note: On nixos, you must use the flake for nvidia gpu temp to work
nix run github:ozwaldorf/zoom-sync
Usage
CLI
Detailed command line documentation can be found in docs/README.md.
Running on startup
Linux / systemd
A systemd service can be easily setup that will manage running zoom-sync. An example can be found at docs/zoom-sync.service.
# edit configuration arguments in ExecStart
vim docs/zoom-sync.service
# copy to system services
sudo cp docs/zoom-sync.service /etc/systemd/system
# enable and start the servive
sudo systemctl enable --now zoom-sync.service
Windows
TODO
OSX
TODO
Simple examples
# Only update time and weather, and set the screen to weather on connect:
zoom-sync --no-system --screen weather
# Only update time and system info, and set the screen to cpu temp on connect:
zoom-sync --no-weather --screen cpu
# Use hardcoded coordinates for fetching weather
zoom-sync --coords 27.1127 109.3497
# use a gif as both static and animated image, run with reactive mode enabled and no other data
zoom-sync set image my-anim.gif
zoom-sync set gif my-anim.gif
zoom-sync --reactive --no-system --no-weather
# clear image and gif back to the chrome dino and nyancat
zoom-sync set image clear
zoom-sync set gif clear
# set time
zoom-sync set time
# set weather manually
zoom-sync set weather -w 0 10 20 5
Feature Checklist
- Reverse engineer updating each value
- Time
- Weather (current, min, max)
- CPU/GPU temp
- Download rate
- Screen up/down/switch
- GIF image
- Static image
- Fetch current weather report
- Fetch CPU temp
- Fetch GPU temp
- Nvidia
- AMD
- Monitor download rate
- Poll and reconnect to keyboard
- CLI arguments
- Update intervals for each value
- Simulate reactive gif mode (linux)
- System tray menu
- Package releases
- Crates.io
- Nixpkgs
- Windows
- OSX
Dependencies
~14–28MB
~424K SLoC