The idea is to simplify the way the output module currently works by:
- introducing an abstraction that represents blocks; these abstractions
contain all data - uninterpreted - required to draw a block
- separately from that, whenever the block is serialized into JSON,
do the interpretation (pango vs. non-pango, etc.)
This - theoretically - should simplify code by creating two separate
concerns: collecting the data and actually interpreting it.
Allow any piece of a theme that specifies a set of attributes (default,
cycles, states, widgets) to use pango *instead* of the usual attributes.
If pango is present, this will have precedence.
A practical example of this can be found in the powerline-pango theme,
which is added solely for demonstration purposes.
fixes#531
Until now, bumblebee-status did event handling in two places with almost
identical code: in core.event (makes sense) and core.input (still makes
sense, but a bit more dubious).
Changed core.input to use core.event
When rotating theme values (e.g. the "charge" icon of the battery
module(s)), until now, the code just showed the raw list (because it
wasn't aware of the need to rotate).
Expanding on the implementation in d582016, add a decorator
`core.module.every()` that allows a module to specify how often to
update the module's state.
This can still be overridden using the CLI parameter `interval`.
At least Void Linux doesn't like kill -SIGUSR<N>
Also, added some debugging to inspect state changes for modules/widgets.
Also also, fix problem with min width, if no minwidth is set
Smart status checker for hdd/ssd
Paramaters:
* smartstatus.display: how to display (defaults to "combined", other choices: "seperate" or "singles")
* smartstauts.drives: in the case of singles which drives to display, separated comma list value, multiple accepted (defaults to "sda", example:"sda,sdc")
requires: smartmontools
smartcl should be given sudo access with no password for this to work
(per example adding: %wheel ALL=(ALL) NOPASSWD: /usr/bin/smartctl)