Vorsichtsmittel und anpassbares Skript zum Senden von Benachrichtigungen an Ihren GNU/Linux -Desktop, wenn der Akkustand Ihres Laptops einen bestimmten minimalen oder maximalen Schwellenwert erreicht.
In Gebrauch und getestet auf Debian, das nur Gnome ausführt, sollte aber in anderen Distributionen und Desktop -Umgebungen funktionieren. Das Skript wird nach seinen Notwendigkeiten überprüft und Sie wissen, was fehlt, wenn Sie einen ersten Handbuch ausführen (siehe Anweisungen unten.)

Was erreicht dieses Skript?
Ich würde lieber ein paar Cent pro Jahr sparen, indem ich Sachen aus den Steckding speichert, das nicht angeschlossen werden muss! Ebenso schlägt mein Laptop -Hersteller eine Ladungsgewohnheit von 20/80 vor, um die Batterie auf optimaler Ebene zu halten.
Ich habe partielles Ladevorgang im Vergleich zu vollem Laden experimentiert und 20/80 scheint meiner Batterie die beste Lebensdauer zu geben.
Die Desktop -Umgebung, die ich derzeit verwende, scheint nicht nativ die Fähigkeit zur Batteriewarnungsschwelle zu haben und mein Laptop -Modell hat nicht die Start-/Stopp -Schwellenwerte in sysfs.
Die meisten vorhandenen Lösungen sind mit Funktionen aufgebläht, die ich nicht benötige (oder fehlt die Fähigkeit für maximale/Anpassungen). Ich wollte einfach eine Benachrichtigungsempfindung, um die Stromversorgung entweder einzuschließen oder zu entfernen, wenn die Batterieladung auf meinen bevorzugten Ebenen liegt, ohne die symbolischen Symbole in der GUI kontinuierlich betrachten zu müssen.
Klonen Sie das Repo in ein Verzeichnis auf Ihrem PC, in dem das Skript in Userland zugänglich bleiben kann (root/sudo ist nicht benötigt)
git clone https://github.com/angela-d/battery-max.gitFühren Sie dann einen manuellen Lauf durch, um sicherzustellen, dass es funktioniert (es wird prüfen, ob Ihr Fledermaus -Pfad zu erwarten ist und die Abhängigkeiten installiert sind - sie fordert Sie über das Terminal auf, wenn etwas nicht stimmt).
Führen Sie einfach den vollständigen Pfad zum check-battery aus:
/storage/battery-max/check-battery (Ersetzen Sie /storage/battery-max für den lokalen Pfad Ihres Systems, bei dem check-battery aufbewahrt wird.)
Das war's! Richten Sie einen Cron ein, um die Schecks zu automatisieren.
Dadurch wird das Skript ausgelöst, um Ihren Batteriestatus in dem vordefinierten Intervall zu überprüfen, den Sie festgelegt haben
crontab -e Wenn Sie möchten, dass das Skript jede Minute ausführt (Ersetzen /storage/battery-max/ für den lokalen Pfad Ihres Systems):
* * * * * /storage/battery-max/check-batteryBeachten Sie, dass Sie, wenn Sie dies jede Minute ausführen möchten, in Betracht ziehen möchten, Cron von/var/log/syslog zu blockieren, sonst sehen Sie ein solches Spam:
28. Dezember 01:50:01 Debian Cron [28999]: (Angela) CMD (/Storage/Batterie-Max/Check-Battery
Wenn Sie einfach Cron -Nachrichten in ihr eigenes Protokoll richten und sie nicht vollständig löschen möchten (was mein Beispiel unten ist), geben Sie dies in /etc/rsyslog.conf an
Um diese nutzlose Protokollierung zu quetschen, können Sie ausführen (optional) :
pico /etc/rsyslog.confFinden Sie die Linie:
* . * ; auth,authpriv.none -/var/log/syslog Gehen Sie cron nach so an:
* . * ; cron,auth,authpriv.none -/var/log/syslogStarten Sie Rsyslog neu:
service rsyslog restart Öffnen Sie check-battery und Sie werden eine Reihe von Variablen sehen, die Sie an Ihre Anforderungen entsprechen können:
# 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=15Erläuterung von Variablen:
/usr/share/icons/[current theme name] oder ~/.local/share/icons/[current theme name] aufgenommen werden.Wenn Sie es vorziehen, den Akku rund um die Uhr eingesteckt zu lassen, ist dieses Skript für Sie nicht nützlich, und die Verwendung der Schwellenwertfunktionen von TLP ist möglicherweise besser geeignet, wenn Sie sich auf einem IBM- oder ThinkPad -Laptop befinden.
Darüber hinaus können Sie /etc/UPower/UPower.conf die Werte, die eine Systembenachrichtigung senden, ändern ( PercentageLow die Rate, bei der eine kritische Benachrichtigung gesendet wird):
PercentageLow=10
PercentageCritical=3
PercentageAction=2Keine Benachrichtigungen?
Fügen Sie Folgendes vor den Crons hinzu, die mit Ihrer GUI in crontab -e interagieren, um Ihre Anzeigeumgebung festzulegen, auf die Cron nicht nativ zugreifen kann:
DISPLAY= " :0.0 "
XAUTHORITY= " /home/your_username/.Xauthority "
XDG_RUNTIME_DIR= " /run/user/1000 "(Alle 3 die obigen Variablen können/können möglicherweise nicht von Ihrer Distribution erforderlich sein - diese Formulierung hat für mich funktioniert.)
Ich habe das nicht zum Skript hinzugefügt, da ich andere benutzerdefinierte Dienstprogramme habe, die Benachrichtigungen an meinen Desktop senden und es nicht für notwendig halten, dies an mehreren Orten hinzuzufügen.