Jak mogę uzyskać powiadomienie o naładowaniu baterii laptopa?

10

Czasami moja ładowarka pozostaje podłączona do laptopa nawet po zakończeniu ładowania.

Czy istnieje sposób wyświetlenia komunikatu / powiadomienia, gdy bateria się zapełni z powodu ładowania lub czy istnieje jakieś oprogramowanie / pakiet, które może zapewnić tę funkcjonalność?

    
zadawane Ankit 31.07.2012, 20:54
źródło

2 odpowiedzi

6

Zainstaluj pakiet acpi . Teraz umieść to w return0whencharging.sh i spraw, aby było ono wykonalne:

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

Jeśli echo -e "\a" wydaje dźwięk, zacznij od tego, gdy chcesz obejrzeć stan baterii:

watch --beep return0whencharging.sh

Jeśli nie wydaje żadnego dźwięku lub chcesz otrzymać powiadomienie i lepszy alarm niż ten, który może zapewnić zegarek, zainstaluj libnotify-bin i mplayer i użyj tego zamiast:

watch --errexit return0whencharging.sh; notify-send "Finished charging" && mplayer -msglevel all=0 -loop 0 /usr/share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga

Objaśnienie :

Jeśli spojrzysz na stronę podręcznika grep , zobaczysz, że -v odwraca dopasowanie, i dlatego kod powrotu / statusu. -E oznacza, że jest to wyrażenie regularne. [\t ] w regex (wyrażenie regularne) oznacza "tab lub space". Następująca gwiazda oznacza "tabulator lub spacja 0 lub więcej razy". Końcowy "$" oznacza, że powinien pasować do końca linii. Końcowy grep oznacza, że linie NIE kończące się na ":", żadna liczba zakładek lub spacji, a następnie "ładowanie", a koniec linii powinien spowodować, że grep zostanie zakończone z kodem statusu 0. Oznacza to, że grep zwróci 1 tak długo, jak długo trwa ładowanie komputera. if wykona pierwszą gałąź, gdy kod stanu będzie równy 0, co oznacza, że skutecznie negujemy wynik grep , ponieważ my exit 1 , gdy grep kończy 0 i exit 0 , gdy grep istnieje niezerowo.

    
odpowiedział Janus Troelsen 31.07.2012, 21:39
źródło
5

Napisałem mały skrypt, który to zrobi:

Skrypt:

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

Instalacja:

Uruchom:

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

Skopiuj skrypt do folderu ~/bin ( dlaczego folder ~ / bin? ):

cp batteryfull.* ~/bin

Lub skopiuj go do /usr/local/bin , jeśli chcesz, aby był dostępny dla wszystkich użytkowników Twojego komputera:

cp batteryfull.* /usr/local/bin

Następnie dodaj skrypt batteryfull.sh jako aplikację startową przez:

  • Otwórz Dash
  • Wyszukaj Aplikacje startowe
  • Kliknij dwukrotnie ikonę
  • Kliknij Dodaj i wypełnij w następujący sposób:

odpowiedział hg8 07.10.2015, 11:51
źródło

Przeczytaj inne pytania na temat tagów