Add tmux segment renderer
This commit is contained in:
parent
6a9bb45157
commit
6a1912aece
|
@ -3,4 +3,5 @@ class SegmentRenderer:
|
|||
raise NotImplementedError
|
||||
|
||||
from lib.renderers.terminal import TerminalSegmentRenderer
|
||||
from lib.renderers.tmux import TmuxSegmentRenderer
|
||||
from lib.renderers.vim import VimSegmentRenderer
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
from lib.core import Powerline
|
||||
from lib.renderers import SegmentRenderer
|
||||
|
||||
|
||||
class TmuxSegmentRenderer(SegmentRenderer):
|
||||
'''Powerline tmux segment renderer.
|
||||
'''
|
||||
def hl(self, fg=None, bg=None, attr=None):
|
||||
'''Highlight a segment.
|
||||
'''
|
||||
tmux_attr = []
|
||||
|
||||
if fg is not None:
|
||||
tmux_attr += ['fg=colour' + str(fg[0])]
|
||||
|
||||
if bg is not None:
|
||||
tmux_attr += ['bg=colour' + str(bg[0])]
|
||||
|
||||
if attr is not None:
|
||||
if attr is False:
|
||||
tmux_attr += ['nobold', 'noitalics', 'nounderscore']
|
||||
else:
|
||||
if attr & Powerline.ATTR_BOLD:
|
||||
tmux_attr += ['bold']
|
||||
else:
|
||||
tmux_attr += ['nobold']
|
||||
if attr & Powerline.ATTR_ITALIC:
|
||||
tmux_attr += ['italics']
|
||||
else:
|
||||
tmux_attr += ['noitalics']
|
||||
if attr & Powerline.ATTR_UNDERLINE:
|
||||
tmux_attr += ['underscore']
|
||||
else:
|
||||
tmux_attr += ['nounderscore']
|
||||
|
||||
return '#[' + ','.join(tmux_attr) + ']'
|
Loading…
Reference in New Issue