Como posso receber uma notificação quando a bateria do meu laptop está totalmente carregada?

12

Às vezes, meu carregador permanece conectado ao laptop mesmo após a conclusão do carregamento.

Existe uma maneira de receber uma mensagem pop-up / notificação quando minha bateria fica cheia devido ao carregamento ou existe algum software / pacote que possa fornecer a funcionalidade?

Ankit
fonte

Respostas:

7

Instale o acpipacote. Agora coloque isso return0whencharging.she 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-bine mpve 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 -vinverte a correspondência e, portanto, o código de retorno / status. -Esignifica 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 grepsignifica 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 grepsair com o código de status 0. Isso significa que grepretornará 1 enquanto o computador estiver carregamento. O ifexecutará sua primeira ramificação quando o código de status for 0,grepexit 1quando grep sai 0 e exit 0quando grep existe diferente de zero.

Janus Troelsen
fonte
se você quiser estes comandos explicou, basta perguntar-me
Janus Troelsen
não tenho certeza do que esse grep -vE ": [\ t] * cobrando $" fará. Você poderia, por favor, explicar os comandos. obrigado
Ankit
explicação adicionada
Janus Troelsen
E onde está esse return0whencharging.sharquivo? Ou, se eu criá-lo, há um local específico para salvá-lo?
Parto
@AvatarParto: não importa onde. nome não importa tanto, contanto que você alterá-lo em todos os lugares
Janus Troelsen
7

Eu escrevi um pequeno script que fará isso:

captura de tela


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 ~/binpasta ( por que a pasta ~ / bin? ):

cp batteryfull.* ~/bin

Ou copie-o para /usr/local/binse desejar que esteja disponível para todos os usuários no seu computador:

cp batteryfull.* /usr/local/bin

Em seguida, adicione o batteryfull.shscript como um aplicativo de inicialização:

  • Traço aberto
  • Pesquisar aplicativos de inicialização
  • Clique duas vezes no ícone
  • Clique Adde preencha da seguinte forma:

    aplicativo de inicialização batteryfull

hg8
fonte