Garage-lab console for Lenovo Legion — GTK4/libadwaita · Rust · Daemon · KDE widget
Unofficial · Community · Not affiliated with Lenovo · Made in Europe for everyone
Install · Usage · Hardware & HID · Troubleshooting · Changelog · Report an issue
View the officially tested laptops & functionality chart →
Experimental: community-developed, no warranty. Hardware writes can affect system state — use with a recovery plan. Screenshots below are captured headless on an isolated
Xvfb :99 + openboxsession (GDK_BACKEND=x11,GSK_RENDERER=cairo) — your real desktop is never obscured.

Home · live chips · Fan overview · Battery · Custom PPT — 1060×680, dark libadwaita, captured offscreen
Every image is a real 1060×680 window rendered headless (
Xvfb 1400×900 + openbox,LEGION_PAGE=…,xwd→png). No compositor grab of your live session — the session stays untouched. Click any thumbnail for full resolution.
How screenshots are taken without obscuring your workflow
# 1. Isolate — virtual display, no grab of your real Wayland session
Xvfb :99 -screen 0 1400x900x24 -ac &
DISPLAY=:99 openbox --sm-disable &
# 2. Run each page headless, with a private window
DISPLAY=:99 WAYLAND_DISPLAY= GDK_BACKEND=x11 GSK_RENDERER=cairo \
LEGION_PAGE=overview legion-settings &
# 3. Capture the 1060×680 CSD window directly
WIN=$(DISPLAY=:99 xdotool search --onlyvisible --name "Legion Control")
DISPLAY=:99 xwd -id $WIN -out page.xwd
magick page.xwd page.png
# 4. Real session is untouched — the hidden tray instance is
# briefly replaced and then restarted automaticallyAll 17 images in docs/assets/screenshots/ are produced this way. Run scripts/capture-screenshots.sh to regenerate.
| ▸ Observe — Home chips cross-fade on 2s polls, thermal governor 70–98°C, per-fan cards with reset | ▸ Tune — Curve Optimizer -30..0 with live SMT/boost toggles and 5-min stability test | ▸ Light — Spectrum 048d:c197: Keyboard / Front / Rear / Logo / More + per-key painter |
| ▸ Endure — Battery health, 60/80/100 % limiter, charge_types vs conservation_mode reconciliation | ▸ Repair — Fix hub: Speakers (amp), RGB panic (HID soft → USB reset → hid-generic rebind + permanent udev), Logs | ▸ Persist — Profiles, autostart, ~/.config/legion-control/settings.json, optional Plasma 6 widget |
- Monitor CPU, GPU, battery, fans, and hwmon telemetry — chips on top, details below, hover tips,
--hiddentray autostart. - Control profiles, fan targets, CPU boost, SMT, charge limits, and CPU Tuning — thermal throttle + Curve Optimizer undervolt + stability test on one tab.
- Configure Gen 10 Spectrum RGB zones, effects, brightness, logo, and per-key colors — 5 tabs + painter window.
- Save profiles, automate with
legion-cli, optional Plasma 6 widget — polling vialegion-poll.sh.
Recommended — the AppImage. One file, no dependencies, works on every x86_64 Linux distribution (Ubuntu, Fedora, Arch/CachyOS, openSUSE, Debian, …). Download it from the latest release, make it executable, and run:
chmod +x legion-control-0.1.1-x86_64.AppImage
./legion-control-0.1.1-x86_64.AppImageThe first-launch walkthrough can enable the privileged daemon (one PolicyKit prompt), set up start-on-boot, and install the AMD undervolt backend for you — see Installation.
Alternative install methods
The source installer supports Ubuntu 24.04+, Fedora 40+, Arch, openSUSE Tumbleweed. GUI needs Rust 1.87+, GTK 4.14+, libadwaita 1.5+, libudev, pkg-config, C toolchain.
git clone https://github.com/encomjp/Lenovo-Legion-Control.git
cd lenovo-legion-tool
./install.sh
# variants: ./install.sh -y | --user | --widget | --help
# do not mix native package + source installer — see docs/INSTALLATION.mdNative .deb / .rpm / Arch packages are built via ./packaging/build-all.sh into packaging/out/.
After installation:
systemctl status legion-control
legion-cli status
legion-cli infoGUI, CLI, and widget talk to legion-daemon for privileged ops. Daemon merges sysfs, hwmon, battery, NVIDIA, HID; RGB uses direct HID when possible. Support varies by model/firmware/kernel.
Open as PNG · View SVG · Read Architecture Guide
One anonymized JSON per minute — model/type/BIOS/CPU/GPU/EC, distro+kernel, sensors, fans, battery health, thermal/CO, settings digest, sanitized log tail, self-check — over HTTPS to private legion-telemetry. On by default; opt-out in Setup → Alpha diagnostics or first launch. Never: hostname, username, serials, MAC/IP. Self-hosters can set LEGION_TELEMETRY_URL + LEGION_TELEMETRY_KEY.
View the officially tested laptops and functionality chart →
The following models are officially supported/tested by this project. Support is model-, SKU-, firmware-, and kernel-dependent; an “officially tested” entry does not make every configuration identical.
| Laptop | Machine type / firmware | Evidence and tested scope |
|---|---|---|
| Lenovo Legion Pro 7 16AFR10H | 83RU · SMCN · Ryzen 9 9955HX3D |
Owner validation; Gen 10 Spectrum RGB 048d:c197, including the hero workflow. |
| Legion Y7000P IRX9 / Legion 5 16IRX9 | 83DG · Intel Core i7-14700HX |
Officially supported/tested via fleet telemetry and user Konnor; observed functionality is tied to the reported configuration. |
| IdeaPad Gaming 3 15ACH6 | 82K2 / 82MJ · H3CN |
Officially supported/tested via fleet telemetry; telemetry is degraded, but the model was validated in 0.2.8. |
All other models in the full model-capabilities.json catalog are untested/unsupported atm. Do not infer support from a family name or PSREF entry. To help validate another model, enable Setup → Alpha diagnostics, let it collect an anonymized report, then submit the model type, BIOS, version, and sanitized telemetry through a new issue. Never include serial numbers, hostnames, usernames, MAC/IP addresses, or other personal data.
Before expecting Spectrum support, inspect the controller:
lsusb | grep 048dSee Hardware and HID for Linux interfaces, HID details, support boundaries, and debugging guidance.
- Installation — prereqs, packages, installer, widget, upgrades, removal
- Usage — GUI & CLI, profiles, cooling, lighting, battery, diagnostics, logs, safety
- Architecture — components, IPC, data flow, persistence, permissions, deployment
- Hardware and HID — Linux interfaces, HID, support boundaries, debugging
- KDE Plasma widget — install, controls, config, validation
- Troubleshooting — evidence-first fixes for install, daemon, HID, sensors, fans, dGPU, battery, widget
- Development — toolchain, checks, packaging, hardware tests, contributions
- Changelog — rolling log and per-release notes
Repository: https://github.com/encomjp/Lenovo-Legion-Control
Licensed under GPL-2.0-only. Spectrum notes build on community reverse-engineering: legion-spectrum-control and LenovoLegionToolkit.
Garage Lab · CachyOS · KWin Wayland · Rust + GTK4 · Made for Legion, made in Europe.















