Instala el acpi
paquete. Ahora pon esto return0whencharging.sh
y hazlo ejecutable:
#!/bin/sh
acpi -V
if cat /proc/acpi/battery/BAT1/state | grep "charging state" | grep -vE ":[\t ]*charging$"; then
exit 1
else
exit 0
fi
Si echo -e "\a"
emite un sonido, comience esto cuando desee ver el estado de la batería:
watch --beep return0whencharging.sh
Si no se emite ningún sonido o si desea una notificación y una mejor alarma de reloj lo puede proporcionar, instalar libnotify-bin
y mpv
y utilizar en su lugar:
while return0whencharging.sh; do sleep 1; done; notify-send "Finished charging" && mpv -loop /usr/share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga
explicación :
Si observa grep en la página de manual , puede ver que -v
invierte la coincidencia y, por lo tanto, el código de retorno / estado. -E
significa que es una expresión regular. el [\t ]
en la expresión regular (expresión regular) significa "tabulación o espacio". La siguiente estrella significa "tabulación o espacio 0 o más veces". El "$" final significa que debe coincidir con el final de la línea. El final grep
significa que las líneas NO terminan en ":", cualquier número de pestañas o espacios y luego "cargando" y el final de la línea debe grep
salir con el código de estado 0. Esto significa que grep
devolverá 1 siempre que la computadora esté cargando. El if
lo ejecutará de primera rama cuando el código de estado es 0,grep
exit 1
cuando grep sale de 0 y exit 0
cuando grep existe distinto de cero.