In diesem Post entwickle ich mir eine Batterieanzeige für meine I3Blocks Statusbar. Wichtig ist hierbei, dass in der Konfigurationsdatei von I3blocks als markup pango aktiviert ist, da ich so die Farben gestalte.

Ich beginne damit, mir den Akkustand und status aus meinem System zu holen

capacity=$(cat /sys/class/power_supply/BAT0/capacity)
state$(cat /sys/class/power_supply/BAT0/capacity)

Da ich die Farbe der Kapazität gerne linear zum Batteriestand von Rot nach Grün verändert haben möchte errechne ich diese folgendermaßen.

#Für capacity=0 → red_part=255 und für capacity=100 → red_part=0
red_part=$((255-capacity*255/100))
#Für capacity=0 → green_part=0 und für capacity=100 → green_part=255
green_part=$((capacity*255/100))
#Hex string bauen
color=$(printg "%02x" $red_part)
color="'#color$(printf "%02x" $green_part)00'"

Nun wird noch das Icon gesetzt, welches beim Laden/Entladen verwendet werden soll.

if [ "$state" = "Charging" ]; then
    stateIcon="<span color='green'>🔌</span>"
else
    stateIcon="<span color='orange'>🔋</span>"
fi

Zu guter letzt wird das ganze noch ausgegeben.

echo "<span color=$color>$capacity%</capacity> $stateIcon"

Falls ihr (noch) kein Emoji-Font habt, um diese im Terminal darzustellen beschreibe ich in diesem Blogpost, wie ich mir mein eigenes Emoji-Font erstel lt habe.