39 lines
1 KiB
Python
39 lines
1 KiB
Python
|
#!/usr/bin/env python
|
||
|
# vim:fileencoding=utf-8:noet
|
||
|
|
||
|
from powerline import Powerline
|
||
|
import sys
|
||
|
from time import sleep
|
||
|
from powerline.lib.monotonic import monotonic
|
||
|
from subprocess import Popen, PIPE
|
||
|
|
||
|
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))
|