Docky controls the Steam Deck's fan and APU power cap (TDP) directly from the Quick Access panel, with reusable profiles you can apply manually, from a task, or automatically from a Mode (e.g. a higher fan curve + more watts when docked).
Requires Decky Loader 3.2.5+ (3.2.6 recommended) on the June 2026 Steam UI.
![]() Fan control — Auto / Curve / Manual, live temp·RPM, editable curve with a live marker |
![]() TDP — manual watts, "keep enforced", apply a profile |
The panel's Fan section (collapsed by default) shows the live temperature and RPM and lets you pick a mode:
- Auto — hand the fan back to SteamOS (its
jupiter-fan-controldaemon). - Curve — a temperature → RPM curve. Edit fan curve… opens the editor: add/remove points, set each point's temperature and RPM with the steppers, and toggle Smooth (linear interpolation between points vs. stepped). The graph draws the curve with a green dashed line at the current temperature.
- Manual — hold a fixed RPM.
Below the modes you can Apply profile (a saved fan preset) or Manage fan profiles… (opens the editor's Fan tab).
How it works: the Deck fan is driven by writing the target RPM to
steamdeck_hwmon's fan1_target. SteamOS's jupiter-fan-control daemon rewrites
that value on its own poll, so while a curve or manual speed is active Docky stops
that daemon and a background loop re-applies your target every couple of seconds
(and re-applies after resume-from-sleep). Switching to Auto — or unloading the
plugin — restarts the daemon so the fan is never left stuck. Targets are clamped
to a safe ceiling (8000 RPM). A target of 0 RPM turns the fan off: Docky writes
10, the value SteamOS itself uses, because a raw 0 hands the fan to the EC's own
curve on current BIOSes and the fan spins up instead.
The panel's TDP section (collapsed by default) shows the current cap and lets you:
- Manual TDP (W) — set a wattage with the stepper and Apply it.
- Apply profile — apply a saved TDP preset.
- Keep enforced — when on, a background loop re-applies your wattage every few seconds so Steam's own per-game TDP slider can't override it. Off by default.
- Manage TDP profiles… — opens the editor's TDP tab.
How it works: the cap is written to amdgpu's power1_cap (clamped to the
device's reported min/max). The stock ceiling is 15 W — going higher requires
an unlocked BIOS, which raises power1_cap_max; Docky reads that max and lets
the slider reach it. AMD-APU only.
Profiles are named presets, built in the editor's Fan and TDP tabs (gear → Fan / TDP):
- A fan profile stores a mode (curve/manual/auto), the manual RPM, and the curve (points + interpolation).
- A TDP profile stores a wattage.
Applying a profile copies it into the active settings and applies it immediately.
You can apply a profile three ways: the panel dropdowns, the fan / tdp
tasks (so a Mode can switch performance on dock/undock), or by
saving the current fan setup as a profile from the live Fan control editor.
The ⏏ Hand control back to SteamOS button at the top of the panel (and the
release_control task) disables all Docky hardware control at once:
fan → Auto and the TDP cap reset to the kernel's stock default, enforcement off. Use it
to fully return to stock behavior.
These map the controls above onto the Tasks → Actions → Modes model — see the task reference:
| type | does |
|---|---|
fan |
apply a fan profile (or auto) |
tdp |
apply a TDP profile, or set inline watts |
release_control |
hand fan + TDP back to SteamOS defaults |

