[awesome][batterie] alerte, batterie est vide (résolu)

Xorg, Compiz, KDE / Gnome / Xfce / Fluxbox / e17 / fvwm ... GDM/KDM/XDM...
dionisos
newbie
Messages : 7
Inscription : sam. 19 mai 2012, 17:18

[awesome][batterie] alerte, batterie est vide (résolu)

Message par dionisos »

Bonjour.
J’utilise awesome, et j’aimerais savoir comment déclancher une alerte (par exemple le lancement d’un programme), quand ma batterie est en déchargement, et presque vide.

J’ai essayé de regarder un peu comment fonctionnait le widget pour la batterie dans la documentation (que j’utilise pour afficher le pourcentage de charge), mais j’ai pas trouvé comment faire.

Merci !
Dernière modification par dionisos le mer. 30 mai 2012, 19:03, modifié 2 fois.
Avatar de l’utilisateur
MrMen
Chu Ko Nu
Messages : 479
Inscription : sam. 11 juil. 2009, 14:33
Localisation : (33)

Re: [awesome][batterie] alerte quand la batterie est vide

Message par MrMen »

Bonjour. Quel widget utilises tu pour afficher le poucentage de ta batterie ? un fait maison ou autre chose ? C'est pour savoir vers quoi s'orienter.
Arch 64 | Awesome | Zsh | Bépo
dionisos
newbie
Messages : 7
Inscription : sam. 19 mai 2012, 17:18

Re: [awesome][batterie] alerte quand la batterie est vide

Message par dionisos »

Merci pour ton aide je commençais à desespérer ^^.

Alors j’utilise le widget de vicious comme ça:

Code : Tout sélectionner

vicious.register(batwidget,vicious.widgets.bat, "bat:$1 $2% $3 ", 61, "BAT0")
Mais après, je ne suis pas attaché a une manière particulière de faire, j’ai fait avec vicious parce que c’était simple, et que je ne connais awesome que de manière superficielle.
Avatar de l’utilisateur
MrMen
Chu Ko Nu
Messages : 479
Inscription : sam. 11 juil. 2009, 14:33
Localisation : (33)

Re: [awesome][batterie] alerte quand la batterie est vide

Message par MrMen »

