Table des matières

Notification de batterie minimaliste

Introduction

N'ayant nul besoin de la complexité et de la pléthore de fonctionnalités offertes par les environnements de bureau traditionnels, j'utilise un gestionnaire de fenêtres très simple. Toutefois, dans le cadre d'une utilisation avec un portable, une chose me manquait : un système de notification de niveau de batterie. J'ai donc décidé d'en faire un moi-même, extrêmement simple et efficace.

Installation

Il consiste en 2 choses :

J'utilise le système de boîtes de dialogue zenity mais tout autre peut faire l'affaire, j'aurais même pu lancer simplement l'ouverture de mon émulateur de terminal avec un simple message texte.

Installation de zenity

apt-get install zenity

Le script

Version Zenity (graphique)

#!/bin/bash
# batt_notify.sh : notification de batterie simple
 
# Le nom du fichier energy_now peut différer selon votre matériel
BATTLEVEL="$(cat /sys/class/power_supply/BAT0/energy_now)"
 
#  Les chiffres indiqués correspondent +/- à 20 et 10% de batterie restante chez moi,
# +ils sont à adapter à votre matériel
 
# J'utilise deux niveaux d'avertissement :
if [ "$BATTLEVEL" -lt 17620000 ] ; then
    # Avertissement simple :
    zenity --warning --text="Attention batterie faible \!"
elif [ "$BATTLEVEL" -lt 8500000 ] ; then
    # Attention, c'est chaud!
    zenity --error --text"Batterie TRÈS faible, branche toi immédiatement sur secteur \!"
fi
 
exit 0

Version avec dialog (mode texte)

#!/bin/bash
 
BATTLEVEL="$(cat /sys/class/power_supply/BAT0/energy_now)"
 
if [ "$BATTLEVEL" -lt 15620000 ] ; then
    dialog --title "INFO BATTERIE" --colors --msgbox "\Z1\ZbAttention batterie faible !" 10 60
elif [ "$BATTLEVEL" -lt 7500000 ] ; then
    dialog --title "\Z1\ZbINFO BATTERIE" --msgbox "\Z1\ZbBatterie TRÈS faible, branche toi immédiatement sur secteur !" 10 60
fi

On peut difficilement faire plus simple Il faut maintenant rendre le script exécutable :

chmod +x ~/bin/batt_notify.sh

L'entrée dans ma crontab

On édite sa crontab perso :

crontab -e

Voici ce qu'il faut ajouter pour exécuter le script de vérification du niveau de batterie toutes les minutes :

SHELL=/bin/bash
# Il est nécessaire de spécifier cette variable d'environnement sinon zenity renvoie une erreur relative à l'affichage à utiliser : 
DISPLAY=:0.0
# Commande de lancement de notre script :
* * * * * /home/votre_login/bin/batt_notify.sh

Utilisation

Rien à faire de particulier, le démon cron se chargera de lancer le script de vérification à intervalle régulier (chaque minute dans ce cas) et zenity affichera l'avertissement adéquat si votre niveau de batterie est faible.

Enjoy!

Sogal 01/03/2015 14:42