Page 1 sur 1

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

Publié : sam. 26 mai 2012, 10:25
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 !

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

Publié : mar. 29 mai 2012, 10:16
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.

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

Publié : mar. 29 mai 2012, 13:42
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.

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

Publié : mar. 29 mai 2012, 14:29
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…

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

Publié : mar. 29 mai 2012, 19:24
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.

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

Publié : mar. 29 mai 2012, 20:34
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…

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

Publié : mer. 30 mai 2012, 19:00
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 !

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

Publié : mer. 30 mai 2012, 21:47
par MrMen
Content que ça ait convenu. :wink: