On July 26, 2026, Auto-cpufreq 3.1 landed as the most substantial usability upgrade for the open-source Linux laptop power optimizer in months. The release adds a real-time system monitoring mode directly inside the GTK graphical interface—previously reserved for the command line—alongside Bluetooth startup controls, broader Lenovo battery conservation support, and a new configuration option that lets users temporarily override automated platform profiles via hardware hotkeys.
These headline features sit atop a pile of bug fixes that quietly correct some of the most frustrating edge cases in Linux power management: CPU frequency caps that lagged behind turbo changes, wrong EPP/EPB fallback reporting, broken calculations on machines with nonstandard power interfaces, and an unnecessary platform-profile write that could keep an NVIDIA discrete GPU awake and draining battery.
What actually changed? A practical inventory
GUI monitoring mode—see what your CPU is really doing
The most visible addition is the monitoring mode in the GTK graphical application. Where earlier releases required users to open a terminal and run auto-cpufreq --monitor to see per-core frequency, utilization, and temperature, version 3.1 builds that same data into the GUI. As Linuxiac reports, the layout mirrors the command-line monitor view, but now lives inside a familiar window alongside the tool’s settings.
This isn’t just eye candy. It transforms Auto-cpufreq from a set-it-and-forget-it daemon into a diagnostic aid. Users can check live behavior without committing to automatic tuning—ideal for troubleshooting whether a battery drain issue stems from CPU scaling, a stuck governor, or something else entirely.
Bluetooth controls move into the GUI
Previously accessible only through configuration files, the ability to disable Bluetooth at boot now has a GUI toggle. The release notes and project documentation confirm two modes: bluetooth_boot_off (turn Bluetooth off at boot; user can re-enable it manually) and bluetooth_boot_on (keep it on). The bluetooth_boot_off option is explicitly designed to prevent GNOME from automatically re-enabling the radio after a reboot or resume.
For users who rarely touch Bluetooth peripherals, this can trim a small but persistent power draw. For those who rely on wireless mice or headsets, the GUI ensures they won’t accidentally lock themselves out.
Lenovo conservation mode now works on more models
Auto-cpufreq’s battery-threshold support for Lenovo laptops has been made more robust. Instead of depending on a single hardcoded file path, version 3.1 searches multiple common locations for the conservation_mode control. This change, pulled from merged GitHub discussions, specifically targets differing interfaces on IdeaPad, Legion, and ThinkPad families—all of which may expose the same capability through different sysfs entries.
For anyone who keeps a Lenovo notebook docked most of the time, capping the charge at 60–80% can significantly slow battery wear. The update makes that feature reachable on a wider range of hardware.
enforce_platform_profile—stop fighting your Fn+Q hotkey
The most technically nuanced new setting addresses a long-standing complaint: Auto-cpufreq’s daemon reapplies its chosen platform profile every two seconds, overriding any manual selection made via a vendor hotkey. On systems with dedicated performance shortcut keys (like the Fn+Q toggle on some Legion laptops), this made it impossible to temporarily switch to a quieter or cooler profile without editing config files first.
Version 3.1 introduces enforce_platform_profile. When set to true (the default), the daemon continues its aggressive re-application. When set to false, it applies the configured profile only on AC-to-battery or battery-to-AC transitions, then leaves the choice alone until the next power event. The option can be set independently for charger and battery contexts, giving a laptop owner granular control—for example, strict enforcement when plugged in but manual freedom on battery.
Fixes that matter more than their changelog labels
- Frequency limits after turbo: A bug where CPU maximum frequency could remain stuck at a non-turbo ceiling even after turbo was enabled has been corrected. The daemon now recomputes limits after each turbo decision, as documented in the merged fix.
- EPP/EPB fallback reporting: The
auto-cpufreq --statscommand would sometimes show an incorrect fallback profile for Energy Performance Preference (EPP) or Energy Performance Bias (EPB). The 3.1 release notes confirm that this display error is now fixed—critical because a wrong readout could lead to misguided tuning. - Nonstandard hardware compatibility: Power-consumption calculations have been improved for systems missing a
power_nowfile, and the tool can now run on machines without a/sys/class/power_supply/directory. This broadens reliability on desktops, embedded devices, or machines with atypical power interfaces. - NVIDIA GPU wake-up avoidance: Repeatedly writing the platform profile—even when it matched the current profile—was found to wake a discrete NVIDIA GPU from a low-power state, draining battery on hybrid-graphics laptops. The fix simply checks whether a write is necessary before executing it, as per the linked pull request.
- Distribution packaging fixes: Missing dependencies in the Nix package and a libgirepository/PyGObject issue affecting Debian-based distributions have been resolved, and GUI support is now part of the project’s Poetry configuration.
What it means for you
For everyday Linux laptop users
If you’ve ever wondered why your Linux notebook’s battery life feels unpredictable, the new GUI monitor gives you a direct window into CPU behavior. You can check whether the processor actually drops to low frequencies on battery, spot a governor that won’t budge, or see if a background process is keeping a core boosted. The Bluetooth toggle is a straightforward convenience, and the expanded Lenovo battery conservation support directly benefits long-term battery health for docked machines.
Just remember: monitoring doesn’t control. Before installing the Auto-cpufreq daemon, run the monitor to understand your system’s baseline. That way, any later changes will be informed rather than blind.
For power users and system administrators
enforce_platform_profile is the star here. If you manage a fleet of laptops or your own high-end mobile workstation, you can now set a defined power policy that respects occasional manual overrides. The per-charger/battery configuration means you can mandate energy savings on battery but let users punch up performance when plugged in, without the two fighting.
Be aware of platform profile scope: the Linux kernel’s platform-profile interface can affect fan speed, thermal policy, and other firmware-level behaviors beyond CPU frequency. The new option acknowledges that a profile change is a system-wide change, not just a CPU hint.
For developers and tinkerers
The bug fixes are mostly invisible but can be dramatic in edge cases. If you’ve ever seen surprisingly high power usage on an Optimus laptop, the NVIDIA wake-up fix might quietly resolve it. If your custom EPB tweaks never seemed to stick, the corrected stats reporting may have been the culprit. And if you’ve tried running Auto-cpufreq on a weird board or a headless system, the power_supply directory fallback now prevents a crash.
How we got here
Linux power management on laptops has always been a puzzle with moving pieces. The kernel provides CPU scaling drivers (intel_pstate, amd-pstate, acpi-cpufreq), governors (performance, powersave, schedutil), and a platform-profile interface. On top of that, desktop environments like GNOME and KDE ship their own power-profiles daemons. Then there are third-party tools like TLP, TuneD, and Auto-cpufreq itself—each trying to orchestrate the whole stack.
The trouble is that modern laptops don’t just scale frequencies. They juggle turbo boost, thermal limits, GPU power state, Bluetooth radios, and charging thresholds. A tool that only touches CPU governors can be fooled by a firmware-level performance mode. A tool that sets a platform profile without polling can be overridden by a hotkey press. And a tool that blindly writes its preferred values every two seconds can cause more harm than good, especially on hybrid graphics machines.
Auto-cpufreq entered this space as a daemon that watches conditions and decides on the fly—a “set and forget” approach that appeals to users who don’t want to learn every kernel knob. Version 3.1 is a direct response to feedback that the tool was too opaque and occasionally fought the user’s own hardware shortcuts. By adding monitoring, Bluetooth management, and a configurable enforcement policy, the project has grown from a clever script into a more respectful and transparent utility.
What to do now
Update an existing installation
If you already run Auto-cpufreq, open a terminal and run:
sudo auto-cpufreq --update
This clones the latest repository to /opt/auto-cpufreq/source, runs the installer, and restarts the daemon. No configuration files are overwritten, but you should review the updated defaults in /etc/auto-cpufreq.conf after the upgrade.
Install it fresh
For new users, the project strongly recommends the Git-based installer to get the full GUI experience:
git clone https://github.com/AdnanHodzic/auto-cpufreq.git
cd auto-cpufreq && sudo ./auto-cpufreq-installer
The Snap version works for command-line-only use but cannot provide the GUI due to confinement. Arch users can find it in the AUR, Gentoo users in GURU, and NixOS users via the now-fixed package.
Avoid daemon conflict
Before enabling the Auto-cpufreq daemon, check for competing services:
- TLP: If installed, remove it (sudo apt purge tlp, etc.). Auto-cpufreq’s documentation explicitly warns that running both can cause overheating.
- GNOME Power Profiles / power-profiles-daemon: The Auto-cpufreq installer disables this service if detected, but verify with systemctl status power-profiles-daemon. You want exactly one tool making platform-profile decisions.
- Vendor utilities: Some Lenovo laptops have tools like thinkpad_acpi or Legion-specific software that may already manage charging thresholds. Decide which tool owns that feature, and disable the other to avoid conflicts.
Test safely
- Start by launching the GUI and enabling monitoring mode only. No daemon needed.
- Watch how your CPU behaves on AC vs. battery. Note any oddities.
- If battery charge thresholds are relevant, enable them after confirming your kernel driver and model are supported. Check the actual charged percentage afterward.
- Enable the daemon with a conservative configuration. Use logs (
journalctl -u auto-cpufreq) to spot errors. - Test sleep/resume cycles, external monitors, and Bluetooth behavior.
Outlook
Auto-cpufreq 3.1 positions itself as a more observant and less combative member of the Linux power ecosystem. The project’s roadmap will likely continue to refine hardware-specific quirks, especially as newer AMD and Intel platforms bring more complex power telemetry. With the GUI now a first-class citizen, expect further integration—perhaps quick-access graphs, battery health reports, or a wizard for first-time setup.
The broader landscape is also shifting. Kernel-level improvements to schedutil and amd-pstate are narrowing the gap between automatic governors and manual tuning, but laptops remain a wild west of firmware bugs and aggressive defaults. Tools like Auto-cpufreq that can monitor, respect user intent, and stay out of the way when asked will remain essential for anyone serious about Linux battery life.