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

10

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

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

    
por Ankit 31.07.2012 / 20:54

2 respostas

6

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>     

por Janus Troelsen 31.07.2012 / 21:39
5

Eu escrevi um pequeno script que fará isso:

Script:

#!/usr/bin/envbashwhiletruedoexportDISPLAY=:0.0battery_percent=$(acpi-b|grep-P-o'[0-9]+(?=%)')ifon_ac_power;thenif["$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:

Executar:

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

cp batteryfull.* ~/bin

Ou copie-o para /usr/local/bin se você quiser que ele esteja disponível para todos os usuários em seu computador:

cp batteryfull.* /usr/local/bin

Adicione o script batteryfull.sh como um aplicativo de inicialização por:

  • Abrir traço
  • Pesquise por aplicativos de inicialização
  • Clique duas vezes no ícone
  • Clique em Adicionar e preencha o seguinte:

por hg8 07.10.2015 / 11:51