[themes] Add "cycle" theme capability

It is now possible to add a list of theme configurations in the
"default" section called "cycle". These configuration items will be
cycled through module by module. to create "alternate style" effects.
This is *only* possible in the "default" configuration part, but any
module-specific configurations still take precedence.

Also, removed the capability of per-widget themes. That simply
complicates things and probably doesn't really bring any benefits.
This commit is contained in:
Tobias Witek 2016-10-31 10:45:15 +01:00
parent 656c499c95
commit 2a35905b89
8 changed files with 57 additions and 19 deletions

View file

@ -24,23 +24,25 @@ def main():
sys.exit(0)
modules = []
theme = bumblebee.theme.Theme(args.theme) if args.theme else bumblebee.theme.Theme()
for m in args.modules:
# TODO: how to cleanly handle errors here?
# (useful error messages)
module_name = m if not ":" in m else m.split(":")[0]
module_args = None if not ":" in m else m.split(":")[1:]
module = importlib.import_module("bumblebee.modules.{}".format(module_name))
modules.append(getattr(module, "Module")(theme, module_args))
modules.append(getattr(module, "Module")(module_args))
output = bumblebee.outputs.i3.i3bar()
theme = bumblebee.theme.Theme(args.theme) if args.theme else bumblebee.theme.Theme()
output = bumblebee.outputs.i3.i3bar(theme)
print output.start()
sys.stdout.flush()
while True:
theme.reset()
for m in modules:
output.add(m)
theme.next()
print output.get()
sys.stdout.flush()
time.sleep(1)