Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- battery_level=$(acpi -b | sed -n 's/.*\ \([[:digit:]]\{1,3\}\)\%.*/\1/;p')
- #battery_level=`acpi -b | cut -d ' ' -f 4 | grep -o '[0-9]*'`
- battery_state=$(acpi -b | awk '{print $3}' | tr -d ",")
- #battery_state=$(acpi | grep 'Battery' | sed 's/Battery\s[0-9]*: //' | sed 's/, [0-9][0-9]*\%.*//')
- battery_remaining=$(acpi | grep -oh '[0-9:]* remaining' | sed 's/:\w\w remaining$/ Minutes/' | sed 's/00://' | sed 's/:/h /')
- backlight_cmd=$(which xbacklight)
- backlight_arg=set
- _battery_threshold_level="35"
- _battery_critical_level="25"
- _battery_action=hibernate
- _battery_action_level="15"
- if [ ! -f "/tmp/.battery" ]; then
- echo "${battery_level}" > /tmp/.battery
- echo "${battery_state}" >> /tmp/.battery
- exit
- fi
- previous_battery_level=$(cat /tmp/.battery | head -n 1)
- previous_battery_state=$(cat /tmp/.battery | tail -n 1)
- echo "${battery_level}" > /tmp/.battery
- echo "${battery_state}" >> /tmp/.battery
- checkBatteryLevel() {
- if [ "${battery_state}" != "Discharging" ] || [ "${battery_level}" == "${previous_battery_level}" ]; then
- if [ -f /tmp/.critbatlvl ] && [ "${battery_state}" == "Charging" ]; then
- notify-send.sh -s 99
- rm -f /tmp/.critbatlvl
- fi
- if [ ! -f /tmp/.fullbatlvl ] && [ "${battery_state}" == "Full" ]; then
- notify-send.sh "Full Battery" "Battery is fully charged!"$'\n'"Please unplug the charger." -i ~/.icons/full-battery.svg -u normal -r 43354 -R /tmp/.fullbatlvl
- fi
- exit
- fi
- if [ "${battery_state}" == "Charging" ] && [ ${battery_level} -lt 100 ]; then
- if [ ${battery_level} -le ${_battery_action_level} ]; then
- systemctl ${_battery_action}
- elif [ ${battery_level} -le ${_battery_critical_level} ]; then
- notify-send.sh "Critical Battery" "Your laptop will immediately enter '${_battery_action}' mode, plug the charger into a power outlet to cancel it!" -i ~/.icons/laptop-warning.svg -u critical -r 43352 -R /tmp/.critbatlvl
- ${backlight_cmd} -${backlight_arg} 5
- elif [ ${battery_level} -le ${_battery_threshold_level} ]; then
- notify-send.sh "Low Battery" "${battery_level}% (${battery_remaining}) of battery remaining." -i ~/.icons/low-battery.svg -u normal -r 43353
- ${backlight_cmd} -${backlight_arg} 25
- fi
- if [ -f /tmp/.fullbatlvl ]; then rm -f /tmp/.fullbatlvl; fi
- fi
- }
- checkBatteryStateChange() {
- if [ "$battery_state" != "Discharging" ] && [ "$previous_battery_state" == "Discharging" ]; then
- notify-send "Charging" "Your laptop is connected to a power source." -i ~/.icons/power-charging.svg -u low
- ${backlight_cmd} -${backlight_arg} 100
- fi
- if [ "$battery_state" == "Discharging" ] && [ "$previous_battery_state" != "Discharging" ]; then
- notify-send "Discharging" "Your laptop has been disconnected from power source." -i ~/.icons/power-unplugged.svg -u low
- fi
- }
- # INit
- checkBatteryStateChange
- checkBatteryLevel
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement