From b0a38d7b72a849f12062cbf2f2d172599a99fd83 Mon Sep 17 00:00:00 2001 From: Sebastian Reichel Date: Thu, 14 Feb 2019 00:01:17 +0100 Subject: use percentage based brightness steps --- tp-key-handler | 37 +++++++++++++++++++++++++++++-------- 1 file 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): -- cgit v1.2.3