How to change critically low battery value?

I would like my laptop to hibernate itself when the battery level is 10% to be sure it has enough power to complete the operation properly. Actually if I don't pay attention my laptop informs me it will hibernate when it's too late, so instead it brutally shuts down. This kills lithium batteries and is not acceptable.


  1. Start dconf-editor
  2. Browse to org -> gnome -> settings-daemon -> plugins -> power
  3. Change the values of percentage-critical and percentage-action to the level you require
  4. Change use-time-for-policy to false
  5. Done!

You can also do this from a terminal with:

gsettings set org.gnome.settings-daemon.plugins.power percentage-critical 10
gsettings set org.gnome.settings-daemon.plugins.power percentage-action 9
gsettings set org.gnome.settings-daemon.plugins.power use-time-for-policy false

Looks like Gnome moved the settings. Critically low battery is now handled by UPower. Instead of using gsettings, you should now edit the file /etc/UPower/UPower.conf

UsePercentageForPolicy=true
PercentageLow=10
PercentageCritical=3
PercentageAction=2
CriticalPowerAction=HybridSleep

By the way, if you read the UPower.conf file, upower used to (in v 0.99.1) only suggest using percentages in order to work around broken firmware. The default was UsePercentageForPolicy=false, which used the battery's time estimate. That makes some sense since, as a battery gets older, it lasts shorter for any given percentage. A fixed percentage that worked previously might at some point no longer allow the laptop enough time to hibernate properly.

However, it looks like upower now (v 0.99.4) is defaulting to percentages and has a cryptic message about the reasoning. I don't know which is best, but here's how to use time remaining for your battery policy, if you so desire.

UsePercentageForPolicy=false
TimeLow=1200
TimeCritical=300
TimeAction=120
CriticalPowerAction=HybridSleep

Note that Suspend/Sleep as such is not supported by the Upower tool, that HybridSleep is used instead (which looks much like Sleep, but is also close to Hibernation) and that HybridSleep (just like Hibernation) needs a swap space to work. On how to create one in case you don't have it, see this answer.