diff -Nru meter-screenlet-0.1/debian/changelog meter-screenlet-0.1.1/debian/changelog --- meter-screenlet-0.1/debian/changelog 2010-11-17 05:11:19.000000000 +0000 +++ meter-screenlet-0.1.1/debian/changelog 2010-11-19 18:36:14.000000000 +0000 @@ -1,5 +1,5 @@ -meter-screenlet (0.1) maverick; urgency=low +meter-screenlet (0.1.1) maverick; urgency=low * Created automatically by The Screenlets Debianizer. - -- Guido Tabbernuk Wed, 17 Nov 2010 14:11:19 +0900 \ No newline at end of file + -- Guido Tabbernuk Sat, 20 Nov 2010 03:36:14 +0900 \ No newline at end of file diff -Nru meter-screenlet-0.1/screenlet/Meter/MeterScreenlet.py meter-screenlet-0.1.1/screenlet/Meter/MeterScreenlet.py --- meter-screenlet-0.1/screenlet/Meter/MeterScreenlet.py 2010-11-17 05:11:19.000000000 +0000 +++ meter-screenlet-0.1.1/screenlet/Meter/MeterScreenlet.py 2010-11-19 18:36:14.000000000 +0000 @@ -22,11 +22,13 @@ # default meta-info for Screenlets __name__ = 'MeterScreenlet' - __version__ = '0.1' + __version__ = '0.1.1' __author__ = 'Helder Fraga aka Whise ,default theme by RYX' __desc__ = 'Sensors Screenlet.' - # internals + + + __timeout = None # settings @@ -51,79 +53,114 @@ wire_list = [] wire_data = [] background_color = (0,0,0, 0.8) + + label = "CPU0" + + loads=[] + old_idle=0 + nb_points=50 + show_graph = True + text_prefix = '% ' + text_suffix = '' + loads=[] + old_idle=0 + linear = '' + color_high = (1,0,0,1) + color_medium =(0, 0, 1, 1) + color_low = (0, 1, 0, 1) + graph_type = 'Graph' + sensor_list = [] + sensor = 'CPU0' + load = 0 + old_cpu = 0 + new_cpu = 0 + wire_list = [] + wire_data = [] + background_color = (0,0,0, 0.8) + + # constructor def __init__(self,**keyword_args): screenlets.Screenlet.__init__(self, width=100, height=100, uses_theme=True, **keyword_args) + self.loads=[] - #self.old_somme=0 self.old_idle=0 + self.nb_points=50 + self.show_graph = True + self.text_prefix = '% ' + self.text_suffix = '' + self.loads=[] + self.old_idle=0 + self.linear = '' + self.color_high = (1,0,0,1) + self.color_medium =(0, 0, 1, 1) + self.color_low = (0, 1, 0, 1) + self.graph_type = 'Graph' + self.sensor_list = [] + self.load = 0 + self.old_cpu = 0 + self.new_cpu = 0 + self.wire_list = [] + self.wire_data = [] + for i in range(self.nb_points): self.loads.append(0) - - - - - #call super (and not show window yet) - #screenlets.Screenlet.__init__(self, uses_theme=True, **keyword_args) - # set theme + if self.sensor_list ==[]: for i in range (0,sensors.cpu_get_nb_cpu()+1): - self.sensor_list.append('CPU' + str(i)) self.sensor_list.append('RAM') self.sensor_list.append('SWAP') - if sensors.bat_get_battery_list(): - self.sensor_list.append(str(sensors.bat_get_battery_list()[0])) + + for bat in sensors.bat_get_battery_list(): + if bat: + self.sensor_list.append(str(bat)) for i in sensors.disk_get_disk_list(): self.sensor_list.append(str(i)) - print sensors.sensors_get_sensors_list() + if sensors.sensors_get_sensors_list(): for i in sensors.sensors_get_sensors_list(): - self.sensor_list.append(str(i)) - #print i.split(':')[0] + self.sensor_list.append(str(i)) + self.wire_list = sensors.wir_get_interfaces() + if self.wire_list !=[]: - self.sensor_list.append('Wifi '+ self.wire_list[0]) - + self.sensor_list.append('Wifi '+ self.wire_list[0]) + + # set default theme self.theme_name = "default" - # add default menu items + # add settings self.add_options_group('Sensors', 'CPU-Graph specific options') self.add_option(BoolOption('Sensors', 'show_text', - self.show_text, 'Show Text', 'Show the text on the CPU-Graph ...')) + True, 'Show Text', 'Show the text on the CPU-Graph.')) - self.add_option(StringOption('Sensors', 'sensor', - self.sensor, 'Sensor to Display', - '',choices=self.sensor_list)) + self.add_option(StringOption('Sensors', 'sensor', 'CPU0', 'Sensor to Display', + '', choices=self.sensor_list)) + + self.add_option(StringOption('Sensors', 'label', + '', 'Label to Display', + 'Leave empty if you want to display name of sensor instead of custom name')) + self.add_option(ColorOption('Sensors','background_color', - self.background_color, 'Back color(only with default theme)', 'only works with default theme')) + (0,0,0, 0.8), 'Back color(only with default theme)', 'only works with default theme')) + + # add default menutimes + self.add_default_menuitems() # init the timeout function - self.update_interval = self.update_interval - - - def on_init(self): - self.add_default_menuitems() + self.__timeout = gobject.timeout_add(1000, self.update) # attribute-"setter", handles setting of attributes def __setattr__(self, name, value): - # call Screenlet.__setattr__ in baseclass (ESSENTIAL!!!!) + # important: call Screenlet.__setattr__ in baseclass screenlets.Screenlet.__setattr__(self, name, value) + # check for this Screenlet's attributes, we are interested in: - if name == "update_interval": - if value > 0: - self.__dict__['update_interval'] = value - if self.__timeout: - gobject.source_remove(self.__timeout) - self.__timeout = gobject.timeout_add(int(value * 1000), self.update) - else: - # TODO: raise exception!!! - self.__dict__['update_interval'] = 1 - pass - elif name == "nb_points": + if name == "nb_points": if value > 1: if len(self.loads)> value: self.loads=self.loads[len(self.loads)-value:] @@ -131,13 +168,9 @@ for i in range(value-len(self.loads)): self.loads.insert(0,0) self.__dict__['nb_points'] = value - else: # TODO: raise exception!!! self.__dict__['nb_points'] = 2 - pass - - # calculate cpu-usage by values from /proc/stat # timeout-function def update(self): @@ -153,7 +186,7 @@ elif self.sensor.startswith('SWAP'): self.load = sensors.mem_get_usedswap() - elif self.sensor.startswith('BAT'): + elif self.sensor.startswith('BAT') or self.sensor.startswith('C1'): #temporary workaround for batteries in HP NC4200 TODO: do not use name of sensor to recognize type? bat_data = sensors.bat_get_data(self.sensor) try: self.load = (bat_data[1]*100)/bat_data[2] @@ -180,18 +213,16 @@ else: self.sensor = 'Wifi ' + str(self.wire_data['essid']) self.load = int(str(self.wire_data['percentage']).replace('%','')) - elif self.sensor and self.sensor in sensors.disk_get_disk_list(): - # only get here when requested sensor is in the list of available disks - self.load = int(sensors.disk_get_usage(self.sensor)[4].replace('%','')) + elif self.sensor and self.sensor in sensors.disk_get_disk_list(): + # only get here when requested sensor is in the list of available disks + self.load = int(sensors.disk_get_usage(self.sensor)[4].replace('%','')) else: try: self.sensor = str(self.sensor.split(':')[0]) + ':' + str(sensors.sensors_get_sensor_value(self.sensor.split(':')[0])) except: - pass + pass self.load = 0 - - if self.load >= 100: self.load = 99 elif self.load < 0: @@ -200,10 +231,7 @@ self.redraw_canvas() return True - def on_draw(self, ctx): - # get load - #print self.loads del(self.loads[0]) self.loads.append(self.load) # set size @@ -214,16 +242,24 @@ ctx.set_source_rgba(*self.background_color) if self.theme_name == 'default':self.draw_rounded_rectangle(ctx,6.3,7,9,84.1,80.1) self.theme.render(ctx, 'cpumeter-bg') - # draw text + + # draw text if len(str(self.load))==1: self.load = "0" + str(self.load) ctx.set_source_rgba(1, 1, 1, 0.9) if self.sensor.endswith('RPM') or self.sensor.endswith('C') or self.sensor.endswith('V')or self.sensor.find(':') != -1: - text = '' +str(self.sensor.split(':')[0])[:9] +'\n'+str(self.sensor.split(':')[1]) + if self.label: + upper_line = self.label + else: + upper_line = str(self.sensor.split(':')[0])[:9] + text = '' + upper_line+'\n'+str(self.sensor.split(':')[1]) else: - text = '' +self.sensor[:9] +'\n'+self.text_prefix + str(self.load) + self.text_suffix - - + if self.label: + upper_line = self.label + else: + upper_line = self.sensor[:9] + text = '' +upper_line +'\n'+self.text_prefix + str(self.load) + self.text_suffix + h = (float(self.load) / 100.0) * 70.0 ctx.save() ctx.rectangle(20, 10+(70-h), 60, h) @@ -235,10 +271,6 @@ if self.show_text: self.draw_text(ctx,text, 15, 20, 'FreeSans', 25, self.width,pango.ALIGN_LEFT) self.theme.render(ctx, 'cpumeter-glass') - - # draw glass (if theme available) - - #self.theme.render('cpumeter-glass') def on_draw_shape(self,ctx): if self.theme: Binary files /tmp/auYAwV3jTP/meter-screenlet-0.1/screenlet/Meter/MeterScreenlet.pyc and /tmp/zNzYZPfxvY/meter-screenlet-0.1.1/screenlet/Meter/MeterScreenlet.pyc differ