summaryrefslogtreecommitdiff
path: root/scripts/battery.sh
diff options
context:
space:
mode:
authorjohannst <stoelp@eit.uni-kl.de>2018-02-25 21:27:13 +0100
committerjohannst <stoelp@eit.uni-kl.de>2018-02-25 21:27:13 +0100
commitba480949ccd5f00f9cfdcae15b67ffb895965833 (patch)
treedf70100706b3b2726e3b04074ed0430378af3008 /scripts/battery.sh
parent32cff6de87dbc18a10c73f5514ae61181c120756 (diff)
downloaddotfiles-ba480949ccd5f00f9cfdcae15b67ffb895965833.tar.gz
dotfiles-ba480949ccd5f00f9cfdcae15b67ffb895965833.zip
moved to i3-gaps and i3blocks
Diffstat (limited to 'scripts/battery.sh')
-rwxr-xr-xscripts/battery.sh60
1 files changed, 60 insertions, 0 deletions
diff --git a/scripts/battery.sh b/scripts/battery.sh
new file mode 100755
index 0000000..05ac440
--- /dev/null
+++ b/scripts/battery.sh
@@ -0,0 +1,60 @@
+#!/bin/bash
+# dotfiles -- scripts/battery.sh
+# author: johannst
+
+bat="${BLOCK_INSTANCE:-BAT0}"
+[[ ! -f "/sys/class/power_supply/$bat/type" ]] && exit 0
+
+show_bat_use_design_capacity=0
+show_bat_status=0
+show_bat_color_output=0
+for arg in "$@"; do
+ case $arg in
+ -dc | --design_capacity) show_bat_use_design_capacity=1
+ ;;
+ -s | --status) show_bat_status=1
+ ;;
+ -c | --color) show_bat_color_output=1
+ ;;
+ *) # ignore unknown
+ ;;
+ esac
+done
+
+# Unknown, Charging, Discharging, Full
+BAT_STATUS=$(cat /sys/class/power_supply/$bat/status)
+BAT_NOW=$(cat /sys/class/power_supply/$bat/charge_now)
+[[ $show_bat_use_design_capacity == 1 ]] \
+ && BAT_FULL=$(cat /sys/class/power_supply/$bat/charge_full_design) \
+ || BAT_FULL=$(cat /sys/class/power_supply/$bat/charge_full)
+
+BAT_POWER=$(echo $BAT_NOW $BAT_FULL | awk '{ print int($1 * 100 / $2); }')
+
+OUT="$BAT_POWER%"
+[[ $show_bat_status == 1 ]] && \
+ case $BAT_STATUS in
+ Charging) OUT="$OUT (Charging)"
+ ;;
+ *) # only show charging state for now
+ ;;
+ esac
+
+echo "$OUT"
+
+[[ $show_bat_color_output == 1 ]] && \
+ # print twice, else colors not working?!
+ echo "$OUT"
+ if [[ $BAT_POWER -ge 80 ]]; then
+ # green
+ echo "#00FF00"
+ elif [[ $BAT_POWER -ge 60 ]]; then
+ # yellow
+ echo "#FFF600"
+ elif [[ $BAT_POWER -ge 40 ]]; then
+ # dark orange
+ echo "#FFAE00"
+ else
+ # red
+ echo "#FF0000"
+ fi
+