parent
dd77d420a3
commit
1e7dc7900d
|
@ -47,18 +47,19 @@ Add the following to :file:`~/.config/qtile/config.py`:
|
|||
.. _bar-usage:
|
||||
|
||||
LemonBoy’s bar
|
||||
=============
|
||||
==============
|
||||
|
||||
To run the bar simply pipe the output of the binding script into ``bar`` and specify appropriate
|
||||
options, for example like this::
|
||||
To run the bar simply pipe the output of the binding script into ``bar`` and
|
||||
specify appropriate options, for example like this::
|
||||
|
||||
python powerline-bar.py | bar -f "-xos4-*"
|
||||
python /path/to/powerline/bindings/bar/powerline-bar.py | bar
|
||||
|
||||
to run with i3, simply ``exec`` this in i3 config file::
|
||||
|
||||
exec python powerline-bar.py | bar -f "-xos4-*"
|
||||
exec python /path/to/powerline/bindings/bar/powerline-bar.py --i3 | bar
|
||||
|
||||
See the `bar documentation <https://github.com/LemonBoy/bar>`_ for more information and options.
|
||||
See the `bar documentation <https://github.com/LemonBoy/bar>`_ for more
|
||||
information and options.
|
||||
|
||||
I3 bar
|
||||
======
|
||||
|
|
33
powerline/bindings/i3/powerline-bar.py → powerline/bindings/bar/powerline-bar.py
Normal file → Executable file
33
powerline/bindings/i3/powerline-bar.py → powerline/bindings/bar/powerline-bar.py
Normal file → Executable file
|
@ -4,38 +4,37 @@ from __future__ import (unicode_literals, division, absolute_import, print_funct
|
|||
|
||||
import sys
|
||||
import time
|
||||
import i3
|
||||
|
||||
from threading import Lock
|
||||
from argparse import ArgumentParser
|
||||
|
||||
from powerline import Powerline
|
||||
from powerline.lib.monotonic import monotonic
|
||||
|
||||
if __name__ == '__main__':
|
||||
name = 'wm'
|
||||
if len(sys.argv) > 1:
|
||||
name = sys.argv[1]
|
||||
|
||||
powerline = Powerline( name, renderer_module='bar' )
|
||||
if __name__ == '__main__':
|
||||
parser = ArgumentParser(description='Powerline BAR bindings.')
|
||||
parser.add_argument(
|
||||
'--i3', action='store_true',
|
||||
help='Subscribe for i3 events.'
|
||||
)
|
||||
args = parser.parse_args()
|
||||
powerline = Powerline('wm', renderer_module='bar')
|
||||
powerline.update_renderer()
|
||||
|
||||
interval = 0.5
|
||||
lock = Lock()
|
||||
|
||||
def encode( str ): return str.encode('utf-8')
|
||||
|
||||
if sys.version_info > (3,0):
|
||||
def encode( str ): return str
|
||||
|
||||
def render(event=None, data=None, sub=None):
|
||||
global lock
|
||||
with lock:
|
||||
ln = '%{l}'
|
||||
ln += powerline.render(side='left')
|
||||
ln += '%{r}'
|
||||
ln += powerline.render(side='right')
|
||||
print( encode(ln) )
|
||||
print(powerline.render())
|
||||
sys.stdout.flush()
|
||||
|
||||
sub = i3.Subscription(render, 'workspace')
|
||||
if args.i3:
|
||||
import i3
|
||||
sub = i3.Subscription(render, 'workspace')
|
||||
|
||||
while True:
|
||||
start_time = monotonic()
|
||||
render()
|
|
@ -2,7 +2,7 @@
|
|||
from __future__ import (unicode_literals, division, absolute_import, print_function)
|
||||
|
||||
from powerline.renderer import Renderer
|
||||
from powerline.colorscheme import ATTR_BOLD, ATTR_ITALIC, ATTR_UNDERLINE
|
||||
from powerline.colorscheme import ATTR_UNDERLINE
|
||||
|
||||
|
||||
class BarRenderer(Renderer):
|
||||
|
@ -25,15 +25,21 @@ class BarRenderer(Renderer):
|
|||
|
||||
if fg is not None:
|
||||
if fg is not False and fg[1] is not False:
|
||||
text += '%{{F#ff{0:06x}}}'.format(fg[1])
|
||||
text += '%{{F#ff{0:06x}}}'.format(fg[1])
|
||||
if bg is not None:
|
||||
if bg is not False and bg[1] is not False:
|
||||
text += '%{{B#ff{0:06x}}}'.format(bg[1])
|
||||
text += '%{{B#ff{0:06x}}}'.format(bg[1])
|
||||
|
||||
if attrs & ATTR_UNDERLINE:
|
||||
text += '%{+u}'
|
||||
|
||||
return text + contents + '%{F-B--u}'
|
||||
|
||||
def render(self):
|
||||
return '%{{l}}{0}%{{r}}{1}'.format(
|
||||
super(BarRenderer, self).render(side='left'),
|
||||
super(BarRenderer, self).render(side='right'),
|
||||
)
|
||||
|
||||
|
||||
renderer = BarRenderer
|
||||
|
|
|
@ -824,23 +824,30 @@ class TestVim(TestCase):
|
|||
def tearDownClass(cls):
|
||||
sys.path.pop(0)
|
||||
|
||||
class TestBar(TestCase):
|
||||
|
||||
class TestBar(TestRender):
|
||||
def test_bar(self):
|
||||
import powerline as powerline_module
|
||||
with swap_attributes(config, powerline_module):
|
||||
with get_powerline_raw(config, powerline_module, ext='wm', renderer_module='bar') as powerline:
|
||||
self.assertEqual("%{{l}}{}%{{r}}{}".format(powerline.render(side='left'), powerline.render(side='right')), "SOME_STRING_HERE")
|
||||
with get_powerline_raw(config, powerline_module.Powerline, replace_gcp=True, ext='wm', renderer_module='bar') as powerline:
|
||||
self.assertRenderEqual(
|
||||
powerline,
|
||||
'%{l}%{F#ffc00000}%{B#ff008000}%{+u} A%{F-B--u}%{F#ff008000}%{B#ffc00000}>>%{F-B--u}%{F#ff008000}%{B#ffc00000}B%{F-B--u}%{F#ffc00000}>>%{F-B--u}%{r}%{F#ffc00000}<<%{F-B--u}%{F#ff804000}%{B#ffc00000}%{+u}C%{F-B--u}%{F#ff0000c0}%{B#ffc00000}<<%{F-B--u}%{F#ff008000}%{B#ff0000c0}D %{F-B--u}'
|
||||
)
|
||||
|
||||
def test_bar_escape(self):
|
||||
from powerline.shell import ShellPowerline
|
||||
@with_new_config
|
||||
def test_bar_escape(self, config):
|
||||
import powerline as powerline_module
|
||||
config['themes/wm/default']['segments']['left'] = {
|
||||
config['themes/wm/default']['segments']['left'] = (
|
||||
highlighted_string('%{asd}', 'hl1'),
|
||||
highlighted_string('10% %', 'hl2'),
|
||||
}
|
||||
)
|
||||
with swap_attributes(config, powerline_module):
|
||||
with get_powerline_raw(config, powerline_module, ext='wm', renderer_module='bar') as powerline:
|
||||
self.assertEqual(powerline.render(side='left'), "SOME_STRING_HERE")
|
||||
with get_powerline_raw(config, powerline_module.Powerline, replace_gcp=True, ext='wm', renderer_module='bar') as powerline:
|
||||
self.assertRenderEqual(
|
||||
powerline,
|
||||
'%{l}%{F#ffc00000}%{B#ff008000}%{+u} %%{asd}%{F-B--u}%{F#ff008000}%{B#ffc00000}>>%{F-B--u}%{F#ff008000}%{B#ffc00000}10%% %%%{F-B--u}%{F#ffc00000}>>%{F-B--u}%{r}%{F#ffc00000}<<%{F-B--u}%{F#ff804000}%{B#ffc00000}%{+u}C%{F-B--u}%{F#ff0000c0}%{B#ffc00000}<<%{F-B--u}%{F#ff008000}%{B#ff0000c0}D %{F-B--u}'
|
||||
)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
Loading…
Reference in New Issue