Ultra-lightweight LCD display driver & controller for ID-COOLING FX & FROZN Temp Display coolers.
Native Linux & Windows • Modern GUI • Interactive TUI • Silent Daemon • USB 1a86:e317
RustCooling is a fast, lightweight, and native alternative to the bloated vendor utility for ID-COOLING FX Series (FX240, FX280, FX360) and FROZN / Temp Display liquid coolers (USB 1a86:e317, product string IDCOOL-C), as well as OEM rebrands (such as Aftershock PC prebuilts).
It communicates directly with the pump cap's USB HID microcontroller to stream CPU temperature and usage without running background Chromium, Electron, or heavy runtimes. Compatible alongside liquidctl and CoolerControl setups.
- Two Dedicated Editions:
- GUI Edition (
RustCooling): Compact Slint interface with system tray minimization and udev wizard. - CLI / TUI Edition (
rustcooling-cli): Standalone terminal dashboard with live graphs and a silent headless daemon.
- GUI Edition (
- Measured Resource Usage (Real Hardware):
- Headless Daemon (
rustcooling-cli --daemon): 4.2 MB RSS (measured on live hardware during continuous USB HID streaming). - Interactive TUI Dashboard (
rustcooling-cli --tui): ~5 MB RSS. - GUI on Windows: ~12–14 MB RSS.
- GUI on Linux (Mesa / Tray): ~20–25 MB RSS.
- Headless Daemon (
- Smooth Display: Configurable exponential moving average (EMA) and deadband hysteresis filter to eliminate 7-segment digit flicker.
- Native Linux Telemetry: Scans
/sys/class/hwmonand/proc/statwith cached sensor paths (no Wine or kernel drivers required). - Direct Windows Telemetry: High-precision MSR readings via an embedded ring-0 telemetry driver (with safe ACPI fallback).
- Status Bar Integration: Quick one-shot query (
rustcooling-cli --status) for Waybar, Polybar, or shell scripts. - Multi-Language: English, Russian, Simplified Chinese, German, and French.
| Feature | Official Vendor Utility | RustCooling (CLI / Daemon) | RustCooling (GUI) |
|---|---|---|---|
| Tech Stack | Electron / Node.js + C++ | Pure Rust (Ratatui / Daemon) | Pure Rust (Slint) |
| Headless Daemon RAM | ❌ None | 4.2 MB RSS (live measured) | — |
| TUI Dashboard RAM | ❌ None | ~5 MB RSS | — |
| GUI in Tray (Windows) | ~200 – 350 MB | — | ~12 – 14 MB RSS |
| GUI in Tray (Linux) | ❌ None | — | ~20 – 25 MB RSS (Mesa) |
| Hysteresis / Smoothing | ❌ None (jittery) | ✔ Configurable (0–5°C) | ✔ Configurable (0–5°C) |
| Linux Support | ❌ None | ✔ Native (hwmon, sysfs) |
✔ Native (hwmon, sysfs) |
| Startup Overhead | 3 – 5 sec | < 15 ms | < 30 ms |
| Idle CPU Usage | ~1 – 3% | 0.0% | 0.0% |
Tip
Linux Tip: If you want zero background overhead for 24/7 cooling display operation without loading OpenGL/GPU driver libraries into memory, run rustcooling-cli --daemon (or enable the user systemd service). It consumes only 4.2 MB RAM.
RustCooling provides two dedicated binaries tailored for different environments:
# Launch graphical interface:
RustCooling
# Launch directly minimized to system tray:
RustCooling --minimized# Launch interactive terminal UI (TUI dashboard):
rustcooling-cli # or: rustcooling-cli --tui / -t
# Run as background headless daemon (~4 MB RAM):
rustcooling-cli --daemon # or: rustcooling-cli -d
# One-shot status query (for Waybar, Polybar, or shell scripts):
rustcooling-cli --status # or: rustcooling-cli -s
# Stop running daemon and power off pump display:
rustcooling-cli --stopPre-built binaries for each release are available on the Releases page:
| Platform | GUI Edition | TUI / CLI Edition |
|---|---|---|
| Linux (AppImage) | RustCooling-GUI-1.0.0.AppImage |
RustCooling-TUI-1.0.0.AppImage |
| Ubuntu / Debian | RustCooling-GUI-1.0.0.deb |
RustCooling-TUI-1.0.0.deb |
| Fedora / RHEL | RustCooling-GUI-1.0.0.rpm |
RustCooling-TUI-1.0.0.rpm |
| Arch Linux | PKGBUILD in packaging/arch |
PKGBUILD in packaging/arch |
| Windows 10 / 11 | RustCooling-1.0.0.exe |
— |
To access the USB display without root permissions, install the udev rule:
echo 'SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="e317", MODE="0666", TAG+="uaccess"' | sudo tee /etc/udev/rules.d/99-idcooling.rules
sudo udevadm control --reload-rules && sudo udevadm trigger(Pre-packaged .deb, .rpm, and Arch packages install and activate this rule automatically).
Requires a Rust 1.75+ toolchain:
git clone https://github.com/Qyzom/RustCooling.git
cd RustCooling
cargo build --releaseOutput binaries in target/release/:
- GUI Edition:
RustCooling(Windows:RustCooling.exe) - CLI / TUI Edition:
rustcooling-cli
Distributed under the MIT License.
Embedded font and driver licenses are documented in assets/.