#!/bin/bash BATTERY="BAT1" CAPACITY=$(cat /sys/class/power_supply/$BATTERY/capacity) STATUS=$(cat /sys/class/power_supply/$BATTERY/status) # Define icons ICON_FULL="" # nf-fa-battery_full ICON_HIGH="" # nf-fa-battery_three_quarters ICON_MEDIUM="" # nf-fa-battery_half ICON_LOW="" # nf-fa-battery_quarter ICON_EMPTY="" # nf-fa-battery_empty ICON_CHARGING_HIGH="󱊦" # nf-md-battery_charging_outline ICON_CHARGING_MEDIUM="󱊥" # nf-md-battery_charging_medium ICON_CHARGING_LOW="󱊤" # nf-md-battery_charging_low ICON_CHARGING_OUTLINE="󰢟" # nf-md-battery_charging_high # Define colors COLOR_NORMAL="#FFFFFF" # White COLOR_WARNING="#FFA500" # Orange COLOR_CRITICAL="#FF0000" # Red # Set icon based on capacity and status if [ "$STATUS" = "Charging" ] || [ "$STATUS" = "Full" ]; then if [ $CAPACITY -ge 90 ]; then ICON=$ICON_CHARGING_HIGH elif [ $CAPACITY -ge 60 ]; then ICON=$ICON_CHARGING_MEDIUM elif [ $CAPACITY -ge 30 ]; then ICON=$ICON_CHARGING_LOW else ICON=$ICON_CHARGING_OUTLINE fi else if [ $CAPACITY -ge 80 ]; then ICON=$ICON_FULL elif [ $CAPACITY -ge 60 ]; then ICON=$ICON_HIGH elif [ $CAPACITY -ge 30 ]; then ICON=$ICON_MEDIUM elif [ $CAPACITY -ge 10 ]; then ICON=$ICON_LOW else ICON=$ICON_EMPTY fi fi # Set color based on capacity if [ $CAPACITY -le 20 ] && [ "$STATUS" != "Charging" ] && [ "$STATUS" != "Full" ]; then COLOR=$COLOR_WARNING if [ $CAPACITY -le 10 ]; then COLOR=$COLOR_CRITICAL fi else COLOR=$COLOR_NORMAL fi # Read the toggle state TOGGLE_STATE=$(cat ~/.config/polybar/scripts/battery_toggle_state) # Output for Polybar if [ "$TOGGLE_STATE" == "icon" ]; then echo "%{F$COLOR}$ICON%{F-}" else echo "%{F$COLOR}$CAPACITY%%{F-}" fi