summaryrefslogtreecommitdiff
path: root/tmux/battery.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tmux/battery.sh')
-rwxr-xr-xtmux/battery.sh38
1 files changed, 25 insertions, 13 deletions
diff --git a/tmux/battery.sh b/tmux/battery.sh
index 26b3388..2cd1afb 100755
--- a/tmux/battery.sh
+++ b/tmux/battery.sh
@@ -1,17 +1,29 @@
round() { awk -v n=$1 -v d=$2 'BEGIN{print int((n+d/2)/d) * d}'; }
upower -i /org/freedesktop/UPower/devices/DisplayDevice | awk '/percentage:/ {print $2}' | {
- read s;
- lvl=$(round "${s%%%}" 10);
- if [ $lvl -eq "10" ]; then printf "󰁺"; fi
- if [ $lvl -eq "20" ]; then printf "󰁻"; fi
- if [ $lvl -eq "30" ]; then printf "󰁼"; fi
- if [ $lvl -eq "40" ]; then printf "󰁽"; fi
- if [ $lvl -eq "50" ]; then printf "󰁾"; fi
- if [ $lvl -eq "60" ]; then printf "󰁿"; fi
- if [ $lvl -eq "70" ]; then printf "󰂀"; fi
- if [ $lvl -eq "80" ]; then printf "󰂁"; fi
- if [ $lvl -eq "90" ]; then printf "󰂂"; fi
- if [ $lvl -eq "100" ]; then printf "󰁹"; fi
- printf " %.0f%%" "${s%%%}";
+ read percentage_raw; # e.g. 69.420%
+ percentage_10s=$(round "${percentage_raw%%%}" 10); # rounded number: 70
+ # when battery is low, highlight it
+ if [ $percentage_10s -le "10" ]; then
+ printf "#[bg=red,fg=brightwhite]";
+ elif [ $percentage_10s -le "20" ]; then
+ printf "#[bg=brightyellow]";
+ fi
+ printf " ";
+ # icon
+ if [ $percentage_10s -le "10" ]; then printf "󰁺"; fi
+ if [ $percentage_10s -eq "20" ]; then printf "󰁻"; fi
+ if [ $percentage_10s -eq "30" ]; then printf "󰁼"; fi
+ if [ $percentage_10s -eq "40" ]; then printf "󰁽"; fi
+ if [ $percentage_10s -eq "50" ]; then printf "󰁾"; fi
+ if [ $percentage_10s -eq "60" ]; then printf "󰁿"; fi
+ if [ $percentage_10s -eq "70" ]; then printf "󰂀"; fi
+ if [ $percentage_10s -eq "80" ]; then printf "󰂁"; fi
+ if [ $percentage_10s -eq "90" ]; then printf "󰂂"; fi
+ if [ $percentage_10s -eq "100" ]; then printf "󰁹"; fi
+ printf " ";
+ # percentage level rounded to a whole number (69%)
+ printf "%.0f%%" "${percentage_raw%%%}";
+ printf " ";
+ printf "#[default]"; # reset style
}