bumblebee-status/i3bumblebee
Tobias Witek 3ca53dd0fa [themes] Make individual items theme-able (a bit)
Individual items in the bar can now be configured with a prefix and a
suffix. It works like this:

* If there is a specific module configuration in the theme
  configuration, use that (i.e. { "<modulename>": { "prefix: " a " } })
* Otherwise, if there is a configuration in the "default" section of the
  theme, use that
* Otherwise, if the module object itself has a method called like the
  required attribute (prefix, suffix), use that
* Otherwise, leave prefix/suffix empty ("")
2016-10-31 07:18:57 +01:00

53 lines
1.6 KiB
Python
Executable file

#!/usr/bin/env python
import sys
import time
import argparse
import importlib
import bumblebee.theme
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.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.%s" % module_name)
modules.append(getattr(module, "Module")(theme, module_args))
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