Comment recevoir une notification lorsque la batterie de mon ordinateur portable est complètement chargée?

12

Parfois, mon chargeur reste branché sur un ordinateur portable même une fois la charge terminée.

Existe-t-il un moyen d'obtenir un message contextuel / une notification lorsque ma batterie est pleine en raison de la charge ou existe-t-il un logiciel / package pouvant fournir la fonctionnalité?

Ankit
la source

Réponses:

7

Installez le acpipackage. Maintenant, mettez cela return0whencharging.shet rendez-le exécutable:

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

Si echo -e "\a"émet un son, démarrez-le lorsque vous souhaitez regarder l'état de la batterie:

watch --beep return0whencharging.sh

Si elle ne fait aucun bruit ou si vous voulez une notification et une meilleure alarme que celle que la montre peut fournir, installez libnotify-bin-la mpvet utilisez-la à la place:

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

Explication :

Si vous regardez la page de manuel de grep, vous pouvez voir que cela -vinverse la correspondance, et donc le code retour / état. -Esignifie que c'est une expression régulière. le [\t ]dans l'expression régulière (expression régulière) signifie "tabulation ou espace". L'étoile suivante signifie "tabulation ou espace 0 ou plusieurs fois". Le "$" de fin signifie qu'il doit correspondre à la fin de la ligne. La dernière grepsignifie que les lignes ne se terminant pas par un ":", n'importe quel nombre d'onglets ou d'espaces, puis "en charge" et la fin de la ligne devraient faire la grepsortie avec le code d'état 0. Cela signifie que grepretournera 1 tant que l'ordinateur est mise en charge. Le ifexécutera sa première branche lorsque le code d'état est 0,grepexit 1quand grep quitte 0 et exit 0quand grep existe non nul.

Janus Troelsen
la source
si vous voulez que ces commandes soient expliquées, demandez-moi
Janus Troelsen
je ne suis pas sûr de ce que ce grep -vE ": [\ t] * charger $" fera. Pourriez-vous s'il vous plaît expliquer les commandes. merci
Ankit
explication ajoutée
Janus Troelsen
Et où est ce return0whencharging.shdossier? Ou si je le crée, y a-t-il un endroit spécifique où je dois le sauvegarder?
Parto
@AvatarParto: peu importe où. le nom n'a pas d'importance non plus, tant que vous le changez partout
Janus Troelsen
7

J'ai écrit un petit script qui fera ça:

capture d'écran


Scénario:

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

Courir:

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

Copiez le script dans le ~/bindossier ( pourquoi le dossier ~ / bin? ):

cp batteryfull.* ~/bin

Ou copiez-le dans /usr/local/binsi vous souhaitez qu'il soit disponible pour tous les utilisateurs de votre ordinateur:

cp batteryfull.* /usr/local/bin

Ajoutez ensuite le batteryfull.shscript en tant qu'application de démarrage en:

  • Ouvrez Dash
  • Rechercher des applications de démarrage
  • Double-cliquez sur l'icône
  • Cliquez Addet remplissez comme suit:

    application de démarrage batterie

hg8
la source