Respostas:
Instale o acpi
pacote. Agora coloque isso return0whencharging.sh
e torne-o executável:
#!/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"
emitir um som, inicie-o quando quiser assistir ao status da bateria:
watch --beep return0whencharging.sh
Se não faz qualquer som ou você quer uma notificação e uma melhor alarme do que qualquer coisa relógio pode fornecer, instalar libnotify-bin
e mpv
e usar este em vez disso:
while return0whencharging.sh; do sleep 1; done; notify-send "Finished charging" && mpv -loop /usr/share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga
Explicação :
Se você olhar a página de manual do grep, poderá ver que -v
inverte a correspondência e, portanto, o código de retorno / status. -E
significa que é uma expressão regular. o [\t ]
no regex (expressão regular) significa "tab ou espaço". A estrela a seguir significa "tabulação ou espaço 0 ou mais vezes". O "$" à direita significa que deve corresponder ao final da linha. A final grep
significa que as linhas NÃO terminam em ":", qualquer número de guias ou espaços e, em seguida, "cobrando" e o final da linha devem grep
sair com o código de status 0. Isso significa que grep
retornará 1 enquanto o computador estiver carregamento. O if
executará sua primeira ramificação quando o código de status for 0,grep
exit 1
quando grep sai 0 e exit 0
quando grep existe diferente de zero.
return0whencharging.sh
arquivo? Ou, se eu criá-lo, há um local específico para salvá-lo?
Eu escrevi um pequeno script que fará isso:
Roteiro:
#!/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
Instalação:
Corre:
sudo apt-get install acpi
git clone https://github.com/hg8/battery-full-notification.git
cd battery-full-notification/
chmod +x batteryfull.sh
Copie o script para a ~/bin
pasta ( por que a pasta ~ / bin? ):
cp batteryfull.* ~/bin
Ou copie-o para /usr/local/bin
se desejar que esteja disponível para todos os usuários no seu computador:
cp batteryfull.* /usr/local/bin
Em seguida, adicione o batteryfull.sh
script como um aplicativo de inicialização: