Installieren Sie das acpi
Paket. Fügen Sie dies nun ein return0whencharging.sh
und machen Sie es ausführbar:
#!/bin/sh
acpi -V
if cat /proc/acpi/battery/BAT1/state | grep "charging state" | grep -vE ":[\t ]*charging$"; then
exit 1
else
exit 0
fi
Wenn echo -e "\a"
ein Geräusch ertönt, starten Sie dies, wenn Sie den Batteriestatus anzeigen möchten:
watch --beep return0whencharging.sh
Wenn es keinen Ton machen oder wollen Sie eine Benachrichtigung und einen besseren Alarm als das, was Uhr zur Verfügung stellen kann, installieren libnotify-bin
und mpv
und diese stattdessen verwenden:
while return0whencharging.sh; do sleep 1; done; notify-send "Finished charging" && mpv -loop /usr/share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga
Erklärung :
Wenn Sie auf der Manpage nach grep suchen , können Sie sehen, dass -v
die Übereinstimmung und damit der Rückgabe- / Statuscode umgekehrt wird. -E
bedeutet, es ist ein regulärer Ausdruck. Das [\t ]
in der Regex (regulärer Ausdruck) bedeutet "Tabulator oder Leerzeichen". Der folgende Stern bedeutet "Tabulator oder Leerzeichen 0 oder mehrmals". Das nachfolgende "$" bedeutet, dass es mit dem Zeilenende übereinstimmen sollte. Das letzte grep
bedeutet, dass Zeilen, die NICHT mit einem ":" enden, eine beliebige Anzahl von Tabulatoren oder Leerzeichen und dann "Laden" und das Ende der Zeile grep
mit dem Statuscode 0 beendet werden. Dies bedeutet, dass grep
1 zurückgegeben wird, solange sich der Computer befindet Laden. Der if
führt seinen ersten Zweig aus, wenn der Statuscode 0 ist.grep
exit 1
wenn grep 0 verlässt und exit 0
wenn grep ungleich Null existiert.