veilor-os/docs/POWER.md

2.4 KiB

Power Management

veilor-os ships a 3-mode power profile system backed by tuned.

Profiles

Profile Governor EPP Boost ASUS TTP Use
veilor-powersave powersave power off 2 (silent) max battery
veilor-balanced powersave balance_performance on 1 (mid) on the go
veilor-performance performance performance on 0 (full) plugged in

ASUS TTP (throttle_thermal_policy) only applies to ASUS laptops with asus-nb-wmi. On other hardware those writes are silently skipped.

Switching

veilor-power save     # max battery   (aliases: powersave, s)
veilor-power mid      # balanced      (aliases: balanced, b)
veilor-power perf     # performance   (aliases: performance, p)
veilor-power          # status: profile, governor, EPP, boost, freq

veilor-power calls tuned-adm via a NOPASSWD sudoers drop-in locked to veilor-* profiles only (/etc/sudoers.d/veilor-power).

Auto-switch on AC plug/unplug

/etc/udev/rules.d/90-veilor-ac-switch.rules:

SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="/usr/bin/tuned-adm profile veilor-powersave"
SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="/usr/bin/tuned-adm profile veilor-performance"

Override anytime with veilor-power mid.

Battery longevity

/etc/udev/rules.d/91-veilor-battery-threshold.rules caps charge at 80% on supported hardware. Adjust by editing the rule or:

echo 100 | sudo tee /sys/class/power_supply/BAT0/charge_control_end_threshold

What each profile actually does

/etc/tuned/profiles/veilor-<profile>/script.sh writes:

  • /sys/devices/system/cpu/cpufreq/boost
  • /sys/devices/platform/asus-nb-wmi/throttle_thermal_policy (ASUS only)
  • /sys/bus/pci/devices/*/power/control (NVMe autosuspend)
  • /sys/class/drm/card*/device/power_dpm_force_performance_level (AMD iGPU)
  • usb_autosuspend enable/disable

All writes are guarded with [ -w ... ] so non-applicable hardware silently no-ops.

Persistence

tuned.service starts at boot and loads the last active profile from /var/lib/tuned/save.conf. No GRUB params needed.

Caveat: platform_profile vs throttle_thermal_policy

On some ASUS laptops the platform_profile sysfs key maps to TTP in non-obvious order (e.g. quiet→TTP2, balanced→TTP0, performance→TTP1). veilor profiles write TTP directly and never touch platform_profile to avoid the second-write override race.