#1 Le 11/10/2012, à 13:12
- Vicolaships
[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.8
L'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, à 07:36)
Ubuntu 14.04 x64
Hors ligne
#2 Le 11/10/2012, à 14:11
- Vicolaships
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 14.04 x64
Hors ligne
#3 Le 11/10/2012, à 14:54
- Vicolaships
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-percentage
Dans Compiz on peut créer un raccourci qui lance la commande "battery-percentage".
Chez moi Super+B donne :
Ubuntu 14.04 x64
Hors ligne
#4 Le 12/10/2012, à 01:30
- nesthib
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 Bordeaux : Giroll – Services libres : TdCT.org
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ᴉsdn
Hors ligne
#5 Le 15/10/2012, à 20:15
- Vicolaships
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 14.04 x64
Hors ligne
#6 Le 15/10/2012, à 23:43
- nesthib
Re : [résolu]Affichage pourcentage batterie
de rien
un p'tit [résolu] ?
GUL Bordeaux : Giroll – Services libres : TdCT.org
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ᴉsdn
Hors ligne