aboutsummaryrefslogtreecommitdiff
path: root/shlowbat
diff options
context:
space:
mode:
Diffstat (limited to 'shlowbat')
-rwxr-xr-xshlowbat26
1 files changed, 26 insertions, 0 deletions
diff --git a/shlowbat b/shlowbat
new file mode 100755
index 0000000..a02ce56
--- /dev/null
+++ b/shlowbat
@@ -0,0 +1,26 @@
+#!/bin/sh
+psupath=/sys/class/power_supply
+warning_level=0 # 0 = not warned, 1 = warned, 2 = warned critical
+
+sum_props() {
+ for prop in $(cat $psupath/*/$1); do sum=$(( $sum + $prop )); done
+ echo $sum
+}
+is_discharging() { cat $psupath/*/status | grep "Discharging" > /dev/null ; }
+
+while true; do
+ capacity=$(( $(sum_props energy_now) * 100 / $(sum_props energy_full) ))
+
+ if is_discharging; then
+ if [ $capacity -le 5 ] && [ $warning_level -lt 2 ]; then
+ notify_send "Critical Low Battery Warning" "${capacity}% remains"
+ elif [ $capacity -le 20 ] && [ $warning_level -lt 1 ]; then
+ notify_send "Low Battery Warning" "${capacity}% remains"
+ fi
+ else
+ warning_level=0
+ fi
+
+ printf "\r%d%%" $capacity
+ sleep 3
+done