aboutsummaryrefslogtreecommitdiff
path: root/scripts/battery-watch.sh
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2020-12-24 00:06:27 +0530
committerAkshay Nair <phenax5@gmail.com>2020-12-24 00:06:27 +0530
commit865728068c965e066d0f8971c5b5ba26e12e7dce (patch)
treec16195f0a04cf7d004fe5b396255734f4d60bb00 /scripts/battery-watch.sh
parent649ef5f225039e498358c3d056dfd7fcbc56f014 (diff)
downloadnixos-config-865728068c965e066d0f8971c5b5ba26e12e7dce.tar.gz
nixos-config-865728068c965e066d0f8971c5b5ba26e12e7dce.zip
Adds scripts and links scripts and wallpapers
Diffstat (limited to '')
-rwxr-xr-xscripts/battery-watch.sh49
1 files changed, 49 insertions, 0 deletions
diff --git a/scripts/battery-watch.sh b/scripts/battery-watch.sh
new file mode 100755
index 0000000..dfff1cd
--- /dev/null
+++ b/scripts/battery-watch.sh
@@ -0,0 +1,49 @@
+#!/usr/bin/env bash
+
+PID_PATH="$HOME/.cache/my-battery-watcher.pid";
+[[ ! -f "$PID_PATH" ]] && touch $PID_PATH;
+
+battery_component() { cat "/sys/class/power_supply/BAT0/$1"; }
+
+get_level() { battery_component capacity; }
+get_state() { battery_component status; }
+
+LOW_BATTERY="30";
+CRITICAL_BATTERY="10";
+
+DELAY=1;
+LOW_DELAY=240;
+CRITICAL_DELAY=60;
+
+oldpid=$(cat $PID_PATH);
+cmd=${1:-"start"};
+
+if [[ ! -z "$oldpid" ]] || [[ "$cmd" == "stop" ]]; then
+ kill $oldpid;
+fi;
+
+# :: Min -> Max -> Number -> Bool
+between() { test "$3" -gt "$1" && test "$3" -le "$2"; }
+
+if [[ "$cmd" == "start" ]]; then
+ while true; do
+ battery_level=$(get_level);
+ state=$(get_state);
+
+ if [[ "$state" == "Discharging" ]]; then
+ if (between $CRITICAL_BATTERY $LOW_BATTERY $battery_level); then
+ notify-send "Please charge this shit. Battery is at $battery_level%" -u normal;
+ sleep $LOW_DELAY;
+ fi
+
+ if (between 0 $CRITICAL_BATTERY $battery_level); then
+ notify-send "HOLY SHIT DUDE. I'M DYING. Battery is at $battery_level%" -u critical;
+ sleep $CRITICAL_DELAY;
+ fi
+ fi
+
+ sleep $DELAY;
+ done &
+
+ echo $! > $PID_PATH;
+fi;