suckless/home/.local/bin/bateria
alejandrogs73 a83294ace4
doas, pinentry-dmenu y scripts en vez de blueman, autorandr y gammastep
- doas en vez de sudo (sistema/etc/doas.conf; xbps.d permite quitar sudo).
- pinentry-dmenu en X y pinentry-curses en una tty (pinentry-menu); fuera
  GTK 2 (.gtkrc-2.0 y el arreglo de colores del tema).
- bluetooth: menú de dmenu con bluetoothctl en vez de blueman.
- pantallas: xrandr a pelo en vez de autorandr, también desde udev.
- luz: sct cada minuto en vez de gammastep.
- xwallpaper para el fondo y nsxiv para las imágenes de st, en vez de feh.
- volumen salida en vez de pavucontrol; menu reúne los colores de dmenu.
- mpv en vez de vlc; fuera btop.
- install.sh: paso quitar para desinstalar lo sustituido.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C5v1qWDwgkaVM5kjVHGGh8
2026-09-28 12:12:51 +02:00

40 lines
1.4 KiB
Bash
Executable file

#!/bin/sh
# Avisa con una notificación cuando la batería baja del 15 % y del 5 %
# mientras se descarga, y al 3 % suspende (con slock, como al cerrar la
# tapa) en vez de dejar que se apague de golpe. Cada umbral actúa una vez;
# al enchufar el cargador se reinicia. Se lanza desde .xinitrc y comprueba
# cada minuto. Suspender usa "doas -n zzz" (regla en sistema/etc/doas.conf).
BAJA=15
CRITICA=5
SUSPENDER=3
bat=
for b in /sys/class/power_supply/BAT*; do
[ -e "$b/capacity" ] && bat=$b && break
done
[ -n "$bat" ] || exit 0
avisado=100
while :; do
nivel=$(cat "$bat/capacity")
estado=$(cat "$bat/status")
if [ "$estado" != Discharging ]; then
avisado=100
elif [ "$nivel" -le "$SUSPENDER" ] && [ "$avisado" -gt "$SUSPENDER" ]; then
notify-send -u critical -h string:x-dunst-stack-tag:bateria \
-i battery-empty "Batería agotada" "Queda un $nivel %: suspendiendo en 10 s"
avisado=$SUSPENDER
sleep 10
[ "$(cat "$bat/status")" = Discharging ] && doas -n zzz
elif [ "$nivel" -le "$CRITICA" ] && [ "$avisado" -gt "$CRITICA" ]; then
notify-send -u critical -h string:x-dunst-stack-tag:bateria \
-i battery-empty "Batería crítica" "Queda un $nivel %: enchufa el cargador ya"
avisado=$CRITICA
elif [ "$nivel" -le "$BAJA" ] && [ "$avisado" -gt "$BAJA" ]; then
notify-send -h string:x-dunst-stack-tag:bateria \
-i battery-caution "Batería baja" "Queda un $nivel %"
avisado=$BAJA
fi
sleep 60
done