# 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