import time import re import subprocess from threading import Lock, Timer from powerline.lemonbar import LemonbarPowerline from powerline.commands.lemonbar import get_argparser from powerline.bindings.wm import get_connected_xrandr_outputs if __name__ == '__main__': parser = get_argparser() args = parser.parse_args() powerline = LemonbarPowerline() powerline.update_renderer() bars = [] for screen in get_connected_xrandr_outputs(powerline.pl): command = [ args.bar_command, '-g', '{0}x{1}+{2}'.format( screen['width'], args.height, screen['x']) ] + args.args[1:] process = subprocess.Popen(command, stdin=subprocess.PIPE) bars.append((screen['name'], process, int(screen['width']) / 5)) lock = Lock() modes = ['default'] def render(reschedule=False):
from threading import Lock, Timer from argparse import ArgumentParser from powerline.lemonbar import LemonbarPowerline from powerline.lib.encoding import get_unicode_writer from powerline.bindings.wm import DEFAULT_UPDATE_INTERVAL if __name__ == '__main__': parser = ArgumentParser(description='Powerline lemonbar bindings.') parser.add_argument( '--i3', action='store_true', help='Subscribe for i3 events.' ) args = parser.parse_args() powerline = LemonbarPowerline() powerline.update_renderer() powerline.pl.warn("The 'bar' bindings are deprecated, please switch to 'lemonbar'") lock = Lock() modes = ['default'] write = get_unicode_writer(encoding='utf-8') def render(reschedule=False): if reschedule: Timer(DEFAULT_UPDATE_INTERVAL, render, kwargs={'reschedule': True}).start() global lock with lock: write(powerline.render(mode=modes[0])) write('\n') sys.stdout.flush()