summaryrefslogtreecommitdiffstats
path: root/powerline/renderers/i3bar.py
blob: 3eab61fa765bfdf272793b5790f202ba8789d650 (plain)
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