Risposte:
Installa il acpi
pacchetto. Ora inseriscilo return0whencharging.sh
e rendilo eseguibile:
#!/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
Se echo -e "\a"
emette un suono, avvia questo quando vuoi vedere lo stato della batteria:
watch --beep return0whencharging.sh
Se non fa alcun suono o se si vuole una notifica e un allarme di meglio di qualsiasi orologio in grado di fornire, installare libnotify-bin
e mpv
ed utilizzare questo, invece:
while return0whencharging.sh; do sleep 1; done; notify-send "Finished charging" && mpv -loop /usr/share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga
Spiegazione :
Se guardi alla pagina man di grep puoi vedere che -v
inverte la corrispondenza, e quindi il codice di ritorno / stato. -E
significa che è un'espressione regolare. il [\t ]
in regex (espressione regolare) significa "tab o spazio". La stella seguente significa "tab o spazio 0 o più volte". Il "$" finale indica che deve corrispondere alla fine della riga. Il finale grep
indica che le righe NON terminano con un ":", un numero qualsiasi di schede o spazi e quindi "carica" e la fine della linea dovrebbe grep
uscire con il codice di stato 0. Ciò significa che grep
restituirà 1 fintanto che il computer è ricarica. La if
eseguirà essa la prima filiale, quando il codice di stato è 0,grep
exit 1
quando grep esce da 0 e exit 0
quando grep esiste diverso da zero.
return0whencharging.sh
file? O se lo creo, c'è un posto specifico in cui devo salvarlo?
Ho scritto una piccola sceneggiatura che lo farà:
script:
#!/usr/bin/env bash
while true
do
export DISPLAY=:0.0
battery_percent=$(acpi -b | grep -P -o '[0-9]+(?=%)')
if on_ac_power; then
if [ "$battery_percent" -gt 95 ]; then
notify-send -i "$PWD/batteryfull.png" "Battery full." "Level: ${battery_percent}% "
fi
fi
sleep 300 # (5 minutes)
done
Installazione:
Correre:
sudo apt-get install acpi
git clone https://github.com/hg8/battery-full-notification.git
cd battery-full-notification/
chmod +x batteryfull.sh
Copia lo script nella ~/bin
cartella ( perché la cartella ~ / bin? ):
cp batteryfull.* ~/bin
Oppure copialo /usr/local/bin
se desideri che sia disponibile per tutti gli utenti sul tuo computer:
cp batteryfull.* /usr/local/bin
Quindi aggiungi lo batteryfull.sh
script come applicazione di avvio: