Wie kann ich benachrichtigt werden, wenn der Akku meines Laptops vollständig aufgeladen ist?

12

Manchmal bleibt mein Ladegerät auch nach Abschluss des Ladevorgangs an den Laptop angeschlossen.

Gibt es eine Möglichkeit, eine Popup-Meldung / Benachrichtigung zu erhalten, wenn mein Akku aufgrund des Ladevorgangs voll ist, oder gibt es eine Software / ein Paket, das / das die Funktionalität bereitstellen kann?

Ankit
quelle

Antworten:

7

Installieren Sie das acpiPaket. Fügen Sie dies nun ein return0whencharging.shund machen Sie es ausführbar:

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

Wenn echo -e "\a"ein Geräusch ertönt, starten Sie dies, wenn Sie den Batteriestatus anzeigen möchten:

watch --beep return0whencharging.sh

Wenn es keinen Ton machen oder wollen Sie eine Benachrichtigung und einen besseren Alarm als das, was Uhr zur Verfügung stellen kann, installieren libnotify-binund mpvund diese stattdessen verwenden:

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

Erklärung :

Wenn Sie auf der Manpage nach grep suchen , können Sie sehen, dass -vdie Übereinstimmung und damit der Rückgabe- / Statuscode umgekehrt wird. -Ebedeutet, es ist ein regulärer Ausdruck. Das [\t ]in der Regex (regulärer Ausdruck) bedeutet "Tabulator oder Leerzeichen". Der folgende Stern bedeutet "Tabulator oder Leerzeichen 0 oder mehrmals". Das nachfolgende "$" bedeutet, dass es mit dem Zeilenende übereinstimmen sollte. Das letzte grepbedeutet, dass Zeilen, die NICHT mit einem ":" enden, eine beliebige Anzahl von Tabulatoren oder Leerzeichen und dann "Laden" und das Ende der Zeile grepmit dem Statuscode 0 beendet werden. Dies bedeutet, dass grep1 zurückgegeben wird, solange sich der Computer befindet Laden. Der ifführt seinen ersten Zweig aus, wenn der Statuscode 0 ist.grepexit 1wenn grep 0 verlässt und exit 0wenn grep ungleich Null existiert.

Janus Troelsen
quelle
Wenn Sie möchten, dass diese Befehle erklärt werden, fragen Sie mich einfach
Janus Troelsen
Ich bin mir nicht sicher, was dieses grep -vE ": [\ t] * Aufladen von $" bewirken wird. Könnten Sie bitte die Befehle erklären. danke
Ankit
Erklärung hinzugefügt
Janus Troelsen
Und wo ist diese return0whencharging.shDatei? Oder gibt es einen bestimmten Ort, an dem ich es speichern muss, wenn ich es erstelle?
Parto
@ AvatarParto: egal wo. Name spielt auch keine Rolle, solange Sie ihn überall ändern
Janus Troelsen
7

Ich habe ein kleines Skript geschrieben, das das macht:

Bildschirmfoto


Skript:

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

Installation:

Lauf:

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

Kopieren Sie das Skript in einen ~/binOrdner ( warum der Ordner ~ / bin? ):

cp batteryfull.* ~/bin

Oder kopieren Sie es nach, /usr/local/binwenn es für alle Benutzer auf Ihrem Computer verfügbar sein soll:

cp batteryfull.* /usr/local/bin

Fügen Sie dann das batteryfull.shSkript als Startanwendung hinzu, indem Sie:

  • Öffnen Sie Dash
  • Suchen Sie nach Startanwendungen
  • Doppelklicken Sie auf das Symbol
  • Klicken Addund füllen Sie wie folgt aus:

    Startanwendung batterievoll

hg8
quelle