37 lines
900 B
Python
37 lines
900 B
Python
# 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):
|
||
segment = {
|
||
'full_text': contents,
|
||
'separator': False,
|
||
'separator_block_width': 0, # no seperators
|
||
}
|
||
|
||
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
|