diff options
Diffstat (limited to '.config/i3blocks/scripts')
| -rwxr-xr-x | .config/i3blocks/scripts/batterybar | 178 |
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 |
