#!/usr/bin/env zsh if [[ "$(uname)" = 'Linux' ]]; then let charge_full="$(cat '/sys/class/power_supply/BAT0/charge_full')." function get_battery_percent { let charge_now="$(cat '/sys/class/power_supply/BAT0/charge_now')." printf '%.0f' "$((charge_now / charge_full * 100))" } function is_adapted_connected { let connected="$(cat /sys/class/power_supply/ADP1/online)" ((${connected} == 1)) } function get_discharging_battery_icon { let charge_percent="${1}" if ((${charge_percent} <= 10)); then echo -n '󰂃' elif ((${charge_percent} <= 20)); then echo -n '󰁻' elif ((${charge_percent} <= 30)); then echo -n '󰁼' elif ((${charge_percent} <= 40)); then echo -n '󰁽' elif ((${charge_percent} <= 50)); then echo -n '󰁾' elif ((${charge_percent} <= 60)); then echo -n '󰁿' elif ((${charge_percent} <= 70)); then echo -n '󰂀' elif ((${charge_percent} <= 80)); then echo -n '󰂁' elif ((${charge_percent} < 100)); then echo -n '󰂂' else echo -n '󰁹' fi } function get_charging_battery_icon { let charge_percent="${1}" if ((${charge_percent} <= 10)); then echo -n '󰢜' elif ((${charge_percent} <= 20)); then echo -n '󰂆' elif ((${charge_percent} <= 30)); then echo -n '󰂇' elif ((${charge_percent} <= 40)); then echo -n '󰂈' elif ((${charge_percent} <= 50)); then echo -n '󰢝' elif ((${charge_percent} <= 60)); then echo -n '󰢝' elif ((${charge_percent} <= 70)); then echo -n '󰢞' elif ((${charge_percent} <= 80)); then echo -n '󰂊' elif ((${charge_percent} < 100)); then echo -n '󰂋' else echo -n '󰂅' fi } let cp="$(get_battery_percent)" is_adapted_connected \ && get_charging_battery_icon "${cp}" \ || get_discharging_battery_icon "${cp}" printf '%3d%%\n' "${cp}" # Linux ends here else echo "${0}: error: unknown os: \"$(uname)\"" >&2 exit 1 fi