def run(thread_shutdown_event=None, pl_shutdown_event=None, pl_config_loader=None, interval=None): powerline = Powerline( 'wm', renderer_module='pango_markup', shutdown_event=pl_shutdown_event, config_loader=pl_config_loader, ) powerline.update_renderer() if not thread_shutdown_event: thread_shutdown_event = powerline.shutdown_event while not thread_shutdown_event.is_set(): # powerline.update_interval may change over time used_interval = interval or powerline.update_interval start_time = monotonic() s = powerline.render(side='right') request = 'powerline_widget:set_markup(\'' + s.translate({ '\'': '\\\'', '\\': '\\\\' }) + '\')\n' client = Popen(['awesome-client'], shell=False, stdout=PIPE, stderr=PIPE, stdin=PIPE) client.stdin.write(request.encode('utf-8')) client.stdin.close() read_to_log(powerline.pl, client) thread_shutdown_event.wait( max(used_interval - (monotonic() - start_time), 0.1))
class Powerline(base._TextBox): def __init__(self, timeout=2, text=" ", width=bar.CALCULATED, **config): base._TextBox.__init__(self, text, width, **config) self.timeout_add(timeout, self.update) self.powerline = PowerlineCore(ext='wm', renderer_module='pango_markup') def update(self): if not self.configured: return True self.text = self.powerline.render(side='right') self.bar.draw() return True def cmd_update(self, text): self.update(text) def cmd_get(self): return self.text def _configure(self, qtile, bar): base._TextBox._configure(self, qtile, bar) self.layout = self.drawer.textlayout( self.text, self.foreground, self.font, self.fontsize, self.fontshadow, markup=True)
powerline = Powerline('wm', renderer_module='pango_markup') powerline.update_renderer() try: interval = float(sys.argv[1]) except IndexError: interval = 2 def read_to_log(pl, client): for line in client.stdout: if line: pl.info(line, prefix='awesome-client') for line in client.stderr: if line: pl.error(line, prefix='awesome-client') if client.wait(): pl.error('Client exited with {0}', client.returncode, prefix='awesome') while True: start_time = monotonic() s = powerline.render(side='right') request = "powerline_widget:set_markup('" + s.replace('\\', '\\\\').replace("'", "\\'") + "')\n" client = Popen(['awesome-client'], shell=False, stdout=PIPE, stderr=PIPE, stdin=PIPE) client.stdin.write(request.encode('utf-8')) client.stdin.close() read_to_log(powerline.pl, client) sleep(max(interval - (monotonic() - start_time), 0.1))
interval = float(sys.argv[1]) except IndexError: interval = 2 def read_to_log(pl, client): for line in client.stdout: if line: pl.info(line, prefix='awesome-client') for line in client.stderr: if line: pl.error(line, prefix='awesome-client') if client.wait(): pl.error('Client exited with {0}', client.returncode, prefix='awesome') while True: start_time = monotonic() s = powerline.render(side='right') request = "powerline_widget:set_markup('" + s.replace( '\\', '\\\\').replace("'", "\\'") + "')\n" client = Popen(['awesome-client'], shell=False, stdout=PIPE, stderr=PIPE, stdin=PIPE) client.stdin.write(request.encode('utf-8')) client.stdin.close() read_to_log(powerline.pl, client) sleep(max(interval - (monotonic() - start_time), 0.1))