diff options
| author | srdusr <trevorgray@srdusr.com> | 2024-01-29 23:52:18 +0200 |
|---|---|---|
| committer | srdusr <trevorgray@srdusr.com> | 2024-01-29 23:52:18 +0200 |
| commit | 0da3cd94e5238af15ccc14b60f7687dad0feb947 (patch) | |
| tree | 5da9091b44881c7cf010e4a5bd6f47ee09a67bc6 /battery.sh | |
| parent | ed2e035cb3ff57158d4d3055f796cb024dc91f37 (diff) | |
| download | dotfiles-0da3cd94e5238af15ccc14b60f7687dad0feb947.tar.gz dotfiles-0da3cd94e5238af15ccc14b60f7687dad0feb947.zip | |
Add battery.sh
Diffstat (limited to 'battery.sh')
| -rwxr-xr-x | battery.sh | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/battery.sh b/battery.sh new file mode 100755 index 0000000..a6c18f4 --- /dev/null +++ b/battery.sh @@ -0,0 +1,131 @@ +#!/usr/bin/bash + +# This script uses upower to get all the battery informations +# https://upower.freedesktop.org/docs/Device.html + +# Check if the system is not a laptop (by checking for the absence of a lid directory) +if [ ! -d "/proc/acpi/button/lid" ]; then + # If not a laptop, show system uptime + ICON="" + COLOR="" + UPTIME=$(uptime -p | sed 's/up //') # Get system uptime + SHORT_UPTIME=$(echo "$UPTIME" | awk -F " " '{print $1$2}' | sed 's/,$//') # Shortened uptime + STRING="$COLOR$ICON Up: $SHORT_UPTIME" + #STRING="$COLOR$ICON Uptime: $UPTIME" + echo "$STRING" + exit 0 +else + # Check if battery information is available + if upower -e | grep -q '/battery'; then + BATTERY_DEVICES=$(upower -e | grep '/battery' | grep -v 'DisplayDevice') + + if [ "$BATTERY_DEVICES" != "" ]; then + CHARGE=$(upower -i "$BATTERY_DEVICES" | awk '/percentage/ {print $2}' | sed 's/%//') + BAT_STATE=$(upower -i "$BATTERY_DEVICES" | awk '/state/ {print $2}') + + # Laptop is on battery, will show info about charging/discharging + if [[ $BAT_STATE == *'discharging'* ]]; then + ICON="" + COLOR="" + STRING="$COLOR$ICON Battery: $CHARGE%" + echo "$STRING" + exit 0 + fi + fi + else + # If no battery information is available + if [[ "$(upower -d | grep 'percentage' | awk '{print $2}')" == "0%" && "$(upower -d | grep 'on-battery' | awk '{print $2}')" == "no" ]]; then + ICON=" " + COLOR="" + STRING="$COLOR$ICON No Bat" + echo "$STRING" + exit 0 + fi + fi +fi + +# Charging +if [[ $BAT_STATE == *'discharging'* ]]; then + if [ "$CHARGE" -eq 0 ]; then + ICON="" + COLOR="%{F#fc8894}" + elif [ "$CHARGE" -gt 0 ] && [ "$CHARGE" -le 10 ]; then + ICON="" + COLOR="%{F#fc8894}" + elif [ "$CHARGE" -gt 10 ] && [ "$CHARGE" -le 20 ]; then + ICON="" + COLOR="%{F#fc8894}" + #notify-send -u critical "Battery Warning" "20% charge remaining!" + elif [ "$CHARGE" -gt 20 ] && [ "$CHARGE" -le 30 ]; then + ICON="" + COLOR="%{F#e3e3e3}" + elif [ "$CHARGE" -gt 30 ] && [ "$CHARGE" -le 40 ]; then + ICON="" + COLOR="%{F#e3e3e3}" + elif [ "$CHARGE" -gt 40 ] && [ "$CHARGE" -le 50 ]; then + ICON="" + COLOR="%{F#e3e3e3}" + elif [ "$CHARGE" -gt 50 ] && [ "$CHARGE" -le 60 ]; then + ICON="" + COLOR="%{F#e3e3e3}" + elif [ "$CHARGE" -gt 60 ] && [ "$CHARGE" -le 70 ]; then + ICON="" + COLOR="%{F#e3e3e3}" + elif [ "$CHARGE" -gt 70 ] && [ "$CHARGE" -le 80 ]; then + ICON="" + COLOR="%{F#8be09c}" + elif [ "$CHARGE" -gt 80 ] && [ "$CHARGE" -le 90 ]; then + ICON="" + COLOR="%{F#8be09c}" + elif [ "$CHARGE" -gt 90 ]; then + ICON="" + COLOR="%{F#8be09c}" + fi + # Discharging +elif [[ $BAT_STATE == *'charging'* ]]; then + if [ "$CHARGE" -eq 0 ]; then + ICON="" + COLOR="%{F#fc8894}" + elif [ "$CHARGE" -gt 0 ] && [ "$CHARGE" -le 10 ]; then + ICON="" + COLOR="%{F#fc8894}" + elif [ "$CHARGE" -gt 10 ] && [ "$CHARGE" -le 20 ]; then + ICON="" + COLOR="%{F#fc8894}" + elif [ "$CHARGE" -gt 20 ] && [ "$CHARGE" -le 30 ]; then + ICON="" + COLOR="%{F#e3e3e3}" + elif [ "$CHARGE" -gt 30 ] && [ "$CHARGE" -le 40 ]; then + ICON="" + COLOR="%{F#e3e3e3}" + elif [ "$CHARGE" -gt 40 ] && [ "$CHARGE" -le 50 ]; then + ICON="" + COLOR="%{F#e3e3e3}" + elif [ "$CHARGE" -gt 50 ] && [ "$CHARGE" -le 60 ]; then + ICON="" + COLOR="%{F#e3e3e3}" + elif [ "$CHARGE" -gt 60 ] && [ "$CHARGE" -le 70 ]; then + ICON="" + COLOR="%{F#e3e3e3}" + elif [ "$CHARGE" -gt 70 ] && [ "$CHARGE" -le 80 ]; then + ICON="" + COLOR="%{F#8be09c}" + elif [ "$CHARGE" -gt 80 ] && [ "$CHARGE" -le 90 ]; then + ICON="" + COLOR="%{F#8be09c}" + elif [ "$CHARGE" -gt 90 ]; then + ICON="" + COLOR="%{F#8be09c}" + fi +elif [[ $BAT_STATE == *'fully-charged'* ]]; then + ICON="" + COLOR="%{F#8be09c}" + #notify-send -u low "Battery Info" "Your battery is fully charged" +elif [[ $BAT_STATE == *'unknown'* ]]; then + ICON="" +fi + +STRING="$COLOR$ICON $CHARGE%" + +# Final formatted output. +echo "$STRING" |
