parent
a06f308864
commit
c440417ea4
@ -0,0 +1,7 @@
|
||||
[Unit]
|
||||
Description=Battery monitoring on CapsLock LED
|
||||
|
||||
[Service]
|
||||
ExecStart="/usr/bin/battery_led.sh"
|
||||
Type=idle
|
||||
|
@ -0,0 +1,51 @@
|
||||
#!/bin/bash
|
||||
|
||||
# limits in percentages
|
||||
LOW=10 # flip LED every 2s
|
||||
CRIT=5 # flip led every 0.5s
|
||||
|
||||
BAT_FULL=`cat /sys/class/power_supply/BAT0/energy_full_design`
|
||||
CAPSLOCK_LED=`cat /sys/class/leds/input4\:\:capslock/brightness`
|
||||
|
||||
LED_DEV=/sys/class/leds/input4\:\:capslock/brightness
|
||||
|
||||
|
||||
CNT=0
|
||||
while :
|
||||
do
|
||||
# If charging, sleep 1m, then restart the cycle
|
||||
STATUS=`cat /sys/class/power_supply/BAT0/status`
|
||||
if [ $STATUS == "Charging" ] ; then
|
||||
echo 0 > $LED_DEV
|
||||
sleep 1m
|
||||
continue
|
||||
fi
|
||||
|
||||
BAT_NOW=`cat /sys/class/power_supply/BAT0/energy_now`
|
||||
BAT_PCT=$(($BAT_NOW * 100 / $BAT_FULL))
|
||||
|
||||
# If battery has more than >10% left, sleep 1m then restart the cycle
|
||||
if (($BAT_PCT > $LOW )) ; then
|
||||
sleep 1m
|
||||
continue
|
||||
fi
|
||||
|
||||
sleep 0.5s
|
||||
CNT=$((CNT+1))
|
||||
|
||||
# If battery <5% (crytical) flip capslock LED every 0.5s
|
||||
if (( $BAT_PCT <= $CRIT )) ; then
|
||||
CAPSLOCK_LED=$((1 ^ $CAPSLOCK_LED))
|
||||
echo $CAPSLOCK_LED > $LED_DEV
|
||||
# If battery is on low, but not crytical, flip LED every 4th 0.5s (2s)
|
||||
elif (( $BAT_PCT <= $LOW )) && (( $CNT % 4 == 1 )) ; then
|
||||
CAPSLOCK_LED=$((1 ^ $CAPSLOCK_LED))
|
||||
echo $CAPSLOCK_LED > $LED_DEV
|
||||
fi
|
||||
|
||||
# not sure if i need this:
|
||||
if (( $CNT > 100000 )) ; then
|
||||
CNT=1
|
||||
fi
|
||||
done
|
||||
|
Loading…
Reference in new issue