A capacidade da bateria é armazenada em algum lugar em /proc
. Possivelmente /proc/acpi/battery
ou algo assim. Você pode escrever um script bash que leia o status da bateria e emita um comando de hibernação ou suspensão. Seria algo parecido com isto:
#!/bin/bash
load=$(cat /proc/acpi/battery)
min_load=20
if [ $load <= min_load ]; then
pm-suspend
fi
Eu não garanto que isso esteja certo, já que não sei como é a saída de cat /proc/acpi/battery
e não sou tão grande em um especialista em scripts. Experimente e pergunte se você tem algum problema.
Você pode criar um cronjob que execute o script a cada minuto. Dê uma olhada em este tutorial para cronjobs. Você quer criar seu trabalho como usuário root.