aboutsummaryrefslogtreecommitdiffstats
path: root/basics/.bin/battery-monitor
diff options
context:
space:
mode:
authorPeter Son Struschka <me@peter-struschka.com>2018-12-23 21:05:24 +0700
committerPeter Son Struschka <me@peter-struschka.com>2018-12-23 21:05:24 +0700
commite30c67483b11bab0ae3795ef7015435489ea7833 (patch)
tree9350fd6b22b68abc84c42476ec1cf0fc2576bc13 /basics/.bin/battery-monitor
parent1297a2e0ec774a13c9900b63c2b4afbb6582a5d3 (diff)
downloaddotfiles-e30c67483b11bab0ae3795ef7015435489ea7833.tar.gz
dotfiles-e30c67483b11bab0ae3795ef7015435489ea7833.tar.bz2
dotfiles-e30c67483b11bab0ae3795ef7015435489ea7833.tar.lz
dotfiles-e30c67483b11bab0ae3795ef7015435489ea7833.tar.xz
dotfiles-e30c67483b11bab0ae3795ef7015435489ea7833.tar.zst
dotfiles-e30c67483b11bab0ae3795ef7015435489ea7833.zip
reorganization and updates
Diffstat (limited to 'basics/.bin/battery-monitor')
-rwxr-xr-xbasics/.bin/battery-monitor41
1 files changed, 41 insertions, 0 deletions
diff --git a/basics/.bin/battery-monitor b/basics/.bin/battery-monitor
new file mode 100755
index 0000000..ff1ef8b
--- /dev/null
+++ b/basics/.bin/battery-monitor
@@ -0,0 +1,41 @@
+battery_level=`acpi -b | cut -d ' ' -f 4 | grep -o '[0-9]*'`
+battery_state=$(acpi | grep 'Battery' | sed 's/Battery\s[0-9]*: //' | sed 's/, [0-9][0-9]*\%.*//')
+battery_remaining=$(acpi | grep -oh '[0-9:]* remaining' | sed 's/:\w\w remaining$/ Minutes/' | sed 's/00://' | sed 's/:/h /')
+
+if [ ! -f "/tmp/.battery" ]; then
+ echo "$battery_level" > /tmp/.battery
+ echo "$battery_state" >> /tmp/.battery
+ exit
+fi
+
+previous_battery_level=$(cat /tmp/.battery | head -n 1)
+previous_battery_state=$(cat /tmp/.battery | tail -n 1)
+echo "$battery_level" > /tmp/.battery
+echo "$battery_state" >> /tmp/.battery
+
+checkBatteryLevel() {
+ if [ $battery_state != "Discharging" ] || [ "${battery_level}" == "${previous_battery_level}" ]; then
+ exit
+ fi
+
+ if [ $battery_level -le 3 ]; then
+ sudo systemctl suspend
+ elif [ $battery_level -le 5 ]; then
+ notify-send "Low Battery" "Your computer will suspend soon unless plugged into a power outlet." -u critical
+ elif [ $battery_level -le 10 ]; then
+ notify-send "Low Battery" "${battery_level}% (${battery_remaining}) of battery remaining." -u normal
+ fi
+}
+
+checkBatteryStateChange() {
+ if [ "$battery_state" != "Discharging" ] && [ "$previous_battery_state" == "Discharging" ]; then
+ notify-send "Charging" "Battery is now plugged in." -u low
+ fi
+
+ if [ "$battery_state" == "Discharging" ] && [ "$previous_battery_state" != "Discharging" ]; then
+ notify-send "Power Unplugged" "Your computer has been disconnected from power." -u low
+ fi
+}
+
+checkBatteryStateChange
+checkBatteryLevel \ No newline at end of file