#!/bin/sh # ABOUTME: Restores the saved battery charge end threshold on boot. # ABOUTME: Skips silently when the kernel already reports the same value (avoids EINVAL on some Lenovo drivers). set -eu STATE_FILE="/var/lib/moonarch/batsaver-threshold" SYS_FILE="/sys/class/power_supply/BAT0/charge_control_end_threshold" [ -f "$STATE_FILE" ] || exit 0 [ -f "$SYS_FILE" ] || exit 0 V=$(cat "$STATE_FILE") case "$V" in ""|*[!0-9]*) exit 0 ;; esac [ "$V" -ge 1 ] && [ "$V" -le 100 ] || exit 0 # Some Lenovo drivers reject writing the same value with EINVAL. C=$(cat "$SYS_FILE") [ "$C" = "$V" ] && exit 0 printf %s "$V" > "$SYS_FILE"