Diuen els que saben, que per mantenir en bon estat la bateria de liti d'una Laptop, s'ha de connectar al corrent quan està en un 40% de descàrrega, i desconnectar quan té un 80% de càrrega.
Molts fabricants, s'inclouen en el bios l'opció de «desactivar» el flux de corrent cap a la bateria quan arriba a un determinat per cent, i que l'equip només faci servir el corrent a partir d'aquest moment, però, en el meu cas particular, el meu Lenovo IdeaPad U510 no té aquesta opció.
No conec a Linux cap aplicació que faci això a nivell de Software, o que tan sols ens notifiqui quan la bateria arriba a un% en específic, de manera que vaig decidir crear un petit Script que em notifica quan necessito connectar i desconnectar el corrent.
Requisits de l'Script per controlar els cicles de càrrega i descàrrega de la bateria del teu Laptop
El primer que necessitem és tenir instal·lat el paquet ACPI al nostre ordinador. En el meu cas com a ús ArchLinux només he de executar:
$ sudo pacman -S acpi
¿Perquè necessitem ACPI? Doncs per saber l'estat de la nostra bateria. Si l'executem ens torna alguna cosa com això:
leni :: ~ »acpi Battery 0: Discharging, 76%, 02:20:07 Remaining
El següent és crear el fitxer que executarà la notificació, en el meu cas, el vaig posar dins de la carpeta ~ / .Bateria, I ho vaig nomenar bat_notificacion.sh. Endins li vaig posar el següent:
#!/bin/bash # # -*- ENCODING: UTF-8 -*- # Aquest programa és programari lliure. Podeu redistribuir-lo i/o # modificar-lo sota els termes de la Llicència Pública General # de GNU segons és publicada per la Free Software Foundation, # bé de la versió 2 d'aquesta Llicència o bé (segons la seva # elecció) de qualsevol versió posterior. # # Si fa alguna modificació en aquesta aplicació, # haurà de sempre esmentar l'autor original de la mateixa aplicació. # # Des de Linux.net CC-BY-SA 2015 # Autor: ELAVdesdelinux.net> # Obtenim l'estat de la bateria, però només el porcent: BATERIA=`acpi | awk '{print $4}'` # Passem a l'estat a un fitxer de text: fet $BATERIA > tmp_bateria.txt # Eliminem informació innecessària del fitxer de text: RESULTAT=`cut -c 1-2 tmp_bateria.txt` if [ $ RESULTAT -ge 80 ]; then notify-send --urgency=critical --expire-time=5000 --app-name=Bateria --icon=battery "Notificacion de Bateria" "Desconnecta el corrent elèctric si us plau" elif [ $RESULTAT -li 40 ]; then notify-send --urgency=critical --expire-time=5000 --app-name=Bateria --icon=battery "Notificacion de Bateria" "Connecta el corrent elèctric si us plau" else $BATERIA > /dev/null fi
Com funciona el Script per controlar els cicles de càrrega i descàrrega de la bateria del teu Laptop
L'explicació d'com funciona està dins, però ho explico breument.
Primer, fent servir awk extrec només el valor de l'per cent de la bateria, la qual cosa em retorna alguna cosa com 76%. Aquest resultat el pas a un fitxer de text per a posteriorment, eliminar els caràcters innecessaris deixant només el valor numèric.
Li donem els permisos necessaris a el fitxer:
$ chmod a+x ~/.bateria/bat_notificacion.sh
Com ArchLinux fa servir systemd i no té el vell crontab, jo instal cronie. Ara editem el crontab per a que l'script estigui revisant l'estat de la bateria tot el temps.
$ crontab -e
I li afegeixo endins:
# Revisió de la Bateria * * * * * cd /home/elav/.bateria/ && ./bat_notificacion.sh
I llest, quan el per cent de la bateria sigui igual o menor de 40%, o sigui igual o més gran que 80%, obtindré un avís com aquesta:
I això és tot .. Qualsevol aportació que vulguin fer, suggeriment de codi i altres, poden fer-ho mitjançant el meu repositori en Bitbucket.