4ad41a8ee0
Add - again a very simplistic - method for themeing the output. Essentially, the plan is to have JSON-formatted configuration files in bumblebee/themes/ and have a separate class for querying the config whenever the output needs to know about semantic formatting/coloring. Note that the theme object is stored on a per-module basis. Right now, that doesn't have any effect (except looking particularly wasteful), but the idea is to be able to have different themes for different modules in the future.
51 lines
1.4 KiB
Python
Executable file
51 lines
1.4 KiB
Python
Executable file
#!/usr/bin/env python
|
|
|
|
import sys
|
|
import time
|
|
import argparse
|
|
import importlib
|
|
import bumblebee.themes
|
|
import bumblebee.outputs.i3
|
|
|
|
def print_module_list():
|
|
# TODO
|
|
pass
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(description="display system data in the i3bar")
|
|
parser.add_argument("-m", "--modules", nargs="+", help="List of modules to load. The order of the list determines their order in the i3bar (from left to right)")
|
|
parser.add_argument("-l", "--list", action="store_true", help="List all available modules and themes")
|
|
parser.add_argument("-t", "--theme", help="Specify which theme to use for drawing the modulemoduless")
|
|
|
|
args = parser.parse_args()
|
|
|
|
if args.list:
|
|
print_module_list()
|
|
sys.exit(0)
|
|
|
|
modules = []
|
|
theme = bumblebee.themes.Theme(args.theme)
|
|
for m in args.modules:
|
|
# TODO: how to cleanly handle errors here?
|
|
# (useful error messages)
|
|
module = importlib.import_module("bumblebee.modules.%s" % m)
|
|
modules.append(getattr(module, "Module")(theme))
|
|
|
|
output = bumblebee.outputs.i3.i3bar()
|
|
|
|
print output.start()
|
|
sys.stdout.flush()
|
|
|
|
while True:
|
|
for m in modules:
|
|
output.add(m)
|
|
print output.get()
|
|
sys.stdout.flush()
|
|
time.sleep(1)
|
|
|
|
print output.stop()
|
|
|
|
if __name__ == "__main__":
|
|
main()
|
|
|
|
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
|