Script concis et personnalisable pour envoyer des notifications à votre bureau GNU / Linux si le niveau de batterie de votre ordinateur portable atteint un certain niveau de seuil minimum ou maximum.
En utilisation et testé sur Debian Running Gnome uniquement, mais devrait fonctionner dans d'autres distros et environnements de bureau. Le script vérifiera ses nécessités et vous fera savoir ce qui manque, lorsque vous effectuez un manuel initial (voir les instructions ci-dessous.)

Qu'est-ce que ce script réalise?
Je préfère économiser quelques centimes par an en débranchant des trucs qui n'ont pas besoin d'être branchés! De même, mon fabricant d'ordinateurs portables suggère également une habitude de charge de 20/80 pour maintenir la batterie à des niveaux optimaux.
J'ai expérimenté la charge partielle par rapport à la charge complète et 20/80 semble donner à ma batterie la meilleure durée de vie.
L'environnement de bureau que j'utilise actuellement ne semble pas avoir la capacité de seuil d'alerte de batterie et mon modèle d'ordinateur portable n'a pas les seuils de démarrage / arrêt dans SYSFS.
La plupart des solutions existantes sont gonflées avec des fonctionnalités dont je n'ai pas besoin (ou manquent de capacité pour Max / Personnalisation). Je voulais simplement qu'un rappel de notification de brancher ou de retirer l'alimentation lorsque la charge de la batterie est à mes niveaux préférés sans avoir à regarder en continu les icônes symboliques de l'interface graphique.
Clone le repo dans un répertoire sur votre PC où le script peut rester accessible dans Userland (Root / Sudo n'est pas nécessaire)
git clone https://github.com/angela-d/battery-max.gitEnsuite, effectuez une exécution manuelle, pour vous assurer qu'elle fonctionne (elle vérifiera pour garantir que votre chemin de chauve-souris est où il est attendu et les dépendances sont installées - cela vous invitera via le terminal si quelque chose ne va pas).
Exécutez simplement le chemin complet pour check-battery :
/storage/battery-max/check-battery (Remplacer /storage/battery-max pour le chemin local de votre système, où check-battery sera conservée)
C'est ça! Configurez un cron pour automatiser les chèques.
Cela déclenchera le script pour vérifier l'état de votre batterie à l'intervalle prédéfini que vous définissez
crontab -e Si vous souhaitez que le script s'exécute chaque minute (remplacer /storage/battery-max/ pour le chemin local de votre système):
* * * * * /storage/battery-max/check-batteryNotez que si vous choisissez l'exécution de cette minute, vous voudrez peut-être envisager de bloquer Cron à partir de / var / log / syslog, sinon vous verrez un tel spam:
28 décembre 01:50:01 Debian Cron [28999]: (Angela) CMD (/ Storage / Battery-Max / Check-Battery
Si vous souhaitez simplement diriger les messages cron à leur propre journal et ne pas les supprimer complètement (ce que mon exemple ci-dessous fera), spécifiez dans /etc/rsyslog.conf
Pour écraser cette journalisation inutile, vous pouvez courir (facultatif) :
pico /etc/rsyslog.confTrouvez la ligne:
* . * ; auth,authpriv.none -/var/log/syslog Ajouter cron , comme ainsi:
* . * ; cron,auth,authpriv.none -/var/log/syslogRedémarrez RSYSLOG:
service rsyslog restart Ouvrez check-battery et vous verrez un certain nombre de variables que vous pouvez ajuster en fonction de vos besoins:
# 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=15Explication des variables:
/usr/share/icons/[current theme name] ou ~/.local/share/icons/[current theme name]Si vous préférez laisser la batterie branchée 24/7, ce script ne vous est pas utile et l'utilisation des capacités de seuil de TLP pourrait être mieux adaptée, si vous êtes sur un ordinateur portable IBM ou ThinkPad.
De plus, vous pouvez modifier /etc/UPower/UPower.conf et ajuster les valeurs qui enverront également une notification système ( PercentageLow étant le taux dans lequel une notification critique est envoyée):
PercentageLow=10
PercentageCritical=3
PercentageAction=2Pas de notifications?
Ajoutez ce qui suit avant les Cons qui interagissent avec votre interface graphique en crontab -e pour définir votre environnement d'affichage, auquel cron n'a pas nativement accès:
DISPLAY= " :0.0 "
XAUTHORITY= " /home/your_username/.Xauthority "
XDG_RUNTIME_DIR= " /run/user/1000 "(Les 3 variables ci-dessus peuvent / ne peuvent pas être exigées par votre distribution - cette formulation est ce qui a fonctionné pour moi.)
Je n'ai pas ajouté cela au script, car j'ai d'autres utilitaires personnalisés qui envoient des notifications à mon bureau et je ne pense pas qu'il soit nécessaire d'ajouter cela à plusieurs endroits.