Script conciso y personalizable para enviar notificaciones a su escritorio GNU/Linux si el nivel de batería de su computadora portátil alcanza un cierto nivel de umbral mínimo o máximo.
En uso y probado en Debian Running Gnome solamente, pero debería funcionar en otras distribuciones y entornos de escritorio. El script verificará sus necesidades y le hará saber lo que falta, al hacer una ejecución manual inicial (consulte las instrucciones a continuación).

¿Qué está logrando este guión?
¡Prefiero ahorrar algunos centavos al año desconectando cosas que no necesitan enchufar! Del mismo modo, el fabricante de mi computadora portátil también sugiere un hábito de carga de 20/80 para mantener la batería en niveles óptimos.
He experimentado carga parcial frente a carga completa y 20/80 parece darle a mi batería la mejor vida útil.
El entorno de escritorio que estoy usando actualmente no parece tener de forma nativa la capacidad de umbral de alerta de la batería y mi modelo de computadora portátil no tiene los umbrales de inicio/parada en SYSFS.
La mayoría de las soluciones existentes están hinchadas con características que no necesito (o carecen de la capacidad de MAX/COMERSIONACIONES). Simplemente quería un recordatorio de notificación para enchufar o eliminar la alimentación cuando la carga de la batería está en mis niveles preferidos sin tener que mirar continuamente los iconos simbólicos en la GUI.
Clon el repositorio a un directorio en su PC donde el script puede permanecer accesible en Userland (no es necesario root/sudo)
git clone https://github.com/angela-d/battery-max.gitLuego, haga una ejecución manual, para asegurarse de que funcione (verificará para asegurarse de que su ruta de murciélago sea donde se esperan y se instalan dependencias; lo solicitará a través del terminal si algo está mal).
Simplemente ejecute el camino completo hacia check-battery :
/storage/battery-max/check-battery (Reemplace /storage/battery-max para la ruta local en su sistema, donde se mantendrá check-battery )
¡Eso es todo! Configurar un cron para automatizar las verificaciones.
Esto activará el script para verificar el estado de su batería en el intervalo predefinido que establece
crontab -e Si desea que el script se ejecute cada minuto (reemplace /storage/battery-max/ para la ruta local en su sistema):
* * * * * /storage/battery-max/check-batteryTenga en cuenta que si opta por ejecutar esto cada minuto, es posible que desee considerar el bloqueo de Cron de/var/log/syslog, de lo contrario verá tal spam:
28 de diciembre 01:50:01 Debian Cron [28999]: (Angela) CMD (/Storage/Battery-Max/Check-Battery
Si simplemente desea dirigir los mensajes cron a su propio registro y no eliminarlos por completo (que es lo que hará mi ejemplo a continuación), especifique así en /etc/rsyslog.conf
Para aplastar este registro inútil, puede ejecutar (opcional) :
pico /etc/rsyslog.confEncuentra la línea:
* . * ; auth,authpriv.none -/var/log/syslog Agregar cron , así:
* . * ; cron,auth,authpriv.none -/var/log/syslogReiniciar rsyslog:
service rsyslog restart Abra check-battery y verá una serie de variables que puede ajustar para satisfacer sus necesidades:
# modify the following to suit
BAT_PATH=/sys/class/power_supply/BAT0/
AVAIL= $( cat $BAT_PATH " capacity " )
MIN=70
MAX=80
NOTIFY_TITLE= " Battery Level Threshold Met "
NOTIFY_MSG= " Battery level is at "
ICON= " battery "
FREQ=15Explicación de las variables:
/usr/share/icons/[current theme name] o ~/.local/share/icons/[current theme name]Si prefiere dejar la batería conectada las 24 horas del día, los 7 días de la semana, este script no es útil para usted y utilizar las capacidades de umbral de TLP podría ser más adecuada, si está en una computadora portátil IBM o ThinkPad.
Además, puede modificar /etc/UPower/UPower.conf y ajustar los valores que enviarán una notificación del sistema, también ( PercentageLow , es la tasa en la que se envía una notificación crítica):
PercentageLow=10
PercentageCritical=3
PercentageAction=2Sin notificaciones?
Agregue lo siguiente antes de los Crons que interactúan con su GUI en crontab -e para establecer su entorno de visualización, al que Cron no tiene acceso de forma nativa:
DISPLAY= " :0.0 "
XAUTHORITY= " /home/your_username/.Xauthority "
XDG_RUNTIME_DIR= " /run/user/1000 "(Las 3 variables anteriores pueden/pueden no ser requeridas por su distribución: esta formulación es lo que funcionó para mí).
No agregué esto al script, ya que tengo otras utilidades personalizadas que envían notificaciones a mi escritorio y no siento que sea necesario agregar esto en múltiples ubicaciones.