RedditPP Mascot

RedditPP

r/LegionGo • … • u/Rayekk

Legion Go 2 Companion - TDP, custom fan curves and hardware controls in one Decky plugin [SteamOS Only]

I've previously shared my LeGoTDP and LeGo2BrightnessFix plugins here on the subreddit. A while ago, I combined all my Legion Go 2 plugins into **Legion Go 2 Companion**, bringing the hardware controls together in one Decky plugin.

Yesterday and today, I released two major updates, **2.0 and 2.1**, with plenty of fixes and new features, including custom fan curves through the EC. With those updates out, I wanted to share this project here and show what it now offers for Legion Go 2 in one, complete plugin.

# What's included

* **TDP & CPU** \- Silent, Balanced, Performance and Full Power presets, custom power limits, CPU Boost and EPP controls. Per-game profiles can have separate battery and charging settings. * **Fan Control** \- custom curves through the EC, live temperature and measured fan speed, and a full-screen curve editor. * **Vibration** \- handle vibration strength, touchpad haptics and per-game profiles. * **RGB Lighting** \- joystick-ring colour, effects, brightness and speed, plus power-button lighting on supported firmware. * **Button Remapper** \- separate actions for the left controller's Desktop and Page buttons. * **Gyro & Touchpad** \- choose which controller supplies motion input and check whether its readings reach Steam. Games still need the appropriate Steam Input configuration. * **Battery** \- an approximately 80% charging limit and battery readings for the console and both controllers. * **OLED Display** \- brightness/display fixes for older SteamOS builds and corrected HDR metadata. * **WiFi** \- higher-band preferences with iwd, or a one-time 5/6 GHz connection attempt with WPA, depending on your system's backend.

Modules can be enabled or disabled individually, so you can keep just the controls you need.

# Fan Control

You edit the curve directly on the graph. Focus it and press **A** to start editing, use **LB/RB** to select a point, then the **D-pad** to change temperature and speed. **B** leaves edit mode. Touch dragging also works, and the full-screen editor gives you more room.

There are eight points across **0–100°C**. The last is fixed at **100°C/full speed**, and the remaining points cannot create a falling speed curve. **Silent, Balanced and Aggressive** are starting templates you can edit and save; Balanced is the default. Speed can be displayed in RPM or percent, with live measured speed shown on the graph.

The curve is **global by default**, regardless of the current TDP mode. Optional assignments let you use different curves for Companion's own TDP presets, including Custom. Those assignments do **not** refer to the presets in SteamOS QAM Performance.

Custom control starts off. Turning it off returns the fan to firmware automatic control. It also has independent watchdog recovery, and requires explicit re-enabling after startup, reload or sleep.

# Compatibility and installation

This is for **Legion Go 2 running SteamOS with Decky Loader**. The main tested model is **8ASP2 / 83N0**. Fan Control currently requires **RRCN16WW BIOS / EC 1.16**; other firmware variants remain unavailable until validated. Support is checked per module, so don't assume every feature works on every Go 2 variant.

If you saw my recent post about SteamOS 3.10's native brightness fix: Companion detects the native display profile and hands brightness control back to the system. HDR metadata correction remains separate.

You can install it through my custom Decky store:

**Decky Settings → General → Store channel → Custom**, then enter:

https://decky.rayek.workers.dev

Alternatively, download the plugin ZIP from [release 2.1.0](https://github.com/Rayekkk/LegionGo2Companion/releases/tag/2.1.0) and use **Decky Settings → Developer → Install Plugin from ZIP**.

**If you're using LeGoTDP, LeGo Vibe Control or LeGo2BrightnessFix, uninstall them first, but keep their saved Decky settings.** Companion imports missing settings from them. Restart Decky after removing the old plugins. Use only one EC fan controller at a time.

# Disclaimer, as usual

I'm not a programmer - this is an AI-assisted project built around the things I want working on my own handheld. I've tested it on my Go 2, but there may be issues I haven't hit. Feedback, bug reports and suggestions are welcome; please include your model, BIOS and SteamOS version if something doesn't work.

**Source, screenshots and full setup details:** [GitHub](https://github.com/Rayekkk/LegionGo2Companion)

— 0