Fan control for the Acer Predator Helios 18 (PH18-71) on Linux — a thermal watchdog daemon plus a GTK4 control panel. No out-of-tree kernel module, no EC register pokes: everything goes through Acer's own WMI firmware interface.
⚠️ Use at your own risk. This talks directly to laptop firmware. It is developed and tested on a single machine (PH18-71, Ubuntu 26.04). Other PredatorSense-v4 era Predators may work, but are untested.
On the PH18-71 under Linux, the embedded controller does not ramp the fans
with temperature. Under a full CPU load the package hits 100 °C and
throttles while the fans idle along at ~1900 RPM. Switching
platform_profile / power profiles makes no difference, and the stock
acer_wmi driver only exposes fan monitoring, not control.
-
predator-fan-daemon— a small systemd service that watches CPU temperature and drives the fans through Acer's WMI gaming interface:Mode Behavior Smart (default) Cool → fans left to firmware. ≥ 85 °C → fixed boost (~4000 RPM). ≥ 95 °C → full turbo (~6300 RPM). Steps back down with hysteresis. Manual Hold any fixed speed (20–100 %). The ≥ 95 °C turbo failsafe stays armed. Turbo Both fans at maximum, permanently. -
predator-fan-gui— a GTK4 panel with live temperature/RPM readout, one-click mode buttons, a manual speed slider, and spinners for the smart mode thresholds. Runs as a regular user; talks to the daemon over a FIFO. -
Settings persist in
/etc/predator-fan.confand survive reboots. Stopping the daemon always hands the fans back to the firmware.
git clone https://github.com/teohumble1/predator-fan-control.git
cd predator-fan-control
sudo ./install.shThe installer pulls acpi-call-dkms, GTK4 Python bindings and lm-sensors,
installs the daemon + GUI, and enables the service. Launch Predator Fan
Control from your app grid, or run predator-fan-gui.
To remove everything: sudo ./uninstall.sh.
The GUI is optional — the daemon accepts plain-text commands on a FIFO:
echo 'mode smart' > /run/predator-fan.cmd # automatic (default)
echo 'manual 65' > /run/predator-fan.cmd # hold 65 % fan speed
echo 'mode turbo' > /run/predator-fan.cmd # everything to max
echo 'set BOOST_ON 80' > /run/predator-fan.cmd # tune a thresholdLive state (mode, temperature, RPM, thresholds) is published to
/run/predator-fan.status, and events are logged to the journal:
journalctl -t predator-fan -fAcer's PredatorSense features are exposed via ACPI-WMI. The daemon evaluates
the gaming WMI method through the acpi_call kernel module to switch the
fan behavior (auto / manual / max) and to set per-fan speed percentages —
the same interface PredatorSense uses on Windows, and the same one the
kernel's acer_wmi driver uses for the models it already supports. The
stock driver (loaded with predator_v4=1) is kept for fan RPM and
temperature monitoring.
Compared to the popular kernel-module approach
(Linuwu-Sense and friends),
this stays entirely in userspace: nothing replaces acer_wmi, and kernel
updates can't break the build.
| Model | Status |
|---|---|
| Predator Helios 18 (PH18-71) | ✅ developed & tested here |
| Other PredatorSense-v4 models (PH16-71/72, PHN16-7x, PH18-72, …) | ❓ untested — likely similar, try at your own risk |
MIT — see LICENSE.