cl_actions.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #! /usr/bin/env python
  2. #-*- coding: utf-8 -*-
  3. from cl_taskbaricon import Tray
  4. import os,sys
  5. import wx
  6. PATH=os.path.abspath(os.path.dirname(sys.argv[0])) + '/'
  7. TEMPERATURE_FILE = '/sys/class/thermal/thermal_zone0/temp'
  8. TEMPERATURE_DIVISOR = 1000
  9. class Tray_action(Tray):
  10. """ Classe dérivée de la gestion de l'icone et du menu qui gère les actions en plus """
  11. def __init__(self, app):
  12. Tray.__init__(self, app)
  13. self.mode = 1
  14. self.timer = wx.Timer(self)
  15. self.timer.Start(3000)
  16. self.Bind(wx.EVT_TIMER, self.EachSecond)
  17. self.CheckTemp()
  18. self.DisplayTemp()
  19. def OnTaskBarActivate(self, evt):
  20. self.CreatePopupMenu()
  21. def DisplayTemp(self):
  22. unites=self.temp%10
  23. dizaines=(self.temp - unites)/10
  24. #print "Temp: %d * 10 + %d" % (dizaines, unites)
  25. self.IconMonitor(dizaines - 2, unites/2)
  26. def OnTaskBarClose(self, evt):
  27. print "Au revoir !"
  28. self.Destroy()
  29. def OnTaskBarSetPowersave(self, evt):
  30. print "appel de OnTaskBarSetPowersave"
  31. os.system("sudo cpufreq-set -g powersave")
  32. self.ChangeIcon(PATH + "cpu_powersave.png")
  33. def OnTaskBarSetOndemand(self, evt):
  34. print "appel de OnTaskBarSetOndemand"
  35. os.system("sudo cpufreq-set -g ondemand")
  36. self.ChangeIcon(PATH + "cpu_ondemand.png")
  37. def OnTaskBarParam(self, evt):
  38. if self.mode:
  39. self.IconMonitor(1,4)
  40. else:
  41. self.ChangeIcon(PATH + "cpu.png")
  42. self.mode=not(self.mode)
  43. def OnTaskBarLock(self, evt):
  44. os.system('xlock')
  45. def OnTaskBarSleep(self, evt):
  46. os.system('sudo pm-suspend')
  47. #os.system('sudo s2ram -f')
  48. def CheckTemp(self):
  49. """ Recuppère la température actuelle à partir de /sys/class/ """
  50. #ofi=open('/proc/acpi/thermal_zone/THRM/temperature')
  51. #f=ofi.read()
  52. #self.temp=int(f.split(':')[1].strip().replace(" C", ""))
  53. ofi = open(TEMPERATURE_FILE)
  54. f=ofi.read()
  55. self.temp = int(f)/TEMPERATURE_DIVISOR
  56. def EachSecond(self, evt):
  57. self.CheckTemp()
  58. self.DisplayTemp()