[core/theme] Add preliminary cycling support
Add support for cycling values in a theme, for now as long as the cycle size is 0 :P
This commit is contained in:
parent
f05098a120
commit
26ae63b5ad
3 changed files with 25 additions and 6 deletions
|
@ -43,6 +43,7 @@ class i3(object):
|
|||
'name': module.id(),
|
||||
'color': self._theme.fg(widget),
|
||||
'background': self._theme.bg(widget),
|
||||
'separator': self._theme.default_separators(),
|
||||
})
|
||||
return widgets
|
||||
|
||||
|
|
|
@ -31,11 +31,18 @@ class Theme(object):
|
|||
def bg(self, widget=None):
|
||||
return self.__get(widget, 'bg')
|
||||
|
||||
def default_separators(self, widget=None):
|
||||
return self.__get(widget, 'default-separators', True)
|
||||
|
||||
def __get(self, widget, key, default=None):
|
||||
value = default
|
||||
if 'defaults' in self._data:
|
||||
value = self._data['defaults'].get(key, value)
|
||||
|
||||
for option in ['defaults', 'cycle']:
|
||||
if option in self._data:
|
||||
tmp = self._data[option]
|
||||
if isinstance(tmp, list):
|
||||
tmp = tmp[0]
|
||||
value = tmp.get(key, value)
|
||||
return value
|
||||
|
||||
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue