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):
Example #2
0
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()