Voilà un exemple de widget qui est tiré de ma configuration (pompé d'internet puis modifié un peu cf http://blog.mitemitreski.com/2011/05/sm ... power.html) :

Code : Tout sélectionner

   -- create image widget                                                                                                                                                                 
   -- batticon = widget({type = "imagebox"})                                                                                                                                              
   -- create widget                                                                                                                                                                       
   mybattmon = widget({ type = "textbox", name = "mybattmon", align = "right" })

   -- define function to update battery status                                                                                                                                            
   function battery_status ()
      local output={} --output buffer                                                                                                                                                     
      local fd=io.popen("acpi", "r") -- read info from acpi                                                                                                                               
      local line=fd:read()
      local battery_load = string.match(line, "%d+%%") -- obtain percent                                                                                                                  
      local time_rem = string.match(line, "(%d+\:%d+)\:%d+") -- obtain time                                                                                                               
      local discharging
      if string.match(line, "Discharging") then -- discharging                                                                                                                            
         discharging="<span color=\"#CC7777\">" -- red color                                                                                                                              
         -- my icon                                                                                                                                                                       
         -- batticon.image=image("/home/mrmen/.config/awesome/icons/power-bat.png")                                                                                                       
         battery_load=battery_load.."</span> ("..time_rem..")"
      else --charging                                                                                                                                                                     
         discharging="<span color=\"#DCDCCC\">" -- white                                                                                                                                  
	 battery_load=battery_load.."</span>"
         -- my icon                                                                                                                                                                       
         -- batticon.image=image("/home/mrmen/.config/awesome/icons/power-ac.png")                                                                                                        
      end
      table.insert(output, discharging..battery_load)
      line=fd:read() --read next line                                                                                                                                                     
      return table.concat(output," ")
   end

   -- at awesome launch, update battery status                                                                                                                                            
   mybattmon.text = battery_status()

   -- add a timer                                                                                                                                                                         
   my_battmon_timer=timer({timeout=60})
   my_battmon_timer:add_signal("timeout", function()
                                  mybattmon.text = " " .. battery_status() .. " "
                                          end)
   -- start timer                                                                                                                                                                         
   my_battmon_timer:start()
Si tu veux avoir le widget, ajoute le dans là où tu places les widgets vicious.

Je pense qu'avec ce code tu devrais pouvoir t'en tirer sans trop de problèmes. Si besoin redemande un peu d'aide.
Ensuite tout va dépendre du programme que tu veux lancer…
Arch 64 | Awesome | Zsh | Bépo
dionisos
newbie
Messages : 7
Inscription : sam. 19 mai 2012, 17:18

Re: [awesome][batterie] alerte quand la batterie est vide

Message par dionisos »

Merci !, j’ai regardé en diagonale, et j’pense que je vais pouvoir m’en sortir avec ça.
Sinon je pense que le programme, ça sera juste une console avec un message d’aversissement, ça fait trois fois que je ne fais pas attention à la batterie, et que du coup, mon portable se coupe en pleine activitée, avec ça je ne me ferais plus avoir.

Je regarde plus précisement demain, j’vais aller dormir, et je te tiens au courant.
Avatar de l’utilisateur
MrMen
Chu Ko Nu
Messages : 479
Inscription : sam. 11 juil. 2009, 14:33
Localisation : (33)

Re: [awesome][batterie] alerte quand la batterie est vide

Message par MrMen »

Content que ça ait l'air de te convenir. Si c'est pour ce type de programme, alors pas de soucis ça devrait passer : comme une lettre à la poste ! Jette aussi un oeil à notify…
Arch 64 | Awesome | Zsh | Bépo
dionisos
newbie
Messages : 7
Inscription : sam. 19 mai 2012, 17:18

Re: [awesome][batterie] alerte quand la batterie est vide

Message par dionisos »

Voilà, j’ai modifié la fonction battery_status comme ça:

Code : Tout sélectionner

do

	 local alert_run = false
	 local hibernation_run = false
	 function battery_status ()
	 		local output={} -- output buffer
	 		local fd=io.popen("acpi", "r") --read info from acpi
			local line=fd:read()
			local return_value = "bug"

			
	 		if(line ~= nil)then

				 local battery_load = string.match(line, "(%d+)%%") --obtain percent
				 local time_rem = string.match(line, "(%d+\:%d+)\:%d+") --obtain time
				 local discharging
				 if string.match(line, "Discharging") then -- discharging
						discharging="<span color=\"#CC7777\">" --red color
						--my icon
						-- batticon.image=image("/home/mrmen/.config/awesome/icons/power-bat.pngé")
						if(tonumber(battery_load) < 20)and not(alert_run)then
							 alert_run = true
							 awful.util.spawn(terminal_cmd .. "/home/dionisos/script/alert_bat")
						end

						if(tonumber(battery_load) < 10)and not(hibernation_run)then
							 hibernation_run = true
							 awful.util.spawn(terminal_cmd .. "/home/dionisos/script/hibernation")
						end

						battery_load=battery_load.."%</span> ("..time_rem..") "
				 else --charging
						
	 		 	   		discharging="<span color=\"#DCDCCC\">" --white
	 		 	   		battery_load=battery_load .."%</span>"
	 		 	   		alert_run = false
	 		 	   		hibernation_run = false
	 		 	  -- 		--my icon
	 		 	  -- 		batticon.image=image("/home/mrmen/.config/awesome/icons/power-ac.png")
				 end
				 table.insert(output, discharging..battery_load)
				 line=fd:read() --read next line
				 return_value = table.concat(output," ")
			else
				 return_value = "no bat"
			end
			
			return return_value
	 end
end			

et ça marche comme il faut, merci encore !
Dernière modification par dionisos le lun. 04 juin 2012, 20:36, modifié 3 fois.
Avatar de l’utilisateur
MrMen
Chu Ko Nu
Messages : 479
Inscription : sam. 11 juil. 2009, 14:33
Localisation : (33)

Re: [awesome][batterie] alerte, batterie est vide (résolu)

Message par MrMen »

Content que ça ait convenu. :wink:
Arch 64 | Awesome | Zsh | Bépo
Répondre