aboutsummaryrefslogtreecommitdiffstats
path: root/xpybar/config/mybacklight.py
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--xpybar/config/mybacklight.py76
1 files changed, 76 insertions, 0 deletions
diff --git a/xpybar/config/mybacklight.py b/xpybar/config/mybacklight.py
new file mode 100644
index 0000000..bcb3d53
--- /dev/null
+++ b/xpybar/config/mybacklight.py
@@ -0,0 +1,76 @@
+# -*- python -*-
+import os
+import sys
+from common import *
+
+class MyBacklight(Entry):
+ def __init__(self, *args, **kwargs):
+ self.show_label = True
+ self.backlight = self.get_backlight()
+ self.counter = 0
+ Entry.__init__(self, *args, **kwargs)
+
+ def get_backlight(self):
+ r, w = os.pipe()
+ pid = os.fork()
+ if not pid:
+ os.dup2(w, 1)
+ os.execlp('adjbacklight', 'adjbacklight', '-g')
+ sys.exit(1)
+ os.close(w)
+ ret = b''
+ while True:
+ bs = os.read(r, 512)
+ if not bs:
+ break
+ ret += bs
+ os.close(r)
+ os.waitpid(pid, 0)
+ ret = float(ret.decode('utf-8', 'replace').rstrip('%\n')) / 100
+ return ret
+
+ def set_backlight(self):
+ pid = os.fork()
+ if not pid:
+ os.execlp('adjbacklight', 'adjbacklight', '-s', '%f%%' % (self.backlight * 100))
+ sys.exit(1)
+ os.waitpid(pid, 0)
+
+ def action(self, col, button, x, y):
+ if button == LEFT_BUTTON:
+ pid = os.fork()
+ if not pid:
+ pid = os.fork()
+ if not pid:
+ os.execlp('xpybar', 'xpybar', '-c', '%s/.config/xpybar/adjbacklight' % HOME)
+ sys.exit(1)
+ sys.exit(0)
+ os.waitpid(pid, 0)
+ elif button == MIDDLE_BUTTON:
+ self.show_label = not self.show_label
+ self.invalidate()
+ elif button == RIGHT_BUTTON:
+ self.backlight = self.get_backlight()
+ self.invalidate()
+ elif button == SCROLL_UP:
+ self.backlight = min(self.backlight + 0.05, 1)
+ self.set_backlight()
+ self.invalidate()
+ elif button == SCROLL_DOWN:
+ self.backlight = max(self.backlight - 0.05, 0)
+ self.set_backlight()
+ self.invalidate()
+
+ def function(self):
+ self.counter += 1
+ if self.counter == 6:
+ self.counter = 0
+ self.backlight = self.get_backlight()
+ val = int(self.backlight * 100 + 0.5)
+ if val >= 100:
+ val = str(val)
+ else:
+ val = '%2i%%' % val
+ if self.show_label:
+ val = 'Blight: ' + val
+ return val