75 lines
2.3 KiB
Bash
Executable File
75 lines
2.3 KiB
Bash
Executable File
#!/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
|