Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[tip] battery warning
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools)
View previous topic :: View next topic  
Author Message
luna80
Veteran
Veteran


Joined: 01 Feb 2004
Posts: 1545
Location: switzerland

PostPosted: Wed Feb 16, 2005 9:22 pm    Post subject: [tip] battery warning Reply with quote

mi sono fatta un programmino in python che mostra un messaggio quando la batteria del mio portatile raggiunge una carica inferiore del 6%.

il mio programma usa acpi ma può essere adattato anche per chi usa apm.

magari può interessare anche a qualcun'altro quindi posto qui il codice ed i passaggi per farlo funzionare.

1. da root creare il file /usr/local/bin/battery_warning con quanto segue

Code:


#!/usr/bin/env python


import pygtk
pygtk.require("2.0")
import gtk
import os

class BattWarning:

    def warning(self, widget, data=None):
        print "Battery warning!"

    def delete_event(self, widget, event, data=None):
        return gtk.FALSE

    def destroy(self, widget, data=None):
        gtk.main_quit()

    def __init__(self):
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
       
   self.vbox = gtk.VBox(spacing=10)
      self.vbox.show()
      
   self.window.add(self.vbox)
   
   self.hbox = gtk.HBox()
   self.hbox.show()
       
   self.window.connect("delete_event", self.delete_event)
        self.window.connect("destroy", self.destroy)
       
   self.window.set_border_width(10)
   
       self.label = gtk.Label(" The battery is quite totally discharged!")
   self.image = gtk.Image()
      self.image.set_from_file("/usr/share/pixmaps/warning.png") # <--------------------------- personalizzare qui
        self.button = gtk.Button("OK")
        self.button.connect("clicked", lambda wid: gtk.main_quit())
   
   self.image.show()
       self.hbox.pack_start(self.image)
   self.label.show()
   self.hbox.pack_start(self.label)
   self.button.show()
   self.separator = gtk.HSeparator()
   self.separator.show()
   self.vbox.pack_start(self.hbox)
   self.vbox.pack_start(self.separator)
   self.vbox.pack_start(self.button)
   
        self.window.show()

def main():
    gtk.mainloop()

if __name__ == "__main__":
      os.system('acpi | cut -d : -f 2 | cut -d % -f 1 | awk \'{print $1,$2}\' > ~/.batt_state') # <--------------------------- personalizzare qui
   input=open('/home/luna80/.batt_state','r')  # <------------------------------------------------------------------------- personalizzare qui
   s=input.read()

   arr=s.split(',')

   if(arr[0]!='charging' and int(arr[1])<6):
      warning = BattWarning()
      gtk.main()


l'intero file lo potete scaricare da qui

