Skip to main content

ThinkIndicator

Has automatic fan control of your ThinkPad made your knees flame and bodily fluids boil?

Maybe you're fine with your laptop running hot but you want to quickly switch it to full fan speed, get to bed with it and get no burns?

Look no further!

This little indicator (taskbar widget) will let you change the fan speed with just a scroll over it.

Requirements

  • Python>3.6
  • Linux with acpi_thinkpad module (if you don't know what it is, you have it)
  • pygobject
  • libappindicator
  • Root access (if you know how to bypass that, let me know)
  • Obviously, an IBM/Lenovo ThinkPad

Enabling fan control

Check if you have /proc/acpi/ibm/fan file in your system. If not, try loading acpi_thinkpad module with command modprobe acpi_thinkpad.

The next step is enabling manual control over the fans. Create file /etc/modprobe.d/50-thinkfan.conf with content options thinkpad_acpi fan_control=1.

Reboot and you're all set.

pygobject

An appropriate package is called python3-gobject in SUSE and Fedora, python3-gi in Debian and Ubuntu, python-gobject in Arch btw.

libappindicator

An appropriate package is called libappindicator3-1 in most distros, libappindicator-gtk3 in Arch.

Installation & Usage

ThinkIndicator can be installed from PyPI with command pip install thinkindicator. You can then run it with command thinkindicator.

You can also download it from git:

git clone https://github.com/przemub/thinkindicator
cd thinkindicator
./start.sh

Start ThinkIndicator using your preferred method. You should see a number or letter signifying the current fan status in your taskbar. Click on it to change the mode. If you are in a manual mode (signified by a number) then you can scroll on the indicator to change the speed level.

If shit hits the fan (haha) let me know via the Issues tab.

Disclaimer

THIS SOFTWARE IS DISTRIBUTED UNDER NO RESPONSIBILITY ACCEPTED FOR THE RESULTS OF ITS USAGE, INCLUDING BUT NOT LIMITED TO FRYING YOUR LAPTOP, TESTICLES OR OVARIES.

Release files for thinkindicator 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for thinkindicator 0.1.2
File Size Uploaded
thinkindicator-0.1.2.tar.gz 14.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for thinkindicator 0.1.2
File Interpreter ABI Platform
thinkindicator-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 31.9 kB

Release files / thinkindicator-0.1.2.tar.gz

Download URL thinkindicator-0.1.2.tar.gz
Size 14.5 kB
Tags Source
SHA-256 checksum
How to use checksums
0aaf46e27a8be3b79a53e1dc2ac1ca8933a04f4b01fb0a5d7c0e104fbe17164f
BLAKE2b-256 checksum
How to use checksums
3732133a81162d6b6c2e54e9ee0cae6b59e90f5d44e5f400abadd7b1b4195289
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/40.5.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.12

Release files / thinkindicator-0.1.2-py3-none-any.whl

Download URL thinkindicator-0.1.2-py3-none-any.whl
Size 17.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5546f25fc94c2f19705576844ac0882c0ae0153cf88b89541401a024ad8a0a7d
BLAKE2b-256 checksum
How to use checksums
c8f5726d88aee6627e10bd86ffd878011d91e26a9e8ff597fb5b0363cff90b4a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/40.5.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.12

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page