summaryrefslogtreecommitdiffstats
path: root/powerline/bindings/bar/powerline-bar.py
diff options
context:
space:
mode:
Diffstat (limited to 'powerline/bindings/bar/powerline-bar.py')
-rwxr-xr-xpowerline/bindings/bar/powerline-bar.py60
1 files changed, 60 insertions, 0 deletions
diff --git a/powerline/bindings/bar/powerline-bar.py b/powerline/bindings/bar/powerline-bar.py
new file mode 100755
index 0000000..71e8ae3
--- /dev/null
+++ b/powerline/bindings/bar/powerline-bar.py
@@ -0,0 +1,60 @@
+#!/usr/bin/env python
+# vim:fileencoding=utf-8:noet
+from __future__ import (unicode_literals, division, absolute_import, print_function)
+
+import os
+import sys
+import time
+
+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()
+
+ def update(evt):
+ modes[0] = evt.change
+ render()
+
+ render(reschedule=True)
+
+ if args.i3:
+ try:
+ import i3ipc
+ except ImportError:
+ import i3
+ i3.Subscription(lambda evt, data, sub: print(render()), 'workspace')
+ else:
+ conn = i3ipc.Connection()
+ conn.on('workspace::focus', lambda conn, evt: render())
+ conn.on('mode', lambda conn, evt: update(evt))
+ conn.main()
+
+ while True:
+ time.sleep(1e8)