(vedere nel codice #<----------)
!!!!! modificate il path del file con l'output di acpi a seconda di dove lo volete mettere , io l'ho messo nella mia home
!!!!! ho messo un'immagine nel messaggio, se volete la stessa potete prenderla da qui, altrimenti modificate il path ed il nome dell'immagine come volete

2. cambiare i permessi di /usr/local/bin/battery_warning

Code:
# chmod 755 /usr/local/bin/battery_warning


3. testate il programma manualmente

Code:
# batt_warning


se la batteria è quasi scarica (ricordo meno del 6%) vedrete un messaggio come questo, altrimenti, SOLO per test potete commentare la riga "os.system('acpi | cut -d : -f 2 | cut -d % -f 1 | awk \'{print $1,$2}\' > ~/.batt_state') " ed editare manualmente il file .batt_state scrivendoci per esempio 'discharging, 5', poi eseguite il programma e vedrete il messaggio

4. modificate il crontab dell'utente con i comandi

(se l'utente fa parte del gruppo crontab, date il comando da utente)
Code:
# crontab -e


o

(se l'untente non fa parte del gruppo crontab, date il comando da root, specificando <user>=nome utente)
Code:
#crontab -u <user> -e


e aggiungete quanto segue

Code:

DISPLAY=:0
*/5 * * * * /usr/local/bin/batt_warning
.......


prestanto particolare attenzione alla prima riga: "DISPLAY=:0", altrimenti non verrà visualizzato nessun messaggio

con la riga "*/5 * * * * /usr/local/bin/batt_warning", io dico a crontab di eseguire il mio programma ogni 5 minuti, chiaramente se la batteria ha una carica maggiore del 5% non ci si deve aspettare nessun messaggio


ecco, così dovrebbe essere tutto sistemato.



se ci dovessero essere dei problemi (nel senso che il mio programma non sembri funzionare), date un

Code:
# tail -f /var/log/message


oppure controllate nella vostra home se c'è un file dead.letter (dove crontab scrive gli eventuali errori), e se c'è controllate gli errori contenuti

oppure ancora ( se avete specificato MAILTO nel crontab), guardate in /var/mail/<vostro_utente>


non sono brava a spiegarmi, spero che quello che ho scritto sia chiaro, in caso contrario fatevi vivi, come pure se avete consigli o miglioramenti da proporre


ciao
Back to top
View user's profile Send private message
gutter
Bodhisattva
Bodhisattva


Joined: 13 Mar 2004
Posts: 7162
Location: Aarau, Aargau, Switzerland

PostPosted: Wed Feb 16, 2005 9:36 pm    Post subject: Reply with quote

Aggiunto ai "Post utilissimi" sezione tips.
_________________
Registered as User #281564 and Machines #163761
Back to top
View user's profile Send private message
mouser
Veteran
Veteran


Joined: 10 Aug 2004
Posts: 1419
Location: Milano

PostPosted: Wed Feb 16, 2005 9:41 pm    Post subject: Reply with quote

Ottimo!!!!!
Devo proprio mettermici con python! Si fa sempre più interessante.
Complimenti per il TIP :D

Ciriciao
mouser :wink:
Back to top
View user's profile Send private message
federico
Advocate
Advocate


Joined: 18 Feb 2003
Posts: 3272
Location: Italy, Milano

PostPosted: Thu Feb 17, 2005 2:01 am    Post subject: Reply with quote

Ma non so se sono io sfigato che non riesco mai a venire aggiunto, ma moltissimi mesi fa ho postato un programma che avvisava a seconda dei livelli della batteria e volendo dava anche una finestra in grafica quando finiva la corrente che ti permetteva di scegliere se spegnere automaticamente (tipo quando te lo dimentichi acceso) oppure di continuare a sfruttare la carica, sempre in python...
I MIEI VI STANNO ANTIPATICI DI PROGRAMMI ?!? :twisted: :twisted: :twisted:

http://www.sideralis.net/index.php?action=4&pjid=14
_________________
Sideralis www.sideralis.org
Pic http://blackman.amicofigo.com/gallery
Arduino http://www.arduino.cc
Chi aveva potuto aveva spaccato
2000 pezzi buttati là
Molti saluti,qualche domanda
Semplice come musica punk
Back to top
View user's profile Send private message
FonderiaDigitale
Veteran
Veteran


Joined: 06 Nov 2003
Posts: 1710
Location: Rome, Italy

PostPosted: Thu Feb 17, 2005 5:28 am    Post subject: Reply with quote

federico wrote:
I MIEI VI STANNO ANTIPATICI DI PROGRAMMI ?!? :twisted: :twisted: :twisted:

si, ci stai antipatico! :P
seriamente, per evitare che vada perso nel mare dei post, perche' non lo posti nel wiki? sarebbe sicuramente piu tracciabile, a posteriori.
_________________
Come disse un amico, i sistemisti sono un po' come gli artigiani per l'informatica :)
Back to top
View user's profile Send private message
gutter
Bodhisattva
Bodhisattva


Joined: 13 Mar 2004
Posts: 7162
Location: Aarau, Aargau, Switzerland

PostPosted: Thu Feb 17, 2005 9:01 am    Post subject: Reply with quote

federico wrote:

I MIEI VI STANNO ANTIPATICI DI PROGRAMMI ?!? :twisted: :twisted: :twisted:


No non ci stai antipatico ;). Mandami un PM con l'url del programma che lo aggiungo alla sezione post utilissimi.

Come dice fonderia puoi anche metterlo nel wiki.
_________________
Registered as User #281564 and Machines #163761
Back to top
View user's profile Send private message
fedeliallalinea
Administrator
Administrator


Joined: 08 Mar 2003
Posts: 30837
Location: here

PostPosted: Thu Feb 17, 2005 9:27 am    Post subject: Reply with quote

federico wrote:
I MIEI VI STANNO ANTIPATICI DI PROGRAMMI ?!? :twisted: :twisted: :twisted:

Concordo con fonderia :P . Se vai in fondo al post dei post utilissimi trovi la frase
Quote:
Ovviamente, sono ben accette segnalazioni da fare qui...

e allora usiamolo no:D
_________________
Questions are guaranteed in life; Answers aren't.
Back to top
View user's profile Send private message
randomaze
Bodhisattva
Bodhisattva


Joined: 21 Oct 2003
Posts: 9985

PostPosted: Thu Feb 17, 2005 10:41 am    Post subject: Reply with quote

fedeliallalinea wrote:
Se vai in fondo al post dei post utilissimi trovi la frase


IMHO il wiki sarebbe la cosa migliore... ;-)
_________________
Ciao da me!
Back to top
View user's profile Send private message
luna80
Veteran
Veteran


