Parfois, mon chargeur reste branché à l'ordinateur portable même après la fin du chargement.
Existe-t-il un moyen d’obtenir un message/une notification contextuelle lorsque ma batterie est pleine à cause de la charge ou existe-t-il un logiciel/package capable de fournir cette fonctionnalité?
Installez le package acpi
. Maintenant, mettez ceci dans return0whencharging.sh
et 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 surveiller l'état de la batterie:
watch --beep return0whencharging.sh
Si aucun son ne retentit ou si vous souhaitez une notification et une meilleure alarme que tout ce que la montre peut fournir, installez libnotify-bin
et mplayer
et utilisez-le à la place:
watch --errexit return0whencharging.sh; notify-send "Finished charging" && mplayer -msglevel all=0 -loop 0 /usr/share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga
Explication :
Si vous consultez la page page de manuel de grep , vous pouvez constater que -v
annule la correspondance, et donc le code de retour/statut. -E
signifie 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 "onglet ou espace 0 ou plusieurs fois". Le dernier "$" signifie qu'il doit correspondre à la fin de la ligne. Le dernier grep
signifie que les lignes ne se terminant pas par ":", par un nombre quelconque de tabulations ou d'espaces, puis par "en charge" et que la fin de la ligne doit faire grep
quitter avec le code d'état 0. Cela signifie que grep
retournera 1 tant que l'ordinateur est en charge. La if
exécutera sa première branche lorsque le code d'état sera 0, ce qui signifie que nous annulons effectivement le résultat de grep
, puisque nous exit 1
lorsque grep quitte 0 et exit 0
quand grep existe non nul.
J'ai écrit un petit script qui fera ça:
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
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 dossier ~/bin
( pourquoi le dossier ~/bin? ):
cp batteryfull.* ~/bin
Ou copiez-le dans /usr/local/bin
si vous voulez qu'il soit disponible pour tous les utilisateurs de votre ordinateur:
cp batteryfull.* /usr/local/bin
Ajoutez ensuite le script batteryfull.sh
en tant qu'application de démarrage en: