#!/usr/bin/bash
# ABOUTME: Toggles battery conservation mode between 80% and 100% charge limit.
# ABOUTME: Writes to sysfs (immediate) and state file (persistence across reboots).

THRESHOLD_FILE="/sys/class/power_supply/BAT0/charge_control_end_threshold"
STATE_DIR="/var/lib/moonarch"
STATE_FILE="${STATE_DIR}/batsaver-threshold"
CONSERVATION_LIMIT=80

[[ -f "$THRESHOLD_FILE" ]] || exit 1

CURRENT=$(cat "$THRESHOLD_FILE")
[[ "$CURRENT" =~ ^[0-9]+$ ]] || exit 1

if [[ "$CURRENT" -le "$CONSERVATION_LIMIT" ]]; then
    NEW=100
else
    NEW="$CONSERVATION_LIMIT"
fi

# Apply immediately
echo "$NEW" > "$THRESHOLD_FILE" || exit 1

# Persist for next boot
mkdir -p "$STATE_DIR"
echo "$NEW" > "$STATE_FILE" || exit 1

# Signal Waybar to refresh the batsaver module (SIGRTMIN+9)
pkill -RTMIN+9 waybar
