Display and suspend management can recover significant power on a laptop. The screen backlight alone draws 2–6 W, and a machine that never enters suspend when idle can waste hours of battery on a task list you left open. This chapter covers the Linux display power stack and the suspend/resume system.
The backlight is controlled via sysfs. The interface varies by hardware:
# List backlight interfaces
ls /sys/class/backlight/
# Read current and maximum brightness
cat /sys/class/backlight/intel_backlight/brightness
cat /sys/class/backlight/intel_backlight/max_brightness
# Set brightness to 50% (replace 1000 with your max_brightness value)
echo 500 | sudo tee /sys/class/backlight/intel_backlight/brightness
Most desktop environments set brightness via D-Bus through upower or logind, which does not require root. From the command line, brightnessctl is convenient:
brightnessctl set 50% # set to 50%
brightnessctl set -10% # decrease by 10%
TLP does not control backlight brightness directly, but Power Profiles Daemon and GNOME/KDE power settings can dim the display after a configurable idle timeout.
DPMS is an older standard for putting the display into low-power states. Under Wayland, display power is managed by the compositor. Under X11:
# Enable DPMS with: standby after 60s, suspend after 120s, off after 180s
xset dpms 60 120 180
# Query current DPMS settings
xset q | grep -A 5 DPMS
Under systemd with a Wayland compositor, display timeout is typically configured in the desktop environment’s power settings. The underlying mechanism is wl_output.dpms or proprietary compositor-specific APIs.
Linux supports several suspend-to-memory and suspend-to-disk states:
| State | Name | Description | Resume Latency |
|---|---|---|---|
| S1 | Standby | CPU halted, RAM powered | < 1 s |
| S3 | Suspend-to-RAM | CPU off, RAM refreshed | 1–3 s |
| S4 | Suspend-to-Disk (hibernate) | State saved to swap/file | 10–30 s |
| S0ix | Modern Standby | CPU in deep C-state, NIC on | Variable |
S3 (Suspend-to-RAM) is the standard laptop sleep mode. RAM retains state; everything else powers down. Power draw is typically 0.5–2 W (the RAM refresh current).
S4 (Hibernate) saves the full memory image to disk and powers off completely. Resume reads from disk, which is slow but uses zero power during the suspended period. Useful for overnight suspend when you do not need fast resume.
S0ix / Modern Standby is the default on many newer Intel/AMD laptops. Unlike S3, the system stays in a low-power C-state rather than fully suspending. Network and calendar updates can still happen. Power draw varies widely (0.5–5 W) and can be higher than S3 on some hardware.
Check which states your hardware supports:
cat /sys/power/mem_sleep # shows available mem sleep modes
cat /sys/power/state # all available power states
To prefer S3 over Modern Standby:
# In /etc/default/grub, add: mem_sleep_default=deep
echo "mem_sleep_default=deep" | sudo tee /etc/systemd/sleep.conf.d/s3.conf
systemd manages suspend, hibernate, and hybrid sleep via systemd-sleep. Configuration in /etc/systemd/sleep.conf:
[Sleep]
AllowSuspend=yes
AllowHibernation=yes
AllowSuspendThenHibernate=yes
# Suspend for 60 min, then hibernate if still suspended
HibernateDelaySec=3600
Suspend-then-hibernate is a practical hybrid: the laptop suspends to RAM for a configurable duration, then automatically hibernates if not resumed. This gives fast resume for short absences while consuming zero power for long ones.
systemd-logind controls what happens when the lid is closed or the power button is pressed. Edit /etc/systemd/logind.conf:
[Login]
HandleLidSwitch=suspend
HandleLidSwitchExternalPower=lock # just lock screen when plugged in
HandlePowerKey=hibernate
IdleAction=suspend
IdleActionSec=15min
After editing, reload:
sudo systemctl restart systemd-logind
Common problems:
Device prevents suspend: Check dmesg after a failed suspend for pm_prepare errors. Use sudo journalctl -b -1 | grep -i suspend to see the previous boot’s suspend log.
Immediate wakeup: Something is waking the system as soon as it suspends. Check active wakeup sources:
cat /proc/acpi/wakeup # shows which ACPI devices can generate wakeup
# Disable a specific wakeup source (e.g., XHC for USB)
echo XHC | sudo tee /proc/acpi/wakeup
High power during S0ix/Modern Standby: Use powertop immediately after waking to see which subsystems prevented deep C-states. Common culprits: audio device (prevent D3 state), NIC firmware, or a process that called pm_qos_add_request for low latency.
| ← Chapter 7: Laptop CPU Governors and TLP | Table of Contents | Chapter 9: Advanced Laptop Power Profiling → |