#!/bin/bash # ABOUTME: Checks Bluetooth devices for low battery and sends a notification. # ABOUTME: Can be run periodically via timer or cron. NOTIFY_AT_PERCENTAGE=70 ICON="battery-empty" while IFS= read -r d; do [ -z "$d" ] && continue DEVICE_DATA=$(upower -i "$d") PER_INT=$(echo "$DEVICE_DATA" | grep -oP 'percentage:\s+\K[0-9]+') DEVICE_NAME=$(echo "$DEVICE_DATA" | grep -oP 'model:\s+\K.+') if [ -n "$DEVICE_NAME" ] && [ -n "$PER_INT" ] && [ "$PER_INT" -lt "$NOTIFY_AT_PERCENTAGE" ]; then notify-send -t 5000 -e "Low battery $DEVICE_NAME $PER_INT%" -i "$ICON" \ -h string:x-canonical-private-synchronous:battery \ -h int:value:"$PER_INT" -u critical fi done < <(upower -e)