aboutsummaryrefslogtreecommitdiff
path: root/battery.sh
diff options
context:
space:
mode:
authorsrdusr <trevorgray@srdusr.com>2024-01-29 23:52:18 +0200
committersrdusr <trevorgray@srdusr.com>2024-01-29 23:52:18 +0200
commit0da3cd94e5238af15ccc14b60f7687dad0feb947 (patch)
tree5da9091b44881c7cf010e4a5bd6f47ee09a67bc6 /battery.sh
parented2e035cb3ff57158d4d3055f796cb024dc91f37 (diff)
downloaddotfiles-0da3cd94e5238af15ccc14b60f7687dad0feb947.tar.gz
dotfiles-0da3cd94e5238af15ccc14b60f7687dad0feb947.zip
Add battery.sh
Diffstat (limited to 'battery.sh')
-rwxr-xr-xbattery.sh131
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"