71 lines
1.5 KiB
Bash
Executable File
71 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Prints out battery percentage
|
|
|
|
# Global config
|
|
source config
|
|
|
|
# At which levels to trigger emoji at
|
|
max=80
|
|
high=70
|
|
midhi=60
|
|
mid=40
|
|
low=20
|
|
warn=20
|
|
crit=5
|
|
|
|
# Emoji used by module
|
|
i_charging=" "
|
|
i_warning=" "
|
|
i_full=" "
|
|
i_high=" "
|
|
i_midhi=" "
|
|
i_mid=" "
|
|
i_low=" "
|
|
i_empty=" "
|
|
|
|
# status2d patch alternating background
|
|
# background="^b#333333^"
|
|
# background="^b#222222^"
|
|
|
|
# Read battery data
|
|
bat_data="/sys/class/power_supply/BAT?*"
|
|
|
|
get_battery() {
|
|
icon=""
|
|
bat_icon=""
|
|
|
|
# The vast majority of people only use one battery.
|
|
if [ ! -d $bat_data ]; then return; fi
|
|
|
|
# Get battery capacity and charging state
|
|
capacity=$(cat $bat_data/capacity)
|
|
charging=$(cat $bat_data/status)
|
|
|
|
# Add warning/charging symbols
|
|
if [[ "$charging" == "Charging" ]]; then icon="$i_charging"
|
|
elif [[ $capacity -le $warn ]]; then icon="$i_warning"
|
|
fi
|
|
|
|
# Change battery symbol depending on capacity
|
|
if [[ $capacity -ge $max ]]; then bat_icon=$i_full
|
|
else
|
|
case 1 in
|
|
$(($capacity < $crit)) ) bat_icon=$i_empty ;;
|
|
$(($capacity < $low)) ) bat_icon=$i_low ;;
|
|
$(($capacity < $mid)) ) bat_icon=$i_mid ;;
|
|
$(($capacity < $midhi)) ) bat_icon=$i_midhi ;;
|
|
$(($capacity < $high)) ) bat_icon=$i_high ;;
|
|
* ) bat_icon=$i_full ;;
|
|
esac
|
|
fi
|
|
|
|
# Normalize capacity to a value between 0 and 100
|
|
capacity=$(awk -v cap="$capacity" -v max="$max" \
|
|
'BEGIN { printf "%.0f", cap * 100 / max }')
|
|
|
|
echo "$background$wb$icon$bat_icon $capacity%$we^d^"
|
|
}
|
|
|
|
get_battery
|