distribution/packages/sysutils/system-utils/sources/devices/RK3399/battery_led_status
2023-07-10 23:53:50 +00:00

69 lines
1.5 KiB
Bash

#!/bin/bash
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2020-present Fewtarius
# Simple script to watch the battery capacity and
# turn the power LED orange when it reaches 30%, red at 20%, and blinking red at 10%
. /etc/profile
function set_led() {
case $1 in
red)
echo 0 > /sys/class/leds/battery_green/brightness
echo 1 > /sys/class/leds/battery_red/brightness
;;
green)
echo 1 > /sys/class/leds/battery_green/brightness
echo 0 > /sys/class/leds/battery_red/brightness
;;
orange)
echo 1 > /sys/class/leds/battery_green/brightness
echo 1 > /sys/class/leds/battery_red/brightness
;;
off)
echo 0 > /sys/class/leds/battery_green/brightness
echo 0 > /sys/class/leds/battery_red/brightness
;;
esac
}
while true
do
CAP=$(cat /sys/class/power_supply/battery/capacity)
STAT=$(cat /sys/class/power_supply/battery/status)
ISDISABLED=$(get_setting powerled.disabled)
if [ "${ISDISABLED}" == "1" ]
then
set_led off
else
if [ ${STAT} == "Discharging" ]
then
if (( ${CAP} <= 10 ))
then
for ctr in $(seq 1 1 5)
do
set_led red
sleep .5
set_led off
sleep .5
done
continue
elif (( ${CAP} <= 20 ))
then
set_led red
elif (( ${CAP} <= 30 ))
then
set_led orange
else
set_led green
fi
elif (( ${CAP} >= 95 ))
then
set_led green
fi
sleep 15
fi
done