From 19d6fbc8dc6e08e9ded4a2f576c83dc92a256479 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Wed, 27 Jun 2012 22:35:09 +0200 Subject: [PATCH 1/1] make sure the xrandr we call to get information properly quits, and detect failure to call it --- external_screen.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/external_screen.py b/external_screen.py index e365ef5..a419908 100755 --- a/external_screen.py +++ b/external_screen.py @@ -10,17 +10,19 @@ def getXrandrInformation(): connector = None # current connector for line in p.stdout: # new connector? - m = re.search('^([\w]+) connected ', line) + m = re.search(r'^([\w]+) connected ', line) if m is not None: connector = m.groups()[0] assert connector not in connectors connectors[connector] = [] continue # new resolution? - m = re.search('^ ([\d]+)x([\d]+) +', line) + m = re.search(r'^ ([\d]+)x([\d]+) +', line) if m is not None: assert connector is not None connectors[connector].append((int(m.groups()[0]), int(m.groups()[1]))) + p.communicate() + if p.returncode != 0: raise Exception("Querying xrandr for data failed") return connectors def res2str(res): @@ -50,6 +52,6 @@ if externalResolutions is not None: # we need to ask what to do else: externalArgs += ["--right-of", internalName] # and do it -args = ["--output", internalName] + internalArgs + ["--output", externalName] + externalArgs -print args -subprocess.check_call(["xrandr"] + args) +call = ["xrandr", "--output", internalName] + internalArgs + ["--output", externalName] + externalArgs +print "Call that will be made:",call +subprocess.check_call(call) -- 2.30.2