#!/bin/bash # NOTE: This script is run by cron periodically export XDG_RUNTIME_DIR="/run/user/$(id -u)" acpi_report="$(acpi | grep -v unavailable | head -n 1)" sensors_report="$(sensors | grep "Package id 0:")" # Battery charge check local_percent="$(echo $acpi_report | awk '{print $4}')" local_state="$(echo $acpi_report | awk '{print $3}')" local_time="$(echo $acpi_report | awk '{print $5}')" battery_message=("Warning: " "Battery charge critical") temperature_message=("Warning: " "Core temperature critical") if ((${local_percent::-2} <= 15)); then if [[ "${local_state::-1}" == "Discharging" ]]; then notify-send "${battery_message[0]}" "${battery_message[1]}" -u critical # espeak "${battery_message[0]}${battery_message[1]}" fi elif ((${local_percent::-2} >= 90)); then if [[ "${local_state::-1}" == "Charging" ]]; then notify-send "${battery_message[0]}" "${battery_message[1]}" -u critical # espeak "${battery_message[0]}${battery_message[1]}" fi fi # Core temperature check local_temp="$(echo $sensors_report | awk '{print $4}' | sed 's/+//g')" local_temp_high="$(echo $sensors_report | awk '{print $7}' | sed 's/+//g')" if ((${local_temp::-4} >= 90)); then notify-send "${temperature_message[0]}" "${temperature_message[1]}" -u critical # espeak "${temperature_message[0]}${temperature_message[1]}" fi