#1 Le 11/10/2012, à 14:12
[résolu]Affichage pourcentage batterie
Salut, sous Ubuntu 12.04 j'aimerai un affichage du pourcentage de la batterie avec un raccourci.
Je créé donc un script python qui va générer une notification en utilisant python-notify (sudo apt-get install python-notify)
Par contre j'arrive pas à afficher proprement la valeur du pourcentage; voilà le script :
#!/usr/bin/python
import sys
import pynotify
import subprocess
s=subprocess.check_output(["upower", "-i", "/org/freedesktop/UPower/devices/battery_BAT0", "|", "grep", "alpha"])
if __name__ == "__main__":
if not pynotify.init("icon-summary-body"):
sys.exit(1)
n = pynotify.Notification("Batterie :",
s+"%")
n.show()Le | grep "alpha" n'est pas pris en compte.
J'ai une suite de sed qui me permet de ne garder que le premier chiffre après la virgule d'un nombre dans une chaine de caractères :
echo "percentage : 95.8342%" | sed 's/[^0-9,.]*//g' | sed 's/\(\.[0-9]\).*$/\1/g'
>95.8L'affichage idéal serait donc :
Batterie :
98.9%Un petit peu d'aide serait bienvenue pour assembler tout ça ![]()
Dernière modification par Vicolaships (Le 16/10/2012, à 08:36)
Ubuntu 13.04
Hors ligne
#2 Le 11/10/2012, à 15:11
Re : [résolu]Affichage pourcentage batterie
Maintenant j'ai :
#!/usr/bin/python
import sys
import pynotify
import subprocess
# sed 's/[^0-9,.]*//g'
# sed 's/\(\.[0-9]\).*$/\1/g'
s=subprocess.check_output("upower -i /org/freedesktop/UPower/devices/battery_BAT0 | grep percentage | sed 's/[^0-9,.]*//g'", shell=True)
if __name__ == "__main__":
if not pynotify.init("icon-summary-body"):
sys.exit(1)
n = pynotify.Notification("Batterie :",
s,"%")
n.show()C'est beaucoup mieux, mais c'est dommage car je n'arrive pas à mettre l'autre sed pour tronquer la valeur. La "%" ne s'affiche pas, et quand j'arrive à l'afficher il est sur la ligne suivante.
Un petit peu d'aide ? ![]()
Ubuntu 13.04
Hors ligne
#3 Le 11/10/2012, à 15:54
Re : [résolu]Affichage pourcentage batterie
Bon j'ai quelque chose qui me convient :
battery.sh
echo $((100*$(sed -n "s/remaining capacity: *\(.*\) m[AW]h/\1/p" /proc/acpi/battery/BAT0/state)/$(sed -n "s/last full capacity: *\(.*\) m[AW]h/\1/p" /proc/acpi/battery/BAT0/info)))%battery-percentage
#!/usr/bin/python
import sys
import pynotify
import subprocess
s=subprocess.check_output('./battery.sh', shell=True)
if __name__ == "__main__":
if not pynotify.init("icon-summary-body"):
sys.exit(1)
n = pynotify.Notification("Batterie :",
s,"%")
n.show()On copie les scripts pour pouvoir les executer partout :
sudo cp battery.sh /usr/bin && sudo battery-percentage /usr/bin && battery-percentageDans Compiz on peut créer un raccourci qui lance la commande "battery-percentage".
Chez moi Super+B donne :

Ubuntu 13.04
Hors ligne
#4 Le 12/10/2012, à 02:30
Re : [résolu]Affichage pourcentage batterie
J'ai une suite de sed qui me permet de ne garder que le premier chiffre après la virgule d'un nombre dans une chaine de caractères :
echo "percentage : 95.8342%" | sed 's/[^0-9,.]*//g' | sed 's/\(\.[0-9]\).*$/\1/g' >95.8
echo "percentage : 95.8342%" | sed 's/[^0-9]*\([0-9]\+\.\?[0-9]\?\).*/\1/'après, franchement, tu utilises python… pourquoi ne pas profiter de sa puissance ?
import re
import subprocess
s=subprocess.check_output("upower -i /org/freedesktop/UPower/devices/battery_BAT0", shell=True)
print('Batterie:\n%s%%' % re.findall('percentage: *([0-9]+\.?[0-9]?)', s)[0])GUL les mardis à Bordeaux : Giroll
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdnGMT-4
En ligne
#5 Le 15/10/2012, à 21:15
Re : [résolu]Affichage pourcentage batterie
Salut !
Oui je me doutais qu'il existait des outils, mais je ne connais pas du tout python alors j'ai bricolé comme j'ai pu ![]()
C'est parfait maintenant :
#!/usr/bin/python
import sys
import pynotify
import subprocess
import re
s=subprocess.check_output("upower -i /org/freedesktop/UPower/devices/battery_BAT0", shell=True)
j=('%s%%' % re.findall('percentage: *([0-9]+\.?[0-9]?)', s)[0])
#s=subprocess.check_output('./battery.sh', shell=True)
if __name__ == "__main__":
if not pynotify.init("icon-summary-body"):
sys.exit(1)
n = pynotify.Notification("Batterie :",
j)
n.show()Je trouve que c'est une très bonne alternative à l'affichage du pourcentage de la batterie comme indicateur
Merci pour ta contribution !
Ubuntu 13.04
Hors ligne
#6 Le 16/10/2012, à 00:43
Re : [résolu]Affichage pourcentage batterie
de rien ![]()
un p'tit [résolu] ?
GUL les mardis à Bordeaux : Giroll
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdnGMT-4
En ligne
Pages : 1
- Accueil
- » Forum
- » Terminal, scripts et ligne de commande
- » [résolu]Affichage pourcentage batterie