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
zenityinstalado. - Verificar que la variable
BATTERY_PATHen 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.