Explorar el Código

dev: automated commit - 2025-09-29 15:58:41

Mariano Z. hace 4 meses
padre
commit
e1a5203154
Se han modificado 1 ficheros con 36 adiciones y 0 borrados
  1. 36 0
      local-bin/.local/bin/battery-monitor

+ 36 - 0
local-bin/.local/bin/battery-monitor

@@ -0,0 +1,36 @@
+#!/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