[core] Add prefix/postfix support
This commit is contained in:
parent
37e1deaa6f
commit
1a093a73b1
4 changed files with 23 additions and 4 deletions
|
@ -38,6 +38,18 @@ class i3(object):
|
||||||
def stop(self):
|
def stop(self):
|
||||||
return { 'suffix': '\n]' }
|
return { 'suffix': '\n]' }
|
||||||
|
|
||||||
|
def __pad(self, module, widget, full_text):
|
||||||
|
padding = self._theme.padding()
|
||||||
|
if not full_text: return padding
|
||||||
|
return '{}{}{}'.format(padding, full_text, padding)
|
||||||
|
|
||||||
|
def __decorate(self, module, widget, full_text):
|
||||||
|
return '{}{}{}'.format(
|
||||||
|
self.__pad(module, widget, self._theme.prefix(widget)),
|
||||||
|
full_text,
|
||||||
|
self.__pad(module, widget, self._theme.suffix(widget))
|
||||||
|
)
|
||||||
|
|
||||||
def __common_attributes(self, module, widget):
|
def __common_attributes(self, module, widget):
|
||||||
return {
|
return {
|
||||||
'separator': self._theme.default_separators(),
|
'separator': self._theme.default_separators(),
|
||||||
|
@ -64,7 +76,7 @@ class i3(object):
|
||||||
def __main(self, module, widget):
|
def __main(self, module, widget):
|
||||||
attr = self.__common_attributes(module, widget)
|
attr = self.__common_attributes(module, widget)
|
||||||
attr.update({
|
attr.update({
|
||||||
'full_text': widget.full_text(),
|
'full_text': self.__decorate(module, widget, widget.full_text()),
|
||||||
'color': self._theme.fg(widget),
|
'color': self._theme.fg(widget),
|
||||||
'background': self._theme.bg(widget),
|
'background': self._theme.bg(widget),
|
||||||
})
|
})
|
||||||
|
|
|
@ -39,6 +39,8 @@ class Theme(object):
|
||||||
('border-bottom', 0),
|
('border-bottom', 0),
|
||||||
('border-left', 0),
|
('border-left', 0),
|
||||||
('border-right', 0),
|
('border-right', 0),
|
||||||
|
('padding', ''),
|
||||||
|
('prefix', ''), ('suffix', ''),
|
||||||
]:
|
]:
|
||||||
setattr(self, attr.replace('-', '_'), lambda widget=None, default=default, attr=attr: self.__get(widget, attr, default))
|
setattr(self, attr.replace('-', '_'), lambda widget=None, default=default, attr=attr: self.__get(widget, attr, default))
|
||||||
|
|
||||||
|
@ -77,6 +79,11 @@ class Theme(object):
|
||||||
tmp = tmp[self.__widget_count % len(tmp)]
|
tmp = tmp[self.__widget_count % len(tmp)]
|
||||||
value = tmp.get(key, value)
|
value = tmp.get(key, value)
|
||||||
|
|
||||||
|
value = self.__data.get(key, value)
|
||||||
|
|
||||||
|
if widget.module():
|
||||||
|
value = self.__get(None, widget.module().name(), {}).get(key, value)
|
||||||
|
|
||||||
if not key in widget.state():
|
if not key in widget.state():
|
||||||
for state in widget.state():
|
for state in widget.state():
|
||||||
theme = self.__get(widget, state, {})
|
theme = self.__get(widget, state, {})
|
||||||
|
|
|
@ -15,7 +15,9 @@ class Widget(util.store.Store, core.input.Object):
|
||||||
return self._full_text(self)
|
return self._full_text(self)
|
||||||
return self._full_text
|
return self._full_text
|
||||||
|
|
||||||
def module(self, module):
|
def module(self, module=None):
|
||||||
|
if not module:
|
||||||
|
return self._module
|
||||||
self._module = module
|
self._module = module
|
||||||
|
|
||||||
def state(self):
|
def state(self):
|
||||||
|
|
|
@ -14,14 +14,12 @@
|
||||||
|
|
||||||
## Backwards-compatibility
|
## Backwards-compatibility
|
||||||
- aliases
|
- aliases
|
||||||
- icons (prefix/postfix)
|
|
||||||
- charts (braille)
|
- charts (braille)
|
||||||
- minimize modules
|
- minimize modules
|
||||||
- hide modules if not in warning/error state (-a)
|
- hide modules if not in warning/error state (-a)
|
||||||
- WAL support / colorscheme support
|
- WAL support / colorscheme support
|
||||||
- tkinter / popups
|
- tkinter / popups
|
||||||
- scrolling decorator (incl. minwidth, alignment)
|
- scrolling decorator (incl. minwidth, alignment)
|
||||||
- states
|
|
||||||
|
|
||||||
## Improvements
|
## Improvements
|
||||||
- pango output (improve - maybe autodetect? see #531)
|
- pango output (improve - maybe autodetect? see #531)
|
||||||
|
|
Loading…
Reference in a new issue