diff options
| author | srdusr <trevorgray@srdusr.com> | 2025-09-24 05:25:39 +0200 |
|---|---|---|
| committer | srdusr <trevorgray@srdusr.com> | 2025-09-24 05:25:39 +0200 |
| commit | a1627ac743289e768b138f1a60753a62e0869cc4 (patch) | |
| tree | 92ab373442943f621bb26b3b284bb1da90e2923a /unix/sys/low-bat-notifier | |
| parent | fdb0eb921205c34fb6ff5728727a097767ffae5a (diff) | |
| download | dotfiles-a1627ac743289e768b138f1a60753a62e0869cc4.tar.gz dotfiles-a1627ac743289e768b138f1a60753a62e0869cc4.zip | |
Update/Overhaul
Diffstat (limited to 'unix/sys/low-bat-notifier')
| -rwxr-xr-x | unix/sys/low-bat-notifier | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/unix/sys/low-bat-notifier b/unix/sys/low-bat-notifier deleted file mode 100755 index a67b25d..0000000 --- a/unix/sys/low-bat-notifier +++ /dev/null @@ -1,79 +0,0 @@ -#!/bin/bash - -### VARIABLES - -POLL_INTERVAL=120 # seconds at which to check battery level -LAST_NOTIFIED=-1 # track last notified battery percentage to avoid repeated notifications - -# If BAT0 doesn't work for you, check available devices with: -# $ ls -1 /sys/class/power_supply/ -BAT_PATH=/sys/class/power_supply/BAT0 -BAT_STAT=$BAT_PATH/status - -if [[ -f $BAT_PATH/charge_full ]]; then - BAT_FULL=$BAT_PATH/charge_full - BAT_NOW=$BAT_PATH/charge_now -elif [[ -f $BAT_PATH/energy_full ]]; then - BAT_FULL=$BAT_PATH/energy_full - BAT_NOW=$BAT_PATH/energy_now -else - exit -fi - -kill_running() { - local mypid=$$ - local pids - mapfile -t pids < <(pgrep -f "${0##*/}") - - for pid in "${pids[@]}"; do - if [[ $pid -ne $mypid ]]; then - kill "$pid" - sleep 1 - fi - done -} - -get_battery_icon() { - local percent=$1 - if ((percent > 80)); then - echo "đ" # Full battery - elif ((percent > 60)); then - echo "đ" # High battery - elif ((percent > 40)); then - echo "đ" # Medium battery - elif ((percent > 20)); then - echo "đĒĢ" # Low battery - else - echo "â ī¸" # Critical battery - fi -} - -# Run only if battery is detected -if ls -1qA /sys/class/power_supply/ | grep -q BAT; then - - kill_running - - while true; do - bf=$(cat "$BAT_FULL") - bn=$(cat "$BAT_NOW") - bs=$(cat "$BAT_STAT") - - bat_percent=$((100 * $bn / $bf)) - bat_icon=$(get_battery_icon "$bat_percent") - - # Notify only at exact levels: 20%, 15%, and 10% - if [[ ($bat_percent -eq 20 || $bat_percent -eq 15 || $bat_percent -eq 10) && "$bs" = "Discharging" && $bat_percent -ne $LAST_NOTIFIED ]]; then - notify-send --urgency=critical "$bat_icon $bat_percent% : $([[ $bat_percent -eq 10 ]] && echo 'Critical Battery! Shutting down in 1 minute...' || echo 'Low Battery!')" - LAST_NOTIFIED=$bat_percent - - if [[ $bat_percent -eq 10 ]]; then - sleep 60 - shutdown now - fi - elif [[ "$bs" = "Charging" ]]; then - LAST_NOTIFIED=-1 - fi - - sleep "$POLL_INTERVAL" - done -fi |
