From 3b283d550eaee8511ccf5ad81cad1a3fd8365a0d Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Thu, 13 Mar 2014 20:16:14 +0100 Subject: fix and demo drm support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- examples/comprehensive | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) (limited to 'examples/comprehensive') diff --git a/examples/comprehensive b/examples/comprehensive index ef8376d..380bf39 100644 --- a/examples/comprehensive +++ b/examples/comprehensive @@ -9,6 +9,8 @@ # nor does it parse options other than -r from ad-hoc settigns, or # use monitor identifiation. +import os + # Geographical coodinates. # (KTH building D computer laboratories in this example.) @@ -41,6 +43,16 @@ def by_time(): return 1 # Error in `time_alpha` (probably) +# Check if we are in X or TTY. +ttymode = not (('DISPLAY' in os.environ) and (':' in os.environ['DISPLAY'])) + +# Method for applying colour curves. +apply_curves = randr +#apply_curves = vidmode +if ttymode: + apply_curves = drm + + # Keep uncomment to use solar position. get_dayness = lambda : sun(latitude, longitude) # Uncomment to use time of day. @@ -132,9 +144,13 @@ icc_calibration_profile = [None] # -p (--panicgate) is used. current_calibration = [None] if not panicgate: - calib_get = None - #calib_get = randr_get - #calib_get = vidmode_get + if not ttymode: + calib_get = None + #calib_get = randr_get + #calib_get = vidmode_get + else: + calib_get = None + #calib_get = drm_get current_calibration = [calib_get] @@ -178,7 +194,7 @@ for i in range(len(current_calibration)): current_calibration[i] = f(m) -monitor_controller = lambda : randr(*monitors) +monitor_controller = lambda : apply_curves(*monitors) ''' :()→void Function used by Blueshift on exit to apply reset colour curves, if using preimplemented `reset` ''' @@ -335,9 +351,9 @@ def periodically(year, month, day, hour, minute, second, weekday, fade): # Flush settings to monitor. if len(monitors) == 0: - randr() + apply_curves() else: - randr(monitors[m % len(monitors)]) + apply_curves(monitors[m % len(monitors)]) # Lets wait only 5 seconds, instead of a minute before running again. wait_period = 5 @@ -372,9 +388,9 @@ def reset(): # Flush settings to monitor. if len(monitors) == 0: - randr() + apply_curves() else: - randr(monitors[m % len(monitors)]) + apply_curves(monitors[m % len(monitors)]) if (get_dayness is not None) and not doreset: -- cgit v1.2.3-70-g09d2