Entrada

Alerta Personalizada de Batería Baja en Linux

Alerta Personalizada de Batería Baja en Linux

Introducción

Las alertas de batería baja en algunos entornos de escritorios Linux no son muy llamativas, y el estar en un dispositivo el cual queremos cuidar su batería, estas notificaciones pasan por alto en nuestra atención y solo nos volvemos a percatar cuando ya es demasiado tarde. Es por eso que decidí crear esta solución alternativa, ahora que es más fácil crear código para casos de uso sencillos con IA.

Requisitos

Para que funcione esta alerta personalizada, asegúrese de:

  • Tener zenity instalado.
  • Verificar que la variable BATTERY_PATH en el código coincida con su sistema operativo.

Esta alerta no considera el escenario de contar con múltiples baterías.

Vista previa

Para ver una vista previa de esta alerta personalizada, ejecuta:

1
2
3
4
zenity --warning \
       --title="¡Batería Baja\!" \
       --text="Conecta el cargador" \
       2>/dev/null

Desarrollo

Primero, crea el archivo que contendrá el código bash y procede a darle permisos de ejecución.

1
2
sudo touch /usr/local/bin/battery_monitor.sh
sudo chmod +x /usr/local/bin/battery_monitor.sh

Luego, copia y pega en este el siguiente contenido.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/bash
#
# Author: Meyer Pidiache (github.com/meyer-pidiache)
#

BATTERY_THRESHOLD=20
BATTERY_PATH="/sys/class/power_supply/BAT0"

check_battery() {
    BATTERY_LEVEL=$(cat "$BATTERY_PATH/capacity")
    STATUS=$(cat "$BATTERY_PATH/status")

    if [ "$STATUS" == "Discharging" ] && [ "$BATTERY_LEVEL" -le "$BATTERY_THRESHOLD" ]; then
        return 0
    fi
    return 1
}

while check_battery; do
    zenity --warning \
           --title="¡Batería Baja!" \
           --text="Conecta el cargador"
done

Crontab

Finalmente, creemos una tarea programada con Crontab. Ejecuta:

1
crontab -e

Para luego agregar esta línea al final del archivo que se está editando:

1
*/1 * * * * /usr/local/bin/battery_monitor.sh

Resumen

La tarea programada con Crontab ejecutará el archivo bash cada minuto, y este verificará el estado de la batería, si es menor o igual a 20% (BATTERY_THRESHOLD), se mostrará la alerta. Si decide cerrar la alerta, esta se volverá a mostrar hasta que el estado de batería se diferente a descarga, es decir, cuando haya puesto a cargar su dispositivo.

Eliminar alerta

Para deshacer lo realizado, elimina la línea agregada con crontab -e y el archivo ubicado en /usr/local/bin/battery_monitor.sh.

Esta entrada está licenciada bajo CC BY 4.0 por el autor.