Skip to the content.

ThinkPad Fan Control

License: MIT Release Platform

A modern, Linux-native fan control GUI for ThinkPads — the kind of thing Windows users reach for TPFanControl to get, but built for Linux and Wayland.

Automatic fan-speed control for ThinkPad laptops on Linux, with a desktop GUI. It gives you what the firmware / GNOME power profiles don’t: automatic temperature-based control across all 8 fan levels, an editable curve you can drag on a graph, and precise manual override. Clean and Wayland-friendly, it works across GNOME, KDE Plasma, and other major desktop environments.

Works on ThinkPads whose fan is controlled by the thinkpad_acpi driver (/proc/acpi/ibm/fan) — i.e. the large majority of ThinkPads on Linux. Developed and tested on a ThinkPad L490 (Ubuntu 24.04).

ThinkPad Fan Control

How it works

The two communicate only through a JSON file (/etc/thinkpad-fan/config.json), so the GUI never needs root — clean and Wayland-friendly. CPU temperature is read from coretemp (Intel), k10temp (AMD), or the ThinkPad sensor, so it works on both Intel and AMD ThinkPads.

Compatibility

Works on any ThinkPad whose fan is driven by thinkpad_acpi. Confirmed reports below — please add yours in issue #1.

Model Distro / Desktop /proc/acpi/ibm/fan works? Lowest level that keeps spinning Notes
L490 Ubuntu 24.04 / GNOME (Wayland) Yes ≈4 (1–3 stall; re-kick helps) Developed & tested here

Modes

Mode Behaviour
Automatic Picks fan level 0–7 from CPU temperature using an editable curve, with hysteresis so it doesn’t oscillate. Edit it on an interactive graph (Y = temperature, X = fan speed %) by dragging points, or with the numeric boxes / presets — they stay in sync.
Manual Holds a fixed level you choose (slider 0–7, plus Full speed / Disengaged).
BIOS Hands control back to the firmware (level auto).

Features

Safety (built in, cannot be disabled)

Install

Option A — Debian package (Ubuntu / Debian / Mint / Pop!_OS)

Download thinkpad-fan-control_1.0.0_all.deb from the Releases page, then:

sudo apt install ./thinkpad-fan-control_1.0.0_all.deb

Option B — from source

git clone https://github.com/Swmarakis/thinkpad-fan-control.git
cd thinkpad-fan-control
sudo ./install.sh

Either way, the installer enables fan control (thinkpad_acpi fan_control=1), starts the background service, and adds a “ThinkPad Fan Control” launcher. If /proc/acpi/ibm/fan was just made writable, a reboot may be needed once.

Useful commands

systemctl status thinkpad-fand      # service state
journalctl -u thinkpad-fand -f      # live log of the levels it sets
sudo thinkpad-fand --dry-run        # print decisions without touching the fan

Uninstall

sudo apt remove thinkpad-fan-control     # if installed via .deb
# or, if installed from source:
sudo ./uninstall.sh

Notes

Repository layout

src/        the daemon (thinkpad-fand) and GUI (thinkpad-fan-gui)
data/       files the installer ships: systemd unit, .desktop, default config, icons
packaging/  build-deb.sh (creates the release .deb) and the icon generator
install.sh  / uninstall.sh   install from source
docs/       screenshot

To produce the .deb for a release: packaging/build-deb.sh (output: build/thinkpad-fan-control_<ver>_all.deb).

License

MIT — see LICENSE.