v5-services-battery.md
Battery status uses UPower. The global warning threshold controls the system battery’s internal low-battery notifications and the warning color state used by default battery widgets. Peripheral batteries warn only when they have an explicit per-device threshold.
[battery]warning_threshold = 10 # 0 disables low-battery warnings
[battery.device."/org/freedesktop/UPower/devices/battery_BAT0"]warning_threshold = 15
[battery.device."/org/freedesktop/UPower/devices/headset_dev_00_11_22_33_44_55"]warning_threshold = 10
Section titled “Escalating low-battery warnings”
Warnings are level-triggered, not edge-triggered: the shell re-evaluates the live battery level, so you are warned even when the shell starts (or the battery is hot-plugged) already below the threshold - not only when the level crosses downward.
For the system battery , warnings escalate as the charge drains:
warning_threshold (default 10%): a normal “Battery low” notification.The 5% and 2% escalation levels are fixed and apply only to the system battery. Charging back above a level re-arms it, so re-discharging warns again. Peripheral batteries warn only once at their own configured warning_threshold. Setting warning_threshold = 0 disables all warnings for that battery, including the escalation levels.
Per-device tables use the same UPower selectors as the battery widget device setting. The Settings UI writes full UPower object paths for reported non-system devices. Do not add a per-device table for the default system battery; [battery].warning_threshold is its canonical threshold.