Come posso ricevere una notifica quando la batteria del mio laptop è completamente carica?


12

A volte il mio caricabatterie rimane collegato al laptop anche dopo il completamento della ricarica.

C'è un modo per ricevere un messaggio / notifica pop-up quando la mia batteria si riempie a causa della carica o c'è qualche software / pacchetto in grado di fornire la funzionalità?

Risposte:


7

Installa il acpipacchetto. Ora inseriscilo return0whencharging.she rendilo eseguibile:

#!/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"emette un suono, avvia questo quando vuoi vedere lo stato della batteria:

watch --beep return0whencharging.sh

Se non fa alcun suono o se si vuole una notifica e un allarme di meglio di qualsiasi orologio in grado di fornire, installare libnotify-bine mpved utilizzare questo, invece:

while return0whencharging.sh; do sleep 1; done; notify-send "Finished charging" && mpv -loop /usr/share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga

Spiegazione :

Se guardi alla pagina man di grep puoi vedere che -vinverte la corrispondenza, e quindi il codice di ritorno / stato. -Esignifica che è un'espressione regolare. il [\t ]in regex (espressione regolare) significa "tab o spazio". La stella seguente significa "tab o spazio 0 o più volte". Il "$" finale indica che deve corrispondere alla fine della riga. Il finale grepindica che le righe NON terminano con un ":", un numero qualsiasi di schede o spazi e quindi "carica" ​​e la fine della linea dovrebbe grepuscire con il codice di stato 0. Ciò significa che greprestituirà 1 fintanto che il computer è ricarica. La ifeseguirà essa la prima filiale, quando il codice di stato è 0,grepexit 1quando grep esce da 0 e exit 0quando grep esiste diverso da zero.


se si desidera che questi comandi spiegati, basta chiedere a me
Janus Troelsen

non sono sicuro di cosa farà questo grep -vE ": [\ t] * charge $". Potresti per favore spiegare i comandi. grazie
Ankit

aggiunta spiegazione
Janus Troelsen

E dov'è questo return0whencharging.shfile? O se lo creo, c'è un posto specifico in cui devo salvarlo?
Parto,

@AvatarParto: non importa dove. Nemmeno il nome ha importanza, purché lo cambi ovunque
Janus Troelsen,

7

Ho scritto una piccola sceneggiatura che lo farà:

immagine dello schermo


script:

#!/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

Installazione:

Correre:

sudo apt-get install acpi
git clone https://github.com/hg8/battery-full-notification.git
cd battery-full-notification/
chmod +x batteryfull.sh

Copia lo script nella ~/bincartella ( perché la cartella ~ / bin? ):

cp batteryfull.* ~/bin

Oppure copialo /usr/local/binse desideri che sia disponibile per tutti gli utenti sul tuo computer:

cp batteryfull.* /usr/local/bin

Quindi aggiungi lo batteryfull.shscript come applicazione di avvio:

  • Apri Dash
  • Cerca applicazioni di avvio
  • Fare doppio clic sull'icona
  • Fai clic Adde compila come segue:

    batteria di avvio dell'applicazione

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.