Thermalright LCD Control
## Overview
Thermalright LCD Control provides an easy-to-use interface for managing your Thermalright LCD display on Linux systems.
Since version 2.0, the application is a single desktop app: the GUI embeds the device controller, so there is no
separate root service anymore. Device access is granted through udev rules, and the app can start automatically with
your session (minimized to the system tray).
I performed reverse engineering on the Thermalright Windows application to understand its internal mechanisms.
During my analysis, I identified four different USB VID:PID combinations handled by the Windows application, all sharing
the same interaction logic.
Since I have access only to the Frozen Warframe 420 BLACK ARGB, my testing was limited exclusively to this specific
device.
Also, this application implements reading metrics from Amd, Nvidia, and Intel GPU. My testing was limited to Nvidia GPU.
Feel free to contribute to this project and let me know if the application is working with other devices.
For backgrounds, i have included all media formats supported by the Windows application
and added the option to select a collection of images to cycle through on the display.
## Features
- 🖥️ **User-friendly GUI** - Modern native Qt interface with light/dark theme
- ⚙️ **Single-app architecture** - The device controller runs inside the app; no root service needed (udev rules grant
device access)
- 🔌 **Multi-device support** - Several displays can be connected and driven at the same time, each with its own
configuration; a per-device tab bar lets you switch between them, and edits are saved automatically before switching
- 🔎 **Automatic device detection** - Connected devices are detected on the fly: plug or unplug a display and it appears
or disappears in the GUI without restarting the app (its configuration is kept for when it comes back)
- ➕ **Add devices without code** - Register a new device from the GUI (or a small YAML file) using the generic,
data-driven driver: pick transport, encoding and header format — no Python required. Known devices pre-fill the form
automatically
- ⚡ **Fast device switching** - Cached thumbnails and per-device render engines make switching between devices and
themes near-instant
- 🎨 **Theme support** - Customizable display themes with bundled presets, per-resolution backgrounds and foregrounds
(the matching foreground is auto-selected for your resolution)
- 🖼️ **Rich media backgrounds** - Images, animated GIFs and videos; imported media is automatically resized to your
screen resolution, and bundled video backgrounds are downloaded on demand
- 🧩 **Widget editor** - Drag-and-drop metric, clock, date and text widgets with per-widget font, size, bold/italic,
color and precision (multi-selection supported)
- 🔄 **Display rotation** - 0°/90°/180°/270° orientation with rotation-aware backgrounds and foregrounds
- 📊 **Hardware & OS metrics** - all displayable as widgets, grouped by device:
- **CPU**: temperature, usage, frequency
- **GPU**: temperature, usage, frequency (AMD, Nvidia and Intel)
- **Memory**: RAM usage, RAM used/available (GB), swap usage
- **Disk**: filesystem usage, read/write throughput (MB/s)
- **Network**: download/upload throughput (MB/s)
- **System**: uptime, load average, process count
- 🔤 **Font management** - Use any installed system font (plus bundled fallbacks) in your themes
- 💡 **RGB LED controller support** - Drives Thermalright digital LED coolers (the `0416:8001` controller),
auto-detected over USB with the hardware layout identified via the device handshake. A dedicated, kind-aware control
panel provides:
- global colour (colour picker, RGB, brightness, presets) and On/Off
- six animation modes: static, breathing, colourful, rainbow, temperature-linked, load-linked
- per-zone colour/brightness/on-off for multi-zone models (PA120, LF10), with an optional zone-sync carousel
- CPU/GPU sensor linkage and a diagnostic test mode
- a **live preview that renders the real per-model layout** — including the actual digit/clock readout for the
digital segment displays (temperature, load, memory/disk stats, clock)
- 12 cooler layouts supported: AX120, PA120, AK120, LC1, LF8, LF10, LF11, LF12, LF13, LF15, CZ1, LC2
- 📋 **System integration** - Tray icon, session autostart (starts minimized), desktop notifications; rendering pauses
while the window is hidden to save CPU
| Name | Changed |
|---|
Comments 0