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>