"Generate one of the virtual profiles"
configuration = copy.deepcopy(configuration)
if profile_name == "common":
- common_resolution = [ set(( ( mode["width"], mode["height"] ) for mode in output )) for output in modes.values() ]
+ common_resolution = [ set(( ( mode["width"], mode["height"] ) for mode in output_modes )) for output, output_modes in modes.items() if configuration[output].edid ]
common_resolution = reduce(lambda a, b: a & b, common_resolution[1:], common_resolution[0])
common_resolution = sorted(common_resolution, key=lambda a: int(a[0])*int(a[1]))
if common_resolution:
for output in configuration:
configuration[output].options = {}
- if output in modes:
+ if output in modes and configuration[output].edid:
configuration[output].options["mode"] = [ x["name"] for x in sorted(modes[output], key=lambda x: 0 if x["preferred"] else 1) if x["width"] == common_resolution[-1][0] and x["height"] == common_resolution[-1][1] ][0]
configuration[output].options["pos"] = "0x0"
else:
for output in configuration:
configuration[output].options = {}
- if output in modes:
+ if output in modes and configuration[output].edid:
mode = sorted(modes[output], key=lambda a: int(a["width"])*int(a["height"]) + (10**6 if a["preferred"] else 0))[-1]
configuration[output].options["mode"] = mode["name"]
configuration[output].options["rate"] = mode["rate"]
except Exception as e:
raise AutorandrException("Failed to apply profile '%s'" % load_profile, e, True)
+ if "--dry-run" not in options and "--debug" in options:
+ new_config, _ = parse_xrandr_output()
+ if not is_equal_configuration(new_config, load_config):
+ print("The configuration change did not go as expected:")
+ print_profile_differences(new_config, load_config)
+
sys.exit(0)
if __name__ == '__main__':