GPU utilization reactive RGB lighting via OpenRGB. Maps NVIDIA GPU load to a smooth color gradient (green → yellow → red) across all OpenRGB devices. Designed for headless Proxmox/Debian hosts.
- NVIDIA GPU with
nvidia-smi - OpenRGB installed (
openrgbavailable on PATH) - Access to RGB controllers (i2c-dev and related kernel modules loaded). No OpenRGB server or daemon is needed: each CLI call drives the hardware directly. The script verifies at startup that openrgb can enumerate devices, retrying 3 times spaced 15s apart before exiting.
- A transient
nvidia-smifailure (driver reload, GPU reset) keeps the last LED state and retries after the idle poll interval. - All devices are updated with a single OpenRGB client call. Concurrent openrgb processes segfault from colliding on direct hardware access, so updates stay serialized. A failed update is retried on the next poll.
Do not install OpenRGB 1.0 or 1.0rc3.1. Both contain a regression that
silently breaks --color writes to ENE SMBus devices (ENE DRAM DIMMs
and ASUS Aura GPUs): mode commands still apply, but color updates fail
and the device goes dark, and openrgb still exits 0, so the script
cannot detect the failure. 1.0rc3 is the last known-good release; the
install commands below pin it.
# Install OpenRGB 1.0rc3 and pin it (see version warning above)
mkdir openrgb
cd openrgb/
wget https://codeberg.org/OpenRGB/OpenRGB/releases/download/release_candidate_1.0rc3/openrgb_1.0rc3_amd64_trixie_6fbcf62.deb
apt install --allow-downgrades ./openrgb_1.0rc3_amd64_trixie_6fbcf62.deb
apt-mark hold openrgb
# Deploy script
sudo cp gpu-rgb.sh /root/gpu-rgb.sh
sudo chmod +x /root/gpu-rgb.sh
# Install and start service
sudo cp gpu-rgb.service /etc/systemd/system/gpu-rgb.service
sudo systemctl daemon-reload
sudo systemctl enable --now gpu-rgbsystemctl status gpu-rgb # check status
systemctl stop gpu-rgb # stop
systemctl start gpu-rgb # start
journalctl -u gpu-rgb -f # follow logsnohup /root/gpu-rgb.sh & # run in background
fg # bring to foreground
pkill -f gpu-rgb.sh # stop