dotfiles/.local/bin/statusbar/sb-battery
Arthur Khachaturov 628baf3eea
minor updates
2024-09-19 04:25:07 +03:00

40 lines
1 KiB
Bash
Executable file

#!/bin/bash
shopt -s extglob
declare -a batteries
status_by_charge() {
capacity="$1"
if [ "$capacity" -ge 95 ]; then
echo ' '
elif [ "$capacity" -ge 65 ]; then
echo ' '
elif [ "$capacity" -ge 50 ]; then
echo ' '
elif [ "$capacity" -gt 20 ]; then
echo ' '
fi
}
for battery_path in /sys/class/power_supply/!(AC*); do
status="$(cat "${battery_path}/status")"
capacity="$(cat "${battery_path}/capacity")"
sep=$([ "$1" == "-s" ] && echo " ")
case "${status}" in
"Full") status_symbol=" " ;;
"Discharging") status_symbol="$(status_by_charge "${capacity}")" ;;
"Charging") status_symbol="󱐥 " ;;
"Not charging") status_symbol="󱐤 " ;;
"Unknown") status_symbol="󰒲 " ;;
*) status_symbol="?? " ;;
esac
[ "$capacity" -eq 100 ] && status_symbol=" "
[ "$status" = "Discharging" ] && [ "$capacity" -le 20 ] && { status_symbol="❗"; [ -n "$sep" ] && sep="" || sep=" "; }
batteries+=("${status_symbol}${sep}${capacity}%")
done
echo "${batteries[@]}"