Contenu | Rechercher | Menus

Annonce

Le forum a une nouvelle maison !
Le forum a été migré sur un nouvel hébergement. Si jamais vous trouvez le moindre problème, n'hésitez pas à nous en faire part !
Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".

#1 Le 11/10/2012, à 13:12

Vicolaships
Membre

[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
Membre

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
Membre

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
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

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])

Hors ligne

#5 Le 15/10/2012, à 20:15

Vicolaships
Membre

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