Este proyecto consiste en un script diseñado para monitorear el estado de la batería de una laptop que utiliza el sistema operativo Linux. El script verifica periódicamente el nivel de la batería y envía notificaciones cuando el nivel de carga es crítico, ayudando a prevenir apagones inesperados y permitiendo al usuario concentrarse en su trabajo sin preocuparse por la duración de la batería.
Como programador, a menudo me encuentro absorto en mi trabajo, lo que me lleva a perder de vista el estado de la batería de mi laptop. Para evitar interrupciones en mi flujo de trabajo debido a una batería agotada, desarrollé este script que me avisa cuando la carga de la batería es baja, permitiéndome prevenir apagones innecesarios. Este proyecto surge de la necesidad de automatizar esta tarea y mejorar mi productividad.
- Python 3 instalado en tu sistema.
- Dependencias de Python:
psutil
ynotify_py
. systemd
instalado y configurado en tu sistema.
-
Clona el repositorio en una ubicación deseada (por ejemplo,
/opt
):sudo git clone https://github.com/brianmrdev/check_low_battery.git /opt/check_low_battery
-
Crea y activa un entorno virtual en la carpeta del proyecto:
cd /opt/check_low_battery sudo python3 -m venv env source env/bin/activate
-
Cambia los permisos del directorio:
sudo chown -R tu_usuario:tu_usuario /opt/check_low_battery
-
Instala las dependencias:
pip install psutil notify_py
-
Crea un archivo de servicio en
/etc/systemd/system/battery-monitor.service
:sudo nano /etc/systemd/system/battery-monitor.service
-
Añade la siguiente configuración en el archivo:
[Unit] Description=Battery Monitor Script After=graphical.target [Service] Type=simple ExecStart=/opt/check_low_battery/env/bin/python3 /opt/check_low_battery/main.py WorkingDirectory=/opt/check_low_battery Restart=always User=tu_usuario Environment=DISPLAY=:0 Environment=XAUTHORITY=/home/tu_usuario/.Xauthority Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/tu_id/bus Environment=XDG_RUNTIME_DIR=/run/user/tu_id [Install] WantedBy=graphical.target
Nota: Ejecuta el script
check_env_vars.py
y remplaza las variables que te devuelve. -
Guarda el archivo y recarga los servicios de systemd para aplicar los cambios:
sudo systemctl daemon-reload
-
Habilita y ejecuta el servicio:
sudo systemctl enable battery-monitor.service
sudo systemctl start battery-monitor.service
Para comprobar si el servicio está funcionando correctamente, usa el siguiente comando:
systemctl status battery-monitor.service
- Puedes personalizar las notificaciones y sonidos modificando los archivos correspondientes en la carpeta
utils
. - Para ajustar el idioma, modifica la variable
LANGUAGE
en el archivomain.py
:LANGUAGE = "es" # Las opciones posibles son "es" para español o "en" para inglés
- Para cambiar el umbral de alerta de batería, modifica la constante
BATTERY_LOW_THRESHOLD
en el archivomain.py
:BATTERY_LOW_THRESHOLD = 30 # Porcentaje de batería baja
- Para ajustar el intervalo de chequeo, modifica la constante
CHECK_INTERVAL
en el archivomain.py
:CHECK_INTERVAL = 600 # Intervalo de tiempo en segundos (10 minutos)
Para deshabilitar y eliminar el servicio:
-
Detén y deshabilita el servicio:
sudo systemctl stop battery-monitor.service
sudo systemctl disable battery-monitor.service
-
Elimina el archivo de servicio:
sudo rm /etc/systemd/system/battery-monitor.service
-
Recarga los demonios de systemd:
sudo systemctl daemon-reload
Las contribuciones son bienvenidas. Si deseas agregar nuevas características o corregir errores, por favor, abre un pull request o inicia una discusión.
- Haz un fork del repositorio.
- Crea una nueva rama (
git checkout -b feature/nueva-caracteristica
). - Realiza tus cambios y haz commit (
git commit -m "Descripción de los cambios"
). - Haz push a la rama (
git push origin feature/nueva-caracteristica
). - Abre un pull request.
Este proyecto está licenciado bajo los términos de la MIT License.