Além dos métodos duplicados sugeridos, o que você pode fazer é isto:
Encontre o caminho da interface da bateria por meio de upower -enumerate
:
bash-4.3$ upower --enumerate
/org/freedesktop/UPower/devices/line_power_ACAD
/org/freedesktop/UPower/devices/battery_BAT1
/org/freedesktop/UPower/devices/DisplayDevice
Em seguida, use upower --show-info
e desative sua saída. No meu exemplo, seria assim:
bash-4.3$ upower --show-info /org/freedesktop/UPower/devices/DisplayDevice | awk '/percentage/{gsub(/\%/,""); print $2}'
100
Tudo o que você precisa fazer agora é usar um script simples para comparar se o valor de saída for menor ou igual a determinado limite
#!/bin/bash
get_percentage()
{
# Note, | \ must have only new line after it, no space
upower --show-info /org/freedesktop/UPower/devices/battery_BAT1 |\
awk '/percentage/{gsub(/\%/,""); print $2}'
}
main()
{
while true
do
pcent=$(get_percentage)
[ $pcent -le 10 ] && notify-send "Battery Low" "Please plug in charger"
sleep 60 # check every minute
done
}
main
Quanto a notificar via bip, você pode usar o comando aplay
e qualquer arquivo de áudio em vez de notify-send
. Se você não tem GUI, você também pode usar o comando wall
como wall <<< "Battery low"
e imprimir para exibir uma mensagem. OBSERVAÇÃO : por causa das atualizações recentes em gnome-terminal
, isso não funciona em gnome-terminal
, mas em TTYs e outros emuladores de terminal que ele ainda faz