summaryrefslogtreecommitdiffstats
path: root/tp-key-handler
diff options
context:
space:
mode:
Diffstat (limited to 'tp-key-handler')
-rwxr-xr-xtp-key-handler37
1 files changed, 29 insertions, 8 deletions
diff --git a/tp-key-handler b/tp-key-handler
index a47f8f8..259210f 100755
--- a/tp-key-handler
+++ b/tp-key-handler
@@ -130,21 +130,42 @@ class KeyhandlerDBUSService(dbus.service.Object):
popen.wait()
self._showMicState()
- @dbus.service.method('org.elektranox.keyhandler')
- def backlightDec(self):
- brightness = self._getBacklight() - 5
+ def _backlightChg(self, decrease):
+ brightness = self._getBacklight()
+ maximum = self._getMaxBacklight()
+ current = self._getBacklight() / maximum * 100
+ step = 1
+
+ # probably should implement something using a logarithmic scale
+ if current <= 2:
+ step = int(0.5 * maximum/100)
+ elif current <= 10:
+ step = int(1 * maximum/100)
+ elif current <= 50:
+ step = int(5 * maximum/100)
+ else:
+ step = int(10 * maximum/100)
+
+ if decrease:
+ brightness -= step
+ else:
+ brightness += step
+
if brightness < 0:
brightness = 0
+ if brightness > maximum:
+ brightness = maximum
self._setBacklight(brightness)
self._showBacklightState()
+
+ @dbus.service.method('org.elektranox.keyhandler')
+ def backlightDec(self):
+ self._backlightChg(True)
+
@dbus.service.method('org.elektranox.keyhandler')
def backlightInc(self):
- brightness = self._getBacklight() + 5
- if brightness > self._getMaxBacklight():
- brightness = self._getMaxBacklight()
- self._setBacklight(brightness)
- self._showBacklightState()
+ self._backlightChg(False)
@dbus.service.method('org.elektranox.keyhandler')
def XF86Display(self):