virtual_profiles = [
# (name, description, callback)
("common", "Clone all connected outputs at the largest common resolution", None),
- ("clone", "Clone all connected outputs with the largest resolution and scaled down in the others", None),
+ ("clone-largest", "Clone all connected outputs with the largest resolution (scaled down if necessary)", None),
("horizontal", "Stack all connected outputs horizontally at their largest resolution", None),
("vertical", "Stack all connected outputs vertically at their largest resolution", None),
]
shift += int(mode[shift_index])
else:
configuration[output].options["off"] = None
- elif profile_name == "clone":
+ elif profile_name == "clone-largest":
biggest_resolution = sorted([output_modes[0] for output, output_modes in modes.items()], key=lambda x: int(x["width"])*int(x["height"]), reverse=True)[0]
for output in configuration:
configuration[output].options = {}
configuration[output].options["rate"] = mode["rate"]
configuration[output].options["pos"] = "0x0"
scale = max(float(biggest_resolution["width"]) / float(mode["width"]) ,float(biggest_resolution["height"]) / float(mode["height"]))
- configuration[output].options["scale"] = "{}x{}".format(scale, scale)
+ mov_x = (float(mode["width"])*scale-float(biggest_resolution["width"]))/-2
+ mov_y = (float(mode["height"])*scale-float(biggest_resolution["height"]))/-2
+ configuration[output].options["transform"] = "{},0,{},0,{},{},0,0,1".format(scale, mov_x, scale, mov_y)
else:
configuration[output].options["off"] = None
return configuration
"Print help and exit"
print(help_text)
for profile in virtual_profiles:
- print(" %-10s %s" % profile[:2])
+ name, description = profile[:2]
+ description = [ description ]
+ max_width = 78-18
+ while len(description[0]) > max_width + 1:
+ left_over = description[0][max_width:]
+ description[0] = description[0][:max_width] + "-"
+ description.insert(1, " %-15s %s" % ("", left_over))
+ description = "\n".join(description)
+ print(" %-15s %s" % (name, description))
sys.exit(0)
def exec_scripts(profile_path, script_name, meta_information=None):