Instale o pacote acpi . Agora coloque isso em 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" fizer um som, inicie isto quando quiser ver o status da bateria:
watch --beep return0whencharging.sh
Se não fizer nenhum som ou você quiser uma notificação e um alarme melhor do que qualquer relógio pode fornecer, instale libnotify-bin e mplayer e use isso:
watch --errexit return0whencharging.sh; notify-send "Finished charging" && mplayer -msglevel all=0 -loop 0 /usr/share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga
Explicação :
Se você olhar para a página man do grep , você verá que -v reverte 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 "tabulação ou espaço". A estrela a seguir significa "tab ou espaço 0 ou mais vezes". O trailing "$" significa que deve corresponder ao final da linha. O% final% co_de significa que as linhas que NÃO terminam em ":", qualquer número de tabulações ou espaços e "cobrança" e o final da linha devem fazer grep sair com o código de status 0. Isso significa que grep retornará 1 enquanto o computador estiver carregando. O grep executará sua primeira ramificação quando o código de status for 0, o que significa que estamos efetivamente negando o resultado de if , já que grep quando grep sai 0 e exit 1 quando grep existe diferente de zero. / p>
