Linux laptops running Arch-based distributions often ship with minimal power management out of the box, leaving users to fine-tune settings for better battery life. High power consumption not only shortens battery runtime but can also increase heat and reduce overall hardware longevity. By configuring the right utilities, adjusting kernel parameters, and disabling unnecessary devices or services, you can reduce idle power draw from over 20 watts down to as low as 5–10 watts, depending on your hardware and workload.
Assess Baseline Power Consumption
Before making changes, it’s important to understand your laptop’s current power usage. This helps you measure the impact of each adjustment and identify the biggest drains on your battery.
Step 1: Install powertop
using your package manager. For Arch-based systems, run:
sudo pacman -S powertop
Step 2: Calibrate powertop
for accurate readings. This increases CPU load briefly but gives more reliable data:
sudo powertop --calibrate
Step 3: Launch the interactive interface to monitor real-time power usage and identify processes or devices that draw the most power:
sudo powertop
Note your average power draw in watts and review the “Tunables” tab for settings marked as “Bad.” These are candidates for optimization.
Install and Configure Power Management Utilities
To automate power-saving settings, Arch users typically choose between TLP and power-profiles-daemon
. Each tool manages hardware power states and device settings, but they should not be run together due to conflicts.
TLP: Advanced Power Management
TLP is a command-line utility that applies power-saving settings optimized for most hardware. It’s widely used among Arch users for its effectiveness and minimal configuration requirements.
Step 1: Install TLP:
sudo pacman -S tlp
Step 2: Enable and start the TLP service so settings apply automatically on boot:
sudo systemctl enable --now tlp.service
Step 3: Optionally, activate USB autosuspend support:
sudo systemctl enable --now tlp-sleep.service
Step 4: Check current status and applied settings:
sudo tlp-stat -s
TLP’s default configuration is effective for most users, but advanced users can edit /etc/tlp.conf
for further tuning. Avoid running TLP alongside other power management tools like laptop-mode-tools
or power-profiles-daemon
.
Power-Profiles-Daemon: Integrated Desktop Control
For systems running GNOME or similar desktop environments, power-profiles-daemon
integrates with desktop power settings and provides easy switching between performance, balanced, and power-saver modes.
Step 1: Install the package:
sudo pacman -S power-profiles-daemon
Step 2: Enable and start the service:
sudo systemctl enable --now power-profiles-daemon
Step 3: Select the desired power profile from your desktop’s power settings, or use the command line:
powerprofilesctl set power-saver
Do not use power-profiles-daemon
in combination with TLP, as they may override each other’s settings.
Switch to a Lightweight Desktop Environment
Resource-heavy desktop environments such as GNOME or KDE Plasma can increase power draw due to background services and graphical effects. Lighter alternatives like XFCE, LXQt, or Openbox use fewer system resources, which translates to lower CPU and GPU activity and longer battery life.
For KDE Plasma, disabling desktop animations and unnecessary background services can reduce CPU and GPU usage. Similarly, in GNOME, turning off animations and limiting background apps will help conserve power.
Optimize Kernel Parameters for Power Saving
Certain kernel parameters can instruct the system to use more aggressive power-saving features, especially for storage and PCIe devices.
Step 1: Edit your GRUB configuration:
sudo nano /etc/default/grub
Step 2: Add or update the GRUB_CMDLINE_LINUX_DEFAULT
line to include pcie_aspm=force
for PCIe Active State Power Management:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pcie_aspm=force"
Step 3: For Intel CPUs, add intel_pstate=passive
to allow more granular frequency scaling control.
Step 4: Update your GRUB configuration:
sudo grub-mkconfig -o /boot/grub/grub.cfg
These settings activate deeper power-saving states for hardware components, cutting idle and light-load power usage.
Enable CPU Frequency Scaling
Dynamic frequency scaling reduces CPU speed when full performance isn’t needed, directly lowering power consumption.
Step 1: Install the cpupower
utility:
sudo pacman -S cpupower
Step 2: Enable the cpupower.service
so changes persist after reboot:
sudo systemctl enable --now cpupower.service
Step 3: Edit the configuration file to set the governor to ‘powersave’:
sudo nano /etc/default/cpupower
Set:
governor='powersave'
Step 4: Apply the new governor immediately:
sudo cpupower frequency-set -g powersave
Step 5: Verify the current CPU scaling settings:
cpupower frequency-info
With the ‘powersave’ governor, the CPU will drop to lower frequencies during idle or light workloads, reducing energy use.
Disable Unused Devices and Services
Active but unused hardware and background services can steadily drain battery power. Disabling these can provide immediate savings.
Turn Off Bluetooth
If you don’t use Bluetooth peripherals, disable the service:
sudo systemctl disable --now bluetooth.service
Or block it at the hardware level:
sudo rfkill block bluetooth
Turn Off Wi-Fi When Not Needed
Switch off wireless radios when using Ethernet or when offline:
nmcli radio wifi off
Or use rfkill:
sudo rfkill block wifi
Stop Unnecessary Background Services
List running services:
systemctl list-units --type=service
Disable any that aren’t required:
sudo systemctl disable --now servicename.service
Enable USB Autosuspend
USB autosuspend puts idle USB devices into low-power mode, reducing their energy draw. TLP manages this automatically, but you can also set it manually.
Step 1: Create a udev rule for autosuspend:
ACTION=="add", SUBSYSTEM=="usb", TEST=="power/control", ATTR{power/control}="auto"
Save this in /etc/udev/rules.d/50-usb-autosuspend.rules
.
Step 2: Reload udev rules:
sudo udevadm control --reload
This ensures that USB devices such as mice, webcams, and external drives use less power when idle.
Apply SSD Power Management
Solid-state drives (SSDs) can support advanced power management features, especially on NVMe devices.
Step 1: Check current NVMe power mode:
sudo nvme get-feature -f 0x0c -H /dev/nvme0
Step 2: Set a lower power state if supported:
sudo nvme set-feature -f 0x0c -v 2 /dev/nvme0
For SATA SSDs, TLP can configure ALPM (Aggressive Link Power Management) automatically if supported by your hardware.
Dim the Screen and Turn Off Keyboard Backlight
The display is often the largest power consumer on a laptop. Lowering its brightness and disabling keyboard lighting can noticeably extend battery runtime.
Step 1: Adjust screen brightness using your desktop controls or with brightnessctl
:
brightnessctl set 30%
Step 2: Turn off the keyboard backlight (if your laptop supports it):
echo 0 | sudo tee /sys/class/leds/smc::kbd_backlight/brightness
Monitor Battery Health
Battery capacity diminishes over time. Knowing the current health of your battery helps set realistic expectations for power-saving results.
Step 1: View battery statistics with upower
:
upower -i /org/freedesktop/UPower/devices/battery_BAT0
Step 2: Alternatively, use acpi
:
acpi -i
If your battery’s full charge capacity is much lower than its design capacity, consider replacing it for the best possible runtime.
Additional Power-Saving Practices
- Avoid running processor-intensive applications (like video editors or games) on battery power.
- Use dark themes on OLED screens to reduce energy usage.
- Limit the number of browser tabs and disable unused extensions.
- Prefer hibernation over suspend to minimize background power use during longer breaks.
With these configuration steps and usage habits, you can reduce your Arch-based laptop’s power consumption, improve battery runtime, and keep your system running cooler and quieter during daily tasks.
Member discussion