https://github.com/ozwaldorf/zoom-sync
Cross-platform zoom65 screen module utility
https://github.com/ozwaldorf/zoom-sync
Last synced: 7 months ago
JSON representation
Cross-platform zoom65 screen module utility
- Host: GitHub
- URL: https://github.com/ozwaldorf/zoom-sync
- Owner: ozwaldorf
- License: mit
- Created: 2024-11-17T03:04:08.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-11-17T03:15:39.000Z (7 months ago)
- Last Synced: 2024-11-17T04:19:41.985Z (7 months ago)
- Language: Rust
- Size: 20.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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](https://open-meteo.com) | Unknown centralized service |
| Geolocation api | [ipinfo](https://ipinfo.io) 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](https://open-meteo.com)
- Geolocation (optional for automatic weather coordinates): [ipinfo.io](https://ipinfo.io)## Installation
### Source
Requirements:
- libudev (linux, included with systemd)
- openssl```bash
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
```bash
nix run github:ozwaldorf/zoom-sync
```## Usage
### CLI
Detailed command line documentation can be found in [docs/README.md](./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](./docs/zoom-sync.service).```bash
# 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
```bash
# 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
- [x] Reverse engineer updating each value
- [x] Time
- [x] Weather (current, min, max)
- [x] CPU/GPU temp
- [x] Download rate
- [x] Screen up/down/switch
- [x] GIF image
- [x] Static image
- [x] Fetch current weather report
- [x] Fetch CPU temp
- [x] Fetch GPU temp
- [x] Nvidia
- [ ] AMD
- [ ] Monitor download rate
- [x] Poll and reconnect to keyboard
- [x] CLI arguments
- [x] Update intervals for each value
- [x] Simulate reactive gif mode (linux)
- [ ] System tray menu
- [ ] Package releases
- [ ] Crates.io
- [ ] Nixpkgs
- [ ] Windows
- [ ] OSX