37 lines
1.2 KiB
Bash
Executable file
37 lines
1.2 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
while true; do
|
|
|
|
batteryStatus=$(cat /sys/class/power_supply/BAT0/status)
|
|
batteryLevel=$(cat /sys/class/power_supply/BAT0/capacity)
|
|
currentPowerSetting=$(powerprofilesctl get)
|
|
|
|
if [ "$batteryLevel" -le "25" ] && [ "$batteryStatus" == "Discharging" ]; then
|
|
notify-send -u critical -i ~/dotfiles/scripts/battery-alert.svg "Low Battery" "25% battery remaining"
|
|
fi
|
|
|
|
|
|
if [ "$batteryLevel" -le "40" ]; then
|
|
if [ "$currentPowerSetting" != "power-saver" ]; then
|
|
powerprofilesctl set power-saver
|
|
notify-send -t 3000 "Battery Saver Turned On"
|
|
fi
|
|
elif [ "$batteryLevel" -ge "40" ] && [ "$batteryLevel" -le "75" ]; then
|
|
if [ "$currentPowerSetting" != "balanced" ]; then
|
|
powerprofilesctl set balanced
|
|
notify-send -t 3000 "Battery Saver Turned Off"
|
|
fi
|
|
elif [ "$batteryLevel" -ge "75" ] && [ "$batteryStatus" == "Charging" ] || [ "$batteryStatus" == "Full" ]; then
|
|
if [ "$currentPowerSetting" != "performance" ]; then
|
|
powerprofilesctl set performance
|
|
notify-send -t 3000 "Performance Mode Turned On"
|
|
fi
|
|
elif [ "$batteryLevel" -ge "75" ]; then
|
|
if [ "$currentPowerSetting" != "balanced" ]; then
|
|
powerprofilesctl set balanced
|
|
notify-send -t 3000 "Performance Mode Turned Off"
|
|
fi
|
|
fi
|
|
|
|
sleep 60
|
|
done
|