From: Phillip Berndt Date: Sun, 17 May 2015 15:44:52 +0000 (+0200) Subject: Fixed --gamma value handling X-Git-Tag: 1.0~52 X-Git-Url: https://git.donarmstrong.com/?p=deb_pkgs%2Fautorandr.git;a=commitdiff_plain;h=ca61a75c09807b92c8086b975e9c28c6d27779a3 Fixed --gamma value handling --- diff --git a/autorandr.py b/autorandr.py index f9e9f4c..648e913 100755 --- a/autorandr.py +++ b/autorandr.py @@ -129,7 +129,7 @@ class XrandrOutput(object): (?:[\ \t]*tracking\ (?P[0-9]+x[0-9]+\+[0-9]+\+[0-9]+))? # Tracking information (?:[\ \t]*border\ (?P(?:[0-9]+/){3}[0-9]+))? # Border information (?:\s*(?: # Properties of the output - Gamma: (?P[0-9\.: ]+) | # Gamma value + Gamma: (?P(?:inf|[0-9\.: e])+) | # Gamma value Transform: (?P(?:[\-0-9\. ]+\s+){3}) | # Transformation matrix EDID: (?P\s*?(?:\\n\\t\\t[0-9a-f]+)+) | # EDID of the output (?![0-9])[^:\s][^:\n]+:.*(?:\s\\t[\\t ].+)* # Other properties @@ -291,6 +291,10 @@ class XrandrOutput(object): print("Warning: Output %s has a transformation applied. Could not determine correct mode! Using `%s'." % (match["output"], options["mode"]), file=sys.stderr) if match["gamma"]: gamma = match["gamma"].strip() + # xrandr prints different values in --verbose than it accepts as a parameter value for --gamma + # Also, it is not able to work with non-standard gamma ramps. Finally, it auto-corrects 0 to 1, + # so we approximate by 1e-10. + gamma = ":".join([ str(max(1e-10, round(1./float(x), 3))) for x in gamma.split(":") ]) options["gamma"] = gamma if match["rate"]: options["rate"] = match["rate"]