Files
Scripts/battery
2023-10-20 03:48:37 +05:30

57 lines
1.8 KiB
Bash
Executable File

#!/usr/bin/sh
# Script: battery
# License: MIT
# Author: Arkaprabha Chakraborty
# Created: 07-08-23
# Dependencies: dunstify
#
# Copyright (C) 2023 Arkaprabha Chakraborty
PROG=dunstify
# icon paths
BATTERY_FULL=/usr/share/icons/Papirus/48x48/status/battery-full.svg
BATTERY_LOW=/usr/share/icons/Papirus/48x48/status/battery-low.svg
BATTERY_CAUTION=/usr/share/icons/Papirus/48x48/status/battery-caution.svg
AC_ADAPTER=/usr/share/icons/Papirus/48x48/status/ac-adapter.svg
# capacity checkpoints
LOW=20
CRITICAL=10
# status flags
last_capacity=NONE
last_status=None
while true; do
BATTERY="/sys/class/power_supply/CMB0"
if [ -d $BATTERY ]; then
capacity=$(cat $BATTERY/capacity)
status=$(cat $BATTERY/status)
if [ $last_status = "None" ]; then
last_status=$status
elif [ $last_status != "Discharging" ] && [ $status = "Discharging" ]; then
$PROG "Power Unplugged" --replace 667 --icon $AC_ADAPTER --timeout 2000
last_status=$status
elif [ $last_status != "Charging" ] && [ $status = "Charging" ]; then
$PROG "Power Plugged" --replace 667 --icon $AC_ADAPTER --timeout 2000
last_status=$status
fi
if [ $last_capacity != "FULL" ] && [ $status = "Full" ]; then
$PROG "Battery Full" --replace 666 --icon $BATTERY_FULL
last_capacity="FULL"
elif [ $last_capacity != "LOW" ] && [ $status = "Discharging" ] &&
[ $capacity -le $LOW ] && [ $capacity -gt $CRITICAL ]; then
$PROG "Battery Low: $capacity%" --replace 666 --icon $BATTERY_LOW
last_capacity=LOW
elif [ $status = "Discharging" ] && [ $capacity -le $CRITICAL ]; then
$PROG --urgency critical "Battery Critical: $capacity%" --replace 666 --icon $BATTERY_CAUTION
last_capacity=CRITICAL
fi
fi
sleep 2
done