From 6e0f05cf58db011ea93b838cb2cf6d6d4cfcd01f Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Tue, 4 Mar 2014 18:21:37 +0100 Subject: add example: stored-settings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- examples/stored-settings | 58 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 examples/stored-settings (limited to 'examples/stored-settings') diff --git a/examples/stored-settings b/examples/stored-settings new file mode 100644 index 0000000..e3b45c0 --- /dev/null +++ b/examples/stored-settings @@ -0,0 +1,58 @@ +# -*- python -*- + +# This example demonstrates how settings can be stored +# and be transition from later. + +import os +import time + + +uses_adhoc_opts = True +''' +:bool `True` if the configuration script parses the ad-hoc settings +''' + + +# Get --temperature from Blueshift ad-hoc settigns +temperature_to = int(parser.opts['--temperature'][0]) + +# Get old temperature setting +temperature_from = 6500 +storage_file = '/dev/shm/.blueshift-conf-%s-%s' % (os.environ['DISPLAY'], os.environ['USER']) +if os.path.exists(storage_file): + with open(storage_file, 'rb') as file: + temperature_from = int(file.read().decode('utf-8', 'replace').split('\n')[0]) + +# Store new temperature +with open(storage_file, 'wb') as file: + file.write(str(temperature_to).encode('utf-8')) + file.flush() + +# Calculate transition time +fadein_time = abs(temperature_to - temperature_from) * 5 / (6500 - 3700) +fadein_steps = fadein_time * 10 + +# Function for setting the colour temperature +def adjust(alpha): + temp = temperature_to * alpha + temperature_from * (1 - alpha) + start_over() + temperature(temp, lambda t : divide_by_maximum(cmf_10deg(t))) + randr(0) + +# Perform transition +if not (panicgate or temperature_to == temperature_from): + signal.signal(signal.SIGTERM, signal_SIGTERM) + dtime = fadein_time / fadein_steps + df = 1 / fadein_steps + trans = 0 + while running: + try: + trans += df + if trans > 1: + break + adjust(trans) + time.sleep(dtime) + except KeyboardInterrupt: + running = False +adjust(1) + -- cgit v1.2.3-70-g09d2