| 123456789101112131415161718192021222324252627282930313233343536 |
- #!/usr/bin/env bash
- # Designed to be run by systemd timer every 30 seconds and alerts if battery is low
- BATTERY_THRESHOLD=10
- NOTIFICATION_FLAG="/run/user/$UID/omarchy_battery_notified"
- get_battery_percentage() {
- upower -i "$(upower -e | grep 'BAT')" |
- awk -F: '/percentage/ {
- gsub(/[%[:space:]]/, "", $2);
- val=$2;
- printf("%d\n", (val+0.5))
- exit
- }'
- }
- get_battery_state() {
- upower -i $(upower -e | grep 'BAT') | grep -E "state" | awk '{print $2}'
- }
- send_notification() {
- notify-send -u critical " Time to recharge!" "Battery is down to ${1}%" -i battery-caution -t 30000
- }
- BATTERY_LEVEL=$(get_battery_percentage)
- BATTERY_STATE=$(get_battery_state)
- if [[ "$BATTERY_STATE" == "discharging" && "$BATTERY_LEVEL" -le "$BATTERY_THRESHOLD" ]]; then
- if [[ ! -f "$NOTIFICATION_FLAG" ]]; then
- send_notification "$BATTERY_LEVEL"
- touch "$NOTIFICATION_FLAG"
- fi
- else
- rm -f "$NOTIFICATION_FLAG"
- fi
|