thinkfan: A simple fan control program

Works with any linux hwmon driver, especially with thinkpad_acpi. It is designed to eat as little CPU power as possible. The development was inspired by the excellent work people have done on

thinkfan does NOT work on Windows. It's a Linux only program.

Debian has it in the repositories, so if you're using Debian or Ubuntu, you should install it from your regular package manager.


0.8 is out, but I named it alpha since there are no unit tests and I really can't test every possible scenario. We do need some more testing since there have been significant changes to functionality:

Complex Temperature Limits

Now you can specify temperature limits for each individual sensor. This means that now all temperatures are matched against their individual limits with each cycle. If all temperatures drop below their current limits, thinkfan switches to the previous fan level, and if at least one temperature exceeds its limit, thinkfan switches to the next level. This is the recommended mode of operation now (for details, see the README file). Of course, old configuration files will continue to work as they did.

Arbitrary Strings as Fan Levels

If you put the fan level in double quotes, you can use any string as a fan level. This only makes sense if you have a thinkpad and you want to use "level disengaged" or "level auto". For PWM files in /sys/class/hwmon there's really nothing fancy to do with this, but with dangerous mode you can try anything stupid ;-)

Old News:

Version 0.7 has just been released, which includes an important new feature:

Correction Values

Temperatures that are perfectly fine for your CPU may already be dangerous for most hard disks.

For simplicity's sake, thinkfan uses only the highest temperature found in the system, but that'll most likely never be your harddisk. Thus you can now specify a correction value for any sensor. This value is added to the actual temperature and can be used to give that sensor a greater chance of being considered in the fan speed decision. I know this is quite unintuitive, but it's the least intrusive way of handling this (for now). In a later release, I might extend the config syntax to allow for sensor-specific temperature limits.

So please do check out the updated README and example configs, and modify your config to save your harddisk from premature death. :-/

Config Syntax

Thinkfan now has a shiny new (as in cheesy, but better than scanf) parser for the config files. It was actually already used in 0.6.5. However in this release it was changed to be much tighter on the config syntax. In all previous releases, it just skipped anything it didn't reconize. You could thus have arbitrary garbage in your config file and thinkfan would just ignore it. These times are over. Thinkfan now rejects anything that isn't a proper statement or a comment. You can get the old behaviour back by using the -D (DANGEROUS) option.

If you want to install it manually, go ahead and download the source code.

Valid HTML
4.01 Transitional