Lightweight hardware-accelerated RGB synchronization for ASUS TUF/ROG laptops on Linux.
Aero-Sync is a Rust-based RGB synchronization engine that synchronizes ASUS keyboard lighting with on-screen colors in real time using a hardware-accelerated Wayland pipeline.
Built with:
- Rust
- GStreamer
- VA-API / NVMM
- Oklab color processing
- ASUS Linux ecosystem (
asusctl/asusd)
Originally developed and tested on an ASUS TUF F15 running Arch Linux + Wayland.
Install directly from the AUR:
yay -S aero-sync-gitAUR Package:
Aero-Sync is heavily optimized to run invisibly in the background without draining your battery or stealing gaming frames.
- CPU Usage: ~1.3% (on average). The heavy lifting (screen capture and downscaling) is offloaded to hardware-accelerated video processors (NVIDIA NVMM or Intel VA-API) via GStreamer.
- RAM Footprint: ~41 MB. Enforced by a strict
max-buffers=1drop-policy in the PipeWire pipeline, preventing memory leaks over long sessions. - Wattage Impact: Negligible. By utilizing hardware endpoints and keeping the Rust daemon strictly asleep during idle frames, battery impact is near zero.
- Adaptive Polling: The engine dynamically adjusts its refresh rate. While playing games or watching videos, it runs at a fluid 60Hz. When you look at static content (like a document or IDE), it intelligently throttles down to 5Hz to conserve power.
- Micro-Optimization: Color perceptual calculations (Oklab) are performed on a drastically downscaled 16x16 pixel matrix, utilizing a pre-computed SRGB Lookup Table (LUT) for zero-latency processing.
- CPU Usage: ~1-5%
- Memory Usage: ~40 MB
- Refresh Rate: Up to 60 Hz
- Adaptive Idle Mode
- Hardware Accelerated (VA-API / NVMM)
- Static desktop: ~1 W
- Active content (video/gaming): ~3-5 W
Results may vary depending on hardware, screen brightness, RGB brightness, and GPU configuration.
-
Hardware-accelerated screen processing
-
Automatic backend selection:
- NVIDIA (NVMM)
- Intel/AMD (VA-API)
- Software fallback
-
Oklab perceptual color processing
-
Smooth real-time RGB synchronization
-
Adaptive refresh logic for lower idle overhead
-
Wayland-native architecture
-
ASUS Aura integration through
asusctl/asusd -
Lightweight background execution
-
Arch Linux AUR package available
- ASUS TUF F15 FX507VV (single-zone RGB)
- ASUS ROG series
- 4-zone RGB keyboards
- Per-key RGB keyboards
Feedback and compatibility reports are highly appreciated.
Aero-Sync currently relies on the ASUS Linux ecosystem and requires:
asusctlasusd- Wayland session
- GStreamer
Compatible or potentially compatible distributions include:
- Arch Linux
- Fedora
- Ubuntu (22.04+)
- Debian-based distributions
- Pop!_OS
- Linux Mint
For non-Arch Linux distributions:
git clone https://github.com/sathwik4444/aerosync.git
cd aerosynccargo build --release./target/release/aero-syncBefore running:
- Ensure
asusctl/asusdis installed - Ensure Wayland is being used
- Ensure GStreamer dependencies are available
aero-syncEnable and start:
systemctl --user enable --now aero-syncStop:
systemctl --user stop aero-syncDisable:
systemctl --user disable aero-syncAero-Sync captures screen colors using Wayland screen capture APIs, processes them using Oklab color conversion, and sends synchronized lighting updates through ASUS Aura interfaces.
The synchronization pipeline dynamically selects the best available acceleration backend to improve responsiveness and reduce CPU overhead.
- Mainly tested on ASUS TUF F15
- Compatibility with all ASUS RGB layouts is not yet fully verified
- Wayland-focused currently
- Requires ASUS Aura support
Feedback, testing, bug reports, and pull requests are welcome.
If you test Aero-Sync on other ASUS TUF/ROG devices, feel free to share:
- compatibility results
- performance metrics
- bugs/issues
- RGB behavior differences
GitHub Issues:
-
GitHub Repository:
-
AUR Package:
-
ASUS Linux:
Distributed under the MIT License.
- ASUS Linux community
- GStreamer
- ASHPD
- Rust ecosystem
- Arch Linux community