aboutsummaryrefslogtreecommitdiff
path: root/.config/i3blocks/scripts/batterybar
diff options
context:
space:
mode:
authorAlec Goncharow <Alec.Goncharow@gmail.com>2018-08-07 00:23:41 -0400
committerAlec Goncharow <Alec.Goncharow@gmail.com>2018-08-07 00:23:41 -0400
commitc517bf476dab583b94d336f9187c0a9eb04dbab3 (patch)
treed876bb8f5e9f19b673f0ee29a13645b996fb797b /.config/i3blocks/scripts/batterybar
parent1e6d648dde3c4bc4c261ae63c354e88ab23c82e1 (diff)
refactored batterybar script to be slightly more efficient/refactorable
Diffstat (limited to '.config/i3blocks/scripts/batterybar')
-rwxr-xr-x.config/i3blocks/scripts/batterybar178
1 files changed, 89 insertions, 89 deletions
diff --git a/.config/i3blocks/scripts/batterybar b/.config/i3blocks/scripts/batterybar
index 7111af8..46ad51d 100755
--- a/.config/i3blocks/scripts/batterybar
+++ b/.config/i3blocks/scripts/batterybar
@@ -1,136 +1,136 @@
#!/usr/bin/env bash
# batterybar; displays battery percentage as a bar on i3blocks
-#
+#
# Copyright 2015 Keftaa <adnan.37h@gmail.com>
-#
+#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
-#
+#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-#
+#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA.
-#
-#
+#
+#
readarray -t output <<< $(acpi battery)
battery_count=${#output[@]}
for line in "${output[@]}";
do
- percentages+=($(echo "$line" | grep -o -m1 '[0-9]\{1,3\}%' | tr -d '%'))
- statuses+=($(echo "$line" | egrep -o -m1 'Discharging|Charging|AC|Full|Unknown'))
- remaining=$(echo "$line" | egrep -o -m1 '[0-9][0-9]:[0-9][0-9]')
- if [[ -n $remaining ]]; then
- remainings+=(" ($remaining)")
- else
- remainings+=("")
- fi
+ percentages+=($(echo "$line" | grep -o -m1 '[0-9]\{1,3\}%' | tr -d '%'))
+ statuses+=($(echo "$line" | egrep -o -m1 'Discharging|Charging|AC|Full|Unknown'))
+ remaining=$(echo "$line" | egrep -o -m1 '[0-9][0-9]:[0-9][0-9]')
+ if [[ -n $remaining ]]; then
+ remainings+=(" ($remaining)")
+ else
+ remainings+=("")
+ fi
done
squares="■"
-#There are 8 colors that reflect the current battery percentage when
+#There are 8 colors that reflect the current battery percentage when
#discharging
dis_colors=("#FF0027" "#FF3B05" "#FFB923" "#FFD000" "#E4FF00" "#ADFF00"
- "#6DFF00" "#10BA00")
+"#6DFF00" "#10BA00")
charging_color="#00AFE3"
full_color="#FFFFFF"
ac_color="#535353"
while getopts 1:2:3:4:5:6:7:8:c:f:a:h opt; do
- case "$opt" in
- 1) dis_colors[0]="$OPTARG";;
- 2) dis_colors[1]="$OPTARG";;
- 3) dis_colors[2]="$OPTARG";;
- 4) dis_colors[3]="$OPTARG";;
- 5) dis_colors[4]="$OPTARG";;
- 6) dis_colors[5]="$OPTARG";;
- 7) dis_colors[6]="$OPTARG";;
- 8) dis_colors[7]="$OPTARG";;
- c) charging_color="$OPTARG";;
- f) full_color="$OPTARG";;
- a) ac_color="$OPTARG";;
- h) printf "Usage: batterybar [OPTION] color
- When discharging, there are 8 [1-8] levels colors.
- You can specify custom colors, for example:
-
- batterybar -1 red -2 \"#F6F6F6\" -8 green
-
- You can also specify the colors for the charging, AC and
- charged states:
-
- batterybar -c green -f white -a \"#EEEEEE\"\n";
- exit 0;
- esac
+ case "$opt" in
+ 1) dis_colors[0]="$OPTARG";;
+ 2) dis_colors[1]="$OPTARG";;
+ 3) dis_colors[2]="$OPTARG";;
+ 4) dis_colors[3]="$OPTARG";;
+ 5) dis_colors[4]="$OPTARG";;
+ 6) dis_colors[5]="$OPTARG";;
+ 7) dis_colors[6]="$OPTARG";;
+ 8) dis_colors[7]="$OPTARG";;
+ c) charging_color="$OPTARG";;
+ f) full_color="$OPTARG";;
+ a) ac_color="$OPTARG";;
+ h) printf "Usage: batterybar [OPTION] color
+ When discharging, there are 8 [1-8] levels colors.
+ You can specify custom colors, for example:
+
+ batterybar -1 red -2 \"#F6F6F6\" -8 green
+
+ You can also specify the colors for the charging, AC and
+ charged states:
+
+ batterybar -c green -f white -a \"#EEEEEE\"\n";
+ exit 0;
+ esac
done
end=$(($battery_count - 1))
for i in $(seq 1 $end);
do
- if (( percentages[$i] > 0 && percentages[$i] < 10 )); then
- squares=""
- elif (( percentages[$i] >= 10 && percentages[$i] < 35 )); then
- squares=""
- elif (( percentages[$i] >= 35 && percentages[$i] < 65 )); then
- squares=""
- elif (( percentages[$i] >= 65 && percentages[$i] < 80 )); then
- squares=""
- elif (( percentages[$i] >=80 )); then
- squares=""
- fi
+ if (( percentages[$i] >=85 )); then
+ squares=""
+ elif (( percentages[$i] >=65 )); then
+ squares=""
+ elif (( percentages[$i] >=35 )); then
+ squares=""
+ elif (( percentages[$i] >=10 )); then
+ squares=""
+ else
+ squares=""
+ fi
- if [[ "${statuses[$i]}" = "Unknown" ]]; then
- squares="<sup>?</sup>$squares"
- fi
+ if [[ "${statuses[$i]}" = "Unknown" ]]; then
+ squares="<sup>?</sup>$squares"
+ fi
- case "${statuses[$i]}" in
- "Charging")
- color="$charging_color"
- ;;
- "Full")
- color="$full_color"
- ;;
- "AC")
- color="$ac_color"
- ;;
- "Discharging"|"Unknown")
- if (( percentages[$i] >= 0 && percentages[$i] < 10 )); then
- color="${dis_colors[0]}"
- elif (( percentages[$i] >= 10 && percentages[$i] < 20 )); then
- color="${dis_colors[1]}"
- elif (( percentages[$i] >= 20 && percentages[$i] < 30 )); then
- color="${dis_colors[2]}"
- elif (( percentages[$i] >= 30 && percentages[$i] < 40 )); then
- color="${dis_colors[3]}"
- elif (( percentages[$i] >= 40 && percentages[$i] < 60 )); then
- color="${dis_colors[4]}"
- elif (( percentages[$i] >= 60 && percentages[$i] < 70 )); then
- color="${dis_colors[5]}"
- elif (( percentages[$i] >= 70 && percentages[$i] < 80 )); then
- color="${dis_colors[6]}"
- elif (( percentages[$i] >= 80 )); then
- color="${dis_colors[7]}"
- fi
- ;;
- esac
+ case "${statuses[$i]}" in
+ "Charging")
+ color="$charging_color"
+ ;;
+ "Full")
+ color="$full_color"
+ ;;
+ "AC")
+ color="$ac_color"
+ ;;
+ "Discharging"|"Unknown")
+ if (( percentages[$i] >= 80 )); then
+ color="${dis_colors[7]}"
+ elif (( percentages[$i] >= 70)); then
+ color="${dis_colors[6]}"
+ elif (( percentages[$i] >= 60)); then
+ color="${dis_colors[5]}"
+ elif (( percentages[$i] >= 40)); then
+ color="${dis_colors[4]}"
+ elif (( percentages[$i] >= 30)); then
+ color="${dis_colors[3]}"
+ elif (( percentages[$i] >= 20)); then
+ color="${dis_colors[2]}"
+ elif (( percentages[$i] >= 10)); then
+ color="${dis_colors[1]}"
+ else
+ color="${dis_colors[0]}"
+ fi
+ ;;
+ esac
# Print Battery number if there is more than one
- if (( $end > 1 )) ; then
- message="$message $(($i + 1)):"
+ if (( $end > 1 )) ; then
+ message="$message $(($i + 1)):"
fi
- if [[ "$BLOCK_BUTTON" -eq 1 ]]; then
- message="$message ${statuses[$i]} <span foreground=\"$color\">${percentages[$i]}%${remainings[i]}</span>"
+ if [[ "$BLOCK_BUTTON" -eq 1 ]]; then
+ message="$message ${statuses[$i]} <span foreground=\"$color\">${remainings[i]}</span>"
fi
- message="$message <span foreground=\"$color\">$squares</span>"
+ message="$message <span foreground=\"$color\">$squares ${percentages[$i]}%</span>"
done
echo $message