#!/bin/bash #application to track battery usage #15NOV2022 KM4ACK ############INSTALL################ #to install, download this script #and start with: #bash battery-tracker install ################################### VERSION=1 MYPATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" DATA_FILE=$HOME/.config/battery-data.txt BATT_DATA=$HOME/.config/battery-size.txt LOGO=/usr/share/icons/HighContrast/scalable/devices/battery.svg INSTALL(){ echo "installing battery tracker" chmod +x ${MYPATH}/battery-tracker sudo mv ${MYPATH}/battery-tracker /usr/local/bin/ echo "checking dependencies" if ! hash bc >/dev/null; then sudo apt install -y bc fi if ! hash yad >/dev/null; then sudo apt install -y yad fi echo "creating menu entry" cat >battery-tracker.desktop <> $DATA_FILE fi if [ ! -f $BATT_DATA ]; then touch $BATT_DATA echo 0| > $BATT_DATA fi TOTAL_USE(){ TOTAL=0 while read -r line; do TOTAL=$(echo $line + $TOTAL | bc -l) done <$DATA_FILE } TOTAL_USE BATTERY(){ SIZE=$(cat $BATT_DATA | awk -F "|" '{print $1}') if [ -z "$SIZE" ]; then SIZE="Not Set" fi BATTERY_SIZE=$(yad --form --height=150 --width=300 --fixed --text-align=center --center --title="Battery Tracker" \ --image ${LOGO} --window-icon=${LOGO} --image-on-top \ --text="Current Battery Size\r${SIZE} AH" \ --field="AH of Battery" \ --button="Set Battery Size":2 \ --button="Cancel":1) BUT=$? if [ $BUT = 1 ]; then MAIN elif [ $BUT = 252 ]; then exit elif [ $BUT = 2 ] || [ $BUT = 0 ]; then echo $BATTERY_SIZE > $BATT_DATA MAIN fi } MAIN(){ SIZE=$(cat $BATT_DATA | awk -F "|" '{print $1}') if [ -z "$SIZE" ]; then SIZE=0 else REMAIN=$(echo $SIZE - $TOTAL | bc -l) fi CURRENT_USE=$(yad --form --height=150 --width=300 --fixed --text-align=center --center --title="Battery Tracker" \ --image ${LOGO} --window-icon=${LOGO} --image-on-top \ --text="Battery Size ${SIZE} AH\rTotal Usage ${TOTAL} AH\rRemaining ${REMAIN} AH" \ --field="AH Used in this session" \ --button="Set Battery Size":4 \ --button="Clear Counter":3 \ --button="Add to Total":2) BUT=$? SESSION_USE=$(echo $CURRENT_USE | awk -F "|" '{print $1}') if [ $BUT = 1 ] || [ $BUT = 252 ]; then exit elif [ $BUT = 3 ]; then rm $DATA_FILE touch $DATA_FILE echo 0 >> $DATA_FILE TOTAL_USE MAIN elif [ $BUT = 4 ]; then BATTERY fi if [ -n $SESSION_USE ]; then echo $SESSION_USE >> $DATA_FILE TOTAL_USE MAIN else MAIN fi TOTAL_USE } MAIN