X-Git-Url: https://git.ralfj.de/lilass.git/blobdiff_plain/ab78af6f47b8c3fc17a057e64208649e7d3a6141..d9218a1fbb0c5a5200914483d795926f34e3a7ea:/dsl.py?ds=sidebyside diff --git a/dsl.py b/dsl.py index d580276..e1a945e 100755 --- a/dsl.py +++ b/dsl.py @@ -51,8 +51,10 @@ def getXrandrInformation(): connectors = {} # map of connector names to a list of resolutions connector = None # current connector for line in p.stdout: - # ignore screens - if line.startswith("Screen"): + # screen? + m = re.search(r'^Screen [0-9]+: ', line) + if m is not None: # ignore this line + connector = None continue # new connector? m = re.search(r'^([\w\-]+) (dis)?connected ', line) @@ -66,7 +68,14 @@ def getXrandrInformation(): if m is not None: assert connector is not None connectors[connector].append((int(m.groups()[0]), int(m.groups()[1]))) + continue + # unknown line + # not fatal as my xrandr shows strange stuff when a display is enabled, but not connected + #raise Exception("Unknown line in xrandr output:\n"+line) + print "Warning: Unknown xrandr line %s" % line + # be sure to always proprly finish up with the xrandr p.communicate() + # if everything succeededso far, check return code if p.returncode != 0: raise Exception("Querying xrandr for data failed.") return connectors @@ -114,7 +123,9 @@ def main(): externalConnectors = config['externalConnectors'] for connector in externalConnectors: if not connector in connectors: - raise Exception("Connector %s does not exist, there is an error in your config file." % internalConnector) + raise Exception("Connector %s does not exist, there is an error in your config file." % connector) + if connector == internalConnector: + raise Exception("%s is both internal and external, that doesn't make sense." % connector) else: externalConnectors = connectors.keys() externalConnectors.remove(internalConnector)