Joined: 01 Feb 2004
Posts: 1545
Location: switzerland

PostPosted: Thu Feb 17, 2005 10:48 am    Post subject: Reply with quote

federico wrote:

I MIEI VI STANNO ANTIPATICI DI PROGRAMMI ?!? :twisted: :twisted: :twisted:


mi spiace, ma non prendertela con me o con il mio posto :cry:

magari il mio è stato notato di più solo perchè son femmina :wink:

dai non prendertela
Back to top
View user's profile Send private message
gutter
Bodhisattva
Bodhisattva


Joined: 13 Mar 2004
Posts: 7162
Location: Aarau, Aargau, Switzerland

PostPosted: Thu Feb 17, 2005 10:54 am    Post subject: Reply with quote

luna80 wrote:

magari il mio è stato notato di più solo perchè son femmina :wink:


Non credo, l'ho aggiunto solo perche lo reputavo utile per gli altri, al di la del fatto che tu sia uomo o donna.
_________________
Registered as User #281564 and Machines #163761
Back to top
View user's profile Send private message
luna80
Veteran
Veteran


Joined: 01 Feb 2004
Posts: 1545
Location: switzerland

PostPosted: Thu Feb 17, 2005 11:22 am    Post subject: Reply with quote

gutter wrote:

Non credo, l'ho aggiunto solo perche lo reputavo utile per gli altri, al di la del fatto che tu sia uomo o donna.


..ma la mia era solo una battuta...un pò tanto stupida...effettivamente :oops:
Back to top
View user's profile Send private message
gutter
Bodhisattva
Bodhisattva


Joined: 13 Mar 2004
Posts: 7162
Location: Aarau, Aargau, Switzerland

PostPosted: Thu Feb 17, 2005 12:10 pm    Post subject: Reply with quote

luna80 wrote:

..ma la mia era solo una battuta...un pò tanto stupida...effettivamente :oops:


Ma che fai scherzi :D Figurati se me la sono presa. Ho fatto solo una precisazione :wink:

Non sono mica così cattivo :lol:
_________________
Registered as User #281564 and Machines #163761
Back to top
View user's profile Send private message
federico
Advocate
Advocate


Joined: 18 Feb 2003
Posts: 3272
Location: Italy, Milano

PostPosted: Fri Feb 18, 2005 10:51 am    Post subject: Reply with quote

Probabilmente e' ora di ricordarsi che esiste il wiki ed e' ora di imparare ad utilizzarlo...
Forza che oggi ho un grazioso esame in uni alle 14, poi nel wkend mi dedico alla mia ragazza e da lunedi' si riprende a vivere e a postare a e programmare :)
_________________
Sideralis www.sideralis.org
Pic http://blackman.amicofigo.com/gallery
Arduino http://www.arduino.cc
Chi aveva potuto aveva spaccato
2000 pezzi buttati là
Molti saluti,qualche domanda
Semplice come musica punk
Back to top
View user's profile Send private message
mouser
Veteran
Veteran


Joined: 10 Aug 2004
Posts: 1419
Location: Milano

PostPosted: Fri Feb 18, 2005 10:57 am    Post subject: Reply with quote

federico wrote:
Probabilmente e' ora di ricordarsi che esiste il wiki ed e' ora di imparare ad utilizzarlo...
[cut]


[ot]
Il wiki e' bellissimo e vorrei contribuire ad incrementarlo...
Solo che finora mi sono iscritto, ho cercato, ho chiesto a circa 7 persone, ma nessuno di noi ha capito come uploadare un howto :?
Credo che tutti e 7 abbiamo l'articolo parcheggiato nelle discussioni personali, in attesa di vedere la luce :lol:
Chiedo comunque scusa per l'ot :D
[/ot]

Ciriciao
mouser :wink:
Back to top
View user's profile Send private message
gutter
Bodhisattva
Bodhisattva


Joined: 13 Mar 2004
Posts: 7162
Location: Aarau, Aargau, Switzerland

PostPosted: Fri Feb 18, 2005 11:00 am    Post subject: Reply with quote

mouser wrote:

Solo che finora mi sono iscritto, ho cercato, ho chiesto a circa 7 persone, ma nessuno di noi ha capito come uploadare un howto :?


Contattami stasera in jabber/ICQ che grazie a fedeliallalinea ho capito come fare ;)
_________________
Registered as User #281564 and Machines #163761
Back to top
View user's profile Send private message
luna80
Veteran
Veteran


Joined: 01 Feb 2004
Posts: 1545
Location: switzerland

PostPosted: Fri Feb 18, 2005 12:00 pm    Post subject: Reply with quote

effettivamente non è molto semplice capire come funziona il wiki, io per capire come postare il mio primo tip ho dovuto fare salti mortali...poi ce l'ho fatta.

per fortuna che non son l'unica ad avere avuto problemi,...posso fare un piccolo sospiro di sollievo...:?
Back to top
View user's profile Send private message
randomaze
Bodhisattva
Bodhisattva


Joined: 21 Oct 2003
Posts: 9985

PostPosted: Fri Feb 18, 2005 8:42 pm    Post subject: Reply with quote

mouser wrote:
Solo che finora mi sono iscritto, ho cercato, ho chiesto a circa 7 persone, ma nessuno di noi ha capito come uploadare un howto :?


Vai nel thread del wiki e spiega quali sarebbero i problemi che hai incontrato.... :roll:
_________________
Ciao da me!
Back to top
View user's profile Send private message
Terenz
n00b
n00b


Joined: 08 Mar 2005
Posts: 40

PostPosted: Fri Apr 15, 2005 4:40 pm    Post subject: Reply with quote

ciao ho seguito la tua guida e quando vado a testarlo mi da un messaggio di questo tipo

Traceback (most recent call last):
File "/usr/local/bin/batt_warning", line 66, in ?
if(arr[0]!='charging' and int(arr[1])<6):
IndexError: list index out of range

purtroppo non so muovermi tanto bene perchè sono alle prime armi

mi potete aiutare
Back to top
View user's profile Send private message
gutter
Bodhisattva
Bodhisattva


Joined: 13 Mar 2004
Posts: 7162
Location: Aarau, Aargau, Switzerland

PostPosted: Sat Apr 16, 2005 4:28 pm    Post subject: Reply with quote

Manda anche un PM all'autrice dello script.
_________________
Registered as User #281564 and Machines #163761
Back to top
View user's profile Send private message
luna80
Veteran
Veteran


Joined: 01 Feb 2004
Posts: 1545
Location: switzerland

PostPosted: Mon Apr 18, 2005 12:09 pm    Post subject: Reply with quote

Terenz wrote:
ciao ho seguito la tua guida e quando vado a testarlo mi da un messaggio di questo tipo

Traceback (most recent call last):
File "/usr/local/bin/batt_warning", line 66, in ?
if(arr[0]!='charging' and int(arr[1])<6):
IndexError: list index out of range

purtroppo non so muovermi tanto bene perchè sono alle prime armi

mi potete aiutare


scusa se ti risponso solo ora ma durante il week end no navevo la connesssione.

hai modificato il file /usr/local/bin/battery_warning come avevo detto di fare? (e cioè mettendo il path del TUO file con l'output di acpi)

credo che il tuo problema sia quello.

fammi sapere!
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum