def main(): logger.info('loading configuration') import conf debug_levels = ['DEBUG', 'INFO', 'WARNING', 'ERROR'] parser = argparse.ArgumentParser( description="Simple panel written in Python for holding widgets") parser.add_argument('--verbosity', '-v', dest='verbosity', choices=debug_levels, default=None) args = parser.parse_args() level = args.verbosity or getattr(conf, 'VERBOSITY', 'INFO') if level not in debug_levels: logger.critical('Log level %s not supported!', level) return 1 logging.basicConfig(level=level) logger.info('creating panel') app = PanelWindow(position=getattr(conf, 'POSITION', None), widgets=getattr(conf, 'WIDGETS', [])) logger.info('starting main loop') gtk.gdk.threads_init() with GdkLock(): gtk.main()
def __init__(self): super(NotificationsWidget, self).__init__() self.daemon = NotificationDaemon(listeners=[self]) self.notifications = OrderedDict() self._gdk_lock = GdkLock()
def workspace_callback(self, event, data, subscription): sys.stdout.flush() with GdkLock(): self.workspaces = data self.update()