# pylint: disable=C0111,R0903 """Displays the brightness of a display Parameters: * brightness.step: The amount of increase/decrease on scroll in % (defaults to 2) """ import glob import shutil import core.module import core.widget import core.input import core.decorators import util.cli class Module(core.module.Module): @core.decorators.every(seconds=30) def __init__(self, config, theme): super().__init__(config, theme, core.widget.Widget(self.brightness)) self.__brightness = "n/a" self.__readcmd = None step = self.parameter("step", 2) if shutil.which("light"): self.__readcmd = self.__light self.register_cmd("light -A {}%".format(step), "light -U {}%".format(step)) elif shutil.which("brightnessctl"): self.__readcmd = self.__brightnessctl self.register_cmd( "brightnessctl s {}%+".format(step), "brightnessctl s {}%-".format(step) ) else: self.__readcmd = self.__xbacklight self.register_cmd( "xbacklight +{}%".format(step), "xbacklight -{}%".format(step) ) def register_cmd(self, up_cmd, down_cmd): core.input.register(self, button=core.input.WHEEL_UP, cmd=up_cmd) core.input.register(self, button=core.input.WHEEL_DOWN, cmd=down_cmd) def brightness(self, widget): return self.__brightness def __light(self): return util.cli.execute("light").strip() def __brightnessctl(self): m = util.cli.execute("brightnessctl m").strip() g = util.cli.execute("brightnessctl g").strip() return float(g) / float(m) * 100.0 def __xbacklight(self): return util.cli.execute("xbacklight -get").strip() def update(self): try: self.__brightness = "{:3.0f}%".format(float(self.__readcmd())) except: self.__brightness = "n/a" # vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4