Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 smile

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 ? smile


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 :

1164629346.png


Ubuntu 14.04 x64

Hors ligne

#4 Le 12/10/2012, à 01:30

nesthib

Re : [résolu]Affichage pourcentage batterie

Vicolaships a écrit :

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 : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde 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 tongue

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 wink

un p'tit [résolu] ?


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne