From 2196c27ad4da877f56bf9cb226aef0bcceb02ea7 Mon Sep 17 00:00:00 2001 From: enkore Date: Sun, 24 Feb 2013 15:16:07 +0100 Subject: [PATCH] This is probably a better way to handle file.File-based modules. --- README.md | 19 ++++++++++++++++++- i3pystatus/file.py | 38 +++++++++++++++++++++++++------------- 2 files changed, 43 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 776c217..b497492 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,24 @@ This class shows a clock -### file +### file.Backlight + + +Screen backlight info + +Available formatters: +* brightness +* max_brightness +* percentage + + +* `format` — format string (default: `{brightness}/{max_brightness}`) +* `backlight` — backlight, see `/sys/class/backlight/` (default: `acpi_video0`) +* `color` — (default: `#FFFFFF`) + + + +### file.File Rip information from text files diff --git a/i3pystatus/file.py b/i3pystatus/file.py index 2868ddb..f998c0d 100644 --- a/i3pystatus/file.py +++ b/i3pystatus/file.py @@ -47,9 +47,9 @@ class File(IntervalModule): "color": self.color } -def backlight(backlight="acpi_video0", format="{brightness}/{max_brightness}"): +class Backlight(File): """ - Backlight info template + Screen backlight info Available formatters: * brightness @@ -57,15 +57,27 @@ def backlight(backlight="acpi_video0", format="{brightness}/{max_brightness}"): * percentage """ - return File( - base_path="/sys/class/backlight/{backlight}/".format(backlight=backlight), - components={ - "brightness": (int, "brightness"), - "max_brightness": (int, "max_brightness"), - }, - transforms={ - "percentage": lambda cdict: (cdict["brightness"] / cdict["max_brightness"]) * 100, - }, - format="{brightness}/{max_brightness}", - interval=1 + settings = ( + ("format", "format string"), + ("backlight", "backlight, see `/sys/class/backlight/`"), + "color", ) + required = () + + backlight="acpi_video0" + format="{brightness}/{max_brightness}" + + interval=1 + base_path = "/sys/class/backlight/{backlight}/" + components={ + "brightness": (int, "brightness"), + "max_brightness": (int, "max_brightness"), + } + transforms={ + "percentage": lambda cdict: (cdict["brightness"] / cdict["max_brightness"]) * 100, + } + + def init(self): + self.base_path = self.base_path.format(backlight=self.backlight) + + super().init()