explaingit

swmarakis/thinkpad-fan-control

19PythonAudience · generalComplexity · 2/5LicenseSetup · easy

TLDR

ThinkPad Fan Control gives Linux laptop owners manual control over their cooling fan through a desktop app and background service. Set custom temperature curves, fixed speeds, or return control to the BIOS, with built-in safety limits so you never accidentally overheat your machine.

Mindmap

mindmap
  root((repo))
    Fan Modes
      Automatic curve
      Manual fixed speed
      BIOS firmware mode
    Safety Features
      Max temp override
      Firmware fallback
      Value validation
    Components
      Background daemon
      Desktop control panel
      Config file bridge
    Installation
      Debian deb package
      Build from source
    Compatibility
      Ubuntu Debian Mint
      Wayland GNOME KDE
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Keep your ThinkPad laptop quieter during light tasks by setting a gentle custom fan curve

USE CASE 2

Prevent thermal throttling during heavy workloads by ramping the fan up earlier than the default firmware does

USE CASE 3

Monitor your CPU temperature and fan speed in real time from a desktop panel

USE CASE 4

Quickly hand fan control back to the BIOS when you no longer need custom settings

Tech stack

PythonLinuxWaylandGNOMEKDEsystemdDebian package

Getting it running

Difficulty · easy Time to first run · 30min

Single-command .deb install on Ubuntu, Debian, Mint, and Pop!_OS. Building from source needs git clone plus running an install script. Daemon requires root, GUI runs as normal user.

MIT license, free to use, modify, and share for any purpose, including commercial use. Just keep the copyright notice.

In plain English

ThinkPad Fan Control is a Linux application for Lenovo ThinkPad laptop owners who want more control over their cooling fan than the operating system normally provides. On Windows, a tool called TPFanControl is commonly used for this purpose, this project fills that gap for Linux users, including those running the Wayland display system used on modern GNOME and KDE desktops. The application has two parts. A background service called thinkpad-fand runs with administrator privileges and is the only part that directly adjusts the fan speed. A desktop control panel called thinkpad-fan-gui runs as your normal user account and shows you the current CPU temperature and fan speed, lets you switch between modes, and lets you draw a custom temperature curve. The two parts communicate by writing to a configuration file, which means the graphical panel never needs root access. There are three operating modes. Automatic mode follows a curve you set yourself: as the CPU gets hotter, the fan speeds up according to points you drag on an interactive graph. Manual mode holds the fan at a fixed level you choose. BIOS mode hands control back to the laptop's firmware, the same as if you had not installed the software at all. Several safety features are built in and cannot be disabled. Above a configurable temperature limit (defaulting to 87 degrees Celsius, hard capped at 90), the fan is forced to maximum regardless of what mode you selected. If the background service ever crashes, the firmware automatically takes over cooling within about 15 seconds. The service also validates and clamps every value it reads from the config file to prevent bad settings from harming the hardware. Installation on Ubuntu, Debian, Mint, and Pop!_OS is a single command using a provided .deb package. Building from source requires cloning the repository and running an install script. The project is MIT licensed.

Copy-paste prompts

Prompt 1
I have thinkpad-fan-control installed on my Linux ThinkPad. Help me design a temperature-to-fan-speed curve that keeps the fan quiet below 60°C but ramps up aggressively above 75°C.
Prompt 2
Using the thinkpad-fand daemon config file format, write me a safe configuration that sets manual fan speed to level 4 and raises it to maximum above 85°C.
Prompt 3
I want to run thinkpad-fand as a systemd service that starts on boot. Write the systemd unit file and explain each line in plain English.
Prompt 4
Explain what happens in thinkpad-fan-control if the daemon crashes while I'm in automatic mode, will my laptop overheat?
Prompt 5
Walk me through installing thinkpad-fan-control from source on Ubuntu 24.04, step by step, assuming I have never used a terminal before.
Open on GitHub → Explain another repo

← swmarakis on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.