[themes] Add custom separators
Add the possibility to configure custom separators in the theme file. These will only be used if the default i3bar separators have been disabled. Background color will always be taken from the previous element (to work nicely with my long-term plan, a powerline-like status line).
This commit is contained in:
parent
7b48b08365
commit
656c499c95
2 changed files with 17 additions and 2 deletions
|
@ -1,9 +1,12 @@
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
import json
|
import json
|
||||||
import bumblebee.output
|
import bumblebee.output
|
||||||
|
|
||||||
class i3bar(bumblebee.output.Output):
|
class i3bar(bumblebee.output.Output):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self._data = []
|
self._data = []
|
||||||
|
self._previous_background = None
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
return json.dumps({ "version": 1 }) + "["
|
return json.dumps({ "version": 1 }) + "["
|
||||||
|
@ -12,15 +15,24 @@ class i3bar(bumblebee.output.Output):
|
||||||
theme = obj.theme()
|
theme = obj.theme()
|
||||||
|
|
||||||
data = {
|
data = {
|
||||||
"full_text": "{}{}{}".format(theme.prefix(obj), obj.data(), theme.suffix(obj)),
|
u"full_text": "{}{}{}".format(theme.prefix(obj), obj.data(), theme.suffix(obj)),
|
||||||
"color": theme.color(obj),
|
"color": theme.color(obj),
|
||||||
"background": theme.background(obj)
|
"background": theme.background(obj),
|
||||||
}
|
}
|
||||||
if theme.default_separators(obj) == False:
|
if theme.default_separators(obj) == False:
|
||||||
data["separator"] = False
|
data["separator"] = False
|
||||||
data["separator_block_width"] = 0
|
data["separator_block_width"] = 0
|
||||||
|
if theme.separator(obj):
|
||||||
|
self._data.append({
|
||||||
|
u"full_text": theme.separator(obj),
|
||||||
|
"color": theme.background(obj),
|
||||||
|
"background": self._previous_background,
|
||||||
|
"separator": False,
|
||||||
|
"separator_block_width": 0,
|
||||||
|
})
|
||||||
|
|
||||||
self._data.append(data)
|
self._data.append(data)
|
||||||
|
self._previous_background = theme.background(obj)
|
||||||
|
|
||||||
def get(self):
|
def get(self):
|
||||||
data = json.dumps(self._data)
|
data = json.dumps(self._data)
|
||||||
|
|
|
@ -31,6 +31,9 @@ class Theme:
|
||||||
def background(self, obj):
|
def background(self, obj):
|
||||||
return self._gettheme(obj, "bg")
|
return self._gettheme(obj, "bg")
|
||||||
|
|
||||||
|
def separator(self, obj):
|
||||||
|
return self._gettheme(obj, "separator")
|
||||||
|
|
||||||
def default_separators(self, obj):
|
def default_separators(self, obj):
|
||||||
return self._gettheme(obj, "default_separators")
|
return self._gettheme(obj, "default_separators")
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue