1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# vim:fileencoding=utf-8:noet
from __future__ import (unicode_literals, division, absolute_import, print_function)
import json
from powerline.renderer import Renderer
class I3barRenderer(Renderer):
'''I3bar Segment Renderer.
Currently works only for i3bgbar (i3 bar with custom patches).
'''
@staticmethod
def hlstyle(*args, **kwargs):
# We don’t need to explicitly reset attributes, so skip those calls
return ''
def hl(self, contents, fg=None, bg=None, attrs=None, **kwargs):
segment = {
'full_text': contents,
'separator': False,
'separator_block_width': 0, # no separators
}
if fg is not None:
if fg is not False and fg[1] is not False:
segment['color'] = '#{0:06x}'.format(fg[1])
if bg is not None:
if bg is not False and bg[1] is not False:
segment['background'] = '#{0:06x}'.format(bg[1])
return json.dumps(segment) + ','
renderer = I3barRenderer
|