¿Cómo puedo recibir una notificación cuando la batería de mi computadora portátil se carga completamente?

12

A veces, mi cargador permanece enchufado a la computadora portátil incluso después de que se completa la carga.

¿Hay alguna forma de recibir un mensaje / notificación emergente cuando mi batería se llena debido a la carga o hay algún software / paquete que pueda proporcionar la funcionalidad?

Ankit
fuente

Respuestas:

7

Instala el acpipaquete. Ahora pon esto return0whencharging.shy 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-biny mpvy 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 -vinvierte la coincidencia y, por lo tanto, el código de retorno / estado. -Esignifica 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 grepsignifica 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 grepsalir con el código de estado 0. Esto significa que grepdevolverá 1 siempre que la computadora esté cargando. El iflo ejecutará de primera rama cuando el código de estado es 0,grepexit 1cuando grep sale de 0 y exit 0cuando grep existe distinto de cero.

Janus Troelsen
fuente
si quieres que te expliquen estos comandos, solo pregúntame
Janus Troelsen
No estoy seguro de lo que hará este grep -vE ": [\ t] * charge $". ¿Podría por favor explicar los comandos? gracias
Ankit
explicación adicional
Janus Troelsen
¿Y dónde está este return0whencharging.sharchivo? O si lo creo, ¿hay un lugar específico donde deba guardarlo?
Parto
@AvatarParto: no importa dónde. el nombre tampoco importa, siempre y cuando lo cambies a todas partes
Janus Troelsen
7

He escrito un pequeño guión que hará eso:

captura de pantalla


Guión:

#!/usr/bin/env bash
while true
do
    export DISPLAY=:0.0
    battery_percent=$(acpi -b | grep -P -o '[0-9]+(?=%)')
    if on_ac_power; then
        if [ "$battery_percent" -gt 95 ]; then
            notify-send -i "$PWD/batteryfull.png" "Battery full." "Level: ${battery_percent}% "
        fi
    fi
    sleep 300 # (5 minutes)
done

Instalación:

Correr:

sudo apt-get install acpi
git clone https://github.com/hg8/battery-full-notification.git
cd battery-full-notification/
chmod +x batteryfull.sh

Copie el script a la ~/bincarpeta ( ¿por qué la carpeta ~ / bin? ):

cp batteryfull.* ~/bin

O cópielo /usr/local/binsi desea que esté disponible para todos los usuarios de su computadora:

cp batteryfull.* /usr/local/bin

Luego agregue batteryfull.shscript como una aplicación de inicio:

  • Tablero abierto
  • Buscar aplicaciones de inicio
  • Haga doble clic en el ícono
  • Haga clic Addy complete de la siguiente manera:

    aplicación de inicio con batería completa

hg8
fuente