Contenu | Rechercher | Menus

Annonce

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".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails) *** mise à jour 12/10/2014 ***

#1 Le 11/10/2012, à 14: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, à 08:36)


Ubuntu 14.04 x64

Hors ligne

#2 Le 11/10/2012, à 15: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, à 15: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, à 02: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, à 21: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 16/10/2012, à 00: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

Haut de page ↑