Пример #1
0
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))
Пример #2
0
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)
Пример #3
0
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))
Пример #4
0
    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))