Enforce the repo convention that committed text is English. Translates ABOUTME headers, code comments, log/error messages, shell prompts, and documentation across all files. CLAUDE.md files remain in German per policy.
20 lines
770 B
Bash
Executable File
20 lines
770 B
Bash
Executable File
#!/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="/usr/share/icons/Newaita-reborn/status/symbolic/battery-empty-symbolic.svg"
|
|
|
|
for d in $(upower -e); do
|
|
DEVICE_DATA=$(upower -i "$d")
|
|
PERCENTAGE=$(echo $DEVICE_DATA | grep -Po '(?<=(percentage: )).*(?= icon)')
|
|
PER_INT=$(echo "${PERCENTAGE//%}")
|
|
DEVICE_NAME=$(echo $DEVICE_DATA | grep -Po '(?<=(model: )).*(?= serial)')
|
|
|
|
if [ ! -z "$DEVICE_NAME" ] && [ "$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
|