123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- # pylint: disable=missing-docstring
- import argparse
- import os
- import acpi_backlight.evaluate
- _ACPI_BACKLIGHT_ROOT_DIR_PATH = "/sys/class/backlight"
- class Backlight:
- def __init__(self, name="intel_backlight"):
- self._acpi_dir_path = os.path.join(_ACPI_BACKLIGHT_ROOT_DIR_PATH, name)
- @property
- def _brightness_path(self):
- return os.path.join(self._acpi_dir_path, "brightness")
- @property
- def _max_brightness_path(self):
- return os.path.join(self._acpi_dir_path, "max_brightness")
- @property
- def _brightness_absolute(self):
- with open(self._brightness_path, "r") as brightness_file:
- return int(brightness_file.read())
- @_brightness_absolute.setter
- def _brightness_absolute(self, brightness_absolute):
- with open(self._brightness_path, "w") as brightness_file:
- return brightness_file.write(str(round(brightness_absolute)))
- @property
- def _max_brightness_absolute(self):
- with open(self._max_brightness_path, "r") as max_brightness_file:
- return int(max_brightness_file.read())
- @property
- def brightness_relative(self):
- return self._brightness_absolute / self._max_brightness_absolute
- @brightness_relative.setter
- def brightness_relative(self, brightness_relative):
- self._brightness_absolute = (
- max(0, min(1, brightness_relative)) * self._max_brightness_absolute
- )
- def backlight_eval(expr_str):
- backlight = acpi_backlight.Backlight()
- backlight.brightness_relative = acpi_backlight.evaluate.evaluate_expression(
- expr_str=expr_str,
- names={"b": backlight.brightness_relative},
- )
- print(backlight.brightness_relative)
- def main():
- argparser = argparse.ArgumentParser()
- argparser.add_argument("expr_str")
- args = argparser.parse_args()
- backlight_eval(expr_str=args.expr_str)
- if __name__ == "__main__":
- main